@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,236 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * A thin, stateless-per-invocation CLI over the domain modules in
4
+ * `src/`. Each call reads whatever loop state it needs from a
5
+ * small JSON file it owns, applies one command, and writes the
6
+ * result back out — no daemon, no port, no long-lived process.
7
+ * This is the shape both a Bash-invoked Claude Code skill and a
8
+ * future hook dispatcher need: one process, one JSON in, one JSON
9
+ * out.
10
+ *
11
+ * This file is the CLI adapter, not domain logic — argument
12
+ * parsing and state-file I/O live here so `src/tdd` stays pure.
13
+ */
14
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
15
+ import { dirname } from "node:path";
16
+ import { effectiveCwd, tokenize } from "../command/index.js";
17
+ import { checkGitCli } from "../git-cli/index.js";
18
+ import { checkGithubCli } from "../github-cli/index.js";
19
+ import { detectDestructiveCommand, } from "../internal/guardian/history-gate.js";
20
+ import { attest, idleLoop, standingReminder, } from "../tdd/index.js";
21
+ import { runVerify } from "../verify/index.js";
22
+ import { checkAttribution, ensureAttributionHook } from "./attribution.js";
23
+ import { fileGateDeps } from "./gate-deps.js";
24
+ import { checkCommitGuardian, checkIssueGuardian, checkPrGuardian, } from "./guardians.js";
25
+ import { runMemoryEdit, runMemoryRecall, runMemoryReflect, runMemoryRetain, } from "./memory.js";
26
+ import { runNotesAction } from "./notes.js";
27
+ import { processExec } from "./process-exec.js";
28
+ import { runQuestAction } from "./quest.js";
29
+ import { runSlackAuthLogin, runSlackAuthStatus } from "./slack-auth.js";
30
+ /** Where a loop's state lives when the caller doesn't override it. */
31
+ const DEFAULT_STATE_FILE = ".agentic-harness/tdd-loop.json";
32
+ /** Where quest state lives when the caller doesn't override it. */
33
+ const DEFAULT_QUEST_STATE_FILE = ".agentic-harness/quest-state.json";
34
+ function parseArgs(argv) {
35
+ const [domain, command, ...rest] = argv;
36
+ if (!domain || !command) {
37
+ throw new Error("Usage: agentic-harness-core <domain> <command> [--state-file <path>] [--quests-root <path>] [--notes-root <path>]");
38
+ }
39
+ let stateFile = domain === "quest" ? DEFAULT_QUEST_STATE_FILE : DEFAULT_STATE_FILE;
40
+ let questsRoot;
41
+ let notesRoot;
42
+ for (let i = 0; i < rest.length; i++) {
43
+ if (rest[i] === "--state-file") {
44
+ const value = rest[i + 1];
45
+ if (!value) {
46
+ throw new Error("--state-file requires a path");
47
+ }
48
+ stateFile = value;
49
+ i++;
50
+ }
51
+ else if (rest[i] === "--quests-root") {
52
+ const value = rest[i + 1];
53
+ if (!value) {
54
+ throw new Error("--quests-root requires a path");
55
+ }
56
+ questsRoot = value;
57
+ i++;
58
+ }
59
+ else if (rest[i] === "--notes-root") {
60
+ const value = rest[i + 1];
61
+ if (!value) {
62
+ throw new Error("--notes-root requires a path");
63
+ }
64
+ notesRoot = value;
65
+ i++;
66
+ }
67
+ }
68
+ return { domain, command, stateFile, questsRoot, notesRoot };
69
+ }
70
+ async function readStdin() {
71
+ const chunks = [];
72
+ for await (const chunk of process.stdin) {
73
+ chunks.push(chunk);
74
+ }
75
+ return Buffer.concat(chunks).toString("utf8");
76
+ }
77
+ async function loadLoop(stateFile) {
78
+ try {
79
+ const raw = await readFile(stateFile, "utf8");
80
+ return JSON.parse(raw);
81
+ }
82
+ catch (error) {
83
+ if (error.code === "ENOENT") {
84
+ return idleLoop();
85
+ }
86
+ throw error;
87
+ }
88
+ }
89
+ async function saveLoop(stateFile, loop) {
90
+ await mkdir(dirname(stateFile), { recursive: true });
91
+ await writeFile(stateFile, `${JSON.stringify(loop, null, 2)}\n`);
92
+ }
93
+ async function runTddAttest(stateFile) {
94
+ const input = await readStdin();
95
+ const attestation = JSON.parse(input);
96
+ const loop = await loadLoop(stateFile);
97
+ const result = attest(loop, attestation);
98
+ await saveLoop(stateFile, result.loop);
99
+ return result;
100
+ }
101
+ async function runTddStatus(stateFile) {
102
+ const loop = await loadLoop(stateFile);
103
+ return { loop, reminder: standingReminder(loop) };
104
+ }
105
+ /** A plain-text explanation of why a destructive command was flagged. */
106
+ function historyReason(match) {
107
+ const label = match.severity === "irrecoverable" ? "Destructive" : "Risky";
108
+ return `${label} command: ${match.description}`;
109
+ }
110
+ /** Build the hook's JSON stdout for a deny or ask decision. */
111
+ function decisionOutput(permissionDecision, permissionDecisionReason) {
112
+ return JSON.stringify({
113
+ hookSpecificOutput: {
114
+ hookEventName: "PreToolUse",
115
+ permissionDecision,
116
+ permissionDecisionReason,
117
+ },
118
+ });
119
+ }
120
+ /**
121
+ * Claude Code's PreToolUse hook contract for a Bash call: deny with a
122
+ * reason, ask with a reason, or say nothing so the normal permission
123
+ * flow decides. Never emit an explicit "allow" here — that would
124
+ * bypass whatever else (other hooks, the user's permission mode)
125
+ * would otherwise decide, for every bash command this hook doesn't
126
+ * flag.
127
+ *
128
+ * Deny takes precedence over ask throughout: a hard-rule violation
129
+ * (an amend, an unattributed PR, a content-gate violation) is not a
130
+ * judgment call the way a destructive command or an otherwise-clean
131
+ * commit/PR/issue is, so it is refused outright rather than softened
132
+ * into a question. Every guardian wired in here (history, commit, PR,
133
+ * issue) never rewrites in its own pi-side review either, so "ask" is
134
+ * a complete adapter for all of them — unlike a guardian that does
135
+ * rewrite, which a hook can only approximate as deny-and-retry, these
136
+ * map onto Claude Code's native permission prompt exactly as pi's own
137
+ * allow/block confirmation does.
138
+ */
139
+ async function runHookPreBash() {
140
+ const input = await readStdin();
141
+ const payload = JSON.parse(input);
142
+ const command = payload.tool_input?.command;
143
+ if (payload.tool_name !== "Bash" || !command)
144
+ return "";
145
+ const cwd = effectiveCwd(tokenize(command), process.cwd());
146
+ const resolvedCwd = "dir" in cwd ? cwd.dir : process.cwd();
147
+ ensureAttributionHook(resolvedCwd);
148
+ const denyReason = checkGitCli(command) ??
149
+ checkGithubCli(command) ??
150
+ checkAttribution(command);
151
+ if (denyReason)
152
+ return decisionOutput("deny", denyReason);
153
+ const destructive = detectDestructiveCommand(command);
154
+ if (destructive)
155
+ return decisionOutput("ask", historyReason(destructive));
156
+ const deps = fileGateDeps(resolvedCwd);
157
+ const guardianResult = checkCommitGuardian(command, deps) ??
158
+ (await checkPrGuardian(command, resolvedCwd, deps, processExec)) ??
159
+ checkIssueGuardian(command, deps);
160
+ if (guardianResult) {
161
+ return decisionOutput(guardianResult.decision, guardianResult.reason);
162
+ }
163
+ return "";
164
+ }
165
+ async function main() {
166
+ const options = parseArgs(process.argv.slice(2));
167
+ if (options.domain === "tdd" && options.command === "attest") {
168
+ process.stdout.write(`${JSON.stringify(await runTddAttest(options.stateFile))}\n`);
169
+ return;
170
+ }
171
+ if (options.domain === "tdd" && options.command === "status") {
172
+ process.stdout.write(`${JSON.stringify(await runTddStatus(options.stateFile))}\n`);
173
+ return;
174
+ }
175
+ if (options.domain === "hook" && options.command === "pre-bash") {
176
+ const output = await runHookPreBash();
177
+ if (output)
178
+ process.stdout.write(`${output}\n`);
179
+ return;
180
+ }
181
+ if (options.domain === "verify" && options.command === "run") {
182
+ const result = await runVerify({ cwd: process.cwd() });
183
+ process.stdout.write(`${JSON.stringify(result)}\n`);
184
+ process.exitCode = result.ok ? 0 : 1;
185
+ return;
186
+ }
187
+ if (options.domain === "quest") {
188
+ const input = await readStdin();
189
+ const params = input.trim().length > 0 ? JSON.parse(input) : {};
190
+ const result = await runQuestAction({
191
+ action: options.command,
192
+ stateFile: options.stateFile,
193
+ questsRoot: options.questsRoot,
194
+ }, params);
195
+ process.stdout.write(`${JSON.stringify(result)}\n`);
196
+ process.exitCode = result.ok ? 0 : 1;
197
+ return;
198
+ }
199
+ if (options.domain === "notes") {
200
+ const input = await readStdin();
201
+ const params = input.trim().length > 0 ? JSON.parse(input) : {};
202
+ const result = await runNotesAction({ action: options.command, notesRoot: options.notesRoot }, params);
203
+ process.stdout.write(`${JSON.stringify(result)}\n`);
204
+ process.exitCode = result.ok ? 0 : 1;
205
+ return;
206
+ }
207
+ if (options.domain === "memory") {
208
+ const handlers = {
209
+ retain: runMemoryRetain,
210
+ recall: runMemoryRecall,
211
+ reflect: runMemoryReflect,
212
+ edit: runMemoryEdit,
213
+ };
214
+ const handler = handlers[options.command];
215
+ if (handler) {
216
+ const input = await readStdin();
217
+ process.stdout.write(`${JSON.stringify(await handler(input))}\n`);
218
+ return;
219
+ }
220
+ }
221
+ if (options.domain === "slack-auth") {
222
+ if (options.command === "status") {
223
+ process.stdout.write(`${JSON.stringify(await runSlackAuthStatus())}\n`);
224
+ return;
225
+ }
226
+ if (options.command === "login") {
227
+ process.stdout.write(`${JSON.stringify(await runSlackAuthLogin())}\n`);
228
+ return;
229
+ }
230
+ }
231
+ throw new Error(`Unknown command: ${options.domain} ${options.command}`);
232
+ }
233
+ main().catch((error) => {
234
+ process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
235
+ process.exitCode = 1;
236
+ });
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Claude Code's file-backed content-gate signature store.
3
+ *
4
+ * The prose, section and title gates need to remember which
5
+ * violation signatures they have already blocked, so a repeat of
6
+ * the same violation relents instead of looping forever - see
7
+ * gate/deps.ts for why. pi backs this with its session log; a
8
+ * PreToolUse hook is a stateless-per-invocation process with no
9
+ * session object to read one back from, so this backs it with a
10
+ * small JSON file instead, the same shape tdd's and quest's own
11
+ * state files already use.
12
+ *
13
+ * Scoped to the command's effective cwd rather than to a Claude
14
+ * Code conversation: a hook invocation carries no session id in
15
+ * its stdin payload, so there is nothing session-shaped to key on.
16
+ * The signature persists for the project instead, which changes
17
+ * "relent on a repeat within this session" to "relent on a repeat
18
+ * within this project, ever" - a reasonable reading given the
19
+ * alternative is no relent mechanism at all in this adapter.
20
+ */
21
+ import type { GateDeps } from "../gate/index.js";
22
+ /** Build a GateDeps backed by a JSON file under `cwd`. */
23
+ export declare function fileGateDeps(cwd: string): GateDeps;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Claude Code's file-backed content-gate signature store.
3
+ *
4
+ * The prose, section and title gates need to remember which
5
+ * violation signatures they have already blocked, so a repeat of
6
+ * the same violation relents instead of looping forever - see
7
+ * gate/deps.ts for why. pi backs this with its session log; a
8
+ * PreToolUse hook is a stateless-per-invocation process with no
9
+ * session object to read one back from, so this backs it with a
10
+ * small JSON file instead, the same shape tdd's and quest's own
11
+ * state files already use.
12
+ *
13
+ * Scoped to the command's effective cwd rather than to a Claude
14
+ * Code conversation: a hook invocation carries no session id in
15
+ * its stdin payload, so there is nothing session-shaped to key on.
16
+ * The signature persists for the project instead, which changes
17
+ * "relent on a repeat within this session" to "relent on a repeat
18
+ * within this project, ever" - a reasonable reading given the
19
+ * alternative is no relent mechanism at all in this adapter.
20
+ */
21
+ import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
22
+ import { dirname, join } from "node:path";
23
+ /** Where signatures persist, relative to the resolved cwd. */
24
+ const SIGNATURES_FILE = ".agentic-harness/gate-signatures.json";
25
+ /** Read the persisted signature list, or an empty one if absent or unreadable. */
26
+ function readSignatureFile(path) {
27
+ try {
28
+ const raw = readFileSync(path, "utf8");
29
+ const parsed = JSON.parse(raw);
30
+ return Array.isArray(parsed)
31
+ ? parsed.filter((s) => typeof s === "string")
32
+ : [];
33
+ }
34
+ catch {
35
+ // Missing or corrupt: no signatures recorded yet, not a failure
36
+ // worth surfacing to the caller.
37
+ return [];
38
+ }
39
+ }
40
+ /** Build a GateDeps backed by a JSON file under `cwd`. */
41
+ export function fileGateDeps(cwd) {
42
+ const path = join(cwd, SIGNATURES_FILE);
43
+ return {
44
+ readSignatures: () => readSignatureFile(path),
45
+ persistSignature: (signature) => {
46
+ const signatures = readSignatureFile(path);
47
+ if (signatures.includes(signature))
48
+ return;
49
+ signatures.push(signature);
50
+ try {
51
+ mkdirSync(dirname(path), { recursive: true });
52
+ writeFileSync(path, JSON.stringify(signatures));
53
+ }
54
+ catch {
55
+ // Best-effort: a lost signature only means the loop
56
+ // breaker forgets a block it already made, not that the
57
+ // gate itself fails to run.
58
+ }
59
+ },
60
+ };
61
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Claude Code's write-confirmation guardians: commit, PR and
3
+ * issue review.
4
+ *
5
+ * All three share the same shape pi's own guardians already have:
6
+ * deterministic content gates (prose, section, title, redirect) run
7
+ * first and block outright on a violation, exactly as pi's own
8
+ * `review()` does before it ever shows a human anything. Only once
9
+ * a command clears every gate does a human get asked - and unlike
10
+ * pi's own `!ctx.hasUI -> ALLOW` fallback for a context with no
11
+ * panel to show, an ordinary Claude Code chat is not headless: a
12
+ * human is there, so this asks rather than silently allowing,
13
+ * which is genuinely more protection than pi itself offers a
14
+ * subagent or a headless run.
15
+ *
16
+ * The section and title gates cite pi's own skill names
17
+ * (`github-pr-format`, `github-issue-format`) in their block
18
+ * messages ("see the X skill for what belongs in each section").
19
+ * agentic-harness.claude has no equivalent skill yet, so that
20
+ * pointer is presently dead for a Claude Code user; the concrete
21
+ * violation detail alongside it (which headings are invented,
22
+ * missing or misordered) still is not, and stays actionable on its
23
+ * own. Revisit once those guide skills port here.
24
+ */
25
+ import type { Exec } from "../exec/index.js";
26
+ import type { GateDeps } from "../gate/index.js";
27
+ /** What a guardian check hands back to the hook dispatcher. */
28
+ export interface GuardianHookResult {
29
+ decision: "deny" | "ask";
30
+ reason: string;
31
+ }
32
+ /**
33
+ * Check a `git commit` command: the prose gate first (blocks
34
+ * outright on a violation, same as pi), then an ask showing the
35
+ * message and its format notes. Returns null for anything else, or
36
+ * a message-less commit (nothing here to gate).
37
+ */
38
+ export declare function checkCommitGuardian(command: string, deps: GateDeps): GuardianHookResult | null;
39
+ /**
40
+ * Check a `gh pr create`/`edit` command: the redirect gate (does
41
+ * this checkout even belong to GitHub), then section, title and
42
+ * prose - each blocking outright on a violation - then an ask
43
+ * showing the title and body. Returns null for anything else.
44
+ */
45
+ export declare function checkPrGuardian(command: string, cwd: string, deps: GateDeps, exec: Exec): Promise<GuardianHookResult | null>;
46
+ /**
47
+ * Check a `gh issue create`/`edit` command: section, title and
48
+ * prose gates, then an ask showing the title and body. Returns
49
+ * null for anything else.
50
+ */
51
+ export declare function checkIssueGuardian(command: string, deps: GateDeps): GuardianHookResult | null;
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Claude Code's write-confirmation guardians: commit, PR and
3
+ * issue review.
4
+ *
5
+ * All three share the same shape pi's own guardians already have:
6
+ * deterministic content gates (prose, section, title, redirect) run
7
+ * first and block outright on a violation, exactly as pi's own
8
+ * `review()` does before it ever shows a human anything. Only once
9
+ * a command clears every gate does a human get asked - and unlike
10
+ * pi's own `!ctx.hasUI -> ALLOW` fallback for a context with no
11
+ * panel to show, an ordinary Claude Code chat is not headless: a
12
+ * human is there, so this asks rather than silently allowing,
13
+ * which is genuinely more protection than pi itself offers a
14
+ * subagent or a headless run.
15
+ *
16
+ * The section and title gates cite pi's own skill names
17
+ * (`github-pr-format`, `github-issue-format`) in their block
18
+ * messages ("see the X skill for what belongs in each section").
19
+ * agentic-harness.claude has no equivalent skill yet, so that
20
+ * pointer is presently dead for a Claude Code user; the concrete
21
+ * violation detail alongside it (which headings are invented,
22
+ * missing or misordered) still is not, and stays actionable on its
23
+ * own. Revisit once those guide skills port here.
24
+ */
25
+ import { isIssueCommand, isPrCommand, parseIssueCommand, parsePrCommand, } from "../internal/github/cli.js";
26
+ import { readCommitFile } from "../internal/guardian/commit-file.js";
27
+ import { complaintsAbout } from "../internal/guardian/commit-format.js";
28
+ import { extractMessage, isGitCommitCommand, } from "../internal/guardian/commit-shell.js";
29
+ import { proseGateNote, runProseGate, } from "../internal/guardian/prose-gate.js";
30
+ import { runRedirectGate } from "../internal/guardian/redirect-gate.js";
31
+ import { runSectionGate, sectionGateNote, } from "../internal/guardian/section-gate.js";
32
+ import { runTitleGate, titleGateNote, } from "../internal/guardian/title-gate.js";
33
+ import { ISSUE_SECTIONS, PR_SECTIONS } from "../sections/index.js";
34
+ /** Turn a GuardianResult into a deny reason, or null when it doesn't block. */
35
+ function denyFrom(result) {
36
+ if (!result)
37
+ return null;
38
+ if ("block" in result)
39
+ return result.reason;
40
+ // No content gate ported so far emits rewrite, but the type allows
41
+ // it: approximate as deny, naming the corrected form for the agent
42
+ // to retry with, since a hook cannot splice a rewrite into the
43
+ // call the way pi's guardian can.
44
+ return `This command needs a change before it can run:\n\n${result.rewrite}`;
45
+ }
46
+ const MAX_PREVIEW = 4000;
47
+ /** Cap a body preview so the reason stays a reasonable size. */
48
+ function truncate(text) {
49
+ if (text.length <= MAX_PREVIEW)
50
+ return text;
51
+ return `${text.slice(0, MAX_PREVIEW)}\n... (truncated)`;
52
+ }
53
+ const PR_SECTION_CONFIG = {
54
+ sanctioned: PR_SECTIONS,
55
+ entityLabel: "PR",
56
+ skill: "github-pr-format",
57
+ };
58
+ const PR_TITLE_CONFIG = { entityLabel: "PR", skill: "github-pr-format" };
59
+ const ISSUE_SECTION_CONFIG = {
60
+ sanctioned: ISSUE_SECTIONS,
61
+ entityLabel: "issue",
62
+ skill: "github-issue-format",
63
+ };
64
+ const ISSUE_TITLE_CONFIG = {
65
+ entityLabel: "issue",
66
+ skill: "github-issue-format",
67
+ };
68
+ /** Plain-text review prompt for a commit message. */
69
+ function commitAskReason(message, isAmend, relentNote) {
70
+ const complaints = complaintsAbout(message);
71
+ const notes = complaints.length > 0
72
+ ? `Format notes: ${complaints.join("; ")}.`
73
+ : "Format looks clean (conventional, within the length limits).";
74
+ const amendNote = isAmend ? " This amends the previous commit." : "";
75
+ const relentSuffix = relentNote ? `\n\n${relentNote}` : "";
76
+ return `Review this commit before it runs.${amendNote}\n\n${truncate(message)}\n\n${notes}${relentSuffix}`;
77
+ }
78
+ /**
79
+ * Check a `git commit` command: the prose gate first (blocks
80
+ * outright on a violation, same as pi), then an ask showing the
81
+ * message and its format notes. Returns null for anything else, or
82
+ * a message-less commit (nothing here to gate).
83
+ */
84
+ export function checkCommitGuardian(command, deps) {
85
+ if (!isGitCommitCommand(command))
86
+ return null;
87
+ const message = extractMessage(command, readCommitFile);
88
+ if (!message)
89
+ return null;
90
+ const proseDeny = denyFrom(runProseGate(deps, message));
91
+ if (proseDeny)
92
+ return { decision: "deny", reason: proseDeny };
93
+ const isAmend = /--amend\b/.test(command);
94
+ const relentNote = proseGateNote(deps, message);
95
+ return {
96
+ decision: "ask",
97
+ reason: commitAskReason(message, isAmend, relentNote),
98
+ };
99
+ }
100
+ /** Plain-text review prompt for a PR or issue body. */
101
+ function entityAskReason(label, action, title, body, relentNotes) {
102
+ const parts = [`Review this ${label} ${action} before it runs.`];
103
+ if (title)
104
+ parts.push("", `Title: ${title}`);
105
+ if (body)
106
+ parts.push("", truncate(body));
107
+ for (const note of relentNotes) {
108
+ if (note)
109
+ parts.push("", note);
110
+ }
111
+ return parts.join("\n");
112
+ }
113
+ /**
114
+ * Check a `gh pr create`/`edit` command: the redirect gate (does
115
+ * this checkout even belong to GitHub), then section, title and
116
+ * prose - each blocking outright on a violation - then an ask
117
+ * showing the title and body. Returns null for anything else.
118
+ */
119
+ export async function checkPrGuardian(command, cwd, deps, exec) {
120
+ if (!isPrCommand(command))
121
+ return null;
122
+ const parsed = parsePrCommand(command);
123
+ if (!parsed)
124
+ return null;
125
+ const redirectDeny = denyFrom(await runRedirectGate(deps, { action: parsed.action, cwd, exec }));
126
+ if (redirectDeny)
127
+ return { decision: "deny", reason: redirectDeny };
128
+ const sectionDeny = denyFrom(runSectionGate(deps, parsed.body, PR_SECTION_CONFIG));
129
+ if (sectionDeny)
130
+ return { decision: "deny", reason: sectionDeny };
131
+ const titleDeny = denyFrom(runTitleGate(deps, parsed.title, PR_TITLE_CONFIG));
132
+ if (titleDeny)
133
+ return { decision: "deny", reason: titleDeny };
134
+ const proseDeny = denyFrom(runProseGate(deps, parsed.body));
135
+ if (proseDeny)
136
+ return { decision: "deny", reason: proseDeny };
137
+ return {
138
+ decision: "ask",
139
+ reason: entityAskReason("PR", parsed.action, parsed.title, parsed.body, [
140
+ sectionGateNote(deps, parsed.body, PR_SECTION_CONFIG),
141
+ titleGateNote(deps, parsed.title, PR_TITLE_CONFIG),
142
+ proseGateNote(deps, parsed.body),
143
+ ]),
144
+ };
145
+ }
146
+ /**
147
+ * Check a `gh issue create`/`edit` command: section, title and
148
+ * prose gates, then an ask showing the title and body. Returns
149
+ * null for anything else.
150
+ */
151
+ export function checkIssueGuardian(command, deps) {
152
+ if (!isIssueCommand(command))
153
+ return null;
154
+ const parsed = parseIssueCommand(command);
155
+ if (!parsed)
156
+ return null;
157
+ const sectionDeny = denyFrom(runSectionGate(deps, parsed.body, ISSUE_SECTION_CONFIG));
158
+ if (sectionDeny)
159
+ return { decision: "deny", reason: sectionDeny };
160
+ const titleDeny = denyFrom(runTitleGate(deps, parsed.title, ISSUE_TITLE_CONFIG));
161
+ if (titleDeny)
162
+ return { decision: "deny", reason: titleDeny };
163
+ const proseDeny = denyFrom(runProseGate(deps, parsed.body));
164
+ if (proseDeny)
165
+ return { decision: "deny", reason: proseDeny };
166
+ return {
167
+ decision: "ask",
168
+ reason: entityAskReason("issue", parsed.action, parsed.title, parsed.body, [
169
+ sectionGateNote(deps, parsed.body, ISSUE_SECTION_CONFIG),
170
+ titleGateNote(deps, parsed.title, ISSUE_TITLE_CONFIG),
171
+ proseGateNote(deps, parsed.body),
172
+ ]),
173
+ };
174
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The CLI adapter's memory wiring: scope resolution plus the four
3
+ * request/response shapes the `memory` subcommands speak. Domain
4
+ * logic (the store itself) lives in `../memory`; this file is
5
+ * where a CLI-specific "what scope applies right now" answer gets
6
+ * made, since core deliberately doesn't own that (see
7
+ * memory/scope.ts).
8
+ *
9
+ * Each call opens and closes its own connection: this CLI is
10
+ * stateless per invocation like every other subcommand here, and
11
+ * SQLite is built for exactly this access pattern.
12
+ */
13
+ export declare function runMemoryRetain(input: string): Promise<unknown>;
14
+ export declare function runMemoryRecall(input: string): Promise<unknown>;
15
+ export declare function runMemoryReflect(input: string): Promise<unknown>;
16
+ export declare function runMemoryEdit(input: string): Promise<unknown>;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * The CLI adapter's memory wiring: scope resolution plus the four
3
+ * request/response shapes the `memory` subcommands speak. Domain
4
+ * logic (the store itself) lives in `../memory`; this file is
5
+ * where a CLI-specific "what scope applies right now" answer gets
6
+ * made, since core deliberately doesn't own that (see
7
+ * memory/scope.ts).
8
+ *
9
+ * Each call opens and closes its own connection: this CLI is
10
+ * stateless per invocation like every other subcommand here, and
11
+ * SQLite is built for exactly this access pattern.
12
+ */
13
+ import { memoryDbPath, openMemoryStore } from "../memory/index.js";
14
+ /** The scope a call gets when it doesn't name one: the project at cwd. */
15
+ function defaultScope() {
16
+ return { kind: "project", path: process.cwd() };
17
+ }
18
+ export async function runMemoryRetain(input) {
19
+ const req = JSON.parse(input);
20
+ const store = await openMemoryStore(await memoryDbPath());
21
+ try {
22
+ return await store.retain({
23
+ scope: req.scope ?? defaultScope(),
24
+ text: req.text,
25
+ ...(req.tags ? { tags: req.tags } : {}),
26
+ ...(req.source ? { source: req.source } : {}),
27
+ });
28
+ }
29
+ finally {
30
+ await store.close();
31
+ }
32
+ }
33
+ export async function runMemoryRecall(input) {
34
+ const req = JSON.parse(input || "{}");
35
+ const store = await openMemoryStore(await memoryDbPath());
36
+ try {
37
+ return await store.recall({
38
+ scope: req.scope ?? defaultScope(),
39
+ ...(req.query ? { text: req.query } : {}),
40
+ ...(req.limit ? { limit: req.limit } : {}),
41
+ ...(req.includeGlobal !== undefined
42
+ ? { includeGlobal: req.includeGlobal }
43
+ : {}),
44
+ });
45
+ }
46
+ finally {
47
+ await store.close();
48
+ }
49
+ }
50
+ export async function runMemoryReflect(input) {
51
+ const req = JSON.parse(input);
52
+ const store = await openMemoryStore(await memoryDbPath());
53
+ try {
54
+ const text = await store.reflect({
55
+ scope: req.scope ?? defaultScope(),
56
+ question: req.question,
57
+ });
58
+ return { text };
59
+ }
60
+ finally {
61
+ await store.close();
62
+ }
63
+ }
64
+ export async function runMemoryEdit(input) {
65
+ const req = JSON.parse(input);
66
+ const store = await openMemoryStore(await memoryDbPath());
67
+ try {
68
+ if (req.invalidate) {
69
+ await store.invalidate(req.id);
70
+ return { ok: true, invalidated: req.id };
71
+ }
72
+ const fact = await store.edit(req.id, {
73
+ ...(req.text !== undefined ? { text: req.text } : {}),
74
+ ...(req.tags !== undefined ? { tags: req.tags } : {}),
75
+ });
76
+ return { ok: fact !== null, fact };
77
+ }
78
+ finally {
79
+ await store.close();
80
+ }
81
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The `notes` domain's CLI handler: one process per call, no
3
+ * persisted state -- every verb is fully determined by
4
+ * `notesRoot` plus its own params, so unlike `bin/quest.ts`
5
+ * there is no `.agentic-harness/notes-state.json` to load or
6
+ * save.
7
+ *
8
+ * notesRoot resolves the same way quest's questsRoot does: a
9
+ * single default location every tool on the machine sees
10
+ * unless told otherwise, not something that shifts under you
11
+ * as cwd changes. There's no sibling pi extension to alias
12
+ * onto (quest's default points at the exact path
13
+ * agentic-harness.pi's quest-workflow extension already
14
+ * writes to), so notes gets its own XDG-rooted default
15
+ * instead. Override with `--notes-root` or
16
+ * `AGENTIC_HARNESS_NOTES_ROOT` when the archive lives
17
+ * somewhere else -- e.g. a specific repo's notes tree.
18
+ */
19
+ import type { NoteResult, NoteToolParams } from "../notes/verbs/shared.js";
20
+ /**
21
+ * Default notesRoot: an XDG data-dir location, mirroring how
22
+ * `bin/quest.ts`'s `defaultQuestsRoot` resolves.
23
+ */
24
+ export declare function defaultNotesRoot(env?: NodeJS.ProcessEnv, home?: string): string;
25
+ export interface NotesCliOptions {
26
+ action: string;
27
+ notesRoot: string | undefined;
28
+ }
29
+ /** Run one notes action against `notesRoot`, resolved from the flag/env/cwd chain. */
30
+ export declare function runNotesAction(options: NotesCliOptions, params: NoteToolParams): Promise<NoteResult>;