@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,521 @@
1
+ /**
2
+ * One language server, spawned and supervised over stdio.
3
+ *
4
+ * Owns the JSON-RPC connection, the initialize handshake and
5
+ * the open-document set, and pulls diagnostics on demand.
6
+ * Positions cross the boundary here: the tool's
7
+ * byte columns convert to LSP's UTF-16 columns on the way in
8
+ * and back on the way out.
9
+ */
10
+ import { spawn } from "node:child_process";
11
+ import { readFileSync, writeFileSync } from "node:fs";
12
+ import { basename } from "node:path";
13
+ import { createMessageConnection, StreamMessageReader, StreamMessageWriter, } from "vscode-jsonrpc/node";
14
+ import { CodeActionRequest, ConfigurationRequest, DefinitionRequest, DidChangeTextDocumentNotification, DidOpenTextDocumentNotification, DocumentDiagnosticReportKind, DocumentDiagnosticRequest, DocumentSymbolRequest, HoverRequest, InitializedNotification, InitializeRequest, PublishDiagnosticsNotification, ReferencesRequest, RegistrationRequest, RenameRequest, UnregistrationRequest, WorkDoneProgressCreateRequest, WorkspaceFoldersRequest, WorkspaceSymbolRequest, } from "vscode-languageserver-protocol";
15
+ import { applyProtocolEdits, fileToUri, fromProtocolRange, languageIdFor, toLines, toProtocolPosition, uriToFile, } from "./document.js";
16
+ /**
17
+ * Client capabilities advertised at initialize. A server may
18
+ * report diagnostics two ways: TypeScript 7's native LSP answers
19
+ * them on demand (pull), while tsserver-based and many other
20
+ * servers push them after a document opens. We advertise both so
21
+ * the backend stays general, and it picks the mode per server
22
+ * from the initialize response. The native server also drives
23
+ * the client with dynamic registration and workspace queries, so
24
+ * the configuration, workspaceFolders and workDoneProgress
25
+ * capabilities are load-bearing, not decorative.
26
+ */
27
+ const CLIENT_CAPABILITIES = {
28
+ textDocument: {
29
+ synchronization: { didSave: true, dynamicRegistration: true },
30
+ diagnostic: { dynamicRegistration: true },
31
+ publishDiagnostics: { relatedInformation: true },
32
+ definition: { linkSupport: true },
33
+ references: {},
34
+ hover: { contentFormat: ["markdown", "plaintext"] },
35
+ documentSymbol: { hierarchicalDocumentSymbolSupport: true },
36
+ rename: { prepareSupport: true },
37
+ codeAction: {},
38
+ },
39
+ workspace: {
40
+ workspaceEdit: { documentChanges: true },
41
+ configuration: true,
42
+ workspaceFolders: true,
43
+ didChangeConfiguration: { dynamicRegistration: true },
44
+ },
45
+ window: { workDoneProgress: true },
46
+ };
47
+ /** How long a cold initialize may take before we give up. */
48
+ const WARMUP_TIMEOUT_MS = 15_000;
49
+ /** Quiet window after the last diagnostics publish before we read them. */
50
+ const DIAGNOSTICS_SETTLE_MS = 300;
51
+ /** Hard cap on waiting for a document's diagnostics. Generous
52
+ * because it also bounds the first request against a cold,
53
+ * large project whose program is still building. */
54
+ const DIAGNOSTICS_TIMEOUT_MS = 20_000;
55
+ const SEVERITY = {
56
+ 1: "error",
57
+ 2: "warning",
58
+ 3: "information",
59
+ 4: "hint",
60
+ };
61
+ /** A live server connection rooted at one project directory. */
62
+ export class StandaloneServer {
63
+ serverName;
64
+ root;
65
+ child;
66
+ connection;
67
+ openDocs = new Set();
68
+ lineCache = new Map();
69
+ diagnostics = new Map();
70
+ diagWaiters = new Set();
71
+ // Whether the server answers pull diagnostics (textDocument/diagnostic).
72
+ // Set from the initialize response; false means it pushes instead.
73
+ pullSupported = false;
74
+ version = 0;
75
+ constructor(serverName, root, child, connection) {
76
+ this.serverName = serverName;
77
+ this.root = root;
78
+ this.child = child;
79
+ this.connection = connection;
80
+ }
81
+ /** Spawn a server, run the initialize handshake and return it ready. */
82
+ static async start(config, root, binaryPath) {
83
+ const child = spawn(binaryPath, [...config.args], {
84
+ cwd: root,
85
+ stdio: ["pipe", "pipe", "pipe"],
86
+ });
87
+ const { stdout, stdin } = child;
88
+ if (!stdout || !stdin) {
89
+ child.kill();
90
+ throw new Error(`failed to open stdio for ${config.name}`);
91
+ }
92
+ // Killing the server mid-write (on dispose) makes the jsonrpc
93
+ // writer hit EPIPE on a destroyed stream. That is expected at
94
+ // teardown, so swallow it here rather than let it surface as an
95
+ // unhandled stream error.
96
+ stdin.on("error", () => { });
97
+ stdout.on("error", () => { });
98
+ const connection = createMessageConnection(new StreamMessageReader(stdout), new StreamMessageWriter(stdin));
99
+ const server = new StandaloneServer(config.name, root, child, connection);
100
+ // Swallow transport errors (a write after the child is killed);
101
+ // they are expected during dispose and must not go unhandled.
102
+ connection.onError(() => { });
103
+ // A push-style server publishes a file's diagnostics after it
104
+ // opens; capture them so a pull-incapable server still reports.
105
+ connection.onNotification(PublishDiagnosticsNotification.type, (params) => {
106
+ server.diagnostics.set(params.uri, params.diagnostics);
107
+ for (const waiter of server.diagWaiters)
108
+ waiter(params.uri);
109
+ });
110
+ // TypeScript 7's native LSP drives the client with dynamic
111
+ // capability registration and workspace queries, and stalls until
112
+ // they are answered. Accept registration as a no-op, answer
113
+ // configuration with defaults, grant progress tokens, and report
114
+ // the resolved project root as the one workspace folder.
115
+ connection.onRequest(RegistrationRequest.type, () => undefined);
116
+ connection.onRequest(UnregistrationRequest.type, () => undefined);
117
+ connection.onRequest(ConfigurationRequest.type, (params) => params.items.map(() => ({})));
118
+ connection.onRequest(WorkDoneProgressCreateRequest.type, () => undefined);
119
+ connection.onRequest(WorkspaceFoldersRequest.type, () => [
120
+ { uri: fileToUri(root), name: basename(root) },
121
+ ]);
122
+ connection.listen();
123
+ const initResult = await withTimeout(connection.sendRequest(InitializeRequest.type, {
124
+ processId: process.pid,
125
+ rootUri: fileToUri(root),
126
+ workspaceFolders: [{ uri: fileToUri(root), name: basename(root) }],
127
+ capabilities: CLIENT_CAPABILITIES,
128
+ ...(config.initOptions
129
+ ? { initializationOptions: config.initOptions }
130
+ : {}),
131
+ }), WARMUP_TIMEOUT_MS, `initialize ${config.name}`);
132
+ // Prefer pull diagnostics when the server advertises them, and
133
+ // fall back to the pushed stream otherwise.
134
+ server.pullSupported = Boolean(initResult?.capabilities?.diagnosticProvider);
135
+ connection
136
+ .sendNotification(InitializedNotification.type, {})
137
+ .catch(() => { });
138
+ return server;
139
+ }
140
+ /** Problems the server reports against the file's current bytes. */
141
+ async diagnose(path) {
142
+ this.ensureOpen(path);
143
+ const raw = this.pullSupported
144
+ ? await this.pullDiagnostics(path)
145
+ : await this.pushedDiagnostics(path);
146
+ const lines = this.linesFor(path);
147
+ return raw.map((d) => this.toDiagnostic(path, lines, d));
148
+ }
149
+ /** Where the symbol under the target is defined. */
150
+ async definition(target) {
151
+ await this.ensureReady(target.path);
152
+ const result = await this.connection.sendRequest(DefinitionRequest.type, {
153
+ textDocument: { uri: fileToUri(target.path) },
154
+ position: toProtocolPosition(this.linesFor(target.path), target.position),
155
+ });
156
+ return this.toLocations(result);
157
+ }
158
+ /** Every reference to the symbol under the target. */
159
+ async references(target) {
160
+ await this.ensureReady(target.path);
161
+ const result = await this.connection.sendRequest(ReferencesRequest.type, {
162
+ textDocument: { uri: fileToUri(target.path) },
163
+ position: toProtocolPosition(this.linesFor(target.path), target.position),
164
+ context: { includeDeclaration: true },
165
+ });
166
+ return this.toLocations(result);
167
+ }
168
+ /** Documentation for the symbol under the target, or null. */
169
+ async hover(target) {
170
+ await this.ensureReady(target.path);
171
+ const result = await this.connection.sendRequest(HoverRequest.type, {
172
+ textDocument: { uri: fileToUri(target.path) },
173
+ position: toProtocolPosition(this.linesFor(target.path), target.position),
174
+ });
175
+ if (!result)
176
+ return null;
177
+ const contents = hoverText(result.contents);
178
+ if (!contents)
179
+ return null;
180
+ return result.range
181
+ ? {
182
+ contents,
183
+ range: fromProtocolRange(this.linesFor(target.path), result.range),
184
+ }
185
+ : { contents };
186
+ }
187
+ /** Symbols declared in one file. */
188
+ async documentSymbols(path) {
189
+ await this.ensureReady(path);
190
+ const result = await this.connection.sendRequest(DocumentSymbolRequest.type, { textDocument: { uri: fileToUri(path) } });
191
+ if (!result)
192
+ return [];
193
+ const lines = this.linesFor(path);
194
+ return result.flatMap((item) => "location" in item
195
+ ? [this.fromSymbolInformation(item)]
196
+ : this.flattenDocumentSymbol(path, lines, item));
197
+ }
198
+ /** Symbols across the project matching a query. */
199
+ async workspaceSymbols(query) {
200
+ const result = await this.connection.sendRequest(WorkspaceSymbolRequest.type, { query });
201
+ if (!result)
202
+ return [];
203
+ return result.map((item) => this.fromSymbolInformation(item));
204
+ }
205
+ /** Rename the symbol under the target and apply the edits. */
206
+ async rename(target, newName) {
207
+ await this.ensureReady(target.path);
208
+ const edit = await this.connection.sendRequest(RenameRequest.type, {
209
+ textDocument: { uri: fileToUri(target.path) },
210
+ position: toProtocolPosition(this.linesFor(target.path), target.position),
211
+ newName,
212
+ });
213
+ if (!edit)
214
+ return { changes: [] };
215
+ return this.applyWorkspaceEdit(edit);
216
+ }
217
+ /** Code actions the server offers for a file, optionally at a range. */
218
+ async codeActions(path, range) {
219
+ await this.ensureReady(path);
220
+ const lines = this.linesFor(path);
221
+ const protocolRange = range
222
+ ? {
223
+ start: toProtocolPosition(lines, range.start),
224
+ end: toProtocolPosition(lines, range.end),
225
+ }
226
+ : { start: { line: 0, character: 0 }, end: { line: 0, character: 0 } };
227
+ const result = await this.connection.sendRequest(CodeActionRequest.type, {
228
+ textDocument: { uri: fileToUri(path) },
229
+ range: protocolRange,
230
+ context: { diagnostics: [] },
231
+ });
232
+ if (!result)
233
+ return [];
234
+ return result.map((item) => ({
235
+ title: item.title,
236
+ ...("kind" in item && item.kind ? { kind: item.kind } : {}),
237
+ }));
238
+ }
239
+ /** Re-sync a document after the caller edited it, so diagnostics stay current. */
240
+ syncDocument(path, text) {
241
+ const uri = fileToUri(path);
242
+ if (!this.openDocs.has(uri)) {
243
+ this.ensureOpen(path);
244
+ return;
245
+ }
246
+ this.lineCache.set(uri, toLines(text));
247
+ this.version += 1;
248
+ this.connection
249
+ .sendNotification(DidChangeTextDocumentNotification.type, {
250
+ textDocument: { uri, version: this.version },
251
+ contentChanges: [{ text }],
252
+ })
253
+ .catch(() => { });
254
+ }
255
+ /** Release the connection and kill the server process. */
256
+ async dispose() {
257
+ try {
258
+ this.connection.dispose();
259
+ }
260
+ catch {
261
+ // The connection may already be torn down; nothing to do.
262
+ }
263
+ this.child.kill();
264
+ }
265
+ /**
266
+ * Open the target and wait for the server to finish building
267
+ * the project's program before a type-intelligence request.
268
+ * The server answers references and definition only across
269
+ * files in the loaded program. Both diagnostics modes signal
270
+ * that build: a pull resolves once the program is ready, and a
271
+ * push server publishes the file's first diagnostics then.
272
+ * Cached per file so warm requests skip the wait.
273
+ */
274
+ async ensureReady(path) {
275
+ const uri = fileToUri(path);
276
+ const alreadyOpen = this.openDocs.has(uri);
277
+ this.ensureOpen(path);
278
+ if (alreadyOpen)
279
+ return;
280
+ // Drive the program build and use its completion as the gate.
281
+ if (this.pullSupported)
282
+ await this.pullDiagnostics(path).catch(() => { });
283
+ else
284
+ await this.settleDiagnostics(uri);
285
+ }
286
+ /**
287
+ * Pull the current diagnostics for a file. TypeScript 7's native
288
+ * LSP computes them on request and resolves once the program is
289
+ * built, so this both reports problems and gates readiness.
290
+ */
291
+ async pullDiagnostics(path) {
292
+ const report = await withTimeout(this.connection.sendRequest(DocumentDiagnosticRequest.type, {
293
+ textDocument: { uri: fileToUri(path) },
294
+ }), DIAGNOSTICS_TIMEOUT_MS, `diagnostics ${path}`);
295
+ if (report?.kind === DocumentDiagnosticReportKind.Full) {
296
+ return report.items;
297
+ }
298
+ return [];
299
+ }
300
+ /** Read the diagnostics a push server published, waiting for them to settle. */
301
+ async pushedDiagnostics(path) {
302
+ const uri = fileToUri(path);
303
+ await this.settleDiagnostics(uri);
304
+ return this.diagnostics.get(uri) ?? [];
305
+ }
306
+ /**
307
+ * Resolve once a push server's diagnostics for `uri` have gone
308
+ * quiet, or the hard timeout fires. The quiet window only starts
309
+ * after the first publish, so a server slower than the window is
310
+ * still caught, while the timeout bounds one that never speaks.
311
+ */
312
+ settleDiagnostics(uri) {
313
+ return new Promise((resolve) => {
314
+ let settleTimer;
315
+ let done = false;
316
+ const finish = () => {
317
+ if (done)
318
+ return;
319
+ done = true;
320
+ clearTimeout(settleTimer);
321
+ clearTimeout(hardTimer);
322
+ this.diagWaiters.delete(onPublish);
323
+ resolve();
324
+ };
325
+ const arm = () => {
326
+ clearTimeout(settleTimer);
327
+ settleTimer = setTimeout(finish, DIAGNOSTICS_SETTLE_MS);
328
+ };
329
+ const onPublish = (published) => {
330
+ if (published === uri)
331
+ arm();
332
+ };
333
+ const hardTimer = setTimeout(finish, DIAGNOSTICS_TIMEOUT_MS);
334
+ this.diagWaiters.add(onPublish);
335
+ if (this.diagnostics.has(uri))
336
+ arm();
337
+ });
338
+ }
339
+ ensureOpen(path) {
340
+ const uri = fileToUri(path);
341
+ if (this.openDocs.has(uri))
342
+ return;
343
+ const text = readFileSync(path, "utf8");
344
+ this.lineCache.set(uri, toLines(text));
345
+ this.version += 1;
346
+ this.openDocs.add(uri);
347
+ this.connection
348
+ .sendNotification(DidOpenTextDocumentNotification.type, {
349
+ textDocument: {
350
+ uri,
351
+ languageId: languageIdFor(path),
352
+ version: this.version,
353
+ text,
354
+ },
355
+ })
356
+ .catch(() => { });
357
+ }
358
+ linesFor(path) {
359
+ const uri = fileToUri(path);
360
+ const cached = this.lineCache.get(uri);
361
+ if (cached)
362
+ return cached;
363
+ const lines = toLines(readFileSync(path, "utf8"));
364
+ this.lineCache.set(uri, lines);
365
+ return lines;
366
+ }
367
+ toDiagnostic(path, lines, d) {
368
+ return {
369
+ path,
370
+ range: fromProtocolRange(lines, d.range),
371
+ severity: SEVERITY[d.severity ?? 1] ?? "error",
372
+ message: d.message,
373
+ ...(d.source ? { source: d.source } : {}),
374
+ ...(d.code !== undefined ? { code: String(d.code) } : {}),
375
+ };
376
+ }
377
+ /**
378
+ * Apply a protocol workspace edit to disk, updating caches
379
+ * and re-syncing open documents, and return what changed in
380
+ * tool coordinates.
381
+ */
382
+ applyWorkspaceEdit(edit) {
383
+ const byUri = new Map();
384
+ const plainEdits = (edits) => edits.flatMap((e) => typeof e.newText === "string"
385
+ ? [{ range: e.range, newText: e.newText }]
386
+ : []);
387
+ if (edit.changes) {
388
+ for (const [uri, edits] of Object.entries(edit.changes)) {
389
+ byUri.set(uri, plainEdits(edits));
390
+ }
391
+ }
392
+ if (edit.documentChanges) {
393
+ for (const change of edit.documentChanges) {
394
+ if ("textDocument" in change && "edits" in change) {
395
+ byUri.set(change.textDocument.uri, plainEdits(change.edits));
396
+ }
397
+ }
398
+ }
399
+ const changes = [];
400
+ for (const [uri, edits] of byUri) {
401
+ const path = uriToFile(uri);
402
+ const original = readFileSync(path, "utf8");
403
+ const updated = applyProtocolEdits(original, edits);
404
+ writeFileSync(path, updated);
405
+ const lines = toLines(original);
406
+ changes.push({
407
+ path,
408
+ edits: edits.map((e) => ({
409
+ range: fromProtocolRange(lines, e.range),
410
+ newText: e.newText,
411
+ })),
412
+ });
413
+ // Keep the server in step with what we just wrote.
414
+ this.syncDocument(path, updated);
415
+ }
416
+ return { changes };
417
+ }
418
+ fromSymbolInformation(item) {
419
+ const location = item.location;
420
+ const path = uriToFile(location.uri);
421
+ // A WorkspaceSymbol may carry only a uri, without a range.
422
+ const range = "range" in location
423
+ ? fromProtocolRange(this.linesFor(path), location.range)
424
+ : {
425
+ start: { line: 1, character: 0 },
426
+ end: { line: 1, character: 0 },
427
+ };
428
+ return {
429
+ name: item.name,
430
+ kind: symbolKindName(item.kind),
431
+ location: { path, range },
432
+ ...(item.containerName ? { containerName: item.containerName } : {}),
433
+ };
434
+ }
435
+ flattenDocumentSymbol(path, lines, symbol, container) {
436
+ const self = {
437
+ name: symbol.name,
438
+ kind: symbolKindName(symbol.kind),
439
+ location: { path, range: fromProtocolRange(lines, symbol.range) },
440
+ ...(container ? { containerName: container } : {}),
441
+ };
442
+ const children = (symbol.children ?? []).flatMap((child) => this.flattenDocumentSymbol(path, lines, child, symbol.name));
443
+ return [self, ...children];
444
+ }
445
+ toLocations(result) {
446
+ if (!result)
447
+ return [];
448
+ const array = Array.isArray(result) ? result : [result];
449
+ return array.map((item) => {
450
+ if ("targetUri" in item) {
451
+ const path = uriToFile(item.targetUri);
452
+ return {
453
+ path,
454
+ range: fromProtocolRange(this.linesFor(path), item.targetRange),
455
+ };
456
+ }
457
+ const path = uriToFile(item.uri);
458
+ return {
459
+ path,
460
+ range: fromProtocolRange(this.linesFor(path), item.range),
461
+ };
462
+ });
463
+ }
464
+ }
465
+ function hoverText(contents) {
466
+ if (contents === null || contents === undefined)
467
+ return "";
468
+ if (typeof contents === "string")
469
+ return contents;
470
+ if (Array.isArray(contents))
471
+ return contents.map(hoverText).join("\n");
472
+ if (typeof contents === "object") {
473
+ const value = contents.value;
474
+ if (typeof value === "string")
475
+ return value;
476
+ }
477
+ return "";
478
+ }
479
+ const SYMBOL_KINDS = {
480
+ 1: "file",
481
+ 2: "module",
482
+ 3: "namespace",
483
+ 4: "package",
484
+ 5: "class",
485
+ 6: "method",
486
+ 7: "property",
487
+ 8: "field",
488
+ 9: "constructor",
489
+ 10: "enum",
490
+ 11: "interface",
491
+ 12: "function",
492
+ 13: "variable",
493
+ 14: "constant",
494
+ 15: "string",
495
+ 16: "number",
496
+ 17: "boolean",
497
+ 18: "array",
498
+ 19: "object",
499
+ 20: "key",
500
+ 21: "null",
501
+ 22: "enum-member",
502
+ 23: "struct",
503
+ 24: "event",
504
+ 25: "operator",
505
+ 26: "type-parameter",
506
+ };
507
+ function symbolKindName(kind) {
508
+ return SYMBOL_KINDS[kind] ?? "symbol";
509
+ }
510
+ function withTimeout(promise, ms, label) {
511
+ return new Promise((resolve, reject) => {
512
+ const timer = setTimeout(() => reject(new Error(`${label} timed out after ${ms}ms`)), ms);
513
+ promise.then((value) => {
514
+ clearTimeout(timer);
515
+ resolve(value);
516
+ }, (err) => {
517
+ clearTimeout(timer);
518
+ reject(err);
519
+ });
520
+ });
521
+ }
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Backend-agnostic surface for semantic code intelligence.
3
+ *
4
+ * One tool speaks these shapes; a standalone backend that spawns
5
+ * language servers itself and an editor-forwarding backend both
6
+ * normalize to them, so a caller cannot tell which answered.
7
+ *
8
+ * Positions follow the convention pi's own LSP integration
9
+ * established: a 1-indexed line and a 0-indexed UTF-8 byte
10
+ * column. The LSP protocol itself is 0-indexed and counts UTF-16
11
+ * code units, so a backend translates at its edge.
12
+ */
13
+ /** A point in a file: 1-indexed line, 0-indexed UTF-8 byte column. */
14
+ export interface LspPosition {
15
+ readonly line: number;
16
+ readonly character: number;
17
+ }
18
+ /** A half-open span between two positions. */
19
+ export interface LspRange {
20
+ readonly start: LspPosition;
21
+ readonly end: LspPosition;
22
+ }
23
+ /** A range within a specific file. */
24
+ export interface LspLocation {
25
+ readonly path: string;
26
+ readonly range: LspRange;
27
+ }
28
+ /** Diagnostic severity, normalized to words rather than LSP's integers. */
29
+ export type DiagnosticSeverity = "error" | "warning" | "information" | "hint";
30
+ /** One problem the server reported against a file. */
31
+ export interface Diagnostic {
32
+ readonly path: string;
33
+ readonly range: LspRange;
34
+ readonly severity: DiagnosticSeverity;
35
+ readonly message: string;
36
+ readonly source?: string;
37
+ readonly code?: string;
38
+ }
39
+ /** A file path plus the position an operation targets. */
40
+ export interface LspTarget {
41
+ readonly path: string;
42
+ readonly position: LspPosition;
43
+ }
44
+ /** A single text replacement within a file. */
45
+ export interface LspTextEdit {
46
+ readonly range: LspRange;
47
+ readonly newText: string;
48
+ }
49
+ /** Edits grouped by the file they touch. */
50
+ export interface WorkspaceEdit {
51
+ readonly changes: ReadonlyArray<{
52
+ readonly path: string;
53
+ readonly edits: readonly LspTextEdit[];
54
+ }>;
55
+ }
56
+ /** A symbol the server knows about, with where it lives. */
57
+ export interface SymbolInfo {
58
+ readonly name: string;
59
+ readonly kind: string;
60
+ readonly location: LspLocation;
61
+ readonly containerName?: string;
62
+ }
63
+ /** Hover documentation for a position, as plain text or markdown. */
64
+ export interface HoverInfo {
65
+ readonly contents: string;
66
+ readonly range?: LspRange;
67
+ }
68
+ /** A code action the server offers at a position or range. */
69
+ export interface CodeAction {
70
+ readonly title: string;
71
+ readonly kind?: string;
72
+ }
73
+ /**
74
+ * A registered backend and the rule for when it may serve.
75
+ * Lower priority resolves first, so a downstream backend can
76
+ * register below the standalone default to take over when its
77
+ * own precondition is met.
78
+ */
79
+ export interface LspBackendEntry {
80
+ /** Stable backend name. */
81
+ readonly name: string;
82
+ /** Lower numbers resolve first; the standalone default sits at 100. */
83
+ readonly priority: number;
84
+ /** Whether this backend can serve right now. */
85
+ isAvailable(): boolean;
86
+ /** The backend itself. */
87
+ readonly backend: LspBackend;
88
+ }
89
+ /**
90
+ * The operations a backend serves. The foundation ships
91
+ * diagnostics, definition and references; write operations
92
+ * (rename, hover, symbols, code actions) widen this contract
93
+ * as they land.
94
+ */
95
+ export interface LspBackend {
96
+ /** Stable name used in backend selection and messages. */
97
+ readonly name: string;
98
+ /** Problems the server reports against a file's current bytes. */
99
+ diagnostics(path: string): Promise<readonly Diagnostic[]>;
100
+ /** Where the symbol under the target is defined. */
101
+ definition(target: LspTarget): Promise<readonly LspLocation[]>;
102
+ /** Every reference to the symbol under the target. */
103
+ references(target: LspTarget): Promise<readonly LspLocation[]>;
104
+ /** Documentation for the symbol under the target, or null. */
105
+ hover(target: LspTarget): Promise<HoverInfo | null>;
106
+ /** Symbols declared in one file. */
107
+ documentSymbols(path: string): Promise<readonly SymbolInfo[]>;
108
+ /** Symbols across the project matching a query. */
109
+ workspaceSymbols(query: string): Promise<readonly SymbolInfo[]>;
110
+ /**
111
+ * Rename the symbol under the target across its root and
112
+ * apply the edits, returning what changed.
113
+ */
114
+ rename(target: LspTarget, newName: string): Promise<WorkspaceEdit>;
115
+ /** Code actions the server offers for a file, optionally at a range. */
116
+ codeActions(path: string, range?: LspRange): Promise<readonly CodeAction[]>;
117
+ /** Release every server the backend holds open. */
118
+ dispose(): Promise<void>;
119
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Backend-agnostic surface for semantic code intelligence.
3
+ *
4
+ * One tool speaks these shapes; a standalone backend that spawns
5
+ * language servers itself and an editor-forwarding backend both
6
+ * normalize to them, so a caller cannot tell which answered.
7
+ *
8
+ * Positions follow the convention pi's own LSP integration
9
+ * established: a 1-indexed line and a 0-indexed UTF-8 byte
10
+ * column. The LSP protocol itself is 0-indexed and counts UTF-16
11
+ * code units, so a backend translates at its edge.
12
+ */
13
+ export {};
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Thin promise wrapper over the callback-based sqlite3 driver.
3
+ * sqlite3 is a native module, so it is lazy-imported on first
4
+ * open; callers speak promises and never touch the driver
5
+ * directly.
6
+ */
7
+ /** A promise-speaking handle to a SQLite database. */
8
+ export interface Db {
9
+ run(sql: string, params?: readonly unknown[]): Promise<void>;
10
+ all<T>(sql: string, params?: readonly unknown[]): Promise<T[]>;
11
+ exec(sql: string): Promise<void>;
12
+ close(): Promise<void>;
13
+ }
14
+ /** Open a SQLite database at the given path (`:memory:` for tests). */
15
+ export declare function openDb(dbPath: string): Promise<Db>;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Thin promise wrapper over the callback-based sqlite3 driver.
3
+ * sqlite3 is a native module, so it is lazy-imported on first
4
+ * open; callers speak promises and never touch the driver
5
+ * directly.
6
+ */
7
+ /** Open a SQLite database at the given path (`:memory:` for tests). */
8
+ export async function openDb(dbPath) {
9
+ const sqlite3 = await import("sqlite3");
10
+ const database = new sqlite3.default.Database(dbPath);
11
+ return {
12
+ run: (sql, params = []) => new Promise((resolve, reject) => {
13
+ database.run(sql, params, (err) => (err ? reject(err) : resolve()));
14
+ }),
15
+ all: (sql, params = []) => new Promise((resolve, reject) => {
16
+ database.all(sql, params, (err, rows) => err ? reject(err) : resolve(rows));
17
+ }),
18
+ exec: (sql) => new Promise((resolve, reject) => {
19
+ database.exec(sql, (err) => (err ? reject(err) : resolve()));
20
+ }),
21
+ close: () => new Promise((resolve, reject) => {
22
+ database.close((err) => (err ? reject(err) : resolve()));
23
+ }),
24
+ };
25
+ }