sensemaking 0.17.1 → 0.18.1

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 (425) hide show
  1. package/README.md +15 -13
  2. package/dist/cjs/cli/map.js +144 -3
  3. package/dist/cjs/cli/map.js.map +1 -1
  4. package/dist/cjs/cli/named.js +19 -11
  5. package/dist/cjs/cli/named.js.map +1 -1
  6. package/dist/cjs/cli/path.js +186 -26
  7. package/dist/cjs/cli/path.js.map +1 -1
  8. package/dist/cjs/cli/peek.js +145 -4
  9. package/dist/cjs/cli/peek.js.map +1 -1
  10. package/dist/cjs/cli/related.js +2 -2
  11. package/dist/cjs/cli/related.js.map +1 -1
  12. package/dist/cjs/cli/search.js +2 -2
  13. package/dist/cjs/cli/search.js.map +1 -1
  14. package/dist/cjs/cli/shared.d.cts +3 -3
  15. package/dist/cjs/cli/shared.d.ts +3 -3
  16. package/dist/cjs/cli/shared.js +156 -58
  17. package/dist/cjs/cli/shared.js.map +1 -1
  18. package/dist/cjs/cli/sql.js +151 -10
  19. package/dist/cjs/cli/sql.js.map +1 -1
  20. package/dist/cjs/cli/status.js +184 -53
  21. package/dist/cjs/cli/status.js.map +1 -1
  22. package/dist/cjs/commands/map.d.cts +2 -2
  23. package/dist/cjs/commands/map.d.ts +2 -2
  24. package/dist/cjs/commands/map.js +373 -67
  25. package/dist/cjs/commands/map.js.map +1 -1
  26. package/dist/cjs/commands/peek.d.cts +2 -2
  27. package/dist/cjs/commands/peek.d.ts +2 -2
  28. package/dist/cjs/commands/peek.js +321 -79
  29. package/dist/cjs/commands/peek.js.map +1 -1
  30. package/dist/cjs/commands/related.d.cts +2 -2
  31. package/dist/cjs/commands/related.d.ts +2 -2
  32. package/dist/cjs/commands/related.js +55 -10
  33. package/dist/cjs/commands/related.js.map +1 -1
  34. package/dist/cjs/commands/scope.d.cts +7 -7
  35. package/dist/cjs/commands/scope.d.ts +7 -7
  36. package/dist/cjs/commands/scope.js +382 -45
  37. package/dist/cjs/commands/scope.js.map +1 -1
  38. package/dist/cjs/commands/search.d.cts +2 -2
  39. package/dist/cjs/commands/search.d.ts +2 -2
  40. package/dist/cjs/commands/search.js +292 -99
  41. package/dist/cjs/commands/search.js.map +1 -1
  42. package/dist/cjs/commands/signals.d.cts +4 -10
  43. package/dist/cjs/commands/signals.d.ts +4 -10
  44. package/dist/cjs/commands/signals.js +91 -45
  45. package/dist/cjs/commands/signals.js.map +1 -1
  46. package/dist/cjs/commands/status.d.cts +2 -2
  47. package/dist/cjs/commands/status.d.ts +2 -2
  48. package/dist/cjs/commands/status.js +247 -10
  49. package/dist/cjs/commands/status.js.map +1 -1
  50. package/dist/cjs/config/access.d.cts +1 -0
  51. package/dist/cjs/config/access.d.ts +1 -0
  52. package/dist/cjs/config/access.js +7 -0
  53. package/dist/cjs/config/access.js.map +1 -1
  54. package/dist/cjs/config/index.d.cts +1 -1
  55. package/dist/cjs/config/index.d.ts +1 -1
  56. package/dist/cjs/config/index.js +3 -0
  57. package/dist/cjs/config/index.js.map +1 -1
  58. package/dist/cjs/config/types.d.cts +1 -0
  59. package/dist/cjs/config/types.d.ts +1 -0
  60. package/dist/cjs/config/types.js.map +1 -1
  61. package/dist/cjs/config/validate.js +10 -1
  62. package/dist/cjs/config/validate.js.map +1 -1
  63. package/dist/cjs/embed/distribution.d.cts +3 -3
  64. package/dist/cjs/embed/distribution.d.ts +3 -3
  65. package/dist/cjs/embed/distribution.js +162 -6
  66. package/dist/cjs/embed/distribution.js.map +1 -1
  67. package/dist/cjs/embed/langfit.d.cts +2 -2
  68. package/dist/cjs/embed/langfit.d.ts +2 -2
  69. package/dist/cjs/embed/langfit.js +57 -44
  70. package/dist/cjs/embed/langfit.js.map +1 -1
  71. package/dist/cjs/embed/query.d.cts +6 -13
  72. package/dist/cjs/embed/query.d.ts +6 -13
  73. package/dist/cjs/embed/query.js +56 -168
  74. package/dist/cjs/embed/query.js.map +1 -1
  75. package/dist/cjs/embed/types.d.cts +1 -0
  76. package/dist/cjs/embed/types.d.ts +1 -0
  77. package/dist/cjs/embed/types.js +11 -2
  78. package/dist/cjs/embed/types.js.map +1 -1
  79. package/dist/cjs/errors.d.cts +1 -1
  80. package/dist/cjs/errors.d.ts +1 -1
  81. package/dist/cjs/errors.js.map +1 -1
  82. package/dist/cjs/features/embed.js +218 -11
  83. package/dist/cjs/features/embed.js.map +1 -1
  84. package/dist/cjs/features/index.d.cts +1 -1
  85. package/dist/cjs/features/index.d.ts +1 -1
  86. package/dist/cjs/features/index.js +6 -0
  87. package/dist/cjs/features/index.js.map +1 -1
  88. package/dist/cjs/features/links.d.cts +7 -2
  89. package/dist/cjs/features/links.d.ts +7 -2
  90. package/dist/cjs/features/links.js +710 -198
  91. package/dist/cjs/features/links.js.map +1 -1
  92. package/dist/cjs/features/rank.js +231 -31
  93. package/dist/cjs/features/rank.js.map +1 -1
  94. package/dist/cjs/features/sections.js +218 -8
  95. package/dist/cjs/features/sections.js.map +1 -1
  96. package/dist/cjs/features/tags.js +236 -40
  97. package/dist/cjs/features/tags.js.map +1 -1
  98. package/dist/cjs/features/types.d.cts +9 -5
  99. package/dist/cjs/features/types.d.ts +9 -5
  100. package/dist/cjs/graph/traverse.d.cts +2 -2
  101. package/dist/cjs/graph/traverse.d.ts +2 -2
  102. package/dist/cjs/graph/traverse.js +321 -42
  103. package/dist/cjs/graph/traverse.js.map +1 -1
  104. package/dist/cjs/index.d.cts +3 -2
  105. package/dist/cjs/index.d.ts +3 -2
  106. package/dist/cjs/index.js +2 -2
  107. package/dist/cjs/index.js.map +1 -1
  108. package/dist/cjs/lib/guarded-tick.d.cts +1 -0
  109. package/dist/cjs/lib/guarded-tick.d.ts +1 -0
  110. package/dist/cjs/lib/guarded-tick.js +19 -0
  111. package/dist/cjs/lib/guarded-tick.js.map +1 -0
  112. package/dist/cjs/output/column-hint.d.cts +1 -2
  113. package/dist/cjs/output/column-hint.d.ts +1 -2
  114. package/dist/cjs/output/column-hint.js +9 -11
  115. package/dist/cjs/output/column-hint.js.map +1 -1
  116. package/dist/cjs/output/output.d.cts +2 -1
  117. package/dist/cjs/output/output.d.ts +2 -1
  118. package/dist/cjs/output/output.js +515 -97
  119. package/dist/cjs/output/output.js.map +1 -1
  120. package/dist/cjs/scan/frontmatter.js.map +1 -1
  121. package/dist/cjs/scan/index.js.map +1 -1
  122. package/dist/cjs/scan/reparse.d.cts +10 -0
  123. package/dist/cjs/scan/reparse.d.ts +10 -0
  124. package/dist/cjs/scan/reparse.js +104 -0
  125. package/dist/cjs/scan/reparse.js.map +1 -0
  126. package/dist/cjs/store/duckdb/batch.d.cts +16 -0
  127. package/dist/cjs/store/duckdb/batch.d.ts +16 -0
  128. package/dist/cjs/store/duckdb/batch.js +208 -0
  129. package/dist/cjs/store/duckdb/batch.js.map +1 -0
  130. package/dist/cjs/store/duckdb/connection.d.cts +5 -0
  131. package/dist/cjs/store/duckdb/connection.d.ts +5 -0
  132. package/dist/cjs/store/duckdb/connection.js +772 -0
  133. package/dist/cjs/store/duckdb/connection.js.map +1 -0
  134. package/dist/cjs/store/duckdb/lexical.d.cts +10 -0
  135. package/dist/cjs/store/duckdb/lexical.d.ts +10 -0
  136. package/dist/cjs/store/duckdb/lexical.js +502 -0
  137. package/dist/cjs/store/duckdb/lexical.js.map +1 -0
  138. package/dist/cjs/store/duckdb/native.d.cts +3 -0
  139. package/dist/cjs/store/duckdb/native.d.ts +3 -0
  140. package/dist/cjs/store/duckdb/native.js +360 -0
  141. package/dist/cjs/store/duckdb/native.js.map +1 -0
  142. package/dist/cjs/store/duckdb/open.d.cts +12 -0
  143. package/dist/cjs/store/duckdb/open.d.ts +12 -0
  144. package/dist/cjs/store/duckdb/open.js +501 -0
  145. package/dist/cjs/store/duckdb/open.js.map +1 -0
  146. package/dist/cjs/store/duckdb/reconcile.d.cts +6 -0
  147. package/dist/cjs/store/duckdb/reconcile.d.ts +6 -0
  148. package/dist/cjs/store/duckdb/reconcile.js +753 -0
  149. package/dist/cjs/store/duckdb/reconcile.js.map +1 -0
  150. package/dist/cjs/store/duckdb/sql-functions.d.cts +2 -0
  151. package/dist/cjs/store/duckdb/sql-functions.d.ts +2 -0
  152. package/dist/cjs/store/duckdb/sql-functions.js +203 -0
  153. package/dist/cjs/store/duckdb/sql-functions.js.map +1 -0
  154. package/dist/cjs/store/duckdb/store.d.cts +5 -0
  155. package/dist/cjs/store/duckdb/store.d.ts +5 -0
  156. package/dist/cjs/store/duckdb/store.js +504 -0
  157. package/dist/cjs/store/duckdb/store.js.map +1 -0
  158. package/dist/cjs/store/duckdb/vectors.d.cts +9 -0
  159. package/dist/cjs/store/duckdb/vectors.d.ts +9 -0
  160. package/dist/cjs/store/duckdb/vectors.js +502 -0
  161. package/dist/cjs/store/duckdb/vectors.js.map +1 -0
  162. package/dist/cjs/store/index.d.cts +8 -0
  163. package/dist/cjs/store/index.d.ts +8 -0
  164. package/dist/cjs/store/index.js +214 -0
  165. package/dist/cjs/store/index.js.map +1 -0
  166. package/dist/cjs/store/meta.d.cts +3 -0
  167. package/dist/cjs/store/meta.d.ts +3 -0
  168. package/dist/cjs/store/meta.js +215 -0
  169. package/dist/cjs/store/meta.js.map +1 -0
  170. package/dist/cjs/store/shared.d.cts +5 -0
  171. package/dist/cjs/store/shared.d.ts +5 -0
  172. package/dist/cjs/store/shared.js +252 -0
  173. package/dist/cjs/store/shared.js.map +1 -0
  174. package/dist/cjs/store/sql-functions.d.cts +2 -0
  175. package/dist/cjs/store/sql-functions.d.ts +2 -0
  176. package/dist/cjs/store/sql-functions.js +48 -0
  177. package/dist/cjs/store/sql-functions.js.map +1 -0
  178. package/dist/cjs/store/sqlite/connection.d.cts +3 -0
  179. package/dist/cjs/store/sqlite/connection.d.ts +3 -0
  180. package/dist/cjs/store/sqlite/connection.js +516 -0
  181. package/dist/cjs/store/sqlite/connection.js.map +1 -0
  182. package/dist/cjs/store/sqlite/lexical.d.cts +2 -0
  183. package/dist/cjs/store/sqlite/lexical.d.ts +2 -0
  184. package/dist/cjs/store/sqlite/lexical.js +177 -0
  185. package/dist/cjs/store/sqlite/lexical.js.map +1 -0
  186. package/dist/cjs/{db → store/sqlite}/open.d.cts +5 -5
  187. package/dist/cjs/{db → store/sqlite}/open.d.ts +5 -5
  188. package/dist/cjs/store/sqlite/open.js +604 -0
  189. package/dist/cjs/store/sqlite/open.js.map +1 -0
  190. package/dist/cjs/store/sqlite/reconcile.d.cts +10 -0
  191. package/dist/cjs/store/sqlite/reconcile.d.ts +10 -0
  192. package/dist/cjs/store/sqlite/reconcile.js +1020 -0
  193. package/dist/cjs/store/sqlite/reconcile.js.map +1 -0
  194. package/dist/cjs/store/sqlite/sql-functions.js +34 -0
  195. package/dist/cjs/store/sqlite/sql-functions.js.map +1 -0
  196. package/dist/cjs/store/sqlite/store.d.cts +5 -0
  197. package/dist/cjs/store/sqlite/store.d.ts +5 -0
  198. package/dist/cjs/store/sqlite/store.js +588 -0
  199. package/dist/cjs/store/sqlite/store.js.map +1 -0
  200. package/dist/cjs/store/sqlite/vectors.d.cts +13 -0
  201. package/dist/cjs/store/sqlite/vectors.d.ts +13 -0
  202. package/dist/cjs/store/sqlite/vectors.js +470 -0
  203. package/dist/cjs/store/sqlite/vectors.js.map +1 -0
  204. package/dist/cjs/store/transaction.d.cts +5 -0
  205. package/dist/cjs/store/transaction.d.ts +5 -0
  206. package/dist/cjs/store/transaction.js +297 -0
  207. package/dist/cjs/store/transaction.js.map +1 -0
  208. package/dist/cjs/store/types.d.cts +91 -0
  209. package/dist/cjs/store/types.d.ts +91 -0
  210. package/dist/cjs/store/types.js +15 -0
  211. package/dist/cjs/store/types.js.map +1 -0
  212. package/dist/cjs/watch.d.cts +3 -0
  213. package/dist/cjs/watch.d.ts +3 -0
  214. package/dist/cjs/watch.js +216 -73
  215. package/dist/cjs/watch.js.map +1 -1
  216. package/dist/esm/cli/map.js +4 -4
  217. package/dist/esm/cli/map.js.map +1 -1
  218. package/dist/esm/cli/named.js +2 -2
  219. package/dist/esm/cli/named.js.map +1 -1
  220. package/dist/esm/cli/path.js +4 -4
  221. package/dist/esm/cli/path.js.map +1 -1
  222. package/dist/esm/cli/peek.js +4 -4
  223. package/dist/esm/cli/peek.js.map +1 -1
  224. package/dist/esm/cli/related.js +2 -2
  225. package/dist/esm/cli/related.js.map +1 -1
  226. package/dist/esm/cli/search.js +1 -1
  227. package/dist/esm/cli/search.js.map +1 -1
  228. package/dist/esm/cli/shared.d.ts +3 -3
  229. package/dist/esm/cli/shared.js +17 -17
  230. package/dist/esm/cli/shared.js.map +1 -1
  231. package/dist/esm/cli/sql.js +2 -2
  232. package/dist/esm/cli/sql.js.map +1 -1
  233. package/dist/esm/cli/status.js +28 -24
  234. package/dist/esm/cli/status.js.map +1 -1
  235. package/dist/esm/commands/map.d.ts +2 -2
  236. package/dist/esm/commands/map.js +51 -41
  237. package/dist/esm/commands/map.js.map +1 -1
  238. package/dist/esm/commands/peek.d.ts +2 -2
  239. package/dist/esm/commands/peek.js +58 -50
  240. package/dist/esm/commands/peek.js.map +1 -1
  241. package/dist/esm/commands/related.d.ts +2 -2
  242. package/dist/esm/commands/related.js +9 -9
  243. package/dist/esm/commands/related.js.map +1 -1
  244. package/dist/esm/commands/scope.d.ts +7 -7
  245. package/dist/esm/commands/scope.js +28 -17
  246. package/dist/esm/commands/scope.js.map +1 -1
  247. package/dist/esm/commands/search.d.ts +2 -2
  248. package/dist/esm/commands/search.js +42 -35
  249. package/dist/esm/commands/search.js.map +1 -1
  250. package/dist/esm/commands/signals.d.ts +4 -10
  251. package/dist/esm/commands/signals.js +17 -13
  252. package/dist/esm/commands/signals.js.map +1 -1
  253. package/dist/esm/commands/status.d.ts +2 -2
  254. package/dist/esm/commands/status.js +13 -7
  255. package/dist/esm/commands/status.js.map +1 -1
  256. package/dist/esm/config/access.d.ts +1 -0
  257. package/dist/esm/config/access.js +5 -0
  258. package/dist/esm/config/access.js.map +1 -1
  259. package/dist/esm/config/index.d.ts +1 -1
  260. package/dist/esm/config/index.js +1 -1
  261. package/dist/esm/config/index.js.map +1 -1
  262. package/dist/esm/config/types.d.ts +1 -0
  263. package/dist/esm/config/types.js.map +1 -1
  264. package/dist/esm/config/validate.js +10 -1
  265. package/dist/esm/config/validate.js.map +1 -1
  266. package/dist/esm/embed/distribution.d.ts +3 -3
  267. package/dist/esm/embed/distribution.js +5 -5
  268. package/dist/esm/embed/distribution.js.map +1 -1
  269. package/dist/esm/embed/langfit.d.ts +2 -2
  270. package/dist/esm/embed/langfit.js +4 -4
  271. package/dist/esm/embed/langfit.js.map +1 -1
  272. package/dist/esm/embed/query.d.ts +6 -13
  273. package/dist/esm/embed/query.js +23 -84
  274. package/dist/esm/embed/query.js.map +1 -1
  275. package/dist/esm/embed/types.d.ts +1 -0
  276. package/dist/esm/embed/types.js +5 -3
  277. package/dist/esm/embed/types.js.map +1 -1
  278. package/dist/esm/errors.d.ts +1 -1
  279. package/dist/esm/errors.js.map +1 -1
  280. package/dist/esm/features/embed.js +22 -10
  281. package/dist/esm/features/embed.js.map +1 -1
  282. package/dist/esm/features/index.d.ts +1 -1
  283. package/dist/esm/features/index.js +1 -1
  284. package/dist/esm/features/index.js.map +1 -1
  285. package/dist/esm/features/links.d.ts +7 -2
  286. package/dist/esm/features/links.js +124 -97
  287. package/dist/esm/features/links.js.map +1 -1
  288. package/dist/esm/features/rank.js +15 -8
  289. package/dist/esm/features/rank.js.map +1 -1
  290. package/dist/esm/features/sections.js +20 -7
  291. package/dist/esm/features/sections.js.map +1 -1
  292. package/dist/esm/features/tags.js +19 -18
  293. package/dist/esm/features/tags.js.map +1 -1
  294. package/dist/esm/features/types.d.ts +9 -5
  295. package/dist/esm/features/types.js +1 -1
  296. package/dist/esm/features/types.js.map +1 -1
  297. package/dist/esm/graph/traverse.d.ts +2 -2
  298. package/dist/esm/graph/traverse.js +26 -23
  299. package/dist/esm/graph/traverse.js.map +1 -1
  300. package/dist/esm/index.d.ts +3 -2
  301. package/dist/esm/index.js +1 -1
  302. package/dist/esm/index.js.map +1 -1
  303. package/dist/esm/lib/guarded-tick.d.ts +1 -0
  304. package/dist/esm/lib/guarded-tick.js +8 -0
  305. package/dist/esm/lib/guarded-tick.js.map +1 -0
  306. package/dist/esm/output/column-hint.d.ts +1 -2
  307. package/dist/esm/output/column-hint.js +11 -9
  308. package/dist/esm/output/column-hint.js.map +1 -1
  309. package/dist/esm/output/output.d.ts +2 -1
  310. package/dist/esm/output/output.js +27 -23
  311. package/dist/esm/output/output.js.map +1 -1
  312. package/dist/esm/scan/frontmatter.js +1 -1
  313. package/dist/esm/scan/frontmatter.js.map +1 -1
  314. package/dist/esm/scan/index.js +1 -1
  315. package/dist/esm/scan/index.js.map +1 -1
  316. package/dist/esm/scan/reparse.d.ts +10 -0
  317. package/dist/esm/scan/reparse.js +30 -0
  318. package/dist/esm/scan/reparse.js.map +1 -0
  319. package/dist/esm/store/duckdb/batch.d.ts +16 -0
  320. package/dist/esm/store/duckdb/batch.js +96 -0
  321. package/dist/esm/store/duckdb/batch.js.map +1 -0
  322. package/dist/esm/store/duckdb/connection.d.ts +5 -0
  323. package/dist/esm/store/duckdb/connection.js +97 -0
  324. package/dist/esm/store/duckdb/connection.js.map +1 -0
  325. package/dist/esm/store/duckdb/lexical.d.ts +10 -0
  326. package/dist/esm/store/duckdb/lexical.js +163 -0
  327. package/dist/esm/store/duckdb/lexical.js.map +1 -0
  328. package/dist/esm/store/duckdb/native.d.ts +3 -0
  329. package/dist/esm/store/duckdb/native.js +96 -0
  330. package/dist/esm/store/duckdb/native.js.map +1 -0
  331. package/dist/esm/store/duckdb/open.d.ts +12 -0
  332. package/dist/esm/store/duckdb/open.js +127 -0
  333. package/dist/esm/store/duckdb/open.js.map +1 -0
  334. package/dist/esm/store/duckdb/reconcile.d.ts +6 -0
  335. package/dist/esm/store/duckdb/reconcile.js +141 -0
  336. package/dist/esm/store/duckdb/reconcile.js.map +1 -0
  337. package/dist/esm/store/duckdb/sql-functions.d.ts +2 -0
  338. package/dist/esm/store/duckdb/sql-functions.js +56 -0
  339. package/dist/esm/store/duckdb/sql-functions.js.map +1 -0
  340. package/dist/esm/store/duckdb/store.d.ts +5 -0
  341. package/dist/esm/store/duckdb/store.js +104 -0
  342. package/dist/esm/store/duckdb/store.js.map +1 -0
  343. package/dist/esm/store/duckdb/vectors.d.ts +9 -0
  344. package/dist/esm/store/duckdb/vectors.js +171 -0
  345. package/dist/esm/store/duckdb/vectors.js.map +1 -0
  346. package/dist/esm/store/index.d.ts +8 -0
  347. package/dist/esm/store/index.js +47 -0
  348. package/dist/esm/store/index.js.map +1 -0
  349. package/dist/esm/store/meta.d.ts +3 -0
  350. package/dist/esm/store/meta.js +17 -0
  351. package/dist/esm/store/meta.js.map +1 -0
  352. package/dist/esm/store/shared.d.ts +5 -0
  353. package/dist/esm/store/shared.js +24 -0
  354. package/dist/esm/store/shared.js.map +1 -0
  355. package/dist/esm/store/sql-functions.d.ts +2 -0
  356. package/dist/esm/store/sql-functions.js +29 -0
  357. package/dist/esm/store/sql-functions.js.map +1 -0
  358. package/dist/esm/store/sqlite/connection.d.ts +3 -0
  359. package/dist/esm/store/sqlite/connection.js +50 -0
  360. package/dist/esm/store/sqlite/connection.js.map +1 -0
  361. package/dist/esm/store/sqlite/lexical.d.ts +2 -0
  362. package/dist/esm/store/sqlite/lexical.js +21 -0
  363. package/dist/esm/store/sqlite/lexical.js.map +1 -0
  364. package/dist/esm/{db → store/sqlite}/open.d.ts +5 -5
  365. package/dist/esm/store/sqlite/open.js +193 -0
  366. package/dist/esm/store/sqlite/open.js.map +1 -0
  367. package/dist/esm/store/sqlite/reconcile.d.ts +10 -0
  368. package/dist/esm/{db → store/sqlite}/reconcile.js +101 -99
  369. package/dist/esm/store/sqlite/reconcile.js.map +1 -0
  370. package/dist/esm/store/sqlite/sql-functions.js +23 -0
  371. package/dist/esm/store/sqlite/sql-functions.js.map +1 -0
  372. package/dist/esm/store/sqlite/store.d.ts +5 -0
  373. package/dist/esm/store/sqlite/store.js +82 -0
  374. package/dist/esm/store/sqlite/store.js.map +1 -0
  375. package/dist/esm/store/sqlite/vectors.d.ts +13 -0
  376. package/dist/esm/store/sqlite/vectors.js +90 -0
  377. package/dist/esm/store/sqlite/vectors.js.map +1 -0
  378. package/dist/esm/store/transaction.d.ts +5 -0
  379. package/dist/esm/store/transaction.js +57 -0
  380. package/dist/esm/store/transaction.js.map +1 -0
  381. package/dist/esm/store/types.d.ts +91 -0
  382. package/dist/esm/store/types.js +11 -0
  383. package/dist/esm/store/types.js.map +1 -0
  384. package/dist/esm/watch.d.ts +3 -0
  385. package/dist/esm/watch.js +40 -22
  386. package/dist/esm/watch.js.map +1 -1
  387. package/package.json +3 -1
  388. package/schema.json +5 -0
  389. package/skills/sense/EXAMPLES.md +3 -3
  390. package/skills/sense/SKILL.md +16 -14
  391. package/skills/sense-bases/EXAMPLES.md +2 -2
  392. package/skills/sense-bases/SKILL.md +6 -6
  393. package/skills/sense-setup/EXAMPLES.md +1 -1
  394. package/skills/sense-setup/SKILL.md +5 -4
  395. package/dist/cjs/db/index.d.cts +0 -4
  396. package/dist/cjs/db/index.d.ts +0 -4
  397. package/dist/cjs/db/index.js +0 -42
  398. package/dist/cjs/db/index.js.map +0 -1
  399. package/dist/cjs/db/open.js +0 -230
  400. package/dist/cjs/db/open.js.map +0 -1
  401. package/dist/cjs/db/reconcile.d.cts +0 -10
  402. package/dist/cjs/db/reconcile.d.ts +0 -10
  403. package/dist/cjs/db/reconcile.js +0 -579
  404. package/dist/cjs/db/reconcile.js.map +0 -1
  405. package/dist/cjs/db/shared.d.cts +0 -5
  406. package/dist/cjs/db/shared.d.ts +0 -5
  407. package/dist/cjs/db/shared.js +0 -45
  408. package/dist/cjs/db/shared.js.map +0 -1
  409. package/dist/cjs/db/sql-functions.js +0 -64
  410. package/dist/cjs/db/sql-functions.js.map +0 -1
  411. package/dist/esm/db/index.d.ts +0 -4
  412. package/dist/esm/db/index.js +0 -5
  413. package/dist/esm/db/index.js.map +0 -1
  414. package/dist/esm/db/open.js +0 -165
  415. package/dist/esm/db/open.js.map +0 -1
  416. package/dist/esm/db/reconcile.d.ts +0 -10
  417. package/dist/esm/db/reconcile.js.map +0 -1
  418. package/dist/esm/db/shared.d.ts +0 -5
  419. package/dist/esm/db/shared.js +0 -20
  420. package/dist/esm/db/shared.js.map +0 -1
  421. package/dist/esm/db/sql-functions.js +0 -47
  422. package/dist/esm/db/sql-functions.js.map +0 -1
  423. /package/dist/cjs/{db → store/sqlite}/sql-functions.d.cts +0 -0
  424. /package/dist/cjs/{db → store/sqlite}/sql-functions.d.ts +0 -0
  425. /package/dist/esm/{db → store/sqlite}/sql-functions.d.ts +0 -0
