sensemaking 0.19.2 → 0.21.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 (221) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/chunk/extract.d.cts +1 -0
  3. package/dist/cjs/chunk/extract.d.ts +1 -0
  4. package/dist/cjs/chunk/extract.js +23 -5
  5. package/dist/cjs/chunk/extract.js.map +1 -1
  6. package/dist/cjs/chunk/index.d.cts +1 -1
  7. package/dist/cjs/chunk/index.d.ts +1 -1
  8. package/dist/cjs/chunk/index.js +3 -0
  9. package/dist/cjs/chunk/index.js.map +1 -1
  10. package/dist/cjs/config/access.d.cts +0 -1
  11. package/dist/cjs/config/access.d.ts +0 -1
  12. package/dist/cjs/config/access.js +10 -17
  13. package/dist/cjs/config/access.js.map +1 -1
  14. package/dist/cjs/config/index.d.cts +1 -1
  15. package/dist/cjs/config/index.d.ts +1 -1
  16. package/dist/cjs/config/index.js +0 -3
  17. package/dist/cjs/config/index.js.map +1 -1
  18. package/dist/cjs/config/types.d.cts +0 -3
  19. package/dist/cjs/config/types.d.ts +0 -3
  20. package/dist/cjs/config/types.js.map +1 -1
  21. package/dist/cjs/config/validate.js +6 -24
  22. package/dist/cjs/config/validate.js.map +1 -1
  23. package/dist/cjs/errors.d.cts +1 -1
  24. package/dist/cjs/errors.d.ts +1 -1
  25. package/dist/cjs/errors.js.map +1 -1
  26. package/dist/cjs/features/links.js +4 -5
  27. package/dist/cjs/features/links.js.map +1 -1
  28. package/dist/cjs/features/sections.js +4 -1
  29. package/dist/cjs/features/sections.js.map +1 -1
  30. package/dist/cjs/scan/pool.d.cts +15 -0
  31. package/dist/cjs/scan/pool.d.ts +15 -0
  32. package/dist/cjs/scan/pool.js +263 -0
  33. package/dist/cjs/scan/pool.js.map +1 -0
  34. package/dist/cjs/scan/reparse.d.cts +2 -0
  35. package/dist/cjs/scan/reparse.d.ts +2 -0
  36. package/dist/cjs/scan/reparse.js +15 -76
  37. package/dist/cjs/scan/reparse.js.map +1 -1
  38. package/dist/cjs/store/builder.d.cts +19 -0
  39. package/dist/cjs/store/builder.d.ts +19 -0
  40. package/dist/cjs/store/builder.js +618 -0
  41. package/dist/cjs/store/builder.js.map +1 -0
  42. package/dist/cjs/store/duckdb/lexical.d.cts +1 -0
  43. package/dist/cjs/store/duckdb/lexical.d.ts +1 -0
  44. package/dist/cjs/store/duckdb/lexical.js +21 -5
  45. package/dist/cjs/store/duckdb/lexical.js.map +1 -1
  46. package/dist/cjs/store/duckdb/open.d.cts +9 -8
  47. package/dist/cjs/store/duckdb/open.d.ts +9 -8
  48. package/dist/cjs/store/duckdb/open.js +77 -123
  49. package/dist/cjs/store/duckdb/open.js.map +1 -1
  50. package/dist/cjs/store/duckdb/reconcile.js +34 -5
  51. package/dist/cjs/store/duckdb/reconcile.js.map +1 -1
  52. package/dist/cjs/store/duckdb/store.d.cts +1 -2
  53. package/dist/cjs/store/duckdb/store.d.ts +1 -2
  54. package/dist/cjs/store/duckdb/store.js +1 -26
  55. package/dist/cjs/store/duckdb/store.js.map +1 -1
  56. package/dist/cjs/store/embed-scope.d.cts +2 -0
  57. package/dist/cjs/store/embed-scope.d.ts +2 -0
  58. package/dist/cjs/store/embed-scope.js +85 -0
  59. package/dist/cjs/store/embed-scope.js.map +1 -0
  60. package/dist/cjs/store/feature-scope.d.cts +8 -0
  61. package/dist/cjs/store/feature-scope.d.ts +8 -0
  62. package/dist/cjs/store/feature-scope.js +107 -0
  63. package/dist/cjs/store/feature-scope.js.map +1 -0
  64. package/dist/cjs/store/index.d.cts +8 -3
  65. package/dist/cjs/store/index.d.ts +8 -3
  66. package/dist/cjs/store/index.js +36 -7
  67. package/dist/cjs/store/index.js.map +1 -1
  68. package/dist/cjs/store/open.d.cts +15 -0
  69. package/dist/cjs/store/open.d.ts +15 -0
  70. package/dist/cjs/store/open.js +608 -0
  71. package/dist/cjs/store/open.js.map +1 -0
  72. package/dist/cjs/store/preset-scope.d.cts +3 -0
  73. package/dist/cjs/store/preset-scope.d.ts +3 -0
  74. package/dist/cjs/store/preset-scope.js +293 -0
  75. package/dist/cjs/store/preset-scope.js.map +1 -0
  76. package/dist/cjs/store/reconcile.d.cts +2 -1
  77. package/dist/cjs/store/reconcile.d.ts +2 -1
  78. package/dist/cjs/store/reconcile.js +175 -179
  79. package/dist/cjs/store/reconcile.js.map +1 -1
  80. package/dist/cjs/store/{sqlite/signature.d.cts → signature.d.cts} +0 -3
  81. package/dist/cjs/store/{sqlite/signature.d.ts → signature.d.ts} +0 -3
  82. package/dist/cjs/store/signature.js +164 -0
  83. package/dist/cjs/store/signature.js.map +1 -0
  84. package/dist/cjs/store/sqlite/lexical.d.cts +1 -1
  85. package/dist/cjs/store/sqlite/lexical.d.ts +1 -1
  86. package/dist/cjs/store/sqlite/lexical.js +2 -2
  87. package/dist/cjs/store/sqlite/lexical.js.map +1 -1
  88. package/dist/cjs/store/sqlite/open.d.cts +8 -9
  89. package/dist/cjs/store/sqlite/open.d.ts +8 -9
  90. package/dist/cjs/store/sqlite/open.js +82 -311
  91. package/dist/cjs/store/sqlite/open.js.map +1 -1
  92. package/dist/cjs/store/sqlite/reconcile.d.cts +1 -1
  93. package/dist/cjs/store/sqlite/reconcile.d.ts +1 -1
  94. package/dist/cjs/store/sqlite/reconcile.js +78 -16
  95. package/dist/cjs/store/sqlite/reconcile.js.map +1 -1
  96. package/dist/cjs/store/sqlite/sql-functions.d.cts +1 -1
  97. package/dist/cjs/store/sqlite/sql-functions.d.ts +1 -1
  98. package/dist/cjs/store/sqlite/sql-functions.js +3 -3
  99. package/dist/cjs/store/sqlite/sql-functions.js.map +1 -1
  100. package/dist/cjs/store/sqlite/store.d.cts +1 -2
  101. package/dist/cjs/store/sqlite/store.d.ts +1 -2
  102. package/dist/cjs/store/sqlite/store.js +2 -15
  103. package/dist/cjs/store/sqlite/store.js.map +1 -1
  104. package/dist/cjs/store/turso/open.d.cts +6 -11
  105. package/dist/cjs/store/turso/open.d.ts +6 -11
  106. package/dist/cjs/store/turso/open.js +85 -171
  107. package/dist/cjs/store/turso/open.js.map +1 -1
  108. package/dist/cjs/store/turso/reconcile.d.cts +2 -0
  109. package/dist/cjs/store/turso/reconcile.d.ts +2 -0
  110. package/dist/cjs/store/turso/reconcile.js +88 -8
  111. package/dist/cjs/store/turso/reconcile.js.map +1 -1
  112. package/dist/cjs/store/turso/store.d.cts +1 -2
  113. package/dist/cjs/store/turso/store.d.ts +1 -2
  114. package/dist/cjs/store/turso/store.js +1 -13
  115. package/dist/cjs/store/turso/store.js.map +1 -1
  116. package/dist/cjs/store/types.d.cts +16 -6
  117. package/dist/cjs/store/types.d.ts +16 -6
  118. package/dist/cjs/store/types.js.map +1 -1
  119. package/dist/cjs/text/strip.js +3 -6
  120. package/dist/cjs/text/strip.js.map +1 -1
  121. package/dist/cjs/watch.js +28 -16
  122. package/dist/cjs/watch.js.map +1 -1
  123. package/dist/esm/chunk/extract.d.ts +1 -0
  124. package/dist/esm/chunk/extract.js +10 -2
  125. package/dist/esm/chunk/extract.js.map +1 -1
  126. package/dist/esm/chunk/index.d.ts +1 -1
  127. package/dist/esm/chunk/index.js +1 -1
  128. package/dist/esm/chunk/index.js.map +1 -1
  129. package/dist/esm/config/access.d.ts +0 -1
  130. package/dist/esm/config/access.js +12 -17
  131. package/dist/esm/config/access.js.map +1 -1
  132. package/dist/esm/config/index.d.ts +1 -1
  133. package/dist/esm/config/index.js +1 -1
  134. package/dist/esm/config/index.js.map +1 -1
  135. package/dist/esm/config/types.d.ts +0 -3
  136. package/dist/esm/config/types.js.map +1 -1
  137. package/dist/esm/config/validate.js +6 -22
  138. package/dist/esm/config/validate.js.map +1 -1
  139. package/dist/esm/errors.d.ts +1 -1
  140. package/dist/esm/errors.js.map +1 -1
  141. package/dist/esm/features/links.js +3 -4
  142. package/dist/esm/features/links.js.map +1 -1
  143. package/dist/esm/features/sections.js +4 -1
  144. package/dist/esm/features/sections.js.map +1 -1
  145. package/dist/esm/scan/pool.d.ts +15 -0
  146. package/dist/esm/scan/pool.js +77 -0
  147. package/dist/esm/scan/pool.js.map +1 -0
  148. package/dist/esm/scan/reparse.d.ts +2 -0
  149. package/dist/esm/scan/reparse.js +11 -58
  150. package/dist/esm/scan/reparse.js.map +1 -1
  151. package/dist/esm/store/builder.d.ts +19 -0
  152. package/dist/esm/store/builder.js +163 -0
  153. package/dist/esm/store/builder.js.map +1 -0
  154. package/dist/esm/store/duckdb/lexical.d.ts +1 -0
  155. package/dist/esm/store/duckdb/lexical.js +22 -9
  156. package/dist/esm/store/duckdb/lexical.js.map +1 -1
  157. package/dist/esm/store/duckdb/open.d.ts +9 -8
  158. package/dist/esm/store/duckdb/open.js +36 -58
  159. package/dist/esm/store/duckdb/open.js.map +1 -1
  160. package/dist/esm/store/duckdb/reconcile.js +15 -3
  161. package/dist/esm/store/duckdb/reconcile.js.map +1 -1
  162. package/dist/esm/store/duckdb/store.d.ts +1 -2
  163. package/dist/esm/store/duckdb/store.js +2 -11
  164. package/dist/esm/store/duckdb/store.js.map +1 -1
  165. package/dist/esm/store/embed-scope.d.ts +2 -0
  166. package/dist/esm/store/embed-scope.js +28 -0
  167. package/dist/esm/store/embed-scope.js.map +1 -0
  168. package/dist/esm/store/feature-scope.d.ts +8 -0
  169. package/dist/esm/store/feature-scope.js +49 -0
  170. package/dist/esm/store/feature-scope.js.map +1 -0
  171. package/dist/esm/store/index.d.ts +8 -3
  172. package/dist/esm/store/index.js +22 -7
  173. package/dist/esm/store/index.js.map +1 -1
  174. package/dist/esm/store/open.d.ts +15 -0
  175. package/dist/esm/store/open.js +187 -0
  176. package/dist/esm/store/open.js.map +1 -0
  177. package/dist/esm/store/preset-scope.d.ts +3 -0
  178. package/dist/esm/store/preset-scope.js +77 -0
  179. package/dist/esm/store/preset-scope.js.map +1 -0
  180. package/dist/esm/store/reconcile.d.ts +2 -1
  181. package/dist/esm/store/reconcile.js +33 -6
  182. package/dist/esm/store/reconcile.js.map +1 -1
  183. package/dist/esm/store/{sqlite/signature.d.ts → signature.d.ts} +0 -3
  184. package/dist/esm/store/signature.js +37 -0
  185. package/dist/esm/store/signature.js.map +1 -0
  186. package/dist/esm/store/sqlite/lexical.d.ts +1 -1
  187. package/dist/esm/store/sqlite/lexical.js +4 -4
  188. package/dist/esm/store/sqlite/lexical.js.map +1 -1
  189. package/dist/esm/store/sqlite/open.d.ts +8 -9
  190. package/dist/esm/store/sqlite/open.js +41 -147
  191. package/dist/esm/store/sqlite/open.js.map +1 -1
  192. package/dist/esm/store/sqlite/reconcile.d.ts +1 -1
  193. package/dist/esm/store/sqlite/reconcile.js +14 -14
  194. package/dist/esm/store/sqlite/reconcile.js.map +1 -1
  195. package/dist/esm/store/sqlite/sql-functions.d.ts +1 -1
  196. package/dist/esm/store/sqlite/sql-functions.js +3 -3
  197. package/dist/esm/store/sqlite/sql-functions.js.map +1 -1
  198. package/dist/esm/store/sqlite/store.d.ts +1 -2
  199. package/dist/esm/store/sqlite/store.js +3 -9
  200. package/dist/esm/store/sqlite/store.js.map +1 -1
  201. package/dist/esm/store/turso/open.d.ts +6 -11
  202. package/dist/esm/store/turso/open.js +34 -78
  203. package/dist/esm/store/turso/open.js.map +1 -1
  204. package/dist/esm/store/turso/reconcile.d.ts +2 -0
  205. package/dist/esm/store/turso/reconcile.js +18 -3
  206. package/dist/esm/store/turso/reconcile.js.map +1 -1
  207. package/dist/esm/store/turso/store.d.ts +1 -2
  208. package/dist/esm/store/turso/store.js +2 -7
  209. package/dist/esm/store/turso/store.js.map +1 -1
  210. package/dist/esm/store/types.d.ts +16 -6
  211. package/dist/esm/store/types.js.map +1 -1
  212. package/dist/esm/text/strip.js +3 -4
  213. package/dist/esm/text/strip.js.map +1 -1
  214. package/dist/esm/watch.js +5 -3
  215. package/dist/esm/watch.js.map +1 -1
  216. package/package.json +4 -3
  217. package/schema.json +0 -11
  218. package/dist/cjs/store/sqlite/signature.js +0 -380
  219. package/dist/cjs/store/sqlite/signature.js.map +0 -1
  220. package/dist/esm/store/sqlite/signature.js +0 -58
  221. package/dist/esm/store/sqlite/signature.js.map +0 -1
