{"_id":"@anaralabs/sdk","_rev":"7-fa948ed29da3d76e81576e03adbe8837","name":"@anaralabs/sdk","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"@anaralabs/sdk","version":"0.1.0","keywords":["agent","ai","anara","mcp","rag","research","sdk"],"license":"MIT","_id":"@anaralabs/sdk@0.1.0","maintainers":[{"name":"naveedjan","email":"njanmohamed8@gmail.com"},{"name":"andrewdoro","email":"elfandreis@gmail.com"}],"homepage":"https://anara.com","bugs":{"url":"https://github.com/anaralabs/anara/issues"},"dist":{"shasum":"afe31f1b3893abbf59a64e98e744699965c3dafc","tarball":"https://registry.npmjs.org/@anaralabs/sdk/-/sdk-0.1.0.tgz","fileCount":35,"integrity":"sha512-XfAbFXEGTnOvoD3cg0Y8odqkQJCJaMyvg7RcxWqcocdiZgMDhH6yPZg/T4uA5iQ/co3zG+Je8jxa7aLJBT9akw==","signatures":[{"sig":"MEUCIB2KOk1kZM1F2tnHYqQBc0DK2DgwGOe2kzHzRcxerMwXAiEA0aPuhfQSFIeT54qAifmW79sIRxG/eYgv5ohWUpxHOds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110653},"main":"./dist/index.js","type":"module","_from":"file:anaralabs-sdk-0.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","test":"vitest","build":"tsc -p tsconfig.build.json","clean":"git clean -xdf .cache .turbo dist node_modules","format":"oxfmt --config ../../.oxfmtrc.json --check .","test:run":"vitest run","typecheck":"tsc --noEmit","format:fix":"oxfmt --config ../../.oxfmtrc.json ."},"_npmUser":{"name":"andrewdoro","email":"elfandreis@gmail.com"},"_resolved":"/tmp/88d7fc8b94e07ecd272c1cf9a7ab8120/anaralabs-sdk-0.1.0.tgz","_integrity":"sha512-XfAbFXEGTnOvoD3cg0Y8odqkQJCJaMyvg7RcxWqcocdiZgMDhH6yPZg/T4uA5iQ/co3zG+Je8jxa7aLJBT9akw==","repository":{"url":"git+https://github.com/anaralabs/anara.git","type":"git","directory":"packages/anara-sdk"},"_npmVersion":"10.8.2","description":"Official TypeScript SDK for the Anara public API — research, library search, documents, notes, and chat over your authenticated Anara workspace.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.40.0","oxlint":"^1.55.0","vitest":"4.1.8","@vitest/ui":"4.1.8","typescript":"7.0.1-rc","@types/node":"^24.1.0","@unriddle/tsconfig":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1782638480883_0.210391750698123","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anaralabs/sdk","version":"0.2.0","keywords":["agent","ai","anara","mcp","rag","research","sdk"],"license":"MIT","_id":"@anaralabs/sdk@0.2.0","maintainers":[{"name":"naveedjan","email":"njanmohamed8@gmail.com"},{"name":"andrewdoro","email":"elfandreis@gmail.com"}],"homepage":"https://anara.com","bugs":{"url":"https://github.com/anaralabs/anara/issues"},"dist":{"shasum":"a81c3e2adcdea3aa316425ecbeb1992e7a47440f","tarball":"https://registry.npmjs.org/@anaralabs/sdk/-/sdk-0.2.0.tgz","fileCount":35,"integrity":"sha512-uqE/yBKyS+YZ8YmetZouT+rYUvGfn043idqQdMCep4B8FKsHiYV2GZTZsWmI+C9J8OQdZeZ0id2VQ/D7H6GfnQ==","signatures":[{"sig":"MEUCIQCb0vC4B/1fHur/FgL3dGd+yYZvcncZCWypNDOqh8HW6wIgP6Bkjvc2VkIcahennX9Lzcv1DsBQRyLBWqyAYg2D6Cs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116443},"main":"./dist/index.js","type":"module","_from":"file:anaralabs-sdk-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","test":"vitest","build":"tsc -p tsconfig.build.json","clean":"git clean -xdf .cache .turbo dist node_modules","format":"oxfmt --config ../../.oxfmtrc.json --check .","test:run":"vitest run","typecheck":"tsc --noEmit","format:fix":"oxfmt --config ../../.oxfmtrc.json ."},"_npmUser":{"name":"andrewdoro","email":"elfandreis@gmail.com"},"_resolved":"/tmp/5bb1a1a2546c54915f8173b75f1fe104/anaralabs-sdk-0.2.0.tgz","_integrity":"sha512-uqE/yBKyS+YZ8YmetZouT+rYUvGfn043idqQdMCep4B8FKsHiYV2GZTZsWmI+C9J8OQdZeZ0id2VQ/D7H6GfnQ==","repository":{"url":"git+https://github.com/anaralabs/anara.git","type":"git","directory":"packages/anara-sdk"},"_npmVersion":"10.8.2","description":"Official TypeScript SDK for the Anara public API — research, library search, documents, notes, and chat over your authenticated Anara workspace.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.40.0","oxlint":"^1.55.0","vitest":"4.1.8","@vitest/ui":"4.1.8","typescript":"7.0.1-rc","@types/node":"^24.1.0","@unriddle/tsconfig":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1782679107697_0.6891308098929321","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@anaralabs/sdk","version":"0.3.0","keywords":["agent","ai","anara","mcp","rag","research","sdk"],"license":"MIT","_id":"@anaralabs/sdk@0.3.0","maintainers":[{"name":"naveedjan","email":"njanmohamed8@gmail.com"},{"name":"andrewdoro","email":"elfandreis@gmail.com"}],"homepage":"https://anara.com","bugs":{"url":"https://github.com/anaralabs/anara/issues"},"dist":{"shasum":"751150d7d4483f9e37d36b2fb36c9bc80b71e301","tarball":"https://registry.npmjs.org/@anaralabs/sdk/-/sdk-0.3.0.tgz","fileCount":35,"integrity":"sha512-qCrjqWZ0sDcGAkbawGM0HtSFMN4PpCF5KsK7ft5t1wb/vBBbUGhHcus7eAHFegJMrVyEcsL6DuLosEggiqfAuA==","signatures":[{"sig":"MEYCIQD04Nps0lbq7afMJpUfp4nTPVYJXDKCO6A8odSCpBl8/AIhAJHPdFrhi3fVG4OQ8xw/7Tyj8ctfe2Xd1O8N9eFoIFq1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158309},"main":"./dist/index.js","type":"module","_from":"file:anaralabs-sdk-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","test":"vitest","build":"tsc -p tsconfig.build.json","clean":"git clean -xdf .cache .turbo dist node_modules","format":"oxfmt --config ../../.oxfmtrc.json --check .","test:run":"vitest run","typecheck":"tsc --noEmit","format:fix":"oxfmt --config ../../.oxfmtrc.json ."},"_npmUser":{"name":"andrewdoro","email":"elfandreis@gmail.com"},"_resolved":"/tmp/e4cdcc6147366e09e3078c6663fb179f/anaralabs-sdk-0.3.0.tgz","_integrity":"sha512-qCrjqWZ0sDcGAkbawGM0HtSFMN4PpCF5KsK7ft5t1wb/vBBbUGhHcus7eAHFegJMrVyEcsL6DuLosEggiqfAuA==","repository":{"url":"git+https://github.com/anaralabs/anara.git","type":"git","directory":"packages/anara-sdk"},"_npmVersion":"10.8.2","description":"Official TypeScript SDK for the Anara public API — research, library search, documents, notes, and chat over your authenticated Anara workspace.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.40.0","oxlint":"^1.55.0","vitest":"4.1.8","@vitest/ui":"4.1.8","typescript":"7.0.1-rc","@types/node":"^24.1.0","@unriddle/tsconfig":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.3.0_1783078472263_0.527653031364044","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@anaralabs/sdk","version":"0.4.0","keywords":["agent","ai","anara","mcp","rag","research","sdk"],"license":"MIT","_id":"@anaralabs/sdk@0.4.0","maintainers":[{"name":"naveedjan","email":"njanmohamed8@gmail.com"},{"name":"andrewdoro","email":"elfandreis@gmail.com"}],"homepage":"https://anara.com","bugs":{"url":"https://github.com/anaralabs/anara/issues"},"dist":{"shasum":"92bfadfd778ae5b378685e52287d74cd996de0ad","tarball":"https://registry.npmjs.org/@anaralabs/sdk/-/sdk-0.4.0.tgz","fileCount":35,"integrity":"sha512-lLiroFA8LwptWuXlErTrh/FuBZP71zhAlvzRwsNNkTYvoyIiYdnlpsjVki6wth57xaBN3M59MlTk4j0LyofJSA==","signatures":[{"sig":"MEQCIE8cN9XfwyD2haxZ0XYPe/63PQDSSTLkWOvSIRa6SrFzAiBlekfaBSsuNIgnhKrPxl0Jw2Q5X+9hMFLNAr3NxL8vpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154386},"main":"./dist/index.js","type":"module","_from":"file:anaralabs-sdk-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","test":"vitest","build":"tsc -p tsconfig.build.json","clean":"git clean -xdf .cache .turbo dist node_modules","format":"oxfmt --config ../../.oxfmtrc.json --check .","test:run":"vitest run","typecheck":"tsc --noEmit","format:fix":"oxfmt --config ../../.oxfmtrc.json ."},"_npmUser":{"name":"andrewdoro","email":"elfandreis@gmail.com"},"_resolved":"/tmp/5f294a337a63943800e593575edc8204/anaralabs-sdk-0.4.0.tgz","_integrity":"sha512-lLiroFA8LwptWuXlErTrh/FuBZP71zhAlvzRwsNNkTYvoyIiYdnlpsjVki6wth57xaBN3M59MlTk4j0LyofJSA==","repository":{"url":"git+https://github.com/anaralabs/anara.git","type":"git","directory":"packages/anara-sdk"},"_npmVersion":"10.8.2","description":"Official TypeScript SDK for the Anara public API — research, library search, documents, notes, and chat over your authenticated Anara workspace.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.40.0","oxlint":"^1.79.0","vitest":"4.1.8","@vitest/ui":"4.1.8","typescript":"7.0.2","@types/node":"^24.1.0","@unriddle/tsconfig":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.4.0_1787728771227_0.7715378960865342","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@anaralabs/sdk","version":"0.5.0","keywords":["agent","ai","anara","mcp","rag","research","sdk"],"license":"MIT","_id":"@anaralabs/sdk@0.5.0","maintainers":[{"name":"naveedjan","email":"njanmohamed8@gmail.com"},{"name":"andrewdoro","email":"elfandreis@gmail.com"}],"homepage":"https://anara.com","bugs":{"url":"https://github.com/anaralabs/anara/issues"},"bin":{"anara":"dist/cli.js"},"dist":{"shasum":"284d26b22e39df0a7125297dc04058fc445e5208","tarball":"https://registry.npmjs.org/@anaralabs/sdk/-/sdk-0.5.0.tgz","fileCount":39,"integrity":"sha512-TnOkH/4hIbZ5Ow4npB3bfx7A4LzqjVqr/KK8aZlUTEYGOILR5AhoCXra7JVEeFgn0nb6LexFCKCV4MhhEw+QfQ==","signatures":[{"sig":"MEYCIQCH/hA5btvHS5L+GwQ1PQGB+rkHOGt31s93v3+bLimmHwIhAMOrlb3ZiCyFb7sJQWf3YwCM75kwODlO3R6TuLa/8Z9E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQChjNW2Ba+Bv9uimzB1huLrwcTZ4nUfqqET2OQ9Vb8XOwIhALXn4wUqLCnv+C9io592wVmNrrRu1ffrZSTl/azkCTrb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162953},"main":"./dist/index.js","type":"module","_from":"file:anaralabs-sdk-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","test":"vitest","build":"tsc -p tsconfig.build.json","clean":"git clean -xdf .cache .turbo dist node_modules","format":"oxfmt --config ../../.oxfmtrc.json --check .","test:run":"vitest run","typecheck":"tsc --noEmit","format:fix":"oxfmt --config ../../.oxfmtrc.json ."},"_npmUser":{"name":"andrewdoro","email":"elfandreis@gmail.com"},"_resolved":"/tmp/ceb749dd8a88ade4e9c49821936a2ed1/anaralabs-sdk-0.5.0.tgz","_integrity":"sha512-TnOkH/4hIbZ5Ow4npB3bfx7A4LzqjVqr/KK8aZlUTEYGOILR5AhoCXra7JVEeFgn0nb6LexFCKCV4MhhEw+QfQ==","repository":{"url":"git+https://github.com/anaralabs/anara.git","type":"git","directory":"packages/anara-sdk"},"_npmVersion":"10.9.0","description":"Official TypeScript SDK for the Anara public API — research, library search, documents, notes, and chat over your authenticated Anara workspace.","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"zod":"^4.5.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.66.0","oxlint":"^1.81.0","vitest":"5.0.0","@vitest/ui":"5.0.0","typescript":"7.0.2","@types/node":"^24.1.0","@unriddle/tsconfig":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.5.0_1788692286543_0.553491805387633","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@anaralabs/sdk","version":"0.6.0","keywords":["agent","ai","anara","mcp","rag","research","sdk"],"license":"MIT","_id":"@anaralabs/sdk@0.6.0","maintainers":[{"name":"naveedjan","email":"njanmohamed8@gmail.com"},{"name":"andrewdoro","email":"elfandreis@gmail.com"}],"homepage":"https://anara.com","bugs":{"url":"https://github.com/anaralabs/anara/issues"},"bin":{"anara":"dist/cli.js"},"dist":{"shasum":"9753f44d6c1c1cb9bc67bb160812f764df1670c8","tarball":"https://registry.npmjs.org/@anaralabs/sdk/-/sdk-0.6.0.tgz","fileCount":39,"integrity":"sha512-GT3DXOVll9g3+VxcmV9Zjtgs7K9V+3Beuk57omSPELdzAfM5g3vKd+d1FQNZmCw5WG6xdftY/BxFvvcDjIg4mg==","signatures":[{"sig":"MEYCIQDo9TyvWrkoXxD2Frq9rtD/tzyo9q7aaZzmz1p9l/UmSQIhALmxcvIatWHjPT6U3KYZtSn2Qv+XoseOGsv/L4wh5PgB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICcvIrWAk/X8jXRTdXl6lrkekP74mpeV4NKxhpueu5zYAiEAtTUqZAjJedkOwH54+Wpr9LCvRd92xihYDrTMr/vq/80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170314},"main":"./dist/index.js","type":"module","_from":"file:anaralabs-sdk-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","test":"vitest","build":"tsc -p tsconfig.build.json","clean":"git clean -xdf .cache .turbo dist node_modules","format":"oxfmt --config ../../.oxfmtrc.json --check .","test:run":"vitest run","typecheck":"tsc --noEmit","format:fix":"oxfmt --config ../../.oxfmtrc.json ."},"_npmUser":{"name":"andrewdoro","email":"elfandreis@gmail.com"},"_resolved":"/tmp/ffa1bff53c11b529d53f6310ca67242a/anaralabs-sdk-0.6.0.tgz","_integrity":"sha512-GT3DXOVll9g3+VxcmV9Zjtgs7K9V+3Beuk57omSPELdzAfM5g3vKd+d1FQNZmCw5WG6xdftY/BxFvvcDjIg4mg==","repository":{"url":"git+https://github.com/anaralabs/anara.git","type":"git","directory":"packages/anara-sdk"},"_npmVersion":"10.9.0","description":"Official TypeScript SDK for the Anara public API — research, library search, documents, notes, and chat over your authenticated Anara workspace.","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","dependencies":{"zod":"^4.5.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.66.0","oxlint":"^1.81.0","vitest":"5.0.0","@vitest/ui":"5.0.0","typescript":"7.0.2","@types/node":"^24.1.0","@unriddle/tsconfig":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.6.0_1789023481490_0.20767322348884876","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"_id":"@anaralabs/sdk@0.7.0","bin":{"anara":"./dist/cli.js"},"dist":{"shasum":"b50bcb07a72ec2ecf95db96fe4ec64d789b18140","tarball":"https://registry.npmjs.org/@anaralabs/sdk/-/sdk-0.7.0.tgz","fileCount":71,"integrity":"sha512-zqPuh4CLDSzCixCgsLcqNlWCvl/fWVG6VF5ogR9J3DmS10BABY9/T/Zq2/XA09R0Q8sJNIzG3K68hjDKx4Ou4g==","signatures":[{"sig":"MEQCIELRogIKEWnT6ui6NBBIVy8fDviQfS+gHyDOGi/sIAwtAiAJhAIBU9vFfSX9Vb65612modeuJ1ngl8fqQm2QqfadHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA6DduAuIWtnD6HLWAjOekBJ1uUjwX/mNW1jBvukF3YvAiEA9icXCWPbee3D0dSws6u9l5n8Cr7RaAwwZPZvyn4ILe8="}],"unpackedSize":241073},"main":"./dist/index.js","name":"@anaralabs/sdk","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./oauth":{"types":"./dist/oauth.d.ts","import":"./dist/oauth.js"},"./schemas":{"types":"./dist/schemas.d.ts","import":"./dist/schemas.js"},"./cli-runner":{"types":"./dist/cli-runner.d.ts","import":"./dist/cli-runner.js"},"./oauth-types":{"types":"./dist/oauth-types.d.ts","import":"./dist/oauth-types.js"},"./credential-store":{"types":"./dist/credential-store.d.ts","import":"./dist/credential-store.js"}},"license":"MIT","scripts":{"lint":"oxlint --config ../../.oxlintrc.json .","test":"vitest","build":"tsc -p tsconfig.build.json","clean":"git clean -xdf .cache .turbo dist node_modules","format":"oxfmt --config ../../.oxfmtrc.json --check .","test:run":"vitest run","typecheck":"tsc --noEmit","format:fix":"oxfmt --config ../../.oxfmtrc.json ."},"version":"0.7.0","_npmUser":{"name":"andrewdoro","email":"elfandreis@gmail.com"},"homepage":"https://anara.com","keywords":["agent","ai","anara","mcp","rag","research","sdk"],"repository":{"url":"https://github.com/anaralabs/anara.git","type":"git","directory":"packages/anara-sdk"},"description":"Official TypeScript SDK for the Anara public API — research, library search, documents, notes, and chat over your authenticated Anara workspace.","directories":{},"maintainers":[{"name":"naveedjan","email":"njanmohamed8@gmail.com"},{"name":"andrewdoro","email":"elfandreis@gmail.com"}],"sideEffects":false,"dependencies":{"zod":"^4.5.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"^0.66.0","oxlint":"^1.81.0","vitest":"5.0.0","@vitest/ui":"5.0.0","typescript":"7.0.2","@types/node":"^24.1.0","@unriddle/tsconfig":"0.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_0.7.0_1789557045492_0.7210189154584974"}}},"time":{"created":"2026-06-28T09:21:20.700Z","modified":"2026-09-16T11:10:45.772Z","0.1.0":"2026-06-28T09:21:21.022Z","0.2.0":"2026-06-28T20:38:27.854Z","0.3.0":"2026-07-03T11:34:32.432Z","0.4.0":"2026-08-26T07:19:31.369Z","0.5.0":"2026-09-06T10:58:06.629Z","0.6.0":"2026-09-10T06:58:01.594Z","0.7.0":"2026-09-16T11:10:45.584Z"},"license":"MIT","homepage":"https://anara.com","keywords":["agent","ai","anara","mcp","rag","research","sdk"],"repository":{"url":"https://github.com/anaralabs/anara.git","type":"git","directory":"packages/anara-sdk"},"description":"Official TypeScript SDK for the Anara public API — research, library search, documents, notes, and chat over your authenticated Anara workspace.","maintainers":[{"name":"naveedjan","email":"njanmohamed8@gmail.com"},{"name":"andrewdoro","email":"elfandreis@gmail.com"}],"readme":"# @anaralabs/sdk\n\nOfficial TypeScript SDK and CLI for the [Anara](https://anara.com) API. It\nmirrors Anara's in-product code-agent SDK — the `anara.*` surface (library\nentities, retrieval, documents, spreadsheets, notes, images, chats, workspace,\nsandbox) — as a typed HTTP client. Give a coding agent (Claude Code, Codex, …)\nthe same tools the Anara agent has, over a single API key.\n\nOne runtime dependency (`zod`, for the method schemas). Works in Node 18+, Deno,\nBun, edge runtimes, and the browser (anywhere `fetch` exists). The CLI needs\nNode.\n\n## Install\n\n```bash\nnpm install @anaralabs/sdk\n```\n\n## Authenticate\n\nMint an API key (Better Auth) from your signed-in browser session:\n\n```bash\ncurl -X POST https://anara.com/api/better-auth/api-key/create \\\n  -H 'content-type: application/json' \\\n  -H 'cookie: <signed-in-browser-cookie>' \\\n  -d '{\"name\":\"CLI\",\"permissions\":{\"anara\":[\"read\",\"write\"]}}'\n```\n\nKeys look like `anara_…`. Reads need `anara:read`; library writes need\n`anara:write`; the `sandbox.*` methods need the opt-in `anara:sandbox`\npermission (and `sandbox.fetchDocument` also needs `anara:read`). Keep keys\nsecret; never commit them.\n\n## Use\n\n```ts\nimport { createAnaraClient } from '@anaralabs/sdk';\n\n// `apiKey` defaults to the ANARA_API_KEY environment variable.\nconst anara = createAnaraClient();\n\n// Retrieval — compose it from the raw primitives: recall, rerank, read.\nconst candidates = await anara.retrieval.vectorSearch({\n  queries: ['wooden pallet recycling drop-off', 'where to recycle pallets'],\n});\nconst winners = await anara.retrieval.rerank({\n  query: 'wooden pallet recycling drop-off',\n  candidates,\n  topK: 6,\n});\n\n// Read a winner's full page when snippets aren't enough.\nconst page = await anara.documents.getPages(\n  winners[0].documentId,\n  winners[0].pageNumber != null ? [winners[0].pageNumber] : undefined,\n);\n\n// Library entities (CRUD). Writes need an `anara:write` key.\nconst drafts = await anara.entities.query({\n  type: 'NOTE',\n  nameContains: 'draft',\n});\nconst folder = await anara.entities.create({ type: 'GROUP', name: 'Drafts' });\nfor (const d of drafts) await anara.entities.move(d.id, folder.id);\n\n// Add files. `uploadFile` presigns and PUTs the bytes straight to storage, so\n// it is not bound by the API request-body limit; `import` fetches a URL.\nawait anara.documents.uploadFile({ filename: 'paper.pdf', bytes: pdfBytes });\nawait anara.documents.import({ url: 'https://arxiv.org/pdf/1706.03762' });\n```\n\n## CLI\n\nThe package ships an `anara` binary. Every registry method is callable with a\nJSON argument (or JSON on stdin):\n\n```bash\nexport ANARA_API_KEY=anara_…\n\nanara methods                    # list methods with the scopes they need\nanara methods retrieval          # filter by prefix\nanara me                         # the user + workspace the key resolves to\nanara --version\n\nanara retrieval.vectorSearch '{\"queries\":[\"pallet recycling\"]}'\necho '{\"type\":\"DOCUMENT\"}' | anara entities.query\n```\n\nWithout a global install: `npx -p @anaralabs/sdk anara methods`.\n\n| Variable                | Meaning                            |\n| ----------------------- | ---------------------------------- |\n| `ANARA_API_KEY`         | required                           |\n| `ANARA_BASE_URL`        | default `https://anara.com`        |\n| `ANARA_ORGANIZATION_ID` | optional workspace pin (see below) |\n\nExit codes: `0` success, `1` the API returned an error (message on stderr),\n`2` usage error (unknown method, bad JSON, missing key).\n\n## How it works\n\nThe package is a thin client: every `anara.*` method is one\n`POST /api/v1/sdk/{method}` call whose JSON body is the method's arguments,\ndispatched server-side against your authenticated workspace. `anara.me()` hits\n`GET /api/v1/me`. There is no Anara logic in the package itself — just typed\ncalls over your key.\n\n## Surface\n\n- `entities.query / get / create / update / move / delete`\n- `retrieval.vectorSearch / keywordSearch / rerank`\n- `documents.getPages / expandContext / readToc / readMedia / extract`\n- `documents.import / upload / createUpload / uploadFile / uploadAll / importAll`\n- `spreadsheets.query / export / applyEdits`\n- `notes.read / edit` · `images.create` · `chats.search` · `workspace.queryDb`\n- `organizations.list` · `me` · `forOrganization(id)`\n- `sandbox.create / runShell / writeFile / editFile / readFile / listDir / attachFiles / fetchDocument / stop`\n  (requires `anara:sandbox`)\n\n`invoke(method, args)` is the escape hatch for any registry method not wrapped\nabove. `ANARA_METHODS` exports the registry itself (zod input/output schemas,\nscopes, summaries), and `buildOpenApiDocument()` renders it as OpenAPI.\n\nErrors are thrown as `AnaraApiError` (`.status`, `.code`, `.details`) for API\nresponses and `AnaraError` for client-side failures (missing key, no `fetch`,\nfailed storage PUT); `isAnaraApiError(e)` / `isAnaraError(e)` are type guards.\n\n### Workspaces\n\nA key targets your default workspace. To aim at another one you belong to,\nlist them with `anara.organizations.list()` and pass `organizationId` (sent as\n`X-Anara-Organization-Id`) or derive a scoped client with\n`anara.forOrganization(id)`.\n\n### Drop-in agent guide\n\n`ANARA_AGENT_GUIDE` is a ready-made system-prompt block teaching an agent when\nand how to call the SDK:\n\n```ts\nimport { ANARA_AGENT_GUIDE } from '@anaralabs/sdk';\n```\n\n## Configuration\n\n```ts\ncreateAnaraClient({\n  apiKey: '…', // or ANARA_API_KEY\n  baseUrl: 'https://anara.com', // override for self-hosted / preview\n  organizationId: 'org_…', // pin a workspace you belong to\n  fetch: customFetch, // override the fetch implementation (used for every request, including storage PUTs)\n  headers: { 'x-trace': '…' }, // extra headers on every request\n});\n```\n\n### Browser sign-in from the CLI (0.6.1)\n\nOn macOS or Linux, run `anara login --url https://your-preview.example.com` to authorize\nAnara in your browser. Authorization uses PKCE and a temporary loopback callback;\ncredentials are bound to that environment. macOS uses Keychain; Linux uses owner-only token files under `$XDG_CONFIG_HOME/anara/oauth` (default `~/.config/anara/oauth`). Linux token files are not encrypted. Then run\ncommands with the same `ANARA_BASE_URL`. An explicit `ANARA_API_KEY` takes priority.\n`anara logout --url https://your-preview.example.com` revokes tokens and removes\nlocal credentials. Login requires the environment's existing public OAuth client\nregistration endpoint; it does not configure a provider or grant staff access.\n\nNode applications can import `login`, `getAccessToken`, and `logout` directly from\n`@anaralabs/sdk/oauth`. These native helpers are separate from the browser-safe\nSDK entry point. `getAccessToken({ baseUrl })` refreshes expired credentials before\nreturning a bearer token. An absent or revoked login returns `undefined`; network\nfailures throw without deleting credentials. Other platforms can supply their\nown `CredentialStore` from `@anaralabs/sdk/oauth-types`; no plaintext file fallback\nis enabled. Automated QA can inject a store and use\n`login({ baseUrl, store, openBrowser: false, onAuthorizationUrl: async url => ... })`.\n\n## Upload a file from the shell\n\n```sh\nnpx -y @anaralabs/sdk documents.uploadFile \"/path/to/paper.pdf\"\n```\n\nThe command reads a local or sandbox file, reserves an upload through the API,\nand sends its bytes directly to storage. It prints the document ID; ingestion\ncontinues asynchronously. An optional second argument selects a folder.\n`ANARA_API_KEY`, `ANARA_BASE_URL`, and `ANARA_ORGANIZATION_ID` select the\ncredentials, server, and workspace. No JavaScript installation setup is needed.\n\nUse `npx -y @anaralabs/sdk documents.upload --help` to inspect a method's input\nschema before calling it. `documents.upload` takes base64 bytes, not a file path.\nKeep upload commands free of `| head`, which can hide a failing exit status.\n\nSandbox commands keep generated files in the sandbox by default. Pass `attachFiles: [\"report.pdf\"]` to `sandbox.runShell` to publish selected files, or call `sandbox.attachFiles` after inspecting the result. Callers that previously relied on automatic file URLs must now select the files explicitly.\n","readmeFilename":""}