{"_id":"@cartisien/engram-client","_rev":"3-867cd4f7cbc76309fa280fcdb92fc4ff","name":"@cartisien/engram-client","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@cartisien/engram-client","version":"0.1.0","keywords":["ai","memory","engram","sdk","client"],"author":{"name":"Cartisien Interactive"},"license":"MIT","_id":"@cartisien/engram-client@0.1.0","maintainers":[{"name":"mrwitters","email":"cartisien@cartisien.com"}],"dist":{"shasum":"d1d1d3b0543b04a5a986bf6c939016a741de0ff5","tarball":"https://registry.npmjs.org/@cartisien/engram-client/-/engram-client-0.1.0.tgz","fileCount":11,"integrity":"sha512-zfBAHO0WVkpjUQajRIfCHR7SJMJkx6Rd5LmoqigmtgaPv3+t9vamkawau6KOP+ul1XSfo3rL38y9QcbLYleuaQ==","signatures":[{"sig":"MEUCIQCVlQK9lAVSZB9juMHbASL2nLS1bSmfJ59wD1AMcoM2aQIgSkKYHgzmWdvHqyP+dWsxALFO1GgANWk4MhWvm8xidJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27457},"main":"dist/index.js","type":"module","_from":"file:cartisien-engram-client-0.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc"},"_npmUser":{"name":"mrwitters","email":"cartisien@cartisien.com"},"_resolved":"/tmp/d85f5b845f04887f77c6ec7d0d471474/cartisien-engram-client-0.1.0.tgz","_integrity":"sha512-zfBAHO0WVkpjUQajRIfCHR7SJMJkx6Rd5LmoqigmtgaPv3+t9vamkawau6KOP+ul1XSfo3rL38y9QcbLYleuaQ==","deprecated":"Nylogram is now a closed, hosted product — no longer maintained. Request access at https://app.cartisien.com","_npmVersion":"10.8.2","description":"Typed HTTP client for Engram Cloud — persistent semantic memory for AI agents.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@cartisien/engram":"2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","typescript":"^5.3.3"},"_npmOperationalInternal":{"tmp":"tmp/engram-client_0.1.0_1776643106790_0.15111298137805496","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-19T23:58:26.703Z","modified":"2026-08-19T15:27:55.348Z","0.1.0":"2026-04-19T23:58:26.921Z"},"author":{"name":"Cartisien Interactive"},"license":"MIT","keywords":["ai","memory","engram","sdk","client"],"description":"Typed HTTP client for Engram Cloud — persistent semantic memory for AI agents.","maintainers":[{"name":"mrwitters","email":"cartisien@cartisien.com"}],"readme":"# @cartisien/engram-client\n\nTyped HTTP client for [Engram Cloud](https://cartisien.com) — persistent semantic memory for AI agents.\n\n## Install\n\n```bash\nnpm install @cartisien/engram-client\n```\n\n## Quick start\n\n```ts\nimport { createClient } from '@cartisien/engram-client';\n\nconst engram = createClient({ apiKey: process.env.ENGRAM_API_KEY! });\n\nawait engram.remember('session-123', 'The user prefers TypeScript', { role: 'user' });\n\nconst hits = await engram.recall('session-123', 'programming preferences', { limit: 5 });\nfor (const entry of hits) {\n  console.log(entry.content, entry.similarity);\n}\n```\n\n## Options\n\n```ts\ncreateClient({\n  apiKey: 'ek_live_...',\n  baseUrl: 'https://api.cartisien.com', // default\n  timeoutMs: 30_000,                    // per-attempt timeout\n  maxRetries: 3,                        // retries on 429 / 5xx with exponential backoff + Retry-After\n  fetch,                                // inject for tests / non-global-fetch runtimes\n});\n```\n\n## API\n\n| Method | HTTP |\n| --- | --- |\n| `remember(sessionId, content, opts?)` | `POST /v1/memory` |\n| `recall(sessionId, query?, opts?)` | `GET /v1/memory/recall` |\n| `forget(sessionId, opts?)` | `DELETE /v1/memory` |\n| `stats(sessionId)` | `GET /v1/memory/stats` |\n| `exportEntries(sessionId)` | `GET /v1/memory/export` — async iterable of NDJSON rows |\n\n## Errors\n\nAll errors extend `EngramApiError` with a stable `code`:\n\n- `EngramAuthError` — 401 / 403 (never retried)\n- `EngramRateLimitError` — 429 after retries exhausted (`retryAfterSeconds` when server sets `Retry-After`)\n- `EngramNetworkError` — transport failures\n- `EngramTimeoutError` — request exceeded `timeoutMs`\n\n```ts\nimport { EngramAuthError, EngramRateLimitError } from '@cartisien/engram-client';\n\ntry {\n  await engram.recall('s1', 'hello');\n} catch (err) {\n  if (err instanceof EngramRateLimitError) {\n    console.log('retry after', err.retryAfterSeconds);\n  } else if (err instanceof EngramAuthError) {\n    throw err; // don't retry; rotate the key\n  } else {\n    throw err;\n  }\n}\n```\n\n## Types\n\nRe-exported from `@cartisien/engram` so local (`new Engram()`) and cloud code share shapes:\n`MemoryEntry`, `MemoryRole`, `MemoryTier`, `SessionStats`, `RecallOptions`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}