@jitsusama/agentic-harness.core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (974) hide show
  1. package/README.md +52 -0
  2. package/dist/advisor/charter.d.ts +14 -0
  3. package/dist/advisor/charter.js +48 -0
  4. package/dist/advisor/findings.d.ts +43 -0
  5. package/dist/advisor/findings.js +82 -0
  6. package/dist/advisor/index.d.ts +24 -0
  7. package/dist/advisor/index.js +23 -0
  8. package/dist/advisor/settings.d.ts +16 -0
  9. package/dist/advisor/settings.js +30 -0
  10. package/dist/advisor/substantive.d.ts +14 -0
  11. package/dist/advisor/substantive.js +33 -0
  12. package/dist/advisor/tools.d.ts +38 -0
  13. package/dist/advisor/tools.js +202 -0
  14. package/dist/attribution/commit-hook.d.ts +53 -0
  15. package/dist/attribution/commit-hook.js +133 -0
  16. package/dist/attribution/gh-footer.d.ts +27 -0
  17. package/dist/attribution/gh-footer.js +80 -0
  18. package/dist/attribution/index.d.ts +11 -0
  19. package/dist/attribution/index.js +11 -0
  20. package/dist/attribution/model-name.d.ts +11 -0
  21. package/dist/attribution/model-name.js +26 -0
  22. package/dist/bin/attribution.d.ts +36 -0
  23. package/dist/bin/attribution.js +82 -0
  24. package/dist/bin/cli.d.ts +14 -0
  25. package/dist/bin/cli.js +236 -0
  26. package/dist/bin/gate-deps.d.ts +23 -0
  27. package/dist/bin/gate-deps.js +61 -0
  28. package/dist/bin/guardians.d.ts +51 -0
  29. package/dist/bin/guardians.js +174 -0
  30. package/dist/bin/memory.d.ts +16 -0
  31. package/dist/bin/memory.js +81 -0
  32. package/dist/bin/notes.d.ts +30 -0
  33. package/dist/bin/notes.js +67 -0
  34. package/dist/bin/process-exec.d.ts +14 -0
  35. package/dist/bin/process-exec.js +31 -0
  36. package/dist/bin/quest.d.ts +38 -0
  37. package/dist/bin/quest.js +187 -0
  38. package/dist/bin/slack-auth.d.ts +49 -0
  39. package/dist/bin/slack-auth.js +107 -0
  40. package/dist/clock/index.d.ts +46 -0
  41. package/dist/clock/index.js +72 -0
  42. package/dist/command/cwd.d.ts +21 -0
  43. package/dist/command/cwd.js +60 -0
  44. package/dist/command/edit.d.ts +14 -0
  45. package/dist/command/edit.js +22 -0
  46. package/dist/command/flags.d.ts +29 -0
  47. package/dist/command/flags.js +111 -0
  48. package/dist/command/index.d.ts +16 -0
  49. package/dist/command/index.js +12 -0
  50. package/dist/command/tokenize.d.ts +7 -0
  51. package/dist/command/tokenize.js +315 -0
  52. package/dist/command/types.d.ts +66 -0
  53. package/dist/command/types.js +9 -0
  54. package/dist/completion/index.d.ts +17 -0
  55. package/dist/completion/index.js +16 -0
  56. package/dist/completion/investigate.d.ts +63 -0
  57. package/dist/completion/investigate.js +198 -0
  58. package/dist/completion/resolve.d.ts +29 -0
  59. package/dist/completion/resolve.js +42 -0
  60. package/dist/completion/side.d.ts +51 -0
  61. package/dist/completion/side.js +93 -0
  62. package/dist/completion/types.d.ts +84 -0
  63. package/dist/completion/types.js +14 -0
  64. package/dist/exec/exec.d.ts +38 -0
  65. package/dist/exec/exec.js +51 -0
  66. package/dist/exec/index.d.ts +8 -0
  67. package/dist/exec/index.js +8 -0
  68. package/dist/gate/decision.d.ts +52 -0
  69. package/dist/gate/decision.js +68 -0
  70. package/dist/gate/deps.d.ts +14 -0
  71. package/dist/gate/deps.js +1 -0
  72. package/dist/gate/index.d.ts +2 -0
  73. package/dist/gate/index.js +1 -0
  74. package/dist/git-cli/index.d.ts +47 -0
  75. package/dist/git-cli/index.js +127 -0
  76. package/dist/github-cli/command-spec.d.ts +14 -0
  77. package/dist/github-cli/command-spec.js +18 -0
  78. package/dist/github-cli/index.d.ts +71 -0
  79. package/dist/github-cli/index.js +188 -0
  80. package/dist/google/apis/calendar.d.ts +64 -0
  81. package/dist/google/apis/calendar.js +297 -0
  82. package/dist/google/apis/docs.d.ts +29 -0
  83. package/dist/google/apis/docs.js +154 -0
  84. package/dist/google/apis/drive.d.ts +46 -0
  85. package/dist/google/apis/drive.js +189 -0
  86. package/dist/google/apis/gmail.d.ts +67 -0
  87. package/dist/google/apis/gmail.js +374 -0
  88. package/dist/google/apis/index.d.ts +10 -0
  89. package/dist/google/apis/index.js +10 -0
  90. package/dist/google/apis/sheets.d.ts +16 -0
  91. package/dist/google/apis/sheets.js +54 -0
  92. package/dist/google/apis/slides.d.ts +16 -0
  93. package/dist/google/apis/slides.js +40 -0
  94. package/dist/google/auth/browser.d.ts +5 -0
  95. package/dist/google/auth/browser.js +27 -0
  96. package/dist/google/auth/credentials.d.ts +26 -0
  97. package/dist/google/auth/credentials.js +69 -0
  98. package/dist/google/auth/errors.d.ts +15 -0
  99. package/dist/google/auth/errors.js +26 -0
  100. package/dist/google/auth/index.d.ts +12 -0
  101. package/dist/google/auth/index.js +12 -0
  102. package/dist/google/auth/oauth-app.d.ts +15 -0
  103. package/dist/google/auth/oauth-app.js +20 -0
  104. package/dist/google/auth/oauth.d.ts +46 -0
  105. package/dist/google/auth/oauth.js +146 -0
  106. package/dist/google/auth/server.d.ts +13 -0
  107. package/dist/google/auth/server.js +70 -0
  108. package/dist/google/auth/setup-instructions.d.ts +16 -0
  109. package/dist/google/auth/setup-instructions.js +24 -0
  110. package/dist/google/auth/store.d.ts +19 -0
  111. package/dist/google/auth/store.js +27 -0
  112. package/dist/google/index.d.ts +13 -0
  113. package/dist/google/index.js +12 -0
  114. package/dist/google/paths.d.ts +17 -0
  115. package/dist/google/paths.js +28 -0
  116. package/dist/google/renderers/calendar.d.ts +23 -0
  117. package/dist/google/renderers/calendar.js +312 -0
  118. package/dist/google/renderers/drive.d.ts +31 -0
  119. package/dist/google/renderers/drive.js +214 -0
  120. package/dist/google/renderers/email.d.ts +16 -0
  121. package/dist/google/renderers/email.js +130 -0
  122. package/dist/google/renderers/index.d.ts +8 -0
  123. package/dist/google/renderers/index.js +8 -0
  124. package/dist/google/types.d.ts +143 -0
  125. package/dist/google/types.js +27 -0
  126. package/dist/governance/distill.d.ts +31 -0
  127. package/dist/governance/distill.js +78 -0
  128. package/dist/governance/index.d.ts +11 -0
  129. package/dist/governance/index.js +10 -0
  130. package/dist/governance/render.d.ts +13 -0
  131. package/dist/governance/render.js +23 -0
  132. package/dist/governance/store.d.ts +32 -0
  133. package/dist/governance/store.js +102 -0
  134. package/dist/governance/types.d.ts +19 -0
  135. package/dist/governance/types.js +9 -0
  136. package/dist/guardian/index.d.ts +7 -0
  137. package/dist/guardian/index.js +7 -0
  138. package/dist/guardian/types.d.ts +37 -0
  139. package/dist/guardian/types.js +12 -0
  140. package/dist/internal/github/cli.d.ts +40 -0
  141. package/dist/internal/github/cli.js +102 -0
  142. package/dist/internal/guardian/commit-file.d.ts +7 -0
  143. package/dist/internal/guardian/commit-file.js +36 -0
  144. package/dist/internal/guardian/commit-format.d.ts +35 -0
  145. package/dist/internal/guardian/commit-format.js +63 -0
  146. package/dist/internal/guardian/commit-shell.d.ts +38 -0
  147. package/dist/internal/guardian/commit-shell.js +134 -0
  148. package/dist/internal/guardian/history-gate.d.ts +41 -0
  149. package/dist/internal/guardian/history-gate.js +76 -0
  150. package/dist/internal/guardian/prose-gate.d.ts +31 -0
  151. package/dist/internal/guardian/prose-gate.js +50 -0
  152. package/dist/internal/guardian/redirect-gate.d.ts +41 -0
  153. package/dist/internal/guardian/redirect-gate.js +114 -0
  154. package/dist/internal/guardian/section-gate.d.ts +20 -0
  155. package/dist/internal/guardian/section-gate.js +36 -0
  156. package/dist/internal/guardian/title-gate.d.ts +20 -0
  157. package/dist/internal/guardian/title-gate.js +36 -0
  158. package/dist/internal/json-array.d.ts +11 -0
  159. package/dist/internal/json-array.js +40 -0
  160. package/dist/internal/lsp/registry.d.ts +12 -0
  161. package/dist/internal/lsp/registry.js +16 -0
  162. package/dist/internal/notes/discovery.d.ts +59 -0
  163. package/dist/internal/notes/discovery.js +91 -0
  164. package/dist/internal/notes/frontmatter.d.ts +52 -0
  165. package/dist/internal/notes/frontmatter.js +163 -0
  166. package/dist/internal/notes/id.d.ts +42 -0
  167. package/dist/internal/notes/id.js +80 -0
  168. package/dist/internal/notes/io.d.ts +25 -0
  169. package/dist/internal/notes/io.js +51 -0
  170. package/dist/internal/notes/sanitize.d.ts +19 -0
  171. package/dist/internal/notes/sanitize.js +35 -0
  172. package/dist/internal/process-global.d.ts +20 -0
  173. package/dist/internal/process-global.js +28 -0
  174. package/dist/internal/quest/alias-index.d.ts +61 -0
  175. package/dist/internal/quest/alias-index.js +69 -0
  176. package/dist/internal/quest/append-journey.d.ts +22 -0
  177. package/dist/internal/quest/append-journey.js +63 -0
  178. package/dist/internal/quest/bash-write.d.ts +49 -0
  179. package/dist/internal/quest/bash-write.js +208 -0
  180. package/dist/internal/quest/dates.d.ts +14 -0
  181. package/dist/internal/quest/dates.js +20 -0
  182. package/dist/internal/quest/discovery.d.ts +96 -0
  183. package/dist/internal/quest/discovery.js +354 -0
  184. package/dist/internal/quest/fields.d.ts +37 -0
  185. package/dist/internal/quest/fields.js +94 -0
  186. package/dist/internal/quest/frontmatter.d.ts +88 -0
  187. package/dist/internal/quest/frontmatter.js +630 -0
  188. package/dist/internal/quest/git-signals.d.ts +53 -0
  189. package/dist/internal/quest/git-signals.js +192 -0
  190. package/dist/internal/quest/id.d.ts +50 -0
  191. package/dist/internal/quest/id.js +116 -0
  192. package/dist/internal/quest/io.d.ts +54 -0
  193. package/dist/internal/quest/io.js +233 -0
  194. package/dist/internal/quest/mentions.d.ts +45 -0
  195. package/dist/internal/quest/mentions.js +70 -0
  196. package/dist/internal/quest/mutate.d.ts +38 -0
  197. package/dist/internal/quest/mutate.js +83 -0
  198. package/dist/internal/quest/process-liveness.d.ts +98 -0
  199. package/dist/internal/quest/process-liveness.js +216 -0
  200. package/dist/internal/quest/quest-doc.d.ts +116 -0
  201. package/dist/internal/quest/quest-doc.js +239 -0
  202. package/dist/internal/quest/ranking.d.ts +48 -0
  203. package/dist/internal/quest/ranking.js +114 -0
  204. package/dist/internal/quest/reopen.d.ts +65 -0
  205. package/dist/internal/quest/reopen.js +113 -0
  206. package/dist/internal/quest/resolve-cwd.d.ts +32 -0
  207. package/dist/internal/quest/resolve-cwd.js +89 -0
  208. package/dist/internal/quest/sanitize.d.ts +42 -0
  209. package/dist/internal/quest/sanitize.js +69 -0
  210. package/dist/internal/quest/scaffold.d.ts +59 -0
  211. package/dist/internal/quest/scaffold.js +169 -0
  212. package/dist/internal/quest/scratch.d.ts +27 -0
  213. package/dist/internal/quest/scratch.js +106 -0
  214. package/dist/internal/quest/session-liveness.d.ts +125 -0
  215. package/dist/internal/quest/session-liveness.js +386 -0
  216. package/dist/internal/quest/session-ownership.d.ts +22 -0
  217. package/dist/internal/quest/session-ownership.js +100 -0
  218. package/dist/internal/quest/session-registry.d.ts +221 -0
  219. package/dist/internal/quest/session-registry.js +266 -0
  220. package/dist/internal/quest/status.d.ts +10 -0
  221. package/dist/internal/quest/status.js +15 -0
  222. package/dist/internal/quest/structural-journal.d.ts +41 -0
  223. package/dist/internal/quest/structural-journal.js +67 -0
  224. package/dist/internal/quest/structural.d.ts +43 -0
  225. package/dist/internal/quest/structural.js +77 -0
  226. package/dist/internal/quest/toc.d.ts +28 -0
  227. package/dist/internal/quest/toc.js +90 -0
  228. package/dist/internal/quest/trees.d.ts +53 -0
  229. package/dist/internal/quest/trees.js +145 -0
  230. package/dist/internal/quest/url-fetchers.d.ts +50 -0
  231. package/dist/internal/quest/url-fetchers.js +97 -0
  232. package/dist/internal/quest/write-classifier.d.ts +46 -0
  233. package/dist/internal/quest/write-classifier.js +59 -0
  234. package/dist/internal/refs/builtins.d.ts +32 -0
  235. package/dist/internal/refs/builtins.js +179 -0
  236. package/dist/internal/refs/registry.d.ts +25 -0
  237. package/dist/internal/refs/registry.js +42 -0
  238. package/dist/internal/registry/global-symbol-registry.d.ts +37 -0
  239. package/dist/internal/registry/global-symbol-registry.js +55 -0
  240. package/dist/internal/review/registry.d.ts +12 -0
  241. package/dist/internal/review/registry.js +16 -0
  242. package/dist/internal/sqlite/db.d.ts +16 -0
  243. package/dist/internal/sqlite/db.js +26 -0
  244. package/dist/internal/terminal/builtins.d.ts +8 -0
  245. package/dist/internal/terminal/builtins.js +14 -0
  246. package/dist/internal/terminal/drivers/fallback.d.ts +8 -0
  247. package/dist/internal/terminal/drivers/fallback.js +31 -0
  248. package/dist/internal/terminal/drivers/shared.d.ts +39 -0
  249. package/dist/internal/terminal/drivers/shared.js +51 -0
  250. package/dist/internal/terminal/drivers/tmux.d.ts +14 -0
  251. package/dist/internal/terminal/drivers/tmux.js +88 -0
  252. package/dist/internal/terminal/drivers/wezterm.d.ts +35 -0
  253. package/dist/internal/terminal/drivers/wezterm.js +175 -0
  254. package/dist/internal/terminal/registry.d.ts +12 -0
  255. package/dist/internal/terminal/registry.js +16 -0
  256. package/dist/internal/tree/builtins.d.ts +8 -0
  257. package/dist/internal/tree/builtins.js +10 -0
  258. package/dist/internal/tree/providers/git-worktree.d.ts +20 -0
  259. package/dist/internal/tree/providers/git-worktree.js +279 -0
  260. package/dist/internal/tree/registry.d.ts +12 -0
  261. package/dist/internal/tree/registry.js +16 -0
  262. package/dist/lsp/config.d.ts +77 -0
  263. package/dist/lsp/config.js +154 -0
  264. package/dist/lsp/external.d.ts +13 -0
  265. package/dist/lsp/external.js +52 -0
  266. package/dist/lsp/format.d.ts +11 -0
  267. package/dist/lsp/format.js +54 -0
  268. package/dist/lsp/index.d.ts +17 -0
  269. package/dist/lsp/index.js +16 -0
  270. package/dist/lsp/offsets.d.ts +22 -0
  271. package/dist/lsp/offsets.js +51 -0
  272. package/dist/lsp/registry.d.ts +28 -0
  273. package/dist/lsp/registry.js +45 -0
  274. package/dist/lsp/standalone/backend.d.ts +42 -0
  275. package/dist/lsp/standalone/backend.js +150 -0
  276. package/dist/lsp/standalone/document.d.ts +45 -0
  277. package/dist/lsp/standalone/document.js +81 -0
  278. package/dist/lsp/standalone/server.d.ts +84 -0
  279. package/dist/lsp/standalone/server.js +521 -0
  280. package/dist/lsp/types.d.ts +119 -0
  281. package/dist/lsp/types.js +13 -0
  282. package/dist/memory/db.d.ts +15 -0
  283. package/dist/memory/db.js +25 -0
  284. package/dist/memory/index.d.ts +12 -0
  285. package/dist/memory/index.js +11 -0
  286. package/dist/memory/paths.d.ts +19 -0
  287. package/dist/memory/paths.js +33 -0
  288. package/dist/memory/scope.d.ts +14 -0
  289. package/dist/memory/scope.js +22 -0
  290. package/dist/memory/store.d.ts +12 -0
  291. package/dist/memory/store.js +146 -0
  292. package/dist/memory/types.d.ts +80 -0
  293. package/dist/memory/types.js +6 -0
  294. package/dist/notes/types.d.ts +50 -0
  295. package/dist/notes/types.js +23 -0
  296. package/dist/notes/verbs/create.d.ts +5 -0
  297. package/dist/notes/verbs/create.js +55 -0
  298. package/dist/notes/verbs/mutate.d.ts +8 -0
  299. package/dist/notes/verbs/mutate.js +152 -0
  300. package/dist/notes/verbs/queries.d.ts +15 -0
  301. package/dist/notes/verbs/queries.js +116 -0
  302. package/dist/notes/verbs/reindex.d.ts +12 -0
  303. package/dist/notes/verbs/reindex.js +35 -0
  304. package/dist/notes/verbs/shared.d.ts +37 -0
  305. package/dist/notes/verbs/shared.js +29 -0
  306. package/dist/observability/index.d.ts +13 -0
  307. package/dist/observability/index.js +12 -0
  308. package/dist/observability/recorder.d.ts +50 -0
  309. package/dist/observability/recorder.js +77 -0
  310. package/dist/observability/store.d.ts +22 -0
  311. package/dist/observability/store.js +213 -0
  312. package/dist/observability/types.d.ts +82 -0
  313. package/dist/observability/types.js +1 -0
  314. package/dist/process/index.d.ts +9 -0
  315. package/dist/process/index.js +9 -0
  316. package/dist/process/process.d.ts +95 -0
  317. package/dist/process/process.js +153 -0
  318. package/dist/prose/block.d.ts +9 -0
  319. package/dist/prose/block.js +43 -0
  320. package/dist/prose/detect.d.ts +50 -0
  321. package/dist/prose/detect.js +217 -0
  322. package/dist/prose/gate.d.ts +14 -0
  323. package/dist/prose/gate.js +21 -0
  324. package/dist/prose/index.d.ts +4 -0
  325. package/dist/prose/index.js +4 -0
  326. package/dist/prose/wrap.d.ts +9 -0
  327. package/dist/prose/wrap.js +47 -0
  328. package/dist/quest/actions.d.ts +20 -0
  329. package/dist/quest/actions.js +107 -0
  330. package/dist/quest/config.d.ts +79 -0
  331. package/dist/quest/config.js +83 -0
  332. package/dist/quest/index.d.ts +29 -0
  333. package/dist/quest/index.js +28 -0
  334. package/dist/quest/lifecycle.d.ts +365 -0
  335. package/dist/quest/lifecycle.js +900 -0
  336. package/dist/quest/lookup.d.ts +243 -0
  337. package/dist/quest/lookup.js +496 -0
  338. package/dist/quest/machine.d.ts +48 -0
  339. package/dist/quest/machine.js +96 -0
  340. package/dist/quest/render-rows.d.ts +166 -0
  341. package/dist/quest/render-rows.js +214 -0
  342. package/dist/quest/state.d.ts +111 -0
  343. package/dist/quest/state.js +46 -0
  344. package/dist/quest/types.d.ts +224 -0
  345. package/dist/quest/types.js +10 -0
  346. package/dist/quest/verbs/alias.d.ts +9 -0
  347. package/dist/quest/verbs/alias.js +129 -0
  348. package/dist/quest/verbs/lifecycle.d.ts +36 -0
  349. package/dist/quest/verbs/lifecycle.js +407 -0
  350. package/dist/quest/verbs/queries.d.ts +24 -0
  351. package/dist/quest/verbs/queries.js +241 -0
  352. package/dist/quest/verbs/reorder.d.ts +15 -0
  353. package/dist/quest/verbs/reorder.js +85 -0
  354. package/dist/quest/verbs/shared.d.ts +63 -0
  355. package/dist/quest/verbs/shared.js +35 -0
  356. package/dist/quest/verbs/stage.d.ts +39 -0
  357. package/dist/quest/verbs/stage.js +506 -0
  358. package/dist/quest/verbs/structural.d.ts +23 -0
  359. package/dist/quest/verbs/structural.js +310 -0
  360. package/dist/quest/verbs/tree-ops.d.ts +20 -0
  361. package/dist/quest/verbs/tree-ops.js +289 -0
  362. package/dist/refs/index.d.ts +13 -0
  363. package/dist/refs/index.js +12 -0
  364. package/dist/refs/lookup.d.ts +53 -0
  365. package/dist/refs/lookup.js +102 -0
  366. package/dist/refs/register.d.ts +34 -0
  367. package/dist/refs/register.js +44 -0
  368. package/dist/refs/types.d.ts +81 -0
  369. package/dist/refs/types.js +17 -0
  370. package/dist/remote/index.d.ts +9 -0
  371. package/dist/remote/index.js +9 -0
  372. package/dist/remote/name.d.ts +22 -0
  373. package/dist/remote/name.js +30 -0
  374. package/dist/result/cite.d.ts +84 -0
  375. package/dist/result/cite.js +127 -0
  376. package/dist/result/counts.d.ts +15 -0
  377. package/dist/result/counts.js +17 -0
  378. package/dist/result/details.d.ts +61 -0
  379. package/dist/result/details.js +121 -0
  380. package/dist/result/digest.d.ts +37 -0
  381. package/dist/result/digest.js +227 -0
  382. package/dist/result/follow.d.ts +29 -0
  383. package/dist/result/follow.js +37 -0
  384. package/dist/result/index.d.ts +26 -0
  385. package/dist/result/index.js +26 -0
  386. package/dist/result/listing.d.ts +62 -0
  387. package/dist/result/listing.js +72 -0
  388. package/dist/result/location.d.ts +67 -0
  389. package/dist/result/location.js +125 -0
  390. package/dist/result/query.d.ts +67 -0
  391. package/dist/result/query.js +144 -0
  392. package/dist/result/spill.d.ts +41 -0
  393. package/dist/result/spill.js +121 -0
  394. package/dist/result/store.d.ts +83 -0
  395. package/dist/result/store.js +214 -0
  396. package/dist/result/view.d.ts +31 -0
  397. package/dist/result/view.js +38 -0
  398. package/dist/review/anchor.d.ts +84 -0
  399. package/dist/review/anchor.js +89 -0
  400. package/dist/review/ask/agents.d.ts +80 -0
  401. package/dist/review/ask/agents.js +296 -0
  402. package/dist/review/ask/anchorable.d.ts +35 -0
  403. package/dist/review/ask/anchorable.js +76 -0
  404. package/dist/review/ask/answer.d.ts +54 -0
  405. package/dist/review/ask/answer.js +209 -0
  406. package/dist/review/ask/audit.d.ts +71 -0
  407. package/dist/review/ask/audit.js +158 -0
  408. package/dist/review/ask/collect.d.ts +41 -0
  409. package/dist/review/ask/collect.js +82 -0
  410. package/dist/review/ask/council.d.ts +290 -0
  411. package/dist/review/ask/council.js +386 -0
  412. package/dist/review/ask/critique.d.ts +69 -0
  413. package/dist/review/ask/critique.js +157 -0
  414. package/dist/review/ask/harvest.d.ts +119 -0
  415. package/dist/review/ask/harvest.js +409 -0
  416. package/dist/review/ask/identity.d.ts +93 -0
  417. package/dist/review/ask/identity.js +134 -0
  418. package/dist/review/ask/judge.d.ts +37 -0
  419. package/dist/review/ask/judge.js +140 -0
  420. package/dist/review/ask/persona.d.ts +84 -0
  421. package/dist/review/ask/persona.js +127 -0
  422. package/dist/review/ask/progress.d.ts +117 -0
  423. package/dist/review/ask/progress.js +137 -0
  424. package/dist/review/ask/prompt.d.ts +131 -0
  425. package/dist/review/ask/prompt.js +242 -0
  426. package/dist/review/ask/roster.d.ts +94 -0
  427. package/dist/review/ask/roster.js +338 -0
  428. package/dist/review/ask/run.d.ts +435 -0
  429. package/dist/review/ask/run.js +340 -0
  430. package/dist/review/ask/span.d.ts +70 -0
  431. package/dist/review/ask/span.js +166 -0
  432. package/dist/review/ask/stack-round.d.ts +66 -0
  433. package/dist/review/ask/stack-round.js +125 -0
  434. package/dist/review/ask/start.d.ts +48 -0
  435. package/dist/review/ask/start.js +118 -0
  436. package/dist/review/ask/store.d.ts +83 -0
  437. package/dist/review/ask/store.js +226 -0
  438. package/dist/review/ask/wire.d.ts +89 -0
  439. package/dist/review/ask/wire.js +204 -0
  440. package/dist/review/attach.d.ts +161 -0
  441. package/dist/review/attach.js +357 -0
  442. package/dist/review/authoring.d.ts +84 -0
  443. package/dist/review/authoring.js +203 -0
  444. package/dist/review/backed.d.ts +90 -0
  445. package/dist/review/backed.js +168 -0
  446. package/dist/review/bind.d.ts +75 -0
  447. package/dist/review/bind.js +223 -0
  448. package/dist/review/budget.d.ts +133 -0
  449. package/dist/review/budget.js +278 -0
  450. package/dist/review/capabilities.d.ts +217 -0
  451. package/dist/review/capabilities.js +46 -0
  452. package/dist/review/change.d.ts +155 -0
  453. package/dist/review/change.js +15 -0
  454. package/dist/review/checks.d.ts +56 -0
  455. package/dist/review/checks.js +11 -0
  456. package/dist/review/config.d.ts +71 -0
  457. package/dist/review/config.js +125 -0
  458. package/dist/review/conventions.d.ts +35 -0
  459. package/dist/review/conventions.js +58 -0
  460. package/dist/review/conversation.d.ts +98 -0
  461. package/dist/review/conversation.js +16 -0
  462. package/dist/review/decided.d.ts +58 -0
  463. package/dist/review/decided.js +67 -0
  464. package/dist/review/diff.d.ts +116 -0
  465. package/dist/review/diff.js +237 -0
  466. package/dist/review/draft/continuation.d.ts +23 -0
  467. package/dist/review/draft/continuation.js +32 -0
  468. package/dist/review/draft/fanout.d.ts +57 -0
  469. package/dist/review/draft/fanout.js +46 -0
  470. package/dist/review/draft/handle.d.ts +55 -0
  471. package/dist/review/draft/handle.js +110 -0
  472. package/dist/review/draft/plan.d.ts +112 -0
  473. package/dist/review/draft/plan.js +343 -0
  474. package/dist/review/draft/publish.d.ts +38 -0
  475. package/dist/review/draft/publish.js +118 -0
  476. package/dist/review/draft/render.d.ts +32 -0
  477. package/dist/review/draft/render.js +100 -0
  478. package/dist/review/draft/state.d.ts +98 -0
  479. package/dist/review/draft/state.js +83 -0
  480. package/dist/review/draft/store.d.ts +33 -0
  481. package/dist/review/draft/store.js +100 -0
  482. package/dist/review/elsewhere.d.ts +27 -0
  483. package/dist/review/elsewhere.js +39 -0
  484. package/dist/review/engine.d.ts +106 -0
  485. package/dist/review/engine.js +243 -0
  486. package/dist/review/events.d.ts +59 -0
  487. package/dist/review/events.js +35 -0
  488. package/dist/review/failed.d.ts +46 -0
  489. package/dist/review/failed.js +56 -0
  490. package/dist/review/finding.d.ts +81 -0
  491. package/dist/review/finding.js +85 -0
  492. package/dist/review/fix.d.ts +147 -0
  493. package/dist/review/fix.js +175 -0
  494. package/dist/review/followup.d.ts +84 -0
  495. package/dist/review/followup.js +123 -0
  496. package/dist/review/index.d.ts +134 -0
  497. package/dist/review/index.js +80 -0
  498. package/dist/review/keys.d.ts +23 -0
  499. package/dist/review/keys.js +40 -0
  500. package/dist/review/landing.d.ts +37 -0
  501. package/dist/review/landing.js +68 -0
  502. package/dist/review/lenses.d.ts +132 -0
  503. package/dist/review/lenses.js +430 -0
  504. package/dist/review/propose-from.d.ts +76 -0
  505. package/dist/review/propose-from.js +86 -0
  506. package/dist/review/provider.d.ts +306 -0
  507. package/dist/review/provider.js +16 -0
  508. package/dist/review/providers/git/index.d.ts +23 -0
  509. package/dist/review/providers/git/index.js +214 -0
  510. package/dist/review/providers/github/authoring.d.ts +22 -0
  511. package/dist/review/providers/github/authoring.js +350 -0
  512. package/dist/review/providers/github/claims.d.ts +49 -0
  513. package/dist/review/providers/github/claims.js +136 -0
  514. package/dist/review/providers/github/conversation.d.ts +18 -0
  515. package/dist/review/providers/github/conversation.js +455 -0
  516. package/dist/review/providers/github/fields.d.ts +30 -0
  517. package/dist/review/providers/github/fields.js +47 -0
  518. package/dist/review/providers/github/index.d.ts +15 -0
  519. package/dist/review/providers/github/index.js +110 -0
  520. package/dist/review/providers/github/proposals.d.ts +14 -0
  521. package/dist/review/providers/github/proposals.js +298 -0
  522. package/dist/review/providers/github/queue.d.ts +46 -0
  523. package/dist/review/providers/github/queue.js +122 -0
  524. package/dist/review/providers/github/stacking.d.ts +20 -0
  525. package/dist/review/providers/github/stacking.js +107 -0
  526. package/dist/review/queue.d.ts +43 -0
  527. package/dist/review/queue.js +56 -0
  528. package/dist/review/reactable.d.ts +93 -0
  529. package/dist/review/reactable.js +140 -0
  530. package/dist/review/register.d.ts +52 -0
  531. package/dist/review/register.js +53 -0
  532. package/dist/review/resolve.d.ts +58 -0
  533. package/dist/review/resolve.js +150 -0
  534. package/dist/review/retarget.d.ts +73 -0
  535. package/dist/review/retarget.js +82 -0
  536. package/dist/review/revisited.d.ts +77 -0
  537. package/dist/review/revisited.js +121 -0
  538. package/dist/review/stack.d.ts +110 -0
  539. package/dist/review/stack.js +52 -0
  540. package/dist/sections/block.d.ts +9 -0
  541. package/dist/sections/block.js +42 -0
  542. package/dist/sections/detect.d.ts +31 -0
  543. package/dist/sections/detect.js +67 -0
  544. package/dist/sections/gate.d.ts +21 -0
  545. package/dist/sections/gate.js +22 -0
  546. package/dist/sections/index.d.ts +5 -0
  547. package/dist/sections/index.js +5 -0
  548. package/dist/sections/sanctioned.d.ts +13 -0
  549. package/dist/sections/sanctioned.js +21 -0
  550. package/dist/shell/index.d.ts +8 -0
  551. package/dist/shell/index.js +8 -0
  552. package/dist/shell/parse.d.ts +125 -0
  553. package/dist/shell/parse.js +298 -0
  554. package/dist/slack/api/channels.d.ts +12 -0
  555. package/dist/slack/api/channels.js +28 -0
  556. package/dist/slack/api/client.d.ts +94 -0
  557. package/dist/slack/api/client.js +272 -0
  558. package/dist/slack/api/files.d.ts +95 -0
  559. package/dist/slack/api/files.js +223 -0
  560. package/dist/slack/api/index.d.ts +11 -0
  561. package/dist/slack/api/index.js +11 -0
  562. package/dist/slack/api/messages.d.ts +98 -0
  563. package/dist/slack/api/messages.js +292 -0
  564. package/dist/slack/api/reactions.d.ts +47 -0
  565. package/dist/slack/api/reactions.js +50 -0
  566. package/dist/slack/api/resolve-conversations.d.ts +43 -0
  567. package/dist/slack/api/resolve-conversations.js +130 -0
  568. package/dist/slack/api/resolve-messages.d.ts +29 -0
  569. package/dist/slack/api/resolve-messages.js +93 -0
  570. package/dist/slack/api/resolve-users.d.ts +27 -0
  571. package/dist/slack/api/resolve-users.js +73 -0
  572. package/dist/slack/api/search.d.ts +86 -0
  573. package/dist/slack/api/search.js +186 -0
  574. package/dist/slack/api/users.d.ts +12 -0
  575. package/dist/slack/api/users.js +33 -0
  576. package/dist/slack/auth/browser-extract.d.ts +33 -0
  577. package/dist/slack/auth/browser-extract.js +201 -0
  578. package/dist/slack/auth/browser.d.ts +5 -0
  579. package/dist/slack/auth/browser.js +25 -0
  580. package/dist/slack/auth/credentials.d.ts +14 -0
  581. package/dist/slack/auth/credentials.js +24 -0
  582. package/dist/slack/auth/errors.d.ts +9 -0
  583. package/dist/slack/auth/errors.js +19 -0
  584. package/dist/slack/auth/extract.d.ts +23 -0
  585. package/dist/slack/auth/extract.js +44 -0
  586. package/dist/slack/auth/index.d.ts +12 -0
  587. package/dist/slack/auth/index.js +11 -0
  588. package/dist/slack/auth/oauth-app.d.ts +11 -0
  589. package/dist/slack/auth/oauth-app.js +20 -0
  590. package/dist/slack/auth/oauth.d.ts +31 -0
  591. package/dist/slack/auth/oauth.js +82 -0
  592. package/dist/slack/auth/server.d.ts +14 -0
  593. package/dist/slack/auth/server.js +75 -0
  594. package/dist/slack/auth/store.d.ts +17 -0
  595. package/dist/slack/auth/store.js +27 -0
  596. package/dist/slack/block-message.d.ts +9 -0
  597. package/dist/slack/block-message.js +30 -0
  598. package/dist/slack/blocks.d.ts +94 -0
  599. package/dist/slack/blocks.js +765 -0
  600. package/dist/slack/content-gate.d.ts +12 -0
  601. package/dist/slack/content-gate.js +22 -0
  602. package/dist/slack/detect.d.ts +31 -0
  603. package/dist/slack/detect.js +125 -0
  604. package/dist/slack/index.d.ts +18 -0
  605. package/dist/slack/index.js +17 -0
  606. package/dist/slack/paths.d.ts +28 -0
  607. package/dist/slack/paths.js +46 -0
  608. package/dist/slack/renderers/channel.d.ts +6 -0
  609. package/dist/slack/renderers/channel.js +27 -0
  610. package/dist/slack/renderers/index.d.ts +9 -0
  611. package/dist/slack/renderers/index.js +9 -0
  612. package/dist/slack/renderers/message.d.ts +21 -0
  613. package/dist/slack/renderers/message.js +214 -0
  614. package/dist/slack/renderers/reactions.d.ts +8 -0
  615. package/dist/slack/renderers/reactions.js +43 -0
  616. package/dist/slack/renderers/search.d.ts +6 -0
  617. package/dist/slack/renderers/search.js +39 -0
  618. package/dist/slack/renderers/user.d.ts +6 -0
  619. package/dist/slack/renderers/user.js +32 -0
  620. package/dist/slack/resolvers/cache.d.ts +29 -0
  621. package/dist/slack/resolvers/cache.js +70 -0
  622. package/dist/slack/resolvers/conversation-cache.d.ts +42 -0
  623. package/dist/slack/resolvers/conversation-cache.js +128 -0
  624. package/dist/slack/resolvers/conversation.d.ts +44 -0
  625. package/dist/slack/resolvers/conversation.js +229 -0
  626. package/dist/slack/resolvers/index.d.ts +8 -0
  627. package/dist/slack/resolvers/index.js +8 -0
  628. package/dist/slack/resolvers/target.d.ts +19 -0
  629. package/dist/slack/resolvers/target.js +45 -0
  630. package/dist/slack/resolvers/url.d.ts +20 -0
  631. package/dist/slack/resolvers/url.js +22 -0
  632. package/dist/slack/resolvers/user.d.ts +54 -0
  633. package/dist/slack/resolvers/user.js +134 -0
  634. package/dist/slack/types.d.ts +180 -0
  635. package/dist/slack/types.js +13 -0
  636. package/dist/tdd/attest.d.ts +21 -0
  637. package/dist/tdd/attest.js +21 -0
  638. package/dist/tdd/discipline.d.ts +11 -0
  639. package/dist/tdd/discipline.js +28 -0
  640. package/dist/tdd/index.d.ts +14 -0
  641. package/dist/tdd/index.js +13 -0
  642. package/dist/tdd/machine.d.ts +48 -0
  643. package/dist/tdd/machine.js +139 -0
  644. package/dist/tdd/presentation.d.ts +34 -0
  645. package/dist/tdd/presentation.js +38 -0
  646. package/dist/tdd/queries.d.ts +10 -0
  647. package/dist/tdd/queries.js +22 -0
  648. package/dist/terminal/index.d.ts +12 -0
  649. package/dist/terminal/index.js +11 -0
  650. package/dist/terminal/register.d.ts +21 -0
  651. package/dist/terminal/register.js +31 -0
  652. package/dist/terminal/resolve.d.ts +63 -0
  653. package/dist/terminal/resolve.js +117 -0
  654. package/dist/terminal/types.d.ts +134 -0
  655. package/dist/terminal/types.js +19 -0
  656. package/dist/thinking/index.d.ts +20 -0
  657. package/dist/thinking/index.js +27 -0
  658. package/dist/title/block.d.ts +9 -0
  659. package/dist/title/block.js +32 -0
  660. package/dist/title/detect.d.ts +25 -0
  661. package/dist/title/detect.js +154 -0
  662. package/dist/title/gate.d.ts +19 -0
  663. package/dist/title/gate.js +21 -0
  664. package/dist/title/index.d.ts +3 -0
  665. package/dist/title/index.js +3 -0
  666. package/dist/tree/index.d.ts +18 -0
  667. package/dist/tree/index.js +17 -0
  668. package/dist/tree/register.d.ts +21 -0
  669. package/dist/tree/register.js +31 -0
  670. package/dist/tree/resolve.d.ts +20 -0
  671. package/dist/tree/resolve.js +31 -0
  672. package/dist/tree/types.d.ts +83 -0
  673. package/dist/tree/types.js +12 -0
  674. package/dist/ui/count.d.ts +29 -0
  675. package/dist/ui/count.js +35 -0
  676. package/dist/ui/path.d.ts +25 -0
  677. package/dist/ui/path.js +40 -0
  678. package/dist/verify/index.d.ts +17 -0
  679. package/dist/verify/index.js +14 -0
  680. package/dist/verify/project.d.ts +21 -0
  681. package/dist/verify/project.js +49 -0
  682. package/dist/verify/resolve.d.ts +26 -0
  683. package/dist/verify/resolve.js +27 -0
  684. package/dist/verify/run.d.ts +31 -0
  685. package/dist/verify/run.js +145 -0
  686. package/dist/web/a11y/announcements.d.ts +67 -0
  687. package/dist/web/a11y/announcements.js +116 -0
  688. package/dist/web/a11y/budget.d.ts +75 -0
  689. package/dist/web/a11y/budget.js +97 -0
  690. package/dist/web/a11y/focus.d.ts +37 -0
  691. package/dist/web/a11y/focus.js +106 -0
  692. package/dist/web/a11y/index.d.ts +19 -0
  693. package/dist/web/a11y/index.js +25 -0
  694. package/dist/web/a11y/naming.d.ts +23 -0
  695. package/dist/web/a11y/naming.js +55 -0
  696. package/dist/web/a11y/outline.d.ts +23 -0
  697. package/dist/web/a11y/outline.js +42 -0
  698. package/dist/web/a11y/reading.d.ts +12 -0
  699. package/dist/web/a11y/reading.js +101 -0
  700. package/dist/web/a11y/scope.d.ts +23 -0
  701. package/dist/web/a11y/scope.js +99 -0
  702. package/dist/web/a11y/states.d.ts +22 -0
  703. package/dist/web/a11y/states.js +53 -0
  704. package/dist/web/a11y/tree.d.ts +124 -0
  705. package/dist/web/a11y/tree.js +269 -0
  706. package/dist/web/a11y/walk.d.ts +225 -0
  707. package/dist/web/a11y/walk.js +568 -0
  708. package/dist/web/a11y/walkprobe.d.ts +44 -0
  709. package/dist/web/a11y/walkprobe.js +365 -0
  710. package/dist/web/audit/axe.d.ts +219 -0
  711. package/dist/web/audit/axe.js +322 -0
  712. package/dist/web/audit/behind.d.ts +63 -0
  713. package/dist/web/audit/behind.js +142 -0
  714. package/dist/web/audit/capture.d.ts +43 -0
  715. package/dist/web/audit/capture.js +185 -0
  716. package/dist/web/audit/colour.d.ts +85 -0
  717. package/dist/web/audit/colour.js +189 -0
  718. package/dist/web/audit/contrast.d.ts +74 -0
  719. package/dist/web/audit/contrast.js +104 -0
  720. package/dist/web/audit/health.d.ts +27 -0
  721. package/dist/web/audit/health.js +57 -0
  722. package/dist/web/audit/index.d.ts +22 -0
  723. package/dist/web/audit/index.js +22 -0
  724. package/dist/web/audit/pair.d.ts +55 -0
  725. package/dist/web/audit/pair.js +157 -0
  726. package/dist/web/audit/probe.d.ts +31 -0
  727. package/dist/web/audit/probe.js +189 -0
  728. package/dist/web/audit/report.d.ts +22 -0
  729. package/dist/web/audit/report.js +250 -0
  730. package/dist/web/audit/structure.d.ts +126 -0
  731. package/dist/web/audit/structure.js +595 -0
  732. package/dist/web/audit/sweep.d.ts +66 -0
  733. package/dist/web/audit/sweep.js +117 -0
  734. package/dist/web/audit/target.d.ts +89 -0
  735. package/dist/web/audit/target.js +168 -0
  736. package/dist/web/audit/verdict.d.ts +48 -0
  737. package/dist/web/audit/verdict.js +52 -0
  738. package/dist/web/audit/visual.d.ts +161 -0
  739. package/dist/web/audit/visual.js +297 -0
  740. package/dist/web/browser.d.ts +213 -0
  741. package/dist/web/browser.js +927 -0
  742. package/dist/web/compare/images.d.ts +45 -0
  743. package/dist/web/compare/images.js +101 -0
  744. package/dist/web/compare/index.d.ts +15 -0
  745. package/dist/web/compare/index.js +15 -0
  746. package/dist/web/compare/provenance.d.ts +48 -0
  747. package/dist/web/compare/provenance.js +86 -0
  748. package/dist/web/compare/regions.d.ts +78 -0
  749. package/dist/web/compare/regions.js +211 -0
  750. package/dist/web/cookies/extract.d.ts +26 -0
  751. package/dist/web/cookies/extract.js +167 -0
  752. package/dist/web/cookies/index.d.ts +8 -0
  753. package/dist/web/cookies/index.js +7 -0
  754. package/dist/web/cookies/inject.d.ts +13 -0
  755. package/dist/web/cookies/inject.js +27 -0
  756. package/dist/web/cookies/setup.d.ts +31 -0
  757. package/dist/web/cookies/setup.js +94 -0
  758. package/dist/web/design/index.d.ts +9 -0
  759. package/dist/web/design/index.js +9 -0
  760. package/dist/web/design/inventory.d.ts +126 -0
  761. package/dist/web/design/inventory.js +324 -0
  762. package/dist/web/design/probe.d.ts +24 -0
  763. package/dist/web/design/probe.js +88 -0
  764. package/dist/web/element/actionable.d.ts +34 -0
  765. package/dist/web/element/actionable.js +48 -0
  766. package/dist/web/element/animations.d.ts +48 -0
  767. package/dist/web/element/animations.js +74 -0
  768. package/dist/web/element/box.d.ts +53 -0
  769. package/dist/web/element/box.js +58 -0
  770. package/dist/web/element/hover.d.ts +75 -0
  771. package/dist/web/element/hover.js +172 -0
  772. package/dist/web/element/index.d.ts +17 -0
  773. package/dist/web/element/index.js +17 -0
  774. package/dist/web/element/listeners.d.ts +72 -0
  775. package/dist/web/element/listeners.js +98 -0
  776. package/dist/web/element/measure.d.ts +40 -0
  777. package/dist/web/element/measure.js +118 -0
  778. package/dist/web/element/probes.d.ts +108 -0
  779. package/dist/web/element/probes.js +195 -0
  780. package/dist/web/element/pseudo.d.ts +51 -0
  781. package/dist/web/element/pseudo.js +96 -0
  782. package/dist/web/element/view.d.ts +30 -0
  783. package/dist/web/element/view.js +117 -0
  784. package/dist/web/element/visibility.d.ts +42 -0
  785. package/dist/web/element/visibility.js +67 -0
  786. package/dist/web/envelope/artifacts.d.ts +23 -0
  787. package/dist/web/envelope/artifacts.js +45 -0
  788. package/dist/web/envelope/index.d.ts +9 -0
  789. package/dist/web/envelope/index.js +9 -0
  790. package/dist/web/envelope/naming.d.ts +23 -0
  791. package/dist/web/envelope/naming.js +43 -0
  792. package/dist/web/envelope/paged.d.ts +42 -0
  793. package/dist/web/envelope/paged.js +99 -0
  794. package/dist/web/envelope/sink.d.ts +43 -0
  795. package/dist/web/envelope/sink.js +67 -0
  796. package/dist/web/environment/devices.d.ts +65 -0
  797. package/dist/web/environment/devices.js +82 -0
  798. package/dist/web/environment/emulation.d.ts +124 -0
  799. package/dist/web/environment/emulation.js +258 -0
  800. package/dist/web/environment/index.d.ts +15 -0
  801. package/dist/web/environment/index.js +15 -0
  802. package/dist/web/environment/probes.d.ts +18 -0
  803. package/dist/web/environment/probes.js +40 -0
  804. package/dist/web/environment/shaping.d.ts +90 -0
  805. package/dist/web/environment/shaping.js +141 -0
  806. package/dist/web/environment/status.d.ts +51 -0
  807. package/dist/web/environment/status.js +109 -0
  808. package/dist/web/environment/storage.d.ts +55 -0
  809. package/dist/web/environment/storage.js +142 -0
  810. package/dist/web/environment/tabs.d.ts +32 -0
  811. package/dist/web/environment/tabs.js +47 -0
  812. package/dist/web/environment/view.d.ts +10 -0
  813. package/dist/web/environment/view.js +42 -0
  814. package/dist/web/evaluate/index.d.ts +6 -0
  815. package/dist/web/evaluate/index.js +6 -0
  816. package/dist/web/evaluate/outcome.d.ts +74 -0
  817. package/dist/web/evaluate/outcome.js +91 -0
  818. package/dist/web/evaluate/probe.d.ts +31 -0
  819. package/dist/web/evaluate/probe.js +303 -0
  820. package/dist/web/index.d.ts +47 -0
  821. package/dist/web/index.js +47 -0
  822. package/dist/web/input/index.d.ts +11 -0
  823. package/dist/web/input/index.js +11 -0
  824. package/dist/web/input/keys.d.ts +48 -0
  825. package/dist/web/input/keys.js +189 -0
  826. package/dist/web/input/pointer.d.ts +56 -0
  827. package/dist/web/input/pointer.js +77 -0
  828. package/dist/web/input/touch.d.ts +61 -0
  829. package/dist/web/input/touch.js +83 -0
  830. package/dist/web/mermaid.d.ts +69 -0
  831. package/dist/web/mermaid.js +223 -0
  832. package/dist/web/paths.d.ts +16 -0
  833. package/dist/web/paths.js +27 -0
  834. package/dist/web/perf/heap.d.ts +42 -0
  835. package/dist/web/perf/heap.js +73 -0
  836. package/dist/web/perf/index.d.ts +14 -0
  837. package/dist/web/perf/index.js +14 -0
  838. package/dist/web/perf/layers.d.ts +98 -0
  839. package/dist/web/perf/layers.js +165 -0
  840. package/dist/web/perf/probe.d.ts +26 -0
  841. package/dist/web/perf/probe.js +123 -0
  842. package/dist/web/perf/profile.d.ts +53 -0
  843. package/dist/web/perf/profile.js +97 -0
  844. package/dist/web/perf/trace.d.ts +152 -0
  845. package/dist/web/perf/trace.js +429 -0
  846. package/dist/web/perf/view.d.ts +6 -0
  847. package/dist/web/perf/view.js +86 -0
  848. package/dist/web/perf/vitals.d.ts +141 -0
  849. package/dist/web/perf/vitals.js +175 -0
  850. package/dist/web/reader.d.ts +131 -0
  851. package/dist/web/reader.js +340 -0
  852. package/dist/web/screenshot.d.ts +50 -0
  853. package/dist/web/screenshot.js +108 -0
  854. package/dist/web/search.d.ts +49 -0
  855. package/dist/web/search.js +137 -0
  856. package/dist/web/session/artifacts.d.ts +32 -0
  857. package/dist/web/session/artifacts.js +47 -0
  858. package/dist/web/session/emulation.d.ts +118 -0
  859. package/dist/web/session/emulation.js +307 -0
  860. package/dist/web/session/recording.d.ts +51 -0
  861. package/dist/web/session/recording.js +64 -0
  862. package/dist/web/session/settling.d.ts +42 -0
  863. package/dist/web/session/settling.js +104 -0
  864. package/dist/web/session/shaping.d.ts +48 -0
  865. package/dist/web/session/shaping.js +113 -0
  866. package/dist/web/session/sourcemaps.d.ts +64 -0
  867. package/dist/web/session/sourcemaps.js +135 -0
  868. package/dist/web/session/telemetry.d.ts +219 -0
  869. package/dist/web/session/telemetry.js +486 -0
  870. package/dist/web/session/wires.d.ts +22 -0
  871. package/dist/web/session/wires.js +11 -0
  872. package/dist/web/session.d.ts +1153 -0
  873. package/dist/web/session.js +3400 -0
  874. package/dist/web/snapshot/deep.d.ts +36 -0
  875. package/dist/web/snapshot/deep.js +91 -0
  876. package/dist/web/snapshot/flatten.d.ts +101 -0
  877. package/dist/web/snapshot/flatten.js +131 -0
  878. package/dist/web/snapshot/index.d.ts +8 -0
  879. package/dist/web/snapshot/index.js +10 -0
  880. package/dist/web/snapshot/presented.d.ts +32 -0
  881. package/dist/web/snapshot/presented.js +74 -0
  882. package/dist/web/snapshot/query.d.ts +67 -0
  883. package/dist/web/snapshot/query.js +136 -0
  884. package/dist/web/sourcemap/index.d.ts +9 -0
  885. package/dist/web/sourcemap/index.js +9 -0
  886. package/dist/web/sourcemap/mappings.d.ts +111 -0
  887. package/dist/web/sourcemap/mappings.js +218 -0
  888. package/dist/web/styles/capture.d.ts +49 -0
  889. package/dist/web/styles/capture.js +85 -0
  890. package/dist/web/styles/cascade.d.ts +107 -0
  891. package/dist/web/styles/cascade.js +275 -0
  892. package/dist/web/styles/curation.d.ts +45 -0
  893. package/dist/web/styles/curation.js +282 -0
  894. package/dist/web/styles/index.d.ts +10 -0
  895. package/dist/web/styles/index.js +10 -0
  896. package/dist/web/target/index.d.ts +7 -0
  897. package/dist/web/target/index.js +7 -0
  898. package/dist/web/target/refusals.d.ts +59 -0
  899. package/dist/web/target/refusals.js +305 -0
  900. package/dist/web/target/target.d.ts +59 -0
  901. package/dist/web/target/target.js +94 -0
  902. package/dist/web/telemetry/buffer.d.ts +35 -0
  903. package/dist/web/telemetry/buffer.js +72 -0
  904. package/dist/web/telemetry/console.d.ts +127 -0
  905. package/dist/web/telemetry/console.js +217 -0
  906. package/dist/web/telemetry/dialogs.d.ts +41 -0
  907. package/dist/web/telemetry/dialogs.js +38 -0
  908. package/dist/web/telemetry/downloads.d.ts +42 -0
  909. package/dist/web/telemetry/downloads.js +65 -0
  910. package/dist/web/telemetry/failure.d.ts +31 -0
  911. package/dist/web/telemetry/failure.js +72 -0
  912. package/dist/web/telemetry/har.d.ts +97 -0
  913. package/dist/web/telemetry/har.js +227 -0
  914. package/dist/web/telemetry/index.d.ts +18 -0
  915. package/dist/web/telemetry/index.js +18 -0
  916. package/dist/web/telemetry/lifecycle.d.ts +69 -0
  917. package/dist/web/telemetry/lifecycle.js +120 -0
  918. package/dist/web/telemetry/network.d.ts +152 -0
  919. package/dist/web/telemetry/network.js +130 -0
  920. package/dist/web/telemetry/requests.d.ts +31 -0
  921. package/dist/web/telemetry/requests.js +119 -0
  922. package/dist/web/telemetry/sockets.d.ts +56 -0
  923. package/dist/web/telemetry/sockets.js +101 -0
  924. package/dist/web/telemetry/view.d.ts +16 -0
  925. package/dist/web/telemetry/view.js +125 -0
  926. package/dist/web/wait/conditions.d.ts +87 -0
  927. package/dist/web/wait/conditions.js +100 -0
  928. package/dist/web/wait/index.d.ts +6 -0
  929. package/dist/web/wait/index.js +6 -0
  930. package/dist/web/wait/settle.d.ts +54 -0
  931. package/dist/web/wait/settle.js +84 -0
  932. package/dist/work/ask.d.ts +45 -0
  933. package/dist/work/ask.js +85 -0
  934. package/dist/work/author.d.ts +61 -0
  935. package/dist/work/author.js +144 -0
  936. package/dist/work/broker.d.ts +151 -0
  937. package/dist/work/broker.js +165 -0
  938. package/dist/work/events.d.ts +98 -0
  939. package/dist/work/events.js +57 -0
  940. package/dist/work/history.d.ts +69 -0
  941. package/dist/work/history.js +174 -0
  942. package/dist/work/index.d.ts +49 -0
  943. package/dist/work/index.js +33 -0
  944. package/dist/work/inplay.d.ts +43 -0
  945. package/dist/work/inplay.js +42 -0
  946. package/dist/work/memory.d.ts +84 -0
  947. package/dist/work/memory.js +203 -0
  948. package/dist/work/objection.d.ts +92 -0
  949. package/dist/work/objection.js +72 -0
  950. package/dist/work/provider.d.ts +79 -0
  951. package/dist/work/provider.js +45 -0
  952. package/dist/work/providers/git.d.ts +29 -0
  953. package/dist/work/providers/git.js +87 -0
  954. package/dist/work/publish.d.ts +53 -0
  955. package/dist/work/publish.js +139 -0
  956. package/dist/work/rebase.d.ts +78 -0
  957. package/dist/work/rebase.js +261 -0
  958. package/dist/work/reclaim.d.ts +56 -0
  959. package/dist/work/reclaim.js +52 -0
  960. package/dist/work/register.d.ts +29 -0
  961. package/dist/work/register.js +41 -0
  962. package/dist/work/stack.d.ts +126 -0
  963. package/dist/work/stack.js +243 -0
  964. package/dist/work/stacks.d.ts +156 -0
  965. package/dist/work/stacks.js +524 -0
  966. package/dist/work/survey.d.ts +52 -0
  967. package/dist/work/survey.js +58 -0
  968. package/dist/work/tidy.d.ts +147 -0
  969. package/dist/work/tidy.js +136 -0
  970. package/dist/work/tree.d.ts +120 -0
  971. package/dist/work/tree.js +69 -0
  972. package/dist/work/unattended.d.ts +40 -0
  973. package/dist/work/unattended.js +57 -0
  974. package/package.json +145 -0
