sensemaking 0.25.1 → 0.27.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 +48 -12
- package/dist/cjs/cli/index.d.cts +3 -3
- package/dist/cjs/cli/index.d.ts +3 -3
- package/dist/cjs/cli/index.js +3 -3
- package/dist/cjs/cli/index.js.map +1 -1
- package/dist/cjs/cli/path.js +5 -29
- package/dist/cjs/cli/path.js.map +1 -1
- package/dist/cjs/cli/peek.js +43 -2
- package/dist/cjs/cli/peek.js.map +1 -1
- package/dist/cjs/cli/related.js +4 -3
- package/dist/cjs/cli/related.js.map +1 -1
- package/dist/cjs/cli/search.js +38 -6
- package/dist/cjs/cli/search.js.map +1 -1
- package/dist/cjs/commands/index.d.cts +6 -3
- package/dist/cjs/commands/index.d.ts +6 -3
- package/dist/cjs/commands/index.js +4 -0
- package/dist/cjs/commands/index.js.map +1 -1
- package/dist/cjs/commands/map.d.cts +14 -5
- package/dist/cjs/commands/map.d.ts +14 -5
- package/dist/cjs/commands/map.js +42 -35
- package/dist/cjs/commands/map.js.map +1 -1
- package/dist/cjs/commands/path.d.cts +14 -0
- package/dist/cjs/commands/path.d.ts +14 -0
- package/dist/cjs/commands/path.js +209 -0
- package/dist/cjs/commands/path.js.map +1 -0
- package/dist/cjs/commands/peek.d.cts +25 -2
- package/dist/cjs/commands/peek.d.ts +25 -2
- package/dist/cjs/commands/peek.js +131 -50
- package/dist/cjs/commands/peek.js.map +1 -1
- package/dist/cjs/commands/related.d.cts +16 -3
- package/dist/cjs/commands/related.d.ts +16 -3
- package/dist/cjs/commands/related.js +131 -98
- package/dist/cjs/commands/related.js.map +1 -1
- package/dist/cjs/commands/scope.d.cts +1 -0
- package/dist/cjs/commands/scope.d.ts +1 -0
- package/dist/cjs/commands/scope.js +149 -0
- package/dist/cjs/commands/scope.js.map +1 -1
- package/dist/cjs/commands/search.d.cts +30 -3
- package/dist/cjs/commands/search.d.ts +30 -3
- package/dist/cjs/commands/search.js +240 -73
- package/dist/cjs/commands/search.js.map +1 -1
- package/dist/cjs/commands/signals.d.cts +22 -7
- package/dist/cjs/commands/signals.d.ts +22 -7
- package/dist/cjs/commands/signals.js +77 -15
- package/dist/cjs/commands/signals.js.map +1 -1
- package/dist/cjs/commands/snapshot.d.cts +3 -0
- package/dist/cjs/commands/snapshot.d.ts +3 -0
- package/dist/cjs/commands/snapshot.js +180 -0
- package/dist/cjs/commands/snapshot.js.map +1 -0
- package/dist/cjs/config/load.js +6 -0
- package/dist/cjs/config/load.js.map +1 -1
- package/dist/cjs/embed/cohere.js +41 -16
- package/dist/cjs/embed/cohere.js.map +1 -1
- package/dist/cjs/embed/endpoint.d.cts +2 -0
- package/dist/cjs/embed/endpoint.d.ts +2 -0
- package/dist/cjs/embed/endpoint.js +30 -0
- package/dist/cjs/embed/endpoint.js.map +1 -0
- package/dist/cjs/embed/handoff.d.cts +7 -2
- package/dist/cjs/embed/handoff.d.ts +7 -2
- package/dist/cjs/embed/handoff.js +10 -0
- package/dist/cjs/embed/handoff.js.map +1 -1
- package/dist/cjs/embed/http.d.cts +18 -1
- package/dist/cjs/embed/http.d.ts +18 -1
- package/dist/cjs/embed/http.js +239 -40
- package/dist/cjs/embed/http.js.map +1 -1
- package/dist/cjs/embed/openai.js +39 -17
- package/dist/cjs/embed/openai.js.map +1 -1
- package/dist/cjs/embed/query.d.cts +9 -3
- package/dist/cjs/embed/query.d.ts +9 -3
- package/dist/cjs/embed/query.js +257 -90
- package/dist/cjs/embed/query.js.map +1 -1
- package/dist/cjs/embed/registry.d.cts +2 -2
- package/dist/cjs/embed/registry.d.ts +2 -2
- package/dist/cjs/embed/registry.js +36 -4
- package/dist/cjs/embed/registry.js.map +1 -1
- package/dist/cjs/embed/static.js +6 -2
- package/dist/cjs/embed/static.js.map +1 -1
- package/dist/cjs/embed/store.js +42 -77
- package/dist/cjs/embed/store.js.map +1 -1
- package/dist/cjs/embed/types.d.cts +5 -2
- package/dist/cjs/embed/types.d.ts +5 -2
- package/dist/cjs/embed/types.js.map +1 -1
- package/dist/cjs/features/embed.js +290 -43
- package/dist/cjs/features/embed.js.map +1 -1
- package/dist/cjs/graph/traverse.d.cts +2 -2
- package/dist/cjs/graph/traverse.d.ts +2 -2
- package/dist/cjs/graph/traverse.js +15 -5
- package/dist/cjs/graph/traverse.js.map +1 -1
- package/dist/cjs/index.d.cts +2 -2
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/output/output.d.cts +4 -36
- package/dist/cjs/output/output.d.ts +4 -36
- package/dist/cjs/output/output.js +1 -2
- package/dist/cjs/output/output.js.map +1 -1
- package/dist/cjs/scan/pool.d.cts +2 -1
- package/dist/cjs/scan/pool.d.ts +2 -1
- package/dist/cjs/scan/pool.js +116 -27
- package/dist/cjs/scan/pool.js.map +1 -1
- package/dist/cjs/scan/reparse.d.cts +1 -0
- package/dist/cjs/scan/reparse.d.ts +1 -0
- package/dist/cjs/scan/reparse.js +75 -21
- package/dist/cjs/scan/reparse.js.map +1 -1
- package/dist/cjs/store/builder.d.cts +11 -21
- package/dist/cjs/store/builder.d.ts +11 -21
- package/dist/cjs/store/builder.js +1077 -438
- package/dist/cjs/store/builder.js.map +1 -1
- package/dist/cjs/store/duckdb/connection.js +16 -2
- package/dist/cjs/store/duckdb/connection.js.map +1 -1
- package/dist/cjs/store/duckdb/open.d.cts +1 -1
- package/dist/cjs/store/duckdb/open.d.ts +1 -1
- package/dist/cjs/store/duckdb/open.js +73 -65
- package/dist/cjs/store/duckdb/open.js.map +1 -1
- package/dist/cjs/store/duckdb/reconcile.js +533 -15
- package/dist/cjs/store/duckdb/reconcile.js.map +1 -1
- package/dist/cjs/store/embed-scope.js +19 -9
- package/dist/cjs/store/embed-scope.js.map +1 -1
- package/dist/cjs/store/index.d.cts +6 -0
- package/dist/cjs/store/index.d.ts +6 -0
- package/dist/cjs/store/index.js +8 -4
- package/dist/cjs/store/index.js.map +1 -1
- package/dist/cjs/store/open.d.cts +6 -1
- package/dist/cjs/store/open.d.ts +6 -1
- package/dist/cjs/store/open.js +230 -307
- package/dist/cjs/store/open.js.map +1 -1
- package/dist/cjs/store/readiness.d.cts +5 -0
- package/dist/cjs/store/readiness.d.ts +5 -0
- package/dist/cjs/store/readiness.js +39 -0
- package/dist/cjs/store/readiness.js.map +1 -0
- package/dist/cjs/store/reconcile.d.cts +26 -1
- package/dist/cjs/store/reconcile.d.ts +26 -1
- package/dist/cjs/store/reconcile.js +670 -576
- package/dist/cjs/store/reconcile.js.map +1 -1
- package/dist/cjs/store/signature.d.cts +1 -0
- package/dist/cjs/store/signature.d.ts +1 -0
- package/dist/cjs/store/signature.js +9 -0
- package/dist/cjs/store/signature.js.map +1 -1
- package/dist/cjs/store/sqlite/open.d.cts +1 -1
- package/dist/cjs/store/sqlite/open.d.ts +1 -1
- package/dist/cjs/store/sqlite/open.js +84 -90
- package/dist/cjs/store/sqlite/open.js.map +1 -1
- package/dist/cjs/store/sqlite/reconcile.js.map +1 -1
- package/dist/cjs/store/sqlite/store.js +63 -60
- package/dist/cjs/store/sqlite/store.js.map +1 -1
- package/dist/cjs/store/sqlite/vectors.d.cts +2 -2
- package/dist/cjs/store/sqlite/vectors.d.ts +2 -2
- package/dist/cjs/store/sqlite/vectors.js +8 -4
- package/dist/cjs/store/sqlite/vectors.js.map +1 -1
- package/dist/cjs/store/stages.js.map +1 -1
- package/dist/cjs/store/turso/connection.d.cts +1 -0
- package/dist/cjs/store/turso/connection.d.ts +1 -0
- package/dist/cjs/store/turso/connection.js +319 -94
- package/dist/cjs/store/turso/connection.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 +70 -74
- package/dist/cjs/store/turso/open.js.map +1 -1
- package/dist/cjs/store/turso/store.js +25 -23
- package/dist/cjs/store/turso/store.js.map +1 -1
- package/dist/cjs/store/turso/vectors.d.cts +2 -2
- package/dist/cjs/store/turso/vectors.d.ts +2 -2
- package/dist/cjs/store/turso/vectors.js +26 -16
- package/dist/cjs/store/turso/vectors.js.map +1 -1
- package/dist/cjs/store/types.d.cts +4 -1
- package/dist/cjs/store/types.d.ts +4 -1
- package/dist/cjs/store/types.js.map +1 -1
- package/dist/cjs/store/vectors.d.cts +14 -1
- package/dist/cjs/store/vectors.d.ts +14 -1
- package/dist/cjs/store/vectors.js +61 -0
- package/dist/cjs/store/vectors.js.map +1 -1
- package/dist/cjs/watch.d.cts +6 -0
- package/dist/cjs/watch.d.ts +6 -0
- package/dist/cjs/watch.js +42 -10
- package/dist/cjs/watch.js.map +1 -1
- package/dist/cjs/workers/parse.d.cts +4 -3
- package/dist/cjs/workers/parse.d.ts +4 -3
- package/dist/cjs/workers/parse.js +19 -17
- package/dist/cjs/workers/parse.js.map +1 -1
- package/dist/esm/cli/index.d.ts +3 -3
- package/dist/esm/cli/index.js +3 -3
- package/dist/esm/cli/index.js.map +1 -1
- package/dist/esm/cli/path.js +4 -10
- package/dist/esm/cli/path.js.map +1 -1
- package/dist/esm/cli/peek.js +20 -2
- package/dist/esm/cli/peek.js.map +1 -1
- package/dist/esm/cli/related.js +5 -3
- package/dist/esm/cli/related.js.map +1 -1
- package/dist/esm/cli/search.js +12 -2
- package/dist/esm/cli/search.js.map +1 -1
- package/dist/esm/commands/index.d.ts +6 -3
- package/dist/esm/commands/index.js +1 -0
- package/dist/esm/commands/index.js.map +1 -1
- package/dist/esm/commands/map.d.ts +14 -5
- package/dist/esm/commands/map.js +2 -0
- package/dist/esm/commands/map.js.map +1 -1
- package/dist/esm/commands/path.d.ts +14 -0
- package/dist/esm/commands/path.js +33 -0
- package/dist/esm/commands/path.js.map +1 -0
- package/dist/esm/commands/peek.d.ts +25 -2
- package/dist/esm/commands/peek.js +59 -19
- package/dist/esm/commands/peek.js.map +1 -1
- package/dist/esm/commands/related.d.ts +16 -3
- package/dist/esm/commands/related.js +45 -28
- package/dist/esm/commands/related.js.map +1 -1
- package/dist/esm/commands/scope.d.ts +1 -0
- package/dist/esm/commands/scope.js +58 -0
- package/dist/esm/commands/scope.js.map +1 -1
- package/dist/esm/commands/search.d.ts +30 -3
- package/dist/esm/commands/search.js +95 -20
- package/dist/esm/commands/search.js.map +1 -1
- package/dist/esm/commands/signals.d.ts +22 -7
- package/dist/esm/commands/signals.js +74 -17
- package/dist/esm/commands/signals.js.map +1 -1
- package/dist/esm/commands/snapshot.d.ts +3 -0
- package/dist/esm/commands/snapshot.js +25 -0
- package/dist/esm/commands/snapshot.js.map +1 -0
- package/dist/esm/config/load.js +6 -0
- package/dist/esm/config/load.js.map +1 -1
- package/dist/esm/embed/cohere.js +35 -10
- package/dist/esm/embed/cohere.js.map +1 -1
- package/dist/esm/embed/endpoint.d.ts +2 -0
- package/dist/esm/embed/endpoint.js +11 -0
- package/dist/esm/embed/endpoint.js.map +1 -0
- package/dist/esm/embed/handoff.d.ts +7 -2
- package/dist/esm/embed/handoff.js +7 -0
- package/dist/esm/embed/handoff.js.map +1 -1
- package/dist/esm/embed/http.d.ts +18 -1
- package/dist/esm/embed/http.js +137 -17
- package/dist/esm/embed/http.js.map +1 -1
- package/dist/esm/embed/openai.js +34 -12
- package/dist/esm/embed/openai.js.map +1 -1
- package/dist/esm/embed/query.d.ts +9 -3
- package/dist/esm/embed/query.js +98 -26
- package/dist/esm/embed/query.js.map +1 -1
- package/dist/esm/embed/registry.d.ts +2 -2
- package/dist/esm/embed/registry.js +34 -5
- package/dist/esm/embed/registry.js.map +1 -1
- package/dist/esm/embed/static.js +10 -2
- package/dist/esm/embed/static.js.map +1 -1
- package/dist/esm/embed/store.js +30 -21
- package/dist/esm/embed/store.js.map +1 -1
- package/dist/esm/embed/types.d.ts +5 -2
- package/dist/esm/embed/types.js.map +1 -1
- package/dist/esm/features/embed.js +82 -21
- package/dist/esm/features/embed.js.map +1 -1
- package/dist/esm/graph/traverse.d.ts +2 -2
- package/dist/esm/graph/traverse.js +4 -2
- package/dist/esm/graph/traverse.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/output/output.d.ts +4 -36
- package/dist/esm/output/output.js +1 -2
- package/dist/esm/output/output.js.map +1 -1
- package/dist/esm/scan/pool.d.ts +2 -1
- package/dist/esm/scan/pool.js +80 -23
- package/dist/esm/scan/pool.js.map +1 -1
- package/dist/esm/scan/reparse.d.ts +1 -0
- package/dist/esm/scan/reparse.js +40 -12
- package/dist/esm/scan/reparse.js.map +1 -1
- package/dist/esm/store/builder.d.ts +11 -21
- package/dist/esm/store/builder.js +337 -133
- package/dist/esm/store/builder.js.map +1 -1
- package/dist/esm/store/duckdb/connection.js +9 -1
- package/dist/esm/store/duckdb/connection.js.map +1 -1
- package/dist/esm/store/duckdb/open.d.ts +1 -1
- package/dist/esm/store/duckdb/open.js +13 -9
- package/dist/esm/store/duckdb/open.js.map +1 -1
- package/dist/esm/store/duckdb/reconcile.js +145 -10
- package/dist/esm/store/duckdb/reconcile.js.map +1 -1
- package/dist/esm/store/embed-scope.js +16 -6
- package/dist/esm/store/embed-scope.js.map +1 -1
- package/dist/esm/store/index.d.ts +6 -0
- package/dist/esm/store/index.js +10 -4
- package/dist/esm/store/index.js.map +1 -1
- package/dist/esm/store/open.d.ts +6 -1
- package/dist/esm/store/open.js +77 -87
- package/dist/esm/store/open.js.map +1 -1
- package/dist/esm/store/readiness.d.ts +5 -0
- package/dist/esm/store/readiness.js +11 -0
- package/dist/esm/store/readiness.js.map +1 -0
- package/dist/esm/store/reconcile.d.ts +26 -1
- package/dist/esm/store/reconcile.js +142 -120
- package/dist/esm/store/reconcile.js.map +1 -1
- package/dist/esm/store/signature.d.ts +1 -0
- package/dist/esm/store/signature.js +8 -0
- package/dist/esm/store/signature.js.map +1 -1
- package/dist/esm/store/sqlite/open.d.ts +1 -1
- package/dist/esm/store/sqlite/open.js +12 -12
- package/dist/esm/store/sqlite/open.js.map +1 -1
- package/dist/esm/store/sqlite/reconcile.js +2 -2
- package/dist/esm/store/sqlite/reconcile.js.map +1 -1
- package/dist/esm/store/sqlite/store.js +21 -18
- package/dist/esm/store/sqlite/store.js.map +1 -1
- package/dist/esm/store/sqlite/vectors.d.ts +2 -2
- package/dist/esm/store/sqlite/vectors.js +7 -5
- package/dist/esm/store/sqlite/vectors.js.map +1 -1
- package/dist/esm/store/stages.js.map +1 -1
- package/dist/esm/store/turso/connection.d.ts +1 -0
- package/dist/esm/store/turso/connection.js +97 -28
- package/dist/esm/store/turso/connection.js.map +1 -1
- package/dist/esm/store/turso/open.d.ts +1 -1
- package/dist/esm/store/turso/open.js +9 -8
- package/dist/esm/store/turso/open.js.map +1 -1
- package/dist/esm/store/turso/store.js +16 -14
- package/dist/esm/store/turso/store.js.map +1 -1
- package/dist/esm/store/turso/vectors.d.ts +2 -2
- package/dist/esm/store/turso/vectors.js +27 -17
- package/dist/esm/store/turso/vectors.js.map +1 -1
- package/dist/esm/store/types.d.ts +4 -1
- package/dist/esm/store/types.js.map +1 -1
- package/dist/esm/store/vectors.d.ts +14 -1
- package/dist/esm/store/vectors.js +55 -0
- package/dist/esm/store/vectors.js.map +1 -1
- package/dist/esm/watch.d.ts +6 -0
- package/dist/esm/watch.js +40 -14
- package/dist/esm/watch.js.map +1 -1
- package/dist/esm/workers/parse.d.ts +4 -3
- package/dist/esm/workers/parse.js +19 -17
- package/dist/esm/workers/parse.js.map +1 -1
- package/package.json +1 -1
- package/skills/sense/EXAMPLES.md +3 -3
- package/skills/sense/SKILL.md +11 -3
- package/skills/sense/references/search.md +17 -1
- package/skills/sense/references/sql.md +1 -1
- package/skills/sense/references/stores/duckdb.md +1 -1
- package/skills/sense/references/terminology.md +32 -0
- package/skills/sense-setup/SKILL.md +2 -2
- package/skills/sense-setup/references/embeddings.md +1 -1
- package/skills/sense-setup/references/store-benchmarks.md +5 -5
- package/skills/sense-setup/references/stores/duckdb.md +1 -1
|
@@ -9,6 +9,9 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
get INSERT_BIND_BUDGET () {
|
|
13
|
+
return INSERT_BIND_BUDGET;
|
|
14
|
+
},
|
|
12
15
|
get cacheFilePath () {
|
|
13
16
|
return cacheFilePath;
|
|
14
17
|
},
|
|
@@ -26,6 +29,7 @@ _export(exports, {
|
|
|
26
29
|
}
|
|
27
30
|
});
|
|
28
31
|
var _promises = require("node:fs/promises");
|
|
32
|
+
var _promises1 = require("node:timers/promises");
|
|
29
33
|
var _batchts = require("../batch.js");
|
|
30
34
|
var _sharedts = require("../shared.js");
|
|
31
35
|
var _transactionts = require("../transaction.js");
|
|
@@ -222,6 +226,9 @@ function _async_to_generator(fn) {
|
|
|
222
226
|
});
|
|
223
227
|
};
|
|
224
228
|
}
|
|
229
|
+
function _await_async_generator(value) {
|
|
230
|
+
return new _overload_yield(value, 0);
|
|
231
|
+
}
|
|
225
232
|
function _class_call_check(instance, Constructor) {
|
|
226
233
|
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
|
|
227
234
|
}
|
|
@@ -421,25 +428,191 @@ function _wrap_async_generator(fn) {
|
|
|
421
428
|
return new _async_generator(fn.apply(this, arguments));
|
|
422
429
|
};
|
|
423
430
|
}
|
|
424
|
-
|
|
425
|
-
|
|
431
|
+
var INSERT_BIND_BUDGET = 8192;
|
|
432
|
+
function closeStatement(stmt, failed, failure) {
|
|
433
|
+
return _async_to_generator(function() {
|
|
434
|
+
var cleanup;
|
|
435
|
+
return _ts_generator(this, function(_state) {
|
|
436
|
+
switch(_state.label){
|
|
437
|
+
case 0:
|
|
438
|
+
_state.trys.push([
|
|
439
|
+
0,
|
|
440
|
+
2,
|
|
441
|
+
3,
|
|
442
|
+
5
|
|
443
|
+
]);
|
|
444
|
+
return [
|
|
445
|
+
4,
|
|
446
|
+
stmt.close()
|
|
447
|
+
];
|
|
448
|
+
case 1:
|
|
449
|
+
_state.sent();
|
|
450
|
+
return [
|
|
451
|
+
3,
|
|
452
|
+
5
|
|
453
|
+
];
|
|
454
|
+
case 2:
|
|
455
|
+
cleanup = _state.sent();
|
|
456
|
+
if (failed) throw new AggregateError([
|
|
457
|
+
failure,
|
|
458
|
+
cleanup
|
|
459
|
+
], 'Turso statement execution and cleanup failed');
|
|
460
|
+
throw cleanup;
|
|
461
|
+
case 3:
|
|
462
|
+
// Native result cleanup can wait on the event loop even after the statement is finalized.
|
|
463
|
+
return [
|
|
464
|
+
4,
|
|
465
|
+
(0, _promises1.setImmediate)()
|
|
466
|
+
];
|
|
467
|
+
case 4:
|
|
468
|
+
_state.sent();
|
|
469
|
+
return [
|
|
470
|
+
7
|
|
471
|
+
];
|
|
472
|
+
case 5:
|
|
473
|
+
return [
|
|
474
|
+
2
|
|
475
|
+
];
|
|
476
|
+
}
|
|
477
|
+
});
|
|
478
|
+
})();
|
|
479
|
+
}
|
|
480
|
+
// Native statements are finalized after execution. Reusing the portable statement prepares
|
|
481
|
+
// it again; column metadata remains available after execution without retaining native state.
|
|
426
482
|
var TursoStatementWrapper = /*#__PURE__*/ function() {
|
|
427
483
|
"use strict";
|
|
428
|
-
function TursoStatementWrapper(stmt) {
|
|
484
|
+
function TursoStatementWrapper(db, sql, stmt) {
|
|
429
485
|
_class_call_check(this, TursoStatementWrapper);
|
|
486
|
+
this.readBigInts = false;
|
|
487
|
+
this.db = db;
|
|
488
|
+
this.sql = sql;
|
|
430
489
|
this.stmt = stmt;
|
|
490
|
+
this.metadata = stmt.columns();
|
|
431
491
|
}
|
|
432
492
|
var _proto = TursoStatementWrapper.prototype;
|
|
493
|
+
_proto.acquire = function acquire() {
|
|
494
|
+
return _async_to_generator(function() {
|
|
495
|
+
var retained, stmt, _tmp, error;
|
|
496
|
+
return _ts_generator(this, function(_state) {
|
|
497
|
+
switch(_state.label){
|
|
498
|
+
case 0:
|
|
499
|
+
retained = this.stmt;
|
|
500
|
+
this.stmt = null;
|
|
501
|
+
if (!(retained !== null && retained !== void 0)) return [
|
|
502
|
+
3,
|
|
503
|
+
1
|
|
504
|
+
];
|
|
505
|
+
_tmp = retained;
|
|
506
|
+
return [
|
|
507
|
+
3,
|
|
508
|
+
3
|
|
509
|
+
];
|
|
510
|
+
case 1:
|
|
511
|
+
return [
|
|
512
|
+
4,
|
|
513
|
+
this.db.prepare(this.sql)
|
|
514
|
+
];
|
|
515
|
+
case 2:
|
|
516
|
+
_tmp = _state.sent();
|
|
517
|
+
_state.label = 3;
|
|
518
|
+
case 3:
|
|
519
|
+
stmt = _tmp;
|
|
520
|
+
_state.label = 4;
|
|
521
|
+
case 4:
|
|
522
|
+
_state.trys.push([
|
|
523
|
+
4,
|
|
524
|
+
5,
|
|
525
|
+
,
|
|
526
|
+
7
|
|
527
|
+
]);
|
|
528
|
+
stmt.safeIntegers(this.readBigInts);
|
|
529
|
+
return [
|
|
530
|
+
3,
|
|
531
|
+
7
|
|
532
|
+
];
|
|
533
|
+
case 5:
|
|
534
|
+
error = _state.sent();
|
|
535
|
+
return [
|
|
536
|
+
4,
|
|
537
|
+
closeStatement(stmt, true, error)
|
|
538
|
+
];
|
|
539
|
+
case 6:
|
|
540
|
+
_state.sent();
|
|
541
|
+
throw error;
|
|
542
|
+
case 7:
|
|
543
|
+
return [
|
|
544
|
+
2,
|
|
545
|
+
stmt
|
|
546
|
+
];
|
|
547
|
+
}
|
|
548
|
+
});
|
|
549
|
+
}).call(this);
|
|
550
|
+
};
|
|
551
|
+
_proto.execute = function execute(operation) {
|
|
552
|
+
return _async_to_generator(function() {
|
|
553
|
+
var stmt, failed, failure, error;
|
|
554
|
+
return _ts_generator(this, function(_state) {
|
|
555
|
+
switch(_state.label){
|
|
556
|
+
case 0:
|
|
557
|
+
return [
|
|
558
|
+
4,
|
|
559
|
+
this.acquire()
|
|
560
|
+
];
|
|
561
|
+
case 1:
|
|
562
|
+
stmt = _state.sent();
|
|
563
|
+
failed = false;
|
|
564
|
+
_state.label = 2;
|
|
565
|
+
case 2:
|
|
566
|
+
_state.trys.push([
|
|
567
|
+
2,
|
|
568
|
+
4,
|
|
569
|
+
5,
|
|
570
|
+
7
|
|
571
|
+
]);
|
|
572
|
+
return [
|
|
573
|
+
4,
|
|
574
|
+
operation(stmt)
|
|
575
|
+
];
|
|
576
|
+
case 3:
|
|
577
|
+
return [
|
|
578
|
+
2,
|
|
579
|
+
_state.sent()
|
|
580
|
+
];
|
|
581
|
+
case 4:
|
|
582
|
+
error = _state.sent();
|
|
583
|
+
failed = true;
|
|
584
|
+
failure = error;
|
|
585
|
+
throw error;
|
|
586
|
+
case 5:
|
|
587
|
+
return [
|
|
588
|
+
4,
|
|
589
|
+
closeStatement(stmt, failed, failure)
|
|
590
|
+
];
|
|
591
|
+
case 6:
|
|
592
|
+
_state.sent();
|
|
593
|
+
return [
|
|
594
|
+
7
|
|
595
|
+
];
|
|
596
|
+
case 7:
|
|
597
|
+
return [
|
|
598
|
+
2
|
|
599
|
+
];
|
|
600
|
+
}
|
|
601
|
+
});
|
|
602
|
+
}).call(this);
|
|
603
|
+
};
|
|
433
604
|
_proto.run = function run() {
|
|
434
605
|
for(var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++){
|
|
435
606
|
params[_key] = arguments[_key];
|
|
436
607
|
}
|
|
437
608
|
return _async_to_generator(function() {
|
|
438
|
-
var
|
|
609
|
+
var _stmt;
|
|
439
610
|
return _ts_generator(this, function(_state) {
|
|
440
611
|
return [
|
|
441
612
|
2,
|
|
442
|
-
|
|
613
|
+
this.execute(function(stmt) {
|
|
614
|
+
return (_stmt = stmt).run.apply(_stmt, _to_consumable_array(params));
|
|
615
|
+
})
|
|
443
616
|
];
|
|
444
617
|
});
|
|
445
618
|
}).call(this);
|
|
@@ -449,11 +622,13 @@ var TursoStatementWrapper = /*#__PURE__*/ function() {
|
|
|
449
622
|
params[_key] = arguments[_key];
|
|
450
623
|
}
|
|
451
624
|
return _async_to_generator(function() {
|
|
452
|
-
var
|
|
625
|
+
var _stmt;
|
|
453
626
|
return _ts_generator(this, function(_state) {
|
|
454
627
|
return [
|
|
455
628
|
2,
|
|
456
|
-
|
|
629
|
+
this.execute(function(stmt) {
|
|
630
|
+
return (_stmt = stmt).get.apply(_stmt, _to_consumable_array(params));
|
|
631
|
+
})
|
|
457
632
|
];
|
|
458
633
|
});
|
|
459
634
|
}).call(this);
|
|
@@ -463,11 +638,13 @@ var TursoStatementWrapper = /*#__PURE__*/ function() {
|
|
|
463
638
|
params[_key] = arguments[_key];
|
|
464
639
|
}
|
|
465
640
|
return _async_to_generator(function() {
|
|
466
|
-
var
|
|
641
|
+
var _stmt;
|
|
467
642
|
return _ts_generator(this, function(_state) {
|
|
468
643
|
return [
|
|
469
644
|
2,
|
|
470
|
-
|
|
645
|
+
this.execute(function(stmt) {
|
|
646
|
+
return (_stmt = stmt).all.apply(_stmt, _to_consumable_array(params));
|
|
647
|
+
})
|
|
471
648
|
];
|
|
472
649
|
});
|
|
473
650
|
}).call(this);
|
|
@@ -477,16 +654,51 @@ var TursoStatementWrapper = /*#__PURE__*/ function() {
|
|
|
477
654
|
params[_key] = arguments[_key];
|
|
478
655
|
}
|
|
479
656
|
return _wrap_async_generator(function() {
|
|
480
|
-
var
|
|
657
|
+
var stmt, failed, failure, _stmt, error;
|
|
481
658
|
return _ts_generator(this, function(_state) {
|
|
482
659
|
switch(_state.label){
|
|
483
660
|
case 0:
|
|
484
661
|
return [
|
|
485
|
-
|
|
486
|
-
|
|
662
|
+
4,
|
|
663
|
+
_await_async_generator(this.acquire())
|
|
487
664
|
];
|
|
488
665
|
case 1:
|
|
666
|
+
stmt = _state.sent();
|
|
667
|
+
failed = false;
|
|
668
|
+
_state.label = 2;
|
|
669
|
+
case 2:
|
|
670
|
+
_state.trys.push([
|
|
671
|
+
2,
|
|
672
|
+
4,
|
|
673
|
+
5,
|
|
674
|
+
7
|
|
675
|
+
]);
|
|
676
|
+
return [
|
|
677
|
+
5,
|
|
678
|
+
_ts_values(_async_generator_delegate(_async_iterator((_stmt = stmt).iterate.apply(_stmt, _to_consumable_array(params)))))
|
|
679
|
+
];
|
|
680
|
+
case 3:
|
|
489
681
|
_state.sent();
|
|
682
|
+
return [
|
|
683
|
+
3,
|
|
684
|
+
7
|
|
685
|
+
];
|
|
686
|
+
case 4:
|
|
687
|
+
error = _state.sent();
|
|
688
|
+
failed = true;
|
|
689
|
+
failure = error;
|
|
690
|
+
throw error;
|
|
691
|
+
case 5:
|
|
692
|
+
return [
|
|
693
|
+
4,
|
|
694
|
+
_await_async_generator(closeStatement(stmt, failed, failure))
|
|
695
|
+
];
|
|
696
|
+
case 6:
|
|
697
|
+
_state.sent();
|
|
698
|
+
return [
|
|
699
|
+
7
|
|
700
|
+
];
|
|
701
|
+
case 7:
|
|
490
702
|
return [
|
|
491
703
|
2
|
|
492
704
|
];
|
|
@@ -495,10 +707,10 @@ var TursoStatementWrapper = /*#__PURE__*/ function() {
|
|
|
495
707
|
}).call(this);
|
|
496
708
|
};
|
|
497
709
|
_proto.columns = function columns() {
|
|
498
|
-
return this.
|
|
710
|
+
return this.metadata;
|
|
499
711
|
};
|
|
500
712
|
_proto.setReadBigInts = function setReadBigInts(enabled) {
|
|
501
|
-
this.
|
|
713
|
+
this.readBigInts = enabled;
|
|
502
714
|
};
|
|
503
715
|
return TursoStatementWrapper;
|
|
504
716
|
}();
|
|
@@ -723,29 +935,48 @@ function createConnection(db) {
|
|
|
723
935
|
},
|
|
724
936
|
prepare: function prepare(sql) {
|
|
725
937
|
return _async_to_generator(function() {
|
|
726
|
-
var
|
|
938
|
+
var rewritten, stmt, error;
|
|
727
939
|
return _ts_generator(this, function(_state) {
|
|
728
940
|
switch(_state.label){
|
|
729
941
|
case 0:
|
|
730
|
-
|
|
942
|
+
rewritten = (0, _sqlfunctionsts.rewriteFunctions)(sql);
|
|
731
943
|
return [
|
|
732
944
|
4,
|
|
733
|
-
db.prepare(
|
|
945
|
+
db.prepare(rewritten)
|
|
734
946
|
];
|
|
735
947
|
case 1:
|
|
948
|
+
stmt = _state.sent();
|
|
949
|
+
_state.label = 2;
|
|
950
|
+
case 2:
|
|
951
|
+
_state.trys.push([
|
|
952
|
+
2,
|
|
953
|
+
3,
|
|
954
|
+
,
|
|
955
|
+
5
|
|
956
|
+
]);
|
|
736
957
|
return [
|
|
737
958
|
2,
|
|
738
|
-
new (
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
959
|
+
new TursoStatementWrapper(db, rewritten, stmt)
|
|
960
|
+
];
|
|
961
|
+
case 3:
|
|
962
|
+
error = _state.sent();
|
|
963
|
+
return [
|
|
964
|
+
4,
|
|
965
|
+
closeStatement(stmt, true, error)
|
|
966
|
+
];
|
|
967
|
+
case 4:
|
|
968
|
+
_state.sent();
|
|
969
|
+
throw error;
|
|
970
|
+
case 5:
|
|
971
|
+
return [
|
|
972
|
+
2
|
|
742
973
|
];
|
|
743
974
|
}
|
|
744
975
|
});
|
|
745
976
|
})();
|
|
746
977
|
},
|
|
747
|
-
runBatch: //
|
|
748
|
-
//
|
|
978
|
+
runBatch: // Fold INSERTs into bounded multi-row statements in one transaction. UPDATE/DELETE keep
|
|
979
|
+
// the per-row loop; each native statement owns its finalization and cleanup turn.
|
|
749
980
|
function runBatch(sql, paramRows) {
|
|
750
981
|
return _async_to_generator(function() {
|
|
751
982
|
return _ts_generator(this, function(_state) {
|
|
@@ -758,114 +989,97 @@ function createConnection(db) {
|
|
|
758
989
|
4,
|
|
759
990
|
(0, _transactionts.withTransaction)(conn, function() {
|
|
760
991
|
return _async_to_generator(function() {
|
|
761
|
-
var rewritten, stmt,
|
|
992
|
+
var shape, batchRows, offset, _ref, rows, rewritten, stmt, failed, failure, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, row, err, error;
|
|
762
993
|
return _ts_generator(this, function(_state) {
|
|
763
994
|
switch(_state.label){
|
|
764
995
|
case 0:
|
|
765
|
-
|
|
766
|
-
|
|
996
|
+
shape = (0, _batchts.rewriteInsert)(sql, 1);
|
|
997
|
+
batchRows = shape ? Math.max(1, Math.floor(INSERT_BIND_BUDGET / shape.width)) : paramRows.length;
|
|
998
|
+
offset = 0;
|
|
999
|
+
_state.label = 1;
|
|
1000
|
+
case 1:
|
|
1001
|
+
if (!(offset < paramRows.length)) return [
|
|
767
1002
|
3,
|
|
768
|
-
|
|
1003
|
+
18
|
|
769
1004
|
];
|
|
1005
|
+
rows = shape ? paramRows.slice(offset, offset + batchRows) : paramRows;
|
|
1006
|
+
rewritten = shape ? (0, _batchts.rewriteInsert)(sql, rows.length) : null;
|
|
770
1007
|
return [
|
|
771
1008
|
4,
|
|
772
|
-
db.prepare(rewritten.sql)
|
|
1009
|
+
db.prepare((_ref = rewritten === null || rewritten === void 0 ? void 0 : rewritten.sql) !== null && _ref !== void 0 ? _ref : sql)
|
|
773
1010
|
];
|
|
774
|
-
case 1:
|
|
775
|
-
stmt = _state.sent();
|
|
776
|
-
_state.label = 2;
|
|
777
1011
|
case 2:
|
|
1012
|
+
stmt = _state.sent();
|
|
1013
|
+
failed = false;
|
|
1014
|
+
failure = void 0;
|
|
1015
|
+
_state.label = 3;
|
|
1016
|
+
case 3:
|
|
778
1017
|
_state.trys.push([
|
|
779
|
-
|
|
780
|
-
,
|
|
781
|
-
|
|
782
|
-
|
|
1018
|
+
3,
|
|
1019
|
+
14,
|
|
1020
|
+
15,
|
|
1021
|
+
17
|
|
783
1022
|
]);
|
|
784
|
-
|
|
785
|
-
// limit well before turso enforces any variable-count ceiling (measured; see PLAN.md).
|
|
786
|
-
return [
|
|
787
|
-
4,
|
|
788
|
-
stmt.run(paramRows.flat())
|
|
789
|
-
];
|
|
790
|
-
case 3:
|
|
791
|
-
_state.sent();
|
|
792
|
-
return [
|
|
1023
|
+
if (!rewritten) return [
|
|
793
1024
|
3,
|
|
794
|
-
|
|
1025
|
+
5
|
|
795
1026
|
];
|
|
796
|
-
|
|
1027
|
+
// Pass one array: spreading a wide tuple can exceed the JS argument limit.
|
|
797
1028
|
return [
|
|
798
1029
|
4,
|
|
799
|
-
stmt.
|
|
1030
|
+
stmt.run(rows.flat())
|
|
800
1031
|
];
|
|
801
|
-
case
|
|
1032
|
+
case 4:
|
|
802
1033
|
_state.sent();
|
|
803
1034
|
return [
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
case 6:
|
|
807
|
-
return [
|
|
808
|
-
2
|
|
809
|
-
];
|
|
810
|
-
case 7:
|
|
811
|
-
return [
|
|
812
|
-
4,
|
|
813
|
-
db.prepare(sql)
|
|
1035
|
+
3,
|
|
1036
|
+
13
|
|
814
1037
|
];
|
|
815
|
-
case
|
|
816
|
-
stmt1 = _state.sent();
|
|
817
|
-
_state.label = 9;
|
|
818
|
-
case 9:
|
|
819
|
-
_state.trys.push([
|
|
820
|
-
9,
|
|
821
|
-
,
|
|
822
|
-
18,
|
|
823
|
-
20
|
|
824
|
-
]);
|
|
1038
|
+
case 5:
|
|
825
1039
|
_iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
826
|
-
_state.label =
|
|
827
|
-
case
|
|
1040
|
+
_state.label = 6;
|
|
1041
|
+
case 6:
|
|
828
1042
|
_state.trys.push([
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
1043
|
+
6,
|
|
1044
|
+
11,
|
|
1045
|
+
12,
|
|
1046
|
+
13
|
|
833
1047
|
]);
|
|
834
|
-
_iterator =
|
|
835
|
-
_state.label =
|
|
836
|
-
case
|
|
1048
|
+
_iterator = rows[Symbol.iterator]();
|
|
1049
|
+
_state.label = 7;
|
|
1050
|
+
case 7:
|
|
837
1051
|
if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
|
|
838
1052
|
3,
|
|
839
|
-
|
|
1053
|
+
10
|
|
840
1054
|
];
|
|
841
1055
|
row = _step.value;
|
|
842
1056
|
return [
|
|
843
1057
|
4,
|
|
844
|
-
|
|
1058
|
+
stmt.run(row)
|
|
845
1059
|
];
|
|
846
|
-
case
|
|
1060
|
+
case 8:
|
|
847
1061
|
_state.sent();
|
|
848
|
-
_state.label =
|
|
849
|
-
case
|
|
1062
|
+
_state.label = 9;
|
|
1063
|
+
case 9:
|
|
850
1064
|
_iteratorNormalCompletion = true;
|
|
851
1065
|
return [
|
|
852
1066
|
3,
|
|
853
|
-
|
|
1067
|
+
7
|
|
854
1068
|
];
|
|
855
|
-
case
|
|
1069
|
+
case 10:
|
|
856
1070
|
return [
|
|
857
1071
|
3,
|
|
858
|
-
|
|
1072
|
+
13
|
|
859
1073
|
];
|
|
860
|
-
case
|
|
1074
|
+
case 11:
|
|
861
1075
|
err = _state.sent();
|
|
862
1076
|
_didIteratorError = true;
|
|
863
1077
|
_iteratorError = err;
|
|
864
1078
|
return [
|
|
865
1079
|
3,
|
|
866
|
-
|
|
1080
|
+
13
|
|
867
1081
|
];
|
|
868
|
-
case
|
|
1082
|
+
case 12:
|
|
869
1083
|
try {
|
|
870
1084
|
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
871
1085
|
_iterator.return();
|
|
@@ -878,22 +1092,33 @@ function createConnection(db) {
|
|
|
878
1092
|
return [
|
|
879
1093
|
7
|
|
880
1094
|
];
|
|
881
|
-
case
|
|
1095
|
+
case 13:
|
|
882
1096
|
return [
|
|
883
1097
|
3,
|
|
884
|
-
|
|
1098
|
+
17
|
|
885
1099
|
];
|
|
886
|
-
case
|
|
1100
|
+
case 14:
|
|
1101
|
+
error = _state.sent();
|
|
1102
|
+
failed = true;
|
|
1103
|
+
failure = error;
|
|
1104
|
+
throw error;
|
|
1105
|
+
case 15:
|
|
887
1106
|
return [
|
|
888
1107
|
4,
|
|
889
|
-
|
|
1108
|
+
closeStatement(stmt, failed, failure)
|
|
890
1109
|
];
|
|
891
|
-
case
|
|
1110
|
+
case 16:
|
|
892
1111
|
_state.sent();
|
|
893
1112
|
return [
|
|
894
1113
|
7
|
|
895
1114
|
];
|
|
896
|
-
case
|
|
1115
|
+
case 17:
|
|
1116
|
+
offset += batchRows;
|
|
1117
|
+
return [
|
|
1118
|
+
3,
|
|
1119
|
+
1
|
|
1120
|
+
];
|
|
1121
|
+
case 18:
|
|
897
1122
|
return [
|
|
898
1123
|
2
|
|
899
1124
|
];
|
|
@@ -1 +1 @@
|
|
|
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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"}
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/ai/sensemaking/src/store/turso/connection.ts"],"sourcesContent":["import { stat } from 'node:fs/promises';\nimport { setImmediate } from 'node:timers/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// Bound native multi-row compilation work; this is not Turso's variable-count limit.\nexport const INSERT_BIND_BUDGET = 8192;\n\nasync function closeStatement(stmt: TursoStatement, failed: boolean, failure: unknown): Promise<void> {\n try {\n await stmt.close();\n } catch (cleanup) {\n if (failed) throw new AggregateError([failure, cleanup], 'Turso statement execution and cleanup failed');\n throw cleanup;\n } finally {\n // Native result cleanup can wait on the event loop even after the statement is finalized.\n await setImmediate();\n }\n}\n\n// Native statements are finalized after execution. Reusing the portable statement prepares\n// it again; column metadata remains available after execution without retaining native state.\nclass TursoStatementWrapper implements Statement {\n private stmt: TursoStatement | null;\n private readonly metadata: Array<{ name: string }>;\n private readBigInts = false;\n private readonly db: Database;\n private readonly sql: string;\n\n constructor(db: Database, sql: string, stmt: TursoStatement) {\n this.db = db;\n this.sql = sql;\n this.stmt = stmt;\n this.metadata = stmt.columns();\n }\n\n private async acquire(): Promise<TursoStatement> {\n const retained = this.stmt;\n this.stmt = null;\n const stmt = retained ?? (await this.db.prepare(this.sql));\n try {\n stmt.safeIntegers(this.readBigInts);\n } catch (error) {\n await closeStatement(stmt, true, error);\n throw error;\n }\n return stmt;\n }\n\n private async execute<T>(operation: (stmt: TursoStatement) => Promise<T>): Promise<T> {\n const stmt = await this.acquire();\n let failed = false;\n let failure: unknown;\n try {\n return await operation(stmt);\n } catch (error) {\n failed = true;\n failure = error;\n throw error;\n } finally {\n await closeStatement(stmt, failed, failure);\n }\n }\n\n async run(...params: unknown[]): Promise<RunResult> {\n return this.execute((stmt) => stmt.run(...params));\n }\n\n async get(...params: unknown[]): Promise<unknown> {\n return this.execute((stmt) => stmt.get(...params));\n }\n\n async all(...params: unknown[]): Promise<unknown[]> {\n return this.execute((stmt) => stmt.all(...params));\n }\n\n async *iterate(...params: unknown[]): AsyncIterable<unknown> {\n const stmt = await this.acquire();\n let failed = false;\n let failure: unknown;\n try {\n yield* stmt.iterate(...params);\n } catch (error) {\n failed = true;\n failure = error;\n throw error;\n } finally {\n await closeStatement(stmt, failed, failure);\n }\n }\n\n columns(): Array<{ name: string }> {\n return this.metadata;\n }\n\n setReadBigInts(enabled: boolean): void {\n this.readBigInts = 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 const rewritten = rewriteFunctions(sql);\n const stmt = await db.prepare(rewritten);\n try {\n return new TursoStatementWrapper(db, rewritten, stmt);\n } catch (error) {\n await closeStatement(stmt, true, error);\n throw error;\n }\n },\n // Fold INSERTs into bounded multi-row statements in one transaction. UPDATE/DELETE keep\n // the per-row loop; each native statement owns its finalization and cleanup turn.\n async runBatch(sql: string, paramRows: unknown[][]): Promise<void> {\n if (paramRows.length === 0) return;\n await withTransaction(\n conn,\n async () => {\n const shape = rewriteInsert(sql, 1);\n const batchRows = shape ? Math.max(1, Math.floor(INSERT_BIND_BUDGET / shape.width)) : paramRows.length;\n for (let offset = 0; offset < paramRows.length; offset += batchRows) {\n const rows = shape ? paramRows.slice(offset, offset + batchRows) : paramRows;\n const rewritten = shape ? rewriteInsert(sql, rows.length) : null;\n const stmt = await db.prepare(rewritten?.sql ?? sql);\n let failed = false;\n let failure: unknown;\n try {\n if (rewritten) {\n // Pass one array: spreading a wide tuple can exceed the JS argument limit.\n await stmt.run(rows.flat());\n } else {\n for (const row of rows) await stmt.run(row);\n }\n } catch (error) {\n failed = true;\n failure = error;\n throw error;\n } finally {\n await closeStatement(stmt, failed, failure);\n }\n }\n },\n BEGIN_WRITE\n );\n },\n };\n return conn;\n}\n"],"names":["INSERT_BIND_BUDGET","cacheFilePath","checkpointWal","createConnection","fileSize","reclaimSpace","closeStatement","stmt","failed","failure","cleanup","close","AggregateError","setImmediate","TursoStatementWrapper","db","sql","readBigInts","metadata","columns","acquire","retained","error","prepare","safeIntegers","execute","operation","run","params","get","all","iterate","setReadBigInts","enabled","err","exec","console","message","conn","rows","find","r","name","file","path","stat","size","turso","tursoApi","connect","CONNECT_OPTS","experimental","setMeta","String","rewritten","rewriteFunctions","runBatch","paramRows","length","withTransaction","shape","batchRows","offset","row","rewriteInsert","Math","max","floor","width","slice","flat","BEGIN_WRITE"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { ResolvedConfig } from '../../config/index.js';
|
|
|
3
3
|
import type { InternalOpenOptions, OpenResult } from '../open.js';
|
|
4
4
|
import type { OpenDialect } from '../types.js';
|
|
5
5
|
export declare const DB_FILENAME = "cache.turso.db";
|
|
6
|
-
export declare const SCHEMA_VERSION = "
|
|
6
|
+
export declare const SCHEMA_VERSION = "10";
|
|
7
7
|
export type { OpenResult };
|
|
8
8
|
export declare const tursoOpenDialect: OpenDialect<Database>;
|
|
9
9
|
export declare function openTurso(cfg: ResolvedConfig, options?: InternalOpenOptions): Promise<OpenResult>;
|