sensemaking 0.23.0 → 0.24.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.
- package/README.md +13 -9
- package/dist/cjs/cli/index.d.cts +1 -1
- package/dist/cjs/cli/index.d.ts +1 -1
- package/dist/cjs/cli/index.js +1 -1
- package/dist/cjs/cli/index.js.map +1 -1
- package/dist/cjs/cli/named.js +6 -2
- package/dist/cjs/cli/named.js.map +1 -1
- package/dist/cjs/cli/search.js +6 -2
- package/dist/cjs/cli/search.js.map +1 -1
- package/dist/cjs/cli/shared.d.cts +2 -0
- package/dist/cjs/cli/shared.d.ts +2 -0
- package/dist/cjs/cli/shared.js +24 -0
- package/dist/cjs/cli/shared.js.map +1 -1
- package/dist/cjs/commands/map.js +2 -2
- package/dist/cjs/commands/map.js.map +1 -1
- package/dist/cjs/commands/search.d.cts +10 -0
- package/dist/cjs/commands/search.d.ts +10 -0
- package/dist/cjs/commands/search.js +488 -180
- package/dist/cjs/commands/search.js.map +1 -1
- package/dist/cjs/output/output.js +45 -8
- package/dist/cjs/output/output.js.map +1 -1
- package/dist/cjs/output/search-error.d.cts +1 -0
- package/dist/cjs/output/search-error.d.ts +1 -0
- package/dist/cjs/output/search-error.js +28 -4
- package/dist/cjs/output/search-error.js.map +1 -1
- package/dist/cjs/scan/frontmatter.js +1 -1
- package/dist/cjs/scan/frontmatter.js.map +1 -1
- package/dist/cjs/scan/index.js +1 -0
- package/dist/cjs/scan/index.js.map +1 -1
- package/dist/cjs/store/batch.d.cts +4 -0
- package/dist/cjs/store/batch.d.ts +4 -0
- package/dist/cjs/store/batch.js +80 -0
- package/dist/cjs/store/batch.js.map +1 -0
- package/dist/cjs/store/duckdb/batch.d.cts +0 -4
- package/dist/cjs/store/duckdb/batch.d.ts +0 -4
- package/dist/cjs/store/duckdb/batch.js +5 -27
- package/dist/cjs/store/duckdb/batch.js.map +1 -1
- package/dist/cjs/store/duckdb/fieldStats.js +4 -7
- package/dist/cjs/store/duckdb/fieldStats.js.map +1 -1
- package/dist/cjs/store/duckdb/lexical.d.cts +2 -2
- package/dist/cjs/store/duckdb/lexical.d.ts +2 -2
- package/dist/cjs/store/duckdb/lexical.js +215 -64
- package/dist/cjs/store/duckdb/lexical.js.map +1 -1
- package/dist/cjs/store/duckdb/reconcile.js +7 -2
- package/dist/cjs/store/duckdb/reconcile.js.map +1 -1
- package/dist/cjs/store/duckdb/store.js +1 -3
- package/dist/cjs/store/duckdb/store.js.map +1 -1
- package/dist/cjs/store/duckdb/vectors.js +13 -8
- package/dist/cjs/store/duckdb/vectors.js.map +1 -1
- package/dist/cjs/store/native.js +5 -4
- package/dist/cjs/store/native.js.map +1 -1
- package/dist/cjs/store/open.js +7 -0
- package/dist/cjs/store/open.js.map +1 -1
- package/dist/cjs/store/shared.js.map +1 -1
- package/dist/cjs/store/sqlite/lexical.js +1 -4
- package/dist/cjs/store/sqlite/lexical.js.map +1 -1
- package/dist/cjs/store/sqlite/store.js +1 -4
- package/dist/cjs/store/sqlite/store.js.map +1 -1
- package/dist/cjs/store/sqlite/vectors.js +78 -24
- package/dist/cjs/store/sqlite/vectors.js.map +1 -1
- package/dist/cjs/store/turso/connection.d.cts +3 -0
- package/dist/cjs/store/turso/connection.d.ts +3 -0
- package/dist/cjs/store/turso/connection.js +302 -31
- package/dist/cjs/store/turso/connection.js.map +1 -1
- package/dist/cjs/store/turso/lexical-text.d.cts +1 -0
- package/dist/cjs/store/turso/lexical-text.d.ts +1 -0
- package/dist/cjs/store/turso/lexical-text.js +40 -0
- package/dist/cjs/store/turso/lexical-text.js.map +1 -0
- package/dist/cjs/store/turso/lexical.js +89 -16
- package/dist/cjs/store/turso/lexical.js.map +1 -1
- package/dist/cjs/store/turso/native.d.cts +4 -0
- package/dist/cjs/store/turso/native.d.ts +4 -0
- package/dist/cjs/store/turso/native.js +9 -0
- package/dist/cjs/store/turso/native.js.map +1 -1
- package/dist/cjs/store/turso/open.d.cts +1 -1
- package/dist/cjs/store/turso/open.d.ts +1 -1
- package/dist/cjs/store/turso/open.js +83 -10
- package/dist/cjs/store/turso/open.js.map +1 -1
- package/dist/cjs/store/turso/reconcile.d.cts +1 -1
- package/dist/cjs/store/turso/reconcile.d.ts +1 -1
- package/dist/cjs/store/turso/reconcile.js +6 -2
- package/dist/cjs/store/turso/reconcile.js.map +1 -1
- package/dist/cjs/store/turso/sql-functions.d.cts +1 -0
- package/dist/cjs/store/turso/sql-functions.d.ts +1 -0
- package/dist/cjs/store/turso/sql-functions.js +174 -0
- package/dist/cjs/store/turso/sql-functions.js.map +1 -0
- package/dist/cjs/store/turso/store.js +105 -4
- package/dist/cjs/store/turso/store.js.map +1 -1
- package/dist/cjs/store/turso/vectors.js +50 -14
- package/dist/cjs/store/turso/vectors.js.map +1 -1
- package/dist/cjs/store/types.d.cts +1 -2
- package/dist/cjs/store/types.d.ts +1 -2
- package/dist/cjs/store/types.js +1 -4
- package/dist/cjs/store/types.js.map +1 -1
- package/dist/cjs/store/vectors.d.cts +7 -0
- package/dist/cjs/store/vectors.d.ts +7 -0
- package/dist/cjs/store/vectors.js +8 -0
- package/dist/cjs/store/vectors.js.map +1 -1
- package/dist/cjs/text/segment.d.cts +13 -0
- package/dist/cjs/text/segment.d.ts +13 -0
- package/dist/cjs/text/segment.js +109 -4
- package/dist/cjs/text/segment.js.map +1 -1
- package/dist/esm/cli/index.d.ts +1 -1
- package/dist/esm/cli/index.js +1 -1
- package/dist/esm/cli/index.js.map +1 -1
- package/dist/esm/cli/named.js +6 -2
- package/dist/esm/cli/named.js.map +1 -1
- package/dist/esm/cli/search.js +5 -1
- package/dist/esm/cli/search.js.map +1 -1
- package/dist/esm/cli/shared.d.ts +2 -0
- package/dist/esm/cli/shared.js +19 -0
- package/dist/esm/cli/shared.js.map +1 -1
- package/dist/esm/commands/map.js +2 -2
- package/dist/esm/commands/map.js.map +1 -1
- package/dist/esm/commands/search.d.ts +10 -0
- package/dist/esm/commands/search.js +271 -91
- package/dist/esm/commands/search.js.map +1 -1
- package/dist/esm/output/output.js +27 -4
- package/dist/esm/output/output.js.map +1 -1
- package/dist/esm/output/search-error.d.ts +1 -0
- package/dist/esm/output/search-error.js +17 -1
- package/dist/esm/output/search-error.js.map +1 -1
- package/dist/esm/scan/frontmatter.js +1 -1
- package/dist/esm/scan/frontmatter.js.map +1 -1
- package/dist/esm/scan/index.js +1 -0
- package/dist/esm/scan/index.js.map +1 -1
- package/dist/esm/store/batch.d.ts +4 -0
- package/dist/esm/store/batch.js +21 -0
- package/dist/esm/store/batch.js.map +1 -0
- package/dist/esm/store/duckdb/batch.d.ts +0 -4
- package/dist/esm/store/duckdb/batch.js +2 -19
- package/dist/esm/store/duckdb/batch.js.map +1 -1
- package/dist/esm/store/duckdb/fieldStats.js +4 -7
- package/dist/esm/store/duckdb/fieldStats.js.map +1 -1
- package/dist/esm/store/duckdb/lexical.d.ts +2 -2
- package/dist/esm/store/duckdb/lexical.js +94 -40
- package/dist/esm/store/duckdb/lexical.js.map +1 -1
- package/dist/esm/store/duckdb/reconcile.js +2 -2
- package/dist/esm/store/duckdb/reconcile.js.map +1 -1
- package/dist/esm/store/duckdb/store.js +2 -4
- package/dist/esm/store/duckdb/store.js.map +1 -1
- package/dist/esm/store/duckdb/vectors.js +26 -13
- package/dist/esm/store/duckdb/vectors.js.map +1 -1
- package/dist/esm/store/native.js +5 -4
- package/dist/esm/store/native.js.map +1 -1
- package/dist/esm/store/open.js +7 -0
- package/dist/esm/store/open.js.map +1 -1
- package/dist/esm/store/shared.js +1 -2
- package/dist/esm/store/shared.js.map +1 -1
- package/dist/esm/store/sqlite/lexical.js +2 -5
- package/dist/esm/store/sqlite/lexical.js.map +1 -1
- package/dist/esm/store/sqlite/store.js +1 -4
- package/dist/esm/store/sqlite/store.js.map +1 -1
- package/dist/esm/store/sqlite/vectors.js +48 -19
- package/dist/esm/store/sqlite/vectors.js.map +1 -1
- package/dist/esm/store/turso/connection.d.ts +3 -0
- package/dist/esm/store/turso/connection.js +61 -5
- package/dist/esm/store/turso/connection.js.map +1 -1
- package/dist/esm/store/turso/lexical-text.d.ts +1 -0
- package/dist/esm/store/turso/lexical-text.js +12 -0
- package/dist/esm/store/turso/lexical-text.js.map +1 -0
- package/dist/esm/store/turso/lexical.js +56 -21
- package/dist/esm/store/turso/lexical.js.map +1 -1
- package/dist/esm/store/turso/native.d.ts +4 -0
- package/dist/esm/store/turso/native.js +8 -0
- package/dist/esm/store/turso/native.js.map +1 -1
- package/dist/esm/store/turso/open.d.ts +1 -1
- package/dist/esm/store/turso/open.js +7 -7
- package/dist/esm/store/turso/open.js.map +1 -1
- package/dist/esm/store/turso/reconcile.d.ts +1 -1
- package/dist/esm/store/turso/reconcile.js +6 -2
- package/dist/esm/store/turso/reconcile.js.map +1 -1
- package/dist/esm/store/turso/sql-functions.d.ts +1 -0
- package/dist/esm/store/turso/sql-functions.js +179 -0
- package/dist/esm/store/turso/sql-functions.js.map +1 -0
- package/dist/esm/store/turso/store.js +32 -7
- package/dist/esm/store/turso/store.js.map +1 -1
- package/dist/esm/store/turso/vectors.js +19 -10
- package/dist/esm/store/turso/vectors.js.map +1 -1
- package/dist/esm/store/types.d.ts +1 -2
- package/dist/esm/store/types.js +6 -8
- package/dist/esm/store/types.js.map +1 -1
- package/dist/esm/store/vectors.d.ts +7 -0
- package/dist/esm/store/vectors.js +8 -2
- package/dist/esm/store/vectors.js.map +1 -1
- package/dist/esm/text/segment.d.ts +13 -0
- package/dist/esm/text/segment.js +70 -0
- package/dist/esm/text/segment.js.map +1 -1
- package/package.json +4 -3
- package/schema.json +1 -1
- package/skills/sense/EXAMPLES.md +3 -3
- package/skills/sense/SKILL.md +6 -6
- package/skills/sense-setup/SKILL.md +1 -1
|
@@ -9,14 +9,28 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
get cacheFilePath () {
|
|
13
|
+
return cacheFilePath;
|
|
14
|
+
},
|
|
12
15
|
get checkpointWal () {
|
|
13
16
|
return checkpointWal;
|
|
14
17
|
},
|
|
15
18
|
get createConnection () {
|
|
16
19
|
return createConnection;
|
|
20
|
+
},
|
|
21
|
+
get fileSize () {
|
|
22
|
+
return fileSize;
|
|
23
|
+
},
|
|
24
|
+
get reclaimSpace () {
|
|
25
|
+
return reclaimSpace;
|
|
17
26
|
}
|
|
18
27
|
});
|
|
28
|
+
var _promises = require("node:fs/promises");
|
|
29
|
+
var _batchts = require("../batch.js");
|
|
30
|
+
var _sharedts = require("../shared.js");
|
|
19
31
|
var _transactionts = require("../transaction.js");
|
|
32
|
+
var _nativets = require("./native.js");
|
|
33
|
+
var _sqlfunctionsts = require("./sql-functions.js");
|
|
20
34
|
function _array_like_to_array(arr, len) {
|
|
21
35
|
if (len == null || len > arr.length) len = arr.length;
|
|
22
36
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
@@ -211,6 +225,17 @@ function _async_to_generator(fn) {
|
|
|
211
225
|
function _class_call_check(instance, Constructor) {
|
|
212
226
|
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
|
|
213
227
|
}
|
|
228
|
+
function _define_property(obj, key, value) {
|
|
229
|
+
if (key in obj) {
|
|
230
|
+
Object.defineProperty(obj, key, {
|
|
231
|
+
value: value,
|
|
232
|
+
enumerable: true,
|
|
233
|
+
configurable: true,
|
|
234
|
+
writable: true
|
|
235
|
+
});
|
|
236
|
+
} else obj[key] = value;
|
|
237
|
+
return obj;
|
|
238
|
+
}
|
|
214
239
|
function _iterable_to_array(iter) {
|
|
215
240
|
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
|
|
216
241
|
return Array.from(iter);
|
|
@@ -219,6 +244,44 @@ function _iterable_to_array(iter) {
|
|
|
219
244
|
function _non_iterable_spread() {
|
|
220
245
|
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
221
246
|
}
|
|
247
|
+
function _object_spread(target) {
|
|
248
|
+
for(var i = 1; i < arguments.length; i++){
|
|
249
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
250
|
+
var ownKeys = Object.keys(source);
|
|
251
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
252
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
253
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
254
|
+
}));
|
|
255
|
+
}
|
|
256
|
+
ownKeys.forEach(function(key) {
|
|
257
|
+
_define_property(target, key, source[key]);
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
return target;
|
|
261
|
+
}
|
|
262
|
+
function ownKeys(object, enumerableOnly) {
|
|
263
|
+
var keys = Object.keys(object);
|
|
264
|
+
if (Object.getOwnPropertySymbols) {
|
|
265
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
266
|
+
if (enumerableOnly) {
|
|
267
|
+
symbols = symbols.filter(function(sym) {
|
|
268
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
keys.push.apply(keys, symbols);
|
|
272
|
+
}
|
|
273
|
+
return keys;
|
|
274
|
+
}
|
|
275
|
+
function _object_spread_props(target, source) {
|
|
276
|
+
source = source != null ? source : {};
|
|
277
|
+
if (Object.getOwnPropertyDescriptors) Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
278
|
+
else {
|
|
279
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
280
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
return target;
|
|
284
|
+
}
|
|
222
285
|
function _overload_yield(value, kind) {
|
|
223
286
|
this.v = value;
|
|
224
287
|
this.k = kind;
|
|
@@ -476,6 +539,168 @@ function checkpointWal(db) {
|
|
|
476
539
|
});
|
|
477
540
|
})();
|
|
478
541
|
}
|
|
542
|
+
function cacheFilePath(conn) {
|
|
543
|
+
return _async_to_generator(function() {
|
|
544
|
+
var _rows_find, rows;
|
|
545
|
+
return _ts_generator(this, function(_state) {
|
|
546
|
+
switch(_state.label){
|
|
547
|
+
case 0:
|
|
548
|
+
return [
|
|
549
|
+
4,
|
|
550
|
+
conn.prepare('PRAGMA database_list')
|
|
551
|
+
];
|
|
552
|
+
case 1:
|
|
553
|
+
return [
|
|
554
|
+
4,
|
|
555
|
+
_state.sent().all()
|
|
556
|
+
];
|
|
557
|
+
case 2:
|
|
558
|
+
rows = _state.sent();
|
|
559
|
+
return [
|
|
560
|
+
2,
|
|
561
|
+
((_rows_find = rows.find(function(r) {
|
|
562
|
+
return r.name === 'main';
|
|
563
|
+
})) === null || _rows_find === void 0 ? void 0 : _rows_find.file) || null
|
|
564
|
+
];
|
|
565
|
+
}
|
|
566
|
+
});
|
|
567
|
+
})();
|
|
568
|
+
}
|
|
569
|
+
function fileSize(path) {
|
|
570
|
+
return _async_to_generator(function() {
|
|
571
|
+
var unused;
|
|
572
|
+
return _ts_generator(this, function(_state) {
|
|
573
|
+
switch(_state.label){
|
|
574
|
+
case 0:
|
|
575
|
+
_state.trys.push([
|
|
576
|
+
0,
|
|
577
|
+
2,
|
|
578
|
+
,
|
|
579
|
+
3
|
|
580
|
+
]);
|
|
581
|
+
return [
|
|
582
|
+
4,
|
|
583
|
+
(0, _promises.stat)(path)
|
|
584
|
+
];
|
|
585
|
+
case 1:
|
|
586
|
+
return [
|
|
587
|
+
2,
|
|
588
|
+
_state.sent().size
|
|
589
|
+
];
|
|
590
|
+
case 2:
|
|
591
|
+
unused = _state.sent();
|
|
592
|
+
return [
|
|
593
|
+
2,
|
|
594
|
+
null
|
|
595
|
+
];
|
|
596
|
+
case 3:
|
|
597
|
+
return [
|
|
598
|
+
2
|
|
599
|
+
];
|
|
600
|
+
}
|
|
601
|
+
});
|
|
602
|
+
})();
|
|
603
|
+
}
|
|
604
|
+
function reclaimSpace(path) {
|
|
605
|
+
return _async_to_generator(function() {
|
|
606
|
+
var turso, db, size, err;
|
|
607
|
+
return _ts_generator(this, function(_state) {
|
|
608
|
+
switch(_state.label){
|
|
609
|
+
case 0:
|
|
610
|
+
_state.trys.push([
|
|
611
|
+
0,
|
|
612
|
+
12,
|
|
613
|
+
,
|
|
614
|
+
13
|
|
615
|
+
]);
|
|
616
|
+
return [
|
|
617
|
+
4,
|
|
618
|
+
(0, _nativets.tursoApi)()
|
|
619
|
+
];
|
|
620
|
+
case 1:
|
|
621
|
+
turso = _state.sent();
|
|
622
|
+
return [
|
|
623
|
+
4,
|
|
624
|
+
turso.connect(path, _object_spread_props(_object_spread({}, _nativets.CONNECT_OPTS), {
|
|
625
|
+
experimental: _to_consumable_array(_nativets.CONNECT_OPTS.experimental).concat([
|
|
626
|
+
'vacuum'
|
|
627
|
+
])
|
|
628
|
+
}))
|
|
629
|
+
];
|
|
630
|
+
case 2:
|
|
631
|
+
db = _state.sent();
|
|
632
|
+
_state.label = 3;
|
|
633
|
+
case 3:
|
|
634
|
+
_state.trys.push([
|
|
635
|
+
3,
|
|
636
|
+
,
|
|
637
|
+
9,
|
|
638
|
+
11
|
|
639
|
+
]);
|
|
640
|
+
return [
|
|
641
|
+
4,
|
|
642
|
+
db.exec('VACUUM')
|
|
643
|
+
];
|
|
644
|
+
case 4:
|
|
645
|
+
_state.sent();
|
|
646
|
+
return [
|
|
647
|
+
4,
|
|
648
|
+
fileSize(path)
|
|
649
|
+
];
|
|
650
|
+
case 5:
|
|
651
|
+
size = _state.sent();
|
|
652
|
+
if (!(size !== null)) return [
|
|
653
|
+
3,
|
|
654
|
+
7
|
|
655
|
+
];
|
|
656
|
+
return [
|
|
657
|
+
4,
|
|
658
|
+
(0, _sharedts.setMeta)(createConnection(db), 'compact_size', String(size))
|
|
659
|
+
];
|
|
660
|
+
case 6:
|
|
661
|
+
_state.sent();
|
|
662
|
+
_state.label = 7;
|
|
663
|
+
case 7:
|
|
664
|
+
return [
|
|
665
|
+
4,
|
|
666
|
+
checkpointWal(db)
|
|
667
|
+
];
|
|
668
|
+
case 8:
|
|
669
|
+
_state.sent();
|
|
670
|
+
return [
|
|
671
|
+
3,
|
|
672
|
+
11
|
|
673
|
+
];
|
|
674
|
+
case 9:
|
|
675
|
+
return [
|
|
676
|
+
4,
|
|
677
|
+
db.close()
|
|
678
|
+
];
|
|
679
|
+
case 10:
|
|
680
|
+
_state.sent();
|
|
681
|
+
return [
|
|
682
|
+
7
|
|
683
|
+
];
|
|
684
|
+
case 11:
|
|
685
|
+
return [
|
|
686
|
+
3,
|
|
687
|
+
13
|
|
688
|
+
];
|
|
689
|
+
case 12:
|
|
690
|
+
err = _state.sent();
|
|
691
|
+
console.error("sense: turso VACUUM failed, the cache will keep the space until one succeeds: ".concat(err.message));
|
|
692
|
+
return [
|
|
693
|
+
3,
|
|
694
|
+
13
|
|
695
|
+
];
|
|
696
|
+
case 13:
|
|
697
|
+
return [
|
|
698
|
+
2
|
|
699
|
+
];
|
|
700
|
+
}
|
|
701
|
+
});
|
|
702
|
+
})();
|
|
703
|
+
}
|
|
479
704
|
function createConnection(db) {
|
|
480
705
|
var conn = {
|
|
481
706
|
exec: function exec(sql) {
|
|
@@ -505,7 +730,7 @@ function createConnection(db) {
|
|
|
505
730
|
_ = TursoStatementWrapper.bind;
|
|
506
731
|
return [
|
|
507
732
|
4,
|
|
508
|
-
db.prepare(sql)
|
|
733
|
+
db.prepare((0, _sqlfunctionsts.rewriteFunctions)(sql))
|
|
509
734
|
];
|
|
510
735
|
case 1:
|
|
511
736
|
return [
|
|
@@ -519,8 +744,8 @@ function createConnection(db) {
|
|
|
519
744
|
});
|
|
520
745
|
})();
|
|
521
746
|
},
|
|
522
|
-
runBatch: //
|
|
523
|
-
//
|
|
747
|
+
runBatch: // Folds a plain INSERT into one multi-row VALUES statement (shared rewriteInsert, ../batch.ts):
|
|
748
|
+
// no bind-variable ceiling to chunk against, measured empirically. UPDATE/DELETE keep the per-row loop.
|
|
524
749
|
function runBatch(sql, paramRows) {
|
|
525
750
|
return _async_to_generator(function() {
|
|
526
751
|
return _ts_generator(this, function(_state) {
|
|
@@ -533,13 +758,18 @@ function createConnection(db) {
|
|
|
533
758
|
4,
|
|
534
759
|
(0, _transactionts.withTransaction)(conn, function() {
|
|
535
760
|
return _async_to_generator(function() {
|
|
536
|
-
var stmt, _stmt, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, row, err;
|
|
761
|
+
var rewritten, stmt, stmt1, _stmt, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, row, err;
|
|
537
762
|
return _ts_generator(this, function(_state) {
|
|
538
763
|
switch(_state.label){
|
|
539
764
|
case 0:
|
|
765
|
+
rewritten = (0, _batchts.rewriteInsert)(sql, paramRows.length);
|
|
766
|
+
if (!rewritten) return [
|
|
767
|
+
3,
|
|
768
|
+
7
|
|
769
|
+
];
|
|
540
770
|
return [
|
|
541
771
|
4,
|
|
542
|
-
db.prepare(sql)
|
|
772
|
+
db.prepare(rewritten.sql)
|
|
543
773
|
];
|
|
544
774
|
case 1:
|
|
545
775
|
stmt = _state.sent();
|
|
@@ -548,53 +778,94 @@ function createConnection(db) {
|
|
|
548
778
|
_state.trys.push([
|
|
549
779
|
2,
|
|
550
780
|
,
|
|
551
|
-
|
|
552
|
-
|
|
781
|
+
4,
|
|
782
|
+
6
|
|
553
783
|
]);
|
|
554
|
-
|
|
555
|
-
|
|
784
|
+
// One flat array, not spread: spreading tens of thousands of args hits a JS call-stack
|
|
785
|
+
// limit well before turso enforces any variable-count ceiling (measured; see PLAN.md).
|
|
786
|
+
return [
|
|
787
|
+
4,
|
|
788
|
+
stmt.run(paramRows.flat())
|
|
789
|
+
];
|
|
556
790
|
case 3:
|
|
557
|
-
_state.
|
|
791
|
+
_state.sent();
|
|
792
|
+
return [
|
|
558
793
|
3,
|
|
559
|
-
|
|
794
|
+
6
|
|
795
|
+
];
|
|
796
|
+
case 4:
|
|
797
|
+
return [
|
|
798
|
+
4,
|
|
799
|
+
stmt.close()
|
|
800
|
+
];
|
|
801
|
+
case 5:
|
|
802
|
+
_state.sent();
|
|
803
|
+
return [
|
|
804
|
+
7
|
|
805
|
+
];
|
|
806
|
+
case 6:
|
|
807
|
+
return [
|
|
808
|
+
2
|
|
809
|
+
];
|
|
810
|
+
case 7:
|
|
811
|
+
return [
|
|
812
|
+
4,
|
|
813
|
+
db.prepare(sql)
|
|
814
|
+
];
|
|
815
|
+
case 8:
|
|
816
|
+
stmt1 = _state.sent();
|
|
817
|
+
_state.label = 9;
|
|
818
|
+
case 9:
|
|
819
|
+
_state.trys.push([
|
|
560
820
|
9,
|
|
561
|
-
|
|
821
|
+
,
|
|
822
|
+
18,
|
|
823
|
+
20
|
|
824
|
+
]);
|
|
825
|
+
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
826
|
+
_state.label = 10;
|
|
827
|
+
case 10:
|
|
828
|
+
_state.trys.push([
|
|
829
|
+
10,
|
|
830
|
+
15,
|
|
831
|
+
16,
|
|
832
|
+
17
|
|
562
833
|
]);
|
|
563
834
|
_iterator = paramRows[Symbol.iterator]();
|
|
564
|
-
_state.label =
|
|
565
|
-
case
|
|
835
|
+
_state.label = 11;
|
|
836
|
+
case 11:
|
|
566
837
|
if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
|
|
567
838
|
3,
|
|
568
|
-
|
|
839
|
+
14
|
|
569
840
|
];
|
|
570
841
|
row = _step.value;
|
|
571
842
|
return [
|
|
572
843
|
4,
|
|
573
|
-
(_stmt =
|
|
844
|
+
(_stmt = stmt1).run.apply(_stmt, _to_consumable_array(row))
|
|
574
845
|
];
|
|
575
|
-
case
|
|
846
|
+
case 12:
|
|
576
847
|
_state.sent();
|
|
577
|
-
_state.label =
|
|
578
|
-
case
|
|
848
|
+
_state.label = 13;
|
|
849
|
+
case 13:
|
|
579
850
|
_iteratorNormalCompletion = true;
|
|
580
851
|
return [
|
|
581
852
|
3,
|
|
582
|
-
|
|
853
|
+
11
|
|
583
854
|
];
|
|
584
|
-
case
|
|
855
|
+
case 14:
|
|
585
856
|
return [
|
|
586
857
|
3,
|
|
587
|
-
|
|
858
|
+
17
|
|
588
859
|
];
|
|
589
|
-
case
|
|
860
|
+
case 15:
|
|
590
861
|
err = _state.sent();
|
|
591
862
|
_didIteratorError = true;
|
|
592
863
|
_iteratorError = err;
|
|
593
864
|
return [
|
|
594
865
|
3,
|
|
595
|
-
|
|
866
|
+
17
|
|
596
867
|
];
|
|
597
|
-
case
|
|
868
|
+
case 16:
|
|
598
869
|
try {
|
|
599
870
|
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
600
871
|
_iterator.return();
|
|
@@ -607,22 +878,22 @@ function createConnection(db) {
|
|
|
607
878
|
return [
|
|
608
879
|
7
|
|
609
880
|
];
|
|
610
|
-
case
|
|
881
|
+
case 17:
|
|
611
882
|
return [
|
|
612
883
|
3,
|
|
613
|
-
|
|
884
|
+
20
|
|
614
885
|
];
|
|
615
|
-
case
|
|
886
|
+
case 18:
|
|
616
887
|
return [
|
|
617
888
|
4,
|
|
618
|
-
|
|
889
|
+
stmt1.close()
|
|
619
890
|
];
|
|
620
|
-
case
|
|
891
|
+
case 19:
|
|
621
892
|
_state.sent();
|
|
622
893
|
return [
|
|
623
894
|
7
|
|
624
895
|
];
|
|
625
|
-
case
|
|
896
|
+
case 20:
|
|
626
897
|
return [
|
|
627
898
|
2
|
|
628
899
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/store/turso/connection.ts"],"sourcesContent":["import type { Database } from '@tursodatabase/database';\nimport { BEGIN_WRITE, withTransaction } from '../transaction.ts';\nimport type { Connection, RunResult, Statement } from '../types.ts';\n\n// The client's own Statement class isn't re-exported by name from '@tursodatabase/database',\n// so its type is derived structurally from Database.prepare()'s return type instead.\ntype TursoStatement = Awaited<ReturnType<Database['prepare']>>;\n\n// @tursodatabase/database/compat offers a synchronous escape hatch, but it measured only 4-12%\n// faster than this promise client, so this wraps the async client in the same Connection/Statement shape 1:1.\nclass TursoStatementWrapper implements Statement {\n private stmt: TursoStatement;\n\n constructor(stmt: TursoStatement) {\n this.stmt = stmt;\n }\n\n async run(...params: unknown[]): Promise<RunResult> {\n return this.stmt.run(...params);\n }\n\n async get(...params: unknown[]): Promise<unknown> {\n return this.stmt.get(...params);\n }\n\n async all(...params: unknown[]): Promise<unknown[]> {\n return this.stmt.all(...params);\n }\n\n async *iterate(...params: unknown[]): AsyncIterable<unknown> {\n yield* this.stmt.iterate(...params);\n }\n\n columns(): Array<{ name: string }> {\n return this.stmt.columns();\n }\n\n setReadBigInts(enabled: boolean): void {\n this.stmt.safeIntegers(enabled);\n }\n}\n\n// This client leaves the WAL behind for the next opener, where node:sqlite checkpoints on the last\n// close, so a tree reconciled over and over grows one without bound. Best-effort: close must not throw.\nexport async function checkpointWal(db: Database): Promise<void> {\n try {\n await db.exec('PRAGMA wal_checkpoint(TRUNCATE)');\n } catch (err) {\n console.error(`sense: turso WAL checkpoint failed, the -wal file will keep growing until one succeeds: ${(err as Error).message}`);\n }\n}\n\nexport function createConnection(db: Database): Connection {\n const conn: Connection = {\n async exec(sql: string): Promise<void> {\n await db.exec(sql);\n },\n async prepare(sql: string): Promise<Statement> {\n return new TursoStatementWrapper(await db.prepare(sql));\n },\n //
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/store/turso/connection.ts"],"sourcesContent":["import { stat } from 'node:fs/promises';\nimport type { Database } from '@tursodatabase/database';\nimport { rewriteInsert } from '../batch.ts';\nimport { setMeta } from '../shared.ts';\nimport { BEGIN_WRITE, withTransaction } from '../transaction.ts';\nimport type { Connection, RunResult, Statement } from '../types.ts';\nimport { CONNECT_OPTS, tursoApi } from './native.ts';\nimport { rewriteFunctions } from './sql-functions.ts';\n\n// The client's own Statement class isn't re-exported by name from '@tursodatabase/database',\n// so its type is derived structurally from Database.prepare()'s return type instead.\ntype TursoStatement = Awaited<ReturnType<Database['prepare']>>;\n\n// @tursodatabase/database/compat offers a synchronous escape hatch, but it measured only 4-12%\n// faster than this promise client, so this wraps the async client in the same Connection/Statement shape 1:1.\nclass TursoStatementWrapper implements Statement {\n private stmt: TursoStatement;\n\n constructor(stmt: TursoStatement) {\n this.stmt = stmt;\n }\n\n async run(...params: unknown[]): Promise<RunResult> {\n return this.stmt.run(...params);\n }\n\n async get(...params: unknown[]): Promise<unknown> {\n return this.stmt.get(...params);\n }\n\n async all(...params: unknown[]): Promise<unknown[]> {\n return this.stmt.all(...params);\n }\n\n async *iterate(...params: unknown[]): AsyncIterable<unknown> {\n yield* this.stmt.iterate(...params);\n }\n\n columns(): Array<{ name: string }> {\n return this.stmt.columns();\n }\n\n setReadBigInts(enabled: boolean): void {\n this.stmt.safeIntegers(enabled);\n }\n}\n\n// This client leaves the WAL behind for the next opener, where node:sqlite checkpoints on the last\n// close, so a tree reconciled over and over grows one without bound. Best-effort: close must not throw.\nexport async function checkpointWal(db: Database): Promise<void> {\n try {\n await db.exec('PRAGMA wal_checkpoint(TRUNCATE)');\n } catch (err) {\n console.error(`sense: turso WAL checkpoint failed, the -wal file will keep growing until one succeeds: ${(err as Error).message}`);\n }\n}\n\n// The main cache file's path, or null when unresolvable. The store holds a Database and\n// Connection, not a path (PLAN 3.52), so the path is read from the database itself.\nexport async function cacheFilePath(conn: Connection): Promise<string | null> {\n const rows = (await (await conn.prepare('PRAGMA database_list')).all()) as Array<{ name: string; file: string }>;\n return rows.find((r) => r.name === 'main')?.file || null;\n}\n\nexport async function fileSize(path: string): Promise<number | null> {\n try {\n return (await stat(path)).size;\n } catch {\n return null;\n }\n}\n\n// Reclaims turso#8170's FTS space amplification (PLAN 3.41), on a throwaway connection after the\n// store's own has closed: `vacuum` doubles incremental reconcile cost merely by being enabled (3.54).\nexport async function reclaimSpace(path: string): Promise<void> {\n try {\n const turso = await tursoApi();\n const db = await turso.connect(path, { ...CONNECT_OPTS, experimental: [...CONNECT_OPTS.experimental, 'vacuum'] });\n try {\n await db.exec('VACUUM');\n const size = await fileSize(path);\n // Recorded here, not by the caller: this connection is the only one still open on the file.\n if (size !== null) await setMeta(createConnection(db), 'compact_size', String(size));\n await checkpointWal(db);\n } finally {\n await db.close();\n }\n } catch (err) {\n console.error(`sense: turso VACUUM failed, the cache will keep the space until one succeeds: ${(err as Error).message}`);\n }\n}\n\nexport function createConnection(db: Database): Connection {\n const conn: Connection = {\n async exec(sql: string): Promise<void> {\n await db.exec(sql);\n },\n async prepare(sql: string): Promise<Statement> {\n return new TursoStatementWrapper(await db.prepare(rewriteFunctions(sql)));\n },\n // Folds a plain INSERT into one multi-row VALUES statement (shared rewriteInsert, ../batch.ts):\n // no bind-variable ceiling to chunk against, measured empirically. UPDATE/DELETE keep the per-row loop.\n async runBatch(sql: string, paramRows: unknown[][]): Promise<void> {\n if (paramRows.length === 0) return;\n await withTransaction(\n conn,\n async () => {\n const rewritten = rewriteInsert(sql, paramRows.length);\n if (rewritten) {\n const stmt = await db.prepare(rewritten.sql);\n try {\n // One flat array, not spread: spreading tens of thousands of args hits a JS call-stack\n // limit well before turso enforces any variable-count ceiling (measured; see PLAN.md).\n await stmt.run(paramRows.flat());\n } finally {\n await stmt.close();\n }\n return;\n }\n // Finalized here because nothing else will: open() hands back a connection the caller\n // can hold across many batches, and nothing else owns this statement's lifetime.\n const stmt = await db.prepare(sql);\n try {\n for (const row of paramRows) await stmt.run(...row);\n } finally {\n await stmt.close();\n }\n },\n BEGIN_WRITE\n );\n },\n };\n return conn;\n}\n"],"names":["cacheFilePath","checkpointWal","createConnection","fileSize","reclaimSpace","TursoStatementWrapper","stmt","run","params","get","all","iterate","columns","setReadBigInts","enabled","safeIntegers","db","err","exec","console","error","message","conn","rows","prepare","find","r","name","file","path","stat","size","turso","tursoApi","connect","CONNECT_OPTS","experimental","setMeta","String","close","sql","rewriteFunctions","runBatch","paramRows","length","withTransaction","rewritten","row","rewriteInsert","flat","BEGIN_WRITE"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function stemFolded(text: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function stemFolded(text: string): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "stemFolded", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return stemFolded;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _stemmer = require("stemmer");
|
|
12
|
+
var _segmentts = require("../../text/segment.js");
|
|
13
|
+
function stemFolded(text) {
|
|
14
|
+
var out = '';
|
|
15
|
+
var end = 0;
|
|
16
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
17
|
+
try {
|
|
18
|
+
for(var _iterator = (0, _segmentts.searchTokens)(text)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
19
|
+
var token = _step.value;
|
|
20
|
+
out += text.slice(end, token.start).replace(RegExp("[\\u0027\\u2019]", "gu"), ' ');
|
|
21
|
+
out += token.unspaced ? token.text : (0, _stemmer.stemmer)((0, _segmentts.foldForSearch)(token.text));
|
|
22
|
+
end = token.end;
|
|
23
|
+
}
|
|
24
|
+
} catch (err) {
|
|
25
|
+
_didIteratorError = true;
|
|
26
|
+
_iteratorError = err;
|
|
27
|
+
} finally{
|
|
28
|
+
try {
|
|
29
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
30
|
+
_iterator.return();
|
|
31
|
+
}
|
|
32
|
+
} finally{
|
|
33
|
+
if (_didIteratorError) {
|
|
34
|
+
throw _iteratorError;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return out + text.slice(end).replace(RegExp("[\\u0027\\u2019]", "gu"), ' ');
|
|
39
|
+
}
|
|
40
|
+
/* 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; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/store/turso/lexical-text.ts"],"sourcesContent":["import { stemmer } from 'stemmer';\nimport { foldForSearch, searchTokens } from '../../text/segment.ts';\n\nexport function stemFolded(text: string): string {\n let out = '';\n let end = 0;\n for (const token of searchTokens(text)) {\n out += text.slice(end, token.start).replace(/[\\u0027\\u2019]/gu, ' ');\n out += token.unspaced ? token.text : stemmer(foldForSearch(token.text));\n end = token.end;\n }\n return out + text.slice(end).replace(/[\\u0027\\u2019]/gu, ' ');\n}\n"],"names":["stemFolded","text","out","end","searchTokens","token","slice","start","replace","unspaced","stemmer","foldForSearch"],"mappings":";;;;+BAGgBA;;;eAAAA;;;uBAHQ;yBACoB;AAErC,SAASA,WAAWC,IAAY;IACrC,IAAIC,MAAM;IACV,IAAIC,MAAM;QACL,kCAAA,2BAAA;;QAAL,QAAK,YAAeC,IAAAA,uBAAY,EAACH,0BAA5B,SAAA,6BAAA,QAAA,yBAAA,iCAAmC;YAAnC,IAAMI,QAAN;YACHH,OAAOD,KAAKK,KAAK,CAACH,KAAKE,MAAME,KAAK,EAAEC,OAAO,CAAC,kCAAoB;YAChEN,OAAOG,MAAMI,QAAQ,GAAGJ,MAAMJ,IAAI,GAAGS,IAAAA,gBAAO,EAACC,IAAAA,wBAAa,EAACN,MAAMJ,IAAI;YACrEE,MAAME,MAAMF,GAAG;QACjB;;QAJK;QAAA;;;iBAAA,6BAAA;gBAAA;;;gBAAA;sBAAA;;;;IAKL,OAAOD,MAAMD,KAAKK,KAAK,CAACH,KAAKK,OAAO,CAAC,kCAAoB;AAC3D"}
|