@cavelang/cli 0.35.0 → 0.36.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 (327) hide show
  1. package/README.md +224 -12
  2. package/dist/internal/act/action.js +2 -1
  3. package/dist/internal/act/action.js.map +1 -1
  4. package/dist/internal/act/declare.d.ts.map +1 -1
  5. package/dist/internal/act/declare.js +82 -53
  6. package/dist/internal/act/declare.js.map +1 -1
  7. package/dist/internal/act/engine.d.ts +4 -3
  8. package/dist/internal/act/engine.d.ts.map +1 -1
  9. package/dist/internal/act/engine.js +121 -32
  10. package/dist/internal/act/engine.js.map +1 -1
  11. package/dist/internal/automate/cancellation.d.ts +3 -0
  12. package/dist/internal/automate/cancellation.d.ts.map +1 -0
  13. package/dist/internal/automate/cancellation.js +38 -0
  14. package/dist/internal/automate/cancellation.js.map +1 -0
  15. package/dist/internal/automate/declare.d.ts.map +1 -1
  16. package/dist/internal/automate/declare.js +49 -24
  17. package/dist/internal/automate/declare.js.map +1 -1
  18. package/dist/internal/automate/engine.d.ts +7 -3
  19. package/dist/internal/automate/engine.d.ts.map +1 -1
  20. package/dist/internal/automate/engine.js +196 -93
  21. package/dist/internal/automate/engine.js.map +1 -1
  22. package/dist/internal/automate/error-message.d.ts +3 -0
  23. package/dist/internal/automate/error-message.d.ts.map +1 -0
  24. package/dist/internal/automate/error-message.js +10 -0
  25. package/dist/internal/automate/error-message.js.map +1 -0
  26. package/dist/internal/automate/main.d.ts.map +1 -1
  27. package/dist/internal/automate/main.js +238 -35
  28. package/dist/internal/automate/main.js.map +1 -1
  29. package/dist/internal/automate/options.d.ts +4 -0
  30. package/dist/internal/automate/options.d.ts.map +1 -0
  31. package/dist/internal/automate/options.js +19 -0
  32. package/dist/internal/automate/options.js.map +1 -0
  33. package/dist/internal/connect/declared.d.ts +6 -27
  34. package/dist/internal/connect/declared.d.ts.map +1 -1
  35. package/dist/internal/connect/declared.js +165 -76
  36. package/dist/internal/connect/declared.js.map +1 -1
  37. package/dist/internal/connect/error-message.d.ts +3 -0
  38. package/dist/internal/connect/error-message.d.ts.map +1 -0
  39. package/dist/internal/connect/error-message.js +10 -0
  40. package/dist/internal/connect/error-message.js.map +1 -0
  41. package/dist/internal/connect/federation.d.ts +9 -0
  42. package/dist/internal/connect/federation.d.ts.map +1 -0
  43. package/dist/internal/connect/federation.js +19 -0
  44. package/dist/internal/connect/federation.js.map +1 -0
  45. package/dist/internal/connect/fetch-failure.d.ts +3 -0
  46. package/dist/internal/connect/fetch-failure.d.ts.map +1 -0
  47. package/dist/internal/connect/fetch-failure.js +36 -0
  48. package/dist/internal/connect/fetch-failure.js.map +1 -0
  49. package/dist/internal/connect/main.d.ts +1 -0
  50. package/dist/internal/connect/main.d.ts.map +1 -1
  51. package/dist/internal/connect/main.js +288 -114
  52. package/dist/internal/connect/main.js.map +1 -1
  53. package/dist/internal/connect/options.d.ts +3 -0
  54. package/dist/internal/connect/options.d.ts.map +1 -0
  55. package/dist/internal/connect/options.js +9 -0
  56. package/dist/internal/connect/options.js.map +1 -0
  57. package/dist/internal/connect/records.d.ts +3 -0
  58. package/dist/internal/connect/records.d.ts.map +1 -0
  59. package/dist/internal/connect/records.js +21 -0
  60. package/dist/internal/connect/records.js.map +1 -0
  61. package/dist/internal/connect/run.d.ts +1 -18
  62. package/dist/internal/connect/run.d.ts.map +1 -1
  63. package/dist/internal/connect/run.js +115 -55
  64. package/dist/internal/connect/run.js.map +1 -1
  65. package/dist/internal/connect/source.d.ts +3 -1
  66. package/dist/internal/connect/source.d.ts.map +1 -1
  67. package/dist/internal/connect/source.js +226 -47
  68. package/dist/internal/connect/source.js.map +1 -1
  69. package/dist/internal/connect/template.d.ts +2 -2
  70. package/dist/internal/connect/template.d.ts.map +1 -1
  71. package/dist/internal/connect/template.js +25 -9
  72. package/dist/internal/connect/template.js.map +1 -1
  73. package/dist/internal/connect/utf8.d.ts +3 -0
  74. package/dist/internal/connect/utf8.d.ts.map +1 -0
  75. package/dist/internal/connect/utf8.js +12 -0
  76. package/dist/internal/connect/utf8.js.map +1 -0
  77. package/dist/internal/eval/cleanup.d.ts +5 -0
  78. package/dist/internal/eval/cleanup.d.ts.map +1 -0
  79. package/dist/internal/eval/cleanup.js +50 -0
  80. package/dist/internal/eval/cleanup.js.map +1 -0
  81. package/dist/internal/eval/error-message.d.ts +3 -0
  82. package/dist/internal/eval/error-message.d.ts.map +1 -0
  83. package/dist/internal/eval/error-message.js +10 -0
  84. package/dist/internal/eval/error-message.js.map +1 -0
  85. package/dist/internal/eval/judge.d.ts.map +1 -1
  86. package/dist/internal/eval/judge.js +3 -31
  87. package/dist/internal/eval/judge.js.map +1 -1
  88. package/dist/internal/eval/loop.d.ts.map +1 -1
  89. package/dist/internal/eval/loop.js +18 -4
  90. package/dist/internal/eval/loop.js.map +1 -1
  91. package/dist/internal/eval/main.d.ts.map +1 -1
  92. package/dist/internal/eval/main.js +22 -10
  93. package/dist/internal/eval/main.js.map +1 -1
  94. package/dist/internal/eval/options.d.ts +6 -0
  95. package/dist/internal/eval/options.d.ts.map +1 -0
  96. package/dist/internal/eval/options.js +31 -0
  97. package/dist/internal/eval/options.js.map +1 -0
  98. package/dist/internal/eval/queries.d.ts.map +1 -1
  99. package/dist/internal/eval/queries.js +9 -6
  100. package/dist/internal/eval/queries.js.map +1 -1
  101. package/dist/internal/eval/run.d.ts.map +1 -1
  102. package/dist/internal/eval/run.js +112 -24
  103. package/dist/internal/eval/run.js.map +1 -1
  104. package/dist/internal/eval/score.d.ts.map +1 -1
  105. package/dist/internal/eval/score.js +9 -2
  106. package/dist/internal/eval/score.js.map +1 -1
  107. package/dist/internal/eval/suite.d.ts.map +1 -1
  108. package/dist/internal/eval/suite.js +14 -2
  109. package/dist/internal/eval/suite.js.map +1 -1
  110. package/dist/internal/ingest/cleanup.d.ts +5 -0
  111. package/dist/internal/ingest/cleanup.d.ts.map +1 -0
  112. package/dist/internal/ingest/cleanup.js +50 -0
  113. package/dist/internal/ingest/cleanup.js.map +1 -0
  114. package/dist/internal/ingest/content.d.ts +6 -0
  115. package/dist/internal/ingest/content.d.ts.map +1 -0
  116. package/dist/internal/ingest/content.js +25 -0
  117. package/dist/internal/ingest/content.js.map +1 -0
  118. package/dist/internal/ingest/context.d.ts.map +1 -1
  119. package/dist/internal/ingest/context.js +25 -7
  120. package/dist/internal/ingest/context.js.map +1 -1
  121. package/dist/internal/ingest/error-message.d.ts +3 -0
  122. package/dist/internal/ingest/error-message.d.ts.map +1 -0
  123. package/dist/internal/ingest/error-message.js +10 -0
  124. package/dist/internal/ingest/error-message.js.map +1 -0
  125. package/dist/internal/ingest/files.d.ts +4 -12
  126. package/dist/internal/ingest/files.d.ts.map +1 -1
  127. package/dist/internal/ingest/files.js +22 -10
  128. package/dist/internal/ingest/files.js.map +1 -1
  129. package/dist/internal/ingest/main.d.ts.map +1 -1
  130. package/dist/internal/ingest/main.js +46 -16
  131. package/dist/internal/ingest/main.js.map +1 -1
  132. package/dist/internal/ingest/options.d.ts +6 -0
  133. package/dist/internal/ingest/options.d.ts.map +1 -0
  134. package/dist/internal/ingest/options.js +27 -0
  135. package/dist/internal/ingest/options.js.map +1 -0
  136. package/dist/internal/ingest/prompt.d.ts.map +1 -1
  137. package/dist/internal/ingest/prompt.js +14 -10
  138. package/dist/internal/ingest/prompt.js.map +1 -1
  139. package/dist/internal/ingest/run.d.ts +9 -2
  140. package/dist/internal/ingest/run.d.ts.map +1 -1
  141. package/dist/internal/ingest/run.js +206 -62
  142. package/dist/internal/ingest/run.js.map +1 -1
  143. package/dist/internal/ingest/timeout.d.ts +3 -0
  144. package/dist/internal/ingest/timeout.d.ts.map +1 -0
  145. package/dist/internal/ingest/timeout.js +14 -0
  146. package/dist/internal/ingest/timeout.js.map +1 -0
  147. package/dist/internal/ingest/web.d.ts +2 -11
  148. package/dist/internal/ingest/web.d.ts.map +1 -1
  149. package/dist/internal/ingest/web.js +131 -25
  150. package/dist/internal/ingest/web.js.map +1 -1
  151. package/dist/internal/loop/budgets.d.ts +3 -0
  152. package/dist/internal/loop/budgets.d.ts.map +1 -0
  153. package/dist/internal/loop/budgets.js +10 -0
  154. package/dist/internal/loop/budgets.js.map +1 -0
  155. package/dist/internal/loop/index.d.ts +2 -0
  156. package/dist/internal/loop/index.d.ts.map +1 -1
  157. package/dist/internal/loop/index.js +2 -0
  158. package/dist/internal/loop/index.js.map +1 -1
  159. package/dist/internal/loop/json-answer.d.ts +7 -0
  160. package/dist/internal/loop/json-answer.d.ts.map +1 -0
  161. package/dist/internal/loop/json-answer.js +79 -0
  162. package/dist/internal/loop/json-answer.js.map +1 -0
  163. package/dist/internal/loop/json-spans.d.ts +3 -0
  164. package/dist/internal/loop/json-spans.d.ts.map +1 -0
  165. package/dist/internal/loop/json-spans.js +88 -0
  166. package/dist/internal/loop/json-spans.js.map +1 -0
  167. package/dist/internal/loop/llm.d.ts +3 -2
  168. package/dist/internal/loop/llm.d.ts.map +1 -1
  169. package/dist/internal/loop/llm.js +115 -32
  170. package/dist/internal/loop/llm.js.map +1 -1
  171. package/dist/internal/loop/process.d.ts +3 -1
  172. package/dist/internal/loop/process.d.ts.map +1 -1
  173. package/dist/internal/loop/process.js +159 -59
  174. package/dist/internal/loop/process.js.map +1 -1
  175. package/dist/internal/loop/read-snapshot.d.ts +4 -0
  176. package/dist/internal/loop/read-snapshot.d.ts.map +1 -0
  177. package/dist/internal/loop/read-snapshot.js +29 -0
  178. package/dist/internal/loop/read-snapshot.js.map +1 -0
  179. package/dist/internal/loop/reconstruct.d.ts +6 -5
  180. package/dist/internal/loop/reconstruct.d.ts.map +1 -1
  181. package/dist/internal/loop/reconstruct.js +19 -8
  182. package/dist/internal/loop/reconstruct.js.map +1 -1
  183. package/dist/internal/loop/score-settings.d.ts +5 -0
  184. package/dist/internal/loop/score-settings.d.ts.map +1 -0
  185. package/dist/internal/loop/score-settings.js +14 -0
  186. package/dist/internal/loop/score-settings.js.map +1 -0
  187. package/dist/internal/loop/sqlite.d.ts.map +1 -1
  188. package/dist/internal/loop/sqlite.js +15 -7
  189. package/dist/internal/loop/sqlite.js.map +1 -1
  190. package/dist/internal/loop/store.d.ts.map +1 -1
  191. package/dist/internal/loop/store.js +11 -7
  192. package/dist/internal/loop/store.js.map +1 -1
  193. package/dist/internal/loop/timeout.d.ts +3 -0
  194. package/dist/internal/loop/timeout.d.ts.map +1 -0
  195. package/dist/internal/loop/timeout.js +13 -0
  196. package/dist/internal/loop/timeout.js.map +1 -0
  197. package/dist/internal/mcp/error-message.d.ts +3 -0
  198. package/dist/internal/mcp/error-message.d.ts.map +1 -0
  199. package/dist/internal/mcp/error-message.js +10 -0
  200. package/dist/internal/mcp/error-message.js.map +1 -0
  201. package/dist/internal/mcp/main.d.ts.map +1 -1
  202. package/dist/internal/mcp/main.js +42 -27
  203. package/dist/internal/mcp/main.js.map +1 -1
  204. package/dist/internal/mcp/read-snapshot.d.ts +4 -0
  205. package/dist/internal/mcp/read-snapshot.d.ts.map +1 -0
  206. package/dist/internal/mcp/read-snapshot.js +22 -0
  207. package/dist/internal/mcp/read-snapshot.js.map +1 -0
  208. package/dist/internal/mcp/server.d.ts.map +1 -1
  209. package/dist/internal/mcp/server.js +181 -21
  210. package/dist/internal/mcp/server.js.map +1 -1
  211. package/dist/internal/mcp/source.d.ts +3 -0
  212. package/dist/internal/mcp/source.d.ts.map +1 -0
  213. package/dist/internal/mcp/source.js +13 -0
  214. package/dist/internal/mcp/source.js.map +1 -0
  215. package/dist/internal/mcp/tools.d.ts.map +1 -1
  216. package/dist/internal/mcp/tools.js +135 -72
  217. package/dist/internal/mcp/tools.js.map +1 -1
  218. package/dist/internal/rules/declarations.d.ts +6 -0
  219. package/dist/internal/rules/declarations.d.ts.map +1 -0
  220. package/dist/internal/rules/declarations.js +14 -0
  221. package/dist/internal/rules/declarations.js.map +1 -0
  222. package/dist/internal/rules/declare.d.ts.map +1 -1
  223. package/dist/internal/rules/declare.js +30 -16
  224. package/dist/internal/rules/declare.js.map +1 -1
  225. package/dist/internal/rules/engine.d.ts +8 -7
  226. package/dist/internal/rules/engine.d.ts.map +1 -1
  227. package/dist/internal/rules/engine.js +150 -44
  228. package/dist/internal/rules/engine.js.map +1 -1
  229. package/dist/internal/shape/alias-root.d.ts +3 -0
  230. package/dist/internal/shape/alias-root.d.ts.map +1 -0
  231. package/dist/internal/shape/alias-root.js +13 -0
  232. package/dist/internal/shape/alias-root.js.map +1 -0
  233. package/dist/internal/shape/check.d.ts +15 -3
  234. package/dist/internal/shape/check.d.ts.map +1 -1
  235. package/dist/internal/shape/check.js +230 -100
  236. package/dist/internal/shape/check.js.map +1 -1
  237. package/dist/internal/shape/client.d.ts.map +1 -1
  238. package/dist/internal/shape/client.js +42 -20
  239. package/dist/internal/shape/client.js.map +1 -1
  240. package/dist/internal/shape/constraints.d.ts +8 -0
  241. package/dist/internal/shape/constraints.d.ts.map +1 -0
  242. package/dist/internal/shape/constraints.js +17 -0
  243. package/dist/internal/shape/constraints.js.map +1 -0
  244. package/dist/internal/shape/edit-distance.d.ts +3 -0
  245. package/dist/internal/shape/edit-distance.d.ts.map +1 -0
  246. package/dist/internal/shape/edit-distance.js +33 -0
  247. package/dist/internal/shape/edit-distance.js.map +1 -0
  248. package/dist/internal/shape/gate.d.ts.map +1 -1
  249. package/dist/internal/shape/gate.js +0 -0
  250. package/dist/internal/shape/gate.js.map +1 -1
  251. package/dist/internal/shape/snapshot.d.ts +4 -0
  252. package/dist/internal/shape/snapshot.d.ts.map +1 -0
  253. package/dist/internal/shape/snapshot.js +20 -0
  254. package/dist/internal/shape/snapshot.js.map +1 -0
  255. package/dist/internal/shape/suggest.d.ts +8 -6
  256. package/dist/internal/shape/suggest.d.ts.map +1 -1
  257. package/dist/internal/shape/suggest.js +208 -92
  258. package/dist/internal/shape/suggest.js.map +1 -1
  259. package/dist/internal/sync/error-message.d.ts +3 -0
  260. package/dist/internal/sync/error-message.d.ts.map +1 -0
  261. package/dist/internal/sync/error-message.js +10 -0
  262. package/dist/internal/sync/error-message.js.map +1 -0
  263. package/dist/internal/sync/index.d.ts +3 -2
  264. package/dist/internal/sync/index.d.ts.map +1 -1
  265. package/dist/internal/sync/index.js +3 -2
  266. package/dist/internal/sync/index.js.map +1 -1
  267. package/dist/internal/sync/sync.d.ts +8 -5
  268. package/dist/internal/sync/sync.d.ts.map +1 -1
  269. package/dist/internal/sync/sync.js +322 -65
  270. package/dist/internal/sync/sync.js.map +1 -1
  271. package/dist/internal/view/api.d.ts +3 -1
  272. package/dist/internal/view/api.d.ts.map +1 -1
  273. package/dist/internal/view/api.js +154 -90
  274. package/dist/internal/view/api.js.map +1 -1
  275. package/dist/internal/view/error-message.d.ts +3 -0
  276. package/dist/internal/view/error-message.d.ts.map +1 -0
  277. package/dist/internal/view/error-message.js +10 -0
  278. package/dist/internal/view/error-message.js.map +1 -0
  279. package/dist/internal/view/main.d.ts.map +1 -1
  280. package/dist/internal/view/main.js +61 -8
  281. package/dist/internal/view/main.js.map +1 -1
  282. package/dist/internal/view/page.d.ts.map +1 -1
  283. package/dist/internal/view/page.js +119 -20
  284. package/dist/internal/view/page.js.map +1 -1
  285. package/dist/internal/view/report.d.ts.map +1 -1
  286. package/dist/internal/view/report.js +180 -145
  287. package/dist/internal/view/report.js.map +1 -1
  288. package/dist/internal/view/scope.d.ts +6 -2
  289. package/dist/internal/view/scope.d.ts.map +1 -1
  290. package/dist/internal/view/scope.js +107 -24
  291. package/dist/internal/view/scope.js.map +1 -1
  292. package/dist/internal/view/sensitivity.d.ts +4 -0
  293. package/dist/internal/view/sensitivity.d.ts.map +1 -0
  294. package/dist/internal/view/sensitivity.js +11 -0
  295. package/dist/internal/view/sensitivity.js.map +1 -0
  296. package/dist/internal/view/server.d.ts.map +1 -1
  297. package/dist/internal/view/server.js +57 -20
  298. package/dist/internal/view/server.js.map +1 -1
  299. package/dist/src/atomic-output.d.ts +3 -0
  300. package/dist/src/atomic-output.d.ts.map +1 -0
  301. package/dist/src/atomic-output.js +67 -0
  302. package/dist/src/atomic-output.js.map +1 -0
  303. package/dist/src/cli.d.ts +3 -2
  304. package/dist/src/cli.d.ts.map +1 -1
  305. package/dist/src/cli.js +188 -173
  306. package/dist/src/cli.js.map +1 -1
  307. package/dist/src/dispatch.d.ts.map +1 -1
  308. package/dist/src/dispatch.js +3 -2
  309. package/dist/src/dispatch.js.map +1 -1
  310. package/dist/src/doctor.d.ts.map +1 -1
  311. package/dist/src/doctor.js +178 -102
  312. package/dist/src/doctor.js.map +1 -1
  313. package/dist/src/error-message.d.ts +3 -0
  314. package/dist/src/error-message.d.ts.map +1 -0
  315. package/dist/src/error-message.js +20 -0
  316. package/dist/src/error-message.js.map +1 -0
  317. package/dist/src/hooks-config.d.ts +3 -0
  318. package/dist/src/hooks-config.d.ts.map +1 -0
  319. package/dist/src/hooks-config.js +23 -0
  320. package/dist/src/hooks-config.js.map +1 -0
  321. package/package.json +23 -20
  322. package/src/atomic-output.ts +47 -0
  323. package/src/cli.ts +170 -147
  324. package/src/dispatch.ts +3 -2
  325. package/src/doctor.ts +192 -111
  326. package/src/error-message.ts +13 -0
  327. package/src/hooks-config.ts +22 -0