@@ -0,0 +1,1153 @@
1
+ /**
2
+ * A browser session: one tab, driven by observe-then-act.
3
+ *
4
+ * observe renders the page's accessibility tree as a
5
+ * role-and-name outline (plus optional screenshot and
6
+ * readable text); act targets an element the way the model
7
+ * named it, role plus accessible name, disambiguated by
8
+ * container or ordinal, using the browser's own accessibility
9
+ * matching. Opaque node handles never reach the model.
10
+ *
11
+ * web_read is a one-shot over a session; the browser drive
12
+ * tool holds one open across tool calls. Same code path,
13
+ * different lifetime.
14
+ */
15
+ import { type Announcement, type AxNode, type FocusHolder, type TreeScope, type WalkCapture } from "./a11y/index.js";
16
+ import type { Comparison } from "./compare/index.js";
17
+ import { type Animation, type BoxModel, type DelegatedListeners, type HoverReport, type Listener, type Measurement, type PseudoState, type PseudoVariant, type VisibilityVerdict } from "./element/index.js";
18
+ import { type Divergence, type EmulationState, type NetworkRule, type ObservedEnvironment, type SavedState, type SessionStatus, type StorageSnapshot, type TabRecord, type ThrottleConditions } from "./environment/index.js";
19
+ import { type ChordRefusal, type Point, type PointerEventStep, type TouchStep } from "./input/index.js";
20
+ import { type Settled, type WaitCondition, type WaitOutcome } from "./wait/index.js";
21
+ import { type A11yFinding, type BehindReport, type CapturedTarget, type ConformanceBar, type ContrastLevel, type PageBox, type PairReport, type StructureNode, type VisualNode } from "./audit/index.js";
22
+ import { type StyleSample } from "./design/index.js";
23
+ import { type EvalFrame, type EvalOutcome } from "./evaluate/index.js";
24
+ import { type HeapComparison, type Hotspots, type LayerReport, type TraceCapture, type TraceProfile, type Vitals } from "./perf/index.js";
25
+ import { type IndexedNode } from "./snapshot/index.js";
26
+ import { type PropertyTrace, type StyleGroup } from "./styles/index.js";
27
+ import { type Target, type TargetRefusal } from "./target/index.js";
28
+ import { type DialogEvent, type DialogPolicy, type DownloadRecord, type LifecycleEvent, type LogEntry, type NetworkRequest, type Recorded, type SocketRecord } from "./telemetry/index.js";
29
+ /** How a page should be laid out for reading. */
30
+ export type PageForm = "outline" | "reading";
31
+ /** What else to gather while inspecting an element. */
32
+ export interface InspectOptions {
33
+ /** Exactly these properties instead of the curated set. */
34
+ readonly styles?: readonly string[];
35
+ /** Trace why this one property has the value it has. */
36
+ readonly why?: string;
37
+ /** Also report what is listening and what is moving. */
38
+ readonly behaviour?: boolean;
39
+ /** Hold each of these states and report what changes. */
40
+ readonly states?: readonly PseudoState[];
41
+ }
42
+ /** Everything the browser will say about one element. */
43
+ /**
44
+ * What came of measuring between two elements.
45
+ *
46
+ * A target refusal is passed through with the target that earned
47
+ * it, so the caller can say which of the two they named was the
48
+ * problem rather than making them inspect both to find out.
49
+ */
50
+ export type MeasureResult = {
51
+ readonly ok: true;
52
+ readonly measurement: Measurement;
53
+ } | {
54
+ readonly ok: false;
55
+ readonly target: Target;
56
+ readonly refusal: TargetRefusal;
57
+ } | {
58
+ readonly ok: false;
59
+ readonly problem: string;
60
+ };
61
+ /** A font the browser really used, and how much of it. */
62
+ export interface RenderedFont {
63
+ readonly family: string;
64
+ readonly glyphs: number;
65
+ }
66
+ export interface Inspection {
67
+ readonly node: AxNode;
68
+ readonly visibility: VisibilityVerdict;
69
+ /**
70
+ * What the element actually says, as opposed to what it is
71
+ * called. A counter reading "42" has an accessible name that
72
+ * mentions no number.
73
+ */
74
+ readonly text?: string;
75
+ /** What a field is holding, which its name never says. */
76
+ readonly value?: string;
77
+ /** Data and state attributes, which the a11y tree cannot see. */
78
+ readonly attributes?: Readonly<Record<string, string>>;
79
+ /** The fonts actually painted, as opposed to the stack asked for. */
80
+ readonly fonts?: readonly RenderedFont[];
81
+ readonly box?: BoxModel;
82
+ readonly styles?: readonly StyleGroup[];
83
+ readonly trace?: PropertyTrace;
84
+ readonly listeners?: readonly Listener[];
85
+ /**
86
+ * Handlers on ancestors, which events from here still reach.
87
+ * Delegation is how most frameworks bind, so without these an
88
+ * element that is listened to reads as one that is not.
89
+ */
90
+ readonly delegated?: readonly DelegatedListeners[];
91
+ readonly animations?: readonly Animation[];
92
+ readonly variants?: readonly PseudoVariant[];
93
+ }
94
+ /** An inspection, or the refusal that stopped it. */
95
+ export type InspectResult = {
96
+ readonly ok: true;
97
+ readonly inspection: Inspection;
98
+ } | {
99
+ readonly ok: false;
100
+ readonly refusal: TargetRefusal;
101
+ };
102
+ /** What to photograph. */
103
+ export interface ShotOptions {
104
+ /** One element rather than the page. */
105
+ readonly target?: Target;
106
+ /** The whole scrollable page rather than what is on screen. */
107
+ readonly fullPage?: boolean;
108
+ /** Hold this state while capturing. */
109
+ readonly state?: PseudoState;
110
+ }
111
+ /** Where the images landed, and what had to be left out. */
112
+ export interface Shot {
113
+ readonly paths: readonly string[];
114
+ readonly truncated: boolean;
115
+ readonly width: number;
116
+ readonly height: number;
117
+ }
118
+ /** A capture, or the refusal that stopped it. */
119
+ export type ShotResult = {
120
+ readonly ok: true;
121
+ readonly shot: Shot;
122
+ } | {
123
+ readonly ok: false;
124
+ readonly refusal: TargetRefusal;
125
+ };
126
+ /** The result of observing a page. */
127
+ export interface Observation {
128
+ readonly url: string;
129
+ readonly title: string;
130
+ readonly outline: string;
131
+ /**
132
+ * The tree the outline was rendered from, already scoped.
133
+ *
134
+ * The rendered outline is for reading and the tree is for
135
+ * querying, and a caller who stores one so the other can be
136
+ * narrowed needs them to be the same capture. Deriving the tree
137
+ * again afterwards would read a page that has moved on.
138
+ */
139
+ readonly tree: AxNode;
140
+ }
141
+ /** An action that operates on a named element. */
142
+ export type TargetedAction = {
143
+ kind: "click";
144
+ target: Target;
145
+ } | {
146
+ kind: "type";
147
+ target: Target;
148
+ text: string;
149
+ } | {
150
+ kind: "hover";
151
+ target: Target;
152
+ } | {
153
+ kind: "focus";
154
+ target: Target;
155
+ } | {
156
+ kind: "clear";
157
+ target: Target;
158
+ } | {
159
+ kind: "select";
160
+ target: Target;
161
+ text: string;
162
+ } | {
163
+ kind: "upload";
164
+ target: Target;
165
+ files: readonly string[];
166
+ } | {
167
+ kind: "scrollTo";
168
+ target: Target;
169
+ };
170
+ /** An action to perform against the page. */
171
+ export type PageAction = {
172
+ kind: "navigate";
173
+ url: string;
174
+ } | TargetedAction;
175
+ /** Why an act could not target an element, and what would work. */
176
+ export type ActFailure = {
177
+ ok: false;
178
+ refusal: TargetRefusal;
179
+ };
180
+ /** An element that never became ready, and what held it up. */
181
+ export interface Blocked {
182
+ readonly ready: false;
183
+ readonly waitedMs: number;
184
+ readonly blocker: string;
185
+ }
186
+ /** The outcome of an act call. */
187
+ export type ActResult = {
188
+ ok: true;
189
+ waitedMs?: number;
190
+ } | ActFailure | {
191
+ ok: false;
192
+ blocked: Blocked;
193
+ };
194
+ /** The outcome of reading one named branch of a page. */
195
+ export type ObserveResult = {
196
+ ok: true;
197
+ observation: Observation;
198
+ } | {
199
+ ok: false;
200
+ refusal: TargetRefusal;
201
+ };
202
+ /** How a session should behave for its whole life. */
203
+ export interface SessionOptions {
204
+ /**
205
+ * Carry the user's own Chrome cookies into this session, so
206
+ * internal apps that expect a signed-in browser are drivable.
207
+ * Off by default: a session is a clean user unless asked.
208
+ */
209
+ readonly cookies?: boolean;
210
+ /**
211
+ * Where durable artifacts a user might want to look at (right
212
+ * now, comparison baselines) are written. Defaults to an
213
+ * adapter-neutral XDG data directory shared across whatever
214
+ * drives this library; an adapter with its own established
215
+ * convention for durable data passes its own root instead.
216
+ */
217
+ readonly dataRoot?: string;
218
+ }
219
+ /** Chrome cookie injection was asked for but is not set up. */
220
+ export declare class CookieSetupNeeded extends Error {
221
+ constructor();
222
+ }
223
+ export declare class BrowserSession {
224
+ readonly name: string;
225
+ private page;
226
+ private cdp;
227
+ private readonly context;
228
+ private readonly options;
229
+ /** What every property computes to untouched, read once. */
230
+ private initialStyles?;
231
+ /** The recovery in flight, so nothing reads a tab mid-replacement. */
232
+ private recovery?;
233
+ /** The live view collaborators drive the browser through. */
234
+ private readonly wires;
235
+ /** The maps the page has declared, for authored positions. */
236
+ private readonly sourceMaps;
237
+ /** What this session pretends to be, and its keeper. */
238
+ private readonly emulation;
239
+ /** The rules and throttle this session's network answers to. */
240
+ private readonly shaper;
241
+ /** The disk side of this session: sink, stamps and ledger. */
242
+ private readonly artifacts;
243
+ /** The wait between a change and an honest reading of it. */
244
+ private readonly settler;
245
+ /** Everything this session overhears, and its buffers. */
246
+ private readonly telemetry;
247
+ private constructor();
248
+ /** Wall clock time of the last operation. See ready(). */
249
+ private usedAt;
250
+ /**
251
+ * Open a fresh session in a browser context of its own, so
252
+ * its cookies, storage and cache belong to it alone.
253
+ */
254
+ static open(name: string, options?: SessionOptions): Promise<BrowserSession>;
255
+ /** Decide how dialogs will be answered from here on. */
256
+ setDialogPolicy(policy: DialogPolicy): void;
257
+ /** How dialogs are currently answered. */
258
+ get dialogs(): {
259
+ readonly policy: DialogPolicy;
260
+ readonly seen: readonly DialogEvent[];
261
+ };
262
+ /** Every request the page has made. */
263
+ requests(): readonly NetworkRequest[];
264
+ /**
265
+ * Write a capture out as an HTTP Archive.
266
+ *
267
+ * Bodies are fetched for the requests being exported, since an
268
+ * archive without them answers far fewer questions than one
269
+ * with them, and an export is already an explicit ask.
270
+ */
271
+ exportHar(requests: readonly NetworkRequest[]): Promise<string>;
272
+ /**
273
+ * The body of one recorded reply, fetched on demand.
274
+ *
275
+ * Bodies are not captured as they stream past: most are never
276
+ * asked for, and holding every one would cost far more memory
277
+ * than the rest of the session put together. Chrome keeps them
278
+ * for the current document, so this asks only when asked.
279
+ */
280
+ bodyOf(requestId: string): Promise<{
281
+ body: string;
282
+ base64Encoded: boolean;
283
+ } | undefined>;
284
+ /**
285
+ * What the page has said, from a cursor onward.
286
+ *
287
+ * The buffer survives navigation on purpose: a message logged
288
+ * just before a redirect is often the one that explains it.
289
+ */
290
+ logs(since?: number): {
291
+ readonly entries: readonly Recorded<LogEntry>[];
292
+ readonly dropped: number;
293
+ readonly cursor: number;
294
+ };
295
+ /** Navigate the tab to a URL and wait for the network to settle. */
296
+ navigate(url: string): Promise<{
297
+ status?: number;
298
+ failure?: string;
299
+ }>;
300
+ /** Where the session currently is. */
301
+ get url(): string;
302
+ /**
303
+ * Fetch the page again.
304
+ *
305
+ * ignoreCache is the useful default for a developer, who
306
+ * reloads to see a change they just made. A reload that served
307
+ * the old file back would be the one thing it must not do.
308
+ */
309
+ reload(): Promise<{
310
+ failure?: string;
311
+ }>;
312
+ /**
313
+ * Wait for the page to stop changing, so a read that follows
314
+ * describes where the page ended up rather than where it was.
315
+ *
316
+ * Returns what it found instead of throwing on a page that never
317
+ * settles: something that animates or polls for ever is still
318
+ * worth reading, as long as the answer does not pretend it was
319
+ * final.
320
+ */
321
+ settlePage(budgetMs?: number): Promise<Settled>;
322
+ /** What the last settle saw, for a reader that wants to say so. */
323
+ get settledLast(): Settled | undefined;
324
+ /**
325
+ * Step through the history the session accumulated.
326
+ *
327
+ * Refuses rather than doing nothing at either end. Silently
328
+ * staying put looks identical to a page that ignored the
329
+ * request, and the caller then has no way to tell whether
330
+ * going back was possible at all.
331
+ *
332
+ * The refusal is driven by the thrown error, not by a null
333
+ * return. Puppeteer returns null whenever a navigation has no
334
+ * HTTP response, which includes about:blank and same-document
335
+ * moves, so reading null as failure reported a successful step
336
+ * back to about:blank as an impossible one. An absent entry is
337
+ * what throws.
338
+ */
339
+ step(direction: "back" | "forward"): Promise<{
340
+ readonly ok: true;
341
+ readonly url: string;
342
+ } | {
343
+ readonly ok: false;
344
+ readonly refusal: string;
345
+ }>;
346
+ /**
347
+ * Render the page's accessibility outline, plus url and
348
+ * title. A scope narrows the tree before it is rendered; with
349
+ * none, the whole page is read.
350
+ */
351
+ observe(scope?: TreeScope, form?: PageForm): Promise<Observation>;
352
+ /**
353
+ * Read one branch of the page, named the way the caller names
354
+ * anything else. Unlike a whole-page read this can fail, so
355
+ * it reports what would have worked instead.
356
+ */
357
+ observeWithin(target: Target, scope?: TreeScope, form?: PageForm): Promise<ObserveResult>;
358
+ /** Wrap a tree as an observation of where the session is. */
359
+ private describe;
360
+ /** Perform an action, resolving semantic targets against the a11y tree. */
361
+ act(action: PageAction): Promise<ActResult>;
362
+ /**
363
+ * Tell each frame of a stack where it was written.
364
+ *
365
+ * A frame with no map keeps its generated position rather than
366
+ * being dropped: half a stack is worse than a raw one.
367
+ */
368
+ resolveFrames(frames: readonly EvalFrame[]): Promise<readonly EvalFrame[]>;
369
+ /**
370
+ * Replace the dead tab with a live one.
371
+ *
372
+ * The context survives a tab crash and can still make pages,
373
+ * so the session keeps its identity, its cookies and every
374
+ * buffer it has filled; only the tab is new. Watchers have to
375
+ * be reinstalled because they were bound to a protocol channel
376
+ * that no longer answers.
377
+ */
378
+ private recover;
379
+ /**
380
+ * Point the session at a tab and make it whole again.
381
+ *
382
+ * Every watcher is bound to one tab's protocol channel, so a
383
+ * session that changes tabs without reinstalling them goes on
384
+ * answering while quietly deaf to everything the new tab does.
385
+ * That is the same wound a crash leaves, which is why recovering
386
+ * from a crash and switching tabs are one piece of code: two
387
+ * copies would drift, and the half that drifted would fail
388
+ * silently in exactly this way.
389
+ */
390
+ private bindTo;
391
+ /**
392
+ * Wait for any recovery to finish.
393
+ *
394
+ * Called before anything that touches the tab, so a read that
395
+ * arrives during a crash waits for the replacement instead of
396
+ * hanging on a renderer that is never coming back.
397
+ */
398
+ /**
399
+ * Wait for the replacement tab, when one is coming.
400
+ *
401
+ * The crash announcement that starts a recovery can arrive
402
+ * after the failure it caused, so asking whether a recovery is
403
+ * under way immediately gets the wrong answer. This gives the
404
+ * announcement its moment and then waits the recovery out,
405
+ * reporting whether there was one, so a caller that died for
406
+ * some other reason is not left waiting on a tab nobody is
407
+ * replacing.
408
+ */
409
+ private awaitReplacement;
410
+ private ready;
411
+ /** When this session last did anything, for the idle reaper. */
412
+ get lastUsedAt(): number;
413
+ /** Files the page has handed back. */
414
+ downloads(): readonly DownloadRecord[];
415
+ /**
416
+ * Record what the page's JavaScript is doing, for a while.
417
+ *
418
+ * A long task says three seconds went somewhere. This says
419
+ * where. The profiler is started, the page is left alone for
420
+ * the window asked for, and the samples are folded into time
421
+ * per function.
422
+ *
423
+ * Nothing is done to the page in between on purpose: whatever
424
+ * is being profiled has to be the page's own work, and a probe
425
+ * running during the window would appear in its own results.
426
+ */
427
+ profile(forMs: number): Promise<Hotspots>;
428
+ /**
429
+ * Record a trace around some work, and say what it cost.
430
+ *
431
+ * The work runs inside the recording rather than before it,
432
+ * because a trace only holds what happened while it was on.
433
+ * Measured: a timer installed before the recording starts has
434
+ * no install event, so its lateness cannot be explained and a
435
+ * fetch begun earlier has no url. Tracing after the fact is
436
+ * not a weaker answer, it is no answer.
437
+ *
438
+ * The work's own result is handed back whatever the recording
439
+ * did, so a refused permit or a protocol failure costs the
440
+ * caller the trace and never the action.
441
+ */
442
+ recordWhile<T>(profiles: readonly TraceProfile[], work: () => Promise<T>): Promise<{
443
+ readonly result: T;
444
+ readonly trace?: TraceCapture;
445
+ readonly refusal?: string;
446
+ }>;
447
+ /**
448
+ * Every frame id this session owns, its own and its children's.
449
+ *
450
+ * This is what separates our work from another session's in a
451
+ * recording that necessarily contains both.
452
+ */
453
+ private ownFrameIds;
454
+ /** Every websocket conversation the page has held. */
455
+ sockets(): readonly SocketRecord[];
456
+ /**
457
+ * Measure what the page is holding, against the last measurement.
458
+ *
459
+ * A collection is forced first unless refused, because a heap
460
+ * that grew means nothing while uncollected garbage is still in
461
+ * it. The previous reading is kept on the session so a caller
462
+ * can measure, do the thing they suspect, and measure again
463
+ * without having to carry a number between calls.
464
+ */
465
+ heap(collect?: boolean): Promise<HeapComparison>;
466
+ /** The previous heap reading, for the next comparison. */
467
+ private lastHeap?;
468
+ /**
469
+ * What the compositor is holding for this page, and why.
470
+ *
471
+ * LayerTree pushes nothing when it is enabled: the tree arrives
472
+ * only on layerTreeDidChange, and a page that has finished
473
+ * settling has no change left to report. Measured across seven
474
+ * candidates, a throwaway screenshot is the cheapest way to make
475
+ * Chrome recompose and hand the tree over, and the only one that
476
+ * alters nothing about the page. Scrolling moves the page,
477
+ * overriding device metrics disturbs an emulation the caller may
478
+ * have set, and toggling a style writes to the DOM.
479
+ *
480
+ * The domain goes off again afterwards, so a read leaves no
481
+ * instrumentation running behind it.
482
+ */
483
+ /**
484
+ * Judge text against the background actually behind its glyphs.
485
+ *
486
+ * For the case axe hands back as needing a person: text over a
487
+ * gradient, a photograph, or anything else with no single
488
+ * background colour. Two shots of the same region, the second with
489
+ * the text hidden, give both the glyph mask and what lies under it.
490
+ *
491
+ * Hiding the text is a paint-only change, so nothing moves between
492
+ * the shots and the subtraction stays aligned. The inline style is
493
+ * put back in a finally, including the case where it had one of its
494
+ * own to begin with.
495
+ */
496
+ contrastBehind(target: Target, bar?: ContrastLevel): Promise<{
497
+ ok: true;
498
+ report: BehindReport;
499
+ } | {
500
+ ok: false;
501
+ refusal: TargetRefusal;
502
+ }>;
503
+ /**
504
+ * Judge the contrast between two elements the caller named.
505
+ *
506
+ * Distinct from contrastBehind, which subtracts pixels to read the
507
+ * background under one element's glyphs. This compares two
508
+ * elements' stated colours, which is the only way to ask about a
509
+ * boundary: an icon against its card, a border against the page.
510
+ * Both sides are read from the computed style rather than the
511
+ * screen, so nothing is captured and nothing moves.
512
+ */
513
+ contrastPair(one: Target, other: Target, bar?: ContrastLevel): Promise<{
514
+ ok: true;
515
+ report: PairReport;
516
+ } | {
517
+ ok: false;
518
+ target: Target;
519
+ refusal: TargetRefusal;
520
+ }>;
521
+ /** What one side of a contrast pairing paints. */
522
+ private paintedSide;
523
+ /**
524
+ * Make an element's own text stop painting, and put it back.
525
+ *
526
+ * Only colour and shadow are touched, because neither affects
527
+ * layout: the glyphs still occupy the same pixels, they simply
528
+ * leave no mark on them.
529
+ */
530
+ private hideText;
531
+ layers(): Promise<LayerReport>;
532
+ /**
533
+ * What the page does on hover, and whether focus does it too.
534
+ *
535
+ * Two halves, because either alone lies. The stylesheets say
536
+ * which elements might hover, cheaply and in one round trip, but
537
+ * a declared rule the cascade beat changes nothing a person can
538
+ * see. So the scan only proposes candidates, and each one is then
539
+ * held in hover and in focus and read, which is the only account
540
+ * of what actually happens.
541
+ *
542
+ * Bounded because there is a round trip per candidate, measured
543
+ * at roughly 9ms for the pair of states.
544
+ */
545
+ hovers(limit?: number): Promise<HoverReport>;
546
+ /** Which selectors carry a hover, as the page's own sheets say. */
547
+ private scanForHover;
548
+ /** Backend ids matching a selector, or none if it will not parse. */
549
+ private nodesMatching;
550
+ /** Hold hover, then focus, and read what each changed. */
551
+ private measureHover;
552
+ /** Why Chrome composited one layer, or nothing if it will not say. */
553
+ private reasonsFor;
554
+ /** A short name for the element behind a layer. */
555
+ private nameOfNode;
556
+ /** Give the compositor a moment to finish reporting. */
557
+ private settleLayers;
558
+ /** Socket events dropped to stay within the buffer's budget. */
559
+ get socketFramesDropped(): number;
560
+ /** Where the page has been. */
561
+ get history(): readonly LifecycleEvent[];
562
+ /**
563
+ * Put the emulation back exactly as it was.
564
+ *
565
+ * emulate merges, which is right for a caller adding one
566
+ * condition and wrong for anything that has to undo itself: a
567
+ * merge cannot clear a field, so a sweep that widened the
568
+ * viewport could never restore a session that had none. This
569
+ * replaces the state wholesale.
570
+ */
571
+ restoreEmulation(state: EmulationState): Promise<void>;
572
+ /**
573
+ * Pretend to be a different visitor, then report what the page
574
+ * actually experiences.
575
+ *
576
+ * The intent is kept whole and re-applied in full, because
577
+ * Chrome's media emulation forgets anything a call omits, so
578
+ * asking for reduced motion after asking for dark mode would
579
+ * otherwise turn the dark mode back off.
580
+ */
581
+ emulate(change?: EmulationState,
582
+ /** Overrides to take off, which an absent key cannot express. */
583
+ clear?: readonly (keyof EmulationState)[]): Promise<{
584
+ asked: EmulationState;
585
+ observed: ObservedEnvironment;
586
+ gaps: readonly Divergence[];
587
+ }>;
588
+ /** What this session has asked the browser to pretend. */
589
+ get emulated(): EmulationState;
590
+ /**
591
+ * Read what the page has kept.
592
+ *
593
+ * A store that cannot be read says why rather than coming
594
+ * back empty, since an empty store and an unreadable one lead
595
+ * to opposite conclusions.
596
+ */
597
+ storage(wanted: {
598
+ local?: boolean;
599
+ session?: boolean;
600
+ cookies?: boolean;
601
+ clipboard?: boolean;
602
+ }): Promise<StorageSnapshot>;
603
+ /** One of the two DOM stores, keyed by this frame's origin. */
604
+ private domStorage;
605
+ /** Put a value into one of the DOM stores. */
606
+ setStored(isLocalStorage: boolean, key: string, value: string): Promise<void>;
607
+ /**
608
+ * Measure the space between two elements.
609
+ *
610
+ * The border box is the one measured, because that is the edge
611
+ * a designer sees and points at. Margins are the space itself,
612
+ * so measuring between margin boxes would report the gap that
613
+ * remains after the gap, which is nearly always zero.
614
+ */
615
+ measure(a: Target, b: Target): Promise<MeasureResult>;
616
+ /**
617
+ * Every tab this session's context is holding open.
618
+ *
619
+ * A page that opens another one is doing something ordinary: a
620
+ * target of _blank, a sign-in or a payment handed to a second
621
+ * window. Until this existed the new tab was real, live and
622
+ * entirely invisible, and the click that made it looked like a
623
+ * click that did nothing.
624
+ */
625
+ tabs(): Promise<readonly TabRecord[]>;
626
+ /**
627
+ * Drive a different tab from now on.
628
+ *
629
+ * The tab left behind is not closed. A sign-in that opened a
630
+ * second window usually wants the first one back afterwards, and
631
+ * closing it would make switching a one-way trip.
632
+ */
633
+ switchTab(index: number): Promise<TabRecord | {
634
+ refusal: string;
635
+ }>;
636
+ /**
637
+ * Keep everything that makes this session signed in.
638
+ *
639
+ * Cookies and the two DOM stores together, because being logged
640
+ * in is rarely all in one of them: a session cookie and a token
641
+ * in local storage is the ordinary arrangement, and saving half
642
+ * of it produces a state that restores without signing anyone
643
+ * in.
644
+ */
645
+ saveState(): Promise<SavedState>;
646
+ /**
647
+ * Wear a state saved earlier, and report exactly what landed.
648
+ *
649
+ * Cookies go to the browser, so they apply whatever page is
650
+ * open. The DOM stores are scoped to an origin, so they can only
651
+ * be written while the session is on the origin they came from,
652
+ * and the answer says when they were not rather than counting
653
+ * them as restored. A caller who is told they are signed in and
654
+ * is not will blame the site.
655
+ */
656
+ loadState(state: SavedState): Promise<{
657
+ cookies: number;
658
+ local: number;
659
+ session: number;
660
+ wrongOrigin?: string;
661
+ }>;
662
+ /** Empty the stores named, and only those. */
663
+ clearStorage(wanted: {
664
+ local?: boolean;
665
+ session?: boolean;
666
+ cookies?: boolean;
667
+ }): Promise<void>;
668
+ /**
669
+ * Read the clipboard.
670
+ *
671
+ * Chrome refuses this unless the permission is granted against
672
+ * the browser context, not merely the origin, and unless the
673
+ * read is attributed to a user gesture. Both were measured;
674
+ * either alone still gets a refusal.
675
+ */
676
+ private clipboard;
677
+ /** Put text on the clipboard. */
678
+ writeClipboard(text: string): Promise<void>;
679
+ /** Ask for clipboard access against this context. */
680
+ private grantClipboard;
681
+ /** The origin the current page's stores are keyed by. */
682
+ private origin;
683
+ /**
684
+ * Bend the network: mock a reply, block a request, slow it all
685
+ * down, or stop pretending.
686
+ *
687
+ * Interception is only attached while there is a rule to
688
+ * apply. Every paused request has to be answered or the page
689
+ * waits on it forever, so an interceptor with nothing to say
690
+ * is a liability rather than a neutral bystander.
691
+ */
692
+ shape(change: {
693
+ rules?: readonly NetworkRule[];
694
+ /** Conditions, or the name of a profile such as slow-3g. */
695
+ throttle?: ThrottleConditions | string;
696
+ clear?: boolean;
697
+ }): Promise<{
698
+ rules: readonly NetworkRule[];
699
+ throttle: ThrottleConditions | undefined;
700
+ }>;
701
+ /**
702
+ * Press a chord, or a sequence of them.
703
+ *
704
+ * Dispatch goes through the driver's keyboard rather than the
705
+ * protocol directly, because the driver owns the layout table
706
+ * that turns a key name into a code, a virtual key number and
707
+ * the text it produces. Keeping a second opinion about that
708
+ * would be a second thing to be wrong about.
709
+ */
710
+ press(keys: string): Promise<{
711
+ pressed: readonly string[];
712
+ } | {
713
+ refusal: ChordRefusal;
714
+ }>;
715
+ /** Send raw text as keystrokes, wherever focus happens to be. */
716
+ typeRaw(text: string): Promise<void>;
717
+ /** Dispatch a composed mouse gesture. */
718
+ pointerGesture(steps: readonly PointerEventStep[]): Promise<void>;
719
+ /** Scroll by wheel, which is not the same as scrolling by script. */
720
+ wheel(at: Point, byX: number, byY: number): Promise<void>;
721
+ /**
722
+ * Dispatch a composed touch gesture.
723
+ *
724
+ * Touch events reach the page whether or not touch emulation
725
+ * is on, so this never refuses. What emulation changes is what
726
+ * the page believes about itself: maxTouchPoints and the
727
+ * coarse-pointer media query. A page that decides at load time
728
+ * whether to attach touch handlers will not have attached any,
729
+ * and the gesture lands on nothing, so the caller is told
730
+ * rather than stopped.
731
+ */
732
+ touchGesture(steps: readonly TouchStep[]): Promise<void>;
733
+ /**
734
+ * Walk the page with the Tab key and report what happened.
735
+ *
736
+ * This is one of the two reads that deliberately change the
737
+ * page, since there is no way to learn where focus goes
738
+ * without moving it. Focus is put back afterwards and the
739
+ * result says so.
740
+ *
741
+ * The walk runs to twice the number of focusable things plus a
742
+ * little, which is enough for a healthy page to come round
743
+ * twice and for a trap to show its cycle. Stopping sooner
744
+ * would report a trap as a short page.
745
+ */
746
+ keyboardWalk(maxStops?: number): Promise<WalkCapture>;
747
+ /** Which way the document says it reads. */
748
+ private readingDirection;
749
+ /**
750
+ * The whole page flattened, frames and shadow content
751
+ * included.
752
+ *
753
+ * The style properties have to be named up front because the
754
+ * protocol returns their values as a bare array positioned
755
+ * against the request. Asking for a handful keeps the snapshot
756
+ * small; asking for none still gives geometry and structure.
757
+ */
758
+ snapshot(styleProperties?: readonly string[]): Promise<readonly IndexedNode[]>;
759
+ /**
760
+ * Run an expression in the page and describe what came back.
761
+ *
762
+ * The value is serialized inside the page rather than by the
763
+ * protocol, because the protocol does not decline politely: a
764
+ * circular object rejects the whole call with "object
765
+ * reference chain is too long", losing the evaluation and any
766
+ * account of it together.
767
+ *
768
+ * The protocol can still fail for its own reasons, so that is
769
+ * caught too and returned as a refusal rather than thrown. An
770
+ * expression that kills the session is not a useful tool.
771
+ */
772
+ evaluate(expression: string): Promise<EvalOutcome>;
773
+ /**
774
+ * Run axe-core against the page and read back its findings.
775
+ *
776
+ * axe is injected fresh on every call rather than kept across
777
+ * navigations. It is half a megabyte, but a navigation clears
778
+ * the world, and an audit that silently reported nothing
779
+ * because the library went away with the last page would be
780
+ * worse than a slow one.
781
+ *
782
+ * Only violations and incomplete results are asked for. Passes
783
+ * and inapplicable rules together outweigh them by an order of
784
+ * magnitude and answer a question nobody asks.
785
+ *
786
+ * The experimental rules are switched on. axe leaves them off,
787
+ * and five of them carry real WCAG criteria, so leaving them
788
+ * off means 2.5.3 (label in name) is never checked and 1.3.1
789
+ * is checked less thoroughly than it looks. An accessibility
790
+ * reviewer reported label in name as missing, and it was, in
791
+ * the sense that matters: the rule sat in the bundle unused.
792
+ * Their findings are reported as needing a person rather than
793
+ * as failures, since axe's own doubt travels with them.
794
+ */
795
+ audit(bar?: ConformanceBar): Promise<readonly A11yFinding[]>;
796
+ /**
797
+ * The page as the structural rules need to see it.
798
+ *
799
+ * Two accounts from the browser, joined on the backend node id
800
+ * they share: the snapshot for attributes and layout, the
801
+ * accessibility tree for roles and names. Neither carries
802
+ * both, and every structural rule needs both.
803
+ */
804
+ /**
805
+ * What holds focus at this moment, moving nothing.
806
+ *
807
+ * The keyboard walk answers what a whole page does; this answers
808
+ * where focus is right now, which is the question between
809
+ * actions. It reads rather than presses, so it can be asked after
810
+ * a click or a navigation without disturbing what it reports.
811
+ */
812
+ focusHolder(): Promise<FocusHolder | undefined>;
813
+ structure(): Promise<readonly StructureNode[]>;
814
+ /**
815
+ * What the layout actually did, as the browser measured it.
816
+ *
817
+ * Read in one page-side pass rather than a protocol call per
818
+ * element: a page of any size would otherwise cost thousands
819
+ * of round trips to answer one question.
820
+ */
821
+ /**
822
+ * Every pointer target on the page, with the facts WCAG 2.5.8
823
+ * needs to judge its size.
824
+ *
825
+ * Separate from layout() because the two ask different
826
+ * questions: layout wants everything drawn, this wants only
827
+ * what a finger has to hit, plus the two exceptions the
828
+ * criterion turns on.
829
+ */
830
+ targets(): Promise<readonly CapturedTarget[]>;
831
+ layout(): Promise<{
832
+ readonly nodes: readonly VisualNode[];
833
+ readonly viewport: PageBox;
834
+ }>;
835
+ /**
836
+ * What the page is built from, sampled element by element.
837
+ *
838
+ * Read in one page-side pass, and filtered there rather than
839
+ * here: an inherited value is not a decision, and carrying
840
+ * every element's inherited colour back only to discard it
841
+ * would be most of the payload.
842
+ */
843
+ styleSamples(): Promise<readonly StyleSample[]>;
844
+ /**
845
+ * Install the performance observers ahead of every page.
846
+ *
847
+ * Largest contentful paint and layout shift are events rather
848
+ * than state, so an observer registered after a page loads has
849
+ * missed them. The buffered flag recovers the timings but not
850
+ * the element that painted or the nodes that moved, which is
851
+ * the half worth having, so this goes in through the hook that
852
+ * runs before the document does.
853
+ */
854
+ private watchVitals;
855
+ /** What the current page cost to show. */
856
+ vitals(): Promise<Vitals>;
857
+ /** Run a page-side source string and read back its value. */
858
+ private evaluateJson;
859
+ /** Whether the page believes it is being touched. */
860
+ get touchEmulated(): boolean;
861
+ /**
862
+ * Wait for the page to reach a state, and say what happened.
863
+ *
864
+ * The timeout is a real answer rather than an error. A page
865
+ * that never reaches the state is the finding, so the outcome
866
+ * carries what was true instead.
867
+ */
868
+ waitFor(condition: WaitCondition, timeoutMs?: number): Promise<WaitOutcome>;
869
+ /** Look once: is the condition true right now? */
870
+ private check;
871
+ /**
872
+ * Everything this session has accumulated, in one reading.
873
+ *
874
+ * Emulation, interception and dialog policy all change what
875
+ * every other reading means, and none of them is visible in
876
+ * those readings, so they are gathered here.
877
+ */
878
+ status(): Promise<SessionStatus>;
879
+ /** How the network is currently being bent. */
880
+ get shaping(): {
881
+ rules: readonly NetworkRule[];
882
+ throttle: ThrottleConditions | undefined;
883
+ };
884
+ /**
885
+ * What the page has announced since a cursor, with the cursor
886
+ * to read from next time and how many were dropped.
887
+ */
888
+ heard(since?: number): Promise<{
889
+ entries: readonly Recorded<Announcement>[];
890
+ cursor: number;
891
+ dropped: number;
892
+ }>;
893
+ /** Close the tab and the context holding its state. */
894
+ close(): Promise<void>;
895
+ /**
896
+ * Everything worth knowing about one element.
897
+ *
898
+ * Each fact is asked of the browser rather than worked out
899
+ * here: the box from the layout engine, the occluder from a
900
+ * hit test, the styles from the cascade, the announcement from
901
+ * the accessibility tree.
902
+ */
903
+ inspect(target: Target, options?: InspectOptions): Promise<InspectResult>;
904
+ /**
905
+ * Which fonts the browser actually painted with.
906
+ *
907
+ * A computed style reports the stack that was asked for, not
908
+ * what was used. "SF Pro, Helvetica, sans-serif" reads the same
909
+ * whether the first one loaded or the page quietly fell back to
910
+ * the third, which is most of the answer to why a screenshot
911
+ * from one machine does not match another.
912
+ */
913
+ private fontsOf;
914
+ /**
915
+ * The element's own words, and the attributes it carries.
916
+ *
917
+ * The accessible name answers what a control is called, which
918
+ * is a different question from what it says. A counter reading
919
+ * "42", a status reading "3 items updated" and an input holding
920
+ * a typed email all have names that say none of that, so
921
+ * asserting on them meant dropping to a raw evaluate. Data
922
+ * attributes are here for the same reason: teams hang test
923
+ * state on them, and the accessibility tree cannot see them.
924
+ */
925
+ private contentOf;
926
+ /**
927
+ * A handle on the element inside this session.
928
+ *
929
+ * Object identifiers belong to the protocol session that
930
+ * minted them, so puppeteer's own handles are unusable here.
931
+ * A backend node id is the identity both sides agree on.
932
+ */
933
+ private objectFor;
934
+ /**
935
+ * Swap a text node for the element that paints it.
936
+ *
937
+ * A `StaticText` target resolves to a text node, which is right
938
+ * for reading its box and wrong for everything that touches
939
+ * style. Returns the original handle when it is already an
940
+ * element, so callers can promote unconditionally.
941
+ */
942
+ private paintingElement;
943
+ /** Let go of a handle, whether or not the page still has it. */
944
+ private release;
945
+ /** Gather every fact about an element the browser will give. */
946
+ private inspectNode;
947
+ /**
948
+ * Photograph the page, or one element of it.
949
+ *
950
+ * Images never come back inline: a screenshot is far larger
951
+ * than any response budget and would crowd out the reading it
952
+ * was meant to illustrate. They go to the session's bundle
953
+ * directory and the answer carries the paths.
954
+ *
955
+ * A full-page capture is tiled, because a long page makes an
956
+ * image taller than a model will accept. The tiling and its
957
+ * ceiling are the ones web_read already uses, so a page reads
958
+ * the same either way.
959
+ */
960
+ shoot(options?: ShotOptions): Promise<ShotResult>;
961
+ /** Force or release a state for the duration of a capture. */
962
+ private holdState;
963
+ /** Take the picture and write it out. */
964
+ private capture;
965
+ /**
966
+ * Compare the page now against a baseline of it, or record
967
+ * one when there is none.
968
+ *
969
+ * A missing baseline is not a failure. The first run of any
970
+ * comparison has nothing to compare against, and refusing
971
+ * would make the tool need a setup step it can perform itself.
972
+ *
973
+ * The elements are read after the shot rather than before, so
974
+ * a region is attributed against the layout that was actually
975
+ * photographed.
976
+ */
977
+ compareToBaseline(label: string, options?: {
978
+ readonly update?: boolean;
979
+ readonly threshold?: number;
980
+ }): Promise<{
981
+ readonly comparison: Comparison | undefined;
982
+ readonly recorded?: string;
983
+ readonly artifacts: readonly string[];
984
+ }>;
985
+ /**
986
+ * Where this session's baselines live.
987
+ *
988
+ * Under the data directory, not the bundle root. This used to
989
+ * sit at BUNDLE_ROOT/baselines, which the bundle reaper treats
990
+ * as an ownerless directory (the name is not a pid) and deletes
991
+ * once it is six hours old. Writing a baseline touches the
992
+ * session subdirectory rather than its parent, so the parent's
993
+ * age kept climbing and a stable set of baselines was reaped on
994
+ * a timer. The next comparison then found nothing, recorded the
995
+ * current page as truth and reported a warning, which is data
996
+ * loss wearing a first run's clothes.
997
+ *
998
+ * A baseline is a durable artifact the user asked for and may
999
+ * want to look at, which is what dataDir is for.
1000
+ */
1001
+ private baselineDir;
1002
+ /**
1003
+ * What a baseline was taken under, stored beside the image.
1004
+ *
1005
+ * Without this a comparison cannot tell a regression from a
1006
+ * change of subject: record on one page, navigate to another,
1007
+ * and the diff reports confident failures attributed to the
1008
+ * second page's elements. The size check alone cannot see it,
1009
+ * because two pages at one viewport are the same size.
1010
+ */
1011
+ private provenance;
1012
+ /** Carry out an action against an element judged ready. */
1013
+ private perform;
1014
+ /**
1015
+ * Wait until an element can actually be acted on.
1016
+ *
1017
+ * A click on an element that is not ready does nothing and
1018
+ * says nothing, leaving a caller believing the page was acted
1019
+ * on. So readiness is established first, and when the budget
1020
+ * runs out the condition still in the way is reported rather
1021
+ * than the action being attempted regardless.
1022
+ */
1023
+ private awaitReady;
1024
+ /** One look at whether an element is ready. */
1025
+ private readinessOf;
1026
+ /**
1027
+ * Whether something is painted over the element's centre.
1028
+ *
1029
+ * Only the centre, unlike a full inspection: this runs on
1030
+ * every poll, and the centre is where a click is aimed.
1031
+ */
1032
+ private coveredAtCentre;
1033
+ /** What is listening on the element. */
1034
+ private listenersOf;
1035
+ /**
1036
+ * What is listening further up, which events from here reach.
1037
+ *
1038
+ * The protocol reads listeners off one object at a time and can
1039
+ * walk down into children but not up, so the ancestors are
1040
+ * collected in the page and each one asked separately. A live
1041
+ * button whose click was handled on the body reported nothing
1042
+ * listening, which is the answer that most invites the wrong
1043
+ * conclusion from an inspection meant to explain a dead click.
1044
+ */
1045
+ private delegatedTo;
1046
+ /** Ask each ancestor in the array what is listening on it. */
1047
+ private listenersUp;
1048
+ /** What is moving on the element. */
1049
+ private animationsOf;
1050
+ /**
1051
+ * How the element looks in each state, against how it looks at
1052
+ * rest.
1053
+ *
1054
+ * The forced state is always released afterwards, including
1055
+ * when a reading throws part way through. Leaving a page stuck
1056
+ * in a forced hover would quietly corrupt every later
1057
+ * observation of it.
1058
+ */
1059
+ private variantsOf;
1060
+ /**
1061
+ * Let whatever the forced state started finish before reading.
1062
+ *
1063
+ * Without this the reading catches a transition at its resting
1064
+ * values and reports that the state changes nothing, which is
1065
+ * exactly backwards.
1066
+ */
1067
+ private settleForcedState;
1068
+ /** The front-end node id, which the CSS agent works in. */
1069
+ private frontendNodeFor;
1070
+ /** The element's four boxes, or nothing when it has none. */
1071
+ private boxOf;
1072
+ /** Every computed property of the element, as the browser has it. */
1073
+ private stylesOf;
1074
+ /**
1075
+ * What every property computes to untouched, read once per
1076
+ * session. These decide which values were actually chosen.
1077
+ */
1078
+ private initials;
1079
+ /** Why one property has the value it has. */
1080
+ private traceOf;
1081
+ /**
1082
+ * Tell each declaration in a trace where it was written.
1083
+ *
1084
+ * A build step that rewrote the CSS makes the reported line
1085
+ * useless in the same way a minified stack frame is: it names
1086
+ * a file nobody edits. The winner is usually the declaration
1087
+ * somebody wants to go and change, so it is the one that most
1088
+ * needs an address that exists.
1089
+ */
1090
+ private authorTrace;
1091
+ /** The area a person can currently see. */
1092
+ private viewport;
1093
+ /**
1094
+ * How far the page has been scrolled, in CSS pixels.
1095
+ *
1096
+ * Read from the browser's own layout metrics rather than from the
1097
+ * page, so a capture does not have to run script to be correct.
1098
+ * Answers zero when the metrics are unavailable, which is what the
1099
+ * offset was assumed to be before it was asked for at all.
1100
+ */
1101
+ private scrollOffset;
1102
+ /**
1103
+ * What is painted over the element, if anything.
1104
+ *
1105
+ * The centre and the corners, since a full inspection should
1106
+ * report an element clipped at one edge. Anything the element
1107
+ * contains counts as itself, since a click there still reaches
1108
+ * it.
1109
+ */
1110
+ private occluderOf;
1111
+ /**
1112
+ * Who receives a click, when it is not us.
1113
+ *
1114
+ * The point is chosen inside the page rather than out here. Both
1115
+ * halves of the question used to be asked separately, the box
1116
+ * from the box model and the hit from `DOM.getNodeForLocation`,
1117
+ * and they disagree by the scroll offset, so anything the driver
1118
+ * had to scroll to was reported as covered by whatever sat at
1119
+ * the wrong point.
1120
+ */
1121
+ private hitTest;
1122
+ private resolve;
1123
+ /**
1124
+ * The backend node id behind a handle, or undefined if it has gone.
1125
+ *
1126
+ * This asks puppeteer rather than sending DOM.describeNode ourselves
1127
+ * because a remote object id is scoped to the session that minted it,
1128
+ * and these handles were minted by puppeteer's session, not ours.
1129
+ * Resolving them through this.cdp fails for every handle, which reads
1130
+ * as "no candidate matched" and refuses every act.
1131
+ */
1132
+ private backendIdOf;
1133
+ private axTree;
1134
+ /**
1135
+ * Each same-origin child frame's tree, and what owns it.
1136
+ *
1137
+ * Chrome answers for one frame at a time, so a page built from
1138
+ * embeds read as a row of empty boxes: the outline stopped at
1139
+ * the Iframe node and said nothing about stopping. Everything
1140
+ * downstream inherited that, so a keyboard walk skipped an
1141
+ * embedded form and an audit passed a page it had not seen.
1142
+ *
1143
+ * Breadth-first, parents before children, because the splice
1144
+ * attaches each frame to an owner that must already be in the
1145
+ * tree by the time its turn comes.
1146
+ *
1147
+ * A frame that cannot be read is left out rather than reported
1148
+ * as empty. Cross-origin frames are the common case and are a
1149
+ * real limit, not a fault; the count of what could not be read
1150
+ * belongs to the callers that already report it.
1151
+ */
1152
+ private frameTrees;
1153
+ }