@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,40 @@
1
+ /**
2
+ * Writing a path the way a person would say it.
3
+ *
4
+ * Absolute paths under a home directory carry a prefix that is the same on every
5
+ * line and tells the reader nothing. A tree listing is the worst case: two lines
6
+ * where the interesting halves are a key and a provider, and the widest thing on
7
+ * screen is a directory nobody has to type.
8
+ */
9
+ import { homedir } from "node:os";
10
+ import { sep } from "node:path";
11
+ /**
12
+ * A path with the home directory written as `~`.
13
+ *
14
+ * **For display only.** The result is not a path any tool can open: `~` is a
15
+ * shell courtesy, not a filesystem entry, and expanding it is the shell's job.
16
+ * So this belongs in the text a person reads and never in the `details` of a
17
+ * tool answer, where a caller may reasonably feed a path straight back into
18
+ * another call. When both are wanted, abbreviate the view and keep the absolute
19
+ * path in the details.
20
+ *
21
+ * Rewrites a leading home prefix and nothing else. A relative path is returned
22
+ * as it came, which is what makes this safe to apply to a list that mixes the
23
+ * two: a repo-relative `lib/work/tree.ts` has no prefix to lose. A path that
24
+ * merely mentions the home directory somewhere in the middle is also left alone,
25
+ * since only the prefix is a home directory rather than a coincidence.
26
+ */
27
+ export function displayPath(path, home = homedir()) {
28
+ // An empty home would turn every path into a tilde, which is the sort of
29
+ // thing that happens on a machine with no HOME set rather than never.
30
+ if (home.length === 0)
31
+ return path;
32
+ const bare = home.endsWith(sep) ? home.slice(0, -sep.length) : home;
33
+ if (path === bare)
34
+ return "~";
35
+ // The separator is required, so a sibling directory whose name merely starts
36
+ // with the home directory's name keeps its own name. Without it,
37
+ // `/Users/joel.gerber.backup` reads as `~.backup`, which looks like a file
38
+ // inside home and is a different place entirely.
39
+ return path.startsWith(bare + sep) ? `~${path.slice(bare.length)}` : path;
40
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Public API for the `verify` domain: run the project's check
3
+ * command and report whether it still builds and passes.
4
+ *
5
+ * This is the "on request" layer only. pi also has a fast,
6
+ * turn-boundary auto-verify layer backed by a resident LSP client
7
+ * it keeps running; that has no equivalent adapter-side resource
8
+ * here (a hook process has no shared LSP session to query), so it
9
+ * stays pi-only rather than being approximated into something
10
+ * slower and heavier than what it replaces.
11
+ */
12
+ export type { ProjectInfo } from "./project.js";
13
+ export { detectPackageManager, findProject } from "./project.js";
14
+ export type { CheckCommandSources, ResolvedCheck } from "./resolve.js";
15
+ export { resolveCheckCommand } from "./resolve.js";
16
+ export type { RunVerifyOptions, VerifyOutcome } from "./run.js";
17
+ export { runVerify, stripAnsi, truncate } from "./run.js";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Public API for the `verify` domain: run the project's check
3
+ * command and report whether it still builds and passes.
4
+ *
5
+ * This is the "on request" layer only. pi also has a fast,
6
+ * turn-boundary auto-verify layer backed by a resident LSP client
7
+ * it keeps running; that has no equivalent adapter-side resource
8
+ * here (a hook process has no shared LSP session to query), so it
9
+ * stays pi-only rather than being approximated into something
10
+ * slower and heavier than what it replaces.
11
+ */
12
+ export { detectPackageManager, findProject } from "./project.js";
13
+ export { resolveCheckCommand } from "./resolve.js";
14
+ export { runVerify, stripAnsi, truncate } from "./run.js";
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Project detection for the verify domain: walk up to the nearest
3
+ * package.json and read its scripts, so the check command can be
4
+ * resolved without the caller having to name a project directory.
5
+ */
6
+ export interface ProjectInfo {
7
+ readonly dir: string;
8
+ readonly scripts: Readonly<Record<string, string>>;
9
+ readonly packageManager: string;
10
+ }
11
+ /** Walk up from startDir to the nearest package.json, reading its scripts. */
12
+ export declare function findProject(startDir: string): ProjectInfo | null;
13
+ /**
14
+ * Infer the package manager: an explicit Corepack `packageManager`
15
+ * field wins, then the lockfile present in dir. Falls back to npm,
16
+ * not pnpm, when neither is present: npm ships with Node itself, so
17
+ * it is the one manager guaranteed to exist, unlike a guess that
18
+ * turns "no lockfile yet" (a freshly scaffolded project, before the
19
+ * first install) into a false "command not found" failure.
20
+ */
21
+ export declare function detectPackageManager(dir: string, declared?: string): string;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Project detection for the verify domain: walk up to the nearest
3
+ * package.json and read its scripts, so the check command can be
4
+ * resolved without the caller having to name a project directory.
5
+ */
6
+ import { existsSync, readFileSync } from "node:fs";
7
+ import { dirname, join } from "node:path";
8
+ /** Walk up from startDir to the nearest package.json, reading its scripts. */
9
+ export function findProject(startDir) {
10
+ let dir = startDir;
11
+ while (true) {
12
+ const pkgPath = join(dir, "package.json");
13
+ if (existsSync(pkgPath)) {
14
+ try {
15
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
16
+ return {
17
+ dir,
18
+ scripts: pkg.scripts ?? {},
19
+ packageManager: detectPackageManager(dir, pkg.packageManager),
20
+ };
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ const parent = dirname(dir);
27
+ if (parent === dir)
28
+ return null;
29
+ dir = parent;
30
+ }
31
+ }
32
+ /**
33
+ * Infer the package manager: an explicit Corepack `packageManager`
34
+ * field wins, then the lockfile present in dir. Falls back to npm,
35
+ * not pnpm, when neither is present: npm ships with Node itself, so
36
+ * it is the one manager guaranteed to exist, unlike a guess that
37
+ * turns "no lockfile yet" (a freshly scaffolded project, before the
38
+ * first install) into a false "command not found" failure.
39
+ */
40
+ export function detectPackageManager(dir, declared) {
41
+ const fromField = declared?.split("@")[0]?.trim();
42
+ if (fromField)
43
+ return fromField;
44
+ if (existsSync(join(dir, "pnpm-lock.yaml")))
45
+ return "pnpm";
46
+ if (existsSync(join(dir, "yarn.lock")))
47
+ return "yarn";
48
+ return "npm";
49
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Check-command resolution: pick the command the verify layer
3
+ * runs, by precedence. An explicit quest-verify field wins because
4
+ * it is the most specific to the work in hand; then an explicit
5
+ * verify script; then detection of the conventional lint,
6
+ * typecheck and test scripts, joined so all run.
7
+ */
8
+ /** Where a check command could come from. */
9
+ export interface CheckCommandSources {
10
+ /** A verify command declared in the caller's own project convention (e.g. a loaded quest's frontmatter). */
11
+ readonly questVerify?: string;
12
+ /** The scripts block from the project's package.json. */
13
+ readonly packageScripts?: Readonly<Record<string, string>>;
14
+ /** The package manager to invoke scripts with. Defaults to pnpm. */
15
+ readonly packageManager?: string;
16
+ }
17
+ /** The resolved command and where it came from. */
18
+ export interface ResolvedCheck {
19
+ readonly command: string;
20
+ readonly source: "quest" | "script" | "detected";
21
+ }
22
+ /**
23
+ * Resolve the check command, or null when nothing is available
24
+ * and the caller has nothing to run.
25
+ */
26
+ export declare function resolveCheckCommand(sources: CheckCommandSources): ResolvedCheck | null;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Check-command resolution: pick the command the verify layer
3
+ * runs, by precedence. An explicit quest-verify field wins because
4
+ * it is the most specific to the work in hand; then an explicit
5
+ * verify script; then detection of the conventional lint,
6
+ * typecheck and test scripts, joined so all run.
7
+ */
8
+ /** Scripts probed for detection, in the order they run. */
9
+ const DETECTED_SCRIPTS = ["lint", "typecheck", "test"];
10
+ /**
11
+ * Resolve the check command, or null when nothing is available
12
+ * and the caller has nothing to run.
13
+ */
14
+ export function resolveCheckCommand(sources) {
15
+ const quest = sources.questVerify?.trim();
16
+ if (quest)
17
+ return { command: quest, source: "quest" };
18
+ const pm = sources.packageManager ?? "pnpm";
19
+ const scripts = sources.packageScripts ?? {};
20
+ if (scripts.verify) {
21
+ return { command: `${pm} run verify`, source: "script" };
22
+ }
23
+ const detected = DETECTED_SCRIPTS.filter((name) => scripts[name]).map((name) => `${pm} run ${name}`);
24
+ if (detected.length === 0)
25
+ return null;
26
+ return { command: detected.join(" && "), source: "detected" };
27
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Running the resolved check command and shaping its output for an
3
+ * agent to read: strip terminal control sequences, cap a runaway
4
+ * tail, and report pass/fail. This is the "on request" layer only
5
+ * (a `verify` tool a skill or CLI subcommand exposes) — the fast,
6
+ * turn-boundary auto-verify layer pi also has depends on a resident
7
+ * LSP backend pi keeps running, which has no equivalent here, so
8
+ * it stays pi-only rather than being approximated badly.
9
+ */
10
+ export declare function stripAnsi(text: string): string;
11
+ /** Cap the captured output so a noisy suite does not flood the reply. */
12
+ export declare function truncate(output: string, maxLines?: number): string;
13
+ export interface RunVerifyOptions {
14
+ /** Where to look for the nearest package.json and run the command. */
15
+ readonly cwd: string;
16
+ /** A verify command from the caller's own project convention, if any. */
17
+ readonly questVerify?: string;
18
+ readonly signal?: AbortSignal;
19
+ }
20
+ export interface VerifyOutcome {
21
+ readonly ok: boolean;
22
+ readonly command?: string;
23
+ /** Human-readable summary: what ran, and its tail (pass) or full output (fail). */
24
+ readonly output: string;
25
+ }
26
+ /**
27
+ * Resolve and run the project's check command, and shape the
28
+ * result for an agent to read directly. The one entry point an
29
+ * adapter needs.
30
+ */
31
+ export declare function runVerify(options: RunVerifyOptions): Promise<VerifyOutcome>;
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Running the resolved check command and shaping its output for an
3
+ * agent to read: strip terminal control sequences, cap a runaway
4
+ * tail, and report pass/fail. This is the "on request" layer only
5
+ * (a `verify` tool a skill or CLI subcommand exposes) — the fast,
6
+ * turn-boundary auto-verify layer pi also has depends on a resident
7
+ * LSP backend pi keeps running, which has no equivalent here, so
8
+ * it stays pi-only rather than being approximated badly.
9
+ */
10
+ import { spawn } from "node:child_process";
11
+ import { findProject } from "./project.js";
12
+ import { resolveCheckCommand } from "./resolve.js";
13
+ /** How long a check command may run. */
14
+ const CHECK_TIMEOUT_MS = 300_000;
15
+ /** Cap on captured check output held in memory (a rolling tail). */
16
+ const MAX_CAPTURE_BYTES = 512 * 1024;
17
+ /**
18
+ * Strip ANSI escape sequences (colour and cursor control) from
19
+ * captured output. A test runner emits these even into a pipe, and
20
+ * left in returned text they smear a plain-text reader.
21
+ */
22
+ // ESC[ control sequences (colour, cursor) with the full 0x30-0x3F
23
+ // parameter class so `:<=>?` are covered, and ESC] OSC sequences
24
+ // terminated by either BEL or ST (ESC backslash). Built from a
25
+ // string so the source carries no literal control bytes.
26
+ // biome-ignore lint/complexity/useRegexLiterals: a literal would embed control bytes the linter rejects.
27
+ const ANSI_PATTERN = new RegExp("\\u001b\\[[0-9:;<=>?]*[ -/]*[@-~]|\\u001b\\][\\s\\S]*?(?:\\u0007|\\u001b\\\\)", "g");
28
+ export function stripAnsi(text) {
29
+ return text.replace(ANSI_PATTERN, "");
30
+ }
31
+ /** Cap the captured output so a noisy suite does not flood the reply. */
32
+ export function truncate(output, maxLines = 200) {
33
+ const lines = output.split("\n");
34
+ if (lines.length <= maxLines)
35
+ return output.trim();
36
+ return [
37
+ `... (${lines.length - maxLines} earlier lines omitted)`,
38
+ ...lines.slice(lines.length - maxLines),
39
+ ]
40
+ .join("\n")
41
+ .trim();
42
+ }
43
+ function runCommand(command, cwd, signal) {
44
+ return new Promise((resolvePromise) => {
45
+ // The child runs in its own session (detached) with no stdin
46
+ // and piped output. Detaching removes the controlling terminal,
47
+ // so a test-runner descendant cannot write progress straight to
48
+ // the caller's screen. The environment forces plain,
49
+ // non-interactive output so nothing tries cursor control in the
50
+ // first place.
51
+ const child = spawn(command, {
52
+ cwd,
53
+ shell: true,
54
+ detached: true,
55
+ stdio: ["ignore", "pipe", "pipe"],
56
+ env: {
57
+ ...process.env,
58
+ CI: "true",
59
+ NO_COLOR: "1",
60
+ FORCE_COLOR: "0",
61
+ TERM: "dumb",
62
+ },
63
+ });
64
+ // Kill the whole process group, not just the shell, so detached
65
+ // test workers do not outlive an abort or a timeout.
66
+ const killGroup = () => {
67
+ try {
68
+ if (child.pid)
69
+ process.kill(-child.pid, "SIGKILL");
70
+ }
71
+ catch {
72
+ // Already gone, or never grouped; nothing to reap.
73
+ }
74
+ };
75
+ const timer = setTimeout(killGroup, CHECK_TIMEOUT_MS);
76
+ const onAbort = () => killGroup();
77
+ // addEventListener does not fire for a signal that is already
78
+ // aborted, so kill up front in that case; otherwise the
79
+ // detached suite would run to the timeout after an abort.
80
+ if (signal?.aborted)
81
+ killGroup();
82
+ else
83
+ signal?.addEventListener("abort", onAbort, { once: true });
84
+ const cleanup = () => {
85
+ clearTimeout(timer);
86
+ signal?.removeEventListener("abort", onAbort);
87
+ };
88
+ // Keep a rolling tail rather than the whole stream, so a
89
+ // runaway command cannot grow the buffer without bound for the
90
+ // whole timeout window; the tail is what the summary keeps.
91
+ let output = "";
92
+ const onData = (chunk) => {
93
+ output += chunk.toString();
94
+ if (output.length > MAX_CAPTURE_BYTES) {
95
+ output = output.slice(output.length - MAX_CAPTURE_BYTES);
96
+ }
97
+ };
98
+ child.stdout?.on("data", onData);
99
+ child.stderr?.on("data", onData);
100
+ child.on("error", (err) => {
101
+ cleanup();
102
+ resolvePromise({
103
+ code: 1,
104
+ output: stripAnsi(`${output}\n${err.message}`).trim(),
105
+ });
106
+ });
107
+ child.on("close", (code) => {
108
+ cleanup();
109
+ resolvePromise({ code: code ?? 1, output: truncate(stripAnsi(output)) });
110
+ });
111
+ });
112
+ }
113
+ /**
114
+ * Resolve and run the project's check command, and shape the
115
+ * result for an agent to read directly. The one entry point an
116
+ * adapter needs.
117
+ */
118
+ export async function runVerify(options) {
119
+ const project = findProject(options.cwd);
120
+ const resolved = resolveCheckCommand({
121
+ ...(options.questVerify ? { questVerify: options.questVerify } : {}),
122
+ packageScripts: project?.scripts ?? {},
123
+ packageManager: project?.packageManager ?? "pnpm",
124
+ });
125
+ if (!resolved) {
126
+ return {
127
+ ok: false,
128
+ output: "No verification command found (no lint, typecheck, test or verify script).",
129
+ };
130
+ }
131
+ const run = await runCommand(resolved.command, project?.dir ?? options.cwd, options.signal);
132
+ if (run.code === 0) {
133
+ const tail = run.output.split("\n").slice(-12).join("\n").trim();
134
+ return {
135
+ ok: true,
136
+ command: resolved.command,
137
+ output: `Passed: ${resolved.command}\n\n${tail}`.trim(),
138
+ };
139
+ }
140
+ return {
141
+ ok: false,
142
+ command: resolved.command,
143
+ output: `Failed (exit ${run.code}): ${resolved.command}\n\n${run.output}`.trim(),
144
+ };
145
+ }
@@ -0,0 +1,67 @@
1
+ /**
2
+ * What a screen reader would have said out loud.
3
+ *
4
+ * A sighted reviewer sees a banner appear. A screen reader user
5
+ * hears something, or hears nothing at all, and nothing is the
6
+ * bug worth catching. Live regions are the mechanism a page
7
+ * uses to speak, so watching them answers "what did a screen
8
+ * reader user hear when I pressed save".
9
+ */
10
+ import type { Recorded } from "../telemetry/buffer.js";
11
+ /** Something the page announced through a live region. */
12
+ export interface Announcement {
13
+ readonly politeness: "polite" | "assertive";
14
+ readonly text: string;
15
+ /** When it was announced, as epoch milliseconds. */
16
+ readonly at: number;
17
+ }
18
+ /** Lay out what was announced, in the order it was said. */
19
+ export declare function renderAnnouncements(entries: readonly Recorded<Announcement>[], dropped?: number): string;
20
+ /** The binding an injected observer reports through. */
21
+ export declare const ANNOUNCE_BINDING = "__piAnnounce";
22
+ /** The page-side array of regions the observer has nominated. */
23
+ export declare const CANDIDATE_REGISTRY = "__piLiveCandidates";
24
+ /**
25
+ * A change the page made somewhere that might be announced.
26
+ *
27
+ * The observer decides nothing about whether this is a live
28
+ * region. It reports where the change happened and lets the
29
+ * browser rule on it.
30
+ */
31
+ export interface AnnouncementCandidate {
32
+ /** Identifies the document; a navigation starts a new one. */
33
+ readonly epoch: string;
34
+ /** Position in the page-side registry of nominated regions. */
35
+ readonly index: number;
36
+ readonly text: string;
37
+ readonly at: number;
38
+ }
39
+ /**
40
+ * Watch the page for anything that might be spoken.
41
+ *
42
+ * This is plain JavaScript source rather than a function, on
43
+ * purpose. Injecting a function serializes whatever the
44
+ * compiler made of it, and esbuild's keepNames wraps every
45
+ * named inner binding in a call to a __name helper. The page
46
+ * has never heard of __name, so the script throws before it
47
+ * registers, and nothing says so. A lone inline arrow is safe,
48
+ * which is why the simple evaluate callbacks elsewhere in this
49
+ * library are still written as functions; anything declaring
50
+ * helpers of its own is not. Source text survives untouched.
51
+ *
52
+ * It runs before the page's own scripts, so changes made during
53
+ * load are caught too. It reports through a binding the session
54
+ * installs; with no binding it does nothing rather than throwing
55
+ * inside the page under inspection.
56
+ *
57
+ * It deliberately does not decide politeness. Chrome exposes no
58
+ * way for page script to ask what the browser computed, and
59
+ * reimplementing the rules here means missing whatever the
60
+ * browser knows that this code does not: role=log is live,
61
+ * aria-live=off is not, and the mapping changes as the ARIA
62
+ * spec grows. So the observer nominates any region that could
63
+ * plausibly carry live semantics and the browser rules on it.
64
+ * Over-nominating costs one lookup; under-nominating loses an
65
+ * announcement silently, which is the failure that matters.
66
+ */
67
+ export declare const ANNOUNCEMENT_OBSERVER: string;
@@ -0,0 +1,116 @@
1
+ /**
2
+ * What a screen reader would have said out loud.
3
+ *
4
+ * A sighted reviewer sees a banner appear. A screen reader user
5
+ * hears something, or hears nothing at all, and nothing is the
6
+ * bug worth catching. Live regions are the mechanism a page
7
+ * uses to speak, so watching them answers "what did a screen
8
+ * reader user hear when I pressed save".
9
+ */
10
+ /** Lay out what was announced, in the order it was said. */
11
+ export function renderAnnouncements(entries, dropped = 0) {
12
+ if (entries.length === 0)
13
+ return "Nothing was announced.";
14
+ const lines = entries.map(({ item }) => `${item.politeness}: ${flatten(item.text)}`);
15
+ if (dropped > 0) {
16
+ // First, where the missing ones would have been: the buffer
17
+ // drops the oldest, so the gap is at the top. It used to go last,
18
+ // which put the one line saying announcements were lost at the
19
+ // end of the longest possible view, where a budget removes it. A
20
+ // reader was then told nothing at all about the gap, which is
21
+ // worse than a long answer.
22
+ lines.unshift(`${dropped} earlier announcements were dropped.`, "");
23
+ }
24
+ return lines.join("\n");
25
+ }
26
+ /** Put an announcement on one line, the way it is heard. */
27
+ function flatten(text) {
28
+ return text.replace(/\s+/g, " ").trim();
29
+ }
30
+ /** The binding an injected observer reports through. */
31
+ export const ANNOUNCE_BINDING = "__piAnnounce";
32
+ /** The page-side array of regions the observer has nominated. */
33
+ export const CANDIDATE_REGISTRY = "__piLiveCandidates";
34
+ /**
35
+ * Watch the page for anything that might be spoken.
36
+ *
37
+ * This is plain JavaScript source rather than a function, on
38
+ * purpose. Injecting a function serializes whatever the
39
+ * compiler made of it, and esbuild's keepNames wraps every
40
+ * named inner binding in a call to a __name helper. The page
41
+ * has never heard of __name, so the script throws before it
42
+ * registers, and nothing says so. A lone inline arrow is safe,
43
+ * which is why the simple evaluate callbacks elsewhere in this
44
+ * library are still written as functions; anything declaring
45
+ * helpers of its own is not. Source text survives untouched.
46
+ *
47
+ * It runs before the page's own scripts, so changes made during
48
+ * load are caught too. It reports through a binding the session
49
+ * installs; with no binding it does nothing rather than throwing
50
+ * inside the page under inspection.
51
+ *
52
+ * It deliberately does not decide politeness. Chrome exposes no
53
+ * way for page script to ask what the browser computed, and
54
+ * reimplementing the rules here means missing whatever the
55
+ * browser knows that this code does not: role=log is live,
56
+ * aria-live=off is not, and the mapping changes as the ARIA
57
+ * spec grows. So the observer nominates any region that could
58
+ * plausibly carry live semantics and the browser rules on it.
59
+ * Over-nominating costs one lookup; under-nominating loses an
60
+ * announcement silently, which is the failure that matters.
61
+ */
62
+ export const ANNOUNCEMENT_OBSERVER = `(() => {
63
+ var BINDING = ${JSON.stringify(ANNOUNCE_BINDING)};
64
+ var REGISTRY = ${JSON.stringify(CANDIDATE_REGISTRY)};
65
+ var CANDIDATE_SELECTOR = "[aria-live], [role], output";
66
+ var epoch = String(Date.now()) + "-" + String(Math.random()).slice(2, 8);
67
+
68
+ globalThis[REGISTRY] = [];
69
+ var indexByElement = new WeakMap();
70
+
71
+ function indexOf(element) {
72
+ var known = indexByElement.get(element);
73
+ if (known !== undefined) return known;
74
+ var index = globalThis[REGISTRY].length;
75
+ globalThis[REGISTRY].push(element);
76
+ indexByElement.set(element, index);
77
+ return index;
78
+ }
79
+
80
+ function nominate(index, text) {
81
+ var sink = globalThis[BINDING];
82
+ if (sink) {
83
+ sink({ epoch: epoch, index: index, text: text, at: Date.now() });
84
+ }
85
+ }
86
+
87
+ function watch() {
88
+ var observer = new MutationObserver(function (records) {
89
+ var seen = {};
90
+ for (var i = 0; i < records.length; i++) {
91
+ var node = records[i].target;
92
+ var element = node.nodeType === 1 ? node : node.parentElement;
93
+ if (!element) continue;
94
+ var region = element.closest(CANDIDATE_SELECTOR);
95
+ if (!region) continue;
96
+ var text = (region.textContent || "").trim();
97
+ if (!text) continue;
98
+ var index = indexOf(region);
99
+ // One edit can raise several records against the same
100
+ // region; a listener hears it once.
101
+ var key = String(index) + "\\u0000" + text;
102
+ if (seen[key]) continue;
103
+ seen[key] = true;
104
+ nominate(index, text);
105
+ }
106
+ });
107
+ observer.observe(document.body, {
108
+ childList: true,
109
+ subtree: true,
110
+ characterData: true,
111
+ });
112
+ }
113
+
114
+ if (document.body) watch();
115
+ else document.addEventListener("DOMContentLoaded", watch);
116
+ })();`;
@@ -0,0 +1,75 @@
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 { type BudgetedView } 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 declare const OUTLINE_BUDGET_BYTES = 16384;
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 declare const ACTION_VIEW_BUDGET_BYTES = 4096;
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 declare const MAX_OUTLINE_BUDGET_BYTES: number;
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 declare function outlineBudget(asked: number | undefined): number;
63
+ /** An outline cut to fit, and what fitting it cost. */
64
+ export interface BudgetedOutline extends BudgetedView {
65
+ /** What was cut and how to read it, when anything was. */
66
+ readonly elided?: string;
67
+ }
68
+ /**
69
+ * As much of an outline as the budget affords, and never none.
70
+ *
71
+ * The cutting is the general rule from agentic-harness.core's result
72
+ * module; what belongs to the page is the advice about what to do
73
+ * next, since narrowing a page read has its own vocabulary.
74
+ */
75
+ export declare function withinOutlineBudget(rendered: string, budget: number): BudgetedOutline;