@@ -20,71 +20,119 @@
20
20
  * Prompts are built lazily per batch, so the injected knowledge context
21
21
  * reflects what earlier batches recorded.
22
22
  */
23
+ import { cleanup, throwIfCancelled } from "./cleanup.js";
24
+ import { errorMessage } from "./error-message.js";
25
+ import { booleanOption, sourceList, sourcePath } from "./options.js";
23
26
  import { mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
27
+ import { decodeText, digestBytes, sourceLabel, withSourceError } from "./content.js";
24
28
  import { tmpdir } from 'node:os';
25
- import { dirname, join, resolve } from 'node:path';
29
+ import { extname, join, resolve } from 'node:path';
26
30
  import { fileURLToPath } from 'node:url';
27
31
  import * as Canonical from '@cavelang/canonical';
28
32
  import { Registry } from '@cavelang/canonical';
29
- import { open } from '@cavelang/store';
30
- import { syncDb, syncText } from '@cavelang/cli/sync';
33
+ import { backup, open } from '@cavelang/store';
34
+ import { syncDb } from '@cavelang/cli/sync';
31
35
  import { ProcessFailure, runProcess, shellCommand } from '@cavelang/cli/loop';
32
36
  import * as Files from "./files.js";
37
+ import { agentTimeoutMs } from "./timeout.js";
33
38
  import * as Web from "./web.js";
34
39
  import * as Context from "./context.js";
35
40
  import * as Prompt from "./prompt.js";
36
41
  /** Writes an MCP client configuration pointing at `cave mcp --db <db>`. */
37
42
  export const writeMcpConfig = (db, options = {}) => {
38
- const dir = options.dir ?? mkdtempSync(join(tmpdir(), 'cave-ingest-'));
39
- const server = fileURLToPath(import.meta.resolve('@cavelang/cli/mcp/bin'));
40
- const path = join(dir, 'cave-mcp.json');
41
- writeFileSync(path, `${JSON.stringify({
42
- mcpServers: {
43
- cave: {
44
- command: process.execPath,
45
- args: [server, '--db', resolve(db), ...options.noPrelude === true ? ['--no-prelude'] : []]
43
+ const noPrelude = booleanOption(options.noPrelude, 'noPrelude');
44
+ const suppliedDir = options.dir;
45
+ const dir = suppliedDir ?? mkdtempSync(join(tmpdir(), 'cave-ingest-'));
46
+ try {
47
+ // The consolidated CLI exports the MCP module; its executable is a sibling.
48
+ const mcpEntry = import.meta.resolve('@cavelang/cli/mcp');
49
+ const server = fileURLToPath(new URL(`./bin${extname(mcpEntry)}`, mcpEntry));
50
+ const path = join(dir, 'cave-mcp.json');
51
+ writeFileSync(path, `${JSON.stringify({
52
+ mcpServers: {
53
+ cave: {
54
+ command: process.execPath,
55
+ args: [server, '--db', resolve(db), ...noPrelude ? ['--no-prelude'] : []]
56
+ }
46
57
  }
47
- }
48
- }, undefined, 2)}\n`);
49
- return path;
58
+ }, undefined, 2)}\n`);
59
+ return path;
60
+ }
61
+ catch (error) {
62
+ if (suppliedDir === undefined || suppliedDir === null)
63
+ cleanup([error], () => rmSync(dir, { recursive: true, force: true }));
64
+ throw error;
65
+ }
50
66
  };
