@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,97 @@
1
+ /**
2
+ * Keeping a page outline inside a response.
3
+ *
4
+ * The outline is the most-returned payload in the whole family:
5
+ * every read of a page answers with one, and so does every
6
+ * navigation and every action, because the page after the fact is
7
+ * how a caller knows what their click did. Lists have been
8
+ * budgeted since the beginning. The outline was not, and a page
9
+ * whose outline is small is only the common case, not the rule:
10
+ * one source file of eighteen thousand lines, each line a
11
+ * listitem with a button and a text node, renders two and a half
12
+ * megabytes of perfectly good outline. A wheel scroll returned
13
+ * all of it.
14
+ *
15
+ * So the same rule as everywhere else. The limit is a
16
+ * presentation default rather than a ceiling, whole lines survive
17
+ * rather than bytes, and anything cut says so and says how to go
18
+ * and get it. The page is not the answer's size: narrowing the
19
+ * view is always available, and it is cheaper than reading the
20
+ * whole thing and discarding it.
21
+ */
22
+ import { withinLineBudget, } from "@jitsusama/agentic-harness.core/result";
23
+ /**
24
+ * What an explicit read of a page spends on the outline.
25
+ *
26
+ * Generous, because somebody who asked to see the page wants the
27
+ * page: this fits a normal application view whole and only bites
28
+ * on the pathological ones.
29
+ */
30
+ export const OUTLINE_BUDGET_BYTES = 16_384;
31
+ /**
32
+ * What the page view after an action spends.
33
+ *
34
+ * Tighter, because this outline was not asked for. It is
35
+ * confirmation of what just happened, and the caller who wants
36
+ * the page in full can read it in full.
37
+ */
38
+ export const ACTION_VIEW_BUDGET_BYTES = 4_096;
39
+ /**
40
+ * The most an outline will spend, however large a budget is asked
41
+ * for.
42
+ *
43
+ * Every other limit here is a presentation default that a caller
44
+ * can raise, because nothing should cap what this package can
45
+ * find out. A budget is different: it is not a limit on the
46
+ * finding, it is a limit on what gets pasted into a context
47
+ * window, and the whole point of storing the remainder is that
48
+ * raising it is never the way to see more. Left open, one call
49
+ * asking for a hundred megabytes undoes the entire mechanism, and
50
+ * the model choosing the number is the one party with no idea
51
+ * what it costs. Four times the generous default, which no real
52
+ * page reaches.
53
+ */
54
+ export const MAX_OUTLINE_BUDGET_BYTES = OUTLINE_BUDGET_BYTES * 4;
55
+ /**
56
+ * The budget to actually spend, given what was asked for.
57
+ *
58
+ * Refuses nothing: a caller who asks for more than the ceiling
59
+ * gets the ceiling, and the citation then tells them the rest is
60
+ * queryable, which is what they wanted in the first place.
61
+ */
62
+ export function outlineBudget(asked) {
63
+ if (asked === undefined)
64
+ return OUTLINE_BUDGET_BYTES;
65
+ return Math.max(1, Math.min(asked, MAX_OUTLINE_BUDGET_BYTES));
66
+ }
67
+ /**
68
+ * As much of an outline as the budget affords, and never none.
69
+ *
70
+ * The cutting is the general rule from agentic-harness.core's result
71
+ * module; what belongs to the page is the advice about what to do
72
+ * next, since narrowing a page read has its own vocabulary.
73
+ */
74
+ export function withinOutlineBudget(rendered, budget) {
75
+ const view = withinLineBudget(rendered, budget);
76
+ return {
77
+ ...view,
78
+ ...(view.cut > 0
79
+ ? { elided: outlineElision(view.cut, view.total, budget) }
80
+ : {}),
81
+ };
82
+ }
83
+ /**
84
+ * Say what the budget cut, and how the caller reads it anyway.
85
+ *
86
+ * Every escape named here is one this tool family actually
87
+ * offers, because a suggestion that does not work is worse than
88
+ * no suggestion: it costs a call to find out.
89
+ */
90
+ function outlineElision(cut, total, budget) {
91
+ return (`Cut ${cut.toLocaleString()} of ${total.toLocaleString()} outline ` +
92
+ `lines to fit the ${budget.toLocaleString()} byte budget. The page ` +
93
+ "is whole; this view is not. Narrow it rather than enlarging it: " +
94
+ "'only' reduces to landmarks, headings or interactive elements, " +
95
+ "'depth' keeps the top levels, 'within' reads one branch. Or raise " +
96
+ "'budget' to spend more of the response on it.");
97
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * What holds focus at this moment.
3
+ *
4
+ * Distinct from the keyboard walk, which presses Tab around the whole
5
+ * page and judges the journey. This answers the question asked
6
+ * between actions: after that click, that key, that navigation, where
7
+ * did focus end up? It moves nothing.
8
+ */
9
+ /**
10
+ * Ask the page what holds focus, without moving it.
11
+ *
12
+ * Shipped as a source string because it declares helpers. The
13
+ * accessible name is read the cheap way, from the attributes and
14
+ * text that produce one, rather than from the accessibility tree:
15
+ * this has to answer between actions without a tree walk, and the
16
+ * name is only there to identify what is already known to be
17
+ * focused.
18
+ */
19
+ export declare const FOCUS_PROBE = "(() => {\n const active = () => {\n // Focus inside a shadow root reads as the host from outside, so\n // the chain is followed down to the element that really has it.\n let el = document.activeElement;\n let shadowed = false;\n while (el && el.shadowRoot && el.shadowRoot.activeElement) {\n el = el.shadowRoot.activeElement;\n shadowed = true;\n }\n return { el: el, shadowed: shadowed };\n };\n\n const found = active();\n const el = found.el;\n if (!el) return undefined;\n\n const tag = el.tagName ? el.tagName.toLowerCase() : \"unknown\";\n const onBody = el === document.body || tag === \"html\";\n const labelled = () => {\n const aria = el.getAttribute && el.getAttribute(\"aria-label\");\n if (aria) return aria.trim();\n const by = el.getAttribute && el.getAttribute(\"aria-labelledby\");\n if (by) {\n const names = by.split(/\\s+/).map((id) => {\n const target = document.getElementById(id);\n return target ? (target.textContent || \"\").trim() : \"\";\n });\n const joined = names.filter(Boolean).join(\" \");\n if (joined) return joined;\n }\n if (el.labels && el.labels.length > 0) {\n return (el.labels[0].textContent || \"\").trim();\n }\n const own = (el.textContent || \"\").replace(/\\s+/g, \" \").trim();\n if (own) return own.slice(0, 80);\n const value = el.getAttribute && el.getAttribute(\"value\");\n return value ? value.trim() : \"\";\n };\n\n const box = el.getBoundingClientRect ? el.getBoundingClientRect() : undefined;\n const name = onBody ? \"\" : labelled();\n const role = el.getAttribute && el.getAttribute(\"role\");\n return {\n tag: tag,\n role: role || undefined,\n name: name || undefined,\n id: (el.id || undefined),\n onBody: onBody,\n inShadow: found.shadowed || undefined,\n rect: box && (box.width > 0 || box.height > 0)\n ? { x: box.x, y: box.y, width: box.width, height: box.height }\n : undefined,\n };\n})()";
20
+ /** The element focus is on, as the page reports it. */
21
+ export interface FocusHolder {
22
+ readonly tag: string;
23
+ readonly role?: string;
24
+ readonly name?: string;
25
+ readonly id?: string;
26
+ /** Focus is parked on the body, which means nothing holds it. */
27
+ readonly onBody: boolean;
28
+ readonly inShadow?: boolean;
29
+ readonly rect?: {
30
+ readonly x: number;
31
+ readonly y: number;
32
+ readonly width: number;
33
+ readonly height: number;
34
+ };
35
+ }
36
+ /** Say what holds focus, in the vocabulary the outline uses. */
37
+ export declare function renderFocus(holder: FocusHolder | undefined): string;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * What holds focus at this moment.
3
+ *
4
+ * Distinct from the keyboard walk, which presses Tab around the whole
5
+ * page and judges the journey. This answers the question asked
6
+ * between actions: after that click, that key, that navigation, where
7
+ * did focus end up? It moves nothing.
8
+ */
9
+ /**
10
+ * Ask the page what holds focus, without moving it.
11
+ *
12
+ * Shipped as a source string because it declares helpers. The
13
+ * accessible name is read the cheap way, from the attributes and
14
+ * text that produce one, rather than from the accessibility tree:
15
+ * this has to answer between actions without a tree walk, and the
16
+ * name is only there to identify what is already known to be
17
+ * focused.
18
+ */
19
+ export const FOCUS_PROBE = `(() => {
20
+ const active = () => {
21
+ // Focus inside a shadow root reads as the host from outside, so
22
+ // the chain is followed down to the element that really has it.
23
+ let el = document.activeElement;
24
+ let shadowed = false;
25
+ while (el && el.shadowRoot && el.shadowRoot.activeElement) {
26
+ el = el.shadowRoot.activeElement;
27
+ shadowed = true;
28
+ }
29
+ return { el: el, shadowed: shadowed };
30
+ };
31
+
32
+ const found = active();
33
+ const el = found.el;
34
+ if (!el) return undefined;
35
+
36
+ const tag = el.tagName ? el.tagName.toLowerCase() : "unknown";
37
+ const onBody = el === document.body || tag === "html";
38
+ const labelled = () => {
39
+ const aria = el.getAttribute && el.getAttribute("aria-label");
40
+ if (aria) return aria.trim();
41
+ const by = el.getAttribute && el.getAttribute("aria-labelledby");
42
+ if (by) {
43
+ const names = by.split(/\\s+/).map((id) => {
44
+ const target = document.getElementById(id);
45
+ return target ? (target.textContent || "").trim() : "";
46
+ });
47
+ const joined = names.filter(Boolean).join(" ");
48
+ if (joined) return joined;
49
+ }
50
+ if (el.labels && el.labels.length > 0) {
51
+ return (el.labels[0].textContent || "").trim();
52
+ }
53
+ const own = (el.textContent || "").replace(/\\s+/g, " ").trim();
54
+ if (own) return own.slice(0, 80);
55
+ const value = el.getAttribute && el.getAttribute("value");
56
+ return value ? value.trim() : "";
57
+ };
58
+
59
+ const box = el.getBoundingClientRect ? el.getBoundingClientRect() : undefined;
60
+ const name = onBody ? "" : labelled();
61
+ const role = el.getAttribute && el.getAttribute("role");
62
+ return {
63
+ tag: tag,
64
+ role: role || undefined,
65
+ name: name || undefined,
66
+ id: (el.id || undefined),
67
+ onBody: onBody,
68
+ inShadow: found.shadowed || undefined,
69
+ rect: box && (box.width > 0 || box.height > 0)
70
+ ? { x: box.x, y: box.y, width: box.width, height: box.height }
71
+ : undefined,
72
+ };
73
+ })()`;
74
+ /** Say what holds focus, in the vocabulary the outline uses. */
75
+ export function renderFocus(holder) {
76
+ if (!holder) {
77
+ return ("WARN what holds focus could not be read\n\n" +
78
+ "The page did not answer, which happens when nothing is " +
79
+ "loaded yet. Navigate, then ask again.");
80
+ }
81
+ if (holder.onBody) {
82
+ // Naming the body as the holder would read as a real control and
83
+ // hide the useful finding, which is that a key press went
84
+ // nowhere.
85
+ return ("Nothing holds focus.\n\n" +
86
+ "Focus is parked on the document, which is where the browser " +
87
+ "leaves it when no control has been given it. A tab from here " +
88
+ "starts at the top of the page.");
89
+ }
90
+ // The role and name pair is how every other surface here addresses
91
+ // an element, so the answer can be pasted straight into a target.
92
+ const called = holder.role ?? holder.tag;
93
+ const named = holder.name ? ` "${holder.name}"` : "";
94
+ const notes = [
95
+ holder.role && holder.role !== holder.tag ? `<${holder.tag}>` : "",
96
+ holder.id ? `#${holder.id}` : "",
97
+ holder.inShadow ? "inside a shadow root" : "",
98
+ holder.rect ? `at ${place(holder.rect)}` : "",
99
+ ].filter(Boolean);
100
+ const tail = notes.length > 0 ? `\n\n${notes.join(", ")}` : "";
101
+ return `${called}${named} holds focus.${tail}`;
102
+ }
103
+ function place(rect) {
104
+ return (`${Math.round(rect.x)},${Math.round(rect.y)} ` +
105
+ `${Math.round(rect.width)}x${Math.round(rect.height)}`);
106
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The accessibility domain: the page as assistive technology
3
+ * perceives it.
4
+ *
5
+ * Analysis here is capture-agnostic. Everything takes plain
6
+ * serializable data, so a tree captured by CDP, by Playwright
7
+ * or read back from a fixture is analyzed by the same code.
8
+ */
9
+ export { ANNOUNCE_BINDING, ANNOUNCEMENT_OBSERVER, type Announcement, type AnnouncementCandidate, CANDIDATE_REGISTRY, renderAnnouncements, } from "./announcements.js";
10
+ export { ACTION_VIEW_BUDGET_BYTES, type BudgetedOutline, MAX_OUTLINE_BUDGET_BYTES, OUTLINE_BUDGET_BYTES, outlineBudget, withinOutlineBudget, } from "./budget.js";
11
+ export { FOCUS_PROBE, type FocusHolder, renderFocus, } from "./focus.js";
12
+ export { isWeakName, type NameSource, nameSource } from "./naming.js";
13
+ export { renderAxOutline } from "./outline.js";
14
+ export { renderReading } from "./reading.js";
15
+ export { type Skeleton, scopeTree, subtreeAt, type TreeScope, } from "./scope.js";
16
+ export { describeStates, type StateOptions } from "./states.js";
17
+ export { type AxNode, type AxProperties, type FrameAxTree, isMeaningful, normalizeAxTree, type RawAxNameSource, type RawAxNode, type RawAxProperty, spliceFrames, } from "./tree.js";
18
+ export { analyseWalk, type FocusStyle, type Indicator, indicatorOf, MAX_LISTED_FINDINGS, renderWalk, type Trap, type Unreachable, type WalkCandidate, type WalkCapture, type WalkFindings, type WalkStop, } from "./walk.js";
19
+ export { WALK_COLLECT, WALK_READ, WALK_REMEMBER, WALK_RESTORE, } from "./walkprobe.js";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The accessibility domain: the page as assistive technology
3
+ * perceives it.
4
+ *
5
+ * Analysis here is capture-agnostic. Everything takes plain
6
+ * serializable data, so a tree captured by CDP, by Playwright
7
+ * or read back from a fixture is analyzed by the same code.
8
+ */
9
+ export { ANNOUNCE_BINDING, ANNOUNCEMENT_OBSERVER, CANDIDATE_REGISTRY, renderAnnouncements, } from "./announcements.js";
10
+ export { ACTION_VIEW_BUDGET_BYTES, MAX_OUTLINE_BUDGET_BYTES, OUTLINE_BUDGET_BYTES, outlineBudget, withinOutlineBudget, } from "./budget.js";
11
+ export { FOCUS_PROBE, renderFocus, } from "./focus.js";
12
+ export { isWeakName, nameSource } from "./naming.js";
13
+ export { renderAxOutline } from "./outline.js";
14
+ export { renderReading } from "./reading.js";
15
+ export { scopeTree, subtreeAt, } from "./scope.js";
16
+ // Exported because a stored page has to carry the same states the
17
+ // rendered outline shows. Two vocabularies for one set of facts
18
+ // would make a payload that disagrees with the view it came from.
19
+ export { describeStates } from "./states.js";
20
+ export { isMeaningful, normalizeAxTree, spliceFrames, } from "./tree.js";
21
+ export { analyseWalk, indicatorOf, MAX_LISTED_FINDINGS, renderWalk, } from "./walk.js";
22
+ // The page-side halves of the keyboard walk, in the order they
23
+ // run: collect what can hold focus, remember where the caller
24
+ // left things, read each stop, then put the page back.
25
+ export { WALK_COLLECT, WALK_READ, WALK_REMEMBER, WALK_RESTORE, } from "./walkprobe.js";
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Where an accessible name came from.
3
+ *
4
+ * Two controls can read identically in an outline and be very
5
+ * different to use. A field named by its label is announced
6
+ * whenever it takes focus; one named only by its placeholder
7
+ * loses its name the moment someone types. Knowing the
8
+ * mechanism is what lets a review tell those apart.
9
+ */
10
+ import type { RawAxNode } from "./tree.js";
11
+ /** The mechanism that produced an element's accessible name. */
12
+ export type NameSource = "labelledby" | "label" | "nativeLabel" | "content" | "title" | "placeholder" | "alt" | "value" | "unnamed";
13
+ /**
14
+ * Which mechanism produced this node's name.
15
+ *
16
+ * Chrome reports every mechanism it tried, in priority order,
17
+ * marking the ones it passed over. The one that named the
18
+ * element is the one that yielded text and was neither
19
+ * superseded nor pointed at something absent.
20
+ */
21
+ export declare function nameSource(node: RawAxNode): NameSource;
22
+ /** Whether a name is one that disappears when it is needed most. */
23
+ export declare function isWeakName(source: NameSource): boolean;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Where an accessible name came from.
3
+ *
4
+ * Two controls can read identically in an outline and be very
5
+ * different to use. A field named by its label is announced
6
+ * whenever it takes focus; one named only by its placeholder
7
+ * loses its name the moment someone types. Knowing the
8
+ * mechanism is what lets a review tell those apart.
9
+ */
10
+ /** Names that vanish exactly when a user needs them. */
11
+ const WEAK_SOURCES = new Set(["title", "placeholder"]);
12
+ /**
13
+ * Which mechanism produced this node's name.
14
+ *
15
+ * Chrome reports every mechanism it tried, in priority order,
16
+ * marking the ones it passed over. The one that named the
17
+ * element is the one that yielded text and was neither
18
+ * superseded nor pointed at something absent.
19
+ */
20
+ export function nameSource(node) {
21
+ const winner = (node.name?.sources ?? []).find(produced);
22
+ if (!winner)
23
+ return "unnamed";
24
+ if (winner.nativeSource)
25
+ return "nativeLabel";
26
+ if (winner.type === "contents")
27
+ return "content";
28
+ if (winner.type === "placeholder")
29
+ return "placeholder";
30
+ switch (winner.attribute) {
31
+ case "aria-labelledby":
32
+ return "labelledby";
33
+ case "aria-label":
34
+ return "label";
35
+ case "title":
36
+ return "title";
37
+ case "alt":
38
+ return "alt";
39
+ case "value":
40
+ return "value";
41
+ default:
42
+ return winner.type === "relatedElement" ? "labelledby" : "unnamed";
43
+ }
44
+ }
45
+ /** Whether this source actually supplied the name. */
46
+ function produced(source) {
47
+ if (source.superseded || source.invalid)
48
+ return false;
49
+ const text = source.value?.value;
50
+ return text !== undefined && text !== "";
51
+ }
52
+ /** Whether a name is one that disappears when it is needed most. */
53
+ export function isWeakName(source) {
54
+ return WEAK_SOURCES.has(source);
55
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Rendering the accessibility tree as an outline.
3
+ *
4
+ * The outline is the model's default view of a page: a nested
5
+ * role-and-name listing that reads like a description, with the
6
+ * states that change what a caller can do shown inline. It is
7
+ * the surface act refusals, audits and page reads all quote.
8
+ */
9
+ import { type AxNode } from "./tree.js";
10
+ /**
11
+ * Render the tree as a nested role-and-name outline, with the
12
+ * states that change what a caller can do shown inline. A node
13
+ * that is not meaningful (a noise role with no name) is folded
14
+ * away: its children rise to its own indentation, so wrappers
15
+ * never add depth while their named descendants survive.
16
+ *
17
+ * A node that has no name is written as its role alone. Structure
18
+ * is most of a real page, a third of the nodes in a long article
19
+ * carry no name at all, and empty quotes against every one of
20
+ * them cost more than a whole action-view budget while telling a
21
+ * reader nothing they did not already have from the role.
22
+ */
23
+ export declare function renderAxOutline(root: AxNode): string;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Rendering the accessibility tree as an outline.
3
+ *
4
+ * The outline is the model's default view of a page: a nested
5
+ * role-and-name listing that reads like a description, with the
6
+ * states that change what a caller can do shown inline. It is
7
+ * the surface act refusals, audits and page reads all quote.
8
+ */
9
+ import { describeStates } from "./states.js";
10
+ import { isMeaningful } from "./tree.js";
11
+ /**
12
+ * Render the tree as a nested role-and-name outline, with the
13
+ * states that change what a caller can do shown inline. A node
14
+ * that is not meaningful (a noise role with no name) is folded
15
+ * away: its children rise to its own indentation, so wrappers
16
+ * never add depth while their named descendants survive.
17
+ *
18
+ * A node that has no name is written as its role alone. Structure
19
+ * is most of a real page, a third of the nodes in a long article
20
+ * carry no name at all, and empty quotes against every one of
21
+ * them cost more than a whole action-view budget while telling a
22
+ * reader nothing they did not already have from the role.
23
+ */
24
+ export function renderAxOutline(root) {
25
+ const lines = [];
26
+ const walk = (node, depth) => {
27
+ const shown = isMeaningful(node);
28
+ if (shown) {
29
+ const states = describeStates(node);
30
+ const suffix = states.length ? ` ${states.join(" ")}` : "";
31
+ const named = node.name ? ` "${node.name}"` : "";
32
+ lines.push(`${" ".repeat(depth)}${node.role}${named}${suffix}`);
33
+ }
34
+ const childDepth = shown ? depth + 1 : depth;
35
+ for (const child of node.children)
36
+ walk(child, childDepth);
37
+ };
38
+ // The root itself is the page container; render its children.
39
+ for (const child of root.children)
40
+ walk(child, 0);
41
+ return lines.join("\n");
42
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The page as a screen reader narrates it.
3
+ *
4
+ * The outline shows how a page is built; a reading shows what
5
+ * it is like to use without sight. Landmarks are announced on
6
+ * entry and exit, headings carry their level, controls carry
7
+ * the states that change how they behave, and text is read as
8
+ * prose rather than as elements.
9
+ */
10
+ import type { AxNode } from "./tree.js";
11
+ /** Narrate a tree in reading order. */
12
+ export declare function renderReading(root: AxNode): string;
@@ -0,0 +1,101 @@
1
+ /**
2
+ * The page as a screen reader narrates it.
3
+ *
4
+ * The outline shows how a page is built; a reading shows what
5
+ * it is like to use without sight. Landmarks are announced on
6
+ * entry and exit, headings carry their level, controls carry
7
+ * the states that change how they behave, and text is read as
8
+ * prose rather than as elements.
9
+ */
10
+ import { describeStates } from "./states.js";
11
+ /**
12
+ * Roles a reader passes through without a word. They exist to
13
+ * group or to carry text, and announcing them would put
14
+ * scaffolding between the listener and the page.
15
+ */
16
+ const SILENT_ROLES = new Set([
17
+ "generic",
18
+ "none",
19
+ "presentation",
20
+ "document",
21
+ "RootWebArea",
22
+ "paragraph",
23
+ "LabelText",
24
+ "listitem",
25
+ "MenuListPopup",
26
+ ]);
27
+ /** Roles that carry text and nothing else. */
28
+ const TEXT_ROLES = new Set(["StaticText", "InlineTextBox", "text"]);
29
+ /** Landmarks a reader announces entering and leaving. */
30
+ const LANDMARK_ROLES = new Set([
31
+ "banner",
32
+ "complementary",
33
+ "contentinfo",
34
+ "form",
35
+ "main",
36
+ "navigation",
37
+ "region",
38
+ "search",
39
+ ]);
40
+ /** Whether entering this node is worth announcing. */
41
+ function isRegion(node) {
42
+ if (LANDMARK_ROLES.has(node.role))
43
+ return true;
44
+ if (node.role === "list")
45
+ return true;
46
+ const live = node.properties.live;
47
+ return typeof live === "string" && live !== "" && live !== "off";
48
+ }
49
+ /** Narrate a tree in reading order. */
50
+ export function renderReading(root) {
51
+ const lines = [];
52
+ const read = (node, depth) => {
53
+ const pad = " ".repeat(depth);
54
+ if (TEXT_ROLES.has(node.role)) {
55
+ if (node.name.trim())
56
+ lines.push(`${pad}${node.name}`);
57
+ return;
58
+ }
59
+ if (SILENT_ROLES.has(node.role) && !node.name.trim()) {
60
+ for (const child of node.children)
61
+ read(child, depth);
62
+ return;
63
+ }
64
+ if (isRegion(node)) {
65
+ lines.push(`${pad}${announce(node)}`);
66
+ for (const child of node.children)
67
+ read(child, depth + 1);
68
+ lines.push(`${pad}end of ${node.role}${node.name ? `, ${node.name}` : ""}`);
69
+ return;
70
+ }
71
+ lines.push(`${pad}${announce(node)}`);
72
+ for (const child of node.children)
73
+ read(child, depth);
74
+ };
75
+ for (const child of root.children)
76
+ read(child, 0);
77
+ return lines.join("\n");
78
+ }
79
+ /** What a reader says on reaching this element. */
80
+ function announce(node) {
81
+ const parts = [roleLabel(node)];
82
+ if (node.name.trim())
83
+ parts.push(node.name);
84
+ if (node.role === "list")
85
+ parts.push(itemCount(node));
86
+ parts.push(...describeStates(node, { skipLevel: true }));
87
+ return parts.join(", ");
88
+ }
89
+ /** How many items a list holds, said the way it is heard. */
90
+ function itemCount(list) {
91
+ const items = list.children.filter((child) => child.role === "listitem").length;
92
+ return items === 1 ? "1 item" : `${items} items`;
93
+ }
94
+ /** The role as spoken, with a heading's level folded in. */
95
+ function roleLabel(node) {
96
+ const level = node.properties.level;
97
+ if (node.role === "heading" && level !== undefined) {
98
+ return `heading level ${level}`;
99
+ }
100
+ return node.role;
101
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Scoping the accessibility tree before it is read.
3
+ *
4
+ * A whole tree is the wrong answer to most questions. A caller
5
+ * asking "how is this page laid out" wants landmarks, not every
6
+ * span inside them; a caller asking "what can I press" wants
7
+ * controls. Scoping narrows the tree first, so the view that
8
+ * gets rendered is the view that was asked for.
9
+ */
10
+ import { type AxNode } from "./tree.js";
11
+ /** A reduced view of the page, keeping one kind of thing. */
12
+ export type Skeleton = "landmarks" | "headings" | "interactive";
13
+ /** How much of the tree to keep. */
14
+ export interface TreeScope {
15
+ /** Levels of the outline to keep, counted as the outline reads. */
16
+ readonly depth?: number;
17
+ /** Keep only one kind of element, with the rest folded away. */
18
+ readonly only?: Skeleton;
19
+ }
20
+ /** Narrow a tree to the view the caller asked for. */
21
+ export declare function scopeTree(root: AxNode, scope: TreeScope): AxNode;
22
+ /** The branch rooted at the element carrying this backend id. */
23
+ export declare function subtreeAt(root: AxNode, backendDomId: number): AxNode | undefined;
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Scoping the accessibility tree before it is read.
3
+ *
4
+ * A whole tree is the wrong answer to most questions. A caller
5
+ * asking "how is this page laid out" wants landmarks, not every
6
+ * span inside them; a caller asking "what can I press" wants
7
+ * controls. Scoping narrows the tree first, so the view that
8
+ * gets rendered is the view that was asked for.
9
+ */
10
+ import { isMeaningful } from "./tree.js";
11
+ /** The regions that carve a page into its major parts. */
12
+ const LANDMARK_ROLES = new Set([
13
+ "banner",
14
+ "complementary",
15
+ "contentinfo",
16
+ "form",
17
+ "main",
18
+ "navigation",
19
+ "region",
20
+ "search",
21
+ ]);
22
+ /** The roles a caller can operate. */
23
+ const INTERACTIVE_ROLES = new Set([
24
+ "button",
25
+ "checkbox",
26
+ "combobox",
27
+ "link",
28
+ "listbox",
29
+ "menuitem",
30
+ "menuitemcheckbox",
31
+ "menuitemradio",
32
+ "option",
33
+ "radio",
34
+ "searchbox",
35
+ "slider",
36
+ "spinbutton",
37
+ "switch",
38
+ "tab",
39
+ "textbox",
40
+ "treeitem",
41
+ ]);
42
+ /** Whether a node belongs to the skeleton being asked for. */
43
+ function keeps(node, only) {
44
+ if (only === "landmarks")
45
+ return LANDMARK_ROLES.has(node.role);
46
+ if (only === "headings")
47
+ return node.role === "heading";
48
+ return INTERACTIVE_ROLES.has(node.role);
49
+ }
50
+ /** Narrow a tree to the view the caller asked for. */
51
+ export function scopeTree(root, scope) {
52
+ let tree = root;
53
+ if (scope.only)
54
+ tree = keepOnly(tree, scope.only);
55
+ if (scope.depth !== undefined)
56
+ tree = cutToDepth(tree, scope.depth);
57
+ return tree;
58
+ }
59
+ /**
60
+ * Keep the nodes of one kind, folding the rest away. A kept
61
+ * node stays under a kept ancestor, so a navigation inside a
62
+ * banner still reads as nested.
63
+ */
64
+ function keepOnly(root, only) {
65
+ const prune = (node) => {
66
+ const children = node.children.flatMap(prune);
67
+ if (!keeps(node, only))
68
+ return children;
69
+ return [{ ...node, children }];
70
+ };
71
+ return { ...root, children: root.children.flatMap(prune) };
72
+ }
73
+ /**
74
+ * Cut the tree to a number of levels, counting the way the
75
+ * outline reads: a node that renders as a line costs a level,
76
+ * and a wrapper that folds away costs nothing.
77
+ */
78
+ function cutToDepth(root, depth) {
79
+ const cut = (node, remaining) => {
80
+ const shown = isMeaningful(node);
81
+ const left = shown ? remaining - 1 : remaining;
82
+ if (shown && remaining <= 0)
83
+ return [];
84
+ const children = left > 0 ? node.children.flatMap((c) => cut(c, left)) : [];
85
+ return [{ ...node, children }];
86
+ };
87
+ return { ...root, children: root.children.flatMap((c) => cut(c, depth)) };
88
+ }
89
+ /** The branch rooted at the element carrying this backend id. */
90
+ export function subtreeAt(root, backendDomId) {
91
+ if (root.backendDomId === backendDomId)
92
+ return root;
93
+ for (const child of root.children) {
94
+ const found = subtreeAt(child, backendDomId);
95
+ if (found)
96
+ return found;
97
+ }
98
+ return undefined;
99
+ }