{"_id":"@bip-krishna/agentmind","_rev":"3-cac01eccb9747db1e27c962a54620b85","name":"@bip-krishna/agentmind","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@bip-krishna/agentmind","version":"0.1.0","keywords":["memory","vector","ai","context","rag","pgvector"],"license":"MIT","_id":"@bip-krishna/agentmind@0.1.0","maintainers":[{"name":"bip-krishna","email":"krishnakumar789612@gmail.com"}],"bin":{"agentmind":"dist/cli/src/index.js","context-memory":"dist/cli/src/index.js"},"dist":{"shasum":"9814ab49d94f2e8bf6c59518d8f749178ba6d83f","tarball":"https://registry.npmjs.org/@bip-krishna/agentmind/-/agentmind-0.1.0.tgz","fileCount":169,"integrity":"sha512-ZYxfeW32CXb/gKTcjU7NkJuc35rw6+uvYVqZk913Sk3y+cHcv/TR0R98BQy0osyXomaZg3PCKl/9lvTYL/wVAA==","signatures":[{"sig":"MEUCIDqyq1w34I4mQILNm0yprysssI42OLWo0SDSH2qi/4QRAiEAwZ4MucoSCJXKEThEAHsJksUPZsG/ycL8fuo4P8h6urQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":507268},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./dist/packages/core/src/index.js","./storage":"./dist/packages/storage/src/index.js","./retrieval":"./dist/packages/retrieval/src/index.js","./embeddings":"./dist/packages/embeddings/src/index.js","./integrations":"./dist/packages/integrations/src/index.js"},"gitHead":"567ae1e69d1ba376f68ad16221c49bdfc9d94c3f","private":false,"scripts":{"cli":"node ./dist/cli/src/index.js","test":"vitest run","build":"rm -rf dist && npx tsc","test:mvp":"node test-mvp.mjs","dashboard":"node ./dist/apps/dashboard/src/server.js"},"_npmUser":{"name":"bip-krishna","email":"krishnakumar789612@gmail.com"},"workspaces":["packages/*","apps/*","cli"],"_npmVersion":"11.19.0","description":"Persistent, project-scoped context layer for AI applications","directories":{},"_nodeVersion":"26.8.1","dependencies":{"pg":"^8.23.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^1.6.0","@types/pg":"^8.23.1","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agentmind_0.1.0_1788781443512_0.997835398259105","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bip-krishna/agentmind","version":"0.1.1","keywords":["memory","vector","ai","context","rag","pgvector"],"license":"MIT","_id":"@bip-krishna/agentmind@0.1.1","maintainers":[{"name":"bip-krishna","email":"krishnakumar789612@gmail.com"}],"bin":{"agentmind":"dist/cli/src/index.js","context-memory":"dist/cli/src/index.js"},"dist":{"shasum":"85256e3a75ca1049015dac8ab76f5c7a3d0b194b","tarball":"https://registry.npmjs.org/@bip-krishna/agentmind/-/agentmind-0.1.1.tgz","fileCount":169,"integrity":"sha512-uenjS5d3YCY7QWiAv06xLLC31VP6w5sJCxuk31xIjgTtv9hyQEKPhb4YEnN+yumVoFnMGR1JHjLe+2cK03+Hcg==","signatures":[{"sig":"MEQCICp/3ee1W8rG8OvGO6bETgs8lj7MalDatMGXglEbneeZAiB2VqPj/S/if2Aige3RB8Gg2KE1+GVD2/A5iCUKlSUnXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":507264},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./dist/packages/core/src/index.js","./storage":"./dist/packages/storage/src/index.js","./retrieval":"./dist/packages/retrieval/src/index.js","./embeddings":"./dist/packages/embeddings/src/index.js","./integrations":"./dist/packages/integrations/src/index.js"},"gitHead":"567ae1e69d1ba376f68ad16221c49bdfc9d94c3f","private":false,"scripts":{"cli":"node ./dist/cli/src/index.js","test":"vitest run","build":"rm -rf dist && npx tsc","test:mvp":"node test-mvp.mjs","dashboard":"node ./dist/apps/dashboard/src/server.js"},"_npmUser":{"name":"bip-krishna","email":"krishnakumar789612@gmail.com"},"workspaces":["packages/*","apps/*","cli"],"_npmVersion":"11.19.0","description":"Persistent, project-scoped context layer for AI applications","directories":{},"_nodeVersion":"26.8.1","dependencies":{"pg":"^8.23.0"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.0","vitest":"^1.6.0","@types/pg":"^8.23.1","typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agentmind_0.1.1_1788781525620_0.6606290617534565","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bip-krishna/agentmind","private":false,"version":"0.1.2","description":"Persistent, project-scoped context layer for AI applications","type":"module","exports":{".":"./dist/packages/core/src/index.js","./storage":"./dist/packages/storage/src/index.js","./embeddings":"./dist/packages/embeddings/src/index.js","./integrations":"./dist/packages/integrations/src/index.js","./retrieval":"./dist/packages/retrieval/src/index.js"},"bin":{"agentmind":"dist/cli/src/index.js","context-memory":"dist/cli/src/index.js"},"workspaces":["packages/*","apps/*","cli"],"scripts":{"build":"rm -rf dist && npx tsc","test":"vitest run","test:mvp":"node test-mvp.mjs","dashboard":"node ./dist/apps/dashboard/src/server.js","cli":"node ./dist/cli/src/index.js"},"keywords":["memory","vector","ai","context","rag","pgvector"],"license":"MIT","engines":{"node":">=22.0.0"},"devDependencies":{"@types/node":"^22.0.0","@types/pg":"^8.23.1","typescript":"^5.5.0","vitest":"^1.6.0","zod":"^3.23.0"},"dependencies":{"pg":"^8.23.0"},"gitHead":"851627a5aadcb819ca5490ba31cd096bf48a8899","_id":"@bip-krishna/agentmind@0.1.2","_nodeVersion":"26.8.1","_npmVersion":"11.19.0","dist":{"integrity":"sha512-xG7/A2z+y+x5vVRvzqiR+hVGsYYRUXXLeMkhqFtgGKORXNHBiGwe9m1NODWjShyCbdgKCzsA6Qo5m7QEzRfKVQ==","shasum":"7cdaedc4f421bbe84d0e8303dacf0a8d1bdc5ac0","tarball":"https://registry.npmjs.org/@bip-krishna/agentmind/-/agentmind-0.1.2.tgz","fileCount":180,"unpackedSize":523704,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCxcyi5s2YMt3T+/uIUJUGGjKQ7MQr2C1Jg5QLQJDrfxQIgU7fA3n9v+ppA1k/6rRid5I7qQFj+prclil9dLMYOgQs="}]},"_npmUser":{"name":"bip-krishna","email":"krishnakumar789612@gmail.com"},"directories":{},"maintainers":[{"name":"bip-krishna","email":"krishnakumar789612@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agentmind_0.1.2_1788782898351_0.1792249698431747"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-07T11:44:03.381Z","modified":"2026-09-07T12:08:18.658Z","0.1.0":"2026-09-07T11:44:03.662Z","0.1.1":"2026-09-07T11:45:25.776Z","0.1.2":"2026-09-07T12:08:18.495Z"},"license":"MIT","keywords":["memory","vector","ai","context","rag","pgvector"],"description":"Persistent, project-scoped context layer for AI applications","maintainers":[{"name":"bip-krishna","email":"krishnakumar789612@gmail.com"}],"readme":"# agentmind\n\n**Persistent, project-scoped context layer for AI applications.**\n\n> A persistent, project-scoped context layer — not a vector DB wrapper.\n> Formerly `context-memory` — now `agentmind`. The `context-memory` CLI/bin remains as an alias.\n\n```ts\nmemory.remember()\nmemory.search()\nmemory.context()\nmemory.forget()\n```\n\n## Install\n\n```bash\nnpm install agentmind\n# legacy alias still works:\nnpm install context-memory\n```\n\n## Quick start\n\n```ts\nimport { Memory } from \"agentmind\";\nimport { SqliteMemoryStore } from \"agentmind/storage\";\nimport { LocalEmbeddingProvider } from \"agentmind/embeddings\";\n\nconst store = new SqliteMemoryStore({ path: \"./.agentmind/memory.db\" });\nconst memory = await Memory.create({\n  project: \"research-mesh\",\n  store,\n  embeddingProvider: new LocalEmbeddingProvider(), // or OpenAIEmbeddingProvider\n});\n\nawait memory.remember({\n  type: \"decision\",\n  content: \"We decided to use PostgreSQL with pgvector.\",\n  importance: 0.9,\n});\n\nconst ctx = await memory.context({ query: \"What database did we decide to use?\" });\nconsole.log(ctx.text);\n// Relevant project memory (research-mesh):\n// - We decided to use PostgreSQL with pgvector.\n```\n\n## Architecture\n\n```\n              agentmind\n                    │\n     ┌──────────────┼──────────────┐\n     ▼              ▼              ▼\nMemory Engine  Embedding Engine  Dashboard\n     │              │              │\n     ▼              ▼              ▼\n Retriever      OpenAI/etc.      HTTP API (4317)\n     │\n     ▼\n Store Adapter\n     │\n ┌───┴─────────────────┐\n ▼                     ▼\nSQLite (node:sqlite)  Postgres + pgvector\nInMemory (tests)       (pg Pool, hnsw)\n```\n\n**Store is the abstraction** — `MemoryStore` interface: `SqliteMemoryStore` and `PostgresMemoryStore` interchangeable.\n\n## Features\n\n### Core (Phases 1-4)\n- **Project isolation** — `WHERE project_id=?` enforced before vector search (0 leakage, tested 50 queries)\n- **Manual memory creation** — `type`, `importance`, `confidence`, `metadata`, `sourceId`\n- **Embedding abstraction** — `EmbeddingProvider` (`OpenAIEmbeddingProvider`, `LocalEmbeddingProvider` deterministic hash 256d)\n- **Decoupled embeddings** — `embeddings` table separate, re-embeddable per model\n- **Hybrid retrieval** — `semantic×0.6 + keyword×0.2 + importance×0.1 + recency×0.1` (configurable `HybridRanker`)\n- **Token budgeting** — `maxTokens` enforced greedily\n- **Deduplication** — Jaccard >0.85 updates existing\n- **Conflict resolution** — triggers `switched to/migrated to/now using` + embedding similarity >0.82 supersedes old\n\n### Intelligence (Phase 5)\n- **Extraction** — `HeuristicExtractor` + `LLMExtractor` with `EXTRACTION_PROMPT`\n- **Consolidation** — `Consolidator` clusters via cosine >0.82, creates `summary` memories, archives sources\n- **Lifecycle** — `extracted -> candidate -> validated -> stored -> retrieved -> updated -> archived`\n\n### Context (Phase 6)\n- `memory.context({ query, maxTokens, limit, types }) -> { text, tokenCount, memories, sources, retrieval }`\n- Retrieval logging to `retrieval_events`\n\n### Production (Phase 9)\n- **SQLite** via `node:sqlite` `DatabaseSync` (Node 22+, zero native deps) + `InMemoryStore`\n- **Postgres + pgvector** — `PostgresMemoryStore` (`pg` Pool, `CREATE EXTENSION vector`, `vec vector(1536)`, `hnsw` index, `vec <=> $1` native search)\n- **Migrations** — `packages/storage/src/migrations.ts` versioned, `schema_migrations`\n- **Config** — `resolveStorageConfig()` auto-detects `DATABASE_URL` else `AGENTMIND_DB`/`CTX_MEMORY_DB` else `.agentmind/memory.db`\n- **Security** — DB-level `project_id` filter, no cross-project leakage\n- **Privacy** — `forget(id)` deletes embedding, `forgetProject()`, `export()`, `storeSensitiveData=false`\n\n### Observability & Policy\n```ts\nmemory.on(\"memory.created\", m => ...)\nmemory.on(\"retrieval.completed\", e => ...)\n\nconst memory = await Memory.create({\n  project: \"x\",\n  policy: {\n    autoExtract: true,\n    minimumImportance: 0.65,\n    maxMemoriesPerProject: 10000,\n    storeSensitiveData: false,\n    shouldRemember: (m) => !m.content.includes(\"greeting\"),\n  }\n});\n```\n\n### Integrations (Phase 10)\n```ts\nimport { withMemory, createOpenAICaller } from \"agentmind/integrations\";\nimport OpenAI from \"openai\";\nconst openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });\n\nconst { response } = await withMemory({\n  memory,\n  messages: [{ role: \"user\", content: \"What's our DB?\" }],\n  callLLM: createOpenAICaller(openai, \"gpt-4o\"),\n});\n```\nAdapters: `withMemory` (OpenAI), `withAnthropicMemory`, `withMemoryAISDK` (Vercel), `withLangChainMemory`.\n\n### Dashboard `npx agentmind dashboard`\n\n```\nhttp://localhost:4317\n├── Overview (total/active/archived/byType)\n├── Memories (search, filter, detail with embedding preview)\n├── Context Inspector (query -> vector+keyword -> ranking -> final context)\n├── Retrieval Logs\n└── Consolidation\n```\n\n**API:** `GET /api/projects`, `POST /api/search`, `POST /api/context`, `POST /api/remember`, `GET /api/retrievals/:id`, etc.\n\n### CLI\n```bash\nnpx agentmind init --project research-mesh\nnpx agentmind project list\nnpx agentmind memory search --project research-mesh --query \"database\"\nnpx agentmind memory consolidate --project research-mesh\nnpx agentmind ingest --project research-mesh --content \"We use Postgres\"\nnpx agentmind export --project research-mesh\nnpx agentmind dashboard --port 4317\n# legacy alias still works:\nnpx context-memory dashboard\n```\n\n## Evaluation\n\n```bash\nnpm test          # vitest — 13 tests\nnpm run test:mvp  # mvp harness\n```\n\n## Packaging\n\n```json\n// package.json exports\n\".\": \"./dist/packages/core/src/index.js\",\n\"./storage\": \"./dist/packages/storage/src/index.js\",\n\"./embeddings\": \"./dist/packages/embeddings/src/index.js\",\n\"./integrations\": \"./dist/packages/integrations/src/index.js\",\n\"./retrieval\": \"./dist/packages/retrieval/src/index.js\"\n```\n\nModular: `@agentmind/core`, `@agentmind/storage`, etc. Umbrella `agentmind` installs defaults. Legacy `@context-memory/*` remains as alias via bin.\n","readmeFilename":"README.md"}