67
+ /** Path-reading agents must not certify a visibly changed selection. */
68
+ const sourceProblems = (files, cwd) => files.flatMap(file => {
69
+ if (file.content !== undefined)
70
+ return [];
71
+ try {
72
+ const current = digestBytes(readFileSync(resolve(cwd, file.path)));
73
+ return current === file.digest ? [] : [`${sourceLabel(file.path)}: source changed since selection; retry ingestion`];
74
+ }
75
+ catch (error) {
76
+ const message = errorMessage(error);
77
+ return [`${sourceLabel(file.path)}: cannot read selected source: ${sourceLabel(message)}`];
78
+ }
79
+ });
51
80
  const promptFiles = (files, embed, cwd) => files.map(file => ({
52
81
  path: file.path,
53
- // URL sources carry their extracted text and are always embedded —
54
- // the agent has no other way to read them readability-cleaned.
82
+ // Selected URL/embedded-file content must match the recorded digest.
83
+ // URL text is always embedded because agents cannot read its cleaned form.
55
84
  ...file.content !== undefined ? { content: file.content } :
56
- embed ? { content: readFileSync(resolve(cwd, file.path), 'utf8') } : {}
85
+ embed ? { content: decodeText(withSourceError(file.path, 'read source', () => readFileSync(resolve(cwd, file.path))), file.path) } : {}
57
86
  }));
