sensemaking 0.17.0 → 0.18.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 +15 -13
- package/dist/cjs/cli/map.js +147 -6
- package/dist/cjs/cli/map.js.map +1 -1
- package/dist/cjs/cli/named.js +20 -12
- package/dist/cjs/cli/named.js.map +1 -1
- package/dist/cjs/cli/path.js +190 -29
- package/dist/cjs/cli/path.js.map +1 -1
- package/dist/cjs/cli/peek.js +148 -7
- package/dist/cjs/cli/peek.js.map +1 -1
- package/dist/cjs/cli/related.js +5 -5
- package/dist/cjs/cli/related.js.map +1 -1
- package/dist/cjs/cli/search.js +5 -5
- package/dist/cjs/cli/search.js.map +1 -1
- package/dist/cjs/cli/shared.d.cts +3 -3
- package/dist/cjs/cli/shared.d.ts +3 -3
- package/dist/cjs/cli/shared.js +156 -58
- package/dist/cjs/cli/shared.js.map +1 -1
- package/dist/cjs/cli/sql.js +151 -10
- package/dist/cjs/cli/sql.js.map +1 -1
- package/dist/cjs/cli/status.js +187 -62
- package/dist/cjs/cli/status.js.map +1 -1
- package/dist/cjs/commands/map.d.cts +2 -2
- package/dist/cjs/commands/map.d.ts +2 -2
- package/dist/cjs/commands/map.js +373 -67
- package/dist/cjs/commands/map.js.map +1 -1
- package/dist/cjs/commands/peek.d.cts +2 -2
- package/dist/cjs/commands/peek.d.ts +2 -2
- package/dist/cjs/commands/peek.js +321 -79
- package/dist/cjs/commands/peek.js.map +1 -1
- package/dist/cjs/commands/related.d.cts +2 -2
- package/dist/cjs/commands/related.d.ts +2 -2
- package/dist/cjs/commands/related.js +55 -10
- package/dist/cjs/commands/related.js.map +1 -1
- package/dist/cjs/commands/scope.d.cts +7 -7
- package/dist/cjs/commands/scope.d.ts +7 -7
- package/dist/cjs/commands/scope.js +382 -45
- package/dist/cjs/commands/scope.js.map +1 -1
- package/dist/cjs/commands/search.d.cts +2 -2
- package/dist/cjs/commands/search.d.ts +2 -2
- package/dist/cjs/commands/search.js +292 -99
- package/dist/cjs/commands/search.js.map +1 -1
- package/dist/cjs/commands/signals.d.cts +4 -10
- package/dist/cjs/commands/signals.d.ts +4 -10
- package/dist/cjs/commands/signals.js +91 -45
- package/dist/cjs/commands/signals.js.map +1 -1
- package/dist/cjs/commands/status.d.cts +2 -2
- package/dist/cjs/commands/status.d.ts +2 -2
- package/dist/cjs/commands/status.js +247 -10
- package/dist/cjs/commands/status.js.map +1 -1
- package/dist/cjs/config/access.d.cts +1 -0
- package/dist/cjs/config/access.d.ts +1 -0
- package/dist/cjs/config/access.js +7 -0
- package/dist/cjs/config/access.js.map +1 -1
- package/dist/cjs/config/index.d.cts +1 -1
- package/dist/cjs/config/index.d.ts +1 -1
- package/dist/cjs/config/index.js +3 -0
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/config/types.d.cts +1 -0
- package/dist/cjs/config/types.d.ts +1 -0
- package/dist/cjs/config/types.js.map +1 -1
- package/dist/cjs/config/validate.js +10 -1
- package/dist/cjs/config/validate.js.map +1 -1
- package/dist/cjs/embed/distribution.d.cts +4 -0
- package/dist/cjs/embed/distribution.d.ts +4 -0
- package/dist/cjs/embed/distribution.js +186 -0
- package/dist/cjs/embed/distribution.js.map +1 -0
- package/dist/cjs/embed/langfit.d.cts +2 -5
- package/dist/cjs/embed/langfit.d.ts +2 -5
- package/dist/cjs/embed/langfit.js +73 -63
- package/dist/cjs/embed/langfit.js.map +1 -1
- package/dist/cjs/embed/query.d.cts +6 -13
- package/dist/cjs/embed/query.d.ts +6 -13
- package/dist/cjs/embed/query.js +56 -168
- package/dist/cjs/embed/query.js.map +1 -1
- package/dist/cjs/embed/static.js +13 -3
- package/dist/cjs/embed/static.js.map +1 -1
- package/dist/cjs/embed/types.d.cts +1 -0
- package/dist/cjs/embed/types.d.ts +1 -0
- package/dist/cjs/embed/types.js +11 -2
- package/dist/cjs/embed/types.js.map +1 -1
- package/dist/cjs/errors.d.cts +1 -1
- package/dist/cjs/errors.d.ts +1 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/features/embed.js +218 -11
- package/dist/cjs/features/embed.js.map +1 -1
- package/dist/cjs/features/index.d.cts +1 -1
- package/dist/cjs/features/index.d.ts +1 -1
- package/dist/cjs/features/index.js +6 -0
- package/dist/cjs/features/index.js.map +1 -1
- package/dist/cjs/features/links.d.cts +7 -2
- package/dist/cjs/features/links.d.ts +7 -2
- package/dist/cjs/features/links.js +710 -198
- package/dist/cjs/features/links.js.map +1 -1
- package/dist/cjs/features/rank.js +231 -31
- package/dist/cjs/features/rank.js.map +1 -1
- package/dist/cjs/features/sections.js +218 -8
- package/dist/cjs/features/sections.js.map +1 -1
- package/dist/cjs/features/tags.js +236 -40
- package/dist/cjs/features/tags.js.map +1 -1
- package/dist/cjs/features/types.d.cts +9 -5
- package/dist/cjs/features/types.d.ts +9 -5
- package/dist/cjs/graph/traverse.d.cts +2 -2
- package/dist/cjs/graph/traverse.d.ts +2 -2
- package/dist/cjs/graph/traverse.js +321 -42
- package/dist/cjs/graph/traverse.js.map +1 -1
- package/dist/cjs/index.d.cts +3 -2
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/guarded-tick.d.cts +1 -0
- package/dist/cjs/lib/guarded-tick.d.ts +1 -0
- package/dist/cjs/lib/guarded-tick.js +19 -0
- package/dist/cjs/lib/guarded-tick.js.map +1 -0
- package/dist/cjs/output/column-hint.d.cts +1 -2
- package/dist/cjs/output/column-hint.d.ts +1 -2
- package/dist/cjs/output/column-hint.js +1 -4
- package/dist/cjs/output/column-hint.js.map +1 -1
- package/dist/cjs/output/output.d.cts +2 -1
- package/dist/cjs/output/output.d.ts +2 -1
- package/dist/cjs/output/output.js +515 -97
- package/dist/cjs/output/output.js.map +1 -1
- package/dist/cjs/scan/frontmatter.js.map +1 -1
- package/dist/cjs/scan/index.js.map +1 -1
- package/dist/cjs/scan/reparse.d.cts +10 -0
- package/dist/cjs/scan/reparse.d.ts +10 -0
- package/dist/cjs/scan/reparse.js +104 -0
- package/dist/cjs/scan/reparse.js.map +1 -0
- package/dist/cjs/store/duckdb/batch.d.cts +16 -0
- package/dist/cjs/store/duckdb/batch.d.ts +16 -0
- package/dist/cjs/store/duckdb/batch.js +208 -0
- package/dist/cjs/store/duckdb/batch.js.map +1 -0
- package/dist/cjs/store/duckdb/connection.d.cts +5 -0
- package/dist/cjs/store/duckdb/connection.d.ts +5 -0
- package/dist/cjs/store/duckdb/connection.js +772 -0
- package/dist/cjs/store/duckdb/connection.js.map +1 -0
- package/dist/cjs/store/duckdb/lexical.d.cts +10 -0
- package/dist/cjs/store/duckdb/lexical.d.ts +10 -0
- package/dist/cjs/store/duckdb/lexical.js +502 -0
- package/dist/cjs/store/duckdb/lexical.js.map +1 -0
- package/dist/cjs/store/duckdb/native.d.cts +3 -0
- package/dist/cjs/store/duckdb/native.d.ts +3 -0
- package/dist/cjs/store/duckdb/native.js +360 -0
- package/dist/cjs/store/duckdb/native.js.map +1 -0
- package/dist/cjs/store/duckdb/open.d.cts +12 -0
- package/dist/cjs/store/duckdb/open.d.ts +12 -0
- package/dist/cjs/store/duckdb/open.js +501 -0
- package/dist/cjs/store/duckdb/open.js.map +1 -0
- package/dist/cjs/store/duckdb/reconcile.d.cts +6 -0
- package/dist/cjs/store/duckdb/reconcile.d.ts +6 -0
- package/dist/cjs/store/duckdb/reconcile.js +753 -0
- package/dist/cjs/store/duckdb/reconcile.js.map +1 -0
- package/dist/cjs/store/duckdb/sql-functions.d.cts +2 -0
- package/dist/cjs/store/duckdb/sql-functions.d.ts +2 -0
- package/dist/cjs/store/duckdb/sql-functions.js +203 -0
- package/dist/cjs/store/duckdb/sql-functions.js.map +1 -0
- package/dist/cjs/store/duckdb/store.d.cts +5 -0
- package/dist/cjs/store/duckdb/store.d.ts +5 -0
- package/dist/cjs/store/duckdb/store.js +504 -0
- package/dist/cjs/store/duckdb/store.js.map +1 -0
- package/dist/cjs/store/duckdb/vectors.d.cts +9 -0
- package/dist/cjs/store/duckdb/vectors.d.ts +9 -0
- package/dist/cjs/store/duckdb/vectors.js +502 -0
- package/dist/cjs/store/duckdb/vectors.js.map +1 -0
- package/dist/cjs/store/index.d.cts +7 -0
- package/dist/cjs/store/index.d.ts +7 -0
- package/dist/cjs/store/index.js +201 -0
- package/dist/cjs/store/index.js.map +1 -0
- package/dist/cjs/store/meta.d.cts +3 -0
- package/dist/cjs/store/meta.d.ts +3 -0
- package/dist/cjs/store/meta.js +215 -0
- package/dist/cjs/store/meta.js.map +1 -0
- package/dist/cjs/store/shared.d.cts +5 -0
- package/dist/cjs/store/shared.d.ts +5 -0
- package/dist/cjs/store/shared.js +252 -0
- package/dist/cjs/store/shared.js.map +1 -0
- package/dist/cjs/store/sql-functions.d.cts +2 -0
- package/dist/cjs/store/sql-functions.d.ts +2 -0
- package/dist/cjs/store/sql-functions.js +48 -0
- package/dist/cjs/store/sql-functions.js.map +1 -0
- package/dist/cjs/store/sqlite/connection.d.cts +3 -0
- package/dist/cjs/store/sqlite/connection.d.ts +3 -0
- package/dist/cjs/store/sqlite/connection.js +516 -0
- package/dist/cjs/store/sqlite/connection.js.map +1 -0
- package/dist/cjs/store/sqlite/lexical.d.cts +2 -0
- package/dist/cjs/store/sqlite/lexical.d.ts +2 -0
- package/dist/cjs/store/sqlite/lexical.js +177 -0
- package/dist/cjs/store/sqlite/lexical.js.map +1 -0
- package/dist/cjs/{db → store/sqlite}/open.d.cts +5 -5
- package/dist/cjs/{db → store/sqlite}/open.d.ts +5 -5
- package/dist/cjs/store/sqlite/open.js +604 -0
- package/dist/cjs/store/sqlite/open.js.map +1 -0
- package/dist/cjs/store/sqlite/reconcile.d.cts +10 -0
- package/dist/cjs/store/sqlite/reconcile.d.ts +10 -0
- package/dist/cjs/store/sqlite/reconcile.js +1020 -0
- package/dist/cjs/store/sqlite/reconcile.js.map +1 -0
- package/dist/cjs/store/sqlite/sql-functions.js +34 -0
- package/dist/cjs/store/sqlite/sql-functions.js.map +1 -0
- package/dist/cjs/store/sqlite/store.d.cts +5 -0
- package/dist/cjs/store/sqlite/store.d.ts +5 -0
- package/dist/cjs/store/sqlite/store.js +588 -0
- package/dist/cjs/store/sqlite/store.js.map +1 -0
- package/dist/cjs/store/sqlite/vectors.d.cts +13 -0
- package/dist/cjs/store/sqlite/vectors.d.ts +13 -0
- package/dist/cjs/store/sqlite/vectors.js +470 -0
- package/dist/cjs/store/sqlite/vectors.js.map +1 -0
- package/dist/cjs/store/transaction.d.cts +5 -0
- package/dist/cjs/store/transaction.d.ts +5 -0
- package/dist/cjs/store/transaction.js +297 -0
- package/dist/cjs/store/transaction.js.map +1 -0
- package/dist/cjs/store/types.d.cts +91 -0
- package/dist/cjs/store/types.d.ts +91 -0
- package/dist/cjs/store/types.js +15 -0
- package/dist/cjs/store/types.js.map +1 -0
- package/dist/cjs/watch.d.cts +3 -0
- package/dist/cjs/watch.d.ts +3 -0
- package/dist/cjs/watch.js +215 -73
- package/dist/cjs/watch.js.map +1 -1
- package/dist/esm/cli/map.js +5 -5
- package/dist/esm/cli/map.js.map +1 -1
- package/dist/esm/cli/named.js +3 -3
- package/dist/esm/cli/named.js.map +1 -1
- package/dist/esm/cli/path.js +6 -5
- package/dist/esm/cli/path.js.map +1 -1
- package/dist/esm/cli/peek.js +5 -5
- package/dist/esm/cli/peek.js.map +1 -1
- package/dist/esm/cli/related.js +3 -3
- package/dist/esm/cli/related.js.map +1 -1
- package/dist/esm/cli/search.js +2 -2
- package/dist/esm/cli/search.js.map +1 -1
- package/dist/esm/cli/shared.d.ts +3 -3
- package/dist/esm/cli/shared.js +17 -17
- package/dist/esm/cli/shared.js.map +1 -1
- package/dist/esm/cli/sql.js +2 -2
- package/dist/esm/cli/sql.js.map +1 -1
- package/dist/esm/cli/status.js +25 -24
- package/dist/esm/cli/status.js.map +1 -1
- package/dist/esm/commands/map.d.ts +2 -2
- package/dist/esm/commands/map.js +51 -41
- package/dist/esm/commands/map.js.map +1 -1
- package/dist/esm/commands/peek.d.ts +2 -2
- package/dist/esm/commands/peek.js +58 -50
- package/dist/esm/commands/peek.js.map +1 -1
- package/dist/esm/commands/related.d.ts +2 -2
- package/dist/esm/commands/related.js +9 -9
- package/dist/esm/commands/related.js.map +1 -1
- package/dist/esm/commands/scope.d.ts +7 -7
- package/dist/esm/commands/scope.js +28 -17
- package/dist/esm/commands/scope.js.map +1 -1
- package/dist/esm/commands/search.d.ts +2 -2
- package/dist/esm/commands/search.js +42 -35
- package/dist/esm/commands/search.js.map +1 -1
- package/dist/esm/commands/signals.d.ts +4 -10
- package/dist/esm/commands/signals.js +17 -13
- package/dist/esm/commands/signals.js.map +1 -1
- package/dist/esm/commands/status.d.ts +2 -2
- package/dist/esm/commands/status.js +13 -7
- package/dist/esm/commands/status.js.map +1 -1
- package/dist/esm/config/access.d.ts +1 -0
- package/dist/esm/config/access.js +5 -0
- package/dist/esm/config/access.js.map +1 -1
- package/dist/esm/config/index.d.ts +1 -1
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/config/types.d.ts +1 -0
- package/dist/esm/config/types.js.map +1 -1
- package/dist/esm/config/validate.js +10 -1
- package/dist/esm/config/validate.js.map +1 -1
- package/dist/esm/embed/distribution.d.ts +4 -0
- package/dist/esm/embed/distribution.js +11 -0
- package/dist/esm/embed/distribution.js.map +1 -0
- package/dist/esm/embed/langfit.d.ts +2 -5
- package/dist/esm/embed/langfit.js +13 -13
- package/dist/esm/embed/langfit.js.map +1 -1
- package/dist/esm/embed/query.d.ts +6 -13
- package/dist/esm/embed/query.js +23 -84
- package/dist/esm/embed/query.js.map +1 -1
- package/dist/esm/embed/static.js +6 -1
- package/dist/esm/embed/static.js.map +1 -1
- package/dist/esm/embed/types.d.ts +1 -0
- package/dist/esm/embed/types.js +5 -3
- package/dist/esm/embed/types.js.map +1 -1
- package/dist/esm/errors.d.ts +1 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/features/embed.js +22 -10
- package/dist/esm/features/embed.js.map +1 -1
- package/dist/esm/features/index.d.ts +1 -1
- package/dist/esm/features/index.js +1 -1
- package/dist/esm/features/index.js.map +1 -1
- package/dist/esm/features/links.d.ts +7 -2
- package/dist/esm/features/links.js +124 -97
- package/dist/esm/features/links.js.map +1 -1
- package/dist/esm/features/rank.js +15 -8
- package/dist/esm/features/rank.js.map +1 -1
- package/dist/esm/features/sections.js +20 -7
- package/dist/esm/features/sections.js.map +1 -1
- package/dist/esm/features/tags.js +19 -18
- package/dist/esm/features/tags.js.map +1 -1
- package/dist/esm/features/types.d.ts +9 -5
- package/dist/esm/features/types.js +1 -1
- package/dist/esm/features/types.js.map +1 -1
- package/dist/esm/graph/traverse.d.ts +2 -2
- package/dist/esm/graph/traverse.js +26 -23
- package/dist/esm/graph/traverse.js.map +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/guarded-tick.d.ts +1 -0
- package/dist/esm/lib/guarded-tick.js +8 -0
- package/dist/esm/lib/guarded-tick.js.map +1 -0
- package/dist/esm/output/column-hint.d.ts +1 -2
- package/dist/esm/output/column-hint.js +3 -2
- package/dist/esm/output/column-hint.js.map +1 -1
- package/dist/esm/output/output.d.ts +2 -1
- package/dist/esm/output/output.js +27 -23
- package/dist/esm/output/output.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 -1
- package/dist/esm/scan/index.js.map +1 -1
- package/dist/esm/scan/reparse.d.ts +10 -0
- package/dist/esm/scan/reparse.js +30 -0
- package/dist/esm/scan/reparse.js.map +1 -0
- package/dist/esm/store/duckdb/batch.d.ts +16 -0
- package/dist/esm/store/duckdb/batch.js +96 -0
- package/dist/esm/store/duckdb/batch.js.map +1 -0
- package/dist/esm/store/duckdb/connection.d.ts +5 -0
- package/dist/esm/store/duckdb/connection.js +97 -0
- package/dist/esm/store/duckdb/connection.js.map +1 -0
- package/dist/esm/store/duckdb/lexical.d.ts +10 -0
- package/dist/esm/store/duckdb/lexical.js +163 -0
- package/dist/esm/store/duckdb/lexical.js.map +1 -0
- package/dist/esm/store/duckdb/native.d.ts +3 -0
- package/dist/esm/store/duckdb/native.js +96 -0
- package/dist/esm/store/duckdb/native.js.map +1 -0
- package/dist/esm/store/duckdb/open.d.ts +12 -0
- package/dist/esm/store/duckdb/open.js +127 -0
- package/dist/esm/store/duckdb/open.js.map +1 -0
- package/dist/esm/store/duckdb/reconcile.d.ts +6 -0
- package/dist/esm/store/duckdb/reconcile.js +141 -0
- package/dist/esm/store/duckdb/reconcile.js.map +1 -0
- package/dist/esm/store/duckdb/sql-functions.d.ts +2 -0
- package/dist/esm/store/duckdb/sql-functions.js +56 -0
- package/dist/esm/store/duckdb/sql-functions.js.map +1 -0
- package/dist/esm/store/duckdb/store.d.ts +5 -0
- package/dist/esm/store/duckdb/store.js +104 -0
- package/dist/esm/store/duckdb/store.js.map +1 -0
- package/dist/esm/store/duckdb/vectors.d.ts +9 -0
- package/dist/esm/store/duckdb/vectors.js +171 -0
- package/dist/esm/store/duckdb/vectors.js.map +1 -0
- package/dist/esm/store/index.d.ts +7 -0
- package/dist/esm/store/index.js +35 -0
- package/dist/esm/store/index.js.map +1 -0
- package/dist/esm/store/meta.d.ts +3 -0
- package/dist/esm/store/meta.js +17 -0
- package/dist/esm/store/meta.js.map +1 -0
- package/dist/esm/store/shared.d.ts +5 -0
- package/dist/esm/store/shared.js +24 -0
- package/dist/esm/store/shared.js.map +1 -0
- package/dist/esm/store/sql-functions.d.ts +2 -0
- package/dist/esm/store/sql-functions.js +29 -0
- package/dist/esm/store/sql-functions.js.map +1 -0
- package/dist/esm/store/sqlite/connection.d.ts +3 -0
- package/dist/esm/store/sqlite/connection.js +50 -0
- package/dist/esm/store/sqlite/connection.js.map +1 -0
- package/dist/esm/store/sqlite/lexical.d.ts +2 -0
- package/dist/esm/store/sqlite/lexical.js +21 -0
- package/dist/esm/store/sqlite/lexical.js.map +1 -0
- package/dist/esm/{db → store/sqlite}/open.d.ts +5 -5
- package/dist/esm/store/sqlite/open.js +193 -0
- package/dist/esm/store/sqlite/open.js.map +1 -0
- package/dist/esm/store/sqlite/reconcile.d.ts +10 -0
- package/dist/esm/{db → store/sqlite}/reconcile.js +101 -99
- package/dist/esm/store/sqlite/reconcile.js.map +1 -0
- package/dist/esm/store/sqlite/sql-functions.js +23 -0
- package/dist/esm/store/sqlite/sql-functions.js.map +1 -0
- package/dist/esm/store/sqlite/store.d.ts +5 -0
- package/dist/esm/store/sqlite/store.js +82 -0
- package/dist/esm/store/sqlite/store.js.map +1 -0
- package/dist/esm/store/sqlite/vectors.d.ts +13 -0
- package/dist/esm/store/sqlite/vectors.js +90 -0
- package/dist/esm/store/sqlite/vectors.js.map +1 -0
- package/dist/esm/store/transaction.d.ts +5 -0
- package/dist/esm/store/transaction.js +57 -0
- package/dist/esm/store/transaction.js.map +1 -0
- package/dist/esm/store/types.d.ts +91 -0
- package/dist/esm/store/types.js +11 -0
- package/dist/esm/store/types.js.map +1 -0
- package/dist/esm/watch.d.ts +3 -0
- package/dist/esm/watch.js +39 -22
- package/dist/esm/watch.js.map +1 -1
- package/package.json +3 -1
- package/schema.json +5 -0
- package/skills/sense/EXAMPLES.md +3 -3
- package/skills/sense/SKILL.md +16 -14
- package/skills/sense-bases/EXAMPLES.md +2 -2
- package/skills/sense-bases/SKILL.md +6 -6
- package/skills/sense-setup/EXAMPLES.md +1 -1
- package/skills/sense-setup/SKILL.md +5 -4
- package/dist/cjs/db/index.d.cts +0 -4
- package/dist/cjs/db/index.d.ts +0 -4
- package/dist/cjs/db/index.js +0 -42
- package/dist/cjs/db/index.js.map +0 -1
- package/dist/cjs/db/open.js +0 -230
- package/dist/cjs/db/open.js.map +0 -1
- package/dist/cjs/db/reconcile.d.cts +0 -10
- package/dist/cjs/db/reconcile.d.ts +0 -10
- package/dist/cjs/db/reconcile.js +0 -579
- package/dist/cjs/db/reconcile.js.map +0 -1
- package/dist/cjs/db/shared.d.cts +0 -5
- package/dist/cjs/db/shared.d.ts +0 -5
- package/dist/cjs/db/shared.js +0 -45
- package/dist/cjs/db/shared.js.map +0 -1
- package/dist/cjs/db/sql-functions.js +0 -64
- package/dist/cjs/db/sql-functions.js.map +0 -1
- package/dist/esm/db/index.d.ts +0 -4
- package/dist/esm/db/index.js +0 -5
- package/dist/esm/db/index.js.map +0 -1
- package/dist/esm/db/open.js +0 -165
- package/dist/esm/db/open.js.map +0 -1
- package/dist/esm/db/reconcile.d.ts +0 -10
- package/dist/esm/db/reconcile.js.map +0 -1
- package/dist/esm/db/shared.d.ts +0 -5
- package/dist/esm/db/shared.js +0 -20
- package/dist/esm/db/shared.js.map +0 -1
- package/dist/esm/db/sql-functions.js +0 -47
- package/dist/esm/db/sql-functions.js.map +0 -1
- /package/dist/cjs/{db → store/sqlite}/sql-functions.d.cts +0 -0
- /package/dist/cjs/{db → store/sqlite}/sql-functions.d.ts +0 -0
- /package/dist/esm/{db → store/sqlite}/sql-functions.d.ts +0 -0
|
@@ -0,0 +1,504 @@
|
|
|
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 CAPABILITIES () {
|
|
13
|
+
return CAPABILITIES;
|
|
14
|
+
},
|
|
15
|
+
get createStore () {
|
|
16
|
+
return createStore;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _typests = require("../../embed/types.js");
|
|
20
|
+
var _sharedts = require("../shared.js");
|
|
21
|
+
var _vectorsts = require("../sqlite/vectors.js");
|
|
22
|
+
var _transactionts = require("../transaction.js");
|
|
23
|
+
var _connectionts = require("./connection.js");
|
|
24
|
+
var _lexicalts = require("./lexical.js");
|
|
25
|
+
var _reconcilets = require("./reconcile.js");
|
|
26
|
+
var _vectorsts1 = require("./vectors.js");
|
|
27
|
+
function _array_like_to_array(arr, len) {
|
|
28
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
29
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
30
|
+
return arr2;
|
|
31
|
+
}
|
|
32
|
+
function _array_without_holes(arr) {
|
|
33
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
34
|
+
}
|
|
35
|
+
function _async_generator(gen) {
|
|
36
|
+
var front, back;
|
|
37
|
+
function send(key, arg) {
|
|
38
|
+
return new Promise(function(resolve, reject) {
|
|
39
|
+
var request = {
|
|
40
|
+
key: key,
|
|
41
|
+
arg: arg,
|
|
42
|
+
resolve: resolve,
|
|
43
|
+
reject: reject,
|
|
44
|
+
next: null
|
|
45
|
+
};
|
|
46
|
+
if (back) back = back.next = request;
|
|
47
|
+
else {
|
|
48
|
+
front = back = request;
|
|
49
|
+
resume(key, arg);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function resume(key, arg) {
|
|
54
|
+
try {
|
|
55
|
+
var result = gen[key](arg);
|
|
56
|
+
var value = result.value;
|
|
57
|
+
var overloaded = value instanceof _overload_yield;
|
|
58
|
+
Promise.resolve(overloaded ? value.v : value).then(function(arg) {
|
|
59
|
+
if (overloaded) {
|
|
60
|
+
var nextKey = key === "return" ? "return" : "next";
|
|
61
|
+
if (!value.k || arg.done) return resume(nextKey, arg);
|
|
62
|
+
else arg = gen[nextKey](arg).value;
|
|
63
|
+
}
|
|
64
|
+
settle(result.done ? "return" : "normal", arg);
|
|
65
|
+
}, function(err) {
|
|
66
|
+
resume("throw", err);
|
|
67
|
+
});
|
|
68
|
+
} catch (err) {
|
|
69
|
+
settle("throw", err);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function settle(type, value) {
|
|
73
|
+
switch(type){
|
|
74
|
+
case "return":
|
|
75
|
+
front.resolve({
|
|
76
|
+
value: value,
|
|
77
|
+
done: true
|
|
78
|
+
});
|
|
79
|
+
break;
|
|
80
|
+
case "throw":
|
|
81
|
+
front.reject(value);
|
|
82
|
+
break;
|
|
83
|
+
default:
|
|
84
|
+
front.resolve({
|
|
85
|
+
value: value,
|
|
86
|
+
done: false
|
|
87
|
+
});
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
front = front.next;
|
|
91
|
+
if (front) resume(front.key, front.arg);
|
|
92
|
+
else back = null;
|
|
93
|
+
}
|
|
94
|
+
this._invoke = send;
|
|
95
|
+
if (typeof gen.return !== "function") this.return = undefined;
|
|
96
|
+
}
|
|
97
|
+
_async_generator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function() {
|
|
98
|
+
return this;
|
|
99
|
+
};
|
|
100
|
+
_async_generator.prototype.next = function(arg) {
|
|
101
|
+
return this._invoke("next", arg);
|
|
102
|
+
};
|
|
103
|
+
_async_generator.prototype.throw = function(arg) {
|
|
104
|
+
return this._invoke("throw", arg);
|
|
105
|
+
};
|
|
106
|
+
_async_generator.prototype.return = function(arg) {
|
|
107
|
+
return this._invoke("return", arg);
|
|
108
|
+
};
|
|
109
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
110
|
+
try {
|
|
111
|
+
var info = gen[key](arg);
|
|
112
|
+
var value = info.value;
|
|
113
|
+
} catch (error) {
|
|
114
|
+
reject(error);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (info.done) resolve(value);
|
|
118
|
+
else Promise.resolve(value).then(_next, _throw);
|
|
119
|
+
}
|
|
120
|
+
function _async_to_generator(fn) {
|
|
121
|
+
return function() {
|
|
122
|
+
var self = this, args = arguments;
|
|
123
|
+
return new Promise(function(resolve, reject) {
|
|
124
|
+
var gen = fn.apply(self, args);
|
|
125
|
+
function _next(value) {
|
|
126
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
127
|
+
}
|
|
128
|
+
function _throw(err) {
|
|
129
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
130
|
+
}
|
|
131
|
+
_next(undefined);
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function _await_async_generator(value) {
|
|
136
|
+
return new _overload_yield(value, 0);
|
|
137
|
+
}
|
|
138
|
+
function _iterable_to_array(iter) {
|
|
139
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) {
|
|
140
|
+
return Array.from(iter);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function _non_iterable_spread() {
|
|
144
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
145
|
+
}
|
|
146
|
+
function _overload_yield(value, kind) {
|
|
147
|
+
this.v = value;
|
|
148
|
+
this.k = kind;
|
|
149
|
+
}
|
|
150
|
+
function _to_consumable_array(arr) {
|
|
151
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
152
|
+
}
|
|
153
|
+
function _ts_generator(thisArg, body) {
|
|
154
|
+
var f, y, t, _ = {
|
|
155
|
+
label: 0,
|
|
156
|
+
sent: function() {
|
|
157
|
+
if (t[0] & 1) throw t[1];
|
|
158
|
+
return t[1];
|
|
159
|
+
},
|
|
160
|
+
trys: [],
|
|
161
|
+
ops: []
|
|
162
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
163
|
+
return d(g, "next", {
|
|
164
|
+
value: verb(0)
|
|
165
|
+
}), d(g, "throw", {
|
|
166
|
+
value: verb(1)
|
|
167
|
+
}), d(g, "return", {
|
|
168
|
+
value: verb(2)
|
|
169
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
170
|
+
value: function() {
|
|
171
|
+
return this;
|
|
172
|
+
}
|
|
173
|
+
}), g;
|
|
174
|
+
function verb(n) {
|
|
175
|
+
return function(v) {
|
|
176
|
+
return step([
|
|
177
|
+
n,
|
|
178
|
+
v
|
|
179
|
+
]);
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
function step(op) {
|
|
183
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
184
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
185
|
+
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;
|
|
186
|
+
if (y = 0, t) op = [
|
|
187
|
+
op[0] & 2,
|
|
188
|
+
t.value
|
|
189
|
+
];
|
|
190
|
+
switch(op[0]){
|
|
191
|
+
case 0:
|
|
192
|
+
case 1:
|
|
193
|
+
t = op;
|
|
194
|
+
break;
|
|
195
|
+
case 4:
|
|
196
|
+
_.label++;
|
|
197
|
+
return {
|
|
198
|
+
value: op[1],
|
|
199
|
+
done: false
|
|
200
|
+
};
|
|
201
|
+
case 5:
|
|
202
|
+
_.label++;
|
|
203
|
+
y = op[1];
|
|
204
|
+
op = [
|
|
205
|
+
0
|
|
206
|
+
];
|
|
207
|
+
continue;
|
|
208
|
+
case 7:
|
|
209
|
+
op = _.ops.pop();
|
|
210
|
+
_.trys.pop();
|
|
211
|
+
continue;
|
|
212
|
+
default:
|
|
213
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
214
|
+
_ = 0;
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
218
|
+
_.label = op[1];
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
222
|
+
_.label = t[1];
|
|
223
|
+
t = op;
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
if (t && _.label < t[2]) {
|
|
227
|
+
_.label = t[2];
|
|
228
|
+
_.ops.push(op);
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
if (t[2]) _.ops.pop();
|
|
232
|
+
_.trys.pop();
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
op = body.call(thisArg, _);
|
|
236
|
+
} catch (e) {
|
|
237
|
+
op = [
|
|
238
|
+
6,
|
|
239
|
+
e
|
|
240
|
+
];
|
|
241
|
+
y = 0;
|
|
242
|
+
} finally{
|
|
243
|
+
f = t = 0;
|
|
244
|
+
}
|
|
245
|
+
if (op[0] & 5) throw op[1];
|
|
246
|
+
return {
|
|
247
|
+
value: op[0] ? op[1] : void 0,
|
|
248
|
+
done: true
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
253
|
+
if (!o) return;
|
|
254
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
255
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
256
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
257
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
258
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
259
|
+
}
|
|
260
|
+
function _wrap_async_generator(fn) {
|
|
261
|
+
return function() {
|
|
262
|
+
return new _async_generator(fn.apply(this, arguments));
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
var CAPABILITIES = new Set([
|
|
266
|
+
'lexical',
|
|
267
|
+
'phrases',
|
|
268
|
+
'vectors'
|
|
269
|
+
]);
|
|
270
|
+
function createStore(instance, duckdb, conn, cfg, baseDir) {
|
|
271
|
+
var lex = (0, _lexicalts.createLexicalIndex)(conn);
|
|
272
|
+
return {
|
|
273
|
+
name: 'duckdb',
|
|
274
|
+
capabilities: CAPABILITIES,
|
|
275
|
+
exec: function exec(sql) {
|
|
276
|
+
return _async_to_generator(function() {
|
|
277
|
+
return _ts_generator(this, function(_state) {
|
|
278
|
+
switch(_state.label){
|
|
279
|
+
case 0:
|
|
280
|
+
return [
|
|
281
|
+
4,
|
|
282
|
+
conn.exec(sql)
|
|
283
|
+
];
|
|
284
|
+
case 1:
|
|
285
|
+
_state.sent();
|
|
286
|
+
return [
|
|
287
|
+
2
|
|
288
|
+
];
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
})();
|
|
292
|
+
},
|
|
293
|
+
prepare: function prepare(sql) {
|
|
294
|
+
return _async_to_generator(function() {
|
|
295
|
+
return _ts_generator(this, function(_state) {
|
|
296
|
+
return [
|
|
297
|
+
2,
|
|
298
|
+
conn.prepare(sql)
|
|
299
|
+
];
|
|
300
|
+
});
|
|
301
|
+
})();
|
|
302
|
+
},
|
|
303
|
+
runBatch: function runBatch(sql, paramRows) {
|
|
304
|
+
return _async_to_generator(function() {
|
|
305
|
+
return _ts_generator(this, function(_state) {
|
|
306
|
+
switch(_state.label){
|
|
307
|
+
case 0:
|
|
308
|
+
return [
|
|
309
|
+
4,
|
|
310
|
+
conn.runBatch(sql, paramRows)
|
|
311
|
+
];
|
|
312
|
+
case 1:
|
|
313
|
+
_state.sent();
|
|
314
|
+
return [
|
|
315
|
+
2
|
|
316
|
+
];
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
})();
|
|
320
|
+
},
|
|
321
|
+
transaction: function transaction(fn) {
|
|
322
|
+
return _async_to_generator(function() {
|
|
323
|
+
return _ts_generator(this, function(_state) {
|
|
324
|
+
return [
|
|
325
|
+
2,
|
|
326
|
+
(0, _transactionts.withTransaction)(conn, fn)
|
|
327
|
+
];
|
|
328
|
+
});
|
|
329
|
+
})();
|
|
330
|
+
},
|
|
331
|
+
reconcile: function reconcile() {
|
|
332
|
+
return _async_to_generator(function() {
|
|
333
|
+
var result;
|
|
334
|
+
return _ts_generator(this, function(_state) {
|
|
335
|
+
switch(_state.label){
|
|
336
|
+
case 0:
|
|
337
|
+
return [
|
|
338
|
+
4,
|
|
339
|
+
(0, _reconcilets.reconcile)(conn, cfg, baseDir)
|
|
340
|
+
];
|
|
341
|
+
case 1:
|
|
342
|
+
result = _state.sent();
|
|
343
|
+
// content may have changed; the fts index is rebuilt lazily, on the next lexical query
|
|
344
|
+
// that needs it, not here (see lexical.ts's FtsIndexState).
|
|
345
|
+
lex.markStale();
|
|
346
|
+
return [
|
|
347
|
+
2,
|
|
348
|
+
result
|
|
349
|
+
];
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
})();
|
|
353
|
+
},
|
|
354
|
+
docs: {
|
|
355
|
+
columns: function columns() {
|
|
356
|
+
return _async_to_generator(function() {
|
|
357
|
+
return _ts_generator(this, function(_state) {
|
|
358
|
+
switch(_state.label){
|
|
359
|
+
case 0:
|
|
360
|
+
return [
|
|
361
|
+
4,
|
|
362
|
+
(0, _sharedts.getColumns)(conn)
|
|
363
|
+
];
|
|
364
|
+
case 1:
|
|
365
|
+
return [
|
|
366
|
+
2,
|
|
367
|
+
_to_consumable_array.apply(void 0, [
|
|
368
|
+
_state.sent()
|
|
369
|
+
])
|
|
370
|
+
];
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
})();
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
lexical: {
|
|
377
|
+
query: lex.query
|
|
378
|
+
},
|
|
379
|
+
// The column's fixed DDL width (STORE_DIMS) is what every scan binds against, not the
|
|
380
|
+
// interface's per-call storeDims -- see vectors.ts's padded() for why a shorter vector is
|
|
381
|
+
// still correct against a wider column.
|
|
382
|
+
vectors: {
|
|
383
|
+
pending: function pending() {
|
|
384
|
+
return (0, _vectorsts.pendingRows)(conn);
|
|
385
|
+
},
|
|
386
|
+
writeVectors: function writeVectors(rows) {
|
|
387
|
+
return (0, _vectorsts1.writeVectorBatch)(duckdb, conn, _typests.STORE_DIMS, rows);
|
|
388
|
+
},
|
|
389
|
+
candidates: function candidates(qv, _storeDims, fetch, allowed) {
|
|
390
|
+
return (0, _vectorsts1.scanCandidates)(duckdb, qv, _typests.STORE_DIMS, fetch, allowed);
|
|
391
|
+
},
|
|
392
|
+
similar: function similar(path, opts) {
|
|
393
|
+
return (0, _vectorsts1.scanSimilar)(duckdb, conn, _typests.STORE_DIMS, path, opts);
|
|
394
|
+
},
|
|
395
|
+
hasVector: function hasVector(path) {
|
|
396
|
+
return (0, _vectorsts.hasVectorRow)(conn, path);
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
raw: {
|
|
400
|
+
prepare: function prepare(sql) {
|
|
401
|
+
return _async_to_generator(function() {
|
|
402
|
+
var prepared;
|
|
403
|
+
return _ts_generator(this, function(_state) {
|
|
404
|
+
switch(_state.label){
|
|
405
|
+
case 0:
|
|
406
|
+
return [
|
|
407
|
+
4,
|
|
408
|
+
duckdb.prepare(sql)
|
|
409
|
+
];
|
|
410
|
+
case 1:
|
|
411
|
+
prepared = _state.sent();
|
|
412
|
+
return [
|
|
413
|
+
2,
|
|
414
|
+
{
|
|
415
|
+
columns: function columns() {
|
|
416
|
+
var out = [];
|
|
417
|
+
for(var i = 0; i < prepared.columnCount; i++)out.push({
|
|
418
|
+
name: prepared.columnName(i)
|
|
419
|
+
});
|
|
420
|
+
return out;
|
|
421
|
+
},
|
|
422
|
+
// Real incremental streaming: DuckDB reads its own result in row-group chunks, so
|
|
423
|
+
// each readUntil only fetches what isn't already in hand.
|
|
424
|
+
iterate: function iterate() {
|
|
425
|
+
for(var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++){
|
|
426
|
+
params[_key] = arguments[_key];
|
|
427
|
+
}
|
|
428
|
+
return _wrap_async_generator(function() {
|
|
429
|
+
var reader, yielded, rows;
|
|
430
|
+
return _ts_generator(this, function(_state) {
|
|
431
|
+
switch(_state.label){
|
|
432
|
+
case 0:
|
|
433
|
+
if (params.length > 0) prepared.bind(params);
|
|
434
|
+
return [
|
|
435
|
+
4,
|
|
436
|
+
_await_async_generator(prepared.streamAndRead())
|
|
437
|
+
];
|
|
438
|
+
case 1:
|
|
439
|
+
reader = _state.sent();
|
|
440
|
+
yielded = 0;
|
|
441
|
+
_state.label = 2;
|
|
442
|
+
case 2:
|
|
443
|
+
return [
|
|
444
|
+
4,
|
|
445
|
+
_await_async_generator(reader.readUntil(reader.currentRowCount + 2048))
|
|
446
|
+
];
|
|
447
|
+
case 3:
|
|
448
|
+
_state.sent();
|
|
449
|
+
rows = reader.getRowObjectsJS();
|
|
450
|
+
_state.label = 4;
|
|
451
|
+
case 4:
|
|
452
|
+
if (!(yielded < rows.length)) return [
|
|
453
|
+
3,
|
|
454
|
+
7
|
|
455
|
+
];
|
|
456
|
+
return [
|
|
457
|
+
4,
|
|
458
|
+
(0, _connectionts.storeRowToJs)(rows[yielded])
|
|
459
|
+
];
|
|
460
|
+
case 5:
|
|
461
|
+
_state.sent();
|
|
462
|
+
_state.label = 6;
|
|
463
|
+
case 6:
|
|
464
|
+
yielded++;
|
|
465
|
+
return [
|
|
466
|
+
3,
|
|
467
|
+
4
|
|
468
|
+
];
|
|
469
|
+
case 7:
|
|
470
|
+
if (!reader.done) return [
|
|
471
|
+
3,
|
|
472
|
+
2
|
|
473
|
+
];
|
|
474
|
+
_state.label = 8;
|
|
475
|
+
case 8:
|
|
476
|
+
return [
|
|
477
|
+
2
|
|
478
|
+
];
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
})();
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
];
|
|
485
|
+
}
|
|
486
|
+
});
|
|
487
|
+
})();
|
|
488
|
+
}
|
|
489
|
+
},
|
|
490
|
+
close: function close() {
|
|
491
|
+
return _async_to_generator(function() {
|
|
492
|
+
return _ts_generator(this, function(_state) {
|
|
493
|
+
// Order matters: the connection must be gone before the instance closes the WAL.
|
|
494
|
+
duckdb.disconnectSync();
|
|
495
|
+
instance.closeSync();
|
|
496
|
+
return [
|
|
497
|
+
2
|
|
498
|
+
];
|
|
499
|
+
});
|
|
500
|
+
})();
|
|
501
|
+
}
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
/* 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/duckdb/store.ts"],"sourcesContent":["import type { DuckDBConnection, DuckDBInstance } from '@duckdb/node-api';\nimport type { Config } from '../../config/index.ts';\nimport { STORE_DIMS } from '../../embed/types.ts';\nimport { getColumns } from '../shared.ts';\n// pending()/hasVector() are IS NULL/IS NOT NULL checks the portable Connection already\n// answers identically regardless of the vector column's type, so this store reuses sqlite's\n// (engine-neutral despite the module name) instead of duplicating them.\nimport { hasVectorRow, pendingRows } from '../sqlite/vectors.ts';\nimport { withTransaction } from '../transaction.ts';\nimport type { Capability, Connection, Statement, Store } from '../types.ts';\nimport { storeRowToJs } from './connection.ts';\nimport { createLexicalIndex } from './lexical.ts';\nimport { reconcile } from './reconcile.ts';\nimport { scanCandidates, scanSimilar, writeVectorBatch } from './vectors.ts';\n\n// Portable surface, links/sections/tags/rank, raw sql passthrough, lexical (D1: fts BM25 +\n// contains(), see lexical.ts), and vectors (D2: native FLOAT[N] + array_cosine_similarity, see\n// vectors.ts) are implemented. 'snippets' is declined: no snippet()-equivalent exists, so every\n// lexical hit relies on the caller's JS excerpt fallback (commands/search.ts) rather than a\n// bounded engine-native one. 'phrases' means quoted-phrase matching only (types.ts):\n// prefix/boolean/NEAR/column-filter FTS5 syntax is not claimed here -- lexical.ts rejects it\n// rather than answer it differently.\nexport const CAPABILITIES: ReadonlySet<Capability> = new Set(['lexical', 'phrases', 'vectors']);\n\n// Shares one Connection instance (conn) with open()'s own reconcile call so transaction depth\n// (see transaction.ts) is tracked against the same object everywhere. The instance is the\n// native database handle that owns the WAL: close() must close it, not just disconnect the\n// connection, or DuckDB never checkpoints and the next open reads a mismatched WAL.\nexport function createStore(instance: DuckDBInstance, duckdb: DuckDBConnection, conn: Connection, cfg: Config, baseDir: string): Store {\n const lex = createLexicalIndex(conn);\n return {\n name: 'duckdb',\n capabilities: CAPABILITIES,\n async exec(sql: string): Promise<void> {\n await conn.exec(sql);\n },\n async prepare(sql: string): Promise<Statement> {\n return conn.prepare(sql);\n },\n async runBatch(sql: string, paramRows: unknown[][]): Promise<void> {\n await conn.runBatch(sql, paramRows);\n },\n async transaction<T>(fn: () => Promise<T>): Promise<T> {\n return withTransaction(conn, fn);\n },\n async reconcile() {\n const result = await reconcile(conn, cfg, baseDir);\n // content may have changed; the fts index is rebuilt lazily, on the next lexical query\n // that needs it, not here (see lexical.ts's FtsIndexState).\n lex.markStale();\n return result;\n },\n docs: {\n async columns() {\n return [...(await getColumns(conn))];\n },\n },\n lexical: {\n query: lex.query,\n },\n // The column's fixed DDL width (STORE_DIMS) is what every scan binds against, not the\n // interface's per-call storeDims -- see vectors.ts's padded() for why a shorter vector is\n // still correct against a wider column.\n vectors: {\n pending: () => pendingRows(conn),\n writeVectors: (rows) => writeVectorBatch(duckdb, conn, STORE_DIMS, rows),\n candidates: (qv, _storeDims, fetch, allowed) => scanCandidates(duckdb, qv, STORE_DIMS, fetch, allowed),\n similar: (path, opts) => scanSimilar(duckdb, conn, STORE_DIMS, path, opts),\n hasVector: (path) => hasVectorRow(conn, path),\n },\n raw: {\n async prepare(sql: string) {\n const prepared = await duckdb.prepare(sql);\n return {\n columns: () => {\n const out: Array<{ name: string }> = [];\n for (let i = 0; i < prepared.columnCount; i++) out.push({ name: prepared.columnName(i) });\n return out;\n },\n // Real incremental streaming: DuckDB reads its own result in row-group chunks, so\n // each readUntil only fetches what isn't already in hand.\n iterate: async function* (...params: unknown[]) {\n if (params.length > 0) prepared.bind(params as Parameters<typeof prepared.bind>[0]);\n const reader = await prepared.streamAndRead();\n let yielded = 0;\n do {\n await reader.readUntil(reader.currentRowCount + 2048);\n const rows = reader.getRowObjectsJS() as Array<Record<string, unknown>>;\n for (; yielded < rows.length; yielded++) yield storeRowToJs(rows[yielded]);\n } while (!reader.done);\n },\n };\n },\n },\n async close() {\n // Order matters: the connection must be gone before the instance closes the WAL.\n duckdb.disconnectSync();\n instance.closeSync();\n },\n };\n}\n"],"names":["CAPABILITIES","createStore","Set","instance","duckdb","conn","cfg","baseDir","lex","createLexicalIndex","name","capabilities","exec","sql","prepare","runBatch","paramRows","transaction","fn","withTransaction","reconcile","result","markStale","docs","columns","getColumns","lexical","query","vectors","pending","pendingRows","writeVectors","rows","writeVectorBatch","STORE_DIMS","candidates","qv","_storeDims","fetch","allowed","scanCandidates","similar","path","opts","scanSimilar","hasVector","hasVectorRow","raw","prepared","out","i","columnCount","push","columnName","iterate","params","reader","yielded","length","bind","streamAndRead","readUntil","currentRowCount","getRowObjectsJS","storeRowToJs","done","close","disconnectSync","closeSync"],"mappings":";;;;;;;;;;;QAsBaA;eAAAA;;QAMGC;eAAAA;;;uBA1BW;wBACA;yBAIe;6BACV;4BAEH;yBACM;2BACT;0BACoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASvD,IAAMD,eAAwC,IAAIE,IAAI;IAAC;IAAW;IAAW;CAAU;AAMvF,SAASD,YAAYE,QAAwB,EAAEC,MAAwB,EAAEC,IAAgB,EAAEC,GAAW,EAAEC,OAAe;IAC5H,IAAMC,MAAMC,IAAAA,6BAAkB,EAACJ;IAC/B,OAAO;QACLK,MAAM;QACNC,cAAcX;QACRY,MAAN,SAAMA,KAAKC,GAAW;;;;;4BACpB;;gCAAMR,KAAKO,IAAI,CAACC;;;4BAAhB;;;;;;YACF;;QACMC,SAAN,SAAMA,QAAQD,GAAW;;;oBACvB;;wBAAOR,KAAKS,OAAO,CAACD;;;YACtB;;QACME,UAAN,SAAMA,SAASF,GAAW,EAAEG,SAAsB;;;;;4BAChD;;gCAAMX,KAAKU,QAAQ,CAACF,KAAKG;;;4BAAzB;;;;;;YACF;;QACMC,aAAN,SAAMA,YAAeC,EAAoB;;;oBACvC;;wBAAOC,IAAAA,8BAAe,EAACd,MAAMa;;;YAC/B;;QACME,WAAN,SAAMA;;oBACEC;;;;4BAAS;;gCAAMD,IAAAA,sBAAS,EAACf,MAAMC,KAAKC;;;4BAApCc,SAAS;4BACf,uFAAuF;4BACvF,4DAA4D;4BAC5Db,IAAIc,SAAS;4BACb;;gCAAOD;;;;YACT;;QACAE,MAAM;YACEC,SAAN,SAAMA;;;;;gCACQ;;oCAAMC,IAAAA,oBAAU,EAACpB;;;gCAA7B;;oCAAQ;wCAAI;;;;;gBACd;;QACF;QACAqB,SAAS;YACPC,OAAOnB,IAAImB,KAAK;QAClB;QACA,sFAAsF;QACtF,0FAA0F;QAC1F,wCAAwC;QACxCC,SAAS;YACPC,SAAS,SAATA;uBAAeC,IAAAA,sBAAW,EAACzB;;YAC3B0B,cAAc,SAAdA,aAAeC;uBAASC,IAAAA,4BAAgB,EAAC7B,QAAQC,MAAM6B,mBAAU,EAAEF;;YACnEG,YAAY,SAAZA,WAAaC,IAAIC,YAAYC,OAAOC;uBAAYC,IAAAA,0BAAc,EAACpC,QAAQgC,IAAIF,mBAAU,EAAEI,OAAOC;;YAC9FE,SAAS,SAATA,QAAUC,MAAMC;uBAASC,IAAAA,uBAAW,EAACxC,QAAQC,MAAM6B,mBAAU,EAAEQ,MAAMC;;YACrEE,WAAW,SAAXA,UAAYH;uBAASI,IAAAA,uBAAY,EAACzC,MAAMqC;;QAC1C;QACAK,KAAK;YACGjC,SAAN,SAAMA,QAAQD,GAAW;;wBACjBmC;;;;gCAAW;;oCAAM5C,OAAOU,OAAO,CAACD;;;gCAAhCmC,WAAW;gCACjB;;oCAAO;wCACLxB,SAAS,SAATA;4CACE,IAAMyB,MAA+B,EAAE;4CACvC,IAAK,IAAIC,IAAI,GAAGA,IAAIF,SAASG,WAAW,EAAED,IAAKD,IAAIG,IAAI,CAAC;gDAAE1C,MAAMsC,SAASK,UAAU,CAACH;4CAAG;4CACvF,OAAOD;wCACT;wCACA,kFAAkF;wCAClF,0DAA0D;wCAC1DK,SAAS,SAATA;4CAA0B,IAAA,IAAA,OAAA,UAAA,QAAA,AAAGC,SAAH,UAAA,OAAA,OAAA,GAAA,OAAA,MAAA;gDAAGA,OAAH,QAAA,SAAA,CAAA,KAAoB;;;oDAEtCC,QACFC,SAGIzB;;;;4DALR,IAAIuB,OAAOG,MAAM,GAAG,GAAGV,SAASW,IAAI,CAACJ;4DACtB;;gEAAA,uBAAMP,SAASY,aAAa;;;4DAArCJ,SAAS;4DACXC,UAAU;;;4DAEZ;;gEAAA,uBAAMD,OAAOK,SAAS,CAACL,OAAOM,eAAe,GAAG;;;4DAAhD;4DACM9B,OAAOwB,OAAOO,eAAe;;;iEAC5BN,CAAAA,UAAUzB,KAAK0B,MAAM,AAAD;;;;4DAAc;;gEAAMM,IAAAA,0BAAY,EAAChC,IAAI,CAACyB,QAAQ;;;4DAAhC;;;4DAAXA;;;;;;gEACvB,CAACD,OAAOS,IAAI,EAAZ;;;;;;;;;;;4CACX;;oCACF;;;;gBACF;;QACF;QACMC,OAAN,SAAMA;;;oBACJ,iFAAiF;oBACjF9D,OAAO+D,cAAc;oBACrBhE,SAASiE,SAAS;;;;;YACpB;;IACF;AACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DuckDBConnection } from '@duckdb/node-api';
|
|
2
|
+
import type { Connection, VectorCandidate, VectorSimilar, VectorWriteRow } from '../types.js';
|
|
3
|
+
export declare function writeVectorBatch(duckdb: DuckDBConnection, conn: Connection, dims: number, rows: VectorWriteRow[]): Promise<void>;
|
|
4
|
+
export declare function scanCandidates(duckdb: DuckDBConnection, qv: Float32Array, dims: number, fetch: number, allowed?: Set<string>): Promise<VectorCandidate[]>;
|
|
5
|
+
export declare function scanSimilar(duckdb: DuckDBConnection, conn: Connection, dims: number, path: string, opts: {
|
|
6
|
+
exclude: Set<string>;
|
|
7
|
+
allowed?: Set<string>;
|
|
8
|
+
k: number;
|
|
9
|
+
}): Promise<VectorSimilar[]>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { DuckDBConnection } from '@duckdb/node-api';
|
|
2
|
+
import type { Connection, VectorCandidate, VectorSimilar, VectorWriteRow } from '../types.js';
|
|
3
|
+
export declare function writeVectorBatch(duckdb: DuckDBConnection, conn: Connection, dims: number, rows: VectorWriteRow[]): Promise<void>;
|
|
4
|
+
export declare function scanCandidates(duckdb: DuckDBConnection, qv: Float32Array, dims: number, fetch: number, allowed?: Set<string>): Promise<VectorCandidate[]>;
|
|
5
|
+
export declare function scanSimilar(duckdb: DuckDBConnection, conn: Connection, dims: number, path: string, opts: {
|
|
6
|
+
exclude: Set<string>;
|
|
7
|
+
allowed?: Set<string>;
|
|
8
|
+
k: number;
|
|
9
|
+
}): Promise<VectorSimilar[]>;
|