@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,56 @@
1
+ /**
2
+ * Where a change stands with a merge queue, and what that costs.
3
+ *
4
+ * This exists because the substrate had the refusal and not the fact. An
5
+ * authoring intent could carry `enqueued: true` and be refused for it,
6
+ * but nothing ever read the queue from a provider, so the gate was
7
+ * unreachable and every mutation went through.
8
+ */
9
+ /** `1st`, `2nd`, `3rd`, `4th`. */
10
+ function ordinal(n) {
11
+ const teen = n % 100;
12
+ if (teen >= 11 && teen <= 13)
13
+ return `${n}th`;
14
+ const suffix = { 1: "st", 2: "nd", 3: "rd" }[n % 10] ?? "th";
15
+ return `${n}${suffix}`;
16
+ }
17
+ /**
18
+ * Why a mutation should not happen right now, or nothing.
19
+ *
20
+ * Two hazards, deliberately answered separately, because they have
21
+ * different fixes and a message covering both would name neither.
22
+ *
23
+ * A queued change ejects when it changes, and takes everything
24
+ * speculatively batched with it. That is the expensive one, and it is
25
+ * only expensive when the change is batched, so `solo` is respected: a
26
+ * refusal that claims hundreds of jobs for a change being tested alone
27
+ * teaches the reader to stop believing refusals.
28
+ *
29
+ * A waiting change has a subtler problem. The checks ran once, when it
30
+ * was marked ready, and a later commit does not retrigger them. So a
31
+ * mutation does not eject anything; it strands the change with results
32
+ * that describe code nobody has now.
33
+ */
34
+ export function queueRefusal(queue, providerId) {
35
+ // Absent is unknown rather than queued. A provider with no queue must
36
+ // not have every mutation refused on suspicion.
37
+ if (queue === undefined || queue.posture === "unqueued")
38
+ return undefined;
39
+ const said = queue.detail ? ` The backend says: ${queue.detail}.` : "";
40
+ if (queue.posture === "waiting") {
41
+ return {
42
+ reason: `This change is waiting on checks to merge on ${providerId}, and those checks ran once when it was marked ready. Changing it now does not run them again, so the results would describe code that no longer exists.${said}`,
43
+ instead: "Cancel the merge, make the change, then re-run the checks and queue it again.",
44
+ };
45
+ }
46
+ const place = queue.position === undefined
47
+ ? ""
48
+ : ` It is ${ordinal(queue.position)} in line.`;
49
+ const batch = queue.solo === true
50
+ ? ""
51
+ : " Everything speculatively batched with it is ejected too, and re-running the checks for the rest is measured in hundreds of jobs.";
52
+ return {
53
+ reason: `This change is queued to merge on ${providerId}, and changing it now ejects it from the queue.${batch}${place}${said}`,
54
+ instead: "Cancel the merge, make the change, and queue it again, or wait for it to land.",
55
+ };
56
+ }
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Addressing one comment out of a conversation.
3
+ *
4
+ * A thread has an address a person can read and repeat: the listing numbers
5
+ * threads `[T1]`, `[T2]`, and every tool that acts on one takes that number.
6
+ * The rule that goes with it is stated in the tool's own guidelines: refer to
7
+ * a thread by the index the listing shows, never invent one.
8
+ *
9
+ * A comment had no such address. Reacting to one needed a provider's internal
10
+ * id, `rc:2098169118733` on GitHub, which no listing printed anywhere, so the
11
+ * only way to name a comment was to guess at a number the surface had never
12
+ * shown. The rule against inventing ids was stated and, for reactions, not
13
+ * backed by anything.
14
+ *
15
+ * So comments are numbered too, and the numbering lives here rather than in a
16
+ * renderer because it has to survive being computed twice: once to render a
17
+ * listing and again to resolve what somebody read off it. Those are separate
18
+ * reads of the conversation, and a number meaning one comment in the listing
19
+ * and another at resolution would be worse than no number at all.
20
+ *
21
+ * What keeps them agreeing is that the address says which kind of comment it
22
+ * is. A remark inside a thread is `[C1]` upward; a top-level message is `[M1]`
23
+ * upward. Because the two families are numbered apart, a caller holding only
24
+ * the threads computes exactly the labels a caller holding the whole
25
+ * conversation computes for those same threads, and the listing that shows
26
+ * only messages does not have to fetch every thread to number them. Sharing
27
+ * one space would have made every listing read the whole conversation to
28
+ * print an address for a part of it.
29
+ */
30
+ import type { Message, Thread } from "./conversation.js";
31
+ /** Which family a comment's address belongs to. */
32
+ export type ReactableKind = "comment" | "message";
33
+ /** One comment, with the address a listing prints for it. */
34
+ export interface Reactable {
35
+ /** Whether it sits in a thread or stands on its own. */
36
+ kind: ReactableKind;
37
+ /** The 1-based number within its own family. */
38
+ index: number;
39
+ /** The address itself, as `[C3]`, so a renderer does not rebuild it. */
40
+ label: string;
41
+ /** The comment, whole, for handing to a provider. */
42
+ message: Message;
43
+ /** The thread it sits in, when it sits in one. */
44
+ thread?: Thread;
45
+ }
46
+ /** The address a listing prints for the nth comment of a kind. */
47
+ export declare function reactableLabel(kind: ReactableKind, index: number): string;
48
+ /**
49
+ * Number every comment in a conversation, or in the part of one to hand.
50
+ *
51
+ * Both arguments are optional because the two listings that print these
52
+ * addresses each hold half the conversation, and neither should have to fetch
53
+ * the other half to number what it already has.
54
+ *
55
+ * Order within a family is by the provider's own order, since that is what the
56
+ * listing shows and a number that disagreed with the line it sits on would be
57
+ * unusable. Threads are walked in the order given for the same reason.
58
+ */
59
+ export declare function reactables(conversation: {
60
+ threads?: Thread[];
61
+ messages?: Message[];
62
+ }): Reactable[];
63
+ /**
64
+ * What a listing needs to print an address beside each comment.
65
+ *
66
+ * By comment id, because a renderer walks the conversation in its own shape
67
+ * and should not have to search a list to find the label for the line it is
68
+ * on.
69
+ */
70
+ export declare function reactableAddresses(among: Reactable[]): Map<string, string>;
71
+ /** What went wrong when a comment could not be found. */
72
+ export interface ReactableRefusal {
73
+ reason: string;
74
+ }
75
+ /**
76
+ * Resolve what somebody typed into the comment they meant.
77
+ *
78
+ * Takes the `[C3]` or `[M1]` a listing printed, or a provider's own id for the
79
+ * times one is to hand from elsewhere. The address is the discoverable form
80
+ * and the reason this exists; the raw id stays accepted because a caller who
81
+ * already holds one should not have to go and find its number.
82
+ *
83
+ * A bare number is refused rather than guessed at. It is ambiguous between the
84
+ * two families, and picking one would react to the wrong comment about half
85
+ * the time while looking like it worked.
86
+ *
87
+ * Every refusal says where the right answer comes from, since being told a
88
+ * number is wrong without being told where numbers come from leaves a caller
89
+ * guessing exactly as it was before.
90
+ */
91
+ export declare function findReactable(asked: string, among: Reactable[]): Reactable | ReactableRefusal;
92
+ /** Whether resolving a comment failed. */
93
+ export declare function isReactableRefusal(outcome: Reactable | ReactableRefusal): outcome is ReactableRefusal;
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Addressing one comment out of a conversation.
3
+ *
4
+ * A thread has an address a person can read and repeat: the listing numbers
5
+ * threads `[T1]`, `[T2]`, and every tool that acts on one takes that number.
6
+ * The rule that goes with it is stated in the tool's own guidelines: refer to
7
+ * a thread by the index the listing shows, never invent one.
8
+ *
9
+ * A comment had no such address. Reacting to one needed a provider's internal
10
+ * id, `rc:2098169118733` on GitHub, which no listing printed anywhere, so the
11
+ * only way to name a comment was to guess at a number the surface had never
12
+ * shown. The rule against inventing ids was stated and, for reactions, not
13
+ * backed by anything.
14
+ *
15
+ * So comments are numbered too, and the numbering lives here rather than in a
16
+ * renderer because it has to survive being computed twice: once to render a
17
+ * listing and again to resolve what somebody read off it. Those are separate
18
+ * reads of the conversation, and a number meaning one comment in the listing
19
+ * and another at resolution would be worse than no number at all.
20
+ *
21
+ * What keeps them agreeing is that the address says which kind of comment it
22
+ * is. A remark inside a thread is `[C1]` upward; a top-level message is `[M1]`
23
+ * upward. Because the two families are numbered apart, a caller holding only
24
+ * the threads computes exactly the labels a caller holding the whole
25
+ * conversation computes for those same threads, and the listing that shows
26
+ * only messages does not have to fetch every thread to number them. Sharing
27
+ * one space would have made every listing read the whole conversation to
28
+ * print an address for a part of it.
29
+ */
30
+ /** The letter each family is addressed by. */
31
+ const LETTER = {
32
+ comment: "C",
33
+ message: "M",
34
+ };
35
+ /** The address a listing prints for the nth comment of a kind. */
36
+ export function reactableLabel(kind, index) {
37
+ return `[${LETTER[kind]}${index}]`;
38
+ }
39
+ /**
40
+ * Number every comment in a conversation, or in the part of one to hand.
41
+ *
42
+ * Both arguments are optional because the two listings that print these
43
+ * addresses each hold half the conversation, and neither should have to fetch
44
+ * the other half to number what it already has.
45
+ *
46
+ * Order within a family is by the provider's own order, since that is what the
47
+ * listing shows and a number that disagreed with the line it sits on would be
48
+ * unusable. Threads are walked in the order given for the same reason.
49
+ */
50
+ export function reactables(conversation) {
51
+ const found = [];
52
+ let comments = 0;
53
+ for (const thread of conversation.threads ?? []) {
54
+ for (const message of thread.comments) {
55
+ comments += 1;
56
+ found.push({
57
+ kind: "comment",
58
+ index: comments,
59
+ label: reactableLabel("comment", comments),
60
+ message,
61
+ thread,
62
+ });
63
+ }
64
+ }
65
+ let messages = 0;
66
+ for (const message of conversation.messages ?? []) {
67
+ messages += 1;
68
+ found.push({
69
+ kind: "message",
70
+ index: messages,
71
+ label: reactableLabel("message", messages),
72
+ message,
73
+ });
74
+ }
75
+ return found;
76
+ }
77
+ /**
78
+ * What a listing needs to print an address beside each comment.
79
+ *
80
+ * By comment id, because a renderer walks the conversation in its own shape
81
+ * and should not have to search a list to find the label for the line it is
82
+ * on.
83
+ */
84
+ export function reactableAddresses(among) {
85
+ return new Map(among.map((one) => [one.message.id, one.label]));
86
+ }
87
+ /**
88
+ * Resolve what somebody typed into the comment they meant.
89
+ *
90
+ * Takes the `[C3]` or `[M1]` a listing printed, or a provider's own id for the
91
+ * times one is to hand from elsewhere. The address is the discoverable form
92
+ * and the reason this exists; the raw id stays accepted because a caller who
93
+ * already holds one should not have to go and find its number.
94
+ *
95
+ * A bare number is refused rather than guessed at. It is ambiguous between the
96
+ * two families, and picking one would react to the wrong comment about half
97
+ * the time while looking like it worked.
98
+ *
99
+ * Every refusal says where the right answer comes from, since being told a
100
+ * number is wrong without being told where numbers come from leaves a caller
101
+ * guessing exactly as it was before.
102
+ */
103
+ export function findReactable(asked, among) {
104
+ const wanted = asked.trim();
105
+ if (wanted === "") {
106
+ return { reason: "Naming a comment needs something to go on." };
107
+ }
108
+ const addressed = /^\[?([CcMm])(\d+)\]?$/.exec(wanted);
109
+ if (addressed) {
110
+ const kind = addressed[1].toLowerCase() === "c" ? "comment" : "message";
111
+ const at = Number(addressed[2]);
112
+ const family = among.filter((one) => one.kind === kind);
113
+ const found = family.find((one) => one.index === at);
114
+ if (found)
115
+ return found;
116
+ const where = kind === "comment"
117
+ ? "Read the threads; the listing addresses every remark in them."
118
+ : "Read the messages; the listing addresses each one.";
119
+ return {
120
+ reason: family.length === 0
121
+ ? `There are no ${kind === "comment" ? "thread remarks" : "top-level messages"} on this change to react to.`
122
+ : `There is no ${reactableLabel(kind, at)} on this change; that family runs ${reactableLabel(kind, 1)} to ${reactableLabel(kind, family.length)}. ${where}`,
123
+ };
124
+ }
125
+ if (/^\d+$/.test(wanted)) {
126
+ return {
127
+ reason: `A bare ${wanted} does not say which comment: ${reactableLabel("comment", Number(wanted))} is a remark in a thread and ${reactableLabel("message", Number(wanted))} is a top-level message. Use the address the listing prints.`,
128
+ };
129
+ }
130
+ const byId = among.find((one) => one.message.id === wanted);
131
+ if (byId)
132
+ return byId;
133
+ return {
134
+ reason: `Nothing on this change has the id ${wanted}. Read the threads or the messages and use the address the listing prints, which is what this is for.`,
135
+ };
136
+ }
137
+ /** Whether resolving a comment failed. */
138
+ export function isReactableRefusal(outcome) {
139
+ return "reason" in outcome;
140
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Provider registration. Mirrors the tree library: explicit
3
+ * registration for built-ins, free functions for ad-hoc
4
+ * providers, an opt-out clear for tests.
5
+ *
6
+ * Listing sorts by claim priority rather than registration
7
+ * order, because the order providers are asked in is part of
8
+ * the contract and no caller should have to re-sort to get
9
+ * it right.
10
+ */
11
+ import { type Unbacked } from "./backed.js";
12
+ import type { RepoLocator } from "./change.js";
13
+ import type { ReviewProvider } from "./provider.js";
14
+ /**
15
+ * What a provider was found saying about itself that is not true.
16
+ *
17
+ * Reported rather than thrown. A provider with one bad declaration still does
18
+ * everything else it says, and refusing to register it would take a working
19
+ * backend off the surface over a capability nobody in this session is going to
20
+ * reach for. The host says this out loud instead, which is the same bargain the
21
+ * rest of the substrate makes about degradation.
22
+ */
23
+ export interface ProviderComplaint {
24
+ provider: string;
25
+ repo: string;
26
+ unbacked: Unbacked[];
27
+ }
28
+ /**
29
+ * Register a provider. Replaces any provider already
30
+ * registered under the same id.
31
+ *
32
+ * Pass a repo to have the provider's declarations checked against its methods
33
+ * as it arrives, and act on whatever comes back. This is the only place that
34
+ * check can be made of every provider: the ones that matter arrive over the
35
+ * event bus from other packages, and a build-time gate cannot import one. For
36
+ * weeks the answer to that was a hand-copied table in each package, which is
37
+ * one rule and one guess about it.
38
+ *
39
+ * The repo is asked for rather than invented because a provider is entitled to
40
+ * answer differently for different repos, and one handed a key from a space it
41
+ * does not recognize returns a default and reports greens having compared
42
+ * nothing.
43
+ */
44
+ export declare function registerReviewProvider(provider: ReviewProvider, against?: RepoLocator): ProviderComplaint | undefined;
45
+ /** Remove a provider from the registry. Idempotent. */
46
+ export declare function unregisterReviewProvider(id: string): void;
47
+ /** Look up a provider by id. */
48
+ export declare function getReviewProvider(id: string): ReviewProvider | undefined;
49
+ /** Every registered provider, in the order they are asked. */
50
+ export declare function listReviewProviders(): ReviewProvider[];
51
+ /** Empty the registry. Intended for tests. */
52
+ export declare function clearReviewProviders(): void;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Provider registration. Mirrors the tree library: explicit
3
+ * registration for built-ins, free functions for ad-hoc
4
+ * providers, an opt-out clear for tests.
5
+ *
6
+ * Listing sorts by claim priority rather than registration
7
+ * order, because the order providers are asked in is part of
8
+ * the contract and no caller should have to re-sort to get
9
+ * it right.
10
+ */
11
+ import { clear, get, list, register, unregister, } from "../internal/review/registry.js";
12
+ import { unbackedDeclarations } from "./backed.js";
13
+ /**
14
+ * Register a provider. Replaces any provider already
15
+ * registered under the same id.
16
+ *
17
+ * Pass a repo to have the provider's declarations checked against its methods
18
+ * as it arrives, and act on whatever comes back. This is the only place that
19
+ * check can be made of every provider: the ones that matter arrive over the
20
+ * event bus from other packages, and a build-time gate cannot import one. For
21
+ * weeks the answer to that was a hand-copied table in each package, which is
22
+ * one rule and one guess about it.
23
+ *
24
+ * The repo is asked for rather than invented because a provider is entitled to
25
+ * answer differently for different repos, and one handed a key from a space it
26
+ * does not recognize returns a default and reports greens having compared
27
+ * nothing.
28
+ */
29
+ export function registerReviewProvider(provider, against) {
30
+ register(provider);
31
+ if (!against)
32
+ return undefined;
33
+ const unbacked = unbackedDeclarations(provider, against);
34
+ return unbacked.length > 0
35
+ ? { provider: provider.id, repo: against.key, unbacked }
36
+ : undefined;
37
+ }
38
+ /** Remove a provider from the registry. Idempotent. */
39
+ export function unregisterReviewProvider(id) {
40
+ unregister(id);
41
+ }
42
+ /** Look up a provider by id. */
43
+ export function getReviewProvider(id) {
44
+ return get(id);
45
+ }
46
+ /** Every registered provider, in the order they are asked. */
47
+ export function listReviewProviders() {
48
+ return [...list()].sort((a, b) => a.priority - b.priority);
49
+ }
50
+ /** Empty the registry. Intended for tests. */
51
+ export function clearReviewProviders() {
52
+ clear();
53
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Which provider handles this reference.
3
+ *
4
+ * The order is declared rather than emergent, because the
5
+ * failure mode this replaces is a tool quietly reaching for
6
+ * the wrong backend. Config comes first, since only the user
7
+ * knows which of two backends mirroring the same repo is the
8
+ * real one this week. Then the providers themselves, in claim
9
+ * priority order, so adding a backend never means editing
10
+ * this file. Then the user's own reference shapes, which
11
+ * catch what no provider recognizes. Then a refusal that
12
+ * names the knob to turn: never a default.
13
+ */
14
+ import type { ChangeRef } from "./change.js";
15
+ import type { ReviewConfig } from "./config.js";
16
+ import type { RepoProbe, ReviewProvider } from "./provider.js";
17
+ /** How a reference came to be resolved. */
18
+ export type ResolvedVia = "config-repo" | "claim" | "config-reference";
19
+ /** Why a reference could not be resolved. */
20
+ export type ResolutionRefusal = "no-providers" | "unclaimed";
21
+ /** What the caller knows when asking. */
22
+ export interface ResolveContext {
23
+ config?: ReviewConfig;
24
+ /** The checkout the question was asked from, when there is one. */
25
+ probe?: RepoProbe;
26
+ }
27
+ /** The answer, resolved or refused with guidance. */
28
+ export type Resolution = {
29
+ resolved: true;
30
+ change: ChangeRef;
31
+ provider: ReviewProvider;
32
+ via: ResolvedVia;
33
+ } | {
34
+ resolved: false;
35
+ reason: ResolutionRefusal;
36
+ /** Provider ids that were asked, in order. */
37
+ tried: string[];
38
+ /** What the user can do about it. */
39
+ message: string;
40
+ };
41
+ /**
42
+ * Where the config says a repo is checked out, if it says.
43
+ *
44
+ * Matched against the repo's key rather than against a probe, because
45
+ * the caller asking this has a repo and no directory: that is the
46
+ * whole situation it is for. The same substring rule as everywhere
47
+ * else, so one mapping serves both questions.
48
+ */
49
+ export declare function checkoutFor(repoKey: string, config: ReviewConfig | undefined): string | undefined;
50
+ /**
51
+ * Resolve a reference to a change and the provider owning it.
52
+ *
53
+ * A mapped repo gets first refusal, then every provider in
54
+ * claim order, then the user's own reference shapes. Nothing
55
+ * defaults: an unrecognized reference comes back as a refusal
56
+ * naming the knob that would fix it.
57
+ */
58
+ export declare function resolveReference(input: string, context?: ResolveContext): Resolution;
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Which provider handles this reference.
3
+ *
4
+ * The order is declared rather than emergent, because the
5
+ * failure mode this replaces is a tool quietly reaching for
6
+ * the wrong backend. Config comes first, since only the user
7
+ * knows which of two backends mirroring the same repo is the
8
+ * real one this week. Then the providers themselves, in claim
9
+ * priority order, so adding a backend never means editing
10
+ * this file. Then the user's own reference shapes, which
11
+ * catch what no provider recognizes. Then a refusal that
12
+ * names the knob to turn: never a default.
13
+ */
14
+ import { getReviewProvider, listReviewProviders } from "./register.js";
15
+ /** Whether a mapping's match names this checkout. */
16
+ function mappingMatches(mapping, probe) {
17
+ const haystacks = [probe.repoRoot ?? "", ...(probe.remoteUrls ?? [])];
18
+ return haystacks.some((value) => value.includes(mapping.match));
19
+ }
20
+ /**
21
+ * Where the config says a repo is checked out, if it says.
22
+ *
23
+ * Matched against the repo's key rather than against a probe, because
24
+ * the caller asking this has a repo and no directory: that is the
25
+ * whole situation it is for. The same substring rule as everywhere
26
+ * else, so one mapping serves both questions.
27
+ */
28
+ export function checkoutFor(repoKey, config) {
29
+ for (const mapping of config?.repos ?? []) {
30
+ if (mapping.path === undefined)
31
+ continue;
32
+ if (repoKey.includes(mapping.match))
33
+ return mapping.path;
34
+ }
35
+ return undefined;
36
+ }
37
+ /** Providers a repo mapping names, in the order it names them. */
38
+ function mappedProviders(context) {
39
+ const probe = context?.probe;
40
+ const mappings = context?.config?.repos;
41
+ if (!probe || !mappings)
42
+ return { ids: [], present: [] };
43
+ const mapping = mappings.find((entry) => mappingMatches(entry, probe));
44
+ if (!mapping)
45
+ return { ids: [], present: [] };
46
+ const present = [];
47
+ for (const id of mapping.providers) {
48
+ const provider = getReviewProvider(id);
49
+ if (provider)
50
+ present.push(provider);
51
+ }
52
+ return { ids: mapping.providers, present };
53
+ }
54
+ /** Build a change from a reference mapping that matched. */
55
+ function changeFromMapping(mapping, input) {
56
+ const match = new RegExp(mapping.pattern).exec(input);
57
+ if (!match)
58
+ return undefined;
59
+ const repoKey = match.groups?.repo ?? mapping.repo;
60
+ const id = match.groups?.id ?? match[1];
61
+ if (!repoKey || !id)
62
+ return undefined;
63
+ // A user-supplied mapping has no provider to ask for a
64
+ // label, and what the person typed is what they will
65
+ // recognize back.
66
+ return {
67
+ provider: mapping.provider,
68
+ repo: { key: repoKey },
69
+ id,
70
+ label: input,
71
+ };
72
+ }
73
+ /**
74
+ * Ask a list of providers, in order, to claim the reference.
75
+ *
76
+ * Each provider is first asked what it makes of the checkout,
77
+ * and that answer is handed to it along with the reference. A
78
+ * bare number means "in this repo", and only the provider can
79
+ * say whether this repo is one of its own, so a number typed in
80
+ * a gitstream checkout does not become a GitHub pull request.
81
+ */
82
+ function firstClaim(providers, input, via, tried, probe) {
83
+ for (const provider of providers) {
84
+ tried.push(provider.id);
85
+ const repo = probe ? (provider.claimRepo(probe) ?? undefined) : undefined;
86
+ const change = provider.claimReference(input, repo);
87
+ if (change)
88
+ return { resolved: true, change, provider, via };
89
+ }
90
+ return undefined;
91
+ }
92
+ /** The guidance a refusal carries. */
93
+ function refusalMessage(absentMapped) {
94
+ const parts = [
95
+ "No review provider recognized that reference.",
96
+ "Map its shape under review.references, or pin the repo",
97
+ "under review.repos.",
98
+ ];
99
+ if (absentMapped.length > 0) {
100
+ parts.push(`Config names ${absentMapped.join(", ")} for this repo, but`, "no provider registered under that id.");
101
+ }
102
+ return parts.join(" ");
103
+ }
104
+ /**
105
+ * Resolve a reference to a change and the provider owning it.
106
+ *
107
+ * A mapped repo gets first refusal, then every provider in
108
+ * claim order, then the user's own reference shapes. Nothing
109
+ * defaults: an unrecognized reference comes back as a refusal
110
+ * naming the knob that would fix it.
111
+ */
112
+ export function resolveReference(input, context) {
113
+ const providers = listReviewProviders();
114
+ if (providers.length === 0) {
115
+ return {
116
+ resolved: false,
117
+ reason: "no-providers",
118
+ tried: [],
119
+ message: "No review provider is registered, so nothing can be " +
120
+ "resolved. Load the review integration, or register a " +
121
+ "provider over the bus.",
122
+ };
123
+ }
124
+ const tried = [];
125
+ const probe = context?.probe;
126
+ const mapped = mappedProviders(context);
127
+ const byConfig = firstClaim(mapped.present, input, "config-repo", tried, probe);
128
+ if (byConfig)
129
+ return byConfig;
130
+ const remaining = providers.filter((p) => !tried.includes(p.id));
131
+ const byClaim = firstClaim(remaining, input, "claim", tried, probe);
132
+ if (byClaim)
133
+ return byClaim;
134
+ for (const mapping of context?.config?.references ?? []) {
135
+ const provider = getReviewProvider(mapping.provider);
136
+ if (!provider)
137
+ continue;
138
+ const change = changeFromMapping(mapping, input);
139
+ if (change) {
140
+ return { resolved: true, change, provider, via: "config-reference" };
141
+ }
142
+ }
143
+ const absentMapped = mapped.ids.filter((id) => !getReviewProvider(id));
144
+ return {
145
+ resolved: false,
146
+ reason: "unclaimed",
147
+ tried,
148
+ message: refusalMessage(absentMapped),
149
+ };
150
+ }
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Pointing a stack's changes back at what they now sit on.
3
+ *
4
+ * A local restack moves branches. It does not touch the changes those
5
+ * branches are proposed as, so afterwards each one still claims to
6
+ * merge into whatever it targeted when it went up. On a stack whose
7
+ * bottom has landed, that is a change targeting a branch nobody is
8
+ * merging any more, and the diff it shows is against the wrong thing.
9
+ *
10
+ * Whose job it is to fix that differs by backend, which is what
11
+ * deferred this the first time. On one, retargeting is per change and
12
+ * the caller walks the stack doing it. On another it is a single stack
13
+ * operation, because the backend holds the stack itself and moving one
14
+ * change without the others would leave its own model inconsistent.
15
+ *
16
+ * So the substrate does what it does for a diff: implement the general
17
+ * case over the parts every provider has, and stand aside where a
18
+ * provider says it owns the whole operation. The generic walk is not a
19
+ * lesser version of the native one; for a backend that has no notion
20
+ * of a stack it is the only version there is, and it is right there.
21
+ */
22
+ import type { AuthoringFacet } from "./provider.js";
23
+ import type { Stack } from "./stack.js";
24
+ /** One change that should point somewhere else, and where. */
25
+ export interface Retarget {
26
+ /** The change to move, by the ref its node names. */
27
+ ref: string;
28
+ /** What it targets now. */
29
+ from: string;
30
+ /** What it should target. */
31
+ to: string;
32
+ }
33
+ /** What a retarget pass would do, or why it would do nothing. */
34
+ export interface RetargetPlan {
35
+ /** The moves, in the order they should happen. */
36
+ moves: Retarget[];
37
+ /** Nodes deliberately left alone, and the reason for each. */
38
+ skipped: {
39
+ ref: string;
40
+ why: string;
41
+ }[];
42
+ }
43
+ /**
44
+ * Which changes in a stack point at the wrong base, and where they go.
45
+ *
46
+ * Roots are excluded rather than pointed at the trunk. A root already
47
+ * targets the trunk in the ordinary case, and where it does not, the
48
+ * stack cannot say whether that is wrong: somebody may be proposing a
49
+ * root against a release branch on purpose, and moving it to the trunk
50
+ * would retarget a change nobody asked about onto a branch that asks a
51
+ * different team to review it.
52
+ */
53
+ export declare function retargetPlan(stack: Stack): RetargetPlan;
54
+ /** Whether a provider owns this operation, or the substrate walks it. */
55
+ export interface RetargetRoute {
56
+ kind: "native" | "per-change";
57
+ /** Said out loud, because which one ran changes what can go wrong. */
58
+ why: string;
59
+ }
60
+ /**
61
+ * Who should carry out a retarget, and why that is the right answer.
62
+ *
63
+ * Named rather than decided silently because the two fail differently
64
+ * and a caller has to be able to report which happened. A native pass
65
+ * either moves the stack or does not. A per-change walk can stop half
66
+ * way, leaving some changes moved and some not, and somebody reading
67
+ * "retarget failed" needs to know which of those they are looking at.
68
+ */
69
+ export declare function retargetRoute(stacking: {
70
+ restack?: unknown;
71
+ } | undefined, authoring: AuthoringFacet | undefined): RetargetRoute | {
72
+ refusal: string;
73
+ };