@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,28 @@
1
+ /**
2
+ * Process-global singletons shared across module instances.
3
+ *
4
+ * A host that loads a library's modules more than once per process
5
+ * (pi loads each extension as its own module instance) does not get
6
+ * one registry from a module-level `const registry = new Map()`: each
7
+ * loader that imports the module gets its own. Anything one caller
8
+ * writes and another reads (a recorder sink, a prompt contributor, an
9
+ * LSP backend, the shared browser) must therefore live on
10
+ * `globalThis` under a shared key rather than in a module variable.
11
+ * `Symbol.for` gives every module instance the same key, and
12
+ * `globalThis` is shared across them, so the value is genuinely one
13
+ * per process.
14
+ */
15
+ /**
16
+ * Get the process-global value for `key`, creating it once with
17
+ * `create` on first access. Every caller in the process, in any
18
+ * module instance, receives the same value.
19
+ */
20
+ export function processGlobal(key, create) {
21
+ const symbol = Symbol.for(key);
22
+ const store = globalThis;
23
+ // Test presence with `in`, not truthiness, so a value that is
24
+ // legitimately undefined or falsy is still created only once.
25
+ if (!(symbol in store))
26
+ store[symbol] = create();
27
+ return store[symbol];
28
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Reverse index from alias `type:value` keys to quest ids.
3
+ *
4
+ * Built once from a `QuestIndex` (the discovery walk's
5
+ * output). The `quest create` action uses this to detect
6
+ * "this URL is already attached to an existing quest" and
7
+ * propose loading instead of creating a duplicate.
8
+ */
9
+ import type { QuestAlias } from "../../quest/types.js";
10
+ import type { QuestIndex } from "./discovery.js";
11
+ /**
12
+ * Format a `{type, value}` alias as a flat lookup key. The type is
13
+ * lowercased so case variants of the same registered type (GitHub-PR
14
+ * and github-pr) resolve to one key; the value is kept verbatim,
15
+ * since paths and refs are case-sensitive.
16
+ */
17
+ export declare function aliasKey(alias: QuestAlias): string;
18
+ export interface AliasIndex {
19
+ /**
20
+ * Map from `type:value` to the quest id it appears in.
21
+ * When the same key appears on more than one quest, the
22
+ * key is also in `collisions` and `byKey` holds the
23
+ * lexicographically-first id (a stable choice the
24
+ * consumer can name in the error message).
25
+ */
26
+ byKey: Map<string, string>;
27
+ /**
28
+ * Every alias key that appears on more than one quest,
29
+ * with the full set of quest ids that share it. Consumers
30
+ * should refuse the operation when the alias they care
31
+ * about is in this map, since silently routing to the
32
+ * first-write-wins quest would mis-attribute work.
33
+ */
34
+ collisions: Map<string, string[]>;
35
+ }
36
+ /** Build a reverse index across every quest in the index. */
37
+ export declare function buildAliasIndex(index: QuestIndex): AliasIndex;
38
+ /**
39
+ * Find the quest id holding this alias, if any.
40
+ *
41
+ * Returns `undefined` when the alias is unknown OR when it
42
+ * is shared across multiple quests. Use `lookupAliasDetail`
43
+ * (below) when you need to distinguish those cases and
44
+ * surface the collision to the user.
45
+ */
46
+ export declare function lookupAlias(index: AliasIndex, alias: QuestAlias): string | undefined;
47
+ export type AliasLookup = {
48
+ kind: "miss";
49
+ } | {
50
+ kind: "hit";
51
+ questId: string;
52
+ } | {
53
+ kind: "collision";
54
+ questIds: string[];
55
+ };
56
+ /**
57
+ * Look up an alias and surface duplicates explicitly so the
58
+ * caller can refuse with a clear "alias X points at quests
59
+ * A and B" message rather than silently routing to one.
60
+ */
61
+ export declare function lookupAliasDetail(index: AliasIndex, alias: QuestAlias): AliasLookup;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Reverse index from alias `type:value` keys to quest ids.
3
+ *
4
+ * Built once from a `QuestIndex` (the discovery walk's
5
+ * output). The `quest create` action uses this to detect
6
+ * "this URL is already attached to an existing quest" and
7
+ * propose loading instead of creating a duplicate.
8
+ */
9
+ /**
10
+ * Format a `{type, value}` alias as a flat lookup key. The type is
11
+ * lowercased so case variants of the same registered type (GitHub-PR
12
+ * and github-pr) resolve to one key; the value is kept verbatim,
13
+ * since paths and refs are case-sensitive.
14
+ */
15
+ export function aliasKey(alias) {
16
+ return `${alias.type.toLowerCase()}:${alias.value}`;
17
+ }
18
+ /** Build a reverse index across every quest in the index. */
19
+ export function buildAliasIndex(index) {
20
+ const occurrences = new Map();
21
+ for (const entry of index.quests.values()) {
22
+ for (const alias of entry.doc.frontMatter.aliases) {
23
+ const key = aliasKey(alias);
24
+ const list = occurrences.get(key) ?? [];
25
+ if (!list.includes(entry.doc.frontMatter.id)) {
26
+ list.push(entry.doc.frontMatter.id);
27
+ }
28
+ occurrences.set(key, list);
29
+ }
30
+ }
31
+ const byKey = new Map();
32
+ const collisions = new Map();
33
+ for (const [key, ids] of occurrences) {
34
+ const sorted = [...ids].sort();
35
+ byKey.set(key, sorted[0]);
36
+ if (sorted.length > 1)
37
+ collisions.set(key, sorted);
38
+ }
39
+ return { byKey, collisions };
40
+ }
41
+ /**
42
+ * Find the quest id holding this alias, if any.
43
+ *
44
+ * Returns `undefined` when the alias is unknown OR when it
45
+ * is shared across multiple quests. Use `lookupAliasDetail`
46
+ * (below) when you need to distinguish those cases and
47
+ * surface the collision to the user.
48
+ */
49
+ export function lookupAlias(index, alias) {
50
+ const key = aliasKey(alias);
51
+ if (index.collisions.has(key))
52
+ return undefined;
53
+ return index.byKey.get(key);
54
+ }
55
+ /**
56
+ * Look up an alias and surface duplicates explicitly so the
57
+ * caller can refuse with a clear "alias X points at quests
58
+ * A and B" message rather than silently routing to one.
59
+ */
60
+ export function lookupAliasDetail(index, alias) {
61
+ const key = aliasKey(alias);
62
+ const collisionIds = index.collisions.get(key);
63
+ if (collisionIds)
64
+ return { kind: "collision", questIds: collisionIds };
65
+ const questId = index.byKey.get(key);
66
+ if (questId)
67
+ return { kind: "hit", questId };
68
+ return { kind: "miss" };
69
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Append a Journey bullet to a quest README at a known
3
+ * path. Pure file operation, no extension state involved.
4
+ * The extension's `appendJourneyEntry` wraps this for the
5
+ * loaded-quest case; a caller holding a path uses this
6
+ * directly so it can write to any quest the alias index
7
+ * points it at. That caller used to be named here as the
8
+ * PR-sidequest bridge, which no longer exists.
9
+ */
10
+ /**
11
+ * Append a Journey bullet to `<questDir>/README.md`. When
12
+ * the Journey section is missing, append the whole section
13
+ * with the bullet inside. `now` is injected so tests can
14
+ * pin the date stamp.
15
+ *
16
+ * Returns `true` on success, `false` when the README is
17
+ * missing or unreadable so callers can log instead of
18
+ * silently dropping the journal entry.
19
+ */
20
+ export declare function appendJourneyByPath(questDir: string, prose: string, opts?: {
21
+ now?: () => Date;
22
+ }): boolean;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Append a Journey bullet to a quest README at a known
3
+ * path. Pure file operation, no extension state involved.
4
+ * The extension's `appendJourneyEntry` wraps this for the
5
+ * loaded-quest case; a caller holding a path uses this
6
+ * directly so it can write to any quest the alias index
7
+ * points it at. That caller used to be named here as the
8
+ * PR-sidequest bridge, which no longer exists.
9
+ */
10
+ import { readFileSync } from "node:fs";
11
+ import { join } from "node:path";
12
+ import { nowYmd } from "./dates.js";
13
+ import { atomicWriteFile, withQuestLock } from "./io.js";
14
+ /**
15
+ * Append a Journey bullet to `<questDir>/README.md`. When
16
+ * the Journey section is missing, append the whole section
17
+ * with the bullet inside. `now` is injected so tests can
18
+ * pin the date stamp.
19
+ *
20
+ * Returns `true` on success, `false` when the README is
21
+ * missing or unreadable so callers can log instead of
22
+ * silently dropping the journal entry.
23
+ */
24
+ export function appendJourneyByPath(questDir, prose, opts) {
25
+ const path = join(questDir, "README.md");
26
+ return withQuestLock(questDir, () => {
27
+ let text;
28
+ try {
29
+ text = readFileSync(path, "utf8");
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ const date = nowYmd(opts?.now);
35
+ const bullet = `- **${date}**: ${prose.trim()}`;
36
+ const journeyHeading = /^##\s+(?:[\u{1F300}-\u{1FFFF}]\s+)?Journey\s*$/mu;
37
+ const match = journeyHeading.exec(text);
38
+ let newText;
39
+ if (match) {
40
+ const lines = text.split("\n");
41
+ let lineIdx = 0;
42
+ let charCount = 0;
43
+ for (let i = 0; i < lines.length; i++) {
44
+ if (charCount + lines[i].length + 1 > match.index) {
45
+ lineIdx = i;
46
+ break;
47
+ }
48
+ charCount += lines[i].length + 1;
49
+ }
50
+ let insertAt = lineIdx + 1;
51
+ while (insertAt < lines.length && lines[insertAt].trim() === "") {
52
+ insertAt++;
53
+ }
54
+ lines.splice(insertAt, 0, bullet);
55
+ newText = lines.join("\n");
56
+ }
57
+ else {
58
+ newText = `${text.replace(/\n*$/, "\n")}\n## 🌄 Journey\n\n${bullet}\n`;
59
+ }
60
+ atomicWriteFile(path, newText);
61
+ return true;
62
+ });
63
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Advisory classification of a bash command for the quest phase
3
+ * gate. The command is reduced to its executable skeleton first
4
+ * (heredoc bodies and quoted data removed) so a mutating verb that
5
+ * appears only as a literal argument, or inside a heredoc body,
6
+ * does not trip the gate. This is a nudge toward the right stage,
7
+ * not a security boundary.
8
+ */
9
+ /** What kind of write, if any, a bash command performs. */
10
+ export type BashWriteKind = "git-mutating" | "bash-write" | "read-only";
11
+ /**
12
+ * Extract the destination paths a bash command writes to, so the
13
+ * gate can see where the write lands and allow scratch
14
+ * destinations. The command is reduced to the same data-stripped
15
+ * skeleton the classifier matches on, so a redirect that lived
16
+ * inside quoted data raises no phantom target. Three write shapes
17
+ * are read: redirect destinations (`>`, `>>`, excluding fd
18
+ * redirects such as `2>`), `tee` destinations, and the file
19
+ * argument of an in-place editor (sed -i, gsed -i, perl -i), whose
20
+ * quoted script has already been stripped, leaving the file as a
21
+ * trailing non-flag token.
22
+ *
23
+ * A target the command builds out of its own variables is expanded
24
+ * from the assignments in that same command, since `Q=...; echo >
25
+ * "$Q/f"` is one of the commonest ways to write to a directory whose
26
+ * path is long. A target still carrying a sigil after that is dropped
27
+ * rather than reported: the caller resolves what it is given against a
28
+ * working directory, so a literal `$UNKNOWN/f.txt` becomes a real path
29
+ * nobody wrote to, and judging the wrong file is worse than declining
30
+ * to judge this one.
31
+ *
32
+ * A quoted destination counts, which is the ordinary spelling and the
33
+ * spelling a variable almost always arrives in. Reading it does not cost
34
+ * the protection against a `>` inside a string, because the two are
35
+ * different questions: what makes a redirect real is its operator being
36
+ * unquoted, not its target being bare. The command model already draws
37
+ * that line, so the targets come from there and the patterns below stay
38
+ * as a second pass for the grammar it declines, such as a subshell or a
39
+ * loop. Both readings are kept because this gate wants recall: a missed
40
+ * target is an unjudged write, while a spurious one is inert unless it
41
+ * happens to name tracked code.
42
+ */
43
+ export declare function bashWriteTargets(command: string): string[];
44
+ /**
45
+ * Classify a bash command after stripping non-executable content,
46
+ * so quoted literals and heredoc bodies cannot raise a false
47
+ * positive.
48
+ */
49
+ export declare function classifyBashWrite(command: string): BashWriteKind;
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Advisory classification of a bash command for the quest phase
3
+ * gate. The command is reduced to its executable skeleton first
4
+ * (heredoc bodies and quoted data removed) so a mutating verb that
5
+ * appears only as a literal argument, or inside a heredoc body,
6
+ * does not trip the gate. This is a nudge toward the right stage,
7
+ * not a security boundary.
8
+ */
9
+ import { tokenize } from "../../command/index.js";
10
+ import { stripHeredocBodies, stripShellData, unquote, } from "../../shell/index.js";
11
+ /** Git subcommands that change repository or working-tree state. */
12
+ const GIT_MUTATING = /\bgit(?:\s+(?:-c\s+\S+|-C\s+\S+|--git-dir=\S+|--work-tree=\S+|--no-pager))*\s+(add|commit|push|pull|merge|rebase|reset|checkout|stash|cherry-pick|revert|tag|switch|restore|am|format-patch)\b/i;
13
+ /** Shell patterns that write to the filesystem via redirection or in-place edit. */
14
+ const BASH_WRITE_PATTERNS = [
15
+ /(^|\s|[;&|`])cat\s+[^|]*>>?\s/, // cat > foo, cat >> foo
16
+ /(^|\s|[;&|`])tee\s+(?:-[a-z]+\s+)*\S/, // tee foo, tee -a foo
17
+ /(^|\s|[;&|`])sed\s+(?:-[a-z]+\s+)*-i\b/, // sed -i
18
+ /(^|\s|[;&|`])gsed\s+(?:-[a-z]+\s+)*-i\b/, // homebrew sed
19
+ /(^|\s|[;&|`])perl\s+(?:-[a-z]+\s+)*-i\b/, // perl -i
20
+ /(^|\s|[;&|`])printf\s+.+>>?\s/, // printf > foo
21
+ /(^|\s|[;&|`])echo\s+.+>>?\s/, // echo > foo
22
+ ];
23
+ /**
24
+ * Extract the destination paths a bash command writes to, so the
25
+ * gate can see where the write lands and allow scratch
26
+ * destinations. The command is reduced to the same data-stripped
27
+ * skeleton the classifier matches on, so a redirect that lived
28
+ * inside quoted data raises no phantom target. Three write shapes
29
+ * are read: redirect destinations (`>`, `>>`, excluding fd
30
+ * redirects such as `2>`), `tee` destinations, and the file
31
+ * argument of an in-place editor (sed -i, gsed -i, perl -i), whose
32
+ * quoted script has already been stripped, leaving the file as a
33
+ * trailing non-flag token.
34
+ *
35
+ * A target the command builds out of its own variables is expanded
36
+ * from the assignments in that same command, since `Q=...; echo >
37
+ * "$Q/f"` is one of the commonest ways to write to a directory whose
38
+ * path is long. A target still carrying a sigil after that is dropped
39
+ * rather than reported: the caller resolves what it is given against a
40
+ * working directory, so a literal `$UNKNOWN/f.txt` becomes a real path
41
+ * nobody wrote to, and judging the wrong file is worse than declining
42
+ * to judge this one.
43
+ *
44
+ * A quoted destination counts, which is the ordinary spelling and the
45
+ * spelling a variable almost always arrives in. Reading it does not cost
46
+ * the protection against a `>` inside a string, because the two are
47
+ * different questions: what makes a redirect real is its operator being
48
+ * unquoted, not its target being bare. The command model already draws
49
+ * that line, so the targets come from there and the patterns below stay
50
+ * as a second pass for the grammar it declines, such as a subshell or a
51
+ * loop. Both readings are kept because this gate wants recall: a missed
52
+ * target is an unjudged write, while a spurious one is inert unless it
53
+ * happens to name tracked code.
54
+ */
55
+ export function bashWriteTargets(command) {
56
+ const skeleton = stripShellData(stripHeredocBodies(command));
57
+ const assigned = assignmentsIn(skeleton, command);
58
+ const targets = [];
59
+ const add = (token) => {
60
+ if (!token)
61
+ return;
62
+ const bare = token.replace(/^['"]/, "").replace(/['"]$/, "");
63
+ if (!bare)
64
+ return;
65
+ const value = expand(bare, assigned);
66
+ // Anything still holding a `$` was built from something this command
67
+ // does not say, so there is nothing honest to report.
68
+ if (value === undefined)
69
+ return;
70
+ targets.push(value);
71
+ };
72
+ // Redirect destinations: the token following > or >>. A leading
73
+ // digit or & marks an fd redirect (2>, &>), which routes a stream
74
+ // rather than naming a content target, so it is skipped.
75
+ // A closing paren is excluded from the target so `(echo x > f.ts)` does
76
+ // not report `f.ts)`, which names nothing and so is never judged. A real
77
+ // filename may hold a paren, but a subshell ending is far likelier, and
78
+ // this pass is the one reading commands the model would not.
79
+ for (const match of skeleton.matchAll(/(?<![0-9&])>>?\s*([^\s;&|<>()]+)/g)) {
80
+ add(match[1]);
81
+ }
82
+ // tee destinations: non-flag tokens following a tee invocation.
83
+ for (const match of skeleton.matchAll(/(?:^|[|;&]|\s)tee\s+((?:-[^\s]+\s+)*)(\S+)/g)) {
84
+ add(match[2]);
85
+ }
86
+ // In-place editor file arguments: every non-flag token after the
87
+ // editor invocation. An unquoted script token cannot resolve to
88
+ // a tracked path, so it is harmless to include.
89
+ for (const match of skeleton.matchAll(/(?:^|[|;&]|\s)(?:g?sed|perl)\s+([^|;&\n]*)/g)) {
90
+ const tokens = (match[1] ?? "").split(/\s+/).filter(Boolean);
91
+ if (!tokens.some((t) => t === "-i" || t.startsWith("-i")))
92
+ continue;
93
+ for (const token of tokens) {
94
+ if (token.startsWith("-"))
95
+ continue;
96
+ add(token);
97
+ }
98
+ }
99
+ for (const target of modelledTargets(command))
100
+ add(target);
101
+ return [...new Set(targets)];
102
+ }
103
+ /**
104
+ * Write destinations read from the command model, where quoting is
105
+ * already understood.
106
+ *
107
+ * Three shapes, the same three the patterns above look for: a redirect's
108
+ * target, `tee`'s file arguments, and the file arguments of an in-place
109
+ * editor. A file-descriptor redirect (`2>`, `&>`) is skipped, matching
110
+ * what the pattern pass does, since it routes a stream rather than naming
111
+ * a content target.
112
+ *
113
+ * An editor's script is reported alongside its file, because telling one
114
+ * from the other means knowing whether this `sed` is the BSD or the GNU
115
+ * one. A script cannot name tracked code, so including it costs nothing,
116
+ * whereas missing the file was the whole defect.
117
+ */
118
+ function modelledTargets(command) {
119
+ const line = tokenize(command);
120
+ const found = [];
121
+ for (const simple of line.commands) {
122
+ for (const redirect of simple.redirects) {
123
+ if (!redirect.target)
124
+ continue;
125
+ if (/^[0-9&]/.test(redirect.operator))
126
+ continue;
127
+ found.push(unquote(redirect.target.text));
128
+ }
129
+ const argv = simple.argv.map((word) => unquote(word.text));
130
+ const name = argv[0];
131
+ if (!name)
132
+ continue;
133
+ const rest = argv.slice(1).filter((token) => !token.startsWith("-"));
134
+ if (name === "tee")
135
+ found.push(...rest);
136
+ if (/^(g?sed|perl)$/.test(name) && editsInPlace(simple.argv)) {
137
+ found.push(...rest);
138
+ }
139
+ }
140
+ return found;
141
+ }
142
+ /** Whether an editor invocation carries the in-place flag. */
143
+ function editsInPlace(argv) {
144
+ return argv.some((word) => {
145
+ const text = unquote(word.text);
146
+ return text === "-i" || text.startsWith("-i");
147
+ });
148
+ }
149
+ /**
150
+ * The variables a command assigns to itself, last assignment winning.
151
+ *
152
+ * Only the literal `NAME=value` form, which is what a command writing to
153
+ * a long path actually uses. A value built from an earlier variable is
154
+ * expanded against what is known so far, so `A=/tmp; B=$A/x` resolves.
155
+ */
156
+ function assignmentsIn(skeleton, command) {
157
+ const known = new Map();
158
+ const record = (name, raw) => {
159
+ if (!name)
160
+ return;
161
+ const value = expand(unquote(raw), known);
162
+ if (value !== undefined)
163
+ known.set(name, value);
164
+ };
165
+ // The model first, because it keeps a quoted value. `Q="/tmp/q"` reaches
166
+ // the skeleton as `Q=""`, so reading only that lost exactly the paths
167
+ // long enough to be worth a variable.
168
+ for (const simple of tokenize(command).commands) {
169
+ for (const word of simple.assignments) {
170
+ const at = word.text.indexOf("=");
171
+ if (at < 0)
172
+ continue;
173
+ record(word.text.slice(0, at), word.text.slice(at + 1));
174
+ }
175
+ }
176
+ for (const match of skeleton.matchAll(/(?:^|[;&|]|\s)([A-Za-z_][A-Za-z0-9_]*)=([^\s;&|<>]*)/g)) {
177
+ record(match[1], match[2] ?? "");
178
+ }
179
+ return known;
180
+ }
181
+ /**
182
+ * A token with its variables filled in, or undefined when one of them is
183
+ * not something this command said.
184
+ *
185
+ * Both spellings, `$NAME` and `${NAME}`. A command substitution is never
186
+ * expanded: what it produces is not knowable from the text.
187
+ */
188
+ function expand(token, known) {
189
+ if (!token.includes("$"))
190
+ return token;
191
+ if (token.includes("$("))
192
+ return undefined;
193
+ const filled = token.replace(/\$\{([A-Za-z_][A-Za-z0-9_]*)\}|\$([A-Za-z_][A-Za-z0-9_]*)/g, (whole, braced, bare) => known.get(braced ?? bare) ?? whole);
194
+ return filled.includes("$") ? undefined : filled;
195
+ }
196
+ /**
197
+ * Classify a bash command after stripping non-executable content,
198
+ * so quoted literals and heredoc bodies cannot raise a false
199
+ * positive.
200
+ */
201
+ export function classifyBashWrite(command) {
202
+ const skeleton = stripShellData(stripHeredocBodies(command));
203
+ if (GIT_MUTATING.test(skeleton))
204
+ return "git-mutating";
205
+ if (BASH_WRITE_PATTERNS.some((rx) => rx.test(skeleton)))
206
+ return "bash-write";
207
+ return "read-only";
208
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Shared date helpers for the quest workflow.
3
+ *
4
+ * Every quest write that stamps an `updated` field, every
5
+ * Journey bullet, every document's first scaffolded
6
+ * `updated` value asks the same question: what is today in
7
+ * YYYY-MM-DD form, using the local time zone? Put the
8
+ * answer here once.
9
+ *
10
+ * `now` is injectable so callers under test can pin the
11
+ * date stamp without monkey-patching `Date`.
12
+ */
13
+ /** YYYY-MM-DD in the local time zone. */
14
+ export declare function nowYmd(now?: () => Date): string;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Shared date helpers for the quest workflow.
3
+ *
4
+ * Every quest write that stamps an `updated` field, every
5
+ * Journey bullet, every document's first scaffolded
6
+ * `updated` value asks the same question: what is today in
7
+ * YYYY-MM-DD form, using the local time zone? Put the
8
+ * answer here once.
9
+ *
10
+ * `now` is injectable so callers under test can pin the
11
+ * date stamp without monkey-patching `Date`.
12
+ */
13
+ /** YYYY-MM-DD in the local time zone. */
14
+ export function nowYmd(now = () => new Date()) {
15
+ const d = now();
16
+ const y = d.getFullYear();
17
+ const m = String(d.getMonth() + 1).padStart(2, "0");
18
+ const day = String(d.getDate()).padStart(2, "0");
19
+ return `${y}-${m}-${day}`;
20
+ }
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Quest discovery: walk a quest tree on disk and build an
3
+ * in-memory index.
4
+ *
5
+ * Canonical disk layout (within `questsRoot`):
6
+ *
7
+ * QEST-20260603-AAA111/
8
+ * README.md
9
+ * plans/PLAN-20260603-BBB222.md
10
+ * research/RSCH-20260605-CCC333.md
11
+ * briefs/BRIF-20260606-EEE555.md
12
+ * reports/RPRT-20260607-FFF666.md
13
+ * QEST-20260610-DDD444/ (subquest of AAA111,
14
+ * README.md parent: QEST-...-AAA111
15
+ * lives flat at the
16
+ * quests root, not
17
+ * nested in its
18
+ * parent's directory)
19
+ *
20
+ * All quests live as immediate children of `questsRoot`.
21
+ * Hierarchy is expressed by the `parent:` front-matter
22
+ * field on each quest's README, not by directory nesting.
23
+ * Documents (plans, research, briefs, reports) live inside
24
+ * their owning quest's kind subdirectory (`plans/`,
25
+ * `research/`, `briefs/`, `reports/`).
26
+ *
27
+ * Discovery enforces these invariants. Two drift patterns
28
+ * are surfaced as `DiscoveryError` and the offending entry
29
+ * is skipped:
30
+ *
31
+ * - a `QEST-*` directory found inside another quest
32
+ * - a `PLAN-/RSCH-/BRIF-/RPRT-*.md` file at a quest's root
33
+ * instead of in its kind subdirectory
34
+ *
35
+ * Free-form subdirectories under a quest (`runs/`,
36
+ * `tools/`, `workloads/`, etc.) are not walked. They're
37
+ * surfaced only via the quest's own body references.
38
+ */
39
+ import type { QuestDoc, QuestDocumentDoc } from "../../quest/types.js";
40
+ /** A single quest entry in the index. */
41
+ export interface QuestEntry {
42
+ dir: string;
43
+ doc: QuestDoc;
44
+ /** Documents inside this quest's directory (not its subquests). */
45
+ documents: QuestDocumentEntry[];
46
+ }
47
+ /** A document (plan/research/brief/report) under a quest. */
48
+ export interface QuestDocumentEntry {
49
+ path: string;
50
+ doc: QuestDocumentDoc;
51
+ }
52
+ /** The whole tree. */
53
+ export interface QuestIndex {
54
+ /** Every discovered quest by id. */
55
+ quests: Map<string, QuestEntry>;
56
+ /**
57
+ * Parent-to-children adjacency. The empty key `""`
58
+ * holds top-level quests (those whose `parent` is
59
+ * null).
60
+ */
61
+ children: Map<string, string[]>;
62
+ }
63
+ /**
64
+ * The ranks of every quest sharing a parent and priority bucket (a
65
+ * sibling set), optionally excluding one id. Callers pair this with
66
+ * `nextRank` to place a new or moved quest at the next free rank in
67
+ * its group rather than colliding at rank 1.
68
+ */
69
+ export declare function siblingRanks(index: QuestIndex, parent: string | null, priority: string, excludeId?: string): number[];
70
+ interface DiscoveryError {
71
+ path: string;
72
+ message: string;
73
+ }
74
+ /** Result of a discovery walk. */
75
+ export interface DiscoveryResult {
76
+ index: QuestIndex;
77
+ errors: DiscoveryError[];
78
+ }
79
+ /**
80
+ * Drop the discovery memo. Tests call this between runs; write
81
+ * paths do not need it because the signature catches their
82
+ * changes on the next read.
83
+ */
84
+ export declare function clearDiscoveryCache(): void;
85
+ /**
86
+ * Walk `questsRoot` and build the index, memoized per root. The
87
+ * walk re-parses every README and document, which is the costly
88
+ * part; this caches the result behind a cheap mtime-and-size
89
+ * signature so repeated read verbs in a session do not re-parse
90
+ * an unchanged tree. The signature recomputes on every call (a
91
+ * directory traversal plus stats, no file reads), so any change
92
+ * to a README, a document, or the set of quests invalidates the
93
+ * cache on the next read.
94
+ */
95
+ export declare function discoverQuests(questsRoot: string): DiscoveryResult;
96
+ export {};