package/schema.json CHANGED
@@ -101,17 +101,6 @@
101
101
  "chunkTokens": { "type": "integer", "minimum": 1, "description": "Chunk size ceiling in estimated tokens for small-context models; default 500." }
102
102
  }
103
103
  },
104
- "content": {
105
- "type": "object",
106
- "additionalProperties": false,
107
- "description": "Settings for the `content` FTS5 table. Changing anything here rebuilds the content table: FTS5 cannot alter a tokenizer in place, and the prose is stored nowhere else, so every file's text is re-read. Vectors, links, and sections are file-derived and tokenizer-independent, so they are kept. The rebuild announces itself on stderr, naming the content tokenizer as the cause.",
108
- "properties": {
109
- "tokenize": {
110
- "type": "string",
111
- "description": "FTS5 tokenizer for word search, defaulting to `porter unicode61`. Languages written without word spaces (Chinese, Japanese, Thai, Khmer, Lao, Burmese) need no decision here: their text is indexed per grapheme and searched as an ordered grapheme phrase against machine-written sidecar columns, which is substring semantics -- what grep gives, a query matches wherever its exact text occurs, including inside a longer run, and needs no minimum length. What this setting is for is substring matching inside a Latin word, `trigram`, which indexes every three-character window, at the cost of stemming (`running` stops matching `run`), weaker bm25 relevance because trigrams are not words, a larger index, and a floor of three characters. `unicode61 tokenchars '-_'` is the smaller lever, keeping hyphenated terms whole. Naming any tokenizer turns the grapheme-phrase scheme off, on the reasoning that the tree has chosen its own scheme. Built-in choices are unicode61, ascii, porter, and trigram, each with their own options; the value is validated by building a throwaway table with it, so whatever the linked SQLite accepts is accepted here and anything else errors carrying SQLite's own message."
112
- }
113
- }
114
- },
115
104
  "store": {
116
105
  "type": "string",
117
106
  "enum": ["sqlite", "duckdb", "turso"],
@@ -1,380 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get changedSignatureKeys () {
13
- return changedSignatureKeys;
14
- },
15
- get embedIdentityAdopted () {
16
- return embedIdentityAdopted;
17
- },
18
- get rebuildContentTable () {
19
- return rebuildContentTable;
20
- },
21
- get signatureDiff () {
22
- return signatureDiff;
23
- }
24
- });
25
- var _indexts = require("../../config/index.js");
26
- var _indexts1 = require("../../scan/index.js");
27
- var _transactionts = require("../transaction.js");
28
- var _reconcilets = require("./reconcile.js");
29
- function _array_like_to_array(arr, len) {
30
- if (len == null || len > arr.length) len = arr.length;
31
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
32
- return arr2;
33
- }
34
- function _array_with_holes(arr) {
35
- if (Array.isArray(arr)) return arr;
36
- }
37
- function _array_without_holes(arr) {
38
- if (Array.isArray(arr)) return _array_like_to_array(arr);
39
- }
40
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
41
- try {
42
- var info = gen[key](arg);
43
- var value = info.value;
44
- } catch (error) {
45
- reject(error);
46
- return;
47
- }
48
- if (info.done) resolve(value);
49
- else Promise.resolve(value).then(_next, _throw);
50
- }
51
- function _async_to_generator(fn) {
52
- return function() {
53
- var self = this, args = arguments;
54
- return new Promise(function(resolve, reject) {
55
- var gen = fn.apply(self, args);
56
- function _next(value) {
57
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
58
- }
59
- function _throw(err) {
60
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
61
- }
62
- _next(undefined);
63
- });
64
- };
65
- }
66
- function _iterable_to_array(iter) {
67
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
68
- return Array.from(iter);
69
- }
70
- }
71
- function _iterable_to_array_limit(arr, i) {
72
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
73
- if (_i == null) return;
74
- var _arr = [];
75
- var _n = true;
76
- var _d = false;
77
- var _s, _e;
78
- try {
79
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
80
- _arr.push(_s.value);
81
- if (i && _arr.length === i) break;
82
- }
83
- } catch (err) {
84
- _d = true;
85
- _e = err;
86
- } finally{
87
- try {
88
- if (!_n && _i["return"] != null) _i["return"]();
89
- } finally{
90
- if (_d) throw _e;
91
- }
92
- }
93
- return _arr;
94
- }
95
- function _non_iterable_rest() {
96
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
97
- }
98
- function _non_iterable_spread() {
99
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
100
- }
101
- function _sliced_to_array(arr, i) {
102
- return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
103
- }
104
- function _to_consumable_array(arr) {
105
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
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
- }
206
- function _unsupported_iterable_to_array(o, minLen) {
207
- if (!o) return;
208
- if (typeof o === "string") return _array_like_to_array(o, minLen);
209
- var n = Object.prototype.toString.call(o).slice(8, -1);
210
- if (n === "Object" && o.constructor) n = o.constructor.name;
211
- if (n === "Map" || n === "Set") return Array.from(n);
212
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
213
- }
214
- function changedSignatureKeys(before, after) {
215
- var keyOf = function keyOf(part) {
216
- return part.startsWith('preset:') ? part.split(':').slice(0, 2).join(':') : part.split(':')[0];
217
- };
218
- var parse = function parse(sig) {
219
- return new Map(sig.split('|').map(function(part) {
220
- return [
221
- keyOf(part),
222
- part
223
- ];
224
- }));
225
- };
226
- var a = parse(before);
227
- var b = parse(after);
228
- var changed = new Set();
229
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
230
- try {
231
- for(var _iterator = b[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
232
- var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], val = _step_value[1];
233
- if (a.get(key) !== val) changed.add(key);
234
- }
235
- } catch (err) {
236
- _didIteratorError = true;
237
- _iteratorError = err;
238
- } finally{
239
- try {
240
- if (!_iteratorNormalCompletion && _iterator.return != null) {
241
- _iterator.return();
242
- }
243
- } finally{
244
- if (_didIteratorError) {
245
- throw _iteratorError;
246
- }
247
- }
248
- }
249
- var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
250
- try {
251
- for(var _iterator1 = a.keys()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
252
- var key1 = _step1.value;
253
- if (!b.has(key1)) changed.add(key1);
254
- }
255
- } catch (err) {
256
- _didIteratorError1 = true;
257
- _iteratorError1 = err;
258
- } finally{
259
- try {
260
- if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
261
- _iterator1.return();
262
- }
263
- } finally{
264
- if (_didIteratorError1) {
265
- throw _iteratorError1;
266
- }
267
- }
268
- }
269
- return changed;
270
- }
271
- function embedIdentityAdopted(before, after) {
272
- var embedPart = function embedPart(sig) {
273
- return sig.split('|').find(function(p) {
274
- return p.startsWith('embed:');
275
- });
276
- };
277
- var b = embedPart(before);
278
- var a = embedPart(after);
279
- if (b === undefined || a === undefined) return false;
280
- var at = a.indexOf('@');
281
- return b.indexOf('@') === -1 && at !== -1 && a.slice(0, at) === b;
282
- }
283
- function signatureDiff(before, after) {
284
- var changed = changedSignatureKeys(before, after);
285
- var label = function label(key) {
286
- return key === 'embed' ? 'embed settings' : key === 'tokenize' ? 'content tokenizer' : key.startsWith('preset:') ? 'preset "'.concat(key.slice(7), '"') : 'features';
287
- };
288
- return changed.size === 0 ? 'features' : _to_consumable_array(changed).map(label).join(', ');
289
- }
290
- function rebuildContentTable(conn, cfg, baseDir) {
291
- return _async_to_generator(function() {
292
- var stmt, known, _, files, segmenting, warnings, rows, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, file, _warnings, _parseFile, doc, fileWarnings;
293
- return _ts_generator(this, function(_state) {
294
- switch(_state.label){
295
- case 0:
296
- return [
297
- 4,
298
- conn.prepare('SELECT "path" FROM frontmatter')
299
- ];
300
- case 1:
301
- stmt = _state.sent();
302
- _ = Set.bind;
303
- return [
304
- 4,
305
- stmt.all()
306
- ];
307
- case 2:
308
- known = new (_.apply(Set, [
309
- void 0,
310
- _state.sent().map(function(r) {
311
- return r.path;
312
- })
313
- ]));
314
- files = (0, _indexts1.listFiles)(cfg, baseDir).filter(function(f) {
315
- return known.has(f.relPath);
316
- });
317
- segmenting = (0, _indexts.contentTokenize)(cfg) === undefined;
318
- warnings = [];
319
- rows = [];
320
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
321
- try {
322
- for(_iterator = files[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
323
- file = _step.value;
324
- ;
325
- _parseFile = (0, _indexts1.parseFile)(file), doc = _parseFile.doc, fileWarnings = _parseFile.warnings;
326
- (_warnings = warnings).push.apply(_warnings, _to_consumable_array(fileWarnings));
327
- rows.push((0, _reconcilets.contentRow)(doc, segmenting));
328
- }
329
- } catch (err) {
330
- _didIteratorError = true;
331
- _iteratorError = err;
332
- } finally{
333
- try {
334
- if (!_iteratorNormalCompletion && _iterator.return != null) {
335
- _iterator.return();
336
- }
337
- } finally{
338
- if (_didIteratorError) {
339
- throw _iteratorError;
340
- }
341
- }
342
- }
343
- return [
344
- 4,
345
- (0, _transactionts.withTransaction)(conn, function() {
346
- return _async_to_generator(function() {
347
- return _ts_generator(this, function(_state) {
348
- switch(_state.label){
349
- case 0:
350
- if (!(rows.length > 0)) return [
351
- 3,
352
- 2
353
- ];
354
- return [
355
- 4,
356
- conn.runBatch(_reconcilets.INSERT_CONTENT_SQL, rows)
357
- ];
358
- case 1:
359
- _state.sent();
360
- _state.label = 2;
361
- case 2:
362
- return [
363
- 2
364
- ];
365
- }
366
- });
367
- })();
368
- }, _transactionts.BEGIN_WRITE)
369
- ];
370
- case 3:
371
- _state.sent();
372
- return [
373
- 2,
374
- warnings
375
- ];
376
- }
377
- });
378
- })();
379
- }
380
- /* 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 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/store/sqlite/signature.ts"],"sourcesContent":["import type { Config } from '../../config/index.ts';\nimport { contentTokenize } from '../../config/index.ts';\nimport { listFiles, parseFile } from '../../scan/index.ts';\nimport { BEGIN_WRITE, withTransaction } from '../transaction.ts';\nimport type { Connection } from '../types.ts';\nimport { contentRow, INSERT_CONTENT_SQL } from './reconcile.ts';\n\n// open()-lifecycle helpers for a config-signature change (see config.featureSignature's format:\n// global features, embed provider, tokenize, then one segment per preset). Never called from\n// reconcile() itself.\n\n// Segment keys that moved between two feature signatures.\nexport function changedSignatureKeys(before: string, after: string): Set<string> {\n const keyOf = (part: string) => (part.startsWith('preset:') ? part.split(':').slice(0, 2).join(':') : part.split(':')[0]);\n const parse = (sig: string) => new Map(sig.split('|').map((part) => [keyOf(part), part]));\n const a = parse(before);\n const b = parse(after);\n const changed = new Set<string>();\n for (const [key, val] of b) if (a.get(key) !== val) changed.add(key);\n for (const key of a.keys()) if (!b.has(key)) changed.add(key);\n return changed;\n}\n\n// Whether the embed segment only gained its resolved weight identity: same provider and\n// model, no identity recorded before, one now -- adopted into meta without a rebuild.\nexport function embedIdentityAdopted(before: string, after: string): boolean {\n const embedPart = (sig: string) => sig.split('|').find((p) => p.startsWith('embed:'));\n const b = embedPart(before);\n const a = embedPart(after);\n if (b === undefined || a === undefined) return false;\n const at = a.indexOf('@');\n return b.indexOf('@') === -1 && at !== -1 && a.slice(0, at) === b;\n}\n\n// Names what moved, for the rebuild notice.\nexport function signatureDiff(before: string, after: string): string {\n const changed = changedSignatureKeys(before, after);\n const label = (key: string) => (key === 'embed' ? 'embed settings' : key === 'tokenize' ? 'content tokenizer' : key.startsWith('preset:') ? `preset \"${key.slice(7)}\"` : 'features');\n return changed.size === 0 ? 'features' : [...changed].map(label).join(', ');\n}\n\n// Tokenize-only rebuild: only `content` is repopulated (the other tables are tokenizer-independent)\n// and no feature extractors run. Returns per-file warnings, since mtimes stay untouched and reconcile would never reparse them.\nexport async function rebuildContentTable(conn: Connection, cfg: Config, baseDir: string): Promise<string[]> {\n const stmt = await conn.prepare('SELECT \"path\" FROM frontmatter');\n const known = new Set(((await stmt.all()) as Array<{ path: string }>).map((r) => r.path));\n const files = listFiles(cfg, baseDir).filter((f) => known.has(f.relPath));\n const segmenting = contentTokenize(cfg) === undefined;\n const warnings: string[] = [];\n const rows: unknown[][] = [];\n for (const file of files) {\n const { doc, warnings: fileWarnings } = parseFile(file);\n warnings.push(...fileWarnings);\n rows.push(contentRow(doc, segmenting));\n }\n await withTransaction(\n conn,\n async () => {\n if (rows.length > 0) await conn.runBatch(INSERT_CONTENT_SQL, rows);\n },\n BEGIN_WRITE\n );\n return warnings;\n}\n"],"names":["changedSignatureKeys","embedIdentityAdopted","rebuildContentTable","signatureDiff","before","after","keyOf","part","startsWith","split","slice","join","parse","sig","Map","map","a","b","changed","Set","key","val","get","add","keys","has","embedPart","find","p","undefined","at","indexOf","label","size","conn","cfg","baseDir","stmt","known","files","segmenting","warnings","rows","file","parseFile","doc","fileWarnings","prepare","all","r","path","listFiles","filter","f","relPath","contentTokenize","push","contentRow","withTransaction","length","runBatch","INSERT_CONTENT_SQL","BEGIN_WRITE"],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- import { contentTokenize } from '../../config/index.js';
2
- import { listFiles, parseFile } from '../../scan/index.js';
3
- import { BEGIN_WRITE, withTransaction } from '../transaction.js';
4
- import { contentRow, INSERT_CONTENT_SQL } from './reconcile.js';
5
- // open()-lifecycle helpers for a config-signature change (see config.featureSignature's format:
6
- // global features, embed provider, tokenize, then one segment per preset). Never called from
7
- // reconcile() itself.
8
- // Segment keys that moved between two feature signatures.
9
- export function changedSignatureKeys(before, after) {
10
- const keyOf = (part)=>part.startsWith('preset:') ? part.split(':').slice(0, 2).join(':') : part.split(':')[0];
11
- const parse = (sig)=>new Map(sig.split('|').map((part)=>[
12
- keyOf(part),
13
- part
14
- ]));
15
- const a = parse(before);
16
- const b = parse(after);
17
- const changed = new Set();
18
- for (const [key, val] of b)if (a.get(key) !== val) changed.add(key);
19
- for (const key of a.keys())if (!b.has(key)) changed.add(key);
20
- return changed;
21
- }
22
- // Whether the embed segment only gained its resolved weight identity: same provider and
23
- // model, no identity recorded before, one now -- adopted into meta without a rebuild.
24
- export function embedIdentityAdopted(before, after) {
25
- const embedPart = (sig)=>sig.split('|').find((p)=>p.startsWith('embed:'));
26
- const b = embedPart(before);
27
- const a = embedPart(after);
28
- if (b === undefined || a === undefined) return false;
29
- const at = a.indexOf('@');
30
- return b.indexOf('@') === -1 && at !== -1 && a.slice(0, at) === b;
31
- }
32
- // Names what moved, for the rebuild notice.
33
- export function signatureDiff(before, after) {
34
- const changed = changedSignatureKeys(before, after);
35
- const label = (key)=>key === 'embed' ? 'embed settings' : key === 'tokenize' ? 'content tokenizer' : key.startsWith('preset:') ? `preset "${key.slice(7)}"` : 'features';
36
- return changed.size === 0 ? 'features' : [
37
- ...changed
38
- ].map(label).join(', ');
39
- }
40
- // Tokenize-only rebuild: only `content` is repopulated (the other tables are tokenizer-independent)
41
- // and no feature extractors run. Returns per-file warnings, since mtimes stay untouched and reconcile would never reparse them.
42
- export async function rebuildContentTable(conn, cfg, baseDir) {
43
- const stmt = await conn.prepare('SELECT "path" FROM frontmatter');
44
- const known = new Set((await stmt.all()).map((r)=>r.path));
45
- const files = listFiles(cfg, baseDir).filter((f)=>known.has(f.relPath));
46
- const segmenting = contentTokenize(cfg) === undefined;
47
- const warnings = [];
48
- const rows = [];
49
- for (const file of files){
50
- const { doc, warnings: fileWarnings } = parseFile(file);
51
- warnings.push(...fileWarnings);
52
- rows.push(contentRow(doc, segmenting));
53
- }
54
- await withTransaction(conn, async ()=>{
55
- if (rows.length > 0) await conn.runBatch(INSERT_CONTENT_SQL, rows);
56
- }, BEGIN_WRITE);
57
- return warnings;
58
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/store/sqlite/signature.ts"],"sourcesContent":["import type { Config } from '../../config/index.ts';\nimport { contentTokenize } from '../../config/index.ts';\nimport { listFiles, parseFile } from '../../scan/index.ts';\nimport { BEGIN_WRITE, withTransaction } from '../transaction.ts';\nimport type { Connection } from '../types.ts';\nimport { contentRow, INSERT_CONTENT_SQL } from './reconcile.ts';\n\n// open()-lifecycle helpers for a config-signature change (see config.featureSignature's format:\n// global features, embed provider, tokenize, then one segment per preset). Never called from\n// reconcile() itself.\n\n// Segment keys that moved between two feature signatures.\nexport function changedSignatureKeys(before: string, after: string): Set<string> {\n const keyOf = (part: string) => (part.startsWith('preset:') ? part.split(':').slice(0, 2).join(':') : part.split(':')[0]);\n const parse = (sig: string) => new Map(sig.split('|').map((part) => [keyOf(part), part]));\n const a = parse(before);\n const b = parse(after);\n const changed = new Set<string>();\n for (const [key, val] of b) if (a.get(key) !== val) changed.add(key);\n for (const key of a.keys()) if (!b.has(key)) changed.add(key);\n return changed;\n}\n\n// Whether the embed segment only gained its resolved weight identity: same provider and\n// model, no identity recorded before, one now -- adopted into meta without a rebuild.\nexport function embedIdentityAdopted(before: string, after: string): boolean {\n const embedPart = (sig: string) => sig.split('|').find((p) => p.startsWith('embed:'));\n const b = embedPart(before);\n const a = embedPart(after);\n if (b === undefined || a === undefined) return false;\n const at = a.indexOf('@');\n return b.indexOf('@') === -1 && at !== -1 && a.slice(0, at) === b;\n}\n\n// Names what moved, for the rebuild notice.\nexport function signatureDiff(before: string, after: string): string {\n const changed = changedSignatureKeys(before, after);\n const label = (key: string) => (key === 'embed' ? 'embed settings' : key === 'tokenize' ? 'content tokenizer' : key.startsWith('preset:') ? `preset \"${key.slice(7)}\"` : 'features');\n return changed.size === 0 ? 'features' : [...changed].map(label).join(', ');\n}\n\n// Tokenize-only rebuild: only `content` is repopulated (the other tables are tokenizer-independent)\n// and no feature extractors run. Returns per-file warnings, since mtimes stay untouched and reconcile would never reparse them.\nexport async function rebuildContentTable(conn: Connection, cfg: Config, baseDir: string): Promise<string[]> {\n const stmt = await conn.prepare('SELECT \"path\" FROM frontmatter');\n const known = new Set(((await stmt.all()) as Array<{ path: string }>).map((r) => r.path));\n const files = listFiles(cfg, baseDir).filter((f) => known.has(f.relPath));\n const segmenting = contentTokenize(cfg) === undefined;\n const warnings: string[] = [];\n const rows: unknown[][] = [];\n for (const file of files) {\n const { doc, warnings: fileWarnings } = parseFile(file);\n warnings.push(...fileWarnings);\n rows.push(contentRow(doc, segmenting));\n }\n await withTransaction(\n conn,\n async () => {\n if (rows.length > 0) await conn.runBatch(INSERT_CONTENT_SQL, rows);\n },\n BEGIN_WRITE\n );\n return warnings;\n}\n"],"names":["contentTokenize","listFiles","parseFile","BEGIN_WRITE","withTransaction","contentRow","INSERT_CONTENT_SQL","changedSignatureKeys","before","after","keyOf","part","startsWith","split","slice","join","parse","sig","Map","map","a","b","changed","Set","key","val","get","add","keys","has","embedIdentityAdopted","embedPart","find","p","undefined","at","indexOf","signatureDiff","label","size","rebuildContentTable","conn","cfg","baseDir","stmt","prepare","known","all","r","path","files","filter","f","relPath","segmenting","warnings","rows","file","doc","fileWarnings","push","length","runBatch"],"mappings":"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"}