@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
@@ -28,13 +28,14 @@ import { parseDocument } from '@cavelang/parser';
28
28
  /** Indents every line of a claim's canonical text (a multi-line comment opens above the claim, §6.4). */
29
29
  const indented = (text) => text.split('\n').map(line => ` ${line}`).join('\n');
30
30
  import { canonicalizeText, emitClaim } from '@cavelang/canonical';
31
- import { Sensitivity } from '@cavelang/store';
31
+ import { QuerySql, Sensitivity } from '@cavelang/store';
32
32
  import { defaultLimit as defaultQueryLimit, maxLimit as maxQueryLimit, page as caveQueryPage, query as caveQuery } from '@cavelang/query';
33
33
  import { estimateOf, fuse } from '@cavelang/fusion';
34
34
  import { derive } from '@cavelang/cli/rules';
35
35
  import { reconstruct, heuristicPolicy, sqliteStore } from '@cavelang/cli/loop';
36
36
  import { act, listActions } from '@cavelang/cli/act';
37
37
  import { guideFor, guideTopics } from "./guide.js";
38
+ import { readSnapshot } from "./read-snapshot.js";
38
39
  export const permissions = ['read', 'evaluate', 'record', 'action'];
39
40
  const text = (value, name) => {
40
41
  if (typeof value !== 'string' || value === '') {
@@ -42,6 +43,18 @@ const text = (value, name) => {
42
43
  }
43
44
  return value;
44
45
  };
46
+ const assertEntityUnicode = (value, name) => {
47
+ if (/[\uD800-\uDFFF]/u.test(value)) {
48
+ throw new TypeError(`${name}: unpaired UTF-16 surrogate cannot be queried as UTF-8`);
49
+ }
50
+ };
51
+ const boolean = (value, name) => {
52
+ if (value === undefined)
53
+ return false;
54
+ if (typeof value !== 'boolean')
55
+ throw new Error(`${name} must be a boolean`);
56
+ return value;
57
+ };
45
58
  const integer = (value, name) => {
46
59
  if (typeof value !== 'number' || !Number.isInteger(value)) {
47
60
  throw new Error(`${name} must be an integer`);
@@ -56,6 +69,7 @@ const integer = (value, name) => {
56
69
  * the CAVE-Q default and store traversal.
57
70
  */
58
71
  const aboutLines = (store, entity, aliases, resolve) => {
72
+ assertEntityUnicode(entity, 'entity');
59
73
  const names = new Set(aliases ? store.aliasesOf(entity) : [entity]);
60
74
  const rows = resolve ? store.resolvedBeliefs({ aliases }) : store.currentBeliefs();
61
75
  return rows
@@ -72,7 +86,11 @@ const aboutLines = (store, entity, aliases, resolve) => {
72
86
  const compactNumber = (n) => {
73
87
  for (const [letter, factor] of Object.entries(Multiplier.factors)) {
74
88
  if (Math.abs(n) >= factor) {
75
- return `${Value.formatNumber(Number((n / factor).toPrecision(4)))}${letter}`;
89
+ const rounded = Number((n / factor).toPrecision(4));
90
+ // Rounding a finite boundary value upward can overflow when CAVE applies
91
+ // the multiplier. Preserve its exact decimal spelling in that case.
92
+ return Number.isFinite(rounded * factor) ?
93
+ `${Value.formatNumber(rounded)}${letter}` : Value.formatNumber(n);
76
94
  }
77
95
  }
78
96
  return Value.formatNumber(Number(n.toPrecision(4)));
@@ -100,35 +118,38 @@ const quantityOf = (claim, representative) => {
100
118
  * The claims `cave_fuse` considers: matched store rows (`pattern`, deduped
101
119
  * — one row may solve a pattern several ways), current claims an entity
102
120
  * is the subject of (`about` — the only reach into metric `IS` series,
103
- * which CAVE-Q variables cannot bind), or literal CAVE text that never
104
- * touches the store (`text`). Exactly one selector, so the answer's
121
+ * which CAVE-Q variables cannot bind), or literal CAVE text parsed with
122
+ * the store vocabulary without appending it (`text`). Exactly one selector, so the answer's
105
123
  * provenance is unambiguous.
106
124
  */
107
- const selectFuseClaims = (store, args) => {
108
- const selectors = ['pattern', 'about', 'text'].filter(name => typeof args[name] === 'string');
125
+ const selectFuseClaims = (store, args, aliases) => {
126
+ const { pattern, about, text: literal, asOf } = args;
127
+ const supplied = { pattern, about, text: literal };
128
+ const selectors = ['pattern', 'about', 'text'].filter(name => supplied[name] !== undefined);
109
129
  const selector = selectors.length === 1 ? selectors[0] : undefined;
110
130
  if (selector === undefined) {
111
131
  throw new Error('provide exactly one of pattern (CAVE-Q over the store), about (an entity name) or text (literal CAVE lines)');
112
132
  }
113
- if (typeof args['asOf'] === 'string' && selector !== 'pattern') {
133
+ if (asOf !== undefined && selector !== 'pattern') {
114
134
  throw new Error('asOf composes with pattern only');
115
135
  }
116
136
  if (selector === 'pattern') {
117
- const matches = caveQuery(store, text(args['pattern'], 'pattern'), {
118
- aliases: args['aliases'] === true,
119
- ...typeof args['asOf'] === 'string' ? { asOf: args['asOf'] } : {}
137
+ const matches = caveQuery(store, text(pattern, 'pattern'), {
138
+ aliases,
139
+ ...asOf === undefined ? {} : { asOf: text(asOf, 'asOf') }
120
140
  });
121
141
  const rows = new Map(matches.flatMap(match => match.row === undefined ? [] : [[match.row.id, match.row]]));
122
142
  return [...rows.values()].map(row => store.toClaim(row));
123
143
  }
124
144
  if (selector === 'about') {
125
- const entity = text(args['about'], 'about');
126
- const names = new Set(args['aliases'] === true ? store.aliasesOf(entity) : [entity]);
145
+ const entity = text(about, 'about');
146
+ assertEntityUnicode(entity, 'about');
147
+ const names = new Set(aliases ? store.aliasesOf(entity) : [entity]);
127
148
  return store.currentBeliefs()
128
149
  .filter(row => names.has(row.subject) && row.conf > 0)
129
150
  .map(row => store.toClaim(row));
130
151
  }
131
- const result = canonicalizeText(text(args['text'], 'text'), store.registry());
152
+ const result = canonicalizeText(text(literal, 'text'), store.registry());
132
153
  if (result.problems.length > 0) {
133
154
  throw new Error(result.problems.map(problem => `line ${problem.line}: ${problem.message}`).join('\n'));
134
155
  }
@@ -176,7 +197,7 @@ export const tools = [
176
197
  },
177
198
  run: (store, args, context) => {
178
199
  const result = store.ingest(text(args['text'], 'text'), {
179
- strict: args['strict'] === true,
200
+ strict: boolean(args['strict'], 'strict'),
180
201
  ...context.source === undefined ? {} : { source: context.source }
181
202
  });
182
203
  const problems = result.problems.map(problem => `line ${problem.line}: ${problem.message}`);
@@ -204,18 +225,19 @@ export const tools = [
204
225
  at: { type: 'string', description: 'anchor in valid time (spec §32.4): a date-like period (its start instant) or a timestamp — claims whose time contexts (@2026-Q1, @2025..2028) do not cover it are invisible, timeless claims always match, and trajectory values (20B -> 40B USD/yr) interpolate at the instant; composes with asOf' },
205
226
  resolve: { type: 'boolean', description: 'match resolved winners only (spec §26): contested facts — one fact from several sources, or opposite polarity — collapse to the row the resolution policy picks; incompatible with all' },
206
227
  limit: { type: 'integer', minimum: 1, maximum: 1000, default: defaultQueryLimit, description: `matches per page (default ${defaultQueryLimit})` },
207
- cursor: { type: 'string', description: 'opaque continuation from a prior cave_query page; freezes the original transaction snapshot' }
228
+ cursor: { type: 'string', description: 'opaque continuation from a prior cave_query page; freezes the transaction cutoff and rejects changed historical rows or lineage; restart without cursor after a snapshot-change error' }
208
229
  }
209
230
  },
210
231
  run: (store, args) => {
211
- const result = caveQueryPage(store, text(args['pattern'], 'pattern'), {
212
- all: args['all'] === true,
213
- aliases: args['aliases'] === true,
214
- resolve: args['resolve'] === true,
215
- limit: args['limit'] === undefined ? defaultQueryLimit : integer(args['limit'], 'limit'),
216
- ...typeof args['cursor'] === 'string' ? { cursor: args['cursor'] } : {},
217
- ...typeof args['asOf'] === 'string' ? { asOf: args['asOf'] } : {},
218
- ...typeof args['at'] === 'string' ? { at: args['at'] } : {}
232
+ const { pattern, all, aliases, resolve, limit, cursor, asOf, at } = args;
233
+ const result = caveQueryPage(store, text(pattern, 'pattern'), {
234
+ all: boolean(all, 'all'),
235
+ aliases: boolean(aliases, 'aliases'),
236
+ resolve: boolean(resolve, 'resolve'),
237
+ limit: limit === undefined ? defaultQueryLimit : integer(limit, 'limit'),
238
+ ...cursor === undefined ? {} : { cursor: text(cursor, 'cursor') },
239
+ ...asOf === undefined ? {} : { asOf: text(asOf, 'asOf') },
240
+ ...at === undefined ? {} : { at: text(at, 'at') }
219
241
  });
220
242
  const matches = result.matches;
221
243
  if (matches.length === 0) {
@@ -229,7 +251,7 @@ export const tools = [
229
251
  // An interpolated trajectory shows its value at the anchor
230
252
  // (spec §32.4); value-slot bindings already carry it.
231
253
  if (match.at !== undefined && line !== undefined && bindings === '') {
232
- line = `${line} ; at ${String(args['at'])}: ${match.at.text}`;
254
+ line = `${line} ; at ${String(at)}: ${match.at.text}`;
233
255
  }
234
256
  if (bindings === '') {
235
257
  return line ?? 'match';
@@ -263,13 +285,14 @@ export const tools = [
263
285
  properties: {
264
286
  pattern: { type: 'string', description: 'CAVE-Q pattern selecting the store rows to fuse (exactly one of pattern/about/text)' },
265
287
  about: { type: 'string', description: 'entity whose current claims carry the estimates (exactly one of pattern/about/text)' },
266
- text: { type: 'string', description: 'CAVE lines carrying the estimates, fused without touching the store (exactly one of pattern/about/text)' },
267
- aliases: { type: 'boolean', description: 'pattern/about match through the alias closure (spec §13.6)' },
288
+ text: { type: 'string', description: 'Literal estimates parsed with the store vocabulary, without selecting stored estimates or appending claims (exactly one of pattern/about/text)' },
289
+ aliases: { type: 'boolean', description: 'pattern/about selection and quantity grouping for every selector use the store alias closure (spec §13.6)' },
268
290
  asOf: { type: 'string', description: 'fuse the estimates believed at a past moment (spec §12.3): a date, timestamp or transaction id; pattern only' }
269
291
  }
270
292
  },
271
- run: (store, args) => {
272
- const claims = selectFuseClaims(store, args);
293
+ run: (store, args) => readSnapshot(store, () => {
294
+ const aliases = boolean(args['aliases'], 'aliases');
295
+ const claims = selectFuseClaims(store, args, aliases);
273
296
  const estimates = claims.flatMap(claim => {
274
297
  const estimate = estimateOf(claim);
275
298
  return claim.negated || estimate === undefined || !((estimate.conf ?? 1) > 0) ? [] : [{ claim, estimate }];
@@ -279,9 +302,26 @@ export const tools = [
279
302
  'nothing to fuse: no matching claims' :
280
303
  `nothing to fuse: none of the ${claims.length} claim(s) carries a positive numeric estimate with +/- uncertainty`;
281
304
  }
282
- const representative = args['aliases'] === true ?
283
- (name) => store.aliasesOf(name).reduce((min, candidate) => candidate < min ? candidate : min) :
284
- (name) => name;
305
+ // Pattern selection has already validated asOf. Quantity identity must
306
+ // use that same historical alias graph, not today's merge/retraction state.
307
+ const historicalAliases = aliases && args['asOf'] !== undefined ? store.db.prepare(`${QuerySql.aliasClosure(QuerySql.current(QuerySql.claims(QuerySql.asOfBoundary(text(args['asOf'], 'asOf')))))} SELECT name FROM alias_closure`) : undefined;
308
+ const namesOf = (name) => historicalAliases === undefined ? store.aliasesOf(name) :
309
+ historicalAliases.all(name).map(row => row.name);
310
+ const representatives = new Map();
311
+ const representative = (name) => {
312
+ if (!aliases)
313
+ return name;
314
+ const cached = representatives.get(name);
315
+ if (cached !== undefined)
316
+ return cached;
317
+ const names = namesOf(name);
318
+ const chosen = names.reduce((min, candidate) => candidate < min ? candidate : min);
319
+ // Cache only within this call's read snapshot, including other names
320
+ // in the component so source variants do not repeat graph traversal.
321
+ for (const alias of names)
322
+ representatives.set(alias, chosen);
323
+ return chosen;
324
+ };
285
325
  const quantities = new Map();
286
326
  for (const { claim } of estimates) {
287
327
  const quantity = quantityOf(claim, representative);
@@ -305,7 +345,7 @@ export const tools = [
305
345
  `posterior: ${withUnit(posterior.mean, unit)} +/- ${withUnit(2 * posterior.sigma, unit)} (2σ)` +
306
346
  ` ; mean ${Value.formatNumber(posterior.mean)}, sigma ${Value.formatNumber(posterior.sigma)}`
307
347
  ].join('\n');
308
- }
348
+ })
309
349
  },
310
350
  {
311
351
  name: 'cave_search',
@@ -314,7 +354,7 @@ export const tools = [
314
354
  'entity spelling is unknown. The query is a literal phrase by default; set raw for FTS5 ' +
315
355
  'MATCH syntax (AND/OR/NOT, NEAR, prefix*, column filters such as comment:heap). Newest ' +
316
356
  'first, one raw line per match with its comment; superseded rows stay searchable, so ' +
317
- 'confirm currency with cave_query or cave_about.',
357
+ 'confirm currency with cave_query or cave_about. Queries containing NUL characters are rejected.',
318
358
  permission: 'read',
319
359
  inputSchema: {
320
360
  type: 'object',
@@ -326,13 +366,14 @@ export const tools = [
326
366
  }
327
367
  },
328
368
  run: (store, args) => {
329
- const limit = args['limit'] === undefined ? defaultQueryLimit : integer(args['limit'], 'limit');
369
+ const { limit: suppliedLimit, query, raw } = args;
370
+ const limit = suppliedLimit === undefined ? defaultQueryLimit : integer(suppliedLimit, 'limit');
330
371
  // The schema advertises the range, but a client may skip validation:
331
372
  // enforce it here as the query page does for its own limit.
332
373
  if (limit < 1 || limit > maxQueryLimit) {
333
374
  throw new Error(`limit must be an integer from 1 to ${maxQueryLimit}`);
334
375
  }
335
- const found = store.search(text(args['query'], 'query'), { raw: args['raw'] === true, limit: limit + 1 });
376
+ const found = store.search(text(query, 'query'), { raw: boolean(raw, 'raw'), limit: limit + 1 });
336
377
  const lines = found.slice(0, limit).map(row => row.raw_line);
337
378
  if (lines.length === 0)
338
379
  return 'no matches';
@@ -355,8 +396,8 @@ export const tools = [
355
396
  resolve: { type: 'boolean', description: 'restrict to resolved winners (spec §26): contested facts collapse to the row the resolution policy picks' }
356
397
  }
357
398
  },
358
- run: (store, args) => aboutLines(store, text(args['entity'], 'entity'), args['aliases'] === true, args['resolve'] === true)
359
- .join('\n') || 'no claims'
399
+ run: (store, args) => readSnapshot(store, () => aboutLines(store, text(args['entity'], 'entity'), boolean(args['aliases'], 'aliases'), boolean(args['resolve'], 'resolve'))
400
+ .join('\n') || 'no claims')
360
401
  },
361
402
  {
362
403
  name: 'cave_neighbors',
@@ -372,9 +413,9 @@ export const tools = [
372
413
  resolve: { type: 'boolean', description: 'walk resolved winners only (spec §26): contested edges collapse to the row the resolution policy picks' }
373
414
  }
374
415
  },
375
- run: (store, args) => {
416
+ run: (store, args) => readSnapshot(store, () => {
376
417
  const entity = text(args['entity'], 'entity');
377
- const options = { aliases: args['aliases'] === true, resolve: args['resolve'] === true };
418
+ const options = { aliases: boolean(args['aliases'], 'aliases'), resolve: boolean(args['resolve'], 'resolve') };
378
419
  // Endpoints print as stored — under aliases a matched row may name
379
420
  // an aliased spelling, and union semantics never rewrites it.
380
421
  const forward = store.forward(entity, options)
@@ -384,7 +425,7 @@ export const tools = [
384
425
  `${fact.source} ${fact.verb} ${fact.row.object} ; no inverse name declared` :
385
426
  `${fact.row.object} ${fact.rel} ${fact.source}`);
386
427
  return [...forward, ...reverse].join('\n') || 'no edges';
387
- }
428
+ })
388
429
  },
389
430
  {
390
431
  name: 'cave_reconstruct',
@@ -396,26 +437,30 @@ export const tools = [
396
437
  type: 'object',
397
438
  required: ['seeds'],
398
439
  properties: {
399
- seeds: { type: 'array', items: { type: 'string' }, description: 'seed entity names (cues)' },
400
- maxSteps: { type: 'number', description: 'expansion budget (default 16)' },
401
- maxClaims: { type: 'number', description: 'stop after collecting this many claims' }
440
+ seeds: { type: 'array', minItems: 1, items: { type: 'string', minLength: 1 }, description: 'seed entity names (cues)' },
441
+ maxSteps: { type: 'integer', minimum: 0, maximum: Number.MAX_SAFE_INTEGER, description: 'expansion budget (default 16)' },
442
+ maxClaims: { type: 'integer', minimum: 0, maximum: Number.MAX_SAFE_INTEGER, description: 'stop after collecting this many claims' }
402
443
  }
403
444
  },
404
- run: (store, args) => {
405
- const seeds = Array.isArray(args['seeds']) ? args['seeds'].filter(seed => typeof seed === 'string') : [];
406
- if (seeds.length === 0) {
445
+ run: (store, args) => readSnapshot(store, () => {
446
+ const { seeds: suppliedSeeds, maxSteps, maxClaims } = args;
447
+ const seeds = Array.isArray(suppliedSeeds) ? Array.from(suppliedSeeds) : [];
448
+ if (seeds.length === 0 || !seeds.every(seed => typeof seed === 'string' && seed.length > 0)) {
407
449
  throw new Error('seeds must be a non-empty array of entity names');
408
450
  }
451
+ if (seeds.some(seed => /[\uD800-\uDFFF]/u.test(seed))) {
452
+ throw new Error('seeds must be free of unpaired UTF-16 surrogates');
453
+ }
409
454
  const options = {
410
- ...typeof args['maxSteps'] === 'number' ? { maxSteps: args['maxSteps'] } : {},
411
- ...typeof args['maxClaims'] === 'number' ? { maxClaims: args['maxClaims'] } : {}
455
+ ...maxSteps === undefined ? {} : { maxSteps: integer(maxSteps, 'maxSteps') },
456
+ ...maxClaims === undefined ? {} : { maxClaims: integer(maxClaims, 'maxClaims') }
412
457
  };
413
458
  const { claims, trace } = reconstruct(sqliteStore(store), heuristicPolicy(options), seeds);
414
459
  return [
415
460
  `expanded ${trace.length} cue(s): ${trace.map(step => step.cue.entity).join(' → ') || 'none'}`,
416
461
  ...claims.map(claim => emitClaim(claim))
417
462
  ].join('\n');
418
- }
463
+ })
419
464
  },
420
465
  {
421
466
  name: 'cave_derive',
@@ -425,7 +470,8 @@ export const tools = [
425
470
  'idempotent and incremental by tx watermark, and retracting a premise retracts dependents. ' +
426
471
  'Declare rules first as ordinary claims via cave_add, e.g. ' +
427
472
  'rule/needs HAS rule: `?x NEEDS ?y, ?y NEEDS ?z => ?x NEEDS ?z`. ' +
428
- 'Set dryRun to preview without appending.',
473
+ 'Set dryRun to preview without appending. A pass-limit report marked incomplete retains earlier additions; ' +
474
+ 'retry with a higher maxPasses to finish support reconciliation.',
429
475
  permission: 'record',
430
476
  inputSchema: {
431
477
  type: 'object',
@@ -443,14 +489,14 @@ export const tools = [
443
489
  throw new Error('minConf must be a number in 0..1');
444
490
  }
445
491
  const maxPasses = args['maxPasses'];
446
- if (maxPasses !== undefined && (typeof maxPasses !== 'number' || !Number.isInteger(maxPasses) || maxPasses < 1)) {
447
- throw new Error('maxPasses must be a positive integer');
492
+ if (maxPasses !== undefined && (typeof maxPasses !== 'number' || !Number.isSafeInteger(maxPasses) || maxPasses < 1)) {
493
+ throw new Error('maxPasses must be a positive safe integer');
448
494
  }
449
- const dryRun = args['dryRun'] === true;
495
+ const dryRun = boolean(args['dryRun'], 'dryRun');
450
496
  const report = derive(store, {
451
497
  dryRun,
452
- full: args['full'] === true,
453
- aliases: args['aliases'] === true,
498
+ full: boolean(args['full'], 'full'),
499
+ aliases: boolean(args['aliases'], 'aliases'),
454
500
  ...minConf === undefined ? {} : { minConf },
455
501
  ...maxPasses === undefined ? {} : { maxPasses }
456
502
  });
@@ -469,7 +515,7 @@ export const tools = [
469
515
  ...rule.problems.map(problem => ` ${problem}`)
470
516
  ]),
471
517
  ...report.notes.map(note => `note: ${note}`),
472
- `derived${dryRun ? ' (dry run)' : ''}${report.complete ? '' : ' (truncated)'}: +${report.appended} appended, ${report.updated} updated, ` +
518
+ `derived${report.complete ? '' : ' (incomplete)'}${dryRun ? ' (dry run)' : ''}: +${report.appended} appended, ${report.updated} updated, ` +
473
519
  `${report.retracted} retracted, ${report.unchanged} unchanged (${report.passes} pass(es))`
474
520
  ].join('\n');
475
521
  }
@@ -487,13 +533,14 @@ export const tools = [
487
533
  }
488
534
  },
489
535
  run: (store, args) => {
490
- const maximum = args['maxSensitivity'] === undefined ?
536
+ const { maxSensitivity, current } = args;
537
+ const maximum = maxSensitivity === undefined ?
491
538
  Sensitivity.defaultMaximum :
492
- Sensitivity.parse(text(args['maxSensitivity'], 'maxSensitivity'));
539
+ Sensitivity.parse(text(maxSensitivity, 'maxSensitivity'));
493
540
  if (maximum === undefined) {
494
541
  throw new Error(`maxSensitivity must be one of ${Sensitivity.levels.join(', ')}`);
495
542
  }
496
- return store.exportText({ current: args['current'] === true, maxSensitivity: maximum }) || '; empty store';
543
+ return store.exportText({ current: boolean(current, 'current'), maxSensitivity: maximum }) || '; empty store';
497
544
  }
498
545
  },
499
546
  {
@@ -537,9 +584,9 @@ const renderReport = (report) => {
537
584
  ...report.effects.map(effect => ` ${effect.outcome}: ${effect.line}`)
538
585
  ];
539
586
  if (report.hook !== undefined) {
540
- lines.push(report.hook.fired ?
541
- `hook ${report.hook.name}: ${report.hook.error ?? 'ok'}` :
542
- `hook ${report.hook.name}: not fired (${report.hook.note})`);
587
+ const outcome = report.hook.error ??
588
+ (report.hook.fired ? 'ok' : `not fired (${report.hook.note})`);
589
+ lines.push(`hook ${report.hook.name}: ${outcome}`);
543
590
  }
544
591
  return lines.join('\n');
545
592
  };
@@ -554,10 +601,12 @@ const actionTool = (action) => ({
554
601
  permission: 'action',
555
602
  inputSchema: {
556
603
  type: 'object',
604
+ additionalProperties: false,
557
605
  required: [...action.params.map(param => param.name)],
558
606
  properties: Object.fromEntries(action.params.map(param => [
559
607
  param.name,
560
- { type: 'string', ...param.doc === undefined ? {} : { description: param.doc } }
608
+ { anyOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean' }],
609
+ ...param.doc === undefined ? {} : { description: param.doc } }
561
610
  ]))
562
611
  },
563
612
  run: (store, args, context) => {
@@ -597,9 +646,31 @@ export const actionTools = (store) => {
597
646
  * an `act_`-prefixed scope entry is validated here, at call time, because
598
647
  * it scopes whichever actions exist when asked.
599
648
  */
649
+ const validateScopeNames = (scope) => {
650
+ for (const field of ['permissions', 'tools']) {
651
+ const value = scope[field];
652
+ if (value === undefined)
653
+ continue;
654
+ if (!Array.isArray(value))
655
+ throw new Error(`${field} must be an array of strings`);
656
+ for (const entry of value) {
657
+ if (typeof entry !== 'string')
658
+ throw new Error(`${field} must be an array of strings`);
659
+ }
660
+ }
661
+ const unknownPermissions = (scope.permissions ?? []).filter(permission => !permissions.includes(permission));
662
+ if (unknownPermissions.length > 0) {
663
+ throw new Error(`unknown permission(s): ${unknownPermissions.join(', ')} — available: ${permissions.join(', ')}`);
664
+ }
665
+ const unknown = (scope.tools ?? []).filter(name => !byName.has(name) && !name.startsWith(actToolPrefix));
666
+ if (unknown.length > 0) {
667
+ throw new Error(`unknown tool(s): ${unknown.join(', ')} — available: ${tools.map(tool => tool.name).join(', ')}, act_<action>`);
668
+ }
669
+ };
600
670
  const allowedPermissions = (scope) => {
671
+ validateScopeNames(scope);
601
672
  const requested = new Set(scope.permissions ?? permissions);
602
- if (scope.readOnly === true) {
673
+ if (boolean(scope.readOnly, 'readOnly')) {
603
674
  requested.delete('record');
604
675
  requested.delete('action');
605
676
  }
@@ -619,14 +690,6 @@ export const scopedActionTools = (store, scope = {}) => allowsActions(scope) ?
619
690
  * (spec §25.5), resolved against the store at call time.
620
691
  */
621
692
  export const scopedTools = (scope = {}) => {
622
- const unknownPermissions = (scope.permissions ?? []).filter(permission => !permissions.includes(permission));
623
- if (unknownPermissions.length > 0) {
624
- throw new Error(`unknown permission(s): ${unknownPermissions.join(', ')} — available: ${permissions.join(', ')}`);
625
- }
626
- const unknown = (scope.tools ?? []).filter(name => !byName.has(name) && !name.startsWith(actToolPrefix));
627
- if (unknown.length > 0) {
628
- throw new Error(`unknown tool(s): ${unknown.join(', ')} — available: ${tools.map(tool => tool.name).join(', ')}, act_<action>`);
629
- }
630
693
  const allowed = allowedPermissions(scope);
631
694
  const served = tools.filter(tool => (scope.tools === undefined || scope.tools.includes(tool.name)) &&
632
695
  allowed.has(tool.permission));
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Row, type Store } from '@cavelang/store';
2
+ /** Current positive attribute declarations, preserving oldest-first ordering. */
3
+ export declare const currentDeclarations: (store: Store, attribute: string) => Row.t[];
4
+ /** Decode stored rule text with a claim-specific storage diagnostic. */
5
+ export declare const declarationText: (row: Row.t) => string;
6
+ //# sourceMappingURL=declarations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations.d.ts","sourceRoot":"","sources":["../../src/declarations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEjD,iFAAiF;AACjF,eAAO,MAAM,mBAAmB,GAAI,OAAO,KAAK,EAAE,WAAW,MAAM,KAAG,GAAG,CAAC,CAAC,EAInB,CAAA;AAExD,wEAAwE;AACxE,eAAO,MAAM,eAAe,GAAI,KAAK,GAAG,CAAC,CAAC,KAAG,MAK5C,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Row } from '@cavelang/store';
2
+ /** Current positive attribute declarations, preserving oldest-first ordering. */
3
+ export const currentDeclarations = (store, attribute) => store.db.prepare(`SELECT c.* FROM cave_claim c
4
+ WHERE c.verb = 'HAS' AND c.attribute = ? AND c.negated = 0 AND c.conf > 0
5
+ AND c.tx = (SELECT MAX(latest.tx) FROM cave_claim latest WHERE latest.claim_key = c.claim_key)
6
+ ORDER BY c.tx`).all(attribute);
7
+ /** Decode stored rule text with a claim-specific storage diagnostic. */
8
+ export const declarationText = (row) => {
9
+ if (typeof row.value_text !== 'string') {
10
+ throw new TypeError(`stored rule field ${JSON.stringify(row.attribute)} value_text must be text (claim ${JSON.stringify(row.id)})`);
11
+ }
12
+ return Row.parseValue(row.value_text).raw;
13
+ };
14
+ //# sourceMappingURL=declarations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarations.js","sourceRoot":"","sources":["../../src/declarations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAc,MAAM,iBAAiB,CAAA;AAEjD,iFAAiF;AACjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAE,SAAiB,EAAW,EAAE,CAC9E,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;;;kBAGD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAuB,CAAA;AAExD,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAU,EAAU,EAAE;IACpD,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACrI,CAAC;IACD,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAA;AAC3C,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"declare.d.ts","sourceRoot":"","sources":["../../src/declare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAO,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAkBjC,MAAM,MAAM,WAAW,GAAG;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAChE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,EAAE,MAAM,MAAM,KAAG,WAwDzD,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,UAAU,EAc7C,CAAA;AAEN,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,KAAK,MAAM,KAAG,UA8CvD,CAAA"}
1
+ {"version":3,"file":"declare.d.ts","sourceRoot":"","sources":["../../src/declare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAO,KAAK,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAmBjC,MAAM,MAAM,WAAW,GAAG;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,qEAAqE;IACrE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAChE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,EAAE,MAAM,MAAM,KAAG,WAkEzD,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CACrC,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,UAAU,EAc7C,CAAA;AAEN,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,EAAE,KAAK,MAAM,KAAG,UA6CvD,CAAA"}