@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,61 @@
1
+ /**
2
+ * Bounding an answer that already carries its own records.
3
+ *
4
+ * Several families hand their structured records to a result's
5
+ * details, because that is what their renderers draw from. Those
6
+ * records are exactly what a caller would query, so nothing new
7
+ * has to be gathered to keep the answer bounded: the view gets
8
+ * cut, and what it was rendered from gets stored.
9
+ *
10
+ * This is deliberately a heuristic over an interface. Retrofitting
11
+ * every handler in every family to declare its collection would be
12
+ * a hundred edit sites and a hundred chances to forget one,
13
+ * whereas the details are already there and already right.
14
+ *
15
+ * What the heuristic decides is only what to call the payload, not
16
+ * whether to keep one. It used to decide both, and a seam whose
17
+ * shape it did not recognize returned its answer whole at any
18
+ * length: a family whose rows nest under a listing key had nothing
19
+ * at the top level that was an array, so the bounding never ran.
20
+ * The gate said that family was wired, because it was, and being
21
+ * wired turned out to be a different claim from working.
22
+ *
23
+ * The payload is now the whole details object rather than the one
24
+ * collection inside it. A document read renders its body and
25
+ * carries its comments alongside; storing only the comments cited
26
+ * the one part that had not been cut.
27
+ */
28
+ import type { ResultStore } from "./store.js";
29
+ /** The records a details object carries, when it carries one set. */
30
+ export interface DetailRecords {
31
+ readonly items: readonly unknown[];
32
+ /** The key they arrived under, which is their name in the caller's words. */
33
+ readonly unit: string;
34
+ }
35
+ /**
36
+ * The one collection in a details object, when there is exactly
37
+ * one.
38
+ *
39
+ * List-shaped answers carry a single collection: messages, files,
40
+ * events, locations. Single-subject answers carry none: one
41
+ * channel, one user, one document. Anything with two collections
42
+ * is ambiguous and left alone, because citing the wrong one points
43
+ * a caller's query at a shape that is not there, and a query that
44
+ * silently matches nothing is worse than no handle at all.
45
+ *
46
+ * An empty collection is also nothing to cite. There is no detail
47
+ * behind an answer that found nothing.
48
+ */
49
+ export declare function recordsIn(details: unknown): DetailRecords | undefined;
50
+ /**
51
+ * Bound a rendered answer, citing the records behind it.
52
+ *
53
+ * The narrowing advice is the caller's to supply, because every
54
+ * family narrows differently and advice that names a parameter the
55
+ * tool does not have costs a call to disprove.
56
+ */
57
+ export declare function boundedByDetails(store: ResultStore, answer: {
58
+ text: string;
59
+ details: unknown;
60
+ narrowing: string;
61
+ }): string;
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Bounding an answer that already carries its own records.
3
+ *
4
+ * Several families hand their structured records to a result's
5
+ * details, because that is what their renderers draw from. Those
6
+ * records are exactly what a caller would query, so nothing new
7
+ * has to be gathered to keep the answer bounded: the view gets
8
+ * cut, and what it was rendered from gets stored.
9
+ *
10
+ * This is deliberately a heuristic over an interface. Retrofitting
11
+ * every handler in every family to declare its collection would be
12
+ * a hundred edit sites and a hundred chances to forget one,
13
+ * whereas the details are already there and already right.
14
+ *
15
+ * What the heuristic decides is only what to call the payload, not
16
+ * whether to keep one. It used to decide both, and a seam whose
17
+ * shape it did not recognize returned its answer whole at any
18
+ * length: a family whose rows nest under a listing key had nothing
19
+ * at the top level that was an array, so the bounding never ran.
20
+ * The gate said that family was wired, because it was, and being
21
+ * wired turned out to be a different claim from working.
22
+ *
23
+ * The payload is now the whole details object rather than the one
24
+ * collection inside it. A document read renders its body and
25
+ * carries its comments alongside; storing only the comments cited
26
+ * the one part that had not been cut.
27
+ */
28
+ import { cite } from "./cite.js";
29
+ import { count } from "./counts.js";
30
+ import { citeListing, LISTING_BUDGET_BYTES } from "./listing.js";
31
+ import { withinLineBudget } from "./view.js";
32
+ /**
33
+ * The one collection in a details object, when there is exactly
34
+ * one.
35
+ *
36
+ * List-shaped answers carry a single collection: messages, files,
37
+ * events, locations. Single-subject answers carry none: one
38
+ * channel, one user, one document. Anything with two collections
39
+ * is ambiguous and left alone, because citing the wrong one points
40
+ * a caller's query at a shape that is not there, and a query that
41
+ * silently matches nothing is worse than no handle at all.
42
+ *
43
+ * An empty collection is also nothing to cite. There is no detail
44
+ * behind an answer that found nothing.
45
+ */
46
+ export function recordsIn(details) {
47
+ if (typeof details !== "object" || details === null)
48
+ return undefined;
49
+ const arrays = Object.entries(details).filter(([, value]) => Array.isArray(value));
50
+ if (arrays.length !== 1)
51
+ return undefined;
52
+ const [unit, items] = arrays[0];
53
+ if (items.length === 0)
54
+ return undefined;
55
+ return { items, unit };
56
+ }
57
+ /**
58
+ * Bound a rendered answer, citing the records behind it.
59
+ *
60
+ * The narrowing advice is the caller's to supply, because every
61
+ * family narrows differently and advice that names a parameter the
62
+ * tool does not have costs a call to disprove.
63
+ */
64
+ export function boundedByDetails(store, answer) {
65
+ const records = recordsIn(answer.details);
66
+ if (records !== undefined && rendersTheRecords(answer.details)) {
67
+ return citeListing(store, {
68
+ view: answer.text,
69
+ records: records.items,
70
+ unit: records.unit,
71
+ narrowing: answer.narrowing,
72
+ });
73
+ }
74
+ return citeWhole(store, answer, records);
75
+ }
76
+ /**
77
+ * Whether the details are the collection, rather than carrying one
78
+ * among other things.
79
+ *
80
+ * A listing's details are its records and the paging around them.
81
+ * A document's details are a file, its body and its comments, and
82
+ * the comments are not what the view rendered. Only the first can
83
+ * be cited as though the collection were the answer.
84
+ */
85
+ function rendersTheRecords(details) {
86
+ if (typeof details !== "object" || details === null)
87
+ return false;
88
+ return Object.values(details).every((value) => Array.isArray(value) || typeof value !== "object");
89
+ }
90
+ /**
91
+ * Bound the view and keep everything behind it.
92
+ *
93
+ * Used where the records cannot be picked out with confidence.
94
+ * Keeping the whole details is the conservative choice: whatever
95
+ * the view was rendered from is somewhere in there, so the cut is
96
+ * recoverable even though the query has to start a level higher.
97
+ * When there is nothing structured at all, the rendering itself is
98
+ * what would be lost, so the rendering is what is kept.
99
+ */
100
+ function citeWhole(store, answer, records) {
101
+ const bounded = withinLineBudget(answer.text, LISTING_BUDGET_BYTES);
102
+ if (bounded.cut === 0)
103
+ return bounded.text;
104
+ const hasDetails = typeof answer.details === "object" &&
105
+ answer.details !== null &&
106
+ Object.keys(answer.details).length > 0;
107
+ return cite(store, {
108
+ payload: hasDetails ? answer.details : answer.text,
109
+ view: `${bounded.text}\n\n` +
110
+ `Cut ${count(bounded.cut)} of ` +
111
+ `${count(bounded.total)} lines to fit the ` +
112
+ `${count(LISTING_BUDGET_BYTES)} byte budget. ` +
113
+ answer.narrowing,
114
+ shown: bounded.shown,
115
+ total: bounded.total,
116
+ unit: "lines",
117
+ stored: records
118
+ ? { count: records.items.length, unit: records.unit }
119
+ : { unit: hasDetails ? "result detail" : "rendered answer" },
120
+ }).text;
121
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Saying what a payload is shaped like, in a few hundred bytes.
3
+ *
4
+ * A handle on its own is a locked door: the caller knows the
5
+ * payload exists but not what to ask it. A digest is the label on
6
+ * the door, and it has to stay small whether it describes ten
7
+ * records or ten million, so every dimension that could grow with
8
+ * the input is bounded independently: depth, keys per object,
9
+ * elements profiled, and the final byte count.
10
+ *
11
+ * What it deliberately does not do is sample. A field's value
12
+ * profile is either over the whole array or replaced by the
13
+ * length and a first-element shape, never a partial scan
14
+ * presented as a total, because a caller who queries on the
15
+ * strength of a wrong profile has been misled by the thing meant
16
+ * to orient them.
17
+ */
18
+ /** Budgets that keep a summary bounded regardless of the input's size. */
19
+ export interface JsonSummaryOptions {
20
+ maxKeys?: number;
21
+ maxDepth?: number;
22
+ maxBytes?: number;
23
+ maxElements?: number;
24
+ /** Render the shape across indented lines instead of one compact line. */
25
+ pretty?: boolean;
26
+ }
27
+ /**
28
+ * Render a bounded structural summary of a parsed JSON value.
29
+ *
30
+ * An object becomes its keys mapped to value profiles, an array of objects
31
+ * becomes its length plus a per-key value-frequency profile, and a scalar
32
+ * becomes its type. Recursion stops at `maxDepth`, only `maxKeys` keys are shown
33
+ * before the rest are counted, arrays past `maxElements` degrade to a sample so
34
+ * the walk stays bounded, and the whole string is capped at `maxBytes`. With
35
+ * `pretty` the same shape is laid out across indented lines for a human to read.
36
+ */
37
+ export declare function summarizeJson(value: unknown, opts?: JsonSummaryOptions): string;
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Saying what a payload is shaped like, in a few hundred bytes.
3
+ *
4
+ * A handle on its own is a locked door: the caller knows the
5
+ * payload exists but not what to ask it. A digest is the label on
6
+ * the door, and it has to stay small whether it describes ten
7
+ * records or ten million, so every dimension that could grow with
8
+ * the input is bounded independently: depth, keys per object,
9
+ * elements profiled, and the final byte count.
10
+ *
11
+ * What it deliberately does not do is sample. A field's value
12
+ * profile is either over the whole array or replaced by the
13
+ * length and a first-element shape, never a partial scan
14
+ * presented as a total, because a caller who queries on the
15
+ * strength of a wrong profile has been misled by the thing meant
16
+ * to orient them.
17
+ */
18
+ const DEFAULT_MAX_KEYS = 40;
19
+ const DEFAULT_MAX_DEPTH = 3;
20
+ const DEFAULT_MAX_BYTES = 6000;
21
+ // The pretty form spends bytes on newlines and indentation, so it gets a larger
22
+ // cap: it is a terminal-only view a human reads on demand, never model context.
23
+ const DEFAULT_PRETTY_MAX_BYTES = 20000;
24
+ // Above this many array elements the profile stops tallying values and falls
25
+ // back to a first-element sample. Tallying is linear in element count, so this
26
+ // keeps the walk bounded no matter how large the parsed payload is, and it means
27
+ // a reported value count is always over the whole array, never a partial scan
28
+ // dressed up as exact. Every realistic result sits far below it.
29
+ const DEFAULT_MAX_ELEMENTS = 20000;
30
+ // How a profiled field's values are rendered: at most this many distinct values
31
+ // listed before folding the rest into a "(+N more)" tail, and above the high
32
+ // cardinality cutoff no values are listed at all, only the type and the distinct
33
+ // count, so an id-like field opts itself out instead of listing noise. Long
34
+ // scalar values are clipped so one value cannot dominate the summary.
35
+ const TOP_VALUES = 6;
36
+ const HIGH_CARDINALITY = 50;
37
+ const MAX_VALUE_LEN = 24;
38
+ /**
39
+ * Render a bounded structural summary of a parsed JSON value.
40
+ *
41
+ * An object becomes its keys mapped to value profiles, an array of objects
42
+ * becomes its length plus a per-key value-frequency profile, and a scalar
43
+ * becomes its type. Recursion stops at `maxDepth`, only `maxKeys` keys are shown
44
+ * before the rest are counted, arrays past `maxElements` degrade to a sample so
45
+ * the walk stays bounded, and the whole string is capped at `maxBytes`. With
46
+ * `pretty` the same shape is laid out across indented lines for a human to read.
47
+ */
48
+ export function summarizeJson(value, opts = {}) {
49
+ const maxKeys = opts.maxKeys ?? DEFAULT_MAX_KEYS;
50
+ const maxDepth = opts.maxDepth ?? DEFAULT_MAX_DEPTH;
51
+ const maxElements = opts.maxElements ?? DEFAULT_MAX_ELEMENTS;
52
+ const pretty = opts.pretty ?? false;
53
+ const maxBytes = opts.maxBytes ?? (pretty ? DEFAULT_PRETTY_MAX_BYTES : DEFAULT_MAX_BYTES);
54
+ return capBytes(describe(value, 0, maxDepth, maxKeys, maxElements, pretty), maxBytes);
55
+ }
56
+ /** The indentation for a given nesting depth in the pretty layout. */
57
+ function pad(depth) {
58
+ return " ".repeat(depth);
59
+ }
60
+ function describe(value, depth, maxDepth, maxKeys, maxElements, pretty) {
61
+ if (value === null)
62
+ return "null";
63
+ if (Array.isArray(value))
64
+ return describeArray(value, depth, maxDepth, maxKeys, maxElements, pretty);
65
+ if (typeof value === "object")
66
+ return describeObject(value, depth, maxDepth, maxKeys, maxElements, pretty);
67
+ if (typeof value === "string")
68
+ return `string(${value.length})`;
69
+ return typeof value;
70
+ }
71
+ function describeArray(value, depth, maxDepth, maxKeys, maxElements, pretty) {
72
+ if (value.length === 0)
73
+ return "array(0)";
74
+ if (depth >= maxDepth)
75
+ return `array(${value.length})`;
76
+ // Past the element bound, sample the first element instead of tallying: the
77
+ // count is too large to profile without an unbounded walk, so show the shape
78
+ // and let the handle carry the detail a query can pull.
79
+ if (value.length > maxElements) {
80
+ const first = describe(value[0], depth + 1, maxDepth, maxKeys, maxElements, pretty);
81
+ return `array(${value.length}, first=${first})`;
82
+ }
83
+ if (value.every(isScalar))
84
+ return `array(${value.length}) of ${profileScalars(value)}`;
85
+ if (value.every(isPlainObject))
86
+ return `array(${value.length}) of {${profileObjectArray(value, depth, maxKeys, pretty)}}`;
87
+ const first = describe(value[0], depth + 1, maxDepth, maxKeys, maxElements, pretty);
88
+ return `array(${value.length}, first=${first})`;
89
+ }
90
+ /** A JSON scalar for profiling: a primitive or null, never an object or array. */
91
+ function isScalar(value) {
92
+ return value === null || typeof value !== "object";
93
+ }
94
+ /** A plain (non-array) object, the shape the object-array profile expects. */
95
+ function isPlainObject(value) {
96
+ return typeof value === "object" && value !== null && !Array.isArray(value);
97
+ }
98
+ /** Profile an array of objects: each key mapped to a profile of its values. */
99
+ function profileObjectArray(rows, depth, maxKeys, pretty) {
100
+ const keys = [];
101
+ const seen = new Set();
102
+ for (const row of rows)
103
+ for (const key of Object.keys(row))
104
+ if (!seen.has(key)) {
105
+ seen.add(key);
106
+ keys.push(key);
107
+ }
108
+ const shown = keys.slice(0, maxKeys);
109
+ const parts = shown.map((key) => {
110
+ const values = rows
111
+ .map((row) => row[key])
112
+ .filter((v) => v !== undefined);
113
+ return `${key}: ${describeField(values, rows.length)}`;
114
+ });
115
+ const rest = keys.length - shown.length;
116
+ if (rest > 0)
117
+ parts.push(`(+${rest} more)`);
118
+ return joinEntries(parts, depth, pretty);
119
+ }
120
+ /**
121
+ * Profile a field, saying so when it is missing rather than saying
122
+ * nothing.
123
+ *
124
+ * A field can appear in the key set and hold a value on no record at
125
+ * all, and profiling only the values that exist then produced an
126
+ * empty string: "threadTs: " followed by the next field. A reader
127
+ * cannot tell from that whether the field is empty, absent, or a
128
+ * rendering fault, and it looks most like the last one. Real Slack
129
+ * data is where it showed up, since a message outside a thread
130
+ * carries neither a thread timestamp nor a reply count.
131
+ *
132
+ * Partial absence is worth the same honesty: a field carried by
133
+ * half the records is a different shape from one carried by all of
134
+ * them, and a query written against the first will come back
135
+ * shorter than expected for a reason the digest could have named.
136
+ */
137
+ function describeField(values, rows) {
138
+ if (values.length === 0)
139
+ return `absent on all ${rows}`;
140
+ const missing = rows - values.length;
141
+ const profile = profileField(values);
142
+ return missing > 0 ? `${profile}, absent×${missing}` : profile;
143
+ }
144
+ /** Profile one field's collected values: scalars by frequency, else by type. */
145
+ function profileField(values) {
146
+ if (values.every(isScalar))
147
+ return profileScalars(values);
148
+ if (values.every(isPlainObject))
149
+ return "object";
150
+ if (values.every(Array.isArray))
151
+ return "array";
152
+ return "mixed";
153
+ }
154
+ /**
155
+ * Profile a list of scalar values by frequency. Below the cardinality cutoff the
156
+ * most common values are listed with their counts; above it only the type and
157
+ * the distinct count are shown so a high-cardinality field stays compact.
158
+ */
159
+ function profileScalars(values) {
160
+ const counts = new Map();
161
+ for (const value of values) {
162
+ const key = JSON.stringify(value) ?? "null";
163
+ const entry = counts.get(key);
164
+ if (entry)
165
+ entry.count++;
166
+ else
167
+ counts.set(key, { value, count: 1 });
168
+ }
169
+ if (counts.size > HIGH_CARDINALITY)
170
+ return `${scalarType(values)} (${counts.size} distinct)`;
171
+ const ranked = [...counts.values()].sort((a, b) => b.count - a.count);
172
+ const listed = ranked
173
+ .slice(0, TOP_VALUES)
174
+ .map((e) => e.count > 1 ? `${display(e.value)}×${e.count}` : display(e.value))
175
+ .join(", ");
176
+ const rest = ranked.length - TOP_VALUES;
177
+ return rest > 0 ? `${listed}, (+${rest} more)` : listed;
178
+ }
179
+ /** The shared type name of a list of scalars, or "mixed" when they disagree. */
180
+ function scalarType(values) {
181
+ const types = new Set(values.map((v) => (v === null ? "null" : typeof v)));
182
+ return types.size === 1 ? [...types][0] : "mixed";
183
+ }
184
+ /** Render a scalar value for display, clipping a long string so it cannot dominate. */
185
+ function display(value) {
186
+ if (typeof value !== "string")
187
+ return String(value);
188
+ return value.length > MAX_VALUE_LEN
189
+ ? `${value.slice(0, MAX_VALUE_LEN)}...`
190
+ : value;
191
+ }
192
+ function describeObject(value, depth, maxDepth, maxKeys, maxElements, pretty) {
193
+ const keys = Object.keys(value);
194
+ if (depth >= maxDepth)
195
+ return `object(${keys.length} keys)`;
196
+ const shown = keys.slice(0, maxKeys);
197
+ const parts = shown.map((key) => `${key}: ${describe(value[key], depth + 1, maxDepth, maxKeys, maxElements, pretty)}`);
198
+ const rest = keys.length - shown.length;
199
+ if (rest > 0)
200
+ parts.push(`(+${rest} more)`);
201
+ return `{${joinEntries(parts, depth, pretty)}}`;
202
+ }
203
+ /**
204
+ * Join the entries of an object or object-array profile. Compact form runs them
205
+ * on one line; pretty form puts each on its own indented line so a human can
206
+ * scan the shape, with the closing brace back at the parent's indentation.
207
+ */
208
+ function joinEntries(parts, depth, pretty) {
209
+ if (!pretty)
210
+ return parts.join(", ");
211
+ if (parts.length === 0)
212
+ return "";
213
+ const inner = pad(depth + 1);
214
+ return `\n${parts.map((part) => inner + part).join("\n")}\n${pad(depth)}`;
215
+ }
216
+ /** Hard-cap a summary to `maxBytes`, cutting on a character boundary and marking the cut. */
217
+ function capBytes(text, maxBytes) {
218
+ const buf = Buffer.from(text, "utf-8");
219
+ if (buf.length <= maxBytes)
220
+ return text;
221
+ const marker = "...";
222
+ const budget = Math.max(0, maxBytes - marker.length);
223
+ let end = budget;
224
+ while (end > 0 && (buf[end] & 0xc0) === 0x80)
225
+ end--;
226
+ return buf.toString("utf-8", 0, end) + marker;
227
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Whether anything in this process can follow a handle.
3
+ *
4
+ * Every citation ends by telling the reader how to query the
5
+ * handle. That capability comes from one consumer of this library,
6
+ * and the consumers that mint handles are others, each loadable on
7
+ * their own. Load a browser tool without a query tool and every
8
+ * citation names a tool that is not there, which is worse than a
9
+ * long answer: the reader is told the rest of the data is one call
10
+ * away and the call does not exist.
11
+ *
12
+ * Kept on globalThis rather than in a module variable, because a
13
+ * module variable is not process-global when a host loads each
14
+ * consumer as its own module instance (pi loads each extension
15
+ * separately, for one). The symbol-keyed slot is the same
16
+ * mechanism the other registries in this package use for the same
17
+ * reason, and it also survives a module reimport.
18
+ */
19
+ /**
20
+ * Declare that a tool in this process can follow handles.
21
+ *
22
+ * Called by whichever consumer registers the query tool, on
23
+ * activation. Idempotent.
24
+ */
25
+ export declare function offerQueryTool(name: string): void;
26
+ /** Withdraw the offer, when the consumer goes away or a test ends. */
27
+ export declare function withdrawQueryTool(): void;
28
+ /** The tool a citation should name, or undefined when there is none. */
29
+ export declare function queryTool(): string | undefined;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Whether anything in this process can follow a handle.
3
+ *
4
+ * Every citation ends by telling the reader how to query the
5
+ * handle. That capability comes from one consumer of this library,
6
+ * and the consumers that mint handles are others, each loadable on
7
+ * their own. Load a browser tool without a query tool and every
8
+ * citation names a tool that is not there, which is worse than a
9
+ * long answer: the reader is told the rest of the data is one call
10
+ * away and the call does not exist.
11
+ *
12
+ * Kept on globalThis rather than in a module variable, because a
13
+ * module variable is not process-global when a host loads each
14
+ * consumer as its own module instance (pi loads each extension
15
+ * separately, for one). The symbol-keyed slot is the same
16
+ * mechanism the other registries in this package use for the same
17
+ * reason, and it also survives a module reimport.
18
+ */
19
+ /** Where the offer lives, shared by every copy of this module. */
20
+ const SLOT = Symbol.for("pi:agentic-harness:result-query-tool");
21
+ /**
22
+ * Declare that a tool in this process can follow handles.
23
+ *
24
+ * Called by whichever consumer registers the query tool, on
25
+ * activation. Idempotent.
26
+ */
27
+ export function offerQueryTool(name) {
28
+ globalThis[SLOT] = name;
29
+ }
30
+ /** Withdraw the offer, when the consumer goes away or a test ends. */
31
+ export function withdrawQueryTool() {
32
+ globalThis[SLOT] = undefined;
33
+ }
34
+ /** The tool a citation should name, or undefined when there is none. */
35
+ export function queryTool() {
36
+ return globalThis[SLOT];
37
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Tool answers that are bounded without being lossy.
3
+ *
4
+ * A tool with a large payload has always had two bad options:
5
+ * spend the caller's context on all of it, or cut it and lose the
6
+ * part that mattered. This library is the third option. The
7
+ * payload goes to a session store under an opaque handle, the
8
+ * answer carries a bounded view and a digest of the shape, and one
9
+ * query language reaches everything that was not shown.
10
+ *
11
+ * The pieces are separate because they are useful separately: a
12
+ * family that already knows how to page its own lists needs only
13
+ * the store and the citation, while one holding a single large
14
+ * document needs the digest too.
15
+ */
16
+ export { type Citable, type Cited, cite } from "./cite.js";
17
+ export { count } from "./counts.js";
18
+ export { boundedByDetails, type DetailRecords, recordsIn, } from "./details.js";
19
+ export { type JsonSummaryOptions, summarizeJson } from "./digest.js";
20
+ export { offerQueryTool, queryTool, withdrawQueryTool } from "./follow.js";
21
+ export { citeListing, LISTING_BUDGET_BYTES, type Listing, } from "./listing.js";
22
+ export { cleanupSessionResults, isPidAlive, openSessionStore, RESULT_ROOT, reapAbandonedResults, SESSION_QUOTA_BYTES, sessionResultDir, } from "./location.js";
23
+ export { DEFAULT_ANSWER_BYTES, DEFAULT_MAX_MATCHES, type QueryAnswer, type QueryOptions, queryStored, type TextBlock, } from "./query.js";
24
+ export { type SpilledPayload, spillText } from "./spill.js";
25
+ export { createResultStore, HandleExpiredError, MINTED_HANDLE_SHAPE, type ResultStore, type StoredResult, } from "./store.js";
26
+ export { type BudgetedView, withinLineBudget } from "./view.js";
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Tool answers that are bounded without being lossy.
3
+ *
4
+ * A tool with a large payload has always had two bad options:
5
+ * spend the caller's context on all of it, or cut it and lose the
6
+ * part that mattered. This library is the third option. The
7
+ * payload goes to a session store under an opaque handle, the
8
+ * answer carries a bounded view and a digest of the shape, and one
9
+ * query language reaches everything that was not shown.
10
+ *
11
+ * The pieces are separate because they are useful separately: a
12
+ * family that already knows how to page its own lists needs only
13
+ * the store and the citation, while one holding a single large
14
+ * document needs the digest too.
15
+ */
16
+ export { cite } from "./cite.js";
17
+ export { count } from "./counts.js";
18
+ export { boundedByDetails, recordsIn, } from "./details.js";
19
+ export { summarizeJson } from "./digest.js";
20
+ export { offerQueryTool, queryTool, withdrawQueryTool } from "./follow.js";
21
+ export { citeListing, LISTING_BUDGET_BYTES, } from "./listing.js";
22
+ export { cleanupSessionResults, isPidAlive, openSessionStore, RESULT_ROOT, reapAbandonedResults, SESSION_QUOTA_BYTES, sessionResultDir, } from "./location.js";
23
+ export { DEFAULT_ANSWER_BYTES, DEFAULT_MAX_MATCHES, queryStored, } from "./query.js";
24
+ export { spillText } from "./spill.js";
25
+ export { createResultStore, HandleExpiredError, MINTED_HANDLE_SHAPE, } from "./store.js";
26
+ export { withinLineBudget } from "./view.js";
@@ -0,0 +1,62 @@
1
+ /**
2
+ * A rendered listing, bounded for reading and stored for querying.
3
+ *
4
+ * Families render their own listings, and they should: a renderer
5
+ * that silently dropped rows would be lying in its own way.
6
+ * Bounding belongs here instead, at the point where the records
7
+ * are still to hand and can be kept.
8
+ *
9
+ * The counts in the citation are lines, because lines are what a
10
+ * reader can see and count for themselves. How many records those
11
+ * lines covered is not knowable from the text, and a citation
12
+ * nobody can check is a citation nobody should trust. What the
13
+ * payload actually holds is named separately, since a caller
14
+ * writing their first expression against lines when the payload
15
+ * holds records gets nothing back and no clue why.
16
+ */
17
+ import type { ResultStore } from "./store.js";
18
+ /** What a rendered listing spends before the rest is stored. */
19
+ export declare const LISTING_BUDGET_BYTES = 8192;
20
+ /** A listing, and the records behind it. */
21
+ export interface Listing<T> {
22
+ /** The rendered view, however long it came out. */
23
+ readonly view: string;
24
+ /** The records the view was rendered from. */
25
+ readonly records: readonly T[];
26
+ /** What the records are, in the caller's words. */
27
+ readonly unit: string;
28
+ /** How to ask for less, in this kind's own vocabulary. */
29
+ readonly narrowing: string;
30
+ /**
31
+ * A line or two that must survive the cut.
32
+ *
33
+ * Some views end with the thing the caller needs in order to
34
+ * carry on: a cursor to read from next, a note that entries were
35
+ * dropped. Those sit at the end, which is exactly what a
36
+ * leading-lines budget removes, so the announcement stream lost
37
+ * its cursor and its overflow warning together and said nothing
38
+ * about either. Kept apart from the records because it is not a
39
+ * record, and appended after the cut rather than counted into it.
40
+ */
41
+ readonly trailer?: string;
42
+ /**
43
+ * Whether the view leaves records out on its own account.
44
+ *
45
+ * The budget is not the only thing that elides. An audit report
46
+ * lists five elements per rule and says "and 7,995 more", which
47
+ * fits any budget comfortably and is missing almost everything.
48
+ * Keying the citation on the cut alone meant the answer with the
49
+ * most left out was the one answer that offered no way to reach
50
+ * it.
51
+ */
52
+ readonly elided?: boolean;
53
+ readonly budget?: number;
54
+ }
55
+ /**
56
+ * Bound a listing and cite its records when the view was cut.
57
+ *
58
+ * A listing that fits is returned untouched, with no citation and
59
+ * no advice: the view is the whole truth and saying more would be
60
+ * noise.
61
+ */
62
+ export declare function citeListing<T>(store: ResultStore, listing: Listing<T>): string;