@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,57 @@
1
+ /**
2
+ * One question that asks all the others.
3
+ *
4
+ * A person who has just changed something wants to know whether
5
+ * they broke anything, and does not want to run five checks to
6
+ * find out. This composes them into one answer: the worst
7
+ * standing across all of them, a line each, and the detail left
8
+ * behind a named kind.
9
+ *
10
+ * The digest deliberately reports what it could not run. A check
11
+ * that failed to execute is not a check that passed, and a
12
+ * digest that quietly drops one is worse than no digest, because
13
+ * it looks like coverage.
14
+ */
15
+ import { renderVerdict } from "./verdict.js";
16
+ const MARK = {
17
+ pass: "pass",
18
+ warn: "warn",
19
+ fail: "FAIL",
20
+ };
21
+ /** The worst standing among the parts. */
22
+ export function overallOf(parts) {
23
+ if (parts.some((part) => part.standing === "fail"))
24
+ return "fail";
25
+ return parts.some((part) => part.standing === "warn") ? "warn" : "pass";
26
+ }
27
+ /** Say how the page is doing, across every check. */
28
+ export function renderHealth(parts) {
29
+ if (parts.length === 0) {
30
+ return renderVerdict({ standing: "warn", headline: "No checks were run." }, "");
31
+ }
32
+ const width = Math.max(...parts.map((part) => part.kind.length));
33
+ const lines = parts.map((part) => ` ${part.kind.padEnd(width)} ${MARK[part.standing].padEnd(4)} ` +
34
+ part.headline);
35
+ const broken = parts.filter((part) => part.failedToRun);
36
+ const failing = parts.filter((part) => part.standing === "fail");
37
+ const warning = parts.filter((part) => part.standing === "warn");
38
+ return renderVerdict({
39
+ standing: overallOf(parts),
40
+ headline: headlineFor(failing, warning),
41
+ measured: broken.length === 0
42
+ ? `Ran ${parts.length} checks.`
43
+ : `Ran ${parts.length - broken.length} of ${parts.length} checks; ` +
44
+ `${broken.map((part) => part.kind).join(", ")} could not run.`,
45
+ }, [...lines, "", "Name a kind to run just that one in full."].join("\n"));
46
+ }
47
+ function headlineFor(failing, warning) {
48
+ if (failing.length > 0) {
49
+ return `${failing.map((part) => part.kind).join(", ")} ${failing.length === 1 ? "fails" : "fail"}.`;
50
+ }
51
+ if (warning.length > 0) {
52
+ return `Nothing fails, but ${warning
53
+ .map((part) => part.kind)
54
+ .join(", ")} raised something.`;
55
+ }
56
+ return "Everything checks out.";
57
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Judging a page against accessibility criteria.
3
+ *
4
+ * The arithmetic here is pure and capture-agnostic: colours and
5
+ * rectangles in, verdicts out. Nothing in this subdomain talks
6
+ * to a browser, which is what lets the same functions judge a
7
+ * live page, a stored capture or a design token.
8
+ */
9
+ export { type A11yFinding, type Authority, type AxeTally, authorityOf, type ConformanceBar, criteriaOf, ENHANCED_WCAG_RULES, EXPERIMENTAL_WCAG_RULES, enabledRules, type FindingKind, type FindingNode, hardestLevel, type Impact, levelsOf, MAX_NODE_HTML, mergeFindings, type RawAxeNode, type RawAxeResult, type RawAxeRun, readAxeRun, readResult, tallyFindings, withinBar, } from "./axe.js";
10
+ export { type BehindReport, foldBehind, type Pixels, type Rgb, renderBehind, } from "./behind.js";
11
+ export { type AxFacts, buildStructure, selectorFor, } from "./capture.js";
12
+ export { composite, contrastRatio, deltaE, formatRgb, isOpaque, isTransparent, parseRgb, type Rgba, relativeLuminance, } from "./colour.js";
13
+ export { BOLD_WEIGHT, type ContrastLevel, type ContrastVerdict, isLargeText, judgeNonText, judgeText, LARGE_BOLD_PX, LARGE_TEXT_PX, NON_TEXT_MINIMUM, renderContrast, type TextSizing, textThreshold, undecidable, } from "./contrast.js";
14
+ export { overallOf, type Part, renderHealth } from "./health.js";
15
+ export { foldPair, type PaintedSide, type PairReport, renderPair, } from "./pair.js";
16
+ export { TARGET_CAPTURE, visualCaptureSource } from "./probe.js";
17
+ export { MAX_LISTED_NODES, renderAudit, renderFinding, renderIndex, renderSummary, } from "./report.js";
18
+ export { analyseStructure, autocompleteTokens, brokenReferences, formLabelling, headingOutline, hiddenButFocusable, IDREF_ATTRIBUTES, LANDMARK_ROLES, landmarkNaming, manualTabOrder, nestedInteractives, SINGLE_IDREF_ATTRIBUTES, type StructureNode, SUPERSEDED_BY, } from "./structure.js";
19
+ export { type Condition, conditionFrom, DEFAULT_WIDTHS, headlineOf, renderSweep, type Sweepable, standingOf, widthsToSweep, worstOf, } from "./sweep.js";
20
+ export { type CapturedTarget, ENHANCED_TARGET_PX, type HitTarget, judgeTarget, judgeTargets, MINIMUM_TARGET_PX, renderTargets, type TargetException, type TargetLevel, type TargetVerdict, targetFindings, } from "./target.js";
21
+ export { renderVerdict, type Standing, standingFor, type Verdict, } from "./verdict.js";
22
+ export { ASPECT_TOLERANCE, analyseVisual, brokenImages, clippedContent, distortedImages, escapedElements, HIDDEN_BOX_PX, horizontalOverflow, isVisuallyHidden, type PageBox, SMALL_TEXT_PX, tinyText, type VisualNode, } from "./visual.js";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Judging a page against accessibility criteria.
3
+ *
4
+ * The arithmetic here is pure and capture-agnostic: colours and
5
+ * rectangles in, verdicts out. Nothing in this subdomain talks
6
+ * to a browser, which is what lets the same functions judge a
7
+ * live page, a stored capture or a design token.
8
+ */
9
+ export { authorityOf, criteriaOf, ENHANCED_WCAG_RULES, EXPERIMENTAL_WCAG_RULES, enabledRules, hardestLevel, levelsOf, MAX_NODE_HTML, mergeFindings, readAxeRun, readResult, tallyFindings, withinBar, } from "./axe.js";
10
+ export { foldBehind, renderBehind, } from "./behind.js";
11
+ export { buildStructure, selectorFor, } from "./capture.js";
12
+ export { composite, contrastRatio, deltaE, formatRgb, isOpaque, isTransparent, parseRgb, relativeLuminance, } from "./colour.js";
13
+ export { BOLD_WEIGHT, isLargeText, judgeNonText, judgeText, LARGE_BOLD_PX, LARGE_TEXT_PX, NON_TEXT_MINIMUM, renderContrast, textThreshold, undecidable, } from "./contrast.js";
14
+ export { overallOf, renderHealth } from "./health.js";
15
+ export { foldPair, renderPair, } from "./pair.js";
16
+ export { TARGET_CAPTURE, visualCaptureSource } from "./probe.js";
17
+ export { MAX_LISTED_NODES, renderAudit, renderFinding, renderIndex, renderSummary, } from "./report.js";
18
+ export { analyseStructure, autocompleteTokens, brokenReferences, formLabelling, headingOutline, hiddenButFocusable, IDREF_ATTRIBUTES, LANDMARK_ROLES, landmarkNaming, manualTabOrder, nestedInteractives, SINGLE_IDREF_ATTRIBUTES, SUPERSEDED_BY, } from "./structure.js";
19
+ export { conditionFrom, DEFAULT_WIDTHS, headlineOf, renderSweep, standingOf, widthsToSweep, worstOf, } from "./sweep.js";
20
+ export { ENHANCED_TARGET_PX, judgeTarget, judgeTargets, MINIMUM_TARGET_PX, renderTargets, targetFindings, } from "./target.js";
21
+ export { renderVerdict, standingFor, } from "./verdict.js";
22
+ export { ASPECT_TOLERANCE, analyseVisual, brokenImages, clippedContent, distortedImages, escapedElements, HIDDEN_BOX_PX, horizontalOverflow, isVisuallyHidden, SMALL_TEXT_PX, tinyText, } from "./visual.js";
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Contrast between two elements the caller named.
3
+ *
4
+ * axe judges text against its background and reports the pairs it
5
+ * recognises. What it will not do is answer a question about two
6
+ * elements somebody chose: this icon against that card, this input's
7
+ * border against the page, this focused state against its resting
8
+ * one. Those are 1.4.11 territory, and the machinery for judging them
9
+ * has been here all along with nothing to reach it.
10
+ *
11
+ * Judging is the easy half. Choosing what to compare is where a tool
12
+ * like this earns or loses its trust, so the choice is made by one
13
+ * stated rule and reported alongside the ratio. A caller who
14
+ * disagrees can see exactly what was taken from each side.
15
+ */
16
+ import { type ContrastLevel, type TextSizing } from "./contrast.js";
17
+ /** What one side of the comparison paints. */
18
+ export interface PaintedSide {
19
+ /** Whether it has text of its own, which decides the criterion. */
20
+ readonly hasText: boolean;
21
+ readonly color?: string;
22
+ readonly backgroundColor?: string;
23
+ readonly borderColor?: string;
24
+ /** Needed only when it has text, to know which bar applies. */
25
+ readonly sizing?: TextSizing;
26
+ }
27
+ /** What the comparison found, and what it was between. */
28
+ export interface PairReport {
29
+ /** The property taken from each side, named so it can be argued with. */
30
+ readonly compared: {
31
+ readonly one: string;
32
+ readonly other: string;
33
+ };
34
+ readonly ratio: number;
35
+ readonly required: number;
36
+ /** The success criterion that applies to a pair of this kind. */
37
+ readonly criterion: "1.4.3" | "1.4.11";
38
+ readonly verdict: "pass" | "fail" | "undecidable";
39
+ /** Why it could not decide, when it could not. */
40
+ readonly undecided?: string;
41
+ }
42
+ /**
43
+ * Judge two elements against the criterion their pairing implies.
44
+ *
45
+ * Text on one side makes this 1.4.3, whose bar depends on the text
46
+ * size. Two painted surfaces make it 1.4.11, which asks three to one
47
+ * of any boundary a reader has to see.
48
+ */
49
+ export declare function foldPair(input: {
50
+ readonly one: PaintedSide;
51
+ readonly other: PaintedSide;
52
+ readonly bar: ContrastLevel;
53
+ }): PairReport;
54
+ /** Render a pairing as a verdict a reader can act on. */
55
+ export declare function renderPair(report: PairReport): string;
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Contrast between two elements the caller named.
3
+ *
4
+ * axe judges text against its background and reports the pairs it
5
+ * recognises. What it will not do is answer a question about two
6
+ * elements somebody chose: this icon against that card, this input's
7
+ * border against the page, this focused state against its resting
8
+ * one. Those are 1.4.11 territory, and the machinery for judging them
9
+ * has been here all along with nothing to reach it.
10
+ *
11
+ * Judging is the easy half. Choosing what to compare is where a tool
12
+ * like this earns or loses its trust, so the choice is made by one
13
+ * stated rule and reported alongside the ratio. A caller who
14
+ * disagrees can see exactly what was taken from each side.
15
+ */
16
+ import { isOpaque, parseRgb } from "./colour.js";
17
+ import { isLargeText, NON_TEXT_MINIMUM, } from "./contrast.js";
18
+ /** Relative luminance, per WCAG's definition. */
19
+ function luminance(colour) {
20
+ const channel = (raw) => {
21
+ const s = raw / 255;
22
+ return s <= 0.03928 ? s / 12.92 : ((s + 0.055) / 1.055) ** 2.4;
23
+ };
24
+ return (0.2126 * channel(colour.r) +
25
+ 0.7152 * channel(colour.g) +
26
+ 0.0722 * channel(colour.b));
27
+ }
28
+ /** The contrast ratio between two colours, per WCAG. */
29
+ function ratioOf(one, other) {
30
+ const [lighter, darker] = luminance(one) > luminance(other)
31
+ ? [luminance(one), luminance(other)]
32
+ : [luminance(other), luminance(one)];
33
+ return (lighter + 0.05) / (darker + 0.05);
34
+ }
35
+ /**
36
+ * Take the colour a reader actually sees on this side.
37
+ *
38
+ * The two sides are not interchangeable. The subject is the thing
39
+ * being judged, so its text comes first: an element with text is
40
+ * being read rather than looked at. The surface is what the subject
41
+ * sits against, and its own text is nothing to do with the question,
42
+ * so only what it paints counts. Reading text on both sides compared
43
+ * a heading's colour against a card's inherited colour and reported
44
+ * black on black at 1:1, which is how this rule was found.
45
+ *
46
+ * A see-through colour is not a colour: the thing behind it belongs
47
+ * to an ancestor this cannot name, so it is refused rather than
48
+ * guessed at.
49
+ */
50
+ function take(side, part) {
51
+ const wanted = part === "subject" && side.hasText
52
+ ? [["color", side.color]]
53
+ : [
54
+ ["background-color", side.backgroundColor],
55
+ ["border-color", side.borderColor],
56
+ ];
57
+ for (const [property, stated] of wanted) {
58
+ if (stated === undefined)
59
+ continue;
60
+ const colour = parseRgb(stated);
61
+ if (!colour) {
62
+ return {
63
+ ok: false,
64
+ why: `its ${property} could not be read, being "${stated}"`,
65
+ };
66
+ }
67
+ // Transparent is worth stepping past rather than failing on,
68
+ // since the next candidate is usually the one doing the work.
69
+ if (!isOpaque(colour))
70
+ continue;
71
+ return { ok: true, property, colour };
72
+ }
73
+ return {
74
+ ok: false,
75
+ why: "it paints nothing of its own, so there is no colour to compare",
76
+ };
77
+ }
78
+ /**
79
+ * Judge two elements against the criterion their pairing implies.
80
+ *
81
+ * Text on one side makes this 1.4.3, whose bar depends on the text
82
+ * size. Two painted surfaces make it 1.4.11, which asks three to one
83
+ * of any boundary a reader has to see.
84
+ */
85
+ export function foldPair(input) {
86
+ const { one, other, bar } = input;
87
+ // The subject decides the criterion. Whether the surface behind it
88
+ // happens to carry text of its own says nothing about what is being
89
+ // judged here.
90
+ const criterion = one.hasText ? "1.4.3" : "1.4.11";
91
+ const large = isLargeText(one.sizing ?? other.sizing ?? DEFAULT_SIZING);
92
+ const required = criterion === "1.4.11"
93
+ ? NON_TEXT_MINIMUM
94
+ : bar === "AAA"
95
+ ? large
96
+ ? 4.5
97
+ : 7
98
+ : large
99
+ ? 3
100
+ : 4.5;
101
+ const first = take(one, "subject");
102
+ const second = take(other, "surface");
103
+ // Each side is refused on its own, which is what lets the pair
104
+ // below be read as two colours without a cast.
105
+ const undecided = (which, why) => ({
106
+ compared: {
107
+ one: first.ok ? first.property : "nothing",
108
+ other: second.ok ? second.property : "nothing",
109
+ },
110
+ ratio: 0,
111
+ required,
112
+ criterion,
113
+ verdict: "undecidable",
114
+ undecided: `${which}: ${why}`,
115
+ });
116
+ if (!first.ok)
117
+ return undecided("the first element", first.why);
118
+ if (!second.ok)
119
+ return undecided("the second element", second.why);
120
+ const ratio = ratioOf(first.colour, second.colour);
121
+ return {
122
+ compared: { one: first.property, other: second.property },
123
+ ratio,
124
+ required,
125
+ criterion,
126
+ verdict: ratio >= required ? "pass" : "fail",
127
+ };
128
+ }
129
+ /** Sizing to assume when neither side stated any. */
130
+ const DEFAULT_SIZING = { fontSizePx: 16, fontWeight: 400 };
131
+ /** Render a pairing as a verdict a reader can act on. */
132
+ export function renderPair(report) {
133
+ if (report.verdict === "undecidable") {
134
+ return [
135
+ "WARN the contrast between these two could not be judged",
136
+ "",
137
+ `Nothing was measured because ${report.undecided}.`,
138
+ "",
139
+ "A see-through colour belongs to whatever is behind it, which " +
140
+ "this cannot name. Point at the element that actually paints " +
141
+ "the surface, or use kind \"contrast\" with 'within' alone to " +
142
+ "measure text against the pixels behind its glyphs.",
143
+ ].join("\n");
144
+ }
145
+ const mark = report.verdict === "pass" ? "PASS" : "FAIL";
146
+ const criterion = report.criterion === "1.4.3"
147
+ ? "1.4.3 contrast of text"
148
+ : "1.4.11 contrast of things that are not text";
149
+ return [
150
+ `${mark} ${report.ratio.toFixed(2)}:1, against ${report.required}:1 ` +
151
+ `required by ${criterion}`,
152
+ "",
153
+ `Measured between the ${report.compared.one} of the first and the ` +
154
+ `${report.compared.other} of the second. Name different elements ` +
155
+ "if that is not the boundary you meant.",
156
+ ].join("\n");
157
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Asking the page what its layout did.
3
+ *
4
+ * Every number here is one the browser computed: bounding
5
+ * rectangles, scroll against client dimensions, the resolved
6
+ * overflow, an image's own size. None of it is derived from CSS
7
+ * text, because the CSS is not what happened, the layout is.
8
+ *
9
+ * It ships as a source string because it declares helpers, and
10
+ * the bundler rewrites named inner bindings through a wrapper
11
+ * the page does not have.
12
+ */
13
+ /**
14
+ * Build the expression that collects the layout capture.
15
+ *
16
+ * Only elements the browser actually drew are collected, since
17
+ * a rule about how something looks has nothing to say about
18
+ * something that was never painted.
19
+ */
20
+ export declare function visualCaptureSource(): string;
21
+ /**
22
+ * Collect every pointer target on the page with the facts WCAG
23
+ * 2.5.8 needs to judge it.
24
+ *
25
+ * The two exceptions the criterion turns on are both facts about
26
+ * layout that only the browser can settle, so both are measured
27
+ * here rather than guessed from a tag name. A target is inline
28
+ * when the browser lays it out inline inside a run of text, and
29
+ * user-agent controlled when the page sets no size for it.
30
+ */
31
+ export declare const TARGET_CAPTURE = "(() => {\n\t\n\tconst __shadowOf = (el) => {\n\t\ttry { return el.shadowRoot; } catch { return null; }\n\t};\n\tconst __docOf = (el) => {\n\t\t// Reaching into a cross-origin frame throws by design.\n\t\ttry { return el.contentDocument; } catch { return null; }\n\t};\n\tlet __unreachableFrames = 0;\n\tconst deepElements = (root) => {\n\t\tconst out = [];\n\t\tconst visit = (node) => {\n\t\t\tfor (const el of node.querySelectorAll(\"*\")) {\n\t\t\t\tout.push(el);\n\t\t\t\tconst shadow = __shadowOf(el);\n\t\t\t\tif (shadow) visit(shadow);\n\t\t\t\tif (el.tagName === \"IFRAME\" || el.tagName === \"FRAME\") {\n\t\t\t\t\tconst doc = __docOf(el);\n\t\t\t\t\tif (doc && doc.documentElement) visit(doc);\n\t\t\t\t\telse __unreachableFrames++;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvisit(root || document);\n\t\treturn out;\n\t};\n\tconst __oneSelector = (el) => {\n\t\tconst tag = el.tagName.toLowerCase();\n\t\tif (el.id) return \"#\" + el.id;\n\t\tconst hook = el.getAttribute(\"data-testid\");\n\t\tif (hook) return tag + '[data-testid=\"' + hook + '\"]';\n\t\tconst first = el.classList && el.classList[0];\n\t\tif (first) return tag + \".\" + first;\n\t\tconst parent = el.parentElement;\n\t\tif (!parent) return tag;\n\t\tconst kin = [...parent.children].filter((c) => c.tagName === el.tagName);\n\t\tif (kin.length === 1) return tag;\n\t\treturn tag + \":nth-of-type(\" + (kin.indexOf(el) + 1) + \")\";\n\t};\n\t// Cross a boundary by naming the host, so the path can be\n\t// followed by hand: \"my-card >> button\".\n\tconst deepSelectorFor = (el) => {\n\t\tconst parts = [__oneSelector(el)];\n\t\tlet node = el;\n\t\tfor (let hops = 0; hops < 10; hops++) {\n\t\t\tconst root = node.getRootNode ? node.getRootNode() : null;\n\t\t\tconst host = root && root.host;\n\t\t\tconst frame = root && root.defaultView && root.defaultView.frameElement;\n\t\t\tconst crossing = host || frame;\n\t\t\tif (!crossing) break;\n\t\t\tparts.unshift(__oneSelector(crossing));\n\t\t\tnode = crossing;\n\t\t}\n\t\treturn parts.join(\" >> \");\n\t};\n\n\t\n\t// The browser's own answer, but only when asked the whole\n\t// question. Bare checkVisibility() reports on display alone,\n\t// so it calls a visibility:hidden control visible, and real\n\t// apps hide closed menus and dialogs exactly that way.\n\t//\n\t// opacity is deliberately not asked about. An opacity:0\n\t// control is still in the focus order and still clickable, so\n\t// treating it as absent buries real defects rather than\n\t// avoiding false ones.\n\tconst visible = (el) =>\n\t\ttypeof el.checkVisibility === \"function\"\n\t\t\t? el.checkVisibility({\n\t\t\t\t\tvisibilityProperty: true,\n\t\t\t\t\tcontentVisibilityAuto: true,\n\t\t\t\t})\n\t\t\t: el.getClientRects().length > 0;\n\n\t// inert takes a subtree out of interaction without changing\n\t// anything about how it looks, so no style question finds it.\n\t// A closed dialog is the ordinary case.\n\tconst inertHere = (el) =>\n\t\ttypeof el.closest === \"function\" && el.closest(\"[inert]\") !== null;\n\n\t// The screen-reader-only family: clipped to nothing, or parked\n\t// off the left edge where no scrollable area is created. Such\n\t// an element is deliberately not shown to sighted users, so it\n\t// is not something they can look at or aim a pointer at.\n\tconst visuallyHidden = (el) => {\n\t\tconst rect = el.getBoundingClientRect();\n\t\tconst tiny =\n\t\t\trect.width <= 4 && rect.height <= 4;\n\t\tconst style = getComputedStyle(el);\n\t\tif (tiny && style.clipPath !== \"none\") return true;\n\t\tif (tiny && style.overflowX === \"hidden\") return true;\n\t\treturn rect.x + rect.width < 0;\n\t};\n\n\t// Offered to somebody: painted, not inert, and not hidden by\n\t// one of the idioms above.\n\tconst presented = (el) =>\n\t\tvisible(el) && !inertHere(el) && !visuallyHidden(el);\n\n\tconst selector = [\n\t\t\"a[href]\", \"button\", \"input\", \"select\", \"textarea\", \"summary\",\n\t\t\"[role=button]\", \"[role=link]\", \"[role=checkbox]\", \"[role=radio]\",\n\t\t\"[role=switch]\", \"[role=tab]\", \"[role=menuitem]\", \"[role=option]\",\n\t].join(\",\");\n\n\n\t// Inline in the specification's sense: laid out inline, and\n\t// sitting among text rather than alone in its own block. A\n\t// link in a sentence is excepted; a link that happens to be\n\t// display:inline but is the only thing in its parent is not.\n\tconst inTextFlow = (el, style) => {\n\t\tif (style.display !== \"inline\") return false;\n\t\tconst parent = el.parentElement;\n\t\tif (!parent) return false;\n\t\tlet text = \"\";\n\t\tfor (const node of parent.childNodes) {\n\t\t\tif (node.nodeType === 3) text += node.nodeValue || \"\";\n\t\t}\n\t\treturn text.trim().length > 0;\n\t};\n\n\t// The criterion's other exception, for a control whose size\n\t// the user agent decides and the author never touched, is not\n\t// claimed here. Nothing the page can ask distinguishes \"the\n\t// browser chose this size\" from \"a stylesheet chose it\": a\n\t// first attempt read the inline style attribute, which sees\n\t// nothing when the size comes from a class, and excepted every\n\t// undersized button on the fixture. Guessing it wrong excuses\n\t// real failures, and a well-spaced native control is already\n\t// excepted by the spacing rule below, so the honest move is to\n\t// measure what we can and leave this to a person.\n\n\tconst targets = [];\n\tlet index = 0;\n\tfor (const el of deepElements(document)) {\n\t\tif (!el.matches(selector)) continue;\n\t\tif (el.disabled) continue;\n\t\t// Only things a pointer is actually offered. A control inside\n\t\t// a closed dialog is not aimed at, and a screen-reader-only\n\t\t// input is operated through its visible label rather than its\n\t\t// own one-pixel box: reporting those as undersized targets\n\t\t// filed ten failures against a page that has none.\n\t\tif (!presented(el)) continue;\n\t\tconst rect = el.getBoundingClientRect();\n\t\tif (rect.width <= 0 || rect.height <= 0) continue;\n\t\tconst style = getComputedStyle(el);\n\t\tconst id = \"t\" + index++;\n\t\tconst target = {\n\t\t\tid,\n\t\t\tselector: deepSelectorFor(el),\n\t\t\trect: {\n\t\t\t\tx: rect.x + scrollX, y: rect.y + scrollY,\n\t\t\t\twidth: rect.width, height: rect.height,\n\t\t\t},\n\t\t};\n\t\tif (inTextFlow(el, style)) target.inline = true;\n\t\ttargets.push(target);\n\t}\n\treturn targets;\n})()";
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Asking the page what its layout did.
3
+ *
4
+ * Every number here is one the browser computed: bounding
5
+ * rectangles, scroll against client dimensions, the resolved
6
+ * overflow, an image's own size. None of it is derived from CSS
7
+ * text, because the CSS is not what happened, the layout is.
8
+ *
9
+ * It ships as a source string because it declares helpers, and
10
+ * the bundler rewrites named inner bindings through a wrapper
11
+ * the page does not have.
12
+ */
13
+ import { DEEP_DOM } from "../snapshot/deep.js";
14
+ import { PRESENTED } from "../snapshot/presented.js";
15
+ /** How much text to carry back per element. */
16
+ const MAX_TEXT = 120;
17
+ /**
18
+ * Build the expression that collects the layout capture.
19
+ *
20
+ * Only elements the browser actually drew are collected, since
21
+ * a rule about how something looks has nothing to say about
22
+ * something that was never painted.
23
+ */
24
+ export function visualCaptureSource() {
25
+ return `(() => {
26
+ ${DEEP_DOM}
27
+ ${PRESENTED}
28
+ const MAX_TEXT = ${MAX_TEXT};
29
+
30
+ const ownText = (el) => {
31
+ let out = "";
32
+ for (const child of el.childNodes) {
33
+ if (child.nodeType === 3) out += child.nodeValue || "";
34
+ }
35
+ return out.trim().slice(0, MAX_TEXT);
36
+ };
37
+
38
+ const selectorFor = (el) => {
39
+ const tag = el.tagName.toLowerCase();
40
+ if (el.id) return "#" + el.id;
41
+ const hook = el.getAttribute("data-testid");
42
+ if (hook) return tag + '[data-testid="' + hook + '"]';
43
+ const first = el.classList[0];
44
+ if (first) return tag + "." + first;
45
+ const parent = el.parentElement;
46
+ if (!parent) return tag;
47
+ const kin = [...parent.children].filter((c) => c.tagName === el.tagName);
48
+ if (kin.length === 1) return tag;
49
+ return tag + ":nth-of-type(" + (kin.indexOf(el) + 1) + ")";
50
+ };
51
+
52
+ const nodes = [];
53
+ let index = 0;
54
+ for (const el of deepElements(document)) {
55
+ const tag = el.tagName.toLowerCase();
56
+ if (tag === "script" || tag === "style" || tag === "head") continue;
57
+ // Painted at all: the browser's own answer, and the only one
58
+ // that accounts for a display:none ancestor. Visually-hidden
59
+ // idioms are not excluded here, because the layout rules
60
+ // recognise those themselves and want to see them.
61
+ if (!visible(el)) continue;
62
+ const rect = el.getBoundingClientRect();
63
+ const style = getComputedStyle(el);
64
+ const node = {
65
+ id: "v" + index++,
66
+ selector: deepSelectorFor(el),
67
+ tag,
68
+ rect: {
69
+ x: rect.x + scrollX,
70
+ y: rect.y + scrollY,
71
+ width: rect.width,
72
+ height: rect.height,
73
+ },
74
+ scrollWidth: el.scrollWidth,
75
+ scrollHeight: el.scrollHeight,
76
+ clientWidth: el.clientWidth,
77
+ clientHeight: el.clientHeight,
78
+ overflowX: style.overflowX,
79
+ overflowY: style.overflowY,
80
+ fontSizePx: Number.parseFloat(style.fontSize) || 0,
81
+ clipPath: style.clipPath,
82
+ // The three properties that separate a deliberate idiom
83
+ // from a defect. Without them the clipping rule cannot
84
+ // tell an ellipsis from an amputation, and the image rule
85
+ // cannot tell a cover crop from a squash, so both fire on
86
+ // most of the real web.
87
+ textOverflow: style.textOverflow,
88
+ lineClamp: style.webkitLineClamp || style.lineClamp || "none",
89
+ objectFit: style.objectFit,
90
+ };
91
+ const text = ownText(el);
92
+ if (text) node.text = text;
93
+ if (tag === "img") {
94
+ node.naturalWidth = el.naturalWidth;
95
+ node.naturalHeight = el.naturalHeight;
96
+ node.complete = el.complete;
97
+ node.src = el.currentSrc || el.src;
98
+ }
99
+ nodes.push(node);
100
+ }
101
+
102
+ return {
103
+ viewport: {
104
+ width: innerWidth,
105
+ height: innerHeight,
106
+ documentWidth: document.documentElement.scrollWidth,
107
+ documentHeight: document.documentElement.scrollHeight,
108
+ // The offset the rects above were taken against, so a
109
+ // caller working in viewport coordinates can get back.
110
+ scrollX, scrollY,
111
+ },
112
+ nodes,
113
+ };
114
+ })()`;
115
+ }
116
+ /**
117
+ * Collect every pointer target on the page with the facts WCAG
118
+ * 2.5.8 needs to judge it.
119
+ *
120
+ * The two exceptions the criterion turns on are both facts about
121
+ * layout that only the browser can settle, so both are measured
122
+ * here rather than guessed from a tag name. A target is inline
123
+ * when the browser lays it out inline inside a run of text, and
124
+ * user-agent controlled when the page sets no size for it.
125
+ */
126
+ export const TARGET_CAPTURE = `(() => {
127
+ ${DEEP_DOM}
128
+ ${PRESENTED}
129
+ const selector = [
130
+ "a[href]", "button", "input", "select", "textarea", "summary",
131
+ "[role=button]", "[role=link]", "[role=checkbox]", "[role=radio]",
132
+ "[role=switch]", "[role=tab]", "[role=menuitem]", "[role=option]",
133
+ ].join(",");
134
+
135
+
136
+ // Inline in the specification's sense: laid out inline, and
137
+ // sitting among text rather than alone in its own block. A
138
+ // link in a sentence is excepted; a link that happens to be
139
+ // display:inline but is the only thing in its parent is not.
140
+ const inTextFlow = (el, style) => {
141
+ if (style.display !== "inline") return false;
142
+ const parent = el.parentElement;
143
+ if (!parent) return false;
144
+ let text = "";
145
+ for (const node of parent.childNodes) {
146
+ if (node.nodeType === 3) text += node.nodeValue || "";
147
+ }
148
+ return text.trim().length > 0;
149
+ };
150
+
151
+ // The criterion's other exception, for a control whose size
152
+ // the user agent decides and the author never touched, is not
153
+ // claimed here. Nothing the page can ask distinguishes "the
154
+ // browser chose this size" from "a stylesheet chose it": a
155
+ // first attempt read the inline style attribute, which sees
156
+ // nothing when the size comes from a class, and excepted every
157
+ // undersized button on the fixture. Guessing it wrong excuses
158
+ // real failures, and a well-spaced native control is already
159
+ // excepted by the spacing rule below, so the honest move is to
160
+ // measure what we can and leave this to a person.
161
+
162
+ const targets = [];
163
+ let index = 0;
164
+ for (const el of deepElements(document)) {
165
+ if (!el.matches(selector)) continue;
166
+ if (el.disabled) continue;
167
+ // Only things a pointer is actually offered. A control inside
168
+ // a closed dialog is not aimed at, and a screen-reader-only
169
+ // input is operated through its visible label rather than its
170
+ // own one-pixel box: reporting those as undersized targets
171
+ // filed ten failures against a page that has none.
172
+ if (!presented(el)) continue;
173
+ const rect = el.getBoundingClientRect();
174
+ if (rect.width <= 0 || rect.height <= 0) continue;
175
+ const style = getComputedStyle(el);
176
+ const id = "t" + index++;
177
+ const target = {
178
+ id,
179
+ selector: deepSelectorFor(el),
180
+ rect: {
181
+ x: rect.x + scrollX, y: rect.y + scrollY,
182
+ width: rect.width, height: rect.height,
183
+ },
184
+ };
185
+ if (inTextFlow(el, style)) target.inline = true;
186
+ targets.push(target);
187
+ }
188
+ return targets;
189
+ })()`;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Reporting accessibility findings without drowning the reader.
3
+ *
4
+ * Summary first, then one line per rule, then detail only when
5
+ * asked for by rule name. A finding nobody can act on because it
6
+ * arrived inside forty kilobytes of markup is not a finding.
7
+ */
8
+ import { type A11yFinding, type AxeTally, type ConformanceBar } from "./axe.js";
9
+ /** How many elements to name under a rule before counting. */
10
+ export declare const MAX_LISTED_NODES = 5;
11
+ export declare function renderSummary(tally: AxeTally): string;
12
+ /** One line per rule: enough to choose what to read. */
13
+ export declare function renderIndex(findings: readonly A11yFinding[]): string;
14
+ /** Everything known about one rule, for when it is asked about. */
15
+ export declare function renderFinding(finding: A11yFinding): string;
16
+ /** The whole report, summary first. */
17
+ export declare function renderAudit(unordered: readonly A11yFinding[], tally: AxeTally, options?: {
18
+ readonly rule?: string;
19
+ readonly measured?: string;
20
+ /** The bar the audit was held to, when it was not the default. */
21
+ readonly bar?: ConformanceBar;
22
+ }): string;