58
87
  /** Builds the prompt for one batch against the store's *current* state. */
59
88
  export const promptFor = (store, files, options) => {
60
- const cwd = options.cwd ?? process.cwd();
61
- const context = Context.contextFor(store, files.map(file => file.path));
89
+ const { cwd: inputCwd, instructions, embed, mode } = options;
90
+ const cwd = inputCwd ?? process.cwd();
91
+ const selected = files.map(({ path, content }) => ({ path, content }));
92
+ const context = Context.contextFor(store, selected.map(file => file.path));
62
93
  return Prompt.buildPrompt({
63
- files: promptFiles(files, options.embed === true, cwd),
64
- ...options.instructions === undefined ? {} : { instructions: Prompt.readInstructions(options.instructions) },
94
+ files: promptFiles(selected, embed === true, cwd),
95
+ ...instructions === undefined ? {} : { instructions: Prompt.readInstructions(instructions) },
65
96
  ...context === undefined ? {} : { context },
66
- mode: options.mode ?? 'mcp'
97
+ mode: mode ?? 'mcp'
67
98
  });
68
99
  };
69
100
  /** Selects and batches the sources to process — file globs, literal paths and URLs. */
70
101
  export const selectBatches = async (store, options) => {
71
- const urls = options.patterns.filter(Web.isUrl);
72
- const expanded = Files.expand(options.patterns.filter(pattern => !Web.isUrl(pattern)), options.cwd);
73
- const paths = [...new Set([...expanded, ...options.files ?? []])].sort();
102
+ const signal = options.signal;
103
+ signal?.throwIfAborted();
104
+ const timeoutSeconds = options.timeoutSeconds;
105
+ agentTimeoutMs(timeoutSeconds === undefined ? 600 : timeoutSeconds);
106
+ const suppliedBatchSize = options.batchSize;
107
+ const batchSize = suppliedBatchSize === undefined ? 8 : suppliedBatchSize;
108
+ // Validate with the shared batching contract before reading any sources.
109
+ Files.batch([], batchSize);
110
+ const patterns = sourceList(options.patterns, 'patterns');
111
+ const suppliedFiles = options.files;
112
+ const files = suppliedFiles === undefined ? [] : sourceList(suppliedFiles, 'files');
113
+ const { cwd, force, embed, fetchImpl } = options;
114
+ const forceSelected = booleanOption(force, 'force');
115
+ const embedContent = booleanOption(embed, 'embed');
116
+ const urls = patterns.filter(Web.isUrl);
117
+ const expanded = Files.expand(patterns.filter(pattern => !Web.isUrl(pattern)), cwd);
118
+ const paths = [...new Set([...expanded, ...files])].sort();
74
119
  const local = Files.select(store, paths, {
75
- force: options.force === true,
76
- ...options.cwd === undefined ? {} : { cwd: options.cwd }
120
+ force: forceSelected,
121
+ embed: embedContent,
122
+ ...cwd === undefined ? {} : { cwd }
77
123
  });
78
124
  const remote = await Web.select(store, urls, {
79
- force: options.force === true,
80
- ...options.fetchImpl === undefined ? {} : { fetchImpl: options.fetchImpl }
125
+ force: forceSelected,
126
+ ...signal === undefined ? {} : { signal },
127
+ ...fetchImpl === undefined ? {} : { fetchImpl }
81
128
  });
129
+ signal?.throwIfAborted();
82
130
  const selection = {
83
131
  files: [...local.files, ...remote.files],
84
132
  skipped: [...local.skipped, ...remote.skipped],
85
133
  failures: remote.failures
86
134
  };
87
- return { selection, batches: Files.batch(selection.files, options.batchSize ?? 8) };
135
+ return { selection, batches: Files.batch(selection.files, batchSize) };
88
136
  };
89
137
  const claimCount = (store) => store.db.prepare('SELECT COUNT(*) AS n FROM cave_claim').get().n;
90
138
  /**
@@ -95,13 +143,18 @@ const claimCount = (store) => store.db.prepare('SELECT COUNT(*) AS n FROM cave_c
95
143
  * follow the same contract.
96
144
  */
97
145
  export const runShellAgent = (template, prompt, substitutions, timeoutSeconds, cwd, processOptions = {}) => {
146
+ if (/[\uD800-\uDFFF]/u.test(prompt)) {
147
+ return Promise.resolve({ code: null, stdout: '', error: 'agent prompt must contain well-formed Unicode' });
148
+ }
149
+ const { signal, maxStdoutBytes, maxStderrBytes } = processOptions;
98
150
  return runProcess(shellCommand(template, substitutions), {
99
151
  cwd,
100
152
  input: prompt,
101
- timeoutMs: timeoutSeconds * 1000,
102
- ...processOptions.signal === undefined ? {} : { signal: processOptions.signal },
103
- ...processOptions.maxStdoutBytes === undefined ? {} : { maxStdoutBytes: processOptions.maxStdoutBytes },
104
- ...processOptions.maxStderrBytes === undefined ? {} : { maxStderrBytes: processOptions.maxStderrBytes }
153
+ strictStdoutUtf8: true,
154
+ timeoutMs: agentTimeoutMs(timeoutSeconds, true),
155
+ ...signal === undefined ? {} : { signal },
156
+ ...maxStdoutBytes === undefined ? {} : { maxStdoutBytes },
157
+ ...maxStderrBytes === undefined ? {} : { maxStderrBytes }
105
158
  }).then(result => ({ code: result.code, stdout: result.stdout })).catch((error) => {
106
159
  if (error instanceof ProcessFailure) {
107
160
  return { code: null, stdout: error.result.stdout, error: error.message };
@@ -109,10 +162,28 @@ export const runShellAgent = (template, prompt, substitutions, timeoutSeconds, c
109
162
  return { code: null, stdout: '', error: 'process failed to start' };
110
163
  });
111
164
  };
112
- /** Extracts CAVE text from stdout-mode agent output (```cave fences win). */
165
+ /** Extracts complete CAVE or unlabelled fenced blocks, falling back to raw output. */
113
166
  export const caveTextOf = (output) => {
114
- const fences = [...output.matchAll(/```(?:cave)?\n([\s\S]*?)```/g)].map(match => match[1]);
115
- return fences.length > 0 ? fences.join('\n') : output;
167
+ const blocks = [];
168
+ let open;
169
+ for (const line of output.matchAll(/[^\r\n]*(?:\r\n|\r|\n|$)/g)) {
170
+ const text = line[0].replace(/(?:\r\n|\r|\n)$/, '');
171
+ const fence = /^ {0,3}(`{3,}|~{3,})(.*)$/.exec(text);
172
+ if (fence === null)
173
+ continue;
174
+ const marker = fence[1], info = fence[2];
175
+ if (open !== undefined) {
176
+ if (marker[0] === open.marker[0] && marker.length >= open.marker.length && /^[ \t]*$/.test(info)) {
177
+ if (open.selected)
178
+ blocks.push(output.slice(open.start, line.index));
179
+ open = undefined;
180
+ }
181
+ }
182
+ else if (marker[0] !== '`' || !info.includes('`')) {
183
+ open = { marker, start: line.index + line[0].length, selected: info.trim() === '' || info.trim() === 'cave' };
184
+ }
185
+ }
186
+ return blocks.length > 0 ? blocks.join('\n') : output;
116
187
  };
117
188
  /** Runs batches against one mutable store. Strict callers provide a stage. */
118
189
  const runMutable = async (options) => {
@@ -120,14 +191,15 @@ const runMutable = async (options) => {
120
191
  const cwd = options.cwd ?? process.cwd();
121
192
  const mode = options.mode ?? 'mcp';
122
193
  const policy = options.policy;
123
- const timeoutSeconds = options.timeoutSeconds ?? 600;
194
+ const timeoutSeconds = options.timeoutSeconds === undefined ? 600 : options.timeoutSeconds;
124
195
  const { selection, batches } = await selectBatches(store, options);
125
196
  const reports = [];
126
- const mcpConfig = typeof options.agent === 'string' && options.agent.includes('{mcp-config}') ?
127
- writeMcpConfig(options.db, { noPrelude: options.noPrelude === true }) :
128
- undefined;
129
197
  const promptDir = mkdtempSync(join(tmpdir(), 'cave-prompt-'));
198
+ const promptFailures = [];
130
199
  try {
200
+ const mcpConfig = typeof options.agent === 'string' && options.agent.includes('{mcp-config}') ?
201
+ writeMcpConfig(options.db, { noPrelude: options.noPrelude === true, dir: promptDir }) :
202
+ undefined;
131
203
  // Strict input validation is fail-fast before the first paid call. The
132
204
  // complete source manifest below still marks healthy selected inputs as
133
205
  // not-run and each failed URL as rejected.
@@ -155,8 +227,16 @@ const runMutable = async (options) => {
155
227
  };
156
228
  }
157
229
  for (const [index, files] of batches.entries()) {
158
- const prompt = promptFor(store, files, { ...options, mode });
230
+ options.signal?.throwIfAborted();
159
231
  const paths = files.map(file => file.path);
232
+ const inputProblems = sourceProblems(files, cwd);
233
+ if (inputProblems.length > 0) {
234
+ reports.push({ files: paths, ok: false, added: 0, problems: inputProblems });
235
+ if (policy === 'strict')
236
+ break;
237
+ continue;
238
+ }
239
+ const prompt = promptFor(store, files, { ...options, mode });
160
240
  if (options.agent === undefined) {
161
241
  reports.push({ files: paths, ok: false, added: 0, problems: [], note: 'no agent configured' });
162
242
  if (policy === 'strict')
@@ -168,18 +248,21 @@ const runMutable = async (options) => {
168
248
  let output;
169
249
  if (typeof options.agent === 'function') {
170
250
  try {
171
- output = await options.agent(prompt, paths, {
251
+ output = await options.agent(prompt, [...paths], {
172
252
  db: options.db,
253
+ ...options.signal === undefined ? {} : { signal: options.signal },
173
254
  ...mcpConfig === undefined ? {} : { mcpConfig }
174
255
  });
256
+ options.signal?.throwIfAborted();
175
257
  ok = true;
176
258
  }
177
259
  catch (error) {
260
+ throwIfCancelled(options.signal, error);
178
261
  output = '';
179
262
  ok = false;
180
263
  reports.push({
181
264
  files: paths, ok, added: claimCount(store) - before, problems: [],
182
- note: error instanceof Error ? error.message : String(error)
265
+ note: errorMessage(error)
183
266
  });
184
267
  if (policy === 'strict')
185
268
  break;
@@ -196,6 +279,7 @@ const runMutable = async (options) => {
196
279
  }, timeoutSeconds, cwd, {
197
280
  ...options.signal === undefined ? {} : { signal: options.signal }
198
281
  });
282
+ options.signal?.throwIfAborted();
199
283
  ok = result.code === 0;
200
284
  output = result.stdout;
201
285
  if (!ok) {
@@ -208,6 +292,13 @@ const runMutable = async (options) => {
208
292
  continue;
209
293
  }
210
294
  }
295
+ const changedSources = sourceProblems(files, cwd);
296
+ if (changedSources.length > 0) {
297
+ reports.push({ files: paths, ok: false, added: claimCount(store) - before, problems: changedSources });
298
+ if (policy === 'strict')
299
+ break;
300
+ continue;
301
+ }
211
302
  if (mode === 'stdout') {
212
303
  // Actor provenance (spec §9.5): mcp-mode appends are stamped by the
213
304
  // MCP server; here the orchestrator appends, so it stamps — with the
@@ -218,14 +309,15 @@ const runMutable = async (options) => {
218
309
  const canonical = Canonical.canonicalizeText(caveTextOf(output), store.registry());
219
310
  const problems = canonical.problems.map(problem => `line ${problem.line}: ${problem.message}`);
220
311
  if (policy === 'strict' && problems.length > 0) {
221
- reports.push({ files: paths, ok: false, added: 0, problems });
312
+ reports.push({ files: paths, ok: false, added: claimCount(store) - before, problems });
222
313
  break;
223
314
  }
224
315
  const ingested = store.insertResult(canonical, { source: 'ingest' });
225
316
  reports.push({
226
317
  files: paths,
227
318
  ok: problems.length === 0,
228
- added: ingested.ids.length,
319
+ ...problems.length > 0 && ingested.ids.length > 0 ? { partial: true } : {},
320
+ added: claimCount(store) - before,
229
321
  problems
230
322
  });
231
323
  if (problems.length > 0) {
@@ -235,7 +327,7 @@ const runMutable = async (options) => {
235
327
  }
236
328
  }
237
329
  else {
238
- const note = output.trim().split('\n').at(-1) ?? '';
330
+ const note = output.trim().split(/\r\n|\r|\n/).at(-1) ?? '';
239
331
  reports.push({
240
332
  files: paths,
241
333
  ok: true,
@@ -247,17 +339,25 @@ const runMutable = async (options) => {
247
339
  Files.recordDigests(store, files);
248
340
  }
249
341
  }
342
+ catch (error) {
343
+ promptFailures.push(error);
344
+ throw error;
345
+ }
250
346
  finally {
251
- rmSync(promptDir, { recursive: true, force: true });
252
- if (mcpConfig !== undefined) {
253
- rmSync(dirname(mcpConfig), { recursive: true, force: true });
347
+ cleanup(promptFailures, () => rmSync(promptDir, { recursive: true, force: true }));
348
+ }
349
+ const batchByPath = new Map();
350
+ for (const [index, report] of reports.entries()) {
351
+ for (const path of report.files) {
352
+ if (!batchByPath.has(path))
353
+ batchByPath.set(path, index);
254
354
  }
255
355
  }
256
356
  const sources = [
257
357
  ...selection.skipped.map(path => ({ path, status: 'skipped', problems: [] })),
258
358
  ...selection.files.map(file => {
259
- const batch = reports.findIndex(report => report.files.includes(file.path));
260
- if (batch < 0)
359
+ const batch = batchByPath.get(file.path);
360
+ if (batch === undefined)
261
361
  return { path: file.path, status: 'not-run', problems: [] };
262
362
  const report = reports[batch];
263
363
  return {
@@ -300,34 +400,78 @@ const runMutable = async (options) => {
300
400
  * them. The returned source manifest accounts for every matched input.
301
401
  */
302
402
  export const run = async (options) => {
303
- const policy = options.policy ?? 'strict';
403
+ const signal = options.signal;
404
+ signal?.throwIfAborted();
405
+ const patterns = options.patterns;
406
+ const files = options.files;
407
+ options = {
408
+ signal,
409
+ db: options.db,
410
+ store: options.store,
411
+ patterns: sourceList(patterns, 'patterns'),
412
+ files: files === undefined ? undefined : sourceList(files, 'files'),
413
+ instructions: options.instructions,
414
+ agent: options.agent,
415
+ mode: options.mode,
416
+ batchSize: options.batchSize,
417
+ embed: options.embed,
418
+ force: options.force,
419
+ noPrelude: options.noPrelude,
420
+ timeoutSeconds: options.timeoutSeconds,
421
+ cwd: options.cwd,
422
+ fetchImpl: options.fetchImpl,
423
+ policy: options.policy
424
+ };
425
+ if (options.cwd !== undefined)
426
+ sourcePath(options.cwd, 'cwd');
427
+ for (const key of ['force', 'embed', 'noPrelude'])
428
+ booleanOption(options[key], key);
429
+ agentTimeoutMs(options.timeoutSeconds === undefined ? 600 : options.timeoutSeconds);
430
+ Files.batch([], options.batchSize === undefined ? 8 : options.batchSize);
431
+ const policy = options.policy === undefined ? 'strict' : options.policy;
432
+ if (policy !== 'strict' && policy !== 'lenient') {
433
+ throw new TypeError('policy must be strict or lenient');
434
+ }
435
+ const mode = options.mode === undefined ? 'mcp' : options.mode;
436
+ if (mode !== 'mcp' && mode !== 'stdout') {
437
+ throw new TypeError('mode must be mcp or stdout');
438
+ }
304
439
  if (policy === 'lenient')
305
440
  return runMutable({ ...options, policy });
306
441
  const stageDir = mkdtempSync(join(tmpdir(), 'cave-ingest-stage-'));
307
442
  const stageDb = join(stageDir, 'stage.db');
308
443
  let staged;
444
+ const directoryFailures = [];
309
445
  try {
446
+ backup(options.store, stageDb);
310
447
  const stage = open(stageDb, options.noPrelude === true ? { registry: Registry.empty } : {});
448
+ const stageFailures = [];
311
449
  try {
312
- const seeded = syncText(stage, options.store.exportText({ tx: true, maxSensitivity: 'restricted' }), {
313
- record: false
314
- });
315
- if (seeded.problems.length > 0) {
316
- throw new Error(`could not stage the current store: ${seeded.problems.map(problem => `line ${problem.line}: ${problem.message}`).join('; ')}`);
317
- }
318
450
  staged = await runMutable({ ...options, db: stageDb, store: stage, policy });
319
451
  }
452
+ catch (error) {
453
+ stageFailures.push(error);
454
+ throw error;
455
+ }
320
456
  finally {
321
- stage.close();
457
+ cleanup(stageFailures, () => stage.close());
322
458
  }
459
+ options.signal?.throwIfAborted();
323
460
  if (staged.failed > 0 || staged.sources.some(source => source.status === 'not-run')) {
324
461
  return { ...staged, applied: false, added: 0 };
325
462
  }
326
- syncDb(options.store, stageDb, { record: false });
463
+ const merged = syncDb(options.store, stageDb, { record: false });
464
+ if (merged.problems.length > 0) {
465
+ throw new Error(`could not commit the staged ingestion: ${merged.problems.map(problem => problem.message).join('; ')}`);
466
+ }
327
467
  return staged;
328
468
  }
469
+ catch (error) {
470
+ directoryFailures.push(error);
471
+ throw error;
472
+ }
329
473
  finally {
330
- rmSync(stageDir, { recursive: true, force: true });
474
+ cleanup(directoryFailures, () => rmSync(stageDir, { recursive: true, force: true }));
331
475
  }
332
476
  };
333
477
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Convert seconds to the whole-millisecond range supported by Node timers. */
2
+ export declare const agentTimeoutMs: (seconds: number, allowZero?: boolean) => number;
3
+ //# sourceMappingURL=timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/timeout.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,EAAE,mBAAiB,KAAG,MAWnE,CAAA"}
@@ -0,0 +1,14 @@
1
+ /** Convert seconds to the whole-millisecond range supported by Node timers. */
2
+ export const agentTimeoutMs = (seconds, allowZero = false) => {
3
+ const milliseconds = typeof seconds === 'number' ? seconds * 1000 : NaN;
4
+ const rounded = Math.round(milliseconds);
5
+ // Decimal seconds such as 1.001 can acquire a sub-ULP multiplication error.
6
+ const tolerance = Number.EPSILON * Math.max(1, Math.abs(milliseconds));
7
+ if (!Number.isFinite(milliseconds) || seconds < 0 || (!allowZero && seconds === 0) ||
8
+ rounded < (allowZero && seconds === 0 ? 0 : 1) || rounded > 2147483647 ||
9
+ Math.abs(milliseconds - rounded) > tolerance) {
10
+ throw new TypeError('timeout must resolve to whole milliseconds in 1..2147483647 (0.001..2147483.647 seconds)');
11
+ }
12
+ return rounded;
13
+ };
14
+ //# sourceMappingURL=timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/timeout.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,SAAS,GAAG,KAAK,EAAU,EAAE;IAC3E,MAAM,YAAY,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IACxC,4EAA4E;IAC5E,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,CAAC;QAC9E,OAAO,GAAG,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,GAAG,UAAU;QACtE,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,GAAG,SAAS,EAAE,CAAC;QACjD,MAAM,IAAI,SAAS,CAAC,0FAA0F,CAAC,CAAA;IACjH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -1,13 +1,3 @@
1
- /**
2
- * URL sources for ingestion — `cave ingest https://…` fetches the page
3
- * with the built-in fetch and reduces HTML to its readable article text
4
- * (Readability over linkedom), so the agent sees prose instead of markup.
5
- * Non-HTML responses (markdown, plain text, JSON) pass through verbatim.
6
- *
7
- * Provenance mirrors files: the URL is the claim subject and the digest
8
- * is taken over the *extracted* text, so a page is re-ingested only when
9
- * its readable content changes — not on every markup or chrome tweak.
10
- */
11
1
  import type { Store } from '@cavelang/store';
12
2
  import type { Selected, Selection } from './files.ts';
13
3
  /** @returns whether an ingest pattern is a fetchable URL. */
@@ -32,7 +22,7 @@ export type Failure = {
32
22
  * Fetches one URL and returns it as a selectable source — readable text
33
23
  * for HTML responses, the verbatim body for anything else.
34
24
  */
35
- export declare const fetchDocument: (url: string, fetchImpl?: FetchLike, timeoutSeconds?: number) => Promise<Selected>;
25
+ export declare const fetchDocument: (url: string, fetchImpl?: FetchLike, timeoutSeconds?: number, signal?: AbortSignal) => Promise<Selected>;
36
26
  /**
37
27
  * Fetches and digests the given URLs, skipping the ones whose current
38
28
  * `ingest-digest` belief already matches (pass `force` to re-ingest all).
@@ -42,6 +32,7 @@ export declare const fetchDocument: (url: string, fetchImpl?: FetchLike, timeout
42
32
  export declare const select: (store: Store, urls: readonly string[], options?: {
43
33
  force?: boolean;
44
34
  fetchImpl?: FetchLike;
35
+ signal?: AbortSignal;
45
36
  }) => Promise<Selection & {
46
37
  failures: readonly Failure[];
47
38
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAErD,6DAA6D;AAC7D,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,KAAG,OACT,CAAA;AA0C/B;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAe7C,CAAA;AAED,+DAA+D;AAC/D,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE7E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAA;AAE5C,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAoBD;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,KAAK,MAAM,EACX,YAAW,SAAiB,EAC5B,uBAAmB,KAClB,OAAO,CAAC,QAAQ,CA4BlB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,MAAM,SAAS,MAAM,EAAE,EACvB,UAAS;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAO,KACvD,OAAO,CAAC,SAAS,GAAG;IAAE,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,CAwBtD,CAAA"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGrD,6DAA6D;AAC7D,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,KAAG,OACT,CAAA;AAkG/B;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAiB7C,CAAA;AAED,+DAA+D;AAC/D,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE7E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAA;AAE5C,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAoBD;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,KAAK,MAAM,EACX,YAAW,SAAiB,EAC5B,uBAAmB,EACnB,SAAS,WAAW,KACnB,OAAO,CAAC,QAAQ,CAyDlB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GACjB,OAAO,KAAK,EACZ,MAAM,SAAS,MAAM,EAAE,EACvB,UAAS;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,KAC7E,OAAO,CAAC,SAAS,GAAG;IAAE,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,CAuCtD,CAAA"}