{"_id":"@aksolab/recall","_rev":"8-b943d8bb09558b836679956fa5ffcb10","name":"@aksolab/recall","dist-tags":{"latest":"3.0.1"},"versions":{"0.0.1":{"name":"@aksolab/recall","version":"0.0.1","keywords":["memory","recall","typescript"],"author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","_id":"@aksolab/recall@0.0.1","maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"homepage":"https://github.com/rem4ik4ever/recall#readme","bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"dist":{"shasum":"1046c6f85c522b56ff9e1b1538822d88f669e373","tarball":"https://registry.npmjs.org/@aksolab/recall/-/recall-0.0.1.tgz","fileCount":132,"integrity":"sha512-7WRXG2eQLhUAp2nGt/Q0UOhjH7b3u2UuvT8ucQUXHdmhQ4EgTkYFBsEljitTg5div9bWi38yhOr5bODWO9EBjQ==","signatures":[{"sig":"MEYCIQDatUMsnLItKIfJlnDeh+gFgtsKF6DthMV/InjQy5mY9gIhALdYF7s9WdV/gjBILz8pkGgK7E/8h+2Dtppuna9Vw0Zx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230848},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"9dc3e799ac98207f201b66a9aa30c73ade2db56f","scripts":{"dev":"tsc --watch","chat":"ts-node playground/test-agent.ts","test":"jest","build":"tsc","redis-seed":"ts-node playground/seed-animals.ts","chroma-seed":"ts-node playground/seed-animals-chroma.ts","redis-search":"ts-node playground/redis-search-pl.ts","chroma-search":"ts-node playground/chromadb-search-pl.ts","prepublishOnly":"npm run build"},"_npmUser":{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"},"repository":{"url":"git+https://github.com/rem4ik4ever/recall.git","type":"git"},"_npmVersion":"10.1.0","description":"A TypeScript package for AI SDK memory functionality","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ai":"^4.1.45","tiktoken":"^1.0.20","@ai-sdk/openai":"^1.1.13"},"_hasShrinkwrap":false,"devDependencies":{"npm":"^11.1.0","zod":"^3.22.4","jest":"^29.7.0","redis":"^4.7.0","dotenv":"^16.4.5","install":"^0.13.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","csv-parse":"^5.6.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","csv-stringify":"^6.5.2"},"_npmOperationalInternal":{"tmp":"tmp/recall_0.0.1_1741465535595_0.522014555941958","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@aksolab/recall","version":"0.1.4","keywords":["memory","recall","typescript"],"author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","_id":"@aksolab/recall@0.1.4","maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"homepage":"https://github.com/rem4ik4ever/recall#readme","bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"dist":{"shasum":"70f5f0d0f7b50ec20f397e19ab03ecff91c3a29d","tarball":"https://registry.npmjs.org/@aksolab/recall/-/recall-0.1.4.tgz","fileCount":132,"integrity":"sha512-NcXFCAWMlQFMja9DofwaDA6KQ37OaKfpX0oeNvJ+acW6lFCkqJ+B0O3O9RqaTsIluHoR3iOfIWNy+3Bf3xg6OQ==","signatures":[{"sig":"MEQCIFZiTi9LVp4GxZEwhOfyXsmRoRnm5kixBjrsJ9sd10STAiAaxEmZN+wBiJxUo1qSKzWXKEz88q2hIcxfFkRgRngr9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239894},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"fcb48751e2fdcdbfb1711c611b5ed5e0c150b647","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"dev":"tsc --watch","chat":"ts-node playground/test-agent.ts","test":"jest","build":"tsc","release":"semantic-release","changelog":"chmod +x ./scripts/generate-changelog.sh && ./scripts/generate-changelog.sh","redis-seed":"ts-node playground/seed-animals.ts","chroma-seed":"ts-node playground/seed-animals-chroma.ts","redis-search":"ts-node playground/redis-search-pl.ts","chroma-search":"ts-node playground/chromadb-search-pl.ts","create-release":"chmod +x ./scripts/create-release.sh && ./scripts/create-release.sh","finish-release":"chmod +x ./scripts/finish-release.sh && ./scripts/finish-release.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"},"repository":{"url":"git+https://github.com/rem4ik4ever/recall.git","type":"git"},"_npmVersion":"11.2.0","description":"A memory management package for AI SDK memory functionality","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ai":"^4.1.45","tiktoken":"^1.0.20","@ai-sdk/openai":"^1.1.13"},"_hasShrinkwrap":false,"devDependencies":{"npm":"^11.1.0","zod":"^3.22.4","jest":"^29.7.0","redis":"^4.7.0","dotenv":"^16.4.5","install":"^0.13.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","csv-parse":"^5.6.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","csv-stringify":"^6.5.2","semantic-release":"^23.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^9.2.6","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/recall_0.1.4_1741468448572_0.32920170504260593","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aksolab/recall","version":"1.0.0","keywords":["memory","recall","typescript"],"author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","_id":"@aksolab/recall@1.0.0","maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"homepage":"https://github.com/rem4ik4ever/recall#readme","bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"dist":{"shasum":"92e9c9e2e7c5f18a571b11aef9a5237146314f9a","tarball":"https://registry.npmjs.org/@aksolab/recall/-/recall-1.0.0.tgz","fileCount":132,"integrity":"sha512-kKrNS59dr1VtDnreR340QV3y2kdAt0bjCHVU9FwYLGmY8fx5tMxaM86lZEMHZsx9STv0ETb95c8Pgj5n3L5Cyg==","signatures":[{"sig":"MEQCIDDvilUCuS3JtKUbm70sA8jCHbL27m/F0BoUXbn4SxoYAiACRF//RRJ2EJ9VsAeiwc4bGnm71PTB6CJOnXxNq9iwmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267993},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"20096ac4eb06a8b4130461490ce6d8364d41b44b","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"dev":"tsc --watch","chat":"ts-node playground/test-agent.ts","test":"jest","build":"tsc","release":"semantic-release","changelog":"chmod +x ./scripts/generate-changelog.sh && ./scripts/generate-changelog.sh","redis-seed":"ts-node playground/seed-animals.ts","chroma-seed":"ts-node playground/seed-animals-chroma.ts","redis-search":"ts-node playground/redis-search-pl.ts","chroma-search":"ts-node playground/chromadb-search-pl.ts","create-release":"chmod +x ./scripts/create-release.sh && ./scripts/create-release.sh","finish-release":"chmod +x ./scripts/finish-release.sh && ./scripts/finish-release.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"},"repository":{"url":"git+https://github.com/rem4ik4ever/recall.git","type":"git"},"_npmVersion":"11.2.0","description":"A memory management package for AI SDK memory functionality","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ai":"^4.1.45","tiktoken":"^1.0.20","@ai-sdk/openai":"^1.1.13"},"_hasShrinkwrap":false,"devDependencies":{"npm":"^11.1.0","zod":"^3.22.4","jest":"^29.7.0","redis":"^4.7.0","dotenv":"^16.4.5","install":"^0.13.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","csv-parse":"^5.6.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","csv-stringify":"^6.5.2","semantic-release":"^23.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^9.2.6","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/recall_1.0.0_1743530961146_0.6274520802422943","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@aksolab/recall","version":"2.0.0","keywords":["memory","recall","typescript"],"author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","_id":"@aksolab/recall@2.0.0","maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"homepage":"https://github.com/rem4ik4ever/recall#readme","bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"dist":{"shasum":"0313920ddcc19d0451c5dd1cab0b521d8182e71e","tarball":"https://registry.npmjs.org/@aksolab/recall/-/recall-2.0.0.tgz","fileCount":132,"integrity":"sha512-OF+k/VVVOii31quq+pA4yRcGFejwwrjzHfMtBzeiYbafj/+A/t0RO7wSqMyB5lg3BclrvVYx7MECM8aTzRoBIQ==","signatures":[{"sig":"MEQCIFxP79N9vOAHum2hjc/IHq5nPAI+11cPM5GKAS/9LP+sAiAy7i2wQmJTJB/nWobmbVI5eTYlpNmDb5PB1PkzdNEzEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267746},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"25545a7a46bd4749c43f68c7cb2ce312d201d302","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"dev":"tsc --watch","chat":"ts-node playground/test-agent.ts","test":"jest","build":"tsc","release":"semantic-release","changelog":"chmod +x ./scripts/generate-changelog.sh && ./scripts/generate-changelog.sh","redis-seed":"ts-node playground/seed-animals.ts","chroma-seed":"ts-node playground/seed-animals-chroma.ts","redis-search":"ts-node playground/redis-search-pl.ts","chroma-search":"ts-node playground/chromadb-search-pl.ts","create-release":"chmod +x ./scripts/create-release.sh && ./scripts/create-release.sh","finish-release":"chmod +x ./scripts/finish-release.sh && ./scripts/finish-release.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"},"repository":{"url":"git+https://github.com/rem4ik4ever/recall.git","type":"git"},"_npmVersion":"11.2.0","description":"A memory management package for AI SDK memory functionality","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ai":"^4.1.45","tiktoken":"^1.0.20","@ai-sdk/openai":"^1.1.13"},"_hasShrinkwrap":false,"devDependencies":{"npm":"^11.1.0","zod":"^3.22.4","jest":"^29.7.0","redis":"^4.7.0","dotenv":"^16.4.5","install":"^0.13.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","csv-parse":"^5.6.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","csv-stringify":"^6.5.2","semantic-release":"^23.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^9.2.6","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/recall_2.0.0_1743536140531_0.6078844464091158","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@aksolab/recall","version":"2.1.0","keywords":["memory","recall","typescript"],"author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","_id":"@aksolab/recall@2.1.0","maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"homepage":"https://github.com/rem4ik4ever/recall#readme","bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"dist":{"shasum":"b55ac5d7d3355a8dc690b1e95c5156e9e7ce75e4","tarball":"https://registry.npmjs.org/@aksolab/recall/-/recall-2.1.0.tgz","fileCount":132,"integrity":"sha512-dGX10BU6Q53ITeR+BPfHoSJmNmv5Iuh14vjFCK7v1bEyXpDcJ8uwcA2v+MoqOdDNkBXZmCCok4KfuqL2Q2knIg==","signatures":[{"sig":"MEUCIHTrGLJ1DGFS5qZ07OHf3Q3+lR1XfZM6De42mnPY7SyTAiEA7XTsi8TzV/VcOhTzhLQPfEr1Zt4s1jd1tjCUm3UD8m8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275181},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"7e8e2284533bb529da6fcaf37e29a3bab063b031","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"dev":"tsc --watch","chat":"ts-node playground/test-agent.ts","test":"jest","build":"tsc","release":"semantic-release","changelog":"chmod +x ./scripts/generate-changelog.sh && ./scripts/generate-changelog.sh","redis-seed":"ts-node playground/seed-animals.ts","chroma-seed":"ts-node playground/seed-animals-chroma.ts","redis-search":"ts-node playground/redis-search-pl.ts","chroma-search":"ts-node playground/chromadb-search-pl.ts","create-release":"chmod +x ./scripts/create-release.sh && ./scripts/create-release.sh","finish-release":"chmod +x ./scripts/finish-release.sh && ./scripts/finish-release.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"},"repository":{"url":"git+https://github.com/rem4ik4ever/recall.git","type":"git"},"_npmVersion":"11.2.0","description":"A memory management package for AI SDK memory functionality","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ai":"^4.1.45","tiktoken":"^1.0.20","@ai-sdk/openai":"^1.1.13"},"_hasShrinkwrap":false,"devDependencies":{"npm":"^11.1.0","zod":"^3.22.4","jest":"^29.7.0","redis":"^4.7.0","dotenv":"^16.4.5","install":"^0.13.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","csv-parse":"^5.6.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","csv-stringify":"^6.5.2","semantic-release":"^23.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^9.2.6","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/recall_2.1.0_1743562167841_0.3290469548908701","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@aksolab/recall","version":"2.1.1","keywords":["memory","recall","typescript"],"author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","_id":"@aksolab/recall@2.1.1","maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"homepage":"https://github.com/rem4ik4ever/recall#readme","bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"dist":{"shasum":"307b71fd903d03539877b87d9b64ea83486a2327","tarball":"https://registry.npmjs.org/@aksolab/recall/-/recall-2.1.1.tgz","fileCount":132,"integrity":"sha512-aIzF2riovh8v747xVJgn0G9fVeklud7hTYV2IMGo9cg9sylsMsqr/28Oq3Qy6UixGz4kFa/OraXizXglImflzg==","signatures":[{"sig":"MEUCIFaWLwVuYc6idONyPtf733tygksw3ZNbjy+imaBinQulAiEA7E3wxNVHHngKykMpkWNiR17dSdaDO3uWVLMaw4MUgUE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270072},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"5083d95ee6a9f73c38180f618e4c84637d553b6a","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/npm","@semantic-release/github","@semantic-release/git"],"branches":["main"]},"scripts":{"dev":"tsc --watch","chat":"ts-node playground/test-agent.ts","test":"jest","build":"tsc","release":"semantic-release","changelog":"chmod +x ./scripts/generate-changelog.sh && ./scripts/generate-changelog.sh","redis-seed":"ts-node playground/seed-animals.ts","chroma-seed":"ts-node playground/seed-animals-chroma.ts","redis-search":"ts-node playground/redis-search-pl.ts","chroma-search":"ts-node playground/chromadb-search-pl.ts","create-release":"chmod +x ./scripts/create-release.sh && ./scripts/create-release.sh","finish-release":"chmod +x ./scripts/finish-release.sh && ./scripts/finish-release.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"},"repository":{"url":"git+https://github.com/rem4ik4ever/recall.git","type":"git"},"_npmVersion":"11.2.0","description":"A memory management package for AI SDK memory functionality","directories":{},"_nodeVersion":"20.9.0","dependencies":{"ai":"^4.1.45","tiktoken":"^1.0.20","@ai-sdk/openai":"^1.1.13"},"_hasShrinkwrap":false,"devDependencies":{"npm":"^11.1.0","zod":"^3.22.4","jest":"^29.7.0","redis":"^4.7.0","dotenv":"^16.4.5","install":"^0.13.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","csv-parse":"^5.6.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","csv-stringify":"^6.5.2","semantic-release":"^23.0.2","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","@semantic-release/github":"^9.2.6","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0"},"_npmOperationalInternal":{"tmp":"tmp/recall_2.1.1_1743563752385_0.6917463857698978","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@aksolab/recall","version":"3.0.0","keywords":["memory","recall","typescript"],"author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","_id":"@aksolab/recall@3.0.0","maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"homepage":"https://github.com/rem4ik4ever/recall#readme","bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"dist":{"shasum":"b2df8e68cc21080fc5f5cf5a235e22cf0af52759","tarball":"https://registry.npmjs.org/@aksolab/recall/-/recall-3.0.0.tgz","fileCount":27,"integrity":"sha512-77rf0Co8EAsSZF2OpmRm3vh9eNID/g2wRovSJ0Qdx5+ysPMSNJnbjQfYABDjOreZaCZfz/hpxTyQY2ocgc9geg==","signatures":[{"sig":"MEQCICoEc0Rm9CpZ8KLcecfo4VG2MmK+3Cs9F0rNcDCU9lfEAiBh9+Xs4b8O67kydufQ3z8qpWxdVS8s+Jp54kKxP7oGLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71233},"main":"./dist/index.js","types":"./dist/index.d.ts","gitHead":"ea50cff87e6510dd623951b2beba5cf71f5d315b","scripts":{"dev":"tsc --watch","chat":"ts-node playground/test-agent.ts","test":"jest","build":"tsc","changelog":"chmod +x ./scripts/generate-changelog.sh && ./scripts/generate-changelog.sh","redis-seed":"ts-node playground/seed-animals.ts","chroma-seed":"ts-node playground/seed-animals-chroma.ts","redis-search":"ts-node playground/redis-search-pl.ts","chroma-search":"ts-node playground/chromadb-search-pl.ts","create-release":"chmod +x ./scripts/create-release.sh && ./scripts/create-release.sh","finish-release":"chmod +x ./scripts/finish-release.sh && ./scripts/finish-release.sh","prepublishOnly":"npm run build"},"_npmUser":{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"},"repository":{"url":"git+https://github.com/rem4ik4ever/recall.git","type":"git"},"_npmVersion":"10.8.2","description":"A memory management package for AI SDK memory functionality","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ai":"^4.1.45","tiktoken":"^1.0.20","@ai-sdk/openai":"^1.1.13","@aksolab/recall-types":"*","@aksolab/recall-archive-provider":"*","@aksolab/recall-storage-provider":"*"},"_hasShrinkwrap":false,"devDependencies":{"npm":"^11.1.0","zod":"^3.22.4","jest":"^29.7.0","redis":"^4.7.0","dotenv":"^16.4.5","install":"^0.13.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","csv-parse":"^5.6.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","csv-stringify":"^6.5.2"},"_npmOperationalInternal":{"tmp":"tmp/recall_3.0.0_1745713014955_0.6526863974309409","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@aksolab/recall","version":"3.0.1","description":"A memory management package for AI SDK memory functionality","author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/rem4ik4ever/recall.git"},"keywords":["memory","recall","typescript"],"scripts":{"dev":"tsc --watch","build":"tsc","test":"jest","prepublishOnly":"npm run build","create-release":"chmod +x ./scripts/create-release.sh && ./scripts/create-release.sh","finish-release":"chmod +x ./scripts/finish-release.sh && ./scripts/finish-release.sh","changelog":"chmod +x ./scripts/generate-changelog.sh && ./scripts/generate-changelog.sh","chat":"ts-node playground/test-agent.ts","redis-search":"ts-node playground/redis-search-pl.ts","redis-seed":"ts-node playground/seed-animals.ts","chroma-search":"ts-node playground/chromadb-search-pl.ts","chroma-seed":"ts-node playground/seed-animals-chroma.ts"},"main":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"@ai-sdk/openai":"^1.1.13","ai":"^4.1.45","tiktoken":"^1.0.20","@aksolab/recall-archive-provider":"*","@aksolab/recall-storage-provider":"*","@aksolab/recall-types":"*"},"devDependencies":{"redis":"^4.7.0","@types/jest":"^29.5.12","@types/node":"^20.11.24","csv-parse":"^5.6.0","csv-stringify":"^6.5.2","dotenv":"^16.4.5","install":"^0.13.0","jest":"^29.7.0","npm":"^11.1.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3","zod":"^3.22.4"},"bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"homepage":"https://github.com/rem4ik4ever/recall#readme","_id":"@aksolab/recall@3.0.1","gitHead":"6a63e7207874e1d899c3ef233c0ee6655d407730","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-QB22WsFy7E8mOfB360XFTJSVxTkqqZA5HTQbstBIv1Gi/y+E6xLugqgpggg4ztLncP1IiCd5yy+5wMyg5NoIUg==","shasum":"abe8228bb28d6c59b3e0b814cac7e112d76ca515","tarball":"https://registry.npmjs.org/@aksolab/recall/-/recall-3.0.1.tgz","fileCount":27,"unpackedSize":71780,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF28iPMdnHU042RyO4a0ZbcioNZX5ifcaW+6EgncfjDoAiEAnu+4bO6GCejVSoUoOzD0Bdh2FigdOqCmyiWCz8wyhUI="}]},"_npmUser":{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"},"directories":{},"maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/recall_3.0.1_1745722621835_0.09322275816001069"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-08T20:25:35.497Z","modified":"2025-04-27T02:57:02.247Z","0.0.1":"2025-03-08T20:25:35.793Z","0.1.4":"2025-03-08T21:14:08.747Z","1.0.0":"2025-04-01T18:09:21.388Z","2.0.0":"2025-04-01T19:35:40.728Z","2.1.0":"2025-04-02T02:49:28.073Z","2.1.1":"2025-04-02T03:15:52.601Z","3.0.0":"2025-04-27T00:16:55.159Z","3.0.1":"2025-04-27T02:57:02.048Z"},"bugs":{"url":"https://github.com/rem4ik4ever/recall/issues"},"author":{"name":"Rem Kim","email":"rem4ik4ever@gmail.com"},"license":"MIT","homepage":"https://github.com/rem4ik4ever/recall#readme","keywords":["memory","recall","typescript"],"repository":{"type":"git","url":"git+https://github.com/rem4ik4ever/recall.git"},"description":"A memory management package for AI SDK memory functionality","maintainers":[{"name":"rem4ik4ever","email":"rem4ik4ever@gmail.com"}],"readme":"# @aksolab/recall\n\nA memory management for AI applications using that provides persistent core memory, chat history management, and RAG (Retrieval-Augmented Generation) capabilities.\n\n## Features\n\n- 🧠 **Core Memory**: Persistent memory that stays in system messages\n- 💬 **Chat History**: Manage conversation history across multiple threads\n- 📚 **Archive Memory**: RAG (Retrieval-Augmented Generation) support for long-term memory\n- 🔄 **Multiple Storage Providers**: Support for in-memory and Redis storage also add your own\n\n## Installation\n\n```bash\nnpm install @aksolab/recall\n# or\nyarn add @aksolab/recall\n# or\npnpm add @aksolab/recall\n```\n\n## Quick Start\n\n```typescript\nimport { Recall } from '@aksolab/recall';\nimport { RedisProvider } from '@aksolab/recall-redis-storage-adapter';\nimport { RedisArchiveProvider } from '@aksolab/recall-redis-search-adapter';\nimport { createClient } from 'redis';\n\n// Initialize Redis client\nconst redisClient = createClient({ url: process.env.REDIS_URL });\nawait redisClient.connect();\n\n// Initialize storage provider\nconst storage = new RedisProvider({\n  client: redisClient,\n  prefix: 'user_123'  // Optional: prefix for Redis keys\n});\n\n// Initialize archive provider for RAG capabilities\nconst archive = new RedisArchiveProvider({\n  client: redisClient,\n  indexName: 'idx:user_memory',  // Optional: defaults to 'idx:archive'\n  collectionName: 'user_123:archive:',  // Optional: defaults to 'recall:memory:archive:'\n  dimensions: 1536  // Optional: for text-embedding-3-small\n});\n\n// Initialize Recall with configured providers\nconst memory = new Recall({\n  storageProvider: storage,\n  archiveProvider: archive,\n  openaiApiKey: process.env.OPENAI_API_KEY,\n  memoryKey: 'user_123',\n  threadId: 'main',\n  memoryOptions: { // optional\n    maxContextSize: 25000,     // Custom max context size\n    coreBlockTokenLimit: 3000, // Custom core block token limit\n    chatTokenLimit: 15000,     // Custom chat token limit\n  },\n  coreBlocks: [\n    {\n      key: 'user_context',\n      description: 'Essential information about the user',\n      defaultContent: 'User name is Alice. She prefers quick, concise responses.',\n      readOnly: false\n    },\n    {\n      key: 'assistant_persona',\n      description: 'Assistant personality and behavior settings',\n      defaultContent: 'I am Nova, a helpful AI assistant focused on clear communication.',\n      readOnly: true\n    }\n  ]\n});\n\n// Add messages directly to the memory instance\nawait memory.addMessages({ content: 'Hello!', role: 'user' });\n\n// Add multiple messages at once\nawait memory.addMessages([\n  { content: 'Hi there!', role: 'assistant' },\n  { content: 'How can I help?', role: 'assistant' }\n]);\n```\n\n## Memory Limits Configuration\n\nRecall provides configurable memory limits to help manage token usage and context size:\n\n- `chatTokenLimit`: Maximum number of tokens in chat history (default: 10000)\n- `maxContextSize`: Maximum total context size in tokens (default: 20000)\n- `coreBlockTokenLimit`: Maximum tokens per core memory block (default: 2000)\n\nYou can set these limits during initialization:\n\n```typescript\nconst memory = new Recall({\n  storageProvider: storage,\n  archiveProvider: archive,\n  openaiApiKey: process.env.OPENAI_API_KEY,\n  memoryKey: 'user_123',\n  threadId: 'main',\n  maxContextSize: 25000,     // Custom max context size\n  coreBlockTokenLimit: 3000, // Custom core block token limit\n  chatTokenLimit: 15000,     // Custom chat token limit\n  coreBlocks: [\n    // ... core blocks configuration ...\n  ]\n});\n```\n\nThese limits help manage memory and token usage:\n- `chatTokenLimit`: When exceeded, older messages are automatically summarized\n- `maxContextSize`: Ensures total context stays within model limits\n- `coreBlockTokenLimit`: Prevents individual core memory blocks from becoming too large\n\nThe limits can also be updated after initialization:\n\n```typescript\n// Update limits as needed\nmemory.maxContextSize = 30000;\nmemory.chatTokenLimit = 20000;\nmemory.coreBlockTokenLimit = 4000;\n```\n\n## Core Memory\n\nCore Memory is a persistent memory system that's always present in the system prompt. It allows both users and AI agents to maintain and update important contextual information throughout conversations.\n\n### How Core Memory Works\n\n- Core Memory is included in every system prompt\n- Can be organized into blocks with different purposes\n- Each block can be marked as read-only or updatable\n- AI agents can update their own memory during conversations\n- Persists across multiple chat sessions\n- Automatically initializes with default content\n\n### Example Usage\n\n```typescript\nconst memory = new Recall({\n  // ... provider configuration ...\n  coreBlocks: [\n    {\n      key: 'user_preferences',\n      description: 'User preferences and settings',\n      defaultContent: 'Language: English, Tone: Professional',\n      readOnly: false\n    },\n    {\n      key: 'agent_persona',\n      description: 'AI personality settings',\n      defaultContent: 'You are a helpful technical assistant',\n      readOnly: true\n    }\n  ]\n});\n\n// Pass tools to AI Agent\nimport { generateText } from 'ai';\n\nconst result = await generateText({\n  model: 'gpt-4',\n  tools: memory.tools,  // Memory tools are automatically available to the AI\n  messages: [\n    {\n      role: 'system',\n      content: 'You are a helpful assistant that remembers user preferences.'\n    },\n    {\n      role: 'user',\n      content: 'Remember that I prefer technical explanations and my name is Alex.'\n    }\n  ],\n});\n```\n\nThe AI agent will have access to these memory management tools:\n- `coreMemoryReplace`: Update entire memory blocks\n- `coreMemoryAppend`: Add information to existing blocks\n- `archivalMemorySearch`: Search through archived information\n- `archivalMemoryInsert`: Add new information to archive\n\n## Chat History\n\nChat History maintains the ongoing conversation between users and AI Agents, including message history, tool calls, and automatic conversation summarization.\n\n### Features\n\n- Automatic token limit management\n- Smart conversation summarization\n- Multiple conversation threads\n- Tool call history preservation\n- Context-aware message handling\n\n### Example Usage\n\n```typescript\n// Create a memory instance with different thread IDs\nconst memory = new Recall({\n  storageProvider,\n  archiveProvider,\n  openaiApiKey: process.env.OPENAI_API_KEY,\n  memoryKey: 'user_123',\n  threadId: 'main'  // Main conversation thread\n});\n\nconst analyticsMemory = new Recall({\n  storageProvider,\n  archiveProvider,\n  openaiApiKey: process.env.OPENAI_API_KEY,\n  memoryKey: 'user_123',\n  threadId: 'analytics'  // Analytics-specific thread\n});\n\n// Add messages\nawait memory.addMessages({\n  content: 'Analyze this dataset',\n  role: 'user'\n});\n\nawait memory.addMessages({\n  content: 'I\\'ll analyze the data',\n  role: 'assistant',\n  tool_calls: [{\n    type: 'function',\n    function: {\n      name: 'analyzeData',\n      arguments: { dataset: 'sales_2024.csv' }\n    }\n  }]\n});\n\n// Add multiple messages at once\nawait memory.addMessages([\n  { content: 'Here are the results', role: 'assistant' },\n  { content: 'Thanks!', role: 'user' }\n]);\n\n// Get history\nconst history = await memory.chatHistory();\n```\n\n## Archive Memory (RAG)\n\nArchive Memory provides RAG capabilities for long-term information storage and retrieval. It supports multiple search methods:\n- Text-based search with fuzzy matching\n- Semantic search using embeddings\n- Hybrid search combining both approaches\n\n### Example Usage\n\n```typescript\n// Store information using tools\nawait memory.tools.archivalMemoryInsert({\n  content: 'User prefers vegetarian food',\n  name: 'Dietary Preferences',  // Optional: name for the entry\n  metadata: { category: 'preferences' }  // Optional: additional metadata\n});\n\n// Text-based search\nconst textResults = await memory.tools.archivalMemorySearch({\n  query: 'food preferences',\n  type: 'text'\n});\n\n// Semantic search\nconst semanticResults = await memory.tools.archivalMemorySearch({\n  query: 'dietary restrictions',\n  type: 'similarity'\n});\n\n// Hybrid search (combines text and semantic search)\nconst hybridResults = await memory.tools.archivalMemorySearch({\n  query: 'food allergies',\n  type: 'hybrid',\n  vectorWeight: 0.7,  // Optional: weight for semantic search (default: 0.7)\n  textWeight: 0.3    // Optional: weight for text search (default: 0.3)\n});\n\n// Get chat history\nconst history = await memory.chatHistory();\n```\n\nEach search result includes:\n- The matched entry with its content and metadata\n- A relevance score (0-100)\n- Match details for text searches (exact phrases and matched terms)\n\n## Storage Providers\n\nRecall supports multiple storage providers for different use cases.\n\n### Built-in Providers\n\n- **InMemoryProvider**: Great for testing and development\n- **RedisProvider**: Production-ready persistent storage\n\n### Redis Requirements\n\nTo use Redis providers, you need:\n- Redis Stack with RediSearch module installed\n- Redis version 6.0 or higher\n- Node Redis client v4.7.0 or higher\n\nFor development:\n```bash\ndocker run -d --name redis-stack -p 6379:6379 redis/redis-stack:latest\n```\n\nFor production, ensure your Redis instance has the RediSearch module installed. Then initialize the providers:\n\n```typescript\nimport { Recall } from '@aksolab/recall';\nimport { RedisProvider, setupRedisSchema } from '@aksolab/recall-redis-storage-adapter';\nimport { RedisArchiveProvider } from '@aksolab/recall-redis-search-adapter';\nimport { createClient } from 'redis';\n\n// Initialize Redis client\nconst client = createClient({\n  url: process.env.REDIS_URL,\n  // Add any additional configuration options\n});\nawait client.connect();\n\n// Optional but recommended: Set up Redis schema once during app initialization\n// This creates necessary indexes for vector search and validates existing schema\nawait setupRedisSchema(\n  client,\n  'idx:archive',      // Optional: index name\n  'user:archive:',    // Optional: collection prefix\n  1536,              // Optional: vector dimensions\n  false              // Optional: force schema recreation\n);\n\n// Initialize storage provider for chat history and core memory\nconst storage = new RedisProvider({\n  client,\n  prefix: 'user:memory:'  // Optional: prefix for Redis keys\n});\n\n// Initialize archive provider for RAG capabilities\nconst archive = new RedisArchiveProvider({\n  client,\n  indexName: 'idx:archive',      // Optional: defaults to 'idx:archive'\n  collectionName: 'user:archive:', // Optional: defaults to 'recall:memory:archive:'\n  dimensions: 1536,              // Optional: for text-embedding-3-small\n  embeddingModel: 'text-embedding-3-small'  // Optional: defaults to text-embedding-3-small\n});\n\n// Initialize Recall with configured providers\nconst recall = new Recall({\n  storageProvider: storage,\n  archiveProvider: archive,\n  openaiApiKey: process.env.OPENAI_API_KEY,\n  memoryKey: 'user_123',\n  threadId: 'main'\n});\n```\n\nThe Redis schema setup:\n- Is optional but recommended for production use\n- Should be done once during application initialization\n- Creates necessary indexes for vector search\n- Validates existing schema if already present\n- Can be forced to recreate with the `force` parameter\n- Is safe to run multiple times (won't recreate if valid)\n- Will log a warning if missing when using the archive provider\n\nThe providers will automatically:\n- Handle vector embeddings for semantic search\n- Manage JSON storage and retrieval\n- Provide text, semantic, and hybrid search capabilities\n\n### Custom Providers\n\nYou can implement custom providers by extending the base interfaces:\n\n```typescript\nimport { StorageProvider } from '@aksolab/recall-storage-provider';\nimport { ArchiveProvider } from '@aksolab/recall-archive-provider';\nimport { Recall } from '@aksolab/recall';\n\nclass CustomStorageProvider implements StorageProvider {\n  // Implement storage methods\n}\n\nclass CustomArchiveProvider implements ArchiveProvider {\n  // Implement archive methods\n}\n\n// Use custom providers with Recall\nconst memory = new Recall({\n  storageProvider: new CustomStorageProvider(),\n  archiveProvider: new CustomArchiveProvider(),\n  // ... other configuration\n});\n```\n\n## Using with AI Agents\n\nMemory tools can be passed directly to AI agents for autonomous memory management:\n\n```typescript\nimport { generateText } from 'ai';\n\n// Initialize memory and create session as shown in Quick Start\nconst session = await memory.createChatSession('user_123', 'main');\nconst { tools } = session;\n\nconst result = await generateText({\n  model: 'gpt-4',\n  tools,  // Pass the memory tools to the AI\n  messages: [\n    {\n      role: 'system',\n      content: 'You are a helpful assistant that remembers user preferences.'\n    },\n    {\n      role: 'user',\n      content: 'I prefer to be called Alex and like technical, detailed explanations.'\n    }\n  ],\n});\n\n// The AI can now use tools to manage memory\n// For example, it might call:\n// tools.coreMemoryReplace({\n//   block: 'user_preferences',\n//   content: 'Name: Alex, Preference: Technical and detailed explanations'\n// })\n\n// Later in the conversation, AI can retrieve preferences\nconst result2 = await generateText({\n  model: 'gpt-4',\n  tools,\n  messages: [\n    {\n      role: 'user',\n      content: 'Can you explain how databases work?'\n    }\n  ],\n});\n\n// AI can search archive memory for relevant information\n// tools.archivalMemorySearch({\n//   query: 'user Alex technical preferences'\n// })\n```\n\nThe available tools include:\n- `coreMemoryReplace`: Update entire memory blocks\n- `coreMemoryAppend`: Add information to existing blocks\n- `archivalMemorySearch`: Search through archived information\n- `archivalMemoryInsert`: Add new information to archive\n\n## Contributing\n\n### Commit Messages\n\nThis project uses semantic versioning based on commit message prefixes. Your commit message should be structured as follows:\n\n```\n<type>(<scope>): <description>\n\n[optional body]\n\n[optional footer]\n```\n\nTypes that trigger version updates:\n- `feat`: New feature (minor version bump)\n- `fix`: Bug fix (patch version bump)\n- `perf`: Performance improvement (patch version bump)\n- `BREAKING CHANGE`: Breaking API change (major version bump)\n\nExamples:\n```bash\n# Patch release (0.0.x)\ngit commit -m \"fix: correct memory leak in chat history\"\ngit commit -m \"perf: improve archive search performance\"\n\n# Minor release (0.x.0)\ngit commit -m \"feat: add new core memory block type\"\n\n# Major release (x.0.0)\ngit commit -m \"feat!: redesign storage provider API\nBREAKING CHANGE: storage provider interface has changed\"\n```\n\nThe version number will be automatically updated when merging to main branch.\n\n## License\n\nMIT \n","readmeFilename":"README.md"}