feat(ts-sdk): add AWS Neptune Analytics vector store (#5797)

Co-authored-by: kartik-mem0 <kartik.labhshetwar@mem0.ai>
This commit is contained in:
Rod Boev
2026-07-10 10:21:05 -04:00
committed by GitHub
parent ba9054e0c8
commit 33a0ed7559
12 changed files with 2886 additions and 33 deletions
+1
View File
@@ -109,6 +109,7 @@
},
"peerDependencies": {
"@anthropic-ai/sdk": "^0.40.1",
"@aws-sdk/client-neptune-graph": "3.966.0",
"@aws-sdk/client-s3vectors": "3.967.0",
"@mochow/mochow-sdk-node": "^2.1.5",
"@azure/identity": "^4.0.0",
+379 -20
View File
@@ -39,6 +39,9 @@ importers:
'@aws-sdk/client-bedrock-runtime':
specifier: 3.967.0
version: 3.967.0
'@aws-sdk/client-neptune-graph':
specifier: 3.966.0
version: 3.966.0
'@aws-sdk/client-s3vectors':
specifier: 3.967.0
version: 3.967.0
@@ -113,7 +116,7 @@ importers:
version: 4.5.0
cohere-ai:
specifier: ^7.17.0 || ^8.0.0
version: 8.0.0(@aws-crypto/sha256-js@5.2.0)(@smithy/protocol-http@5.5.2)(@smithy/signature-v4@5.6.2)
version: 8.0.0(@aws-crypto/sha256-js@5.2.0)(@smithy/protocol-http@5.5.2)(@smithy/signature-v4@5.6.3)
compromise:
specifier: ^14.0.0
version: 14.15.1
@@ -254,6 +257,10 @@ packages:
resolution: {integrity: sha512-pFID1Lb/54u413HTpnqQYLJjX+voEKLZyqlpdVHDbxcw8MfalmmSg5PR/uJWGO3kku0LkB+H/Ca5ftL11PTL9w==}
engines: {node: '>=18.0.0'}
'@aws-sdk/client-neptune-graph@3.966.0':
resolution: {integrity: sha512-O10O8/hKrZiSGxAQUG0T1UcdIRfE9szG7toipoUoYsbI6BOlov8U6zWz43ao+TfUCeI0luNcjevGhiqt04lB/w==}
engines: {node: '>=18.0.0'}
'@aws-sdk/client-s3@3.1083.0':
resolution: {integrity: sha512-3YOicHy6qjexsy4rHk5jPvtLgg6Ho1u+ycOWtJcVTAIMlMq32MRtnhllAyFSezhAXeBnnLLtKtAGXim7vV8oog==}
engines: {node: '>=20.0.0'}
@@ -262,10 +269,18 @@ packages:
resolution: {integrity: sha512-DDmq8Jm/4IwliVEYVUbTub0RhcYJXVexRklhsIOdIWM42zf4ZMWPeeNvHJBSI+DMNbpqRN57TLCfH5tgiPdyVQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/client-sso@3.966.0':
resolution: {integrity: sha512-hQZDQgqRJclALDo9wK+bb5O+VpO8JcjImp52w9KPSz9XveNRgE9AYfklRJd8qT2Bwhxe6IbnqYEino2wqUMA1w==}
engines: {node: '>=18.0.0'}
'@aws-sdk/client-sso@3.967.0':
resolution: {integrity: sha512-7RgUwHcRMJtWme6kCHGUVT+Rn9GmNH+FHm34N9UgMXzUqQlzFMweE7T5E9O8nv3wIp7xFNB20ADaCw9Xdnox1Q==}
engines: {node: '>=18.0.0'}
'@aws-sdk/core@3.966.0':
resolution: {integrity: sha512-QaRVBHD1prdrFXIeFAY/1w4b4S0EFyo/ytzU+rCklEjMRT7DKGXGoHXTWLGz+HD7ovlS5u+9cf8a/LeSOEMzww==}
engines: {node: '>=18.0.0'}
'@aws-sdk/core@3.967.0':
resolution: {integrity: sha512-sJmuP7GrVmlbO6DpXkuf9Mbn6jGNNvy6PLawvaxVF150c8bpNk3w39rerRls6q1dot1dBFV2D29hBXMY1agNMg==}
engines: {node: '>=18.0.0'}
@@ -274,6 +289,10 @@ packages:
resolution: {integrity: sha512-8qh/6EYb7hl/ZwVfQufhbMEZs1gQIc7GbdrIf4eprQJ7cv042+74nE6l3YDfyWNzb9iPXb8fRyYSHkNIk5eE6Q==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-env@3.966.0':
resolution: {integrity: sha512-sxVKc9PY0SH7jgN/8WxhbKQ7MWDIgaJv1AoAKJkhJ+GM5r09G5Vb2Vl8ALYpsy+r8b+iYpq5dGJj8k2VqxoQMg==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-env@3.967.0':
resolution: {integrity: sha512-+XWw0+f/txeMbEVRtTFZhgSw1ymH1ffaVKkdMBSnw48rfSohJElKmitCqdihagRTZpzh7m8qI6tIQ5t3OUqugw==}
engines: {node: '>=18.0.0'}
@@ -282,6 +301,10 @@ packages:
resolution: {integrity: sha512-1RfJaF7SW1TOnvNGU7kaYjwUf5H3sfm+synGH1bHhRlqcnxCt3szebH3dmKEyY4tuGcbQ6ffzUT89cRitBV8OQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-http@3.966.0':
resolution: {integrity: sha512-VTJDP1jOibVtc5pn5TNE12rhqOO/n10IjkoJi8fFp9BMfmh3iqo70Ppvphz/Pe/R9LcK5Z3h0Z4EB9IXDR6kag==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-http@3.967.0':
resolution: {integrity: sha512-0/GIAEv5pY5htg6IBMuYccBgzz3oS2DqHjHi396ziTrwlhbrCNX96AbNhQhzAx3LBZUk13sPfeapjyQ7G57Ekg==}
engines: {node: '>=18.0.0'}
@@ -290,6 +313,10 @@ packages:
resolution: {integrity: sha512-sRCkpTiFnCdQvuaRVjQ6SVoHu6i7RUpurVo1c4F81HWhPvUJ7Wdp5MNtSdX1O29CNXc8em3O5m52hCjVtAD9SA==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-ini@3.966.0':
resolution: {integrity: sha512-4oQKkYMCUx0mffKuH8LQag1M4Fo5daKVmsLAnjrIqKh91xmCrcWlAFNMgeEYvI1Yy125XeNSaFMfir6oNc2ODA==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-ini@3.967.0':
resolution: {integrity: sha512-U8dMpaM6Qf6+2Qvp1uG6OcWv1RlrZW7tQkpmzEVWH8HZTGrVHIXXju64NMtIOr7yOnNwd0CKcytuD1QG+phCwQ==}
engines: {node: '>=18.0.0'}
@@ -298,6 +325,10 @@ packages:
resolution: {integrity: sha512-6d8H6ZAh3ZPKZ6fe1nG2OWeZEZPtt9ravoD1dezPdPtsSkJRoxGAnFSHwKT3E/Te6fHE30zRzjV6TD12rvF6yQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-login@3.966.0':
resolution: {integrity: sha512-wD1KlqLyh23Xfns/ZAPxebwXixoJJCuDbeJHFrLDpP4D4h3vA2S8nSFgBSFR15q9FhgRfHleClycf6g5K4Ww6w==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-login@3.967.0':
resolution: {integrity: sha512-kbvZsZL6CBlfnb71zuJdJmBUFZN5utNrcziZr/DZ2olEOkA9vlmizE8i9BUIbmS7ptjgvRnmcY1A966yfhiblw==}
engines: {node: '>=18.0.0'}
@@ -306,6 +337,10 @@ packages:
resolution: {integrity: sha512-GREWRrMj0XnNKMaVa/Mauoaui26qBEHu71WWqXbwZOu/jFQOnPZjTf7u0KtGKC8VGa6VUs9kDWGgocrKNLS9vw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-node@3.966.0':
resolution: {integrity: sha512-7QCOERGddMw7QbjE+LSAFgwOBpPv4px2ty0GCK7ZiPJGsni2EYmM4TtYnQb9u1WNHmHqIPWMbZR0pKDbyRyHlQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-node@3.967.0':
resolution: {integrity: sha512-WuNbHs9rfKKSVok4+OBrZf0AHfzDgFYYMxN2G/q6ZfUmY4QmiPyxV5HkNFh1rqDxS9VV6kAZPo0EBmry10idSg==}
engines: {node: '>=18.0.0'}
@@ -314,6 +349,10 @@ packages:
resolution: {integrity: sha512-f+qjRXZpz7sgzbc4QB+6nLKfyKFgRRXzWdXbsKPv/VhVRyHsDyq4yBWC/B75BAJpFIcUeI2XR/3gdWJ677zB4A==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-process@3.966.0':
resolution: {integrity: sha512-q5kCo+xHXisNbbPAh/DiCd+LZX4wdby77t7GLk0b2U0/mrel4lgy6o79CApe+0emakpOS1nPZS7voXA7vGPz4w==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-process@3.967.0':
resolution: {integrity: sha512-sNCY5JDV0whsfsZ6c2+6eUwH33H7UhKbqvCPbEYlIIa8wkGjCtCyFI3zZIJHVcMKJJ3117vSUFHEkNA7g+8rtw==}
engines: {node: '>=18.0.0'}
@@ -322,6 +361,10 @@ packages:
resolution: {integrity: sha512-TiVQhuU0pbhIZAUZacbPHMyzrIdiH+lnx+PMY/Pu/b93dJrq3wdZwzUJ0TPpvNxaqbHsxJvQZW3/h/beLiKq7Q==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-sso@3.966.0':
resolution: {integrity: sha512-Rv5aEfbpqsQZzxpX2x+FbSyVFOE3Dngome+exNA8jGzc00rrMZEUnm3J3yAsLp/I2l7wnTfI0r2zMe+T9/nZAQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-sso@3.967.0':
resolution: {integrity: sha512-0K6kITKNytFjk1UYabYUsTThgU6TQkyW6Wmt8S5zd1A/up7NSQGpp58Rpg9GIf4amQDQwb+p9FGG7emmV8FEeA==}
engines: {node: '>=18.0.0'}
@@ -330,6 +373,10 @@ packages:
resolution: {integrity: sha512-3foTZUJ4821Ij60X7K3NJroygiZLnbBmarN+T//O2cjkISan90zElN3NBmgSlDrTQ7Gs6z/yO8V7h60QNcDZHQ==}
engines: {node: '>=20.0.0'}
'@aws-sdk/credential-provider-web-identity@3.966.0':
resolution: {integrity: sha512-Yv1lc9iic9xg3ywMmIAeXN1YwuvfcClLVdiF2y71LqUgIOupW8B8my84XJr6pmOQuKzZa++c2znNhC9lGsbKyw==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-web-identity@3.967.0':
resolution: {integrity: sha512-Vkr7S2ec7q/v8i/MzkHcBEdqqfWz3lyb8FDjb+NjslEwdxC3f6XwADRZzWwV1pChfx6SbsvJXKfkcF/pKAelhA==}
engines: {node: '>=18.0.0'}
@@ -362,6 +409,10 @@ packages:
resolution: {integrity: sha512-k8JJwYXVYlOOjWnPZDThQS1xDFJgi5Dokt73qFlDtrZAbdcint5aIdjB9XgJAAQVP5OoqcefQmh1FYXiPpvsvw==}
engines: {node: '>=20.0.0'}
'@aws-sdk/middleware-user-agent@3.966.0':
resolution: {integrity: sha512-MvGoy0vhMluVpSB5GaGJbYLqwbZfZjwEZhneDHdPhgCgQqmCtugnYIIjpUw7kKqWGsmaMQmNEgSFf1zYYmwOyg==}
engines: {node: '>=18.0.0'}
'@aws-sdk/middleware-user-agent@3.967.0':
resolution: {integrity: sha512-2qzJzZj5u+cZiG7kz3XJPaTH4ssUY/aet1kwJsUTFKrWeHUf7mZZkDFfkXP5cOffgiOyR5ZkrmJoLKAde9hshg==}
engines: {node: '>=18.0.0'}
@@ -371,6 +422,10 @@ packages:
engines: {node: '>= 14.0.0'}
deprecated: Please update your @aws-sdk client to a more recent version, such as https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.982.0, if using browser-based WebSocket bidirectional streaming.
'@aws-sdk/nested-clients@3.966.0':
resolution: {integrity: sha512-FRzAWwLNoKiaEWbYhnpnfartIdOgiaBLnPcd3uG1Io+vvxQUeRPhQIy4EfKnT3AuA+g7gzSCjMG2JKoJOplDtQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/nested-clients@3.967.0':
resolution: {integrity: sha512-PYa7V8w0gaNux6Sz/Z7zrHmPloEE+EKpRxQIOG/D0askTr5Yd4oO2KGgcInf65uHK3f0Z9U4CTUGHZvQvABypA==}
engines: {node: '>=18.0.0'}
@@ -391,6 +446,10 @@ packages:
resolution: {integrity: sha512-s0woKnxuHrExLc5L2ArIH5BMkbonHPtt+5hSBM8oknp9M6QTuUmmAmJ2E0EdzCGONrO+8+ADPqvv6UX0nNcc7A==}
engines: {node: '>=20.0.0'}
'@aws-sdk/token-providers@3.966.0':
resolution: {integrity: sha512-8k5cBTicTGYJHhKaweO4gL4fud1KDnLS5fByT6/Xbiu59AxYM4E/h3ds+3jxDMnniCE3gIWpEnyfM9khtmw2lA==}
engines: {node: '>=18.0.0'}
'@aws-sdk/token-providers@3.967.0':
resolution: {integrity: sha512-Qnd/nJ0CgeUa7zQczgmdQm0vYUF7pD1G0C+dR1T7huHQHRIsgCWIsCV9wNKzOFluqtcr6YAeuTwvY0+l8XWxnA==}
engines: {node: '>=18.0.0'}
@@ -422,6 +481,15 @@ packages:
'@aws-sdk/util-user-agent-browser@3.965.0':
resolution: {integrity: sha512-Xiza/zMntQGpkd2dETQeAK8So1pg5+STTzpcdGWxj5q0jGO5ayjqT/q1Q7BrsX5KIr6PvRkl9/V7lLCv04wGjQ==}
'@aws-sdk/util-user-agent-node@3.966.0':
resolution: {integrity: sha512-vPPe8V0GLj+jVS5EqFz2NUBgWH35favqxliUOvhp8xBdNRkEjiZm5TqitVtFlxS4RrLY3HOndrWbrP5ejbwl1Q==}
engines: {node: '>=18.0.0'}
peerDependencies:
aws-crt: '>=1.0.0'
peerDependenciesMeta:
aws-crt:
optional: true
'@aws-sdk/util-user-agent-node@3.967.0':
resolution: {integrity: sha512-yUz6pCGxyG4+QaDg0dkdIBphjQp8A9rrbZa/+U3RJgRrW47hy64clFQUROzj5Poy1Ur8ICVXEUpBsSqRuYEU2g==}
engines: {node: '>=18.0.0'}
@@ -1658,6 +1726,10 @@ packages:
resolution: {integrity: sha512-N5CpfaL+/LPQU9PFdOT55ayUo5T0QypG4Almzd1/efJvoDypuT1shkgJk1+hhg/02scYluW6Q2JGnSHIPwCEGQ==}
engines: {node: '>=18.0.0'}
'@smithy/util-waiter@4.5.7':
resolution: {integrity: sha512-9NFs7MyxFBEQenFHrveJK/rirLSnYAgCMfAqKvvA+UlyzJCKFc51TYKbMUv5rGsM4bQ419Fw6KKgHc53QyJ30w==}
engines: {node: '>=18.0.0'}
'@so-ric/colorspace@1.1.6':
resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==}
@@ -4436,7 +4508,7 @@ snapshots:
'@aws-crypto/sha256-js': 5.2.0
'@aws-crypto/supports-web-crypto': 5.2.0
'@aws-crypto/util': 5.2.0
'@aws-sdk/types': 3.973.13
'@aws-sdk/types': 3.974.0
'@aws-sdk/util-locate-window': 3.965.8
'@smithy/util-utf8': 2.3.0
tslib: 2.8.1
@@ -4444,7 +4516,7 @@ snapshots:
'@aws-crypto/sha256-js@5.2.0':
dependencies:
'@aws-crypto/util': 5.2.0
'@aws-sdk/types': 3.973.13
'@aws-sdk/types': 3.974.0
tslib: 2.8.1
'@aws-crypto/supports-web-crypto@5.2.0':
@@ -4517,6 +4589,52 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/client-neptune-graph@3.966.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.966.0
'@aws-sdk/credential-provider-node': 3.966.0
'@aws-sdk/middleware-host-header': 3.965.0
'@aws-sdk/middleware-logger': 3.965.0
'@aws-sdk/middleware-recursion-detection': 3.965.0
'@aws-sdk/middleware-user-agent': 3.966.0
'@aws-sdk/region-config-resolver': 3.965.0
'@aws-sdk/types': 3.965.0
'@aws-sdk/util-endpoints': 3.965.0
'@aws-sdk/util-user-agent-browser': 3.965.0
'@aws-sdk/util-user-agent-node': 3.966.0
'@smithy/config-resolver': 4.6.2
'@smithy/core': 3.29.2
'@smithy/fetch-http-handler': 5.6.4
'@smithy/hash-node': 4.4.2
'@smithy/invalid-dependency': 4.4.2
'@smithy/middleware-content-length': 4.4.2
'@smithy/middleware-endpoint': 4.6.2
'@smithy/middleware-retry': 4.7.2
'@smithy/middleware-serde': 4.4.2
'@smithy/middleware-stack': 4.4.2
'@smithy/node-config-provider': 4.5.2
'@smithy/node-http-handler': 4.9.4
'@smithy/protocol-http': 5.5.2
'@smithy/smithy-client': 4.14.2
'@smithy/types': 4.16.0
'@smithy/url-parser': 4.4.2
'@smithy/util-base64': 4.5.2
'@smithy/util-body-length-browser': 4.4.2
'@smithy/util-body-length-node': 4.4.2
'@smithy/util-defaults-mode-browser': 4.5.2
'@smithy/util-defaults-mode-node': 4.4.2
'@smithy/util-endpoints': 3.6.2
'@smithy/util-middleware': 4.4.2
'@smithy/util-retry': 4.5.2
'@smithy/util-stream': 4.7.2
'@smithy/util-utf8': 4.4.2
'@smithy/util-waiter': 4.5.7
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/client-s3@3.1083.0':
dependencies:
'@aws-sdk/checksums': 3.1000.16
@@ -4575,6 +4693,49 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/client-sso@3.966.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.966.0
'@aws-sdk/middleware-host-header': 3.965.0
'@aws-sdk/middleware-logger': 3.965.0
'@aws-sdk/middleware-recursion-detection': 3.965.0
'@aws-sdk/middleware-user-agent': 3.966.0
'@aws-sdk/region-config-resolver': 3.965.0
'@aws-sdk/types': 3.965.0
'@aws-sdk/util-endpoints': 3.965.0
'@aws-sdk/util-user-agent-browser': 3.965.0
'@aws-sdk/util-user-agent-node': 3.966.0
'@smithy/config-resolver': 4.6.2
'@smithy/core': 3.29.2
'@smithy/fetch-http-handler': 5.6.4
'@smithy/hash-node': 4.4.2
'@smithy/invalid-dependency': 4.4.2
'@smithy/middleware-content-length': 4.4.2
'@smithy/middleware-endpoint': 4.6.2
'@smithy/middleware-retry': 4.7.2
'@smithy/middleware-serde': 4.4.2
'@smithy/middleware-stack': 4.4.2
'@smithy/node-config-provider': 4.5.2
'@smithy/node-http-handler': 4.9.4
'@smithy/protocol-http': 5.5.2
'@smithy/smithy-client': 4.14.2
'@smithy/types': 4.16.0
'@smithy/url-parser': 4.4.2
'@smithy/util-base64': 4.5.2
'@smithy/util-body-length-browser': 4.4.2
'@smithy/util-body-length-node': 4.4.2
'@smithy/util-defaults-mode-browser': 4.5.2
'@smithy/util-defaults-mode-node': 4.4.2
'@smithy/util-endpoints': 3.6.2
'@smithy/util-middleware': 4.4.2
'@smithy/util-retry': 4.5.2
'@smithy/util-utf8': 4.4.2
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/client-sso@3.967.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
@@ -4618,6 +4779,22 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/core@3.966.0':
dependencies:
'@aws-sdk/types': 3.965.0
'@aws-sdk/xml-builder': 3.965.0
'@smithy/core': 3.29.2
'@smithy/node-config-provider': 4.5.2
'@smithy/property-provider': 4.4.2
'@smithy/protocol-http': 5.5.2
'@smithy/signature-v4': 5.6.3
'@smithy/smithy-client': 4.14.2
'@smithy/types': 4.16.0
'@smithy/util-base64': 4.5.2
'@smithy/util-middleware': 4.4.2
'@smithy/util-utf8': 4.4.2
tslib: 2.8.1
'@aws-sdk/core@3.967.0':
dependencies:
'@aws-sdk/types': 3.965.0
@@ -4645,6 +4822,14 @@ snapshots:
bowser: 2.14.1
tslib: 2.8.1
'@aws-sdk/credential-provider-env@3.966.0':
dependencies:
'@aws-sdk/core': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/property-provider': 4.4.2
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-env@3.967.0':
dependencies:
'@aws-sdk/core': 3.967.0
@@ -4661,6 +4846,19 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-http@3.966.0':
dependencies:
'@aws-sdk/core': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/fetch-http-handler': 5.6.4
'@smithy/node-http-handler': 4.9.4
'@smithy/property-provider': 4.4.2
'@smithy/protocol-http': 5.5.2
'@smithy/smithy-client': 4.14.2
'@smithy/types': 4.16.0
'@smithy/util-stream': 4.7.2
tslib: 2.8.1
'@aws-sdk/credential-provider-http@3.967.0':
dependencies:
'@aws-sdk/core': 3.967.0
@@ -4684,6 +4882,25 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-ini@3.966.0':
dependencies:
'@aws-sdk/core': 3.966.0
'@aws-sdk/credential-provider-env': 3.966.0
'@aws-sdk/credential-provider-http': 3.966.0
'@aws-sdk/credential-provider-login': 3.966.0
'@aws-sdk/credential-provider-process': 3.966.0
'@aws-sdk/credential-provider-sso': 3.966.0
'@aws-sdk/credential-provider-web-identity': 3.966.0
'@aws-sdk/nested-clients': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/credential-provider-imds': 4.4.7
'@smithy/property-provider': 4.4.2
'@smithy/shared-ini-file-loader': 4.6.2
'@smithy/types': 4.16.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-ini@3.967.0':
dependencies:
'@aws-sdk/core': 3.967.0
@@ -4719,6 +4936,19 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-login@3.966.0':
dependencies:
'@aws-sdk/core': 3.966.0
'@aws-sdk/nested-clients': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/property-provider': 4.4.2
'@smithy/protocol-http': 5.5.2
'@smithy/shared-ini-file-loader': 4.6.2
'@smithy/types': 4.16.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-login@3.967.0':
dependencies:
'@aws-sdk/core': 3.967.0
@@ -4741,6 +4971,23 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-node@3.966.0':
dependencies:
'@aws-sdk/credential-provider-env': 3.966.0
'@aws-sdk/credential-provider-http': 3.966.0
'@aws-sdk/credential-provider-ini': 3.966.0
'@aws-sdk/credential-provider-process': 3.966.0
'@aws-sdk/credential-provider-sso': 3.966.0
'@aws-sdk/credential-provider-web-identity': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/credential-provider-imds': 4.4.7
'@smithy/property-provider': 4.4.2
'@smithy/shared-ini-file-loader': 4.6.2
'@smithy/types': 4.16.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-node@3.967.0':
dependencies:
'@aws-sdk/credential-provider-env': 3.967.0
@@ -4772,6 +5019,15 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-process@3.966.0':
dependencies:
'@aws-sdk/core': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/property-provider': 4.4.2
'@smithy/shared-ini-file-loader': 4.6.2
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-process@3.967.0':
dependencies:
'@aws-sdk/core': 3.967.0
@@ -4789,6 +5045,19 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-sso@3.966.0':
dependencies:
'@aws-sdk/client-sso': 3.966.0
'@aws-sdk/core': 3.966.0
'@aws-sdk/token-providers': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/property-provider': 4.4.2
'@smithy/shared-ini-file-loader': 4.6.2
'@smithy/types': 4.16.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-sso@3.967.0':
dependencies:
'@aws-sdk/client-sso': 3.967.0
@@ -4812,6 +5081,18 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/credential-provider-web-identity@3.966.0':
dependencies:
'@aws-sdk/core': 3.966.0
'@aws-sdk/nested-clients': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/property-provider': 4.4.2
'@smithy/shared-ini-file-loader': 4.6.2
'@smithy/types': 4.16.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-web-identity@3.967.0':
dependencies:
'@aws-sdk/core': 3.967.0
@@ -4851,13 +5132,13 @@ snapshots:
dependencies:
'@aws-sdk/types': 3.965.0
'@smithy/protocol-http': 5.5.2
'@smithy/types': 4.15.0
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/middleware-logger@3.965.0':
dependencies:
'@aws-sdk/types': 3.965.0
'@smithy/types': 4.15.0
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/middleware-recursion-detection@3.965.0':
@@ -4865,7 +5146,7 @@ snapshots:
'@aws-sdk/types': 3.965.0
'@aws/lambda-invoke-store': 0.2.4
'@smithy/protocol-http': 5.5.2
'@smithy/types': 4.15.0
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/middleware-sdk-s3@3.972.62':
@@ -4877,6 +5158,16 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/middleware-user-agent@3.966.0':
dependencies:
'@aws-sdk/core': 3.966.0
'@aws-sdk/types': 3.965.0
'@aws-sdk/util-endpoints': 3.965.0
'@smithy/core': 3.29.2
'@smithy/protocol-http': 5.5.2
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/middleware-user-agent@3.967.0':
dependencies:
'@aws-sdk/core': 3.967.0
@@ -4900,6 +5191,49 @@ snapshots:
'@smithy/util-hex-encoding': 4.4.6
tslib: 2.8.1
'@aws-sdk/nested-clients@3.966.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.966.0
'@aws-sdk/middleware-host-header': 3.965.0
'@aws-sdk/middleware-logger': 3.965.0
'@aws-sdk/middleware-recursion-detection': 3.965.0
'@aws-sdk/middleware-user-agent': 3.966.0
'@aws-sdk/region-config-resolver': 3.965.0
'@aws-sdk/types': 3.965.0
'@aws-sdk/util-endpoints': 3.965.0
'@aws-sdk/util-user-agent-browser': 3.965.0
'@aws-sdk/util-user-agent-node': 3.966.0
'@smithy/config-resolver': 4.6.2
'@smithy/core': 3.29.2
'@smithy/fetch-http-handler': 5.6.4
'@smithy/hash-node': 4.4.2
'@smithy/invalid-dependency': 4.4.2
'@smithy/middleware-content-length': 4.4.2
'@smithy/middleware-endpoint': 4.6.2
'@smithy/middleware-retry': 4.7.2
'@smithy/middleware-serde': 4.4.2
'@smithy/middleware-stack': 4.4.2
'@smithy/node-config-provider': 4.5.2
'@smithy/node-http-handler': 4.9.4
'@smithy/protocol-http': 5.5.2
'@smithy/smithy-client': 4.14.2
'@smithy/types': 4.16.0
'@smithy/url-parser': 4.4.2
'@smithy/util-base64': 4.5.2
'@smithy/util-body-length-browser': 4.4.2
'@smithy/util-body-length-node': 4.4.2
'@smithy/util-defaults-mode-browser': 4.5.2
'@smithy/util-defaults-mode-node': 4.4.2
'@smithy/util-endpoints': 3.6.2
'@smithy/util-middleware': 4.4.2
'@smithy/util-retry': 4.5.2
'@smithy/util-utf8': 4.4.2
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/nested-clients@3.967.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
@@ -4959,7 +5293,7 @@ snapshots:
'@aws-sdk/types': 3.965.0
'@smithy/config-resolver': 4.6.2
'@smithy/node-config-provider': 4.5.2
'@smithy/types': 4.15.0
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/signature-v4-multi-region@3.996.39':
@@ -4978,6 +5312,18 @@ snapshots:
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/token-providers@3.966.0':
dependencies:
'@aws-sdk/core': 3.966.0
'@aws-sdk/nested-clients': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/property-provider': 4.4.2
'@smithy/shared-ini-file-loader': 4.6.2
'@smithy/types': 4.16.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
'@aws-sdk/token-providers@3.967.0':
dependencies:
'@aws-sdk/core': 3.967.0
@@ -4992,7 +5338,7 @@ snapshots:
'@aws-sdk/types@3.965.0':
dependencies:
'@smithy/types': 4.15.0
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/types@3.973.13':
@@ -5008,7 +5354,7 @@ snapshots:
'@aws-sdk/util-endpoints@3.965.0':
dependencies:
'@aws-sdk/types': 3.965.0
'@smithy/types': 4.15.0
'@smithy/types': 4.16.0
'@smithy/url-parser': 4.4.2
'@smithy/util-endpoints': 3.6.2
tslib: 2.8.1
@@ -5027,10 +5373,18 @@ snapshots:
'@aws-sdk/util-user-agent-browser@3.965.0':
dependencies:
'@aws-sdk/types': 3.965.0
'@smithy/types': 4.15.0
'@smithy/types': 4.16.0
bowser: 2.14.1
tslib: 2.8.1
'@aws-sdk/util-user-agent-node@3.966.0':
dependencies:
'@aws-sdk/middleware-user-agent': 3.966.0
'@aws-sdk/types': 3.965.0
'@smithy/node-config-provider': 4.5.2
'@smithy/types': 4.16.0
tslib: 2.8.1
'@aws-sdk/util-user-agent-node@3.967.0':
dependencies:
'@aws-sdk/middleware-user-agent': 3.967.0
@@ -6171,12 +6525,12 @@ snapshots:
'@smithy/hash-node@4.4.2':
dependencies:
'@smithy/core': 3.26.0
'@smithy/core': 3.29.2
tslib: 2.8.1
'@smithy/invalid-dependency@4.4.2':
dependencies:
'@smithy/core': 3.26.0
'@smithy/core': 3.29.2
tslib: 2.8.1
'@smithy/is-array-buffer@2.2.0':
@@ -6190,7 +6544,7 @@ snapshots:
'@smithy/middleware-endpoint@4.6.2':
dependencies:
'@smithy/core': 3.26.0
'@smithy/core': 3.29.2
tslib: 2.8.1
'@smithy/middleware-retry@4.7.2':
@@ -6200,7 +6554,7 @@ snapshots:
'@smithy/middleware-serde@4.4.2':
dependencies:
'@smithy/core': 3.26.0
'@smithy/core': 3.29.2
tslib: 2.8.1
'@smithy/middleware-stack@4.4.2':
@@ -6294,7 +6648,7 @@ snapshots:
'@smithy/util-base64@4.5.2':
dependencies:
'@smithy/core': 3.26.0
'@smithy/core': 3.29.2
tslib: 2.8.1
'@smithy/util-body-length-browser@4.4.2':
@@ -6304,7 +6658,7 @@ snapshots:
'@smithy/util-body-length-node@4.4.2':
dependencies:
'@smithy/core': 3.26.0
'@smithy/core': 3.29.2
tslib: 2.8.1
'@smithy/util-buffer-from@2.2.0':
@@ -6334,7 +6688,7 @@ snapshots:
'@smithy/util-middleware@4.4.2':
dependencies:
'@smithy/core': 3.26.0
'@smithy/core': 3.29.2
tslib: 2.8.1
'@smithy/util-retry@4.5.2':
@@ -6354,7 +6708,12 @@ snapshots:
'@smithy/util-utf8@4.4.2':
dependencies:
'@smithy/core': 3.26.0
'@smithy/core': 3.29.2
tslib: 2.8.1
'@smithy/util-waiter@4.5.7':
dependencies:
'@smithy/core': 3.29.2
tslib: 2.8.1
'@so-ric/colorspace@1.1.6':
@@ -6894,7 +7253,7 @@ snapshots:
co@4.6.0: {}
cohere-ai@8.0.0(@aws-crypto/sha256-js@5.2.0)(@smithy/protocol-http@5.5.2)(@smithy/signature-v4@5.6.2):
cohere-ai@8.0.0(@aws-crypto/sha256-js@5.2.0)(@smithy/protocol-http@5.5.2)(@smithy/signature-v4@5.6.3):
dependencies:
convict: 6.2.5
form-data: 4.0.6
@@ -6904,7 +7263,7 @@ snapshots:
optionalDependencies:
'@aws-crypto/sha256-js': 5.2.0
'@smithy/protocol-http': 5.5.2
'@smithy/signature-v4': 5.6.2
'@smithy/signature-v4': 5.6.3
collect-v8-coverage@1.0.3: {}
+1
View File
@@ -36,6 +36,7 @@ export * from "./vector_stores/langchain";
export * from "./vector_stores/vectorize";
export * from "./vector_stores/azure_ai_search";
export * from "./vector_stores/pgvector";
export * from "./vector_stores/neptune_analytics";
export * from "./vector_stores/elasticsearch";
export * from "./vector_stores/upstash_vector";
export * from "./vector_stores/azure_mysql";
+4
View File
@@ -55,6 +55,7 @@ import { HuggingFaceEmbedder } from "../embeddings/huggingface";
import { LangchainVectorStore } from "../vector_stores/langchain";
import { AzureAISearch } from "../vector_stores/azure_ai_search";
import { PGVector } from "../vector_stores/pgvector";
import { NeptuneAnalyticsVectorStore } from "../vector_stores/neptune_analytics";
import { VertexAIEmbedder } from "../embeddings/vertexai";
import { ElasticsearchDB } from "../vector_stores/elasticsearch";
import { OpenSearchDB } from "../vector_stores/opensearch";
@@ -172,6 +173,9 @@ export class VectorStoreFactory {
return new VertexAIVectorSearch(config as any);
case "pgvector":
return new PGVector(config as any);
case "neptune":
case "neptune-analytics":
return new NeptuneAnalyticsVectorStore(config as any);
case "elasticsearch":
return new ElasticsearchDB(config as any);
case "opensearch":
@@ -1,4 +1,3 @@
import { createPool } from "mysql2/promise";
import type { Pool, RowDataPacket } from "mysql2/promise";
import { VectorStore } from "./base";
import { SearchFilters, VectorStoreConfig, VectorStoreResult } from "../types";
@@ -93,6 +92,17 @@ export class AzureMySQLDB implements VectorStore {
...(this.config.sslCa ? { ca: this.config.sslCa } : {}),
};
// Loaded dynamically: mysql2 is an optional peer dependency, so a static value import
// would break `import { Memory } from "mem0ai/oss"` for everyone else.
let createPool: typeof import("mysql2/promise").createPool;
try {
({ createPool } = await import("mysql2/promise"));
} catch {
throw new Error(
"The Azure MySQL vector store requires the 'mysql2' package. Install it with: npm install mysql2",
);
}
this.pool = createPool({
host: this.config.host,
port: this.config.port ?? 3306,
File diff suppressed because it is too large Load Diff
@@ -183,6 +183,12 @@ jest.mock("../src/vector_stores/pgvector", () => ({
.fn()
.mockImplementation((config) => ({ type: "pgvector", config })),
}));
jest.mock("../src/vector_stores/neptune_analytics", () => ({
NeptuneAnalyticsVectorStore: jest.fn().mockImplementation((config) => ({
type: "neptune-analytics",
config,
})),
}));
jest.mock("../src/vector_stores/upstash_vector", () => ({
UpstashVector: jest
.fn()
@@ -340,6 +346,8 @@ describe("VectorStoreFactory", () => {
["vectorize"],
["azure-ai-search"],
["pgvector"],
["neptune"],
["neptune-analytics"],
["upstash_vector"],
["azure_mysql"],
["cassandra"],
@@ -351,6 +359,30 @@ describe("VectorStoreFactory", () => {
expect(result.config).toBe(dummyVSConfig);
});
test("passes Neptune endpoint URI config through the factory", () => {
const config = {
collectionName: "test",
dimension: 4,
endpoint: "neptune-graph://g-1234567890",
region: "us-east-1",
};
const store = VectorStoreFactory.create("neptune", config) as any;
expect(store.config).toEqual(config);
});
test("keeps neptune-analytics as a compatibility alias", () => {
const config = {
collectionName: "test",
dimension: 4,
endpoint: "neptune-graph://g-1234567890",
region: "us-east-1",
};
const store = VectorStoreFactory.create("neptune-analytics", config) as any;
expect(store.config).toEqual(config);
});
test("throws for unsupported provider", () => {
expect(() =>
VectorStoreFactory.create("nonexistent", dummyVSConfig),
@@ -0,0 +1,70 @@
import { readdirSync, readFileSync, statSync } from "fs";
import { join, relative, resolve } from "path";
// Optional peers are not installed by npm/pnpm. A static value import of one therefore throws
// MODULE_NOT_FOUND the moment anything pulls in `mem0ai/oss`, because src/index.ts re-exports every
// vector store. Load them with `await import(...)` inside the code path that needs them instead.
const packageRoot = resolve(__dirname, "../../..");
function optionalPeers(): string[] {
const pkg = JSON.parse(
readFileSync(join(packageRoot, "package.json"), "utf8"),
);
return Object.entries(
(pkg.peerDependenciesMeta ?? {}) as Record<string, { optional?: boolean }>,
)
.filter(([, meta]) => meta.optional)
.map(([name]) => name);
}
function sourceFiles(dir: string, acc: string[] = []): string[] {
for (const entry of readdirSync(dir)) {
const full = join(dir, entry);
if (statSync(full).isDirectory()) {
if (entry !== "tests" && entry !== "__tests__") sourceFiles(full, acc);
} else if (entry.endsWith(".ts") && !entry.endsWith(".test.ts")) {
acc.push(full);
}
}
return acc;
}
// Matches `import ... from "pkg"` and `import "pkg"`, but not `import type ... from "pkg"`,
// `typeof import("pkg")`, or `await import("pkg")` — those are erased or already lazy.
function hasStaticValueImport(pkg: string, source: string): boolean {
const escaped = pkg.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const specifier = `["']${escaped}(?:\\/[^"']*)?["']`;
return (
new RegExp(
`(?:^|\\n)\\s*import\\s+(?!type\\b)[^;]*?from\\s+${specifier}`,
).test(source) ||
new RegExp(`(?:^|\\n)\\s*import\\s+${specifier}`).test(source)
);
}
describe("optional peer dependencies", () => {
const peers = optionalPeers();
it("are discoverable from package.json", () => {
expect(peers.length).toBeGreaterThan(0);
});
it("are never statically imported by src", () => {
const files = sourceFiles(join(packageRoot, "src"));
const sources = new Map(
files.map((file) => [file, readFileSync(file, "utf8")]),
);
const offenders: string[] = [];
for (const peer of peers) {
for (const [file, source] of sources) {
if (hasStaticValueImport(peer, source)) {
offenders.push(`${relative(packageRoot, file)} imports ${peer}`);
}
}
}
expect(offenders).toEqual([]);
});
});
File diff suppressed because it is too large Load Diff
+1
View File
@@ -4,6 +4,7 @@ import pkg from "./package.json";
const external = [
"openai",
"@anthropic-ai/sdk",
"@aws-sdk/client-neptune-graph",
"@aws-sdk/client-s3vectors",
"@mochow/mochow-sdk-node",
"groq-sdk",