sqlrite 0.10.0__tar.gz → 0.10.1__tar.gz
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.
- {sqlrite-0.10.0 → sqlrite-0.10.1}/.github/workflows/ci.yml +27 -1
- {sqlrite-0.10.0 → sqlrite-0.10.1}/.github/workflows/release.yml +25 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/.gitignore +9 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/Cargo.lock +7 -7
- {sqlrite-0.10.0 → sqlrite-0.10.1}/Cargo.toml +2 -2
- {sqlrite-0.10.0 → sqlrite-0.10.1}/PKG-INFO +1 -1
- {sqlrite-0.10.0 → sqlrite-0.10.1}/README.md +9 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/package.json +1 -1
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/release-plan.md +62 -1
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/sql-engine.md +1 -1
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/README.md +30 -0
- sqlrite-0.10.1/examples/nodejs-notes/.gitignore +6 -0
- sqlrite-0.10.1/examples/nodejs-notes/README.md +333 -0
- sqlrite-0.10.1/examples/nodejs-notes/bin/sqlrite-notes.mjs +15 -0
- sqlrite-0.10.1/examples/nodejs-notes/package-lock.json +31 -0
- sqlrite-0.10.1/examples/nodejs-notes/package.json +38 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/chunker.mjs +191 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/claude-config.mjs +65 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/cli.mjs +350 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/config.mjs +71 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/db.mjs +400 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/embeddings.mjs +152 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/ingest.mjs +235 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/search.mjs +51 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/serve.mjs +113 -0
- sqlrite-0.10.1/examples/nodejs-notes/src/sqlutil.mjs +63 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/chunker.test.mjs +85 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/claude-config.test.mjs +36 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/db.test.mjs +272 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/embeddings.test.mjs +104 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/fixtures/crdts.md +23 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/fixtures/postgres.md +18 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/fixtures/running.md +8 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/ingest.test.mjs +131 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/serve.test.mjs +38 -0
- sqlrite-0.10.1/examples/nodejs-notes/test/sqlutil.test.mjs +47 -0
- sqlrite-0.10.1/examples/python-agent/.gitignore +12 -0
- sqlrite-0.10.1/examples/python-agent/README.md +275 -0
- sqlrite-0.10.1/examples/python-agent/pyproject.toml +55 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/__init__.py +4 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/__main__.py +4 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/agent.py +163 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/chat.py +113 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/cli.py +194 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/db.py +349 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/embeddings.py +141 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/facts.py +137 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/memory.py +216 -0
- sqlrite-0.10.1/examples/python-agent/sqlrite_agent/sqlutil.py +39 -0
- sqlrite-0.10.1/examples/python-agent/tests/conftest.py +38 -0
- sqlrite-0.10.1/examples/python-agent/tests/test_agent.py +100 -0
- sqlrite-0.10.1/examples/python-agent/tests/test_db.py +172 -0
- sqlrite-0.10.1/examples/python-agent/tests/test_facts.py +57 -0
- sqlrite-0.10.1/examples/python-agent/tests/test_memory.py +85 -0
- sqlrite-0.10.1/examples/python-agent/tests/test_sqlutil.py +28 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/pyproject.toml +1 -1
- {sqlrite-0.10.0 → sqlrite-0.10.1}/scripts/bump-version.sh +18 -3
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/Cargo.toml +1 -1
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/Cargo.toml +1 -1
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/db/table.rs +48 -3
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/executor.rs +10 -7
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/hnsw.rs +96 -45
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/mod.rs +55 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/mod.rs +4 -48
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/README.md +50 -1
- sqlrite-0.10.1/web/content/blog/shipping-concurrent-writes-mvcc-v010.mdx +395 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/package-lock.json +500 -2
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/package.json +1 -0
- sqlrite-0.10.1/web/seo/keywords.md +161 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/docs/page.tsx +23 -8
- sqlrite-0.10.1/web/src/app/examples/page.tsx +271 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/layout.tsx +29 -11
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/page.tsx +5 -2
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/sitemap.ts +1 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/benchmarks.tsx +7 -6
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/features.tsx +15 -8
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/hero.tsx +8 -8
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/nav.tsx +8 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/roadmap.tsx +23 -6
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/site.ts +1 -1
- sqlrite-0.10.1/web/src/middleware.ts +31 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/.github/workflows/release-pr.yml +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/.github/workflows/rust.yml +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/CLAUDE.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/CODE_OF_CONDUCT.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/LICENSE +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/MAINTAINERS +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/Makefile +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/index.html +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/package-lock.json +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/src/App.svelte +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/src/app.css +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/src/main.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/src/vite-env.d.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/svelte.config.js +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/tsconfig.json +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/desktop/vite.config.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/_index.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/architecture.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/ask-backend-examples.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/ask.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/benchmarks-plan.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/benchmarks.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/concurrent-writes-plan.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/concurrent-writes.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/design-decisions.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/desktop.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/embedding.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/file-format.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/fts.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/getting-started.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/mcp.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/pager.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/phase-7-plan.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/phase-8-plan.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/release-secrets.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/roadmap.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/smoke-test.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/storage-model.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/supported-sql.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/docs/usage.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/c/Makefile +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/c/hello.c +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/go/go.mod +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/go/hello.go +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/hybrid-retrieval/README.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/hybrid-retrieval/hybrid_retrieval.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/nodejs/hello.mjs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/python/hello.py +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/rust/concurrent_writers.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/rust/quickstart.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/wasm/Makefile +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/wasm/index.html +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/examples/wasm/server.mjs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite - Desktop.png +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite Data Structures.png +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite Simple SQL Execution High Level Diagram.png +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite Simple SQL INSERT Execution High Level Diagram (Insert Row).png +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite Simple SQL INSERT Execution High Level Diagram.png +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/images/SQLRite_logo.png +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/images/architecture.png +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/rust-toolchain.toml +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/AST.delete.example +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/AST.insert.exemple +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/AST.select.example +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/AST.update.example +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/CREATE TABLE sqlrite_schema.sql +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/CREATE_TABLE with duplicate.sql +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/CREATE_TABLE.sql +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/samples/INSERT.sql +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/README.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/ask.go +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/ask_test.go +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/conn.go +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/go.mod +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/rows.go +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/sqlrite.go +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/sqlrite_test.go +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/go/stmt.go +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/README.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/src/lib.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/tests/test_ask.py +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sdk/python/tests/test_sqlrite.py +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/README.md +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/lib.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/prompt.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/provider/anthropic.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/provider/mock.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/src/provider/mod.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/sqlrite-ask/tests/anthropic_http.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/ask/mod.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/ask/schema.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/connection.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/error.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/lib.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/main.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/meta_command/mod.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/clock.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/log.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/mod.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/registry.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/store.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/mvcc/transaction.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/repl/mod.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/agg.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/db/database.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/db/mod.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/db/secondary_index.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/dialect.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/fts/bm25.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/fts/mod.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/fts/posting_list.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/fts/tokenizer.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/allocator.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/cell.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/file.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/freelist.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/fts_cell.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/header.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/hnsw_cell.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/index_cell.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/interior_page.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/overflow.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/page.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/pager.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/table_page.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/varint.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pager/wal.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/params.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/parser/create.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/parser/insert.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/parser/mod.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/parser/select.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/pragma.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/src/sql/tokenizer.rs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/.gitignore +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/components.json +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/adding-vector-search-with-hnsw.mdx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/how-sqlrite-stores-rows-on-disk.mdx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/shipping-sqlrite-tauri-mcp-sdks.mdx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/sqlrite-vs-sqlite-benchmarks.mdx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/content/blog/why-im-building-sqlrite.mdx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/eslint.config.mjs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/next.config.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/postcss.config.mjs +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/[slug]/opengraph-image.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/[slug]/page.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/[slug]/twitter-image.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/page.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/rss.xml/route.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/blog/tags/[tag]/page.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/docs/opengraph-image.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/docs/twitter-image.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/globals.css +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/opengraph-image.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/robots.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/app/twitter-image.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/architecture.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/blog-mdx.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/blog.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/cta-strip.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/desktop.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/footer.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/icons.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/install-bar.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/sdk-showcase-client.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/sdk-showcase.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/sql-ref.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/components/terminal.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/benchmarks.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/blog.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/highlight.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/og.tsx +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/src/lib/utils.ts +0 -0
- {sqlrite-0.10.0 → sqlrite-0.10.1}/web/tsconfig.json +0 -0
|
@@ -299,6 +299,15 @@ jobs:
|
|
|
299
299
|
wasm-build:
|
|
300
300
|
name: wasm-build
|
|
301
301
|
runs-on: ubuntu-latest
|
|
302
|
+
# Pinned binaryen version — see docs/release-plan.md
|
|
303
|
+
# ("Pinned binaryen / wasm-opt") for the bump procedure. Older
|
|
304
|
+
# binaryen rejects rustc's multi-table WASM output with
|
|
305
|
+
# "Only 1 table definition allowed in MVP", which the runner
|
|
306
|
+
# image's cache state used to surface non-deterministically
|
|
307
|
+
# (SQLR-58). Pinning keeps wasm-opt out of "whatever's cached"
|
|
308
|
+
# territory.
|
|
309
|
+
env:
|
|
310
|
+
BINARYEN_VERSION: version_122
|
|
302
311
|
steps:
|
|
303
312
|
- uses: actions/checkout@v4
|
|
304
313
|
|
|
@@ -313,12 +322,29 @@ jobs:
|
|
|
313
322
|
workspaces: sdk/wasm
|
|
314
323
|
shared-key: wasm-build
|
|
315
324
|
|
|
325
|
+
- name: Install pinned binaryen (wasm-opt)
|
|
326
|
+
# MUST run before wasm-pack: wasm-pack picks up wasm-opt from
|
|
327
|
+
# PATH if present, otherwise downloads whatever binaryen its
|
|
328
|
+
# own internal cache happens to have. Pinning + prepending
|
|
329
|
+
# to PATH forces a deterministic version across runner images.
|
|
330
|
+
run: |
|
|
331
|
+
set -euo pipefail
|
|
332
|
+
curl -fsSL "https://github.com/WebAssembly/binaryen/releases/download/${BINARYEN_VERSION}/binaryen-${BINARYEN_VERSION}-x86_64-linux.tar.gz" \
|
|
333
|
+
-o "$RUNNER_TEMP/binaryen.tar.gz"
|
|
334
|
+
tar -xzf "$RUNNER_TEMP/binaryen.tar.gz" -C "$RUNNER_TEMP"
|
|
335
|
+
echo "$RUNNER_TEMP/binaryen-${BINARYEN_VERSION}/bin" >> "$GITHUB_PATH"
|
|
336
|
+
"$RUNNER_TEMP/binaryen-${BINARYEN_VERSION}/bin/wasm-opt" --version
|
|
337
|
+
|
|
316
338
|
- name: Install wasm-pack
|
|
317
339
|
uses: jetli/wasm-pack-action@v0.4.0
|
|
318
340
|
|
|
319
341
|
- name: wasm-pack build --target web --release
|
|
320
342
|
working-directory: sdk/wasm
|
|
321
|
-
run:
|
|
343
|
+
run: |
|
|
344
|
+
# Sanity-check that the pinned wasm-opt is what wasm-pack sees.
|
|
345
|
+
which wasm-opt
|
|
346
|
+
wasm-opt --version
|
|
347
|
+
wasm-pack build --target web --release
|
|
322
348
|
|
|
323
349
|
- name: Report .wasm size
|
|
324
350
|
# Surfaces size regressions in PR logs. Not a hard limit yet;
|
|
@@ -1189,6 +1189,14 @@ jobs:
|
|
|
1189
1189
|
if: needs.detect.outputs.should_release == 'true'
|
|
1190
1190
|
runs-on: ubuntu-latest
|
|
1191
1191
|
environment: release
|
|
1192
|
+
# Pinned binaryen version — see docs/release-plan.md
|
|
1193
|
+
# ("Pinned binaryen / wasm-opt") for the bump procedure. Older
|
|
1194
|
+
# binaryen rejects rustc's multi-table WASM output with
|
|
1195
|
+
# "Only 1 table definition allowed in MVP" (SQLR-58). The
|
|
1196
|
+
# release pipeline can't tolerate that flake — a failed
|
|
1197
|
+
# publish-wasm leaves the rest of the release wave inconsistent.
|
|
1198
|
+
env:
|
|
1199
|
+
BINARYEN_VERSION: version_122
|
|
1192
1200
|
permissions:
|
|
1193
1201
|
# OIDC: required for npm trusted-publisher token exchange.
|
|
1194
1202
|
# Same flow proven in publish-nodejs after the v0.1.5–0.1.7
|
|
@@ -1207,6 +1215,20 @@ jobs:
|
|
|
1207
1215
|
shared-key: publish-wasm
|
|
1208
1216
|
workspaces: 'sdk/wasm -> target'
|
|
1209
1217
|
|
|
1218
|
+
- name: Install pinned binaryen (wasm-opt)
|
|
1219
|
+
# MUST run before wasm-pack: wasm-pack picks up wasm-opt
|
|
1220
|
+
# from PATH if present, otherwise downloads whatever
|
|
1221
|
+
# binaryen its own internal cache happens to have. Pinning
|
|
1222
|
+
# + prepending to PATH forces a deterministic version
|
|
1223
|
+
# across runner images.
|
|
1224
|
+
run: |
|
|
1225
|
+
set -euo pipefail
|
|
1226
|
+
curl -fsSL "https://github.com/WebAssembly/binaryen/releases/download/${BINARYEN_VERSION}/binaryen-${BINARYEN_VERSION}-x86_64-linux.tar.gz" \
|
|
1227
|
+
-o "$RUNNER_TEMP/binaryen.tar.gz"
|
|
1228
|
+
tar -xzf "$RUNNER_TEMP/binaryen.tar.gz" -C "$RUNNER_TEMP"
|
|
1229
|
+
echo "$RUNNER_TEMP/binaryen-${BINARYEN_VERSION}/bin" >> "$GITHUB_PATH"
|
|
1230
|
+
"$RUNNER_TEMP/binaryen-${BINARYEN_VERSION}/bin/wasm-opt" --version
|
|
1231
|
+
|
|
1210
1232
|
# Install wasm-pack — the canonical tool for building +
|
|
1211
1233
|
# packaging Rust crates as npm-publishable WASM modules.
|
|
1212
1234
|
# `cargo binstall` would be faster than `cargo install`
|
|
@@ -1239,6 +1261,9 @@ jobs:
|
|
|
1239
1261
|
- name: Build WASM package
|
|
1240
1262
|
working-directory: sdk/wasm
|
|
1241
1263
|
run: |
|
|
1264
|
+
# Sanity-check that the pinned wasm-opt is on PATH (SQLR-58).
|
|
1265
|
+
which wasm-opt
|
|
1266
|
+
wasm-opt --version
|
|
1242
1267
|
wasm-pack build --release --target bundler --scope joaoh82
|
|
1243
1268
|
echo "--- generated pkg/ contents ---"
|
|
1244
1269
|
ls -la pkg/
|
|
@@ -44,3 +44,12 @@ examples/wasm/pkg
|
|
|
44
44
|
|
|
45
45
|
# macOS
|
|
46
46
|
.DS_Store
|
|
47
|
+
|
|
48
|
+
# Local agent / Claude Code worktrees. These shouldn't ever get
|
|
49
|
+
# committed — but `git add -A` from main while a worktree is live
|
|
50
|
+
# under .claude/worktrees/<name>/ will capture it as a gitlink
|
|
51
|
+
# (mode 160000) because the worktree dir looks like a submodule to
|
|
52
|
+
# the parent index. Ignoring the whole tree prevents that whole
|
|
53
|
+
# class of accident. (The release commit 937f8b4 hit exactly this
|
|
54
|
+
# bug; the next commit untracks the leftover gitlinks.)
|
|
55
|
+
.claude/worktrees/
|
|
@@ -4799,7 +4799,7 @@ dependencies = [
|
|
|
4799
4799
|
|
|
4800
4800
|
[[package]]
|
|
4801
4801
|
name = "sqlrite-ask"
|
|
4802
|
-
version = "0.10.
|
|
4802
|
+
version = "0.10.1"
|
|
4803
4803
|
dependencies = [
|
|
4804
4804
|
"serde",
|
|
4805
4805
|
"serde_json",
|
|
@@ -4827,7 +4827,7 @@ dependencies = [
|
|
|
4827
4827
|
|
|
4828
4828
|
[[package]]
|
|
4829
4829
|
name = "sqlrite-desktop"
|
|
4830
|
-
version = "0.10.
|
|
4830
|
+
version = "0.10.1"
|
|
4831
4831
|
dependencies = [
|
|
4832
4832
|
"serde",
|
|
4833
4833
|
"serde_json",
|
|
@@ -4839,7 +4839,7 @@ dependencies = [
|
|
|
4839
4839
|
|
|
4840
4840
|
[[package]]
|
|
4841
4841
|
name = "sqlrite-engine"
|
|
4842
|
-
version = "0.10.
|
|
4842
|
+
version = "0.10.1"
|
|
4843
4843
|
dependencies = [
|
|
4844
4844
|
"clap",
|
|
4845
4845
|
"env_logger",
|
|
@@ -4856,7 +4856,7 @@ dependencies = [
|
|
|
4856
4856
|
|
|
4857
4857
|
[[package]]
|
|
4858
4858
|
name = "sqlrite-ffi"
|
|
4859
|
-
version = "0.10.
|
|
4859
|
+
version = "0.10.1"
|
|
4860
4860
|
dependencies = [
|
|
4861
4861
|
"cbindgen",
|
|
4862
4862
|
"serde",
|
|
@@ -4866,7 +4866,7 @@ dependencies = [
|
|
|
4866
4866
|
|
|
4867
4867
|
[[package]]
|
|
4868
4868
|
name = "sqlrite-mcp"
|
|
4869
|
-
version = "0.10.
|
|
4869
|
+
version = "0.10.1"
|
|
4870
4870
|
dependencies = [
|
|
4871
4871
|
"clap",
|
|
4872
4872
|
"libc",
|
|
@@ -4877,7 +4877,7 @@ dependencies = [
|
|
|
4877
4877
|
|
|
4878
4878
|
[[package]]
|
|
4879
4879
|
name = "sqlrite-nodejs"
|
|
4880
|
-
version = "0.10.
|
|
4880
|
+
version = "0.10.1"
|
|
4881
4881
|
dependencies = [
|
|
4882
4882
|
"napi",
|
|
4883
4883
|
"napi-build",
|
|
@@ -4887,7 +4887,7 @@ dependencies = [
|
|
|
4887
4887
|
|
|
4888
4888
|
[[package]]
|
|
4889
4889
|
name = "sqlrite-python"
|
|
4890
|
-
version = "0.10.
|
|
4890
|
+
version = "0.10.1"
|
|
4891
4891
|
dependencies = [
|
|
4892
4892
|
"pyo3",
|
|
4893
4893
|
"sqlrite-engine",
|
|
@@ -27,7 +27,7 @@ resolver = "3"
|
|
|
27
27
|
# `package =` key so the import name stays `sqlrite` internally:
|
|
28
28
|
# sqlrite = { package = "sqlrite-engine", path = "…" }
|
|
29
29
|
name = "sqlrite-engine"
|
|
30
|
-
version = "0.10.
|
|
30
|
+
version = "0.10.1"
|
|
31
31
|
authors = ["Joao Henrique Machado Silva <joaoh82@gmail.com>"]
|
|
32
32
|
edition = "2024"
|
|
33
33
|
rust-version = "1.85"
|
|
@@ -150,4 +150,4 @@ fs2 = { version = "0.4", optional = true }
|
|
|
150
150
|
# crate publishes to crates.io, and a path-only dep without a
|
|
151
151
|
# version field fails the manifest verification step. See PR #58
|
|
152
152
|
# retrospective in docs/roadmap.md.
|
|
153
|
-
sqlrite-ask = { version = "0.10.
|
|
153
|
+
sqlrite-ask = { version = "0.10.1", path = "sqlrite-ask", optional = true }
|
|
@@ -108,6 +108,15 @@ Wire it into Claude Code (`~/.claude.json`):
|
|
|
108
108
|
|
|
109
109
|
`--read-only` opens the DB with a shared lock and hides the `execute` tool. Full docs + the other six tools' references in [`docs/mcp.md`](docs/mcp.md).
|
|
110
110
|
|
|
111
|
+
### End-to-end example apps
|
|
112
|
+
|
|
113
|
+
Beyond the per-language quickstarts in [`examples/`](examples/), the SQLR-38 umbrella tracks longer, opinionated example apps that exercise SQLRite in real-world shapes:
|
|
114
|
+
|
|
115
|
+
| App | SDK | What it shows |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| [Python LLM agent with persistent memory](examples/python-agent/) | Python | Vector + lexical recall, fact extraction, summaries — all in one `.sqlrite` file |
|
|
118
|
+
| [Chat-with-your-notes via Claude Desktop MCP](examples/nodejs-notes/) | Node.js | Markdown → hybrid HNSW + BM25 index → `sqlrite-mcp --read-only` → Claude Desktop |
|
|
119
|
+
|
|
111
120
|
### Developer guide
|
|
112
121
|
|
|
113
122
|
In-depth documentation lives under [`docs/`](docs/). Start at [`docs/_index.md`](docs/_index.md) — it navigates to:
|
|
@@ -247,7 +247,10 @@ The "publish" half. Auto-fires on the release commit.
|
|
|
247
247
|
GitHub Release `sqlrite-node-vX.Y.Z`.
|
|
248
248
|
- **publish-wasm** — `wasm-pack build --target bundler --release`,
|
|
249
249
|
then `wasm-pack publish` via OIDC. Creates
|
|
250
|
-
`sqlrite-wasm-vX.Y.Z` GitHub Release.
|
|
250
|
+
`sqlrite-wasm-vX.Y.Z` GitHub Release. Installs a
|
|
251
|
+
[pinned binaryen / wasm-opt](#pinned-binaryen--wasm-opt) before
|
|
252
|
+
invoking `wasm-pack`, so the published bundle is byte-stable
|
|
253
|
+
across runner image cache states.
|
|
251
254
|
- **publish-go** — nothing to build on the Go side. Verifies
|
|
252
255
|
`sdk/go/vX.Y.Z` was pushed correctly by `tag-all`. Pulls the
|
|
253
256
|
per-platform `libsqlrite_c` tarballs produced by
|
|
@@ -285,6 +288,64 @@ The "publish" half. Auto-fires on the release commit.
|
|
|
285
288
|
exist (because the real release happened weeks ago). Workflow
|
|
286
289
|
aborts with a clear "tag already exists" error. No damage.
|
|
287
290
|
|
|
291
|
+
## Pinned binaryen / wasm-opt
|
|
292
|
+
|
|
293
|
+
The WASM build paths in `ci.yml` (`wasm-build`) and `release.yml`
|
|
294
|
+
(`publish-wasm`) both install a **pinned version of binaryen**
|
|
295
|
+
(which provides `wasm-opt`) before invoking `wasm-pack`. The pin
|
|
296
|
+
lives in a `BINARYEN_VERSION` job-level `env:` in each workflow.
|
|
297
|
+
|
|
298
|
+
**Current pin: `version_122`** (released Feb 2025).
|
|
299
|
+
|
|
300
|
+
### Why this exists (SQLR-58)
|
|
301
|
+
|
|
302
|
+
`wasm-pack` invokes `wasm-opt` to size-optimize the published
|
|
303
|
+
bundle. If `wasm-opt` is already on `PATH`, `wasm-pack` uses that
|
|
304
|
+
one; otherwise it downloads its own copy into a per-runner cache.
|
|
305
|
+
That cache is keyed on the runner image and survives across
|
|
306
|
+
images opaquely — which means CI was getting whatever binaryen
|
|
307
|
+
the cache happened to hold. When the cached copy was old enough
|
|
308
|
+
to predate multi-table WASM support, `wasm-opt` would reject
|
|
309
|
+
recent rustc output with:
|
|
310
|
+
|
|
311
|
+
> `[parse exception: Only 1 table definition allowed in MVP]`
|
|
312
|
+
> `Fatal: error in parsing input`
|
|
313
|
+
> `Error: failed to execute wasm-opt: exited with exit code: 1`
|
|
314
|
+
|
|
315
|
+
The failure was non-deterministic (re-runs frequently passed,
|
|
316
|
+
because the new image had a different cache state), but it broke
|
|
317
|
+
the release pipeline at least once before [PR #135](https://github.com/joaoh82/rust_sqlite/pull/135).
|
|
318
|
+
Pinning binaryen + prepending it to `PATH` forces `wasm-pack`
|
|
319
|
+
to always see the same `wasm-opt`, regardless of runner state.
|
|
320
|
+
|
|
321
|
+
### Bump procedure
|
|
322
|
+
|
|
323
|
+
1. Look at the [binaryen releases page](https://github.com/WebAssembly/binaryen/releases)
|
|
324
|
+
and pick a recent stable version (avoid release candidates).
|
|
325
|
+
2. Locally, download that release's `x86_64-linux` tarball and
|
|
326
|
+
run `wasm-opt --version` to confirm it builds. Optional but
|
|
327
|
+
nice: also run `wasm-pack build --target web --release` in
|
|
328
|
+
`sdk/wasm` with the new `wasm-opt` on `PATH` and confirm the
|
|
329
|
+
`.wasm` artifact size is in the same ballpark as before
|
|
330
|
+
(regressions > 10% are worth investigating).
|
|
331
|
+
3. Update `BINARYEN_VERSION` in both `.github/workflows/ci.yml`
|
|
332
|
+
(job `wasm-build`) and `.github/workflows/release.yml` (job
|
|
333
|
+
`publish-wasm`). Keep the two in lockstep — a divergence
|
|
334
|
+
means CI and release produce subtly different artifacts.
|
|
335
|
+
4. Update the "Current pin" line above to match.
|
|
336
|
+
5. PR + merge. CI will exercise the new version on the WASM
|
|
337
|
+
build job before the release pipeline ever sees it.
|
|
338
|
+
|
|
339
|
+
### Why a tarball, not apt-get
|
|
340
|
+
|
|
341
|
+
Ubuntu's apt-packaged `binaryen` is reliably 1–2 years behind
|
|
342
|
+
upstream and pinning it requires the matching apt index, which is
|
|
343
|
+
itself unstable across runner image refreshes. The official
|
|
344
|
+
WebAssembly/binaryen GitHub release tarballs are stable URLs and
|
|
345
|
+
sha-pinnable (we don't currently verify the sha256 — a follow-up
|
|
346
|
+
if supply-chain integrity becomes a concern; the tarball is
|
|
347
|
+
short-lived and contained to the runner).
|
|
348
|
+
|
|
288
349
|
## Secrets / one-time setup
|
|
289
350
|
|
|
290
351
|
With lockstep + OIDC-based trusted publishing, the only long-lived
|
|
@@ -133,7 +133,7 @@ Two specialized shortcuts in [`src/sql/executor.rs`](../src/sql/executor.rs) rec
|
|
|
133
133
|
ORDER BY vec_distance_l2(<col>, <bracket-array literal>) ASC LIMIT k
|
|
134
134
|
```
|
|
135
135
|
|
|
136
|
-
Returns top-k from the HNSW graph in `O(log N)` per probe. Mirrored shapes for `vec_distance_cosine` and `vec_distance_dot`.
|
|
136
|
+
Returns top-k from the HNSW graph in `O(log N)` per probe. Mirrored shapes for `vec_distance_cosine` and `vec_distance_dot`. INSERT maintains HNSW incrementally. DELETE / UPDATE mark the graph dirty; the next INSERT on the indexed vector column rebuilds the in-memory graph from surviving rows before adding the new node, and save/COMMIT still rebuilds dirty graphs before serializing.
|
|
137
137
|
|
|
138
138
|
`try_fts_probe` (Phase 8b) — BM25 keyword:
|
|
139
139
|
|
|
@@ -16,6 +16,15 @@ Phase 5 lands these incrementally — each sub-phase fills in one language. The
|
|
|
16
16
|
|
|
17
17
|
See [docs/roadmap.md](../docs/roadmap.md) for what each sub-phase delivers.
|
|
18
18
|
|
|
19
|
+
## End-to-end example apps
|
|
20
|
+
|
|
21
|
+
Beyond the per-SDK quick-start tours above, the [SQLR-38 umbrella](../docs/roadmap.md) tracks longer, opinionated example apps that exercise SQLRite end-to-end in real-world shapes:
|
|
22
|
+
|
|
23
|
+
| App | Language / SDK | What it shows | Directory |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| LLM agent with persistent memory | Python | Vector + lexical recall, fact extraction, summaries — all in one `.sqlrite` file | [`python-agent/`](python-agent/) |
|
|
26
|
+
| Chat with your notes (MCP) | Node.js | Markdown → SQLRite hybrid retrieval, served to Claude Desktop via `sqlrite-mcp --read-only` | [`nodejs-notes/`](nodejs-notes/) |
|
|
27
|
+
|
|
19
28
|
## Running the Rust quickstart
|
|
20
29
|
|
|
21
30
|
```bash
|
|
@@ -63,6 +72,27 @@ python examples/python/hello.py
|
|
|
63
72
|
|
|
64
73
|
Mirrors the Rust quickstart shape via the DB-API: `sqlrite.connect(":memory:")` → `cursor.execute` → iterate tuples, plus a BEGIN/ROLLBACK block. See [`python/hello.py`](python/hello.py) and [`sdk/python/README.md`](../sdk/python/README.md) for the full API tour.
|
|
65
74
|
|
|
75
|
+
## Running the Python LLM agent (SQLR-39)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
cd examples/python-agent
|
|
79
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
80
|
+
pip install -e .
|
|
81
|
+
python -m sqlrite_agent # works offline; no API key required
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
A full CLI chat agent whose long-term memory is one `.sqlrite` file. Embeds each turn, hybrid-searches over past messages and a structured `facts` table on every recall, and survives process restarts. Read [`python-agent/README.md`](python-agent/README.md) for the demo script and architecture diagram.
|
|
85
|
+
|
|
86
|
+
## Running the Node.js notes assistant (SQLR-40)
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
cd examples/nodejs-notes
|
|
90
|
+
npm install
|
|
91
|
+
node bin/sqlrite-notes.mjs init ~/Documents/notes
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Ingests a folder of markdown notes into a `notes.sqlrite` file with HNSW + BM25 indexes, then `sqlrite-notes serve` wraps `sqlrite-mcp --read-only` so **Claude Desktop / any MCP client** can `bm25_search` / `vector_search` / `query` / `ask` your local notes directly — no cloud sync, no third-party indexer. Default embedder is fully offline (deterministic hash bag-of-words); flip to `--embedder openai` with `OPENAI_API_KEY` set for real semantic recall. Read [`nodejs-notes/README.md`](nodejs-notes/README.md) for the Claude Desktop config snippet and the hybrid-retrieval SQL walkthrough.
|
|
95
|
+
|
|
66
96
|
## Running the Node.js sample
|
|
67
97
|
|
|
68
98
|
```bash
|