@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,16 @@
1
+ /**
2
+ * Side completions: run a one-shot completion against a model
3
+ * from the registry, off the agent's own loop.
4
+ *
5
+ * The advisor and correction capture both need a cheap second
6
+ * model to distill or judge without disturbing the doer. This is
7
+ * the shared mechanism, proven by the milestone-5 probe.
8
+ *
9
+ * Actually running a model is a port (`CompleteSimple`), not
10
+ * something this package can do on its own: `runSideCompletion` and
11
+ * `runInvestigation` both take one as a parameter. An adapter
12
+ * resolves its own host's completion function and passes it in.
13
+ */
14
+ export { runInvestigation, } from "./investigate.js";
15
+ export { looksLikeGlm, pickModel, } from "./resolve.js";
16
+ export { runSideCompletion, } from "./side.js";
@@ -0,0 +1,63 @@
1
+ /**
2
+ * A bounded, tool-using investigation against a side model.
3
+ *
4
+ * The advisor is a tool-using investigator, not a
5
+ * transcript-only judge: it must be able to check a suspicion
6
+ * against the workspace before it raises it. This runs a capped
7
+ * loop where the model may call read-only tools, each result is
8
+ * fed back into the same growing message list, and the loop ends
9
+ * when the model answers with text or the step budget runs out.
10
+ *
11
+ * The message list is the caller's persistent context, so the
12
+ * prefix caches turn to turn: the cost lever the advisor design
13
+ * rests on. Usage is summed across every step of the loop.
14
+ *
15
+ * `complete` is a port, the same as runSideCompletion's: this
16
+ * module has no way to run a model itself, and does not know or
17
+ * care what backend the caller's host runs one through.
18
+ */
19
+ import { type ModelRef } from "./resolve.js";
20
+ import type { CompleteSimple, CompletionRegistry, CompletionUsage } from "./types.js";
21
+ /** A read-only tool the investigation may call. */
22
+ export interface LoopTool {
23
+ readonly name: string;
24
+ readonly description: string;
25
+ /** JSON schema for the tool's arguments. */
26
+ readonly parameters: unknown;
27
+ /** Run the tool and return its text result. */
28
+ execute(args: Record<string, unknown>): Promise<string>;
29
+ }
30
+ /** What to investigate and with what budget. */
31
+ export interface InvestigationRequest {
32
+ readonly provider?: string;
33
+ readonly model?: string;
34
+ readonly systemPrompt: string;
35
+ /** The persistent message list; appended to in place-safe copies. */
36
+ readonly messages: unknown[];
37
+ readonly tools: LoopTool[];
38
+ readonly current?: ModelRef;
39
+ /** Maximum model round-trips before the loop stops. */
40
+ readonly maxSteps: number;
41
+ readonly signal?: AbortSignal;
42
+ }
43
+ /** The outcome of an investigation. */
44
+ export interface InvestigationResult {
45
+ readonly ok: boolean;
46
+ readonly text: string;
47
+ readonly provider?: string;
48
+ readonly model?: string;
49
+ readonly usage: CompletionUsage;
50
+ /** Model round-trips actually made. */
51
+ readonly steps: number;
52
+ /** The grown message list, for the caller to keep as context. */
53
+ readonly messages: unknown[];
54
+ readonly error?: string;
55
+ }
56
+ /**
57
+ * Run a bounded investigation. Resolves a model and its auth,
58
+ * then loops the model against `tools` through `complete`, feeding
59
+ * each tool result back in, until the model answers with text or
60
+ * `maxSteps` is reached. Every failure path returns `ok: false`
61
+ * with a message rather than throwing.
62
+ */
63
+ export declare function runInvestigation(registry: CompletionRegistry, request: InvestigationRequest, complete: CompleteSimple): Promise<InvestigationResult>;
@@ -0,0 +1,198 @@
1
+ /**
2
+ * A bounded, tool-using investigation against a side model.
3
+ *
4
+ * The advisor is a tool-using investigator, not a
5
+ * transcript-only judge: it must be able to check a suspicion
6
+ * against the workspace before it raises it. This runs a capped
7
+ * loop where the model may call read-only tools, each result is
8
+ * fed back into the same growing message list, and the loop ends
9
+ * when the model answers with text or the step budget runs out.
10
+ *
11
+ * The message list is the caller's persistent context, so the
12
+ * prefix caches turn to turn: the cost lever the advisor design
13
+ * rests on. Usage is summed across every step of the loop.
14
+ *
15
+ * `complete` is a port, the same as runSideCompletion's: this
16
+ * module has no way to run a model itself, and does not know or
17
+ * care what backend the caller's host runs one through.
18
+ */
19
+ import { pickModel } from "./resolve.js";
20
+ const ZERO_USAGE = {
21
+ input: 0,
22
+ output: 0,
23
+ cacheRead: 0,
24
+ cacheWrite: 0,
25
+ totalTokens: 0,
26
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
27
+ };
28
+ /** Sum two usage records bucket by bucket. */
29
+ function addUsage(a, b) {
30
+ return {
31
+ input: a.input + b.input,
32
+ output: a.output + b.output,
33
+ cacheRead: a.cacheRead + b.cacheRead,
34
+ cacheWrite: a.cacheWrite + b.cacheWrite,
35
+ totalTokens: a.totalTokens + b.totalTokens,
36
+ cost: {
37
+ input: a.cost.input + b.cost.input,
38
+ output: a.cost.output + b.cost.output,
39
+ cacheRead: a.cost.cacheRead + b.cost.cacheRead,
40
+ cacheWrite: a.cost.cacheWrite + b.cost.cacheWrite,
41
+ total: a.cost.total + b.cost.total,
42
+ },
43
+ };
44
+ }
45
+ /** Concatenate the text out of a content block list. */
46
+ function textOf(content) {
47
+ return content
48
+ .filter((b) => b.type === "text" && typeof b.text === "string")
49
+ .map((b) => b.text)
50
+ .join("");
51
+ }
52
+ /** The tool calls present in a content block list. */
53
+ function toolCallsOf(content) {
54
+ return content.filter((b) => b.type === "toolCall" && b.name);
55
+ }
56
+ /**
57
+ * Run a bounded investigation. Resolves a model and its auth,
58
+ * then loops the model against `tools` through `complete`, feeding
59
+ * each tool result back in, until the model answers with text or
60
+ * `maxSteps` is reached. Every failure path returns `ok: false`
61
+ * with a message rather than throwing.
62
+ */
63
+ export async function runInvestigation(registry, request, complete) {
64
+ const model = pickModel(registry.getAvailable(), request.current, { provider: request.provider, model: request.model }, (p, m) => registry.find(p, m));
65
+ if (!model) {
66
+ return {
67
+ ok: false,
68
+ text: "",
69
+ usage: ZERO_USAGE,
70
+ steps: 0,
71
+ messages: request.messages,
72
+ error: "no model available",
73
+ };
74
+ }
75
+ let auth;
76
+ try {
77
+ auth = await registry.getApiKeyAndHeaders(model);
78
+ }
79
+ catch (err) {
80
+ return failure(model, request.messages, `auth resolution threw: ${msg(err)}`);
81
+ }
82
+ if (!auth.ok) {
83
+ return failure(model, request.messages, `auth not configured: ${auth.error}`);
84
+ }
85
+ const toolDefs = request.tools.map((t) => ({
86
+ name: t.name,
87
+ description: t.description,
88
+ parameters: t.parameters,
89
+ }));
90
+ const byName = new Map(request.tools.map((t) => [t.name, t]));
91
+ const messages = [...request.messages];
92
+ let usage = ZERO_USAGE;
93
+ for (let step = 1; step <= request.maxSteps; step++) {
94
+ let result;
95
+ try {
96
+ // The persistent context holds raw runtime messages
97
+ // (assistant turns and tool results), and tools ride
98
+ // alongside; the compat surface is typed narrowly here, so
99
+ // the whole context is cast to what complete expects.
100
+ const context = {
101
+ systemPrompt: request.systemPrompt,
102
+ messages,
103
+ tools: toolDefs,
104
+ };
105
+ result = await complete(model, context, {
106
+ apiKey: auth.apiKey,
107
+ headers: auth.headers,
108
+ env: auth.env,
109
+ signal: request.signal,
110
+ });
111
+ }
112
+ catch (err) {
113
+ return {
114
+ ok: false,
115
+ text: "",
116
+ provider: model.provider,
117
+ model: model.id,
118
+ usage,
119
+ steps: step - 1,
120
+ messages,
121
+ error: `completion threw: ${msg(err)}`,
122
+ };
123
+ }
124
+ if (result.usage)
125
+ usage = addUsage(usage, result.usage);
126
+ const content = result.content;
127
+ const calls = toolCallsOf(content);
128
+ messages.push(result);
129
+ if (calls.length === 0) {
130
+ return {
131
+ ok: result.stopReason !== "error",
132
+ text: textOf(content),
133
+ provider: model.provider,
134
+ model: model.id,
135
+ usage,
136
+ steps: step,
137
+ messages,
138
+ error: result.errorMessage,
139
+ };
140
+ }
141
+ for (const call of calls) {
142
+ const tool = call.name ? byName.get(call.name) : undefined;
143
+ let text;
144
+ let isError = false;
145
+ if (!tool) {
146
+ text = `Unknown tool: ${call.name}`;
147
+ isError = true;
148
+ }
149
+ else {
150
+ try {
151
+ text = await tool.execute(call.arguments ?? {});
152
+ }
153
+ catch (err) {
154
+ text = `Tool ${call.name} failed: ${msg(err)}`;
155
+ isError = true;
156
+ }
157
+ }
158
+ messages.push({
159
+ role: "toolResult",
160
+ toolCallId: call.id,
161
+ toolName: call.name,
162
+ content: [{ type: "text", text }],
163
+ isError,
164
+ timestamp: Date.now(),
165
+ });
166
+ }
167
+ }
168
+ // Budget exhausted with the model still calling tools: return
169
+ // what we have as a non-error, so the caller can still use any
170
+ // partial text and the loop never runs unbounded.
171
+ return {
172
+ ok: true,
173
+ text: "",
174
+ provider: model.provider,
175
+ model: model.id,
176
+ usage,
177
+ steps: request.maxSteps,
178
+ messages,
179
+ error: "step budget exhausted",
180
+ };
181
+ }
182
+ /** Human-readable message from an unknown thrown value. */
183
+ function msg(err) {
184
+ return err instanceof Error ? err.message : String(err);
185
+ }
186
+ /** Build a uniform failure result. */
187
+ function failure(model, messages, error) {
188
+ return {
189
+ ok: false,
190
+ text: "",
191
+ provider: model.provider,
192
+ model: model.id,
193
+ usage: ZERO_USAGE,
194
+ steps: 0,
195
+ messages,
196
+ error,
197
+ };
198
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Pure model selection for a side completion.
3
+ *
4
+ * Choosing which model a side completion runs against is
5
+ * independent of actually running it, so it lives here as a pure
6
+ * function over a model list. The advisor and correction capture
7
+ * both want the same order: an explicit target first, then a name
8
+ * match, then a GLM-shaped model (the intended cheap watcher),
9
+ * then the caller's current model as a last resort.
10
+ */
11
+ /** The minimum a model reference needs for selection. */
12
+ export interface ModelRef {
13
+ readonly id: string;
14
+ readonly provider: string;
15
+ }
16
+ /** A caller's target: an explicit provider and/or model id. */
17
+ export interface ModelTarget {
18
+ readonly provider?: string;
19
+ readonly model?: string;
20
+ }
21
+ /** True when a model looks like a GLM / Zhipu model. */
22
+ export declare function looksLikeGlm(model: ModelRef): boolean;
23
+ /**
24
+ * Choose a model for a side completion, in preference order:
25
+ * an explicit provider+model resolved through `find`, then a
26
+ * name match in `available`, then a GLM-shaped model, then the
27
+ * caller's `current` model. Returns undefined when nothing fits.
28
+ */
29
+ export declare function pickModel(available: ModelRef[], current: ModelRef | undefined, target: ModelTarget, find?: (provider: string, model: string) => ModelRef | undefined): ModelRef | undefined;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Pure model selection for a side completion.
3
+ *
4
+ * Choosing which model a side completion runs against is
5
+ * independent of actually running it, so it lives here as a pure
6
+ * function over a model list. The advisor and correction capture
7
+ * both want the same order: an explicit target first, then a name
8
+ * match, then a GLM-shaped model (the intended cheap watcher),
9
+ * then the caller's current model as a last resort.
10
+ */
11
+ /** True when a model looks like a GLM / Zhipu model. */
12
+ export function looksLikeGlm(model) {
13
+ const needle = /glm|z-?ai|zhipu/i;
14
+ return needle.test(model.id) || needle.test(model.provider);
15
+ }
16
+ /**
17
+ * Choose a model for a side completion, in preference order:
18
+ * an explicit provider+model resolved through `find`, then a
19
+ * name match in `available`, then a GLM-shaped model, then the
20
+ * caller's `current` model. Returns undefined when nothing fits.
21
+ */
22
+ export function pickModel(available, current, target, find) {
23
+ if (target.provider && target.model) {
24
+ const found = find?.(target.provider, target.model);
25
+ if (found)
26
+ return found;
27
+ }
28
+ if (target.model) {
29
+ const byId = available.find((m) => m.id === target.model);
30
+ if (byId)
31
+ return byId;
32
+ }
33
+ // A provider named without a model still narrows the choice, per
34
+ // the "provider and/or model" contract: honour it before the
35
+ // GLM guess so an explicit request is not silently dropped.
36
+ if (target.provider) {
37
+ const byProvider = available.find((m) => m.provider === target.provider);
38
+ if (byProvider)
39
+ return byProvider;
40
+ }
41
+ return available.find(looksLikeGlm) ?? current;
42
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Run a one-shot side completion against a model from the
3
+ * registry, without touching the agent's own loop.
4
+ *
5
+ * This is the mechanism the advisor and correction capture are
6
+ * built on: resolve a model and its request auth from the
7
+ * registry, then run the caller-supplied `complete` against it.
8
+ * The result is a plain value with the text, usage and outcome,
9
+ * so callers never see the underlying message shape.
10
+ *
11
+ * `complete` is a port: this module has no way to run a model
12
+ * itself, and does not know or care what backend the caller's host
13
+ * runs one through. pi's adapter resolves its own
14
+ * `@earendil-works/pi-ai/compat` `completeSimple` and passes it in;
15
+ * a different host supplies its own equivalent.
16
+ */
17
+ import { type ModelRef } from "./resolve.js";
18
+ import type { CompleteSimple, CompletionMessage, CompletionRegistry, CompletionUsage } from "./types.js";
19
+ /** What to complete: the target model, a system prompt and turns. */
20
+ export interface SideCompletionRequest {
21
+ /** Explicit provider, when targeting a specific model. */
22
+ readonly provider?: string;
23
+ /** Explicit model id, when targeting a specific model. */
24
+ readonly model?: string;
25
+ /** System prompt for the completion. */
26
+ readonly systemPrompt: string;
27
+ /** A single user prompt, or a full message list. */
28
+ readonly prompt?: string;
29
+ readonly messages?: CompletionMessage[];
30
+ /** The caller's current model, used as a last-resort target. */
31
+ readonly current?: ModelRef;
32
+ readonly signal?: AbortSignal;
33
+ }
34
+ /** The outcome of a side completion. */
35
+ export interface SideCompletionResult {
36
+ readonly ok: boolean;
37
+ readonly text: string;
38
+ readonly provider?: string;
39
+ readonly model?: string;
40
+ readonly usage?: CompletionUsage;
41
+ readonly stopReason?: string;
42
+ readonly error?: string;
43
+ }
44
+ /**
45
+ * Resolve a model and its auth from `registry`, run one
46
+ * completion through `complete` and return the text and usage.
47
+ * Every failure path (no model, no auth, a throwing call) returns
48
+ * `ok: false` with a message rather than throwing, so a caller on a
49
+ * hot path can degrade quietly.
50
+ */
51
+ export declare function runSideCompletion(registry: CompletionRegistry, request: SideCompletionRequest, complete: CompleteSimple): Promise<SideCompletionResult>;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Run a one-shot side completion against a model from the
3
+ * registry, without touching the agent's own loop.
4
+ *
5
+ * This is the mechanism the advisor and correction capture are
6
+ * built on: resolve a model and its request auth from the
7
+ * registry, then run the caller-supplied `complete` against it.
8
+ * The result is a plain value with the text, usage and outcome,
9
+ * so callers never see the underlying message shape.
10
+ *
11
+ * `complete` is a port: this module has no way to run a model
12
+ * itself, and does not know or care what backend the caller's host
13
+ * runs one through. pi's adapter resolves its own
14
+ * `@earendil-works/pi-ai/compat` `completeSimple` and passes it in;
15
+ * a different host supplies its own equivalent.
16
+ */
17
+ import { pickModel } from "./resolve.js";
18
+ /** Pull the plain text out of a completion's content blocks. */
19
+ function textOf(content) {
20
+ return content
21
+ .filter((c) => c.type === "text" && typeof c.text === "string")
22
+ .map((c) => c.text)
23
+ .join("");
24
+ }
25
+ /**
26
+ * Resolve a model and its auth from `registry`, run one
27
+ * completion through `complete` and return the text and usage.
28
+ * Every failure path (no model, no auth, a throwing call) returns
29
+ * `ok: false` with a message rather than throwing, so a caller on a
30
+ * hot path can degrade quietly.
31
+ */
32
+ export async function runSideCompletion(registry, request, complete) {
33
+ const available = registry.getAvailable();
34
+ const model = pickModel(available, request.current, { provider: request.provider, model: request.model }, (p, m) => registry.find(p, m));
35
+ if (!model) {
36
+ return { ok: false, text: "", error: "no model available" };
37
+ }
38
+ let auth;
39
+ try {
40
+ auth = await registry.getApiKeyAndHeaders(model);
41
+ }
42
+ catch (err) {
43
+ return {
44
+ ok: false,
45
+ text: "",
46
+ provider: model.provider,
47
+ model: model.id,
48
+ error: `auth resolution threw: ${err instanceof Error ? err.message : String(err)}`,
49
+ };
50
+ }
51
+ if (!auth.ok) {
52
+ return {
53
+ ok: false,
54
+ text: "",
55
+ provider: model.provider,
56
+ model: model.id,
57
+ error: `auth not configured: ${auth.error}`,
58
+ };
59
+ }
60
+ const messages = request.messages ?? [
61
+ {
62
+ role: "user",
63
+ content: request.prompt ?? "",
64
+ timestamp: Date.now(),
65
+ },
66
+ ];
67
+ try {
68
+ const result = await complete(model, { systemPrompt: request.systemPrompt, messages }, {
69
+ apiKey: auth.apiKey,
70
+ headers: auth.headers,
71
+ env: auth.env,
72
+ signal: request.signal,
73
+ });
74
+ return {
75
+ ok: result.stopReason !== "error",
76
+ text: textOf(result.content),
77
+ provider: model.provider,
78
+ model: model.id,
79
+ usage: result.usage,
80
+ stopReason: result.stopReason,
81
+ error: result.errorMessage,
82
+ };
83
+ }
84
+ catch (err) {
85
+ return {
86
+ ok: false,
87
+ text: "",
88
+ provider: model.provider,
89
+ model: model.id,
90
+ error: `completion threw: ${err instanceof Error ? err.message : String(err)}`,
91
+ };
92
+ }
93
+ }
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Type surface for the side-completion boundary.
3
+ *
4
+ * `CompleteSimple` is the port: this package has no way to run a
5
+ * model itself, so `runSideCompletion` and `runInvestigation` both
6
+ * take one as a parameter and call it rather than reaching for a
7
+ * concrete backend. `CompatModule` names the shape an adapter gets
8
+ * back from dynamically importing its own completion function
9
+ * (pi's is `@earendil-works/pi-ai/compat`'s `completeSimple`,
10
+ * reached that way because pi's own typecheck dependency resolves
11
+ * an older pi-ai where the subpath does not exist); a host with no
12
+ * such subpath quirk can just pass a function of the same shape.
13
+ */
14
+ import type { ModelRef } from "./resolve.js";
15
+ /** A per-bucket money breakdown returned by a completion. */
16
+ export interface CompletionCost {
17
+ readonly input: number;
18
+ readonly output: number;
19
+ readonly cacheRead: number;
20
+ readonly cacheWrite: number;
21
+ readonly total: number;
22
+ }
23
+ /** Token usage and cost returned by a completion. */
24
+ export interface CompletionUsage {
25
+ readonly input: number;
26
+ readonly output: number;
27
+ readonly cacheRead: number;
28
+ readonly cacheWrite: number;
29
+ readonly totalTokens: number;
30
+ readonly cost: CompletionCost;
31
+ }
32
+ /** One message in a completion context. */
33
+ export interface CompletionMessage {
34
+ readonly role: "user" | "assistant";
35
+ readonly content: string;
36
+ readonly timestamp: number;
37
+ }
38
+ /** The context a completion runs against. */
39
+ export interface CompletionContext {
40
+ readonly systemPrompt: string;
41
+ readonly messages: CompletionMessage[];
42
+ }
43
+ /** Request auth resolved from the model registry. */
44
+ export interface CompletionAuth {
45
+ readonly apiKey?: string;
46
+ readonly headers?: Record<string, string>;
47
+ readonly env?: Record<string, string>;
48
+ }
49
+ /** The assistant message a completion returns. */
50
+ export interface CompletionMessageResult {
51
+ readonly content: Array<{
52
+ type: string;
53
+ text?: string;
54
+ }>;
55
+ readonly usage: CompletionUsage;
56
+ readonly stopReason: string;
57
+ readonly errorMessage?: string;
58
+ }
59
+ /** The `completeSimple` function as this package calls it. */
60
+ export type CompleteSimple = (model: ModelRef, context: CompletionContext, options: CompletionAuth & {
61
+ signal?: AbortSignal;
62
+ }) => Promise<CompletionMessageResult>;
63
+ /** The compat module shape reached by dynamic import. */
64
+ export interface CompatModule {
65
+ readonly completeSimple: CompleteSimple;
66
+ }
67
+ /**
68
+ * The registry surface a side completion needs. Structurally
69
+ * satisfied by pi's `ctx.modelRegistry`, kept minimal so the
70
+ * helper is testable with a fake.
71
+ */
72
+ export interface CompletionRegistry {
73
+ getAvailable(): ModelRef[];
74
+ find(provider: string, model: string): ModelRef | undefined;
75
+ getApiKeyAndHeaders(model: ModelRef): Promise<{
76
+ ok: true;
77
+ apiKey?: string;
78
+ headers?: Record<string, string>;
79
+ env?: Record<string, string>;
80
+ } | {
81
+ ok: false;
82
+ error: string;
83
+ }>;
84
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Type surface for the side-completion boundary.
3
+ *
4
+ * `CompleteSimple` is the port: this package has no way to run a
5
+ * model itself, so `runSideCompletion` and `runInvestigation` both
6
+ * take one as a parameter and call it rather than reaching for a
7
+ * concrete backend. `CompatModule` names the shape an adapter gets
8
+ * back from dynamically importing its own completion function
9
+ * (pi's is `@earendil-works/pi-ai/compat`'s `completeSimple`,
10
+ * reached that way because pi's own typecheck dependency resolves
11
+ * an older pi-ai where the subpath does not exist); a host with no
12
+ * such subpath quirk can just pass a function of the same shape.
13
+ */
14
+ export {};
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The one impure thing a library here needs: running a command.
3
+ *
4
+ * Taking it as a dependency rather than importing pi's own exec keeps every caller
5
+ * testable, and keeps these libraries usable by anything that can run a command.
6
+ *
7
+ * It lived under the review providers until two libraries needed it. Review reaches
8
+ * a backend by running its CLI and work reaches git the same way, so `lib/work`
9
+ * imported the type out of `lib/review/providers`, which said the working layer
10
+ * depended on the reviewing one when the only thing it wanted was the shape of a
11
+ * subprocess. Neither owns this. It sits at the level that matches what it is.
12
+ */
13
+ /** What running a command returns. */
14
+ export interface ExecResult {
15
+ code: number;
16
+ stdout: string;
17
+ stderr: string;
18
+ }
19
+ /** Runs a command and returns its result rather than throwing. */
20
+ export type Exec = (command: string, args: string[]) => Promise<ExecResult>;
21
+ /** What every provider factory takes. */
22
+ export interface ProviderDeps {
23
+ exec: Exec;
24
+ }
25
+ /**
26
+ * Run a command, throwing with the backend's own words when it
27
+ * fails. A CLI's stderr is usually the most useful diagnostic
28
+ * available, so it is preserved rather than replaced.
29
+ *
30
+ * Both streams are kept when both said something, because they carry
31
+ * different halves of the same answer and the useful half was being thrown
32
+ * away. `gh api` writes its own summary to stderr and the server's response
33
+ * body to stdout, so preferring stderr reduced a 422 that named the exact
34
+ * offending field to `gh: Unprocessable Entity (HTTP 422)`. That is a
35
+ * complete sentence about nothing: the field name is what tells you the
36
+ * request was wrong rather than the change.
37
+ */
38
+ export declare function run(exec: Exec, command: string, args: string[], what: string): Promise<string>;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The one impure thing a library here needs: running a command.
3
+ *
4
+ * Taking it as a dependency rather than importing pi's own exec keeps every caller
5
+ * testable, and keeps these libraries usable by anything that can run a command.
6
+ *
7
+ * It lived under the review providers until two libraries needed it. Review reaches
8
+ * a backend by running its CLI and work reaches git the same way, so `lib/work`
9
+ * imported the type out of `lib/review/providers`, which said the working layer
10
+ * depended on the reviewing one when the only thing it wanted was the shape of a
11
+ * subprocess. Neither owns this. It sits at the level that matches what it is.
12
+ */
13
+ /**
14
+ * Run a command, throwing with the backend's own words when it
15
+ * fails. A CLI's stderr is usually the most useful diagnostic
16
+ * available, so it is preserved rather than replaced.
17
+ *
18
+ * Both streams are kept when both said something, because they carry
19
+ * different halves of the same answer and the useful half was being thrown
20
+ * away. `gh api` writes its own summary to stderr and the server's response
21
+ * body to stdout, so preferring stderr reduced a 422 that named the exact
22
+ * offending field to `gh: Unprocessable Entity (HTTP 422)`. That is a
23
+ * complete sentence about nothing: the field name is what tells you the
24
+ * request was wrong rather than the change.
25
+ */
26
+ export async function run(exec, command, args, what) {
27
+ const result = await exec(command, args);
28
+ if (result.code !== 0) {
29
+ throw new Error(`${what} failed: ${failureDetail(result, command)}`);
30
+ }
31
+ return result.stdout;
32
+ }
33
+ /**
34
+ * How much of a stream to keep in a failure message.
35
+ *
36
+ * An error body is a line or two; a command that fails after writing real
37
+ * output can put a whole diff on stdout, and a message nobody will read to
38
+ * the end is its own kind of silence.
39
+ */
40
+ const DETAIL_LIMIT = 2000;
41
+ /** As much of both streams as says something, in the order they matter. */
42
+ function failureDetail(result, command) {
43
+ const said = [result.stderr.trim(), result.stdout.trim()]
44
+ .filter((stream) => stream !== "")
45
+ // The same words on both streams read like two problems.
46
+ .filter((stream, at, all) => all.indexOf(stream) === at)
47
+ .map((stream) => stream.length > DETAIL_LIMIT
48
+ ? `${stream.slice(0, DETAIL_LIMIT)}\u2026`
49
+ : stream);
50
+ return said.join("\n") || `${command} exited nonzero`;
51
+ }