{"_id":"@eleven-am/ada-sdk","_rev":"2-80d3e293a030f9b0a5b8559f8b6565e2","name":"@eleven-am/ada-sdk","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@eleven-am/ada-sdk","version":"0.0.1","license":"MIT","_id":"@eleven-am/ada-sdk@0.0.1","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/ada-sdk#readme","bugs":{"url":"https://github.com/eleven-am/ada-sdk/issues"},"dist":{"shasum":"4d0aed1264672d287442332cedcff7eded388620","tarball":"https://registry.npmjs.org/@eleven-am/ada-sdk/-/ada-sdk-0.0.1.tgz","fileCount":75,"integrity":"sha512-IZLp6GHBRFRane95I5QTseaoEHQFAozxZmXy/MlO/TJy9QkK6F5npK8ynZ5aZNOmwdI2JV3LNMsK9ol8FiDfrQ==","signatures":[{"sig":"MEUCIEX+cEnmNVPjvsiG1zgRYtttXEX97c2neHJOAMeasFEcAiEAkOzP8jEAuB2gkmElRU+ItJ6AKPPaOXPLrOt+AocH2JA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":612992},"main":"./dist/node.js","type":"module","types":"./dist/node.d.ts","module":"./dist/node.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"}},"gitHead":"1a525fa57a9b2e3c3385800c9b6364917388ae43","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"npm run build && tsc -p tsconfig.json && vitest run && npm pack --dry-run"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"repository":{"url":"git+https://github.com/eleven-am/ada-sdk.git","type":"git","directory":"typescript"},"_npmVersion":"11.16.0","description":"Strictly typed Ada gRPC SDK for Node.js and browsers","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"eventemitter3":"5.0.1","@bufbuild/protobuf":"2.13.0","@connectrpc/connect":"2.1.2","@connectrpc/connect-web":"2.1.2","@connectrpc/connect-node":"2.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"4.1.10","typescript":"7.0.2","@types/node":"26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ada-sdk_0.0.1_1784927259832_0.0272793068713868","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@eleven-am/ada-sdk","version":"0.0.2","description":"Strictly typed Ada gRPC SDK for Node.js and browsers","repository":{"type":"git","url":"git+https://github.com/eleven-am/ada-sdk.git","directory":"typescript"},"homepage":"https://github.com/eleven-am/ada-sdk#readme","type":"module","sideEffects":false,"main":"./dist/node.js","module":"./dist/node.js","types":"./dist/node.d.ts","exports":{".":{"types":"./dist/node.d.ts","import":"./dist/node.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"}},"scripts":{"build":"tsc -p tsconfig.build.json","check":"npm run build && tsc -p tsconfig.json && vitest run && npm pack --dry-run","test":"vitest run"},"dependencies":{"@bufbuild/protobuf":"2.13.0","@connectrpc/connect":"2.1.2","@connectrpc/connect-node":"2.1.2","@connectrpc/connect-web":"2.1.2","eventemitter3":"5.0.1"},"devDependencies":{"@types/node":"26.1.1","typescript":"7.0.2","vitest":"4.1.10"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"license":"MIT","gitHead":"ce550de7070914e19ccedbb44708820fe63c40f5","_id":"@eleven-am/ada-sdk@0.0.2","bugs":{"url":"https://github.com/eleven-am/ada-sdk/issues"},"_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-TjZX+IaJML29XO5WS7bcinkGbc8E7aZL8W1dofa877gm5KT1v8u2ljjKTf+GMF3SrFOIf02I1Vlo+9M3dsSl3w==","shasum":"3dd8438dd005dfc42b99540b26029637142c491c","tarball":"https://registry.npmjs.org/@eleven-am/ada-sdk/-/ada-sdk-0.0.2.tgz","fileCount":75,"unpackedSize":613759,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG6oG9JlTIKhRddORlhlm4BrNR5LiVv76d3lNMhH0jHWAiBVtZpPzgWunRz1pZW/Qi/yu3Elhm+9JQP9S/UMxIlikw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:25c0a257-307c-4c09-a50b-40b6a914551d"}},"directories":{},"maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ada-sdk_0.0.2_1785258164283_0.3734297830862088"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-24T21:07:39.709Z","modified":"2026-07-28T17:02:44.680Z","0.0.1":"2026-07-24T21:07:39.987Z","0.0.2":"2026-07-28T17:02:44.522Z"},"bugs":{"url":"https://github.com/eleven-am/ada-sdk/issues"},"license":"MIT","homepage":"https://github.com/eleven-am/ada-sdk#readme","repository":{"type":"git","url":"git+https://github.com/eleven-am/ada-sdk.git","directory":"typescript"},"description":"Strictly typed Ada gRPC SDK for Node.js and browsers","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"readme":"# Ada SDK for TypeScript\n\nThe backend client represents one authenticated namespace and shares one lazy, persistent gRPC stream per category across every principal facade.\n\n## Installation\n\n```sh\nnpm install @eleven-am/ada-sdk\n```\n\nNode.js 20 or newer is required. Construct the backend client only in trusted server code; `apiKey` authenticates the entire namespace.\n\n## Backend client\n\n```ts\nimport { AdaClient } from \"@eleven-am/ada-sdk\"\n\nconst ada = new AdaClient({\n  endpoint: \"https://memory.example.com\",\n  apiKey: process.env.ADA_API_KEY!,\n  streams: {\n    events: { afterEventId: savedCursor, replayLimit: 100 },\n  },\n})\n\nconst alice = ada.principal(\"alice\")\nconst bob = ada.principal(\"bob\")\n\nconst stopAlice = alice.events.on(\"memory.ingest.finished\", event => {\n  console.log(event.documentId)\n})\nconst stopBob = bob.signals.on(\"routine.broken\", signal => {\n  console.log(signal)\n})\nconst stopJob = alice.jobs.on(\"job.progressed\", event => {\n  console.log(event)\n})\n\nada.lifecycle.on(\"stream.cursor\", info => save(info))\nada.lifecycle.on(\"listener.error\", info => report(info))\n\nawait alice.getMeEntity()\nawait ada.getPublicEventCatalog()\nawait ada.getSignalCatalog()\n\nstopAlice()\nstopAlice()\nstopBob()\nstopJob()\nawait ada.close()\n```\n\n`principal(\"alice\")` accepts only a bare ID and returns a cached facade. All ingest, recall, documents, jobs, data, and summary operations are available through that facade. For example, `alice.ingest(request)`, `alice.recall(request)`, `alice.documents.getStatus(request)`, and `alice.data.listDocuments(request)` always overwrite the request principal with `\"alice\"`. The root exposes only namespace responsibilities such as catalogs, lifecycle, browser-session minting, and close.\n\nRecall provenance is typed on each knowledge item's source:\n\n```ts\nconst recalled = await alice.recall({ query: \"What changed?\" })\nfor (const item of recalled.knowledge) {\n  console.log(item.source?.sourceAuthorities, item.source?.memoryGrade)\n}\n```\n\nUse these fields instead of deprecated compatibility values in `item.data`.\n\n`events.on`, `signals.on`, and `jobs.on` are keyed generic APIs. The literal event name determines the exact protobuf payload type and each call returns an idempotent synchronous unsubscribe function. There is no public stream object, `open()`, `subscribe()`, or async iterator.\n\nReplay configuration belongs to the root `streams.events`, `streams.signals`, and `streams.jobs` options. Each accepts `afterEventId`, `replayLimit`, and bounded reconnect settings. Persist `info.eventId` from the typed `stream.cursor` lifecycle event only after the SDK has decoded and routed the envelope:\n\n```ts\nconst stopCursor = ada.lifecycle.on(\"stream.cursor\", info => {\n  saveCursor(info.stream, info.eventId, info.principalId)\n})\n\nconst stopTerminal = ada.lifecycle.on(\"stream.terminal\", info => {\n  reportTerminalStreamFailure(info.stream, info.error)\n})\n```\n\nCall `await ada.close()` during shutdown. It is idempotent, stops reconnects, closes all three shared streams, and rejects later listener registration.\n\n## Browser\n\n```ts\nimport { AdaBrowserClient } from \"@eleven-am/ada-sdk/browser\"\n\nconst ada = new AdaBrowserClient({\n  endpoint: \"https://memory.example.com\",\n  sessionToken,\n})\n\nconst unsubscribe = ada.events.on(\"memory.recall.finished\", event => {\n  console.log(event)\n})\n\nunsubscribe()\nawait ada.close()\n```\n\n`AdaBrowserClient` uses gRPC-Web and is already bound to the principal encoded in its short-lived session. It has no `principal()` method, accepts no API key, and uses only principal-scoped streams. Never ship a namespace API key to a browser.\n\nMint the short-lived session in backend code with `ada.createBrowserSession({ principalId: \"alice\", ... })`, then send only its session token to the browser.\n","readmeFilename":"README.md"}