@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,12 @@
1
+ /**
2
+ * The Slack content gate: a thin adapter over the shared loop
3
+ * breaker in lib/gate. It supplies the Slack-specific detection,
4
+ * block formatting and relent wording; the block-first,
5
+ * relent-on-repeat mechanism lives in decideGate so prose,
6
+ * sections and Slack share one behaviour.
7
+ */
8
+ import { type GateDecision } from "../gate/index.js";
9
+ /** The gate's verdict on one Slack message body. */
10
+ export type SlackGateDecision = GateDecision;
11
+ /** Decide whether to block, relent or allow given prior block signatures. */
12
+ export declare function slackGateDecision(text: string, priorSignatures: string[]): SlackGateDecision;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The Slack content gate: a thin adapter over the shared loop
3
+ * breaker in lib/gate. It supplies the Slack-specific detection,
4
+ * block formatting and relent wording; the block-first,
5
+ * relent-on-repeat mechanism lives in decideGate so prose,
6
+ * sections and Slack share one behaviour.
7
+ */
8
+ import { decideGate } from "../gate/index.js";
9
+ import { formatSlackBlock } from "./block-message.js";
10
+ import { detectSlackViolations } from "./detect.js";
11
+ const RELENT_PREFIX = [
12
+ "This Slack message still has formatting the converter cannot",
13
+ "render after a previous attempt, so it is being let through",
14
+ "rather than blocked again. Review the remaining problems",
15
+ "yourself:",
16
+ "",
17
+ ].join("\n");
18
+ /** Decide whether to block, relent or allow given prior block signatures. */
19
+ export function slackGateDecision(text, priorSignatures) {
20
+ const violations = detectSlackViolations(text);
21
+ return decideGate(violations, priorSignatures, formatSlackBlock, RELENT_PREFIX, text);
22
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Slack content detection: finds markdown the Slack converter
3
+ * cannot render as the author intended, so a gate can block and
4
+ * point the author at the slack-guide skill. Each flagged
5
+ * construct requires guessing the author's intent to translate
6
+ * (which cells are headers, which lines are list items, where to
7
+ * upload an image), so the gate refuses rather than guess. The
8
+ * silent dialect translations in blocks.ts stay silent; this is
9
+ * only for the cases that genuinely need the author's hand.
10
+ *
11
+ * Detection is deliberately conservative. A malformed list is
12
+ * flagged only as a run of two or more lines, and a pipe table
13
+ * only on a separator row or two adjacent pipe rows, so a lone
14
+ * dash-led sentence or an inline `a | b` is never mistaken for
15
+ * structure. A missed case is a missed block; a false block on
16
+ * the high-volume Slack surface is far more corrosive.
17
+ */
18
+ import type { Violation } from "../gate/index.js";
19
+ /** A single Slack content violation. */
20
+ export interface SlackViolation extends Violation {
21
+ readonly kind: "slack-image" | "slack-table" | "slack-list" | "slack-glyph-bullet";
22
+ /** A representative offending snippet. */
23
+ readonly found: string;
24
+ /** A short statement of the rule, for the block message. */
25
+ readonly rule: string;
26
+ }
27
+ /**
28
+ * Detect Slack content the converter cannot render as intended:
29
+ * image embeds, pipe tables and malformed lists.
30
+ */
31
+ export declare function detectSlackViolations(text: string): SlackViolation[];
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Slack content detection: finds markdown the Slack converter
3
+ * cannot render as the author intended, so a gate can block and
4
+ * point the author at the slack-guide skill. Each flagged
5
+ * construct requires guessing the author's intent to translate
6
+ * (which cells are headers, which lines are list items, where to
7
+ * upload an image), so the gate refuses rather than guess. The
8
+ * silent dialect translations in blocks.ts stay silent; this is
9
+ * only for the cases that genuinely need the author's hand.
10
+ *
11
+ * Detection is deliberately conservative. A malformed list is
12
+ * flagged only as a run of two or more lines, and a pipe table
13
+ * only on a separator row or two adjacent pipe rows, so a lone
14
+ * dash-led sentence or an inline `a | b` is never mistaken for
15
+ * structure. A missed case is a missed block; a false block on
16
+ * the high-volume Slack surface is far more corrosive.
17
+ */
18
+ const IMAGE_RULE = "slack-guide: Slack does not render markdown image embeds; upload the image with upload_file instead.";
19
+ const TABLE_RULE = "slack-guide: send tabular data through the structured table parameter, not a markdown pipe table.";
20
+ const LIST_RULE = "slack-guide: format lists as proper markdown (a bullet then a space, or `N.` ordinals).";
21
+ const GLYPH_LIST_RULE = "slack-guide: write list bullets as `- `, `* ` or `+ ` markers, not a \u2022 glyph; Slack renders glyph bullets as literal text instead of a native list.";
22
+ const FENCE_REGEX = /```[\s\S]*?```/g;
23
+ const INLINE_CODE_REGEX = /`[^`\n]*`/g;
24
+ const IMAGE_REGEX = /!\[[^\]]*\]\([^)\s]+\)/g;
25
+ // A markdown table separator row: pipes and dashes (with optional
26
+ // alignment colons) and nothing else, with at least one run of
27
+ // dashes. This is the unambiguous "I meant a table" signal.
28
+ const TABLE_SEPARATOR = /^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/;
29
+ // A row that opens like a table cell: optional indent, a pipe,
30
+ // some content, another pipe.
31
+ const PIPE_ROW = /^\s*\|.*\|/;
32
+ // A line that opens an ordered list with a paren instead of the
33
+ // dot Slack needs (`1)` rather than `1.`).
34
+ const MALFORMED_ORDERED = /^\s*\d+\)\s+\S/;
35
+ // A bullet marker immediately followed by a non-space. `*` is
36
+ // left out because `*bold*` collides with it; `-` and `+` led
37
+ // runs are the unambiguous malformed-bullet case.
38
+ const MALFORMED_BULLET = /^\s*[-+]\S/;
39
+ // A line that opens with a bullet glyph, a space and content.
40
+ // The leading anchor means the glyph must start the line, so an
41
+ // inline `3 \u00b7 4` is never mistaken for a bullet, and the
42
+ // run-of-two threshold in flagLists leaves a lone glyph line
43
+ // alone. Slack renders these glyphs as literal characters rather
44
+ // than a native rich_text_list, so they need a markdown marker.
45
+ const GLYPH_BULLET = /^\s*[\u2022\u2023\u25E6\u25AA\u00b7]\s+\S/;
46
+ /** Blank out a region so its contents never match a later scan. */
47
+ function blankOut(text, pattern) {
48
+ return text.replace(pattern, (match) => " ".repeat(match.length));
49
+ }
50
+ /**
51
+ * Detect Slack content the converter cannot render as intended:
52
+ * image embeds, pipe tables and malformed lists.
53
+ */
54
+ export function detectSlackViolations(text) {
55
+ // Mask code so pipes, dashes and image syntax inside it never
56
+ // trip the scans.
57
+ let scan = blankOut(text, FENCE_REGEX);
58
+ scan = blankOut(scan, INLINE_CODE_REGEX);
59
+ const violations = [];
60
+ for (const match of scan.matchAll(IMAGE_REGEX)) {
61
+ violations.push({ kind: "slack-image", found: match[0], rule: IMAGE_RULE });
62
+ }
63
+ const lines = scan.split("\n");
64
+ flagTables(lines, violations);
65
+ flagLists(lines, MALFORMED_ORDERED, violations, "slack-list", LIST_RULE);
66
+ flagLists(lines, MALFORMED_BULLET, violations, "slack-list", LIST_RULE);
67
+ flagLists(lines, GLYPH_BULLET, violations, "slack-glyph-bullet", GLYPH_LIST_RULE);
68
+ return violations;
69
+ }
70
+ /**
71
+ * Flag the first pipe table in the lines: a separator row, or a
72
+ * run of two adjacent pipe rows. One flag is enough; the block
73
+ * message tells the author to fix every table, so there is no
74
+ * need to walk past the first.
75
+ */
76
+ function flagTables(lines, violations) {
77
+ let runStart = -1;
78
+ for (let i = 0; i < lines.length; i++) {
79
+ const line = lines[i];
80
+ if (TABLE_SEPARATOR.test(line) && line.includes("|")) {
81
+ violations.push({
82
+ kind: "slack-table",
83
+ found: line.trim(),
84
+ rule: TABLE_RULE,
85
+ });
86
+ return;
87
+ }
88
+ if (PIPE_ROW.test(line)) {
89
+ if (runStart < 0)
90
+ runStart = i;
91
+ if (i - runStart >= 1) {
92
+ violations.push({
93
+ kind: "slack-table",
94
+ found: lines[runStart].trim(),
95
+ rule: TABLE_RULE,
96
+ });
97
+ return;
98
+ }
99
+ }
100
+ else {
101
+ runStart = -1;
102
+ }
103
+ }
104
+ }
105
+ /** Flag a run of two or more consecutive lines matching a marker. */
106
+ function flagLists(lines, marker, violations, kind, rule) {
107
+ let runStart = -1;
108
+ for (let i = 0; i <= lines.length; i++) {
109
+ const matches = i < lines.length && marker.test(lines[i]);
110
+ if (matches) {
111
+ if (runStart < 0)
112
+ runStart = i;
113
+ }
114
+ else {
115
+ if (runStart >= 0 && i - runStart >= 2) {
116
+ violations.push({
117
+ kind,
118
+ found: lines[runStart].trim(),
119
+ rule,
120
+ });
121
+ }
122
+ runStart = -1;
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Slack library: API client, credential state, renderers,
3
+ * resolvers and shared types.
4
+ *
5
+ * Public entry point for external consumers. The interactive auth
6
+ * orchestration (`ensureAuthenticated`, the setup wizard) needs a
7
+ * host's UI and is not here; an adapter builds that from the
8
+ * pieces `./auth` exports.
9
+ */
10
+ export * from "./api/index.js";
11
+ export * from "./auth/index.js";
12
+ export { formatSlackBlock } from "./block-message.js";
13
+ export { extractCellText, extractTables, mrkdwnToBlocks, mrkdwnToCell, parseMrkdwnToElements, renderRichTextCell, tableToBlock, } from "./blocks.js";
14
+ export { type SlackGateDecision, slackGateDecision, } from "./content-gate.js";
15
+ export { detectSlackViolations, type SlackViolation } from "./detect.js";
16
+ export * from "./renderers/index.js";
17
+ export * from "./resolvers/index.js";
18
+ export type { Conversation, ConversationKind, MessageTarget, OAuthApp, SlackAttachment, SlackChannel, SlackColumnSetting, SlackFile, SlackMessage, SlackReaction, SlackTable, SlackUser, StoredToken, } from "./types.js";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Slack library: API client, credential state, renderers,
3
+ * resolvers and shared types.
4
+ *
5
+ * Public entry point for external consumers. The interactive auth
6
+ * orchestration (`ensureAuthenticated`, the setup wizard) needs a
7
+ * host's UI and is not here; an adapter builds that from the
8
+ * pieces `./auth` exports.
9
+ */
10
+ export * from "./api/index.js";
11
+ export * from "./auth/index.js";
12
+ export { formatSlackBlock } from "./block-message.js";
13
+ export { extractCellText, extractTables, mrkdwnToBlocks, mrkdwnToCell, parseMrkdwnToElements, renderRichTextCell, tableToBlock, } from "./blocks.js";
14
+ export { slackGateDecision, } from "./content-gate.js";
15
+ export { detectSlackViolations } from "./detect.js";
16
+ export * from "./renderers/index.js";
17
+ export * from "./resolvers/index.js";
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Where Slack credentials and cached lookups live on disk.
3
+ *
4
+ * Adapter-neutral on purpose, the same reasoning as memory's and
5
+ * web's own paths: this module is shared library code any adapter
6
+ * can depend on, so it must not bake in one adapter's brand. A
7
+ * Claude Code process storing its own Slack token at a path named
8
+ * after pi would be as wrong as the reverse.
9
+ *
10
+ * This is a clean break from pi's own former path
11
+ * (`~/.pi/agent/slack.json`, `~/.pi/agent/slack/`), not a
12
+ * migrated one: unlike a browser comparison baseline or a quest
13
+ * worktree, a stored OAuth token is cheap to lose and easy to
14
+ * replace, so there is no injectable override here for an adapter
15
+ * to point at its old location. Re-running the setup flow once is
16
+ * the whole cost.
17
+ */
18
+ /** Where the OAuth app and token credentials are stored. */
19
+ export declare function credentialsPath(): string;
20
+ /**
21
+ * Where resolved user and channel names are cached.
22
+ *
23
+ * Cache rather than config: every entry here is a name Slack's API
24
+ * already answered once and is cheap to ask again, never something
25
+ * a person edits or that losing would cost them anything but a
26
+ * refetch.
27
+ */
28
+ export declare function cacheDir(): string;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Where Slack credentials and cached lookups live on disk.
3
+ *
4
+ * Adapter-neutral on purpose, the same reasoning as memory's and
5
+ * web's own paths: this module is shared library code any adapter
6
+ * can depend on, so it must not bake in one adapter's brand. A
7
+ * Claude Code process storing its own Slack token at a path named
8
+ * after pi would be as wrong as the reverse.
9
+ *
10
+ * This is a clean break from pi's own former path
11
+ * (`~/.pi/agent/slack.json`, `~/.pi/agent/slack/`), not a
12
+ * migrated one: unlike a browser comparison baseline or a quest
13
+ * worktree, a stored OAuth token is cheap to lose and easy to
14
+ * replace, so there is no injectable override here for an adapter
15
+ * to point at its old location. Re-running the setup flow once is
16
+ * the whole cost.
17
+ */
18
+ import { homedir } from "node:os";
19
+ import { join } from "node:path";
20
+ /** Honours XDG_CONFIG_HOME; falls back to ~/.config per the XDG spec. */
21
+ function xdgConfigRoot() {
22
+ const override = process.env.XDG_CONFIG_HOME;
23
+ return override && override.length > 0
24
+ ? override
25
+ : join(homedir(), ".config");
26
+ }
27
+ /** Honours XDG_CACHE_HOME; falls back to ~/.cache per the XDG spec. */
28
+ function xdgCacheRoot() {
29
+ const override = process.env.XDG_CACHE_HOME;
30
+ return override && override.length > 0 ? override : join(homedir(), ".cache");
31
+ }
32
+ /** Where the OAuth app and token credentials are stored. */
33
+ export function credentialsPath() {
34
+ return join(xdgConfigRoot(), "agentic-harness", "slack", "credentials.json");
35
+ }
36
+ /**
37
+ * Where resolved user and channel names are cached.
38
+ *
39
+ * Cache rather than config: every entry here is a name Slack's API
40
+ * already answered once and is cheap to ask again, never something
41
+ * a person edits or that losing would cost them anything but a
42
+ * refetch.
43
+ */
44
+ export function cacheDir() {
45
+ return join(xdgCacheRoot(), "agentic-harness", "slack");
46
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Format channel info as readable text.
3
+ */
4
+ import type { SlackChannel } from "../types.js";
5
+ /** Render channel info as a readable summary. */
6
+ export declare function renderChannel(ch: SlackChannel): string;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Format channel info as readable text.
3
+ */
4
+ /** Render channel info as a readable summary. */
5
+ export function renderChannel(ch) {
6
+ const lines = [];
7
+ const flags = [];
8
+ if (ch.isPrivate)
9
+ flags.push("private");
10
+ if (ch.isArchived)
11
+ flags.push("archived");
12
+ const suffix = flags.length > 0 ? ` (${flags.join(", ")})` : "";
13
+ lines.push(`**#${ch.name}**${suffix}`);
14
+ if (ch.topic)
15
+ lines.push(`Topic: ${ch.topic}`);
16
+ if (ch.purpose)
17
+ lines.push(`Purpose: ${ch.purpose}`);
18
+ if (ch.memberCount !== undefined) {
19
+ lines.push(`Members: ${ch.memberCount}`);
20
+ }
21
+ if (ch.created) {
22
+ const date = new Date(ch.created * 1000);
23
+ lines.push(`Created: ${date.toLocaleDateString()}`);
24
+ }
25
+ lines.push(`ID: ${ch.id}`);
26
+ return lines.join("\n");
27
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Slack content renderers: markdown formatting for
3
+ * messages, channels, users, reactions and search results.
4
+ */
5
+ export { renderChannel } from "./channel.js";
6
+ export { formatSlackText, renderMessage, renderMessageList, renderThread, } from "./message.js";
7
+ export { renderMessageReactions, renderReactedMessages, } from "./reactions.js";
8
+ export { renderFileList } from "./search.js";
9
+ export { renderUser } from "./user.js";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Slack content renderers: markdown formatting for
3
+ * messages, channels, users, reactions and search results.
4
+ */
5
+ export { renderChannel } from "./channel.js";
6
+ export { formatSlackText, renderMessage, renderMessageList, renderThread, } from "./message.js";
7
+ export { renderMessageReactions, renderReactedMessages, } from "./reactions.js";
8
+ export { renderFileList } from "./search.js";
9
+ export { renderUser } from "./user.js";
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Format Slack messages and threads as readable text.
3
+ *
4
+ * Converts Slack's mrkdwn format to markdown-like output.
5
+ * User IDs (<@U123>) are resolved from the local cache
6
+ * when possible.
7
+ */
8
+ import type { SlackMessage } from "../types.js";
9
+ /**
10
+ * Convert Slack mrkdwn to readable text.
11
+ *
12
+ * Handles user mentions, channel links, URL links, and
13
+ * basic formatting differences between Slack and markdown.
14
+ */
15
+ export declare function formatSlackText(text: string): string;
16
+ /** Format a single message as a readable block. */
17
+ export declare function renderMessage(msg: SlackMessage): string;
18
+ /** Format a list of messages (search results or channel history). */
19
+ export declare function renderMessageList(messages: SlackMessage[], total?: number, query?: string): string;
20
+ /** Format a thread as a readable conversation. */
21
+ export declare function renderThread(messages: SlackMessage[]): string;
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Format Slack messages and threads as readable text.
3
+ *
4
+ * Converts Slack's mrkdwn format to markdown-like output.
5
+ * User IDs (<@U123>) are resolved from the local cache
6
+ * when possible.
7
+ */
8
+ import { count } from "../../ui/count.js";
9
+ import { cacheChannelName } from "../resolvers/conversation.js";
10
+ import { cacheUser, displayNameForId } from "../resolvers/user.js";
11
+ /**
12
+ * Convert Slack mrkdwn to readable text.
13
+ *
14
+ * Handles user mentions, channel links, URL links, and
15
+ * basic formatting differences between Slack and markdown.
16
+ */
17
+ export function formatSlackText(text) {
18
+ return (text
19
+ // User mentions with label: <@U123|display.name> → @display.name
20
+ // Opportunistically cache the name → ID mapping for later unlabelled mentions.
21
+ .replace(/<@([UW][A-Z0-9]+)\|([^>]+)>/g, (_match, id, name) => {
22
+ cacheUser(name, id);
23
+ return `@${name}`;
24
+ })
25
+ // User mentions without label: <@U123> → @username or @U123
26
+ .replace(/<@([UW][A-Z0-9]+)>/g, (_match, id) => {
27
+ return `@${displayNameForId(id)}`;
28
+ })
29
+ // Broadcast mentions: <!here>, <!channel>, <!everyone> → @here etc.
30
+ .replace(/<!(here|channel|everyone)>/g, "@$1")
31
+ // Channel links with label: <#C123|channel-name> → #channel-name
32
+ // Opportunistically cache the name → ID mapping.
33
+ .replace(/<#([A-Z0-9]+)\|([^>]+)>/g, (_match, id, name) => {
34
+ cacheChannelName(name, id);
35
+ return `#${name}`;
36
+ })
37
+ // Channel links without label: <#C123> → #channel-name (via cache)
38
+ .replace(/<#([A-Z0-9]+)>/g, (_match, id) => {
39
+ return `#${displayNameForId(id)}`;
40
+ })
41
+ // URL links with label: <url|text> → [text](url)
42
+ .replace(/<(https?:\/\/[^|>]+)\|([^>]+)>/g, "[$2]($1)")
43
+ // URL links without label: <url> → url
44
+ .replace(/<(https?:\/\/[^>]+)>/g, "$1")
45
+ // Mailto links: <mailto:a@b.com|a@b.com> → a@b.com
46
+ .replace(/<mailto:([^|>]+)\|([^>]+)>/g, "$2")
47
+ .replace(/<mailto:([^>]+)>/g, "$1")
48
+ // Slack bold *text* → **text** (markdown bold)
49
+ .replace(/(?<!\*)\*([^*]+)\*(?!\*)/g, "**$1**"));
50
+ }
51
+ /**
52
+ * Render a SlackTable as a pipe-delimited markdown table.
53
+ *
54
+ * Pads cells to column widths for readability.
55
+ */
56
+ function renderTable(table) {
57
+ // Calculate column widths.
58
+ const widths = table.columns.map((col, i) => Math.max(col.length, ...table.rows.map((row) => (row[i] ?? "").length)));
59
+ // Header row.
60
+ const header = table.columns
61
+ .map((col, i) => col.padEnd(widths[i]))
62
+ .join(" | ");
63
+ // Separator row.
64
+ const separator = widths.map((w) => "-".repeat(w)).join(" | ");
65
+ // Data rows.
66
+ const rows = table.rows.map((row) => row.map((cell, i) => (cell ?? "").padEnd(widths[i])).join(" | "));
67
+ return [
68
+ `| ${header} |`,
69
+ `| ${separator} |`,
70
+ ...rows.map((r) => `| ${r} |`),
71
+ ].join("\n");
72
+ }
73
+ /**
74
+ * Render a message's attachments, files and reactions as lines.
75
+ *
76
+ * Shared by renderMessage (no prefix) and renderThread
77
+ * (indented prefix). Each line is prefixed with the given
78
+ * string so thread rendering can maintain its visual tree.
79
+ */
80
+ function renderMessageExtras(msg, prefix) {
81
+ const lines = [];
82
+ if (msg.attachments?.length) {
83
+ for (const att of msg.attachments) {
84
+ const title = att.title || att.fallback;
85
+ const url = att.fromUrl || att.imageUrl;
86
+ if (title && url) {
87
+ lines.push(`${prefix}📎 [${title}](${url})`);
88
+ }
89
+ else if (title) {
90
+ lines.push(`${prefix}📎 ${title}`);
91
+ }
92
+ else if (url) {
93
+ lines.push(`${prefix}📎 ${url}`);
94
+ }
95
+ if (att.text) {
96
+ for (const line of formatSlackText(att.text).split("\n")) {
97
+ lines.push(`${prefix}${line}`);
98
+ }
99
+ }
100
+ }
101
+ }
102
+ if (msg.files?.length) {
103
+ for (const f of msg.files) {
104
+ const type = f.mimetype ? ` [${f.mimetype}]` : "";
105
+ if (f.url) {
106
+ lines.push(`${prefix}📄 [${f.name}](${f.url})${type}`);
107
+ }
108
+ else {
109
+ lines.push(`${prefix}📄 ${f.name}${type}`);
110
+ }
111
+ }
112
+ }
113
+ if (msg.reactions?.length) {
114
+ const rxns = msg.reactions.map((r) => `:${r.name}: ${r.count}`).join(" ");
115
+ lines.push(`${prefix}${rxns}`);
116
+ }
117
+ return lines;
118
+ }
119
+ /** Format a single message as a readable block. */
120
+ export function renderMessage(msg) {
121
+ const parts = [];
122
+ const user = msg.user ? `@${displayNameForId(msg.user)}` : "unknown";
123
+ const ts = formatTimestamp(msg.ts);
124
+ const where = msg.conversation?.displayName
125
+ ? ` (${msg.conversation.displayName})`
126
+ : "";
127
+ const replyTag = msg.replyCount
128
+ ? ` [${msg.replyCount} ${msg.replyCount === 1 ? "reply" : "replies"}]`
129
+ : "";
130
+ parts.push(`**${user}** ${ts} (ts:${msg.ts})${where}${replyTag}`);
131
+ if (msg.text) {
132
+ parts.push(formatSlackText(msg.text));
133
+ }
134
+ if (msg.tables?.length) {
135
+ for (const table of msg.tables) {
136
+ parts.push(renderTable(table));
137
+ }
138
+ }
139
+ parts.push(...renderMessageExtras(msg, ""));
140
+ if (msg.permalink) {
141
+ parts.push(`[link](${msg.permalink})`);
142
+ }
143
+ return parts.join("\n");
144
+ }
145
+ /** Format a list of messages (search results or channel history). */
146
+ export function renderMessageList(messages, total, query) {
147
+ if (messages.length === 0) {
148
+ return "No messages found.";
149
+ }
150
+ const lines = [];
151
+ if (query) {
152
+ lines.push(`Query: ${query}`);
153
+ }
154
+ if (total !== undefined) {
155
+ const truncated = total > messages.length;
156
+ const showing = truncated
157
+ ? `, showing ${messages.length} (limit reached, so pass a higher limit or 0 for all)`
158
+ : `, showing ${messages.length}`;
159
+ lines.push(`Found ${count(total, "message")}${showing}:\n`);
160
+ }
161
+ for (const msg of messages) {
162
+ lines.push(renderMessage(msg));
163
+ lines.push(""); // Blank line separator
164
+ }
165
+ return lines.join("\n").trimEnd();
166
+ }
167
+ /** Format a thread as a readable conversation. */
168
+ export function renderThread(messages) {
169
+ if (messages.length === 0) {
170
+ return "Empty thread.";
171
+ }
172
+ const lines = [];
173
+ lines.push(`Thread with ${count(messages.length, "message")}:\n`);
174
+ for (let i = 0; i < messages.length; i++) {
175
+ const msg = messages[i];
176
+ const prefix = i === 0 ? "┌" : i === messages.length - 1 ? "└" : "├";
177
+ const user = msg.user ? `@${displayNameForId(msg.user)}` : "unknown";
178
+ const ts = formatTimestamp(msg.ts);
179
+ lines.push(`${prefix} **${user}** ${ts} (ts:${msg.ts})`);
180
+ const indent = i === messages.length - 1 ? " " : "│ ";
181
+ if (msg.text) {
182
+ for (const line of formatSlackText(msg.text).split("\n")) {
183
+ lines.push(`${indent}${line}`);
184
+ }
185
+ }
186
+ if (msg.tables?.length) {
187
+ for (const table of msg.tables) {
188
+ for (const line of renderTable(table).split("\n")) {
189
+ lines.push(`${indent}${line}`);
190
+ }
191
+ }
192
+ }
193
+ lines.push(...renderMessageExtras(msg, indent));
194
+ if (i < messages.length - 1)
195
+ lines.push("│");
196
+ }
197
+ return lines.join("\n");
198
+ }
199
+ /** Format a Slack timestamp as a human-readable date/time. */
200
+ function formatTimestamp(ts) {
201
+ try {
202
+ const epochSeconds = Number.parseFloat(ts);
203
+ const date = new Date(epochSeconds * 1000);
204
+ return date.toLocaleString(undefined, {
205
+ month: "short",
206
+ day: "numeric",
207
+ hour: "numeric",
208
+ minute: "2-digit",
209
+ });
210
+ }
211
+ catch {
212
+ return ts;
213
+ }
214
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Format reaction data as readable text.
3
+ */
4
+ import type { MessageReactions, ReactedMessage } from "../api/reactions.js";
5
+ /** Render reactions on a specific message. */
6
+ export declare function renderMessageReactions(data: MessageReactions): string;
7
+ /** Render a list of messages the user reacted to. */
8
+ export declare function renderReactedMessages(messages: ReactedMessage[]): string;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Format reaction data as readable text.
3
+ */
4
+ import { count } from "../../ui/count.js";
5
+ import { displayNameForId } from "../resolvers/user.js";
6
+ import { formatSlackText } from "./message.js";
7
+ /** Render reactions on a specific message. */
8
+ export function renderMessageReactions(data) {
9
+ const lines = [];
10
+ if (data.text) {
11
+ const user = data.user ? `@${displayNameForId(data.user)}` : "unknown";
12
+ lines.push(`**${user}**: ${formatSlackText(data.text)}`);
13
+ lines.push("");
14
+ }
15
+ if (data.reactions.length === 0) {
16
+ lines.push("No reactions.");
17
+ }
18
+ else {
19
+ lines.push("Reactions:");
20
+ for (const r of data.reactions) {
21
+ lines.push(` :${r.name}: × ${r.count}`);
22
+ }
23
+ }
24
+ return lines.join("\n");
25
+ }
26
+ /** Render a list of messages the user reacted to. */
27
+ export function renderReactedMessages(messages) {
28
+ if (messages.length === 0) {
29
+ return "No reactions found.";
30
+ }
31
+ const lines = [];
32
+ lines.push(`${count(messages.length, "message")} with reactions:\n`);
33
+ for (const msg of messages) {
34
+ const user = msg.user ? `@${displayNameForId(msg.user)}` : "unknown";
35
+ const text = msg.text
36
+ ? formatSlackText(msg.text).slice(0, 80)
37
+ : "(no text)";
38
+ const rxns = msg.reactions.map((r) => `:${r.name}: ${r.count}`).join(" ");
39
+ lines.push(`- **${user}**: ${text}`);
40
+ lines.push(` ${rxns}`);
41
+ }
42
+ return lines.join("\n");
43
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Format search results as readable text.
3
+ */
4
+ import type { SlackFileResult } from "../api/search.js";
5
+ /** Render file search results. */
6
+ export declare function renderFileList(files: SlackFileResult[], total: number, query?: string): string;