@@ -18,6 +18,32 @@ function _array_like_to_array(arr, len) {
18
18
  function _array_with_holes(arr) {
19
19
  if (Array.isArray(arr)) return arr;
20
20
  }
21
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
22
+ try {
23
+ var info = gen[key](arg);
24
+ var value = info.value;
25
+ } catch (error) {
26
+ reject(error);
27
+ return;
28
+ }
29
+ if (info.done) resolve(value);
30
+ else Promise.resolve(value).then(_next, _throw);
31
+ }
32
+ function _async_to_generator(fn) {
33
+ return function() {
34
+ var self = this, args = arguments;
35
+ return new Promise(function(resolve, reject) {
36
+ var gen = fn.apply(self, args);
37
+ function _next(value) {
38
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
39
+ }
40
+ function _throw(err) {
41
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
42
+ }
43
+ _next(undefined);
44
+ });
45
+ };
46
+ }
21
47
  function _define_property(obj, key, value) {
22
48
  if (key in obj) {
23
49
  Object.defineProperty(obj, key, {
@@ -78,6 +104,105 @@ function _object_spread_props(target, source) {
78
104
  function _to_array(arr) {
79
105
  return _array_with_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_rest();
80
106
  }
107
+ function _ts_generator(thisArg, body) {
108
+ var f, y, t, _ = {
109
+ label: 0,
110
+ sent: function() {
111
+ if (t[0] & 1) throw t[1];
112
+ return t[1];
113
+ },
114
+ trys: [],
115
+ ops: []
116
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
117
+ return d(g, "next", {
118
+ value: verb(0)
119
+ }), d(g, "throw", {
120
+ value: verb(1)
121
+ }), d(g, "return", {
122
+ value: verb(2)
123
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
124
+ value: function() {
125
+ return this;
126
+ }
127
+ }), g;
128
+ function verb(n) {
129
+ return function(v) {
130
+ return step([
131
+ n,
132
+ v
133
+ ]);
134
+ };
135
+ }
136
+ function step(op) {
137
+ if (f) throw new TypeError("Generator is already executing.");
138
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
139
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
140
+ if (y = 0, t) op = [
141
+ op[0] & 2,
142
+ t.value
143
+ ];
144
+ switch(op[0]){
145
+ case 0:
146
+ case 1:
147
+ t = op;
148
+ break;
149
+ case 4:
150
+ _.label++;
151
+ return {
152
+ value: op[1],
153
+ done: false
154
+ };
155
+ case 5:
156
+ _.label++;
157
+ y = op[1];
158
+ op = [
159
+ 0
160
+ ];
161
+ continue;
162
+ case 7:
163
+ op = _.ops.pop();
164
+ _.trys.pop();
165
+ continue;
166
+ default:
167
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
168
+ _ = 0;
169
+ continue;
170
+ }
171
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
172
+ _.label = op[1];
173
+ break;
174
+ }
175
+ if (op[0] === 6 && _.label < t[1]) {
176
+ _.label = t[1];
177
+ t = op;
178
+ break;
179
+ }
180
+ if (t && _.label < t[2]) {
181
+ _.label = t[2];
182
+ _.ops.push(op);
183
+ break;
184
+ }
185
+ if (t[2]) _.ops.pop();
186
+ _.trys.pop();
187
+ continue;
188
+ }
189
+ op = body.call(thisArg, _);
190
+ } catch (e) {
191
+ op = [
192
+ 6,
193
+ e
194
+ ];
195
+ y = 0;
196
+ } finally{
197
+ f = t = 0;
198
+ }
199
+ if (op[0] & 5) throw op[1];
200
+ return {
201
+ value: op[0] ? op[1] : void 0,
202
+ done: true
203
+ };
204
+ }
205
+ }
81
206
  function _unsupported_iterable_to_array(o, minLen) {
82
207
  if (!o) return;
83
208
  if (typeof o === "string") return _array_like_to_array(o, minLen);
@@ -87,16 +212,32 @@ function _unsupported_iterable_to_array(o, minLen) {
87
212
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
88
213
  }
89
214
  var sqlCmd = function sqlCmd(ctx) {
90
- var usage = "usage: ".concat(ctx.name, " ").concat(_indexts.USAGE.sql);
91
- var _parse = (0, _sharedts.parse)(ctx.argv, usage, _object_spread_props(_object_spread({}, _sharedts.FORMAT, _sharedts.CONFIG), {
92
- preset: {
93
- type: 'string'
94
- }
95
- })), values = _parse.values, positionals = _parse.positionals;
96
- var _positionals = _to_array(positionals), sql = _positionals[0], params = _positionals.slice(1);
97
- if (!sql) ctx.usageError(usage);
98
- var format = (0, _sharedts.rowFormatOf)(values);
99
- (0, _sharedts.runSql)(ctx.resolveConfig(values.config), sql, params, format, 'ad-hoc statement', values.preset);
215
+ return _async_to_generator(function() {
216
+ var usage, _parse, values, positionals, _positionals, sql, params, format;
217
+ return _ts_generator(this, function(_state) {
218
+ switch(_state.label){
219
+ case 0:
220
+ usage = "usage: ".concat(ctx.name, " ").concat(_indexts.USAGE.sql);
221
+ _parse = (0, _sharedts.parse)(ctx.argv, usage, _object_spread_props(_object_spread({}, _sharedts.FORMAT, _sharedts.CONFIG), {
222
+ preset: {
223
+ type: 'string'
224
+ }
225
+ })), values = _parse.values, positionals = _parse.positionals;
226
+ _positionals = _to_array(positionals), sql = _positionals[0], params = _positionals.slice(1);
227
+ if (!sql) ctx.usageError(usage);
228
+ format = (0, _sharedts.rowFormatOf)(values);
229
+ return [
230
+ 4,
231
+ (0, _sharedts.runSql)(ctx.resolveConfig(values.config), sql, params, format, 'ad-hoc statement', values.preset)
232
+ ];
233
+ case 1:
234
+ _state.sent();
235
+ return [
236
+ 2
237
+ ];
238
+ }
239
+ });
240
+ })();
100
241
  };
101
242
  var _default = sqlCmd;
102
243
  /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/cli/sql.ts"],"sourcesContent":["import { USAGE } from './index.ts';\nimport { CONFIG, FORMAT, parse, rowFormatOf, runSql } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst sqlCmd: Command = (ctx) => {\n const usage = `usage: ${ctx.name} ${USAGE.sql}`;\n const { values, positionals } = parse(ctx.argv, usage, { ...FORMAT, ...CONFIG, preset: { type: 'string' } });\n const [sql, ...params] = positionals;\n if (!sql) ctx.usageError(usage);\n const format = rowFormatOf(values);\n runSql(ctx.resolveConfig(values.config as string | undefined), sql, params, format, 'ad-hoc statement', values.preset as string | undefined);\n};\nexport default sqlCmd;\n"],"names":["sqlCmd","ctx","usage","USAGE","name","sql","parse","argv","FORMAT","CONFIG","preset","type","values","positionals","params","usageError","format","rowFormatOf","runSql","resolveConfig","config"],"mappings":";;;;+BAYA;;;eAAA;;;uBAZsB;wBACqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG3D,IAAMA,SAAkB,gBAACC;IACvB,IAAMC,QAAQ,AAAC,UAAqBC,OAAZF,IAAIG,IAAI,EAAC,KAAa,OAAVD,cAAK,CAACE,GAAG;IAC7C,IAAgCC,SAAAA,IAAAA,eAAK,EAACL,IAAIM,IAAI,EAAEL,OAAO,wCAAKM,gBAAM,EAAKC,gBAAM;QAAEC,QAAQ;YAAEC,MAAM;QAAS;SAAhGC,SAAwBN,OAAxBM,QAAQC,cAAgBP,OAAhBO;IAChB,IAAyBA,yBAAAA,cAAlBR,MAAkBQ,iBAAb,AAAGC,SAAUD,mBAAb;IACZ,IAAI,CAACR,KAAKJ,IAAIc,UAAU,CAACb;IACzB,IAAMc,SAASC,IAAAA,qBAAW,EAACL;IAC3BM,IAAAA,gBAAM,EAACjB,IAAIkB,aAAa,CAACP,OAAOQ,MAAM,GAAyBf,KAAKS,QAAQE,QAAQ,oBAAoBJ,OAAOF,MAAM;AACvH;IACA,WAAeV"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/cli/sql.ts"],"sourcesContent":["import { USAGE } from './index.ts';\nimport { CONFIG, FORMAT, parse, rowFormatOf, runSql } from './shared.ts';\nimport type { Command } from './types.ts';\n\nconst sqlCmd: Command = async (ctx) => {\n const usage = `usage: ${ctx.name} ${USAGE.sql}`;\n const { values, positionals } = parse(ctx.argv, usage, { ...FORMAT, ...CONFIG, preset: { type: 'string' } });\n const [sql, ...params] = positionals;\n if (!sql) ctx.usageError(usage);\n const format = rowFormatOf(values);\n await runSql(ctx.resolveConfig(values.config as string | undefined), sql, params, format, 'ad-hoc statement', values.preset as string | undefined);\n};\nexport default sqlCmd;\n"],"names":["sqlCmd","ctx","usage","parse","values","positionals","sql","params","format","USAGE","name","argv","FORMAT","CONFIG","preset","type","usageError","rowFormatOf","runSql","resolveConfig","config"],"mappings":";;;;+BAYA;;;eAAA;;;uBAZsB;wBACqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG3D,IAAMA,SAAkB,gBAAOC;;YACvBC,OAC0BC,QAAxBC,QAAQC,aACSA,cAAlBC,KAAQC,QAETC;;;;oBAJAN,QAAQ,AAAC,UAAqBO,OAAZR,IAAIS,IAAI,EAAC,KAAa,OAAVD,cAAK,CAACH,GAAG;oBACbH,SAAAA,IAAAA,eAAK,EAACF,IAAIU,IAAI,EAAET,OAAO,wCAAKU,gBAAM,EAAKC,gBAAM;wBAAEC,QAAQ;4BAAEC,MAAM;wBAAS;yBAAhGX,SAAwBD,OAAxBC,QAAQC,cAAgBF,OAAhBE;oBACSA,yBAAAA,cAAlBC,MAAkBD,iBAAVE,SAAUF,mBAAb;oBACZ,IAAI,CAACC,KAAKL,IAAIe,UAAU,CAACd;oBACnBM,SAASS,IAAAA,qBAAW,EAACb;oBAC3B;;wBAAMc,IAAAA,gBAAM,EAACjB,IAAIkB,aAAa,CAACf,OAAOgB,MAAM,GAAyBd,KAAKC,QAAQC,QAAQ,oBAAoBJ,OAAOU,MAAM;;;oBAA3H;;;;;;IACF;;IACA,WAAed"}
@@ -19,11 +19,11 @@ _export(exports, {
19
19
  var _nodepath = require("node:path");
20
20
  var _statusts = require("../commands/status.js");
21
21
  var _indexts = require("../config/index.js");
22
- var _indexts1 = require("../db/index.js");
23
22
  var _distributionts = require("../embed/distribution.js");
24
23
  var _httpts = require("../embed/http.js");
25
24
  var _storets = require("../embed/store.js");
26
25
  var _outputts = require("../output/output.js");
26
+ var _indexts1 = require("../store/index.js");
27
27
  var _indexts2 = require("./index.js");
28
28
  var _sharedts = require("./shared.js");
29
29
  function _array_like_to_array(arr, len) {
@@ -230,17 +230,71 @@ function _unsupported_iterable_to_array(o, minLen) {
230
230
  // Vectors are computed on the first semantic query, not at reconcile, so a tree can have a
231
231
  // semantic-on preset with nothing embedded yet -- reported here because a fast reconcile on
232
232
  // such a tree otherwise reads as "the feature isn't on".
233
- function vectorState(db) {
234
- try {
235
- var row = db.prepare('SELECT COUNT(vector) AS embedded, COUNT(*) - COUNT(vector) AS pending FROM embeddings').get();
236
- return row;
237
- } catch (unused) {
238
- return null;
239
- }
233
+ function vectorState(store) {
234
+ return _async_to_generator(function() {
235
+ var stmt, unused;
236
+ return _ts_generator(this, function(_state) {
237
+ switch(_state.label){
238
+ case 0:
239
+ _state.trys.push([
240
+ 0,
241
+ 3,
242
+ ,
243
+ 4
244
+ ]);
245
+ return [
246
+ 4,
247
+ store.prepare('SELECT COUNT(vector) AS embedded, COUNT(*) - COUNT(vector) AS pending FROM embeddings')
248
+ ];
249
+ case 1:
250
+ stmt = _state.sent();
251
+ return [
252
+ 4,
253
+ stmt.get()
254
+ ];
255
+ case 2:
256
+ return [
257
+ 2,
258
+ _state.sent()
259
+ ];
260
+ case 3:
261
+ unused = _state.sent();
262
+ return [
263
+ 2,
264
+ null
265
+ ];
266
+ case 4:
267
+ return [
268
+ 2
269
+ ];
270
+ }
271
+ });
272
+ })();
240
273
  }
241
- function parseErrorCount(db) {
242
- var row = db.prepare('SELECT COUNT(*) AS n FROM frontmatter WHERE "_parse_error" IS NOT NULL').get();
243
- return row.n;
274
+ function parseErrorCount(store) {
275
+ return _async_to_generator(function() {
276
+ var stmt;
277
+ return _ts_generator(this, function(_state) {
278
+ switch(_state.label){
279
+ case 0:
280
+ return [
281
+ 4,
282
+ store.prepare('SELECT COUNT(*) AS n FROM frontmatter WHERE "_parse_error" IS NOT NULL')
283
+ ];
284
+ case 1:
285
+ stmt = _state.sent();
286
+ return [
287
+ 4,
288
+ stmt.get()
289
+ ];
290
+ case 2:
291
+ return [
292
+ 2,
293
+ _state.sent().n
294
+ ];
295
+ }
296
+ });
297
+ })();
244
298
  }
245
299
  function redactUrl(url) {
246
300
  try {
@@ -273,53 +327,117 @@ function embedReachable(e) {
273
327
  }
274
328
  var status = function status(ctx) {
275
329
  return _async_to_generator(function() {
276
- var _languageDistribution, _process_env_e_key, _cfg_migratedFrom, _cfg_unknownKeys, _cfg_queries, values, format, cfg, _open, db, dbPath, warnings, features, e, hasModel, reachable, _tmp, vectors, presets, staticLanguages, declaredLanguages, detectedLanguages, heartbeat, busyTimeoutMs, keyEnv, result, migrated, shown, total, breakdown, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, line, pid;
330
+ var _ref, _process_env_e_key, _cfg_migratedFrom, _cfg_unknownKeys, _cfg_queries, values, format, cfg, _ref1, store, dbPath, warnings, features, e, hasModel, reachable, _tmp, vectors, _tmp1, presets, staticLanguages, declaredLanguages, detectedLanguages, heartbeat, cacheSchema, busyTimeoutMs, _tmp2, keyEnv, result, _tmp3, migrated, shown, total, breakdown, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, line, pid;
277
331
  return _ts_generator(this, function(_state) {
278
332
  switch(_state.label){
279
333
  case 0:
280
334
  values = (0, _sharedts.parse)(ctx.argv, "usage: ".concat(ctx.name, " ").concat(_indexts2.USAGE.status), _object_spread({}, _sharedts.FORMAT, _sharedts.CONFIG)).values;
281
335
  format = (0, _sharedts.formatOf)(values);
282
336
  cfg = ctx.resolveConfig(values.config);
283
- _open = (0, _indexts1.open)(cfg), db = _open.db, dbPath = _open.dbPath, warnings = _open.warnings;
337
+ return [
338
+ 4,
339
+ (0, _indexts1.openStore)(cfg)
340
+ ];
341
+ case 1:
342
+ _ref1 = _state.sent(), store = _ref1.store, dbPath = _ref1.dbPath, warnings = _ref1.warnings;
284
343
  (0, _sharedts.printWarnings)(warnings);
285
344
  features = (0, _indexts.featureStates)(cfg);
286
345
  e = (0, _indexts.embedConfig)(cfg);
287
346
  hasModel = e ? (0, _storets.modelPresent)(cfg) : false;
288
347
  if (!e) return [
289
348
  3,
290
- 2
349
+ 3
291
350
  ];
292
351
  return [
293
352
  4,
294
353
  embedReachable(e)
295
354
  ];
296
- case 1:
355
+ case 2:
297
356
  _tmp = _state.sent();
298
357
  return [
299
358
  3,
300
- 3
359
+ 4
301
360
  ];
302
- case 2:
303
- _tmp = null;
304
- _state.label = 3;
305
361
  case 3:
362
+ _tmp = null;
363
+ _state.label = 4;
364
+ case 4:
306
365
  reachable = _tmp;
307
- vectors = e ? vectorState(db) : null;
308
- presets = (0, _statusts.presetCoverage)(db, cfg);
366
+ if (!e) return [
367
+ 3,
368
+ 6
369
+ ];
370
+ return [
371
+ 4,
372
+ vectorState(store)
373
+ ];
374
+ case 5:
375
+ _tmp1 = _state.sent();
376
+ return [
377
+ 3,
378
+ 7
379
+ ];
380
+ case 6:
381
+ _tmp1 = null;
382
+ _state.label = 7;
383
+ case 7:
384
+ vectors = _tmp1;
385
+ return [
386
+ 4,
387
+ (0, _statusts.presetCoverage)(store, cfg)
388
+ ];
389
+ case 8:
390
+ presets = _state.sent();
309
391
  staticLanguages = e && e.provider === 'static' ? (0, _storets.readLanguages)(e.model) : undefined;
310
392
  declaredLanguages = staticLanguages && staticLanguages.length > 0 ? staticLanguages : null;
311
- detectedLanguages = (_languageDistribution = (0, _distributionts.languageDistribution)(db)) !== null && _languageDistribution !== void 0 ? _languageDistribution : null;
312
- heartbeat = (0, _indexts1.getMeta)(db, 'watch_heartbeat');
313
- // Derived at open() (F): 3x the largest reconcile this cache has ever held its write
314
- // transaction for, floored at 30s -- read back from the connection rather than
315
- // recomputed here, so this always reports what open() actually set.
316
- busyTimeoutMs = db.prepare('PRAGMA busy_timeout').get().timeout;
393
+ return [
394
+ 4,
395
+ (0, _distributionts.languageDistribution)(store)
396
+ ];
397
+ case 9:
398
+ detectedLanguages = (_ref = _state.sent()) !== null && _ref !== void 0 ? _ref : null;
399
+ return [
400
+ 4,
401
+ (0, _indexts1.getMeta)(store, 'watch_heartbeat')
402
+ ];
403
+ case 10:
404
+ heartbeat = _state.sent();
405
+ return [
406
+ 4,
407
+ (0, _indexts1.getMeta)(store, 'schema_version')
408
+ ];
409
+ case 11:
410
+ cacheSchema = _state.sent();
411
+ if (!(store.name === 'sqlite')) return [
412
+ 3,
413
+ 14
414
+ ];
415
+ return [
416
+ 4,
417
+ store.prepare('PRAGMA busy_timeout')
418
+ ];
419
+ case 12:
420
+ return [
421
+ 4,
422
+ _state.sent().get()
423
+ ];
424
+ case 13:
425
+ _tmp2 = _state.sent().timeout;
426
+ return [
427
+ 3,
428
+ 15
429
+ ];
430
+ case 14:
431
+ _tmp2 = null;
432
+ _state.label = 15;
433
+ case 15:
434
+ busyTimeoutMs = _tmp2;
317
435
  // The env var holds the token; only its name and whether it is set are ever reported.
318
436
  keyEnv = (e === null || e === void 0 ? void 0 : e.key) ? {
319
437
  name: e.key,
320
438
  set: ((_process_env_e_key = process.env[e.key]) !== null && _process_env_e_key !== void 0 ? _process_env_e_key : '') !== ''
321
439
  } : null;
322
- result = {
440
+ _tmp3 = {
323
441
  config: cfg.configPath,
324
442
  configVersion: _indexts.SUPPORTED_CONFIG_VERSION,
325
443
  migratedFrom: (_cfg_migratedFrom = cfg.migratedFrom) !== null && _cfg_migratedFrom !== void 0 ? _cfg_migratedFrom : null,
@@ -327,37 +445,45 @@ var status = function status(ctx) {
327
445
  tree: cfg.baseDir,
328
446
  cache: (0, _nodepath.dirname)(dbPath),
329
447
  db: dbPath,
330
- cacheSchema: _indexts1.SCHEMA_VERSION,
331
- docs: (0, _indexts1.docCount)(db),
332
- unparseableFrontmatter: parseErrorCount(db),
333
- features: features.on,
334
- featuresOff: features.off,
335
- embed: e ? _object_spread({
336
- provider: e.provider,
337
- model: e.model,
338
- dir: e.provider === 'static' ? (0, _storets.modelDir)(e.model) : null,
339
- url: e.url ? redactUrl(e.url) : null,
340
- reachable: reachable,
341
- keyEnv: keyEnv,
342
- downloaded: hasModel,
343
- languages: declaredLanguages,
344
- detectedLanguages: detectedLanguages
345
- }, vectors !== null && vectors !== void 0 ? vectors : {}) : null,
346
- presets: presets,
347
- queries: Object.keys((_cfg_queries = cfg.queries) !== null && _cfg_queries !== void 0 ? _cfg_queries : {}).length,
348
- watcherPid: (0, _indexts1.getMeta)(db, 'watch_pid'),
349
- watcherHeartbeatSecondsAgo: heartbeat ? Math.round((Date.now() - Date.parse(heartbeat)) / 1000) : null,
350
- busyTimeoutMs: busyTimeoutMs
448
+ cacheSchema: cacheSchema
351
449
  };
450
+ return [
451
+ 4,
452
+ (0, _indexts1.docCount)(store)
453
+ ];
454
+ case 16:
455
+ _tmp3.docs = _state.sent();
456
+ return [
457
+ 4,
458
+ parseErrorCount(store)
459
+ ];
460
+ case 17:
461
+ _tmp3.unparseableFrontmatter = _state.sent(), _tmp3.features = features.on, _tmp3.featuresOff = features.off, _tmp3.embed = e ? _object_spread({
462
+ provider: e.provider,
463
+ model: e.model,
464
+ dir: e.provider === 'static' ? (0, _storets.modelDir)(e.model) : null,
465
+ url: e.url ? redactUrl(e.url) : null,
466
+ reachable: reachable,
467
+ keyEnv: keyEnv,
468
+ downloaded: hasModel,
469
+ languages: declaredLanguages,
470
+ detectedLanguages: detectedLanguages
471
+ }, vectors !== null && vectors !== void 0 ? vectors : {}) : null, _tmp3.presets = presets, _tmp3.queries = Object.keys((_cfg_queries = cfg.queries) !== null && _cfg_queries !== void 0 ? _cfg_queries : {}).length;
472
+ return [
473
+ 4,
474
+ (0, _indexts1.getMeta)(store, 'watch_pid')
475
+ ];
476
+ case 18:
477
+ result = (_tmp3.watcherPid = _state.sent(), _tmp3.watcherHeartbeatSecondsAgo = heartbeat ? Math.round((Date.now() - Date.parse(heartbeat)) / 1000) : null, _tmp3.busyTimeoutMs = busyTimeoutMs, _tmp3);
352
478
  if (format === 'json') {
353
- console.log(JSON.stringify(result, null, 2));
479
+ console.log((0, _outputts.stringifyJson)(result, 2));
354
480
  } else {
355
481
  migrated = cfg.migratedFrom !== undefined ? ", migrated from v".concat(cfg.migratedFrom, " on this run") : '';
356
482
  console.log("config: ".concat(result.config, " (v").concat(_indexts.SUPPORTED_CONFIG_VERSION).concat(migrated, ")"));
357
483
  // A load-time stderr warning has scrolled away by the time anyone looks here.
358
484
  if (cfg.unknownKeys) console.log(" unknown keys, ignored: ".concat(cfg.unknownKeys.join(', ')));
359
485
  console.log("tree: ".concat(result.tree));
360
- console.log("cache: ".concat(result.cache, " (schema ").concat(_indexts1.SCHEMA_VERSION, "; delete this directory to reset)"));
486
+ console.log("cache: ".concat(result.cache, " (schema ").concat(result.cacheSchema, "; delete this directory to reset)"));
361
487
  console.log("docs: ".concat(result.docs).concat(result.unparseableFrontmatter > 0 ? " (".concat(result.unparseableFrontmatter, " with unparseable frontmatter: WHERE _parse_error IS NOT NULL)") : ''));
362
488
  console.log('');
363
489
  console.log((0, _outputts.featuresLine)(features));
@@ -415,9 +541,14 @@ var status = function status(ctx) {
415
541
  console.log("queries: ".concat(result.queries, " saved (").concat(ctx.name, " --list)"));
416
542
  pid = result.watcherPid ? "pid ".concat(result.watcherPid, ", ") : '';
417
543
  console.log(result.watcherHeartbeatSecondsAgo === null ? 'watcher: none' : "watcher: ".concat(pid, "last heartbeat ").concat(result.watcherHeartbeatSecondsAgo, "s ago"));
418
- console.log("sqlite: busy_timeout ".concat(result.busyTimeoutMs, "ms (derived: 3x the largest reconcile this cache has recorded, floored at 30000ms)"));
544
+ if (result.busyTimeoutMs !== null) console.log("sqlite: busy_timeout ".concat(result.busyTimeoutMs, "ms (derived: 3x the largest reconcile this cache has recorded, floored at 30000ms)"));
419
545
  }
420
- db.close();
546
+ return [
547
+ 4,
548
+ store.close()
549
+ ];
550
+ case 19:
551
+ _state.sent();
421
552
  return [
422
553
  2
423
554
  ];
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/cli/status.ts"],"sourcesContent":["import { dirname } from 'node:path';\nimport { presetCoverage } from '../commands/status.ts';\nimport { embedConfig, featureStates, SUPPORTED_CONFIG_VERSION } from '../config/index.ts';\nimport { docCount, getMeta, open, SCHEMA_VERSION } from '../db/index.ts';\nimport { languageDistribution } from '../embed/distribution.ts';\nimport { probeReachable } from '../embed/http.ts';\nimport { isDownloadable, MODEL_FILENAMES, modelDir, modelPresent, readLanguages } from '../embed/store.ts';\nimport { featuresLine, presetsLines } from '../output/output.ts';\nimport { USAGE } from './index.ts';\nimport { CONFIG, FORMAT, formatOf, parse, printWarnings } from './shared.ts';\nimport type { Command } from './types.ts';\n\n// status names what you cannot read off the config file: locations sense chose, values it\n// derived, state it stored. Config content is not echoed -- the config line says which file to\n// read, and duplicating its globs here would create two places that disagree after an edit.\n// The exception is the embed block's url and key, whose effect is remote and otherwise invisible.\n\n// Vectors are computed on the first semantic query, not at reconcile, so a tree can have a\n// semantic-on preset with nothing embedded yet -- reported here because a fast reconcile on\n// such a tree otherwise reads as \"the feature isn't on\".\nfunction vectorState(db: ReturnType<typeof open>['db']): { embedded: number; pending: number } | null {\n try {\n const row = db.prepare('SELECT COUNT(vector) AS embedded, COUNT(*) - COUNT(vector) AS pending FROM embeddings').get() as { embedded: number; pending: number };\n return row;\n } catch {\n return null;\n }\n}\n\nfunction parseErrorCount(db: ReturnType<typeof open>['db']): number {\n const row = db.prepare(`SELECT COUNT(*) AS n FROM frontmatter WHERE \"_parse_error\" IS NOT NULL`).get() as { n: number };\n return row.n;\n}\n\n// A URL can carry credentials in its userinfo (https://user:pass@host/v1). status output gets\n// pasted into issues and transcripts, so it is always safe to paste.\nexport function redactUrl(url: string): string {\n try {\n const parsed = new URL(url);\n if (!parsed.username && !parsed.password) return url;\n parsed.username = '';\n parsed.password = '';\n return `${parsed.toString().replace(/\\/$/, '')} (credentials redacted)`;\n } catch {\n return url;\n }\n}\n\n// A stopped Ollama/LM Studio/Cohere endpoint prints identically to a running one otherwise; any\n// HTTP response counts as reachable (probeReachable), so this only distinguishes up from down.\nasync function embedReachable(e: { provider: string; url?: string }): Promise<boolean | null> {\n if (e.provider === 'static' || (e.provider === 'openai' && !e.url)) return null;\n const base = (e.url ?? 'https://api.cohere.com').replace(/\\/+$/, '');\n return probeReachable(e.provider === 'openai' ? `${base}/models` : base);\n}\n\nconst status: Command = async (ctx) => {\n const { values } = parse(ctx.argv, `usage: ${ctx.name} ${USAGE.status}`, { ...FORMAT, ...CONFIG });\n const format = formatOf(values);\n const cfg = ctx.resolveConfig(values.config as string | undefined);\n const { db, dbPath, warnings } = open(cfg);\n printWarnings(warnings);\n\n const features = featureStates(cfg);\n const e = embedConfig(cfg);\n const hasModel = e ? modelPresent(cfg) : false;\n const reachable = e ? await embedReachable(e) : null;\n const vectors = e ? vectorState(db) : null;\n const presets = presetCoverage(db, cfg);\n const staticLanguages = e && e.provider === 'static' ? readLanguages(e.model) : undefined;\n const declaredLanguages = staticLanguages && staticLanguages.length > 0 ? staticLanguages : null;\n const detectedLanguages = languageDistribution(db) ?? null;\n const heartbeat = getMeta(db, 'watch_heartbeat');\n // Derived at open() (F): 3x the largest reconcile this cache has ever held its write\n // transaction for, floored at 30s -- read back from the connection rather than\n // recomputed here, so this always reports what open() actually set.\n const busyTimeoutMs = (db.prepare('PRAGMA busy_timeout').get() as { timeout: number }).timeout;\n // The env var holds the token; only its name and whether it is set are ever reported.\n const keyEnv = e?.key ? { name: e.key, set: (process.env[e.key] ?? '') !== '' } : null;\n const result = {\n config: cfg.configPath,\n configVersion: SUPPORTED_CONFIG_VERSION,\n migratedFrom: cfg.migratedFrom ?? null,\n unknownConfigKeys: cfg.unknownKeys ?? null,\n tree: cfg.baseDir,\n cache: dirname(dbPath),\n db: dbPath,\n cacheSchema: SCHEMA_VERSION,\n docs: docCount(db),\n unparseableFrontmatter: parseErrorCount(db),\n features: features.on,\n featuresOff: features.off,\n embed: e ? { provider: e.provider, model: e.model, dir: e.provider === 'static' ? modelDir(e.model) : null, url: e.url ? redactUrl(e.url) : null, reachable, keyEnv, downloaded: hasModel, languages: declaredLanguages, detectedLanguages, ...(vectors ?? {}) } : null,\n presets,\n queries: Object.keys(cfg.queries ?? {}).length,\n watcherPid: getMeta(db, 'watch_pid'),\n watcherHeartbeatSecondsAgo: heartbeat ? Math.round((Date.now() - Date.parse(heartbeat)) / 1000) : null,\n busyTimeoutMs,\n };\n\n if (format === 'json') {\n console.log(JSON.stringify(result, null, 2));\n } else {\n const migrated = cfg.migratedFrom !== undefined ? `, migrated from v${cfg.migratedFrom} on this run` : '';\n console.log(`config: ${result.config} (v${SUPPORTED_CONFIG_VERSION}${migrated})`);\n // A load-time stderr warning has scrolled away by the time anyone looks here.\n if (cfg.unknownKeys) console.log(` unknown keys, ignored: ${cfg.unknownKeys.join(', ')}`);\n console.log(`tree: ${result.tree}`);\n console.log(`cache: ${result.cache} (schema ${SCHEMA_VERSION}; delete this directory to reset)`);\n console.log(`docs: ${result.docs}${result.unparseableFrontmatter > 0 ? ` (${result.unparseableFrontmatter} with unparseable frontmatter: WHERE _parse_error IS NOT NULL)` : ''}`);\n console.log('');\n console.log(featuresLine(features));\n // One authoritative block, off states included: an absent model reads as a degraded search,\n // not as an empty corpus.\n if (!e) console.log('embed: off (no preset asks for vectors)');\n else {\n console.log(`embed: ${e.provider} ${e.model}`);\n if (e.provider === 'static') console.log(` model: ${modelDir(e.model)} (${hasModel ? 'present' : `missing, ${isDownloadable(e.model) ? `fetches automatically at first search, or run \\`${ctx.name} download\\` to prefetch` : `no ${MODEL_FILENAMES} in that directory`}`})`);\n if (declaredLanguages) console.log(` languages: ${declaredLanguages.join(', ')} (declared by the model card)`);\n // Cohere defaults to api.cohere.com with no url in the config; show it anyway so the\n // reachability probe below has something to name.\n if (e.url || reachable !== null) {\n const shown = e.url ? redactUrl(e.url) : 'https://api.cohere.com (default)';\n console.log(` url: ${shown}${reachable === null ? '' : reachable ? ' (reachable)' : ' (unreachable)'}`);\n }\n if (keyEnv) console.log(` key: env ${keyEnv.name} (${keyEnv.set ? 'set' : 'NOT SET'})`);\n if (!hasModel) console.log(' vectors: off until the model is present; search runs on words and links');\n else if (vectors) console.log(` vectors: ${vectors.embedded} embedded, ${vectors.pending} pending (embedded on the first semantic search)`);\n if (detectedLanguages) {\n const total = Object.values(detectedLanguages).reduce((a, b) => a + b, 0);\n const breakdown = Object.entries(detectedLanguages)\n .sort((a, b) => b[1] - a[1])\n .map(([code, n]) => `${code} ${Math.round((n / total) * 100)}%`)\n .join(', ');\n console.log(` detected: ${breakdown} (${total} chunks classified)`);\n }\n }\n console.log('');\n for (const line of presetsLines(presets)) console.log(line);\n console.log('');\n console.log(`queries: ${result.queries} saved (${ctx.name} --list)`);\n const pid = result.watcherPid ? `pid ${result.watcherPid}, ` : '';\n console.log(result.watcherHeartbeatSecondsAgo === null ? 'watcher: none' : `watcher: ${pid}last heartbeat ${result.watcherHeartbeatSecondsAgo}s ago`);\n console.log(`sqlite: busy_timeout ${result.busyTimeoutMs}ms (derived: 3x the largest reconcile this cache has recorded, floored at 30000ms)`);\n }\n db.close();\n};\nexport default status;\n"],"names":["redactUrl","vectorState","db","row","prepare","get","parseErrorCount","n","url","parsed","URL","username","password","toString","replace","embedReachable","e","base","provider","probeReachable","status","ctx","languageDistribution","process","cfg","values","format","open","dbPath","warnings","features","hasModel","reachable","vectors","presets","staticLanguages","declaredLanguages","detectedLanguages","heartbeat","busyTimeoutMs","keyEnv","result","migrated","shown","total","breakdown","line","pid","parse","argv","USAGE","name","FORMAT","CONFIG","formatOf","resolveConfig","config","printWarnings","featureStates","embedConfig","modelPresent","presetCoverage","readLanguages","model","undefined","length","getMeta","timeout","key","set","env","configPath","configVersion","SUPPORTED_CONFIG_VERSION","migratedFrom","unknownConfigKeys","unknownKeys","tree","baseDir","cache","dirname","cacheSchema","SCHEMA_VERSION","docs","docCount","unparseableFrontmatter","on","featuresOff","off","embed","dir","modelDir","downloaded","languages","queries","Object","keys","watcherPid","watcherHeartbeatSecondsAgo","Math","round","Date","now","console","log","JSON","stringify","join","featuresLine","isDownloadable","MODEL_FILENAMES","embedded","pending","reduce","a","b","entries","sort","map","code","presetsLines","close"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/cli/status.ts"],"sourcesContent":["import { dirname } from 'node:path';\nimport { presetCoverage } from '../commands/status.ts';\nimport { embedConfig, featureStates, SUPPORTED_CONFIG_VERSION } from '../config/index.ts';\nimport { languageDistribution } from '../embed/distribution.ts';\nimport { probeReachable } from '../embed/http.ts';\nimport { isDownloadable, MODEL_FILENAMES, modelDir, modelPresent, readLanguages } from '../embed/store.ts';\nimport { featuresLine, presetsLines, stringifyJson } from '../output/output.ts';\nimport { docCount, getMeta, openStore } from '../store/index.ts';\nimport type { Store } from '../store/types.ts';\nimport { USAGE } from './index.ts';\nimport { CONFIG, FORMAT, formatOf, parse, printWarnings } from './shared.ts';\nimport type { Command } from './types.ts';\n\n// status names what you cannot read off the config file: locations sense chose, values it\n// derived, state it stored. Config content is not echoed -- the config line says which file to\n// read, and duplicating its globs here would create two places that disagree after an edit.\n// The exception is the embed block's url and key, whose effect is remote and otherwise invisible.\n\n// Vectors are computed on the first semantic query, not at reconcile, so a tree can have a\n// semantic-on preset with nothing embedded yet -- reported here because a fast reconcile on\n// such a tree otherwise reads as \"the feature isn't on\".\nasync function vectorState(store: Store): Promise<{ embedded: number; pending: number } | null> {\n try {\n const stmt = await store.prepare('SELECT COUNT(vector) AS embedded, COUNT(*) - COUNT(vector) AS pending FROM embeddings');\n return (await stmt.get()) as { embedded: number; pending: number };\n } catch {\n return null;\n }\n}\n\nasync function parseErrorCount(store: Store): Promise<number> {\n const stmt = await store.prepare(`SELECT COUNT(*) AS n FROM frontmatter WHERE \"_parse_error\" IS NOT NULL`);\n return ((await stmt.get()) as { n: number }).n;\n}\n\n// A URL can carry credentials in its userinfo (https://user:pass@host/v1). status output gets\n// pasted into issues and transcripts, so it is always safe to paste.\nexport function redactUrl(url: string): string {\n try {\n const parsed = new URL(url);\n if (!parsed.username && !parsed.password) return url;\n parsed.username = '';\n parsed.password = '';\n return `${parsed.toString().replace(/\\/$/, '')} (credentials redacted)`;\n } catch {\n return url;\n }\n}\n\n// A stopped Ollama/LM Studio/Cohere endpoint prints identically to a running one otherwise; any\n// HTTP response counts as reachable (probeReachable), so this only distinguishes up from down.\nasync function embedReachable(e: { provider: string; url?: string }): Promise<boolean | null> {\n if (e.provider === 'static' || (e.provider === 'openai' && !e.url)) return null;\n const base = (e.url ?? 'https://api.cohere.com').replace(/\\/+$/, '');\n return probeReachable(e.provider === 'openai' ? `${base}/models` : base);\n}\n\nconst status: Command = async (ctx) => {\n const { values } = parse(ctx.argv, `usage: ${ctx.name} ${USAGE.status}`, { ...FORMAT, ...CONFIG });\n const format = formatOf(values);\n const cfg = ctx.resolveConfig(values.config as string | undefined);\n const { store, dbPath, warnings } = await openStore(cfg);\n printWarnings(warnings);\n\n const features = featureStates(cfg);\n const e = embedConfig(cfg);\n const hasModel = e ? modelPresent(cfg) : false;\n const reachable = e ? await embedReachable(e) : null;\n const vectors = e ? await vectorState(store) : null;\n const presets = await presetCoverage(store, cfg);\n const staticLanguages = e && e.provider === 'static' ? readLanguages(e.model) : undefined;\n const declaredLanguages = staticLanguages && staticLanguages.length > 0 ? staticLanguages : null;\n const detectedLanguages = (await languageDistribution(store)) ?? null;\n const heartbeat = await getMeta(store, 'watch_heartbeat');\n // Written by the store's open() on every open, so it is this cache's true version on either\n // store (sqlite 18, duckdb 2); a version mismatch already triggered a rebuild before this read.\n const cacheSchema = await getMeta(store, 'schema_version');\n // Derived at open() (F): 3x the largest reconcile this cache has ever held its write\n // transaction for, floored at 30s -- read back from the connection rather than\n // recomputed here, so this always reports what open() actually set. The pragma is\n // sqlite-engine-specific; other stores have no such setting and report null.\n const busyTimeoutMs = store.name === 'sqlite' ? ((await (await store.prepare('PRAGMA busy_timeout')).get()) as { timeout: number }).timeout : null;\n // The env var holds the token; only its name and whether it is set are ever reported.\n const keyEnv = e?.key ? { name: e.key, set: (process.env[e.key] ?? '') !== '' } : null;\n const result = {\n config: cfg.configPath,\n configVersion: SUPPORTED_CONFIG_VERSION,\n migratedFrom: cfg.migratedFrom ?? null,\n unknownConfigKeys: cfg.unknownKeys ?? null,\n tree: cfg.baseDir,\n cache: dirname(dbPath),\n db: dbPath,\n cacheSchema,\n docs: await docCount(store),\n unparseableFrontmatter: await parseErrorCount(store),\n features: features.on,\n featuresOff: features.off,\n embed: e ? { provider: e.provider, model: e.model, dir: e.provider === 'static' ? modelDir(e.model) : null, url: e.url ? redactUrl(e.url) : null, reachable, keyEnv, downloaded: hasModel, languages: declaredLanguages, detectedLanguages, ...(vectors ?? {}) } : null,\n presets,\n queries: Object.keys(cfg.queries ?? {}).length,\n watcherPid: await getMeta(store, 'watch_pid'),\n watcherHeartbeatSecondsAgo: heartbeat ? Math.round((Date.now() - Date.parse(heartbeat)) / 1000) : null,\n busyTimeoutMs,\n };\n\n if (format === 'json') {\n console.log(stringifyJson(result, 2));\n } else {\n const migrated = cfg.migratedFrom !== undefined ? `, migrated from v${cfg.migratedFrom} on this run` : '';\n console.log(`config: ${result.config} (v${SUPPORTED_CONFIG_VERSION}${migrated})`);\n // A load-time stderr warning has scrolled away by the time anyone looks here.\n if (cfg.unknownKeys) console.log(` unknown keys, ignored: ${cfg.unknownKeys.join(', ')}`);\n console.log(`tree: ${result.tree}`);\n console.log(`cache: ${result.cache} (schema ${result.cacheSchema}; delete this directory to reset)`);\n console.log(`docs: ${result.docs}${result.unparseableFrontmatter > 0 ? ` (${result.unparseableFrontmatter} with unparseable frontmatter: WHERE _parse_error IS NOT NULL)` : ''}`);\n console.log('');\n console.log(featuresLine(features));\n // One authoritative block, off states included: an absent model reads as a degraded search,\n // not as an empty corpus.\n if (!e) console.log('embed: off (no preset asks for vectors)');\n else {\n console.log(`embed: ${e.provider} ${e.model}`);\n if (e.provider === 'static') console.log(` model: ${modelDir(e.model)} (${hasModel ? 'present' : `missing, ${isDownloadable(e.model) ? `fetches automatically at first search, or run \\`${ctx.name} download\\` to prefetch` : `no ${MODEL_FILENAMES} in that directory`}`})`);\n if (declaredLanguages) console.log(` languages: ${declaredLanguages.join(', ')} (declared by the model card)`);\n // Cohere defaults to api.cohere.com with no url in the config; show it anyway so the\n // reachability probe below has something to name.\n if (e.url || reachable !== null) {\n const shown = e.url ? redactUrl(e.url) : 'https://api.cohere.com (default)';\n console.log(` url: ${shown}${reachable === null ? '' : reachable ? ' (reachable)' : ' (unreachable)'}`);\n }\n if (keyEnv) console.log(` key: env ${keyEnv.name} (${keyEnv.set ? 'set' : 'NOT SET'})`);\n if (!hasModel) console.log(' vectors: off until the model is present; search runs on words and links');\n else if (vectors) console.log(` vectors: ${vectors.embedded} embedded, ${vectors.pending} pending (embedded on the first semantic search)`);\n if (detectedLanguages) {\n const total = Object.values(detectedLanguages).reduce((a, b) => a + b, 0);\n const breakdown = Object.entries(detectedLanguages)\n .sort((a, b) => b[1] - a[1])\n .map(([code, n]) => `${code} ${Math.round((n / total) * 100)}%`)\n .join(', ');\n console.log(` detected: ${breakdown} (${total} chunks classified)`);\n }\n }\n console.log('');\n for (const line of presetsLines(presets)) console.log(line);\n console.log('');\n console.log(`queries: ${result.queries} saved (${ctx.name} --list)`);\n const pid = result.watcherPid ? `pid ${result.watcherPid}, ` : '';\n console.log(result.watcherHeartbeatSecondsAgo === null ? 'watcher: none' : `watcher: ${pid}last heartbeat ${result.watcherHeartbeatSecondsAgo}s ago`);\n if (result.busyTimeoutMs !== null) console.log(`sqlite: busy_timeout ${result.busyTimeoutMs}ms (derived: 3x the largest reconcile this cache has recorded, floored at 30000ms)`);\n }\n await store.close();\n};\nexport default status;\n"],"names":["redactUrl","vectorState","store","stmt","prepare","get","parseErrorCount","n","url","parsed","URL","username","password","toString","replace","embedReachable","e","base","provider","probeReachable","status","ctx","process","cfg","values","format","dbPath","warnings","features","hasModel","reachable","vectors","presets","staticLanguages","declaredLanguages","detectedLanguages","heartbeat","cacheSchema","busyTimeoutMs","keyEnv","result","migrated","shown","total","breakdown","line","pid","parse","argv","USAGE","name","FORMAT","CONFIG","formatOf","resolveConfig","config","openStore","printWarnings","featureStates","embedConfig","modelPresent","presetCoverage","readLanguages","model","undefined","length","languageDistribution","getMeta","timeout","key","set","env","configPath","configVersion","SUPPORTED_CONFIG_VERSION","migratedFrom","unknownConfigKeys","unknownKeys","tree","baseDir","cache","dirname","db","docCount","docs","unparseableFrontmatter","on","featuresOff","off","embed","dir","modelDir","downloaded","languages","queries","Object","keys","watcherPid","watcherHeartbeatSecondsAgo","Math","round","Date","now","console","log","stringifyJson","join","featuresLine","isDownloadable","MODEL_FILENAMES","embedded","pending","reduce","a","b","entries","sort","map","code","presetsLines","close"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { DatabaseSync } from 'node:sqlite';
2
1
  import type { FeatureName, ResolvedConfig, SearchOverrides } from '../config/index.js';
3
2
  import type { Row } from '../output/output.js';
3
+ import type { Store } from '../store/types.js';
4
4
  import type { PresetCoverage } from './status.js';
5
5
  export interface TreeMap {
6
6
  docs: {
@@ -18,4 +18,4 @@ export interface TreeMap {
18
18
  recent: Row[];
19
19
  recentCaveat: string | null;
20
20
  }
21
- export declare function mapTree(db: DatabaseSync, cfg: ResolvedConfig, overrides?: SearchOverrides): TreeMap;
21
+ export declare function mapTree(store: Store, cfg: ResolvedConfig, overrides?: SearchOverrides): Promise<TreeMap>;
@@ -1,6 +1,6 @@
1
- import type { DatabaseSync } from 'node:sqlite';
2
1
  import type { FeatureName, ResolvedConfig, SearchOverrides } from '../config/index.js';
3
2
  import type { Row } from '../output/output.js';
3
+ import type { Store } from '../store/types.js';
4
4
  import type { PresetCoverage } from './status.js';
5
5
  export interface TreeMap {
6
6
  docs: {
@@ -18,4 +18,4 @@ export interface TreeMap {
18
18
  recent: Row[];
19
19
  recentCaveat: string | null;
20
20
  }
21
- export declare function mapTree(db: DatabaseSync, cfg: ResolvedConfig, overrides?: SearchOverrides): TreeMap;
21
+ export declare function mapTree(store: Store, cfg: ResolvedConfig, overrides?: SearchOverrides): Promise<TreeMap>;