{"_id":"@caleblawson/opensearch","name":"@caleblawson/opensearch","dist-tags":{"latest":"0.10.3"},"versions":{"0.10.3":{"name":"@caleblawson/opensearch","version":"0.10.3","description":"OpenSearch vector store provider for Mastra","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"dependencies":{"@opensearch-project/opensearch":"^3.5.1"},"devDependencies":{"@microsoft/api-extractor":"^7.52.8","@types/node":"^20.19.0","eslint":"^9.28.0","tsup":"^8.5.0","typescript":"^5.8.3","vitest":"^3.2.3","@internal/lint":"0.0.13","@mastra/core":"npm:@caleblawson/core@0.10.7-alpha.0"},"peerDependencies":{"@mastra/core":">=0.10.4-0 <0.11.0"},"scripts":{"build":"tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting","build:watch":"pnpm build --watch","pretest":"docker compose up -d && (for i in $(seq 1 30); do curl -s http://localhost:9200/_cluster/health | grep -q '\"status\"' && break || (sleep 1; [ $i -eq 30 ] && exit 1); done)","test":"vitest run","posttest":"docker compose down -v","pretest:watch":"docker compose up -d","test:watch":"vitest watch","posttest:watch":"docker compose down -v","lint":"eslint ."},"gitHead":"c31e90130a5c9765c23f688ecea70adc6164543d","_id":"@caleblawson/opensearch@0.10.3","_integrity":"sha512-YxHG0fqjnldiVC1mbuF2sWf6AS/pxb3zvDW0L4ijVsQxRW1K/bomr5nENHD/6KQklY90T/lFSLkJr6KEkOU1pA==","_resolved":"C:\\Users\\caleb\\AppData\\Local\\Temp\\6f180730a0c9eb60ae60c449926b033b\\caleblawson-opensearch-0.10.3.tgz","_from":"file:caleblawson-opensearch-0.10.3.tgz","_nodeVersion":"21.2.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-YxHG0fqjnldiVC1mbuF2sWf6AS/pxb3zvDW0L4ijVsQxRW1K/bomr5nENHD/6KQklY90T/lFSLkJr6KEkOU1pA==","shasum":"6c69f20cd0da60f5173a24d1490c7f7a4547047c","tarball":"https://registry.npmjs.org/@caleblawson/opensearch/-/opensearch-0.10.3.tgz","fileCount":21,"unpackedSize":188210,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG6DBHFVxJdWexwqLVavzuN6N+jd/qgzM8BdSKM4SHJ2AiALy9ejfVNc7JV8K+9dbWf2aGjt7Vsz5+371C7myp8iZg=="}]},"_npmUser":{"name":"caleblawson","email":"caleb.lawson@dynapt.com","actor":{"name":"caleblawson","email":"caleb.lawson@dynapt.com","type":"user"}},"directories":{},"maintainers":[{"name":"caleblawson","email":"caleb.lawson@dynapt.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opensearch_0.10.3_1750619821194_0.30993231423703693"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-22T19:17:01.090Z","0.10.3":"2025-06-22T19:17:01.390Z","modified":"2025-06-22T19:17:01.656Z"},"maintainers":[{"name":"caleblawson","email":"caleb.lawson@dynapt.com"}],"description":"OpenSearch vector store provider for Mastra","readme":"# @mastra/opensearch\r\n\r\nVector store implementation for OpenSearch using the official @opensearch-project/opensearch SDK\r\n\r\n## Installation\r\n\r\n```bash\r\npnpm add @mastra/opensearch\r\n```\r\n\r\n## Usage\r\n\r\n```typescript\r\nimport { OpenSearchVector } from '@mastra/opensearch';\r\n\r\nconst vectorStore = new OpenSearchVector('http://localhost:9200');\r\n\r\n// Create an index\r\nawait vectorStore.createIndex({ indexName: 'my-collection', dimension: 1536, metric: 'cosine' });\r\n\r\n// Add vectors with documents\r\nconst vectors = [[0.1, 0.2, ...], [0.3, 0.4, ...]];\r\nconst metadata = [{ text: 'doc1' }, { text: 'doc2' }];\r\nconst ids = await vectorStore.upsert({ indexName: 'my-collection', vectors, metadata });\r\n\r\n// Query vectors with document filtering\r\nconst results = await vectorStore.query({\r\n  indexName: 'my-collection',\r\n  queryVector: [0.1, 0.2, ...],\r\n  topK: 10, // topK\r\n  filter: { text: { $eq: 'doc1' } }, // metadata filter\r\n  includeVector: false, // includeVector\r\n});\r\n```\r\n\r\n## Configuration\r\n\r\nRequired:\r\n\r\n- `url`: URL of your OpenSearch instance\r\n\r\n## Features\r\n\r\n- Vector similarity search with Cosine, Euclidean, and Dot Product metrics\r\n- Metadata filtering\r\n- Optional vector inclusion in query results\r\n- Automatic UUID generation for vectors\r\n- Built on top of @opensearch-project/opensearch SDK\r\n\r\n## Distance Metrics\r\n\r\nThe following distance metrics are supported:\r\n\r\n- `cosine` → Cosine distance\r\n- `euclidean` → Euclidean distance\r\n- `dotproduct` → Dot product\r\n\r\n## Methods\r\n\r\n- `createIndex({ indexName, dimension, metric? })`: Create a new collection\r\n- `upsert({ indexName, vectors, metadata?, ids? })`: Add or update vectors\r\n- `query({ indexName, queryVector, topK?, filter?, includeVector? })`: Search for similar vectors\r\n- `listIndexes()`: List all collections\r\n- `describeIndex(indexName)`: Get collection statistics\r\n- `deleteIndex(indexName)`: Delete a collection\r\n\r\n## Related Links\r\n\r\n- [OpenSearch Documentation](https://opensearch.org/docs/latest/about/)\r\n- [OpenSearch REST API Reference](https://opensearch.org/docs/latest/api-reference/)\r\n","readmeFilename":"README.md","_rev":"1-2253c5731ebd3090964850749e75fb5c"}