{"_id":"@beshkenadze/langgraph-checkpoint-libsql","name":"@beshkenadze/langgraph-checkpoint-libsql","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@beshkenadze/langgraph-checkpoint-libsql","version":"1.0.0","description":"LangGraph checkpoint saver backed by LibSQL (Turso)","type":"module","engines":{"node":">=18"},"main":"./dist/index.js","types":"./dist/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/beshkenadze/langgraph-checkpoint-libsql.git"},"keywords":["langchain","langgraph","checkpoint","libsql","turso","sqlite","database"],"scripts":{"build":"tsc","clean":"rm -rf dist/","lint":"biome check src/","lint:fix":"biome check --write src/","format":"biome format --write src/","format:check":"biome format src/","test":"vitest run","test:watch":"vitest watch","prepublishOnly":"bun run clean && bun run build"},"author":{"name":"Aleksandr Beshkenadze","email":"beshkenadze@gmail.com","url":"LibSQL port"},"license":"MIT","peerDependencies":{"@langchain/core":"^1.0.1","@langchain/langgraph-checkpoint":"^1.0.0"},"dependencies":{"@libsql/client":"^0.15.15"},"devDependencies":{"@biomejs/biome":"^2.3.4","@types/node":"^24.10.0","typescript":"^5.9.3","vitest":"^4.0.8"},"_id":"@beshkenadze/langgraph-checkpoint-libsql@1.0.0","gitHead":"5903e7dbcc2e8fe625e7e0be1b4ac561363c9077","bugs":{"url":"https://github.com/beshkenadze/langgraph-checkpoint-libsql/issues"},"homepage":"https://github.com/beshkenadze/langgraph-checkpoint-libsql#readme","_nodeVersion":"24.10.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-LE2NUJsa9DKrZGJ5siIn7qvErSDm5O2VeIT6Es0vhQ/wC0f/TXl7lLC8mbzCmp72StCitkFx5W9UdWhhoG6XWg==","shasum":"84ce0efca82fc469b5ec1d50ea1c6e1453ecfbe7","tarball":"https://registry.npmjs.org/@beshkenadze/langgraph-checkpoint-libsql/-/langgraph-checkpoint-libsql-1.0.0.tgz","fileCount":6,"unpackedSize":23953,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEAml/G1OqJpcei5d16kfOXpc/utvcolxxjjNQcrP1y0AiEA63OC0NXAGek3bqxn39C1zS2SIX4CioWotUVsJBHQXtM="}]},"_npmUser":{"name":"beshkenadze","email":"beshkenadze@gmail.com"},"directories":{},"maintainers":[{"name":"beshkenadze","email":"beshkenadze@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/langgraph-checkpoint-libsql_1.0.0_1762537101188_0.5651783250711107"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-07T17:38:21.091Z","1.0.0":"2025-11-07T17:38:21.375Z","modified":"2025-11-07T17:38:21.684Z"},"maintainers":[{"name":"beshkenadze","email":"beshkenadze@gmail.com"}],"description":"LangGraph checkpoint saver backed by LibSQL (Turso)","homepage":"https://github.com/beshkenadze/langgraph-checkpoint-libsql#readme","keywords":["langchain","langgraph","checkpoint","libsql","turso","sqlite","database"],"repository":{"type":"git","url":"git+ssh://git@github.com/beshkenadze/langgraph-checkpoint-libsql.git"},"author":{"name":"Aleksandr Beshkenadze","email":"beshkenadze@gmail.com","url":"LibSQL port"},"bugs":{"url":"https://github.com/beshkenadze/langgraph-checkpoint-libsql/issues"},"license":"MIT","readme":"# @beshkenadze/langgraph-checkpoint-libsql\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**LibSQL checkpoint storage for LangGraph.js**\n\nA drop-in replacement for `@langchain/langgraph-checkpoint-sqlite` that uses [LibSQL](https://github.com/tursodatabase/libsql) instead of better-sqlite3, enabling:\n\n- 🚀 **Remote databases** with [Turso](https://turso.tech/)\n- 🌐 **Embedded replicas** for offline-first apps\n- 🔄 **Automatic sync** between local and remote\n- ✨ **Same API** as the SQLite version\n\n## Installation\n\n```bash\nnpm install @beshkenadze/langgraph-checkpoint-libsql\n# or\nbun add @beshkenadze/langgraph-checkpoint-libsql\n# or\nyarn add @beshkenadze/langgraph-checkpoint-libsql\n```\n\n## Usage\n\n### Local File Database\n\n```typescript\nimport { SqliteSaver } from \"@beshkenadze/langgraph-checkpoint-libsql\";\n\n// Local SQLite file\nconst checkpointer = SqliteSaver.fromConnString(\"file:checkpoints.db\");\n```\n\n### In-Memory Database\n\n```typescript\nimport { SqliteSaver } from \"@beshkenadze/langgraph-checkpoint-libsql\";\n\n// In-memory database (perfect for testing)\nconst checkpointer = SqliteSaver.fromConnString(\":memory:\");\n```\n\n### Remote Turso Database\n\n```typescript\nimport { SqliteSaver } from \"@beshkenadze/langgraph-checkpoint-libsql\";\nimport { createClient } from \"@libsql/client\";\n\n// Remote Turso database\nconst client = createClient({\n  url: process.env.TURSO_DATABASE_URL,\n  authToken: process.env.TURSO_AUTH_TOKEN,\n});\n\nconst checkpointer = new SqliteSaver(client);\n```\n\n### Embedded Replica (Offline-First)\n\n```typescript\nimport { SqliteSaver } from \"@beshkenadze/langgraph-checkpoint-libsql\";\nimport { createClient } from \"@libsql/client\";\n\n// Embedded replica with automatic sync\nconst client = createClient({\n  url: \"file:local.db\",\n  syncUrl: process.env.TURSO_DATABASE_URL,\n  authToken: process.env.TURSO_AUTH_TOKEN,\n  syncInterval: 60000, // Sync every 60 seconds\n});\n\nconst checkpointer = new SqliteSaver(client);\n```\n\n## Integration with LangGraph\n\n```typescript\nimport { SqliteSaver } from \"@beshkenadze/langgraph-checkpoint-libsql\";\nimport { StateGraph } from \"@langchain/langgraph\";\n\nconst checkpointer = SqliteSaver.fromConnString(\"file:checkpoints.db\");\n\nconst graph = new StateGraph({\n  channels: {\n    // your state channels\n  },\n})\n  .addNode(\"step1\", async (state) => {\n    // your logic\n    return state;\n  })\n  .addEdge(\"__start__\", \"step1\")\n  .compile({ checkpointer });\n\n// Use the graph with persistence\nconst config = { configurable: { thread_id: \"user-123\" } };\nconst result = await graph.invoke({ input: \"hello\" }, config);\n```\n\n## API\n\n### `SqliteSaver.fromConnString(connectionString: string): SqliteSaver`\n\nCreate a checkpoint saver from a connection string.\n\n**Connection strings:**\n- `\":memory:\"` - In-memory database\n- `\"file:path/to/db.db\"` - Local file database\n- `\"libsql://your-database.turso.io\"` - Remote LibSQL (requires auth token via constructor)\n\n### `new SqliteSaver(client: Client, serde?: SerializerProtocol)`\n\nCreate a checkpoint saver with a LibSQL client.\n\n**Parameters:**\n- `client` - LibSQL client instance from `@libsql/client`\n- `serde` - Optional custom serializer (defaults to JSON)\n\n### Methods\n\nAll methods are identical to `@langchain/langgraph-checkpoint-sqlite`:\n\n- `getTuple(config: RunnableConfig): Promise<CheckpointTuple | undefined>`\n- `list(config: RunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>`\n- `put(config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata): Promise<RunnableConfig>`\n- `putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string): Promise<void>`\n- `deleteThread(threadId: string): Promise<void>`\n\n## Migration from SQLite\n\nSimply replace the import and you're done:\n\n```diff\n- import { SqliteSaver } from \"@langchain/langgraph-checkpoint-sqlite\";\n+ import { SqliteSaver } from \"@beshkenadze/langgraph-checkpoint-libsql\";\n\n  const checkpointer = SqliteSaver.fromConnString(\"file:checkpoints.db\");\n```\n\nNo other code changes required! The API is 100% compatible.\n\n## Why LibSQL?\n\nLibSQL is a fork of SQLite that adds:\n\n- **Remote databases** - Host your checkpoints in the cloud with Turso\n- **Embedded replicas** - Local-first apps with automatic sync\n- **WebSocket support** - Real-time replication\n- **100% SQLite compatible** - Same SQL, same data format\n\n## Environment Setup (Turso)\n\n1. Create a Turso database:\n   ```bash\n   turso db create my-checkpoints\n   ```\n\n2. Get your database URL:\n   ```bash\n   turso db show my-checkpoints --url\n   ```\n\n3. Create an auth token:\n   ```bash\n   turso db tokens create my-checkpoints\n   ```\n\n4. Set environment variables:\n   ```bash\n   export TURSO_DATABASE_URL=\"libsql://my-checkpoints-xxx.turso.io\"\n   export TURSO_AUTH_TOKEN=\"your-auth-token\"\n   ```\n\n## License\n\nMIT\n\n## Credits\n\nThis is a port of [@langchain/langgraph-checkpoint-sqlite](https://github.com/langchain-ai/langgraphjs/tree/main/libs/checkpoint-sqlite) to use LibSQL instead of better-sqlite3.\n\nOriginal package by LangChain. LibSQL port maintained independently.\n","readmeFilename":"README.md","_rev":"1-3401327f5f4240019578b616f22b5854"}