mongodb-mcp-server 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/cjs/common/atlas/cluster.d.ts +7 -2
- package/dist/cjs/common/atlas/cluster.d.ts.map +1 -1
- package/dist/cjs/common/atlas/cluster.js +18 -4
- package/dist/cjs/common/atlas/cluster.js.map +1 -1
- package/dist/cjs/common/atlasLocal.d.ts +4 -0
- package/dist/cjs/common/atlasLocal.d.ts.map +1 -0
- package/dist/cjs/common/atlasLocal.js +57 -0
- package/dist/cjs/common/atlasLocal.js.map +1 -0
- package/dist/cjs/common/config.d.ts +84 -15
- package/dist/cjs/common/config.d.ts.map +1 -1
- package/dist/cjs/common/config.js +153 -10
- package/dist/cjs/common/config.js.map +1 -1
- package/dist/cjs/common/connectionErrorHandler.d.ts.map +1 -1
- package/dist/cjs/common/connectionErrorHandler.js +14 -5
- package/dist/cjs/common/connectionErrorHandler.js.map +1 -1
- package/dist/cjs/common/connectionManager.d.ts.map +1 -1
- package/dist/cjs/common/connectionManager.js +5 -4
- package/dist/cjs/common/connectionManager.js.map +1 -1
- package/dist/cjs/common/errors.d.ts +5 -1
- package/dist/cjs/common/errors.d.ts.map +1 -1
- package/dist/cjs/common/errors.js +4 -0
- package/dist/cjs/common/errors.js.map +1 -1
- package/dist/cjs/common/packageInfo.js +1 -1
- package/dist/cjs/common/search/embeddingsProvider.d.ts +41 -0
- package/dist/cjs/common/search/embeddingsProvider.d.ts.map +1 -0
- package/dist/cjs/common/search/embeddingsProvider.js +53 -0
- package/dist/cjs/common/search/embeddingsProvider.js.map +1 -0
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.d.ts +58 -0
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.d.ts.map +1 -0
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.js +200 -0
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.js.map +1 -0
- package/dist/cjs/common/session.d.ts +8 -1
- package/dist/cjs/common/session.d.ts.map +1 -1
- package/dist/cjs/common/session.js +12 -4
- package/dist/cjs/common/session.js.map +1 -1
- package/dist/cjs/server.d.ts +2 -1
- package/dist/cjs/server.d.ts.map +1 -1
- package/dist/cjs/server.js +6 -2
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/telemetry/types.d.ts +1 -0
- package/dist/cjs/telemetry/types.d.ts.map +1 -1
- package/dist/cjs/tools/args.d.ts +1 -0
- package/dist/cjs/tools/args.d.ts.map +1 -1
- package/dist/cjs/tools/args.js +1 -0
- package/dist/cjs/tools/args.js.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.d.ts +1 -1
- package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.js +1 -1
- package/dist/cjs/tools/atlas/atlasTool.js.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +3 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.js +11 -6
- package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createProject.d.ts +0 -4
- package/dist/cjs/tools/atlas/create/createProject.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createProject.js +3 -6
- package/dist/cjs/tools/atlas/create/createProject.js.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.js +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.js +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.d.ts +0 -3
- package/dist/cjs/tools/atlas/read/listProjects.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.js +15 -20
- package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.d.ts +19 -0
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.js +109 -0
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.d.ts +14 -0
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.js +35 -0
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/create/createDeployment.d.ts +14 -0
- package/dist/cjs/tools/atlasLocal/create/createDeployment.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/create/createDeployment.js +41 -0
- package/dist/cjs/tools/atlasLocal/create/createDeployment.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.d.ts +14 -0
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.js +32 -0
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/read/listDeployments.d.ts +13 -0
- package/dist/cjs/tools/atlasLocal/read/listDeployments.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/read/listDeployments.js +42 -0
- package/dist/cjs/tools/atlasLocal/read/listDeployments.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/tools.d.ts +6 -0
- package/dist/cjs/tools/atlasLocal/tools.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/tools.js +9 -0
- package/dist/cjs/tools/atlasLocal/tools.js.map +1 -0
- package/dist/cjs/tools/mongodb/create/createIndex.d.ts +1 -1
- package/dist/cjs/tools/mongodb/create/createIndex.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/createIndex.js +6 -21
- package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.js +14 -10
- package/dist/cjs/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts +5 -2
- package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.js +36 -3
- package/dist/cjs/tools/mongodb/delete/dropIndex.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts +15 -0
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js +30 -5
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts +191 -9
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/listDatabases.js +1 -3
- package/dist/cjs/tools/mongodb/metadata/listDatabases.js.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts +2 -1
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.js +19 -0
- package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +215 -2
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +82 -8
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.d.ts +191 -9
- package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/find.js +1 -1
- package/dist/cjs/tools/mongodb/read/find.js.map +1 -1
- package/dist/cjs/tools/mongodb/tools.d.ts +1 -2
- package/dist/cjs/tools/mongodb/tools.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/tools.js +0 -2
- package/dist/cjs/tools/mongodb/tools.js.map +1 -1
- package/dist/cjs/tools/tool.d.ts +5 -4
- package/dist/cjs/tools/tool.d.ts.map +1 -1
- package/dist/cjs/tools/tool.js +8 -5
- package/dist/cjs/tools/tool.js.map +1 -1
- package/dist/cjs/transports/base.d.ts +4 -1
- package/dist/cjs/transports/base.d.ts.map +1 -1
- package/dist/cjs/transports/base.js +6 -1
- package/dist/cjs/transports/base.js.map +1 -1
- package/dist/esm/common/atlas/cluster.d.ts +7 -2
- package/dist/esm/common/atlas/cluster.d.ts.map +1 -1
- package/dist/esm/common/atlas/cluster.js +17 -4
- package/dist/esm/common/atlas/cluster.js.map +1 -1
- package/dist/esm/common/atlasLocal.d.ts +4 -0
- package/dist/esm/common/atlasLocal.d.ts.map +1 -0
- package/dist/esm/common/atlasLocal.js +20 -0
- package/dist/esm/common/atlasLocal.js.map +1 -0
- package/dist/esm/common/config.d.ts +84 -15
- package/dist/esm/common/config.d.ts.map +1 -1
- package/dist/esm/common/config.js +112 -2
- package/dist/esm/common/config.js.map +1 -1
- package/dist/esm/common/connectionErrorHandler.d.ts.map +1 -1
- package/dist/esm/common/connectionErrorHandler.js +14 -5
- package/dist/esm/common/connectionErrorHandler.js.map +1 -1
- package/dist/esm/common/connectionManager.d.ts.map +1 -1
- package/dist/esm/common/connectionManager.js +5 -4
- package/dist/esm/common/connectionManager.js.map +1 -1
- package/dist/esm/common/errors.d.ts +5 -1
- package/dist/esm/common/errors.d.ts.map +1 -1
- package/dist/esm/common/errors.js +4 -0
- package/dist/esm/common/errors.js.map +1 -1
- package/dist/esm/common/packageInfo.js +1 -1
- package/dist/esm/common/search/embeddingsProvider.d.ts +41 -0
- package/dist/esm/common/search/embeddingsProvider.d.ts.map +1 -0
- package/dist/esm/common/search/embeddingsProvider.js +46 -0
- package/dist/esm/common/search/embeddingsProvider.js.map +1 -0
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.d.ts +58 -0
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.d.ts.map +1 -0
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.js +193 -0
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.js.map +1 -0
- package/dist/esm/common/session.d.ts +8 -1
- package/dist/esm/common/session.d.ts.map +1 -1
- package/dist/esm/common/session.js +12 -4
- package/dist/esm/common/session.js.map +1 -1
- package/dist/esm/server.d.ts +2 -1
- package/dist/esm/server.d.ts.map +1 -1
- package/dist/esm/server.js +5 -1
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/telemetry/types.d.ts +1 -0
- package/dist/esm/telemetry/types.d.ts.map +1 -1
- package/dist/esm/tools/args.d.ts +1 -0
- package/dist/esm/tools/args.d.ts.map +1 -1
- package/dist/esm/tools/args.js +1 -0
- package/dist/esm/tools/args.js.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.d.ts +1 -1
- package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.js +1 -1
- package/dist/esm/tools/atlas/atlasTool.js.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts +3 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.js +12 -7
- package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/create/createProject.d.ts +0 -4
- package/dist/esm/tools/atlas/create/createProject.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createProject.js +2 -5
- package/dist/esm/tools/atlas/create/createProject.js.map +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.js +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/read/listClusters.js +1 -1
- package/dist/esm/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/esm/tools/atlas/read/listProjects.d.ts +0 -3
- package/dist/esm/tools/atlas/read/listProjects.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listProjects.js +14 -19
- package/dist/esm/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/esm/tools/atlasLocal/atlasLocalTool.d.ts +19 -0
- package/dist/esm/tools/atlasLocal/atlasLocalTool.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/atlasLocalTool.js +105 -0
- package/dist/esm/tools/atlasLocal/atlasLocalTool.js.map +1 -0
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.d.ts +14 -0
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.js +31 -0
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.js.map +1 -0
- package/dist/esm/tools/atlasLocal/create/createDeployment.d.ts +14 -0
- package/dist/esm/tools/atlasLocal/create/createDeployment.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/create/createDeployment.js +37 -0
- package/dist/esm/tools/atlasLocal/create/createDeployment.js.map +1 -0
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.d.ts +14 -0
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.js +28 -0
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.js.map +1 -0
- package/dist/esm/tools/atlasLocal/read/listDeployments.d.ts +13 -0
- package/dist/esm/tools/atlasLocal/read/listDeployments.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/read/listDeployments.js +38 -0
- package/dist/esm/tools/atlasLocal/read/listDeployments.js.map +1 -0
- package/dist/esm/tools/atlasLocal/tools.d.ts +6 -0
- package/dist/esm/tools/atlasLocal/tools.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/tools.js +6 -0
- package/dist/esm/tools/atlasLocal/tools.js.map +1 -0
- package/dist/esm/tools/mongodb/create/createIndex.d.ts +1 -1
- package/dist/esm/tools/mongodb/create/createIndex.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/createIndex.js +6 -21
- package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.d.ts +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.js +14 -10
- package/dist/esm/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.d.ts +5 -2
- package/dist/esm/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.js +36 -3
- package/dist/esm/tools/mongodb/delete/dropIndex.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts +15 -0
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.js +30 -5
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.d.ts +191 -9
- package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/listDatabases.js +1 -3
- package/dist/esm/tools/mongodb/metadata/listDatabases.js.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.d.ts +2 -1
- package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.js +19 -0
- package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +215 -2
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +82 -8
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/export.d.ts +191 -9
- package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/find.js +1 -1
- package/dist/esm/tools/mongodb/read/find.js.map +1 -1
- package/dist/esm/tools/mongodb/tools.d.ts +1 -2
- package/dist/esm/tools/mongodb/tools.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/tools.js +0 -2
- package/dist/esm/tools/mongodb/tools.js.map +1 -1
- package/dist/esm/tools/tool.d.ts +5 -4
- package/dist/esm/tools/tool.d.ts.map +1 -1
- package/dist/esm/tools/tool.js +8 -5
- package/dist/esm/tools/tool.js.map +1 -1
- package/dist/esm/transports/base.d.ts +4 -1
- package/dist/esm/transports/base.d.ts.map +1 -1
- package/dist/esm/transports/base.js +6 -1
- package/dist/esm/transports/base.js.map +1 -1
- package/package.json +15 -11
- package/dist/cjs/tools/mongodb/search/listSearchIndexes.d.ts +0 -30
- package/dist/cjs/tools/mongodb/search/listSearchIndexes.d.ts.map +0 -1
- package/dist/cjs/tools/mongodb/search/listSearchIndexes.js +0 -65
- package/dist/cjs/tools/mongodb/search/listSearchIndexes.js.map +0 -1
- package/dist/esm/tools/mongodb/search/listSearchIndexes.d.ts +0 -30
- package/dist/esm/tools/mongodb/search/listSearchIndexes.d.ts.map +0 -1
- package/dist/esm/tools/mongodb/search/listSearchIndexes.js +0 -61
- package/dist/esm/tools/mongodb/search/listSearchIndexes.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mongodb-mcp-server",
|
|
3
3
|
"description": "MongoDB Model Context Protocol Server",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.2.0",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"mcpName": "io.github.mongodb-js/mongodb-mcp-server",
|
|
6
7
|
"exports": {
|
|
7
8
|
".": {
|
|
8
9
|
"import": {
|
|
@@ -37,14 +38,13 @@
|
|
|
37
38
|
"prepare": "npm run build",
|
|
38
39
|
"build:clean": "rm -rf dist",
|
|
39
40
|
"build:update-package-version": "tsx scripts/updatePackageVersion.ts",
|
|
40
|
-
"build:esm": "tsc --project tsconfig.esm.json",
|
|
41
|
+
"build:esm": "tsc --project tsconfig.esm.json && chmod +x dist/esm/index.js",
|
|
41
42
|
"build:cjs": "tsc --project tsconfig.cjs.json",
|
|
42
43
|
"build:universal-package": "tsx scripts/createUniversalPackage.ts",
|
|
43
|
-
"build:
|
|
44
|
-
"build": "npm run build:clean && npm run build:esm && npm run build:cjs && npm run build:universal-package && npm run build:chmod",
|
|
44
|
+
"build": "npm run build:clean && concurrently \"npm run build:esm\" \"npm run build:cjs\" && npm run build:universal-package",
|
|
45
45
|
"inspect": "npm run build && mcp-inspector -- dist/esm/index.js",
|
|
46
46
|
"prettier": "prettier",
|
|
47
|
-
"check": "npm run build
|
|
47
|
+
"check": "concurrently \"npm run build\" \"npm run check:types\" \"npm run check:lint\" \"npm run check:format\" \"npm run check:dependencies\"",
|
|
48
48
|
"check:lint": "eslint .",
|
|
49
49
|
"check:dependencies": "knip --strict",
|
|
50
50
|
"check:format": "prettier -c .",
|
|
@@ -52,17 +52,19 @@
|
|
|
52
52
|
"fix": "npm run fix:lint && npm run reformat",
|
|
53
53
|
"fix:lint": "eslint . --fix",
|
|
54
54
|
"reformat": "prettier --write .",
|
|
55
|
-
"generate": "./scripts/generate.sh",
|
|
55
|
+
"generate": "./scripts/generate.sh && npm run generate:arguments",
|
|
56
|
+
"generate:arguments": "tsx scripts/generateArguments.ts",
|
|
56
57
|
"test": "vitest --project eslint-rules --project unit-and-integration --coverage",
|
|
57
58
|
"pretest:accuracy": "npm run build",
|
|
58
59
|
"test:accuracy": "sh ./scripts/accuracy/runAccuracyTests.sh",
|
|
60
|
+
"test:long-running-tests": "vitest --project long-running-tests --coverage",
|
|
59
61
|
"atlas:cleanup": "vitest --project atlas-cleanup"
|
|
60
62
|
},
|
|
61
63
|
"license": "Apache-2.0",
|
|
62
64
|
"devDependencies": {
|
|
63
|
-
"@ai-sdk/azure": "^
|
|
64
|
-
"@ai-sdk/google": "^
|
|
65
|
-
"@ai-sdk/openai": "^
|
|
65
|
+
"@ai-sdk/azure": "^2.0.53",
|
|
66
|
+
"@ai-sdk/google": "^2.0.23",
|
|
67
|
+
"@ai-sdk/openai": "^2.0.52",
|
|
66
68
|
"@eslint/js": "^9.34.0",
|
|
67
69
|
"@modelcontextprotocol/inspector": "^0.16.5",
|
|
68
70
|
"@mongodb-js/oidc-mock-provider": "^0.11.3",
|
|
@@ -75,7 +77,7 @@
|
|
|
75
77
|
"@typescript-eslint/parser": "^8.44.0",
|
|
76
78
|
"@vitest/coverage-v8": "^3.2.4",
|
|
77
79
|
"@vitest/eslint-plugin": "^1.3.4",
|
|
78
|
-
"
|
|
80
|
+
"concurrently": "^9.2.1",
|
|
79
81
|
"duplexpair": "^1.0.2",
|
|
80
82
|
"eslint": "^9.34.0",
|
|
81
83
|
"eslint-config-prettier": "^10.1.8",
|
|
@@ -84,7 +86,6 @@
|
|
|
84
86
|
"knip": "^5.63.1",
|
|
85
87
|
"mongodb": "^6.19.0",
|
|
86
88
|
"mongodb-runner": "^5.9.2",
|
|
87
|
-
"ollama-ai-provider": "^1.2.0",
|
|
88
89
|
"openapi-types": "^12.1.3",
|
|
89
90
|
"openapi-typescript": "^7.9.1",
|
|
90
91
|
"prettier": "^3.6.2",
|
|
@@ -104,6 +105,7 @@
|
|
|
104
105
|
"@mongodb-js/devtools-proxy-support": "^0.5.3",
|
|
105
106
|
"@mongosh/arg-parser": "^3.19.0",
|
|
106
107
|
"@mongosh/service-provider-node-driver": "^3.17.0",
|
|
108
|
+
"ai": "^5.0.72",
|
|
107
109
|
"bson": "^6.10.4",
|
|
108
110
|
"express": "^5.1.0",
|
|
109
111
|
"lru-cache": "^11.1.0",
|
|
@@ -116,6 +118,7 @@
|
|
|
116
118
|
"oauth4webapi": "^3.8.0",
|
|
117
119
|
"openapi-fetch": "^0.14.0",
|
|
118
120
|
"ts-levenshtein": "^1.0.7",
|
|
121
|
+
"voyage-ai-provider": "^2.0.0",
|
|
119
122
|
"yargs-parser": "21.1.1",
|
|
120
123
|
"zod": "^3.25.76"
|
|
121
124
|
},
|
|
@@ -123,6 +126,7 @@
|
|
|
123
126
|
"node": "^20.19.0 || ^22.12.0 || >= 23.0.0"
|
|
124
127
|
},
|
|
125
128
|
"optionalDependencies": {
|
|
129
|
+
"@mongodb-js/atlas-local": "^1.0.2",
|
|
126
130
|
"kerberos": "^2.2.2"
|
|
127
131
|
}
|
|
128
132
|
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
-
import type { ToolArgs, OperationType } from "../../tool.js";
|
|
3
|
-
import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
|
|
4
|
-
export type SearchIndexStatus = {
|
|
5
|
-
name: string;
|
|
6
|
-
type: string;
|
|
7
|
-
status: string;
|
|
8
|
-
queryable: boolean;
|
|
9
|
-
latestDefinition: Document;
|
|
10
|
-
};
|
|
11
|
-
export declare class ListSearchIndexesTool extends MongoDBToolBase {
|
|
12
|
-
name: string;
|
|
13
|
-
protected description: string;
|
|
14
|
-
protected argsShape: {
|
|
15
|
-
database: import("zod").ZodString;
|
|
16
|
-
collection: import("zod").ZodString;
|
|
17
|
-
};
|
|
18
|
-
operationType: OperationType;
|
|
19
|
-
protected execute({ database, collection }: ToolArgs<typeof DbOperationArgs>): Promise<CallToolResult>;
|
|
20
|
-
protected verifyAllowed(): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Atlas Search index status contains a lot of information that is not relevant for the agent at this stage.
|
|
23
|
-
* Like for example, the status on each of the dedicated nodes. We only care about the main status, if it's
|
|
24
|
-
* queryable and the index name. We are also picking the index definition as it can be used by the agent to
|
|
25
|
-
* understand which fields are available for searching.
|
|
26
|
-
**/
|
|
27
|
-
protected pickRelevantInformation(indexes: Record<string, unknown>[]): SearchIndexStatus[];
|
|
28
|
-
protected handleError(error: unknown, args: ToolArgs<typeof DbOperationArgs>): Promise<CallToolResult> | CallToolResult;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=listSearchIndexes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listSearchIndexes.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/search/listSearchIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIrE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,eAAe;IAC/C,IAAI,SAAyB;IACpC,SAAS,CAAC,WAAW,SAA4E;IACjG,SAAS,CAAC,SAAS;;;MAAmB;IAC/B,aAAa,EAAE,aAAa,CAAc;cAEjC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB5G,SAAS,CAAC,aAAa,IAAI,OAAO;IAKlC;;;;;QAKI;IACJ,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAE;IAU1F,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GACvC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;CAc9C"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ListSearchIndexesTool = void 0;
|
|
4
|
-
const mongodbTool_js_1 = require("../mongodbTool.js");
|
|
5
|
-
const tool_js_1 = require("../../tool.js");
|
|
6
|
-
const bson_1 = require("bson");
|
|
7
|
-
class ListSearchIndexesTool extends mongodbTool_js_1.MongoDBToolBase {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.name = "list-search-indexes";
|
|
11
|
-
this.description = "Describes the search and vector search indexes for a single collection";
|
|
12
|
-
this.argsShape = mongodbTool_js_1.DbOperationArgs;
|
|
13
|
-
this.operationType = "metadata";
|
|
14
|
-
}
|
|
15
|
-
async execute({ database, collection }) {
|
|
16
|
-
const provider = await this.ensureConnected();
|
|
17
|
-
const indexes = await provider.getSearchIndexes(database, collection);
|
|
18
|
-
const trimmedIndexDefinitions = this.pickRelevantInformation(indexes);
|
|
19
|
-
if (trimmedIndexDefinitions.length > 0) {
|
|
20
|
-
return {
|
|
21
|
-
content: (0, tool_js_1.formatUntrustedData)(`Found ${trimmedIndexDefinitions.length} search and vector search indexes in ${database}.${collection}`, trimmedIndexDefinitions.map((index) => bson_1.EJSON.stringify(index)).join("\n")),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return {
|
|
26
|
-
content: (0, tool_js_1.formatUntrustedData)("Could not retrieve search indexes", `There are no search or vector search indexes in ${database}.${collection}`),
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
verifyAllowed() {
|
|
31
|
-
// Only enable this on tests for now.
|
|
32
|
-
return process.env.VITEST === "true";
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Atlas Search index status contains a lot of information that is not relevant for the agent at this stage.
|
|
36
|
-
* Like for example, the status on each of the dedicated nodes. We only care about the main status, if it's
|
|
37
|
-
* queryable and the index name. We are also picking the index definition as it can be used by the agent to
|
|
38
|
-
* understand which fields are available for searching.
|
|
39
|
-
**/
|
|
40
|
-
pickRelevantInformation(indexes) {
|
|
41
|
-
return indexes.map((index) => ({
|
|
42
|
-
name: (index["name"] ?? "default"),
|
|
43
|
-
type: (index["type"] ?? "UNKNOWN"),
|
|
44
|
-
status: (index["status"] ?? "UNKNOWN"),
|
|
45
|
-
queryable: (index["queryable"] ?? false),
|
|
46
|
-
latestDefinition: index["latestDefinition"],
|
|
47
|
-
}));
|
|
48
|
-
}
|
|
49
|
-
handleError(error, args) {
|
|
50
|
-
if (error instanceof Error && "codeName" in error && error.codeName === "SearchNotEnabled") {
|
|
51
|
-
return {
|
|
52
|
-
content: [
|
|
53
|
-
{
|
|
54
|
-
text: "This MongoDB cluster does not support Search Indexes. Make sure you are using an Atlas Cluster, either remotely in Atlas or using the Atlas Local image, or your cluster supports MongoDB Search.",
|
|
55
|
-
type: "text",
|
|
56
|
-
isError: true,
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
return super.handleError(error, args);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
exports.ListSearchIndexesTool = ListSearchIndexesTool;
|
|
65
|
-
//# sourceMappingURL=listSearchIndexes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listSearchIndexes.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/search/listSearchIndexes.ts"],"names":[],"mappings":";;;AAEA,sDAAqE;AACrE,2CAAoD;AACpD,+BAA6B;AAU7B,MAAa,qBAAsB,SAAQ,gCAAe;IAA1D;;QACW,SAAI,GAAG,qBAAqB,CAAC;QAC1B,gBAAW,GAAG,wEAAwE,CAAC;QACvF,cAAS,GAAG,gCAAe,CAAC;QAC/B,kBAAa,GAAkB,UAAU,CAAC;IA8DrD,CAAC;IA5Da,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAoC;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEtE,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO;gBACH,OAAO,EAAE,IAAA,6BAAmB,EACxB,SAAS,uBAAuB,CAAC,MAAM,wCAAwC,QAAQ,IAAI,UAAU,EAAE,EACvG,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5E;aACJ,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO;gBACH,OAAO,EAAE,IAAA,6BAAmB,EACxB,mCAAmC,EACnC,mDAAmD,QAAQ,IAAI,UAAU,EAAE,CAC9E;aACJ,CAAC;QACN,CAAC;IACL,CAAC;IAES,aAAa;QACnB,qCAAqC;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;IACzC,CAAC;IAED;;;;;QAKI;IACM,uBAAuB,CAAC,OAAkC;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAW;YAC5C,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAW;YAC5C,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAW;YAChD,SAAS,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAY;YACnD,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAa;SAC1D,CAAC,CAAC,CAAC;IACR,CAAC;IAES,WAAW,CACjB,KAAc,EACd,IAAsC;QAEtC,IAAI,KAAK,YAAY,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACzF,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,mMAAmM;wBACzM,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI;qBAChB;iBACJ;aACJ,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACJ;AAlED,sDAkEC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
-
import type { ToolArgs, OperationType } from "../../tool.js";
|
|
3
|
-
import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
|
|
4
|
-
export type SearchIndexStatus = {
|
|
5
|
-
name: string;
|
|
6
|
-
type: string;
|
|
7
|
-
status: string;
|
|
8
|
-
queryable: boolean;
|
|
9
|
-
latestDefinition: Document;
|
|
10
|
-
};
|
|
11
|
-
export declare class ListSearchIndexesTool extends MongoDBToolBase {
|
|
12
|
-
name: string;
|
|
13
|
-
protected description: string;
|
|
14
|
-
protected argsShape: {
|
|
15
|
-
database: import("zod").ZodString;
|
|
16
|
-
collection: import("zod").ZodString;
|
|
17
|
-
};
|
|
18
|
-
operationType: OperationType;
|
|
19
|
-
protected execute({ database, collection }: ToolArgs<typeof DbOperationArgs>): Promise<CallToolResult>;
|
|
20
|
-
protected verifyAllowed(): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Atlas Search index status contains a lot of information that is not relevant for the agent at this stage.
|
|
23
|
-
* Like for example, the status on each of the dedicated nodes. We only care about the main status, if it's
|
|
24
|
-
* queryable and the index name. We are also picking the index definition as it can be used by the agent to
|
|
25
|
-
* understand which fields are available for searching.
|
|
26
|
-
**/
|
|
27
|
-
protected pickRelevantInformation(indexes: Record<string, unknown>[]): SearchIndexStatus[];
|
|
28
|
-
protected handleError(error: unknown, args: ToolArgs<typeof DbOperationArgs>): Promise<CallToolResult> | CallToolResult;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=listSearchIndexes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listSearchIndexes.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/search/listSearchIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIrE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,eAAe;IAC/C,IAAI,SAAyB;IACpC,SAAS,CAAC,WAAW,SAA4E;IACjG,SAAS,CAAC,SAAS;;;MAAmB;IAC/B,aAAa,EAAE,aAAa,CAAc;cAEjC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB5G,SAAS,CAAC,aAAa,IAAI,OAAO;IAKlC;;;;;QAKI;IACJ,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAE;IAU1F,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GACvC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;CAc9C"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
|
|
2
|
-
import { formatUntrustedData } from "../../tool.js";
|
|
3
|
-
import { EJSON } from "bson";
|
|
4
|
-
export class ListSearchIndexesTool extends MongoDBToolBase {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.name = "list-search-indexes";
|
|
8
|
-
this.description = "Describes the search and vector search indexes for a single collection";
|
|
9
|
-
this.argsShape = DbOperationArgs;
|
|
10
|
-
this.operationType = "metadata";
|
|
11
|
-
}
|
|
12
|
-
async execute({ database, collection }) {
|
|
13
|
-
const provider = await this.ensureConnected();
|
|
14
|
-
const indexes = await provider.getSearchIndexes(database, collection);
|
|
15
|
-
const trimmedIndexDefinitions = this.pickRelevantInformation(indexes);
|
|
16
|
-
if (trimmedIndexDefinitions.length > 0) {
|
|
17
|
-
return {
|
|
18
|
-
content: formatUntrustedData(`Found ${trimmedIndexDefinitions.length} search and vector search indexes in ${database}.${collection}`, trimmedIndexDefinitions.map((index) => EJSON.stringify(index)).join("\n")),
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return {
|
|
23
|
-
content: formatUntrustedData("Could not retrieve search indexes", `There are no search or vector search indexes in ${database}.${collection}`),
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
verifyAllowed() {
|
|
28
|
-
// Only enable this on tests for now.
|
|
29
|
-
return process.env.VITEST === "true";
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Atlas Search index status contains a lot of information that is not relevant for the agent at this stage.
|
|
33
|
-
* Like for example, the status on each of the dedicated nodes. We only care about the main status, if it's
|
|
34
|
-
* queryable and the index name. We are also picking the index definition as it can be used by the agent to
|
|
35
|
-
* understand which fields are available for searching.
|
|
36
|
-
**/
|
|
37
|
-
pickRelevantInformation(indexes) {
|
|
38
|
-
return indexes.map((index) => ({
|
|
39
|
-
name: (index["name"] ?? "default"),
|
|
40
|
-
type: (index["type"] ?? "UNKNOWN"),
|
|
41
|
-
status: (index["status"] ?? "UNKNOWN"),
|
|
42
|
-
queryable: (index["queryable"] ?? false),
|
|
43
|
-
latestDefinition: index["latestDefinition"],
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
handleError(error, args) {
|
|
47
|
-
if (error instanceof Error && "codeName" in error && error.codeName === "SearchNotEnabled") {
|
|
48
|
-
return {
|
|
49
|
-
content: [
|
|
50
|
-
{
|
|
51
|
-
text: "This MongoDB cluster does not support Search Indexes. Make sure you are using an Atlas Cluster, either remotely in Atlas or using the Atlas Local image, or your cluster supports MongoDB Search.",
|
|
52
|
-
type: "text",
|
|
53
|
-
isError: true,
|
|
54
|
-
},
|
|
55
|
-
],
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
return super.handleError(error, args);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=listSearchIndexes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listSearchIndexes.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/search/listSearchIndexes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAU7B,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAA1D;;QACW,SAAI,GAAG,qBAAqB,CAAC;QAC1B,gBAAW,GAAG,wEAAwE,CAAC;QACvF,cAAS,GAAG,eAAe,CAAC;QAC/B,kBAAa,GAAkB,UAAU,CAAC;IA8DrD,CAAC;IA5Da,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAoC;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEtE,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO;gBACH,OAAO,EAAE,mBAAmB,CACxB,SAAS,uBAAuB,CAAC,MAAM,wCAAwC,QAAQ,IAAI,UAAU,EAAE,EACvG,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5E;aACJ,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO;gBACH,OAAO,EAAE,mBAAmB,CACxB,mCAAmC,EACnC,mDAAmD,QAAQ,IAAI,UAAU,EAAE,CAC9E;aACJ,CAAC;QACN,CAAC;IACL,CAAC;IAES,aAAa;QACnB,qCAAqC;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;IACzC,CAAC;IAED;;;;;QAKI;IACM,uBAAuB,CAAC,OAAkC;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAW;YAC5C,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAW;YAC5C,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAW;YAChD,SAAS,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAY;YACnD,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAa;SAC1D,CAAC,CAAC,CAAC;IACR,CAAC;IAES,WAAW,CACjB,KAAc,EACd,IAAsC;QAEtC,IAAI,KAAK,YAAY,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACzF,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,mMAAmM;wBACzM,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI;qBAChB;iBACJ;aACJ,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACJ"}
|