mongodb-mcp-server 2.0.1-alpha.4 → 2.0.1-alpha.5
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 +5 -1
- package/dist/cjs/common/errors.d.ts +2 -1
- package/dist/cjs/common/errors.d.ts.map +1 -1
- package/dist/cjs/common/errors.js +1 -0
- package/dist/cjs/common/errors.js.map +1 -1
- package/dist/cjs/common/packageInfo.js +1 -1
- package/dist/cjs/helpers/mqlGuards.d.ts +28 -0
- package/dist/cjs/helpers/mqlGuards.d.ts.map +1 -1
- package/dist/cjs/helpers/mqlGuards.js +75 -1
- package/dist/cjs/helpers/mqlGuards.js.map +1 -1
- package/dist/cjs/helpers/writeStageConfirmation.d.ts +12 -0
- package/dist/cjs/helpers/writeStageConfirmation.d.ts.map +1 -0
- package/dist/cjs/helpers/writeStageConfirmation.js +30 -0
- package/dist/cjs/helpers/writeStageConfirmation.js.map +1 -0
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts +7 -1
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.js +15 -0
- package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +5 -2
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.js +5 -2
- package/dist/cjs/tools/mongodb/read/aggregateDB.js.map +1 -1
- package/dist/cjs/tools/tool.d.ts +22 -11
- package/dist/cjs/tools/tool.d.ts.map +1 -1
- package/dist/cjs/tools/tool.js +50 -55
- package/dist/cjs/tools/tool.js.map +1 -1
- package/dist/esm/common/errors.d.ts +2 -1
- package/dist/esm/common/errors.d.ts.map +1 -1
- package/dist/esm/common/errors.js +1 -0
- package/dist/esm/common/errors.js.map +1 -1
- package/dist/esm/common/packageInfo.js +1 -1
- package/dist/esm/helpers/mqlGuards.d.ts +28 -0
- package/dist/esm/helpers/mqlGuards.d.ts.map +1 -1
- package/dist/esm/helpers/mqlGuards.js +74 -1
- package/dist/esm/helpers/mqlGuards.js.map +1 -1
- package/dist/esm/helpers/writeStageConfirmation.d.ts +12 -0
- package/dist/esm/helpers/writeStageConfirmation.d.ts.map +1 -0
- package/dist/esm/helpers/writeStageConfirmation.js +27 -0
- package/dist/esm/helpers/writeStageConfirmation.js.map +1 -0
- package/dist/esm/tools/mongodb/mongodbTool.d.ts +7 -1
- package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.js +15 -0
- package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +6 -3
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.js +6 -3
- package/dist/esm/tools/mongodb/read/aggregateDB.js.map +1 -1
- package/dist/esm/tools/tool.d.ts +22 -11
- package/dist/esm/tools/tool.d.ts.map +1 -1
- package/dist/esm/tools/tool.js +50 -55
- package/dist/esm/tools/tool.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/tools/tool.js
CHANGED
|
@@ -172,31 +172,39 @@ class ToolBase {
|
|
|
172
172
|
}
|
|
173
173
|
/** This is used internally by the server to invoke the tool. It can also be run manually to call the tool directly. */
|
|
174
174
|
async invoke(args, context) {
|
|
175
|
-
|
|
175
|
+
const startTime = Date.now();
|
|
176
|
+
/**
|
|
177
|
+
* Records the outcome of the call, emitting its telemetry event and
|
|
178
|
+
* observing its execution duration. `error` is passed when the call
|
|
179
|
+
* failed, and its type is reported alongside the metric.
|
|
180
|
+
*/
|
|
181
|
+
const recordOutcome = (result, error) => {
|
|
182
|
+
// Time the user spent answering an elicitation is not time the tool
|
|
183
|
+
// spent working, so it counts towards neither duration below.
|
|
184
|
+
const executionStartTime = startTime + (context.elicitationDurationMs ?? 0);
|
|
185
|
+
this.emitToolEvent(args, { startTime: executionStartTime, result });
|
|
186
|
+
this.metrics.get("toolExecutionDuration").observe({
|
|
187
|
+
tool_name: this.name,
|
|
188
|
+
category: this.category,
|
|
189
|
+
status: error !== undefined || result.isError ? "error" : "success",
|
|
190
|
+
operation_type: this.operationType,
|
|
191
|
+
...(error !== undefined ? { error_type: error instanceof Error ? error.name : "unknown" } : {}),
|
|
192
|
+
}, (Date.now() - executionStartTime) / 1000);
|
|
193
|
+
};
|
|
176
194
|
try {
|
|
177
|
-
if (this.requiresConfirmation()
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
text: `User did not confirm the execution of the \`${this.name}\` tool so the operation was not performed.`,
|
|
191
|
-
},
|
|
192
|
-
],
|
|
193
|
-
isError: true,
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
// We do not want to include the elicitation time in the tool execution time
|
|
197
|
-
// so we reset the startTime to the current time. We may want to consider adding
|
|
198
|
-
// a separate field for elicitation time in the future.
|
|
199
|
-
startTime = Date.now();
|
|
195
|
+
if (this.requiresConfirmation() &&
|
|
196
|
+
!(await this.requestConfirmation(this.getConfirmationMessage(args), context))) {
|
|
197
|
+
const text = `User did not confirm the execution of the \`${this.name}\` tool so the operation was not performed.`;
|
|
198
|
+
this.session.logger.debug({
|
|
199
|
+
id: index_js_1.LogId.toolExecute,
|
|
200
|
+
context: "tool",
|
|
201
|
+
message: text,
|
|
202
|
+
noRedaction: true,
|
|
203
|
+
attributes: { ...(0, requestIdAttr_js_1.requestIdAttr)(context.requestInfo?.headers) },
|
|
204
|
+
});
|
|
205
|
+
const declined = { content: [{ type: "text", text }], isError: true };
|
|
206
|
+
recordOutcome(declined);
|
|
207
|
+
return declined;
|
|
200
208
|
}
|
|
201
209
|
this.session.logger.debug({
|
|
202
210
|
id: index_js_1.LogId.toolExecute,
|
|
@@ -207,14 +215,7 @@ class ToolBase {
|
|
|
207
215
|
});
|
|
208
216
|
const toolCallResult = await this.execute(args, context);
|
|
209
217
|
const result = await this.appendUIResource(toolCallResult);
|
|
210
|
-
|
|
211
|
-
const durationSeconds = (Date.now() - startTime) / 1000;
|
|
212
|
-
this.metrics.get("toolExecutionDuration").observe({
|
|
213
|
-
tool_name: this.name,
|
|
214
|
-
category: this.category,
|
|
215
|
-
status: result.isError ? "error" : "success",
|
|
216
|
-
operation_type: this.operationType,
|
|
217
|
-
}, durationSeconds);
|
|
218
|
+
recordOutcome(result);
|
|
218
219
|
this.session.logger.debug({
|
|
219
220
|
id: index_js_1.LogId.toolExecute,
|
|
220
221
|
context: "tool",
|
|
@@ -232,15 +233,7 @@ class ToolBase {
|
|
|
232
233
|
attributes: { ...(0, requestIdAttr_js_1.requestIdAttr)(context.requestInfo?.headers) },
|
|
233
234
|
});
|
|
234
235
|
const toolResult = await this.handleError(error, args);
|
|
235
|
-
|
|
236
|
-
const durationSeconds = (Date.now() - startTime) / 1000;
|
|
237
|
-
this.metrics.get("toolExecutionDuration").observe({
|
|
238
|
-
tool_name: this.name,
|
|
239
|
-
category: this.category,
|
|
240
|
-
status: "error",
|
|
241
|
-
operation_type: this.operationType,
|
|
242
|
-
error_type: error instanceof Error ? error.name : "unknown",
|
|
243
|
-
}, durationSeconds);
|
|
236
|
+
recordOutcome(toolResult, error);
|
|
244
237
|
return toolResult;
|
|
245
238
|
}
|
|
246
239
|
}
|
|
@@ -270,23 +263,22 @@ class ToolBase {
|
|
|
270
263
|
return this.config.confirmationRequiredTools.includes(this.name);
|
|
271
264
|
}
|
|
272
265
|
/**
|
|
273
|
-
*
|
|
274
|
-
*
|
|
266
|
+
* Asks the user to confirm an operation, resolving to `true` when they
|
|
267
|
+
* accept and `false` when they decline.
|
|
275
268
|
*
|
|
276
|
-
* This
|
|
277
|
-
*
|
|
278
|
-
*
|
|
269
|
+
* This is automatically called by `invoke` for confirmationRequired tools.
|
|
270
|
+
* Other tools can call it at any point of their execution, which matters when
|
|
271
|
+
* the decision depends on the arguments or needs to happen after some preliminary work.
|
|
279
272
|
*
|
|
280
|
-
*
|
|
273
|
+
* Resolves to `true` without prompting when the client does not support
|
|
274
|
+
* elicitation, matching how confirmation-required tools behave there.
|
|
275
|
+
*
|
|
276
|
+
* @param message - The message to display to the user.
|
|
281
277
|
* @param context - The tool execution context, used to relate the
|
|
282
|
-
* confirmation request to the in-flight tool call
|
|
283
|
-
*
|
|
284
|
-
* required, `false` otherwise
|
|
278
|
+
* confirmation request to the in-flight tool call and to record how long the
|
|
279
|
+
* user took to answer.
|
|
285
280
|
*/
|
|
286
|
-
async
|
|
287
|
-
if (!this.requiresConfirmation()) {
|
|
288
|
-
return true;
|
|
289
|
-
}
|
|
281
|
+
async requestConfirmation(message, context) {
|
|
290
282
|
const relatedRequestId = this.elicitationRelatedRequestId(context);
|
|
291
283
|
this.session.logger.info({
|
|
292
284
|
id: index_js_1.LogId.toolConfirmationRequested,
|
|
@@ -319,7 +311,7 @@ class ToolBase {
|
|
|
319
311
|
}
|
|
320
312
|
const startedAt = Date.now();
|
|
321
313
|
try {
|
|
322
|
-
const confirmed = await this.elicitation.requestConfirmation(
|
|
314
|
+
const confirmed = await this.elicitation.requestConfirmation(message, {
|
|
323
315
|
relatedRequestId,
|
|
324
316
|
progressToken: context._meta?.progressToken,
|
|
325
317
|
sendNotification: context.sendNotification,
|
|
@@ -343,6 +335,9 @@ class ToolBase {
|
|
|
343
335
|
});
|
|
344
336
|
throw error;
|
|
345
337
|
}
|
|
338
|
+
finally {
|
|
339
|
+
context.elicitationDurationMs = (context.elicitationDurationMs ?? 0) + (Date.now() - startedAt);
|
|
340
|
+
}
|
|
346
341
|
}
|
|
347
342
|
/**
|
|
348
343
|
* Resolves the request id that elicitation requests should be related to.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@ export declare enum ErrorCodes {
|
|
|
8
8
|
AtlasVectorSearchInvalidQuery = 1000007,
|
|
9
9
|
InvalidPipeline = 1000008,
|
|
10
10
|
ForbiddenServerSideJS = 1000009,
|
|
11
|
-
UnknownConnectionId = 1000010
|
|
11
|
+
UnknownConnectionId = 1000010,
|
|
12
|
+
ConfirmationDeclined = 1000011
|
|
12
13
|
}
|
|
13
14
|
export declare class MongoDBError<ErrorCode extends ErrorCodes = ErrorCodes> extends Error {
|
|
14
15
|
code: ErrorCode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,qBAAqB,UAAY;IACjC,6BAA6B,UAAY;IACzC,iBAAiB,UAAY;IAC7B,uBAAuB,UAAY;IACnC,uBAAuB,UAAY;IACnC,8BAA8B,UAAY;IAC1C,6BAA6B,UAAY;IACzC,eAAe,UAAY;IAC3B,qBAAqB,UAAY;IACjC,mBAAmB,UAAY;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,qBAAqB,UAAY;IACjC,6BAA6B,UAAY;IACzC,iBAAiB,UAAY;IAC7B,uBAAuB,UAAY;IACnC,uBAAuB,UAAY;IACnC,8BAA8B,UAAY;IAC1C,6BAA6B,UAAY;IACzC,eAAe,UAAY;IAC3B,qBAAqB,UAAY;IACjC,mBAAmB,UAAY;IAC/B,oBAAoB,UAAY;CACnC;AAED,qBAAa,YAAY,CAAC,SAAS,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,KAAK;IAEnE,IAAI,EAAE,SAAS;gBAAf,IAAI,EAAE,SAAS,EACtB,OAAO,EAAE,MAAM;CAItB"}
|
|
@@ -10,6 +10,7 @@ export var ErrorCodes;
|
|
|
10
10
|
ErrorCodes[ErrorCodes["InvalidPipeline"] = 1000008] = "InvalidPipeline";
|
|
11
11
|
ErrorCodes[ErrorCodes["ForbiddenServerSideJS"] = 1000009] = "ForbiddenServerSideJS";
|
|
12
12
|
ErrorCodes[ErrorCodes["UnknownConnectionId"] = 1000010] = "UnknownConnectionId";
|
|
13
|
+
ErrorCodes[ErrorCodes["ConfirmationDeclined"] = 1000011] = "ConfirmationDeclined";
|
|
13
14
|
})(ErrorCodes || (ErrorCodes = {}));
|
|
14
15
|
export class MongoDBError extends Error {
|
|
15
16
|
constructor(code, message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAYX;AAZD,WAAY,UAAU;IAClB,mFAAiC,CAAA;IACjC,mGAAyC,CAAA;IACzC,2EAA6B,CAAA;IAC7B,uFAAmC,CAAA;IACnC,uFAAmC,CAAA;IACnC,qGAA0C,CAAA;IAC1C,mGAAyC,CAAA;IACzC,uEAA2B,CAAA;IAC3B,mFAAiC,CAAA;IACjC,+EAA+B,CAAA;IAC/B,iFAAgC,CAAA;AACpC,CAAC,EAZW,UAAU,KAAV,UAAU,QAYrB;AAED,MAAM,OAAO,YAAwD,SAAQ,KAAK;IAC9E,YACW,IAAe,EACtB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAW;IAI1B,CAAC;CACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This file was generated by scripts/updatePackageVersion.ts - Do not edit it manually.
|
|
2
2
|
export const packageInfo = {
|
|
3
|
-
version: "2.0.1-alpha.
|
|
3
|
+
version: "2.0.1-alpha.5",
|
|
4
4
|
mcpServerName: "MongoDB MCP Server",
|
|
5
5
|
engines: {
|
|
6
6
|
node: "^20.19.0 || ^22.13.0 || >= 24.0.0",
|
|
@@ -9,4 +9,32 @@ export declare function assertNoServerSideJS(value: unknown): void;
|
|
|
9
9
|
* i.e. it is a `$out` or `$merge` stage.
|
|
10
10
|
*/
|
|
11
11
|
export declare function isWriteStage(stage: Record<string, unknown>): boolean;
|
|
12
|
+
/** The collection a write stage targets, along with how it will write to it. */
|
|
13
|
+
export type WriteStageTarget = {
|
|
14
|
+
namespace: string | undefined;
|
|
15
|
+
} & ({
|
|
16
|
+
operator: "$out";
|
|
17
|
+
} | {
|
|
18
|
+
operator: "$merge";
|
|
19
|
+
/** The `whenMatched` mode, when the stage names one of the documented modes. */
|
|
20
|
+
whenMatched?: string;
|
|
21
|
+
/** The `whenNotMatched` mode, when the stage names one of the documented modes. */
|
|
22
|
+
whenNotMatched?: string;
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Describes the collections that the write stages of a pipeline target, so that
|
|
26
|
+
* the user can be told what a `$out` or `$merge` is about to affect before it
|
|
27
|
+
* runs.
|
|
28
|
+
*
|
|
29
|
+
* Only top-level stages are inspected, matching {@link isWriteStage}: `$out` and
|
|
30
|
+
* `$merge` are not permitted inside sub-pipelines. MongoDB also requires them to
|
|
31
|
+
* be the last stage, so in practice at most one target is returned; the array
|
|
32
|
+
* shape means a malformed pipeline is still described in full rather than
|
|
33
|
+
* partially.
|
|
34
|
+
*
|
|
35
|
+
* @param pipeline - The aggregation pipeline to inspect.
|
|
36
|
+
* @param defaultDatabase - The database the aggregation runs against, used to
|
|
37
|
+
* qualify stages that name only a collection.
|
|
38
|
+
*/
|
|
39
|
+
export declare function getWriteStageTargets(pipeline: Record<string, unknown>[], defaultDatabase: string): WriteStageTarget[];
|
|
12
40
|
//# sourceMappingURL=mqlGuards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqlGuards.d.ts","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAUzD;
|
|
1
|
+
{"version":3,"file":"mqlGuards.d.ts","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAUzD;AAkBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEpE;AAED,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,CAC7D;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IACI,QAAQ,EAAE,QAAQ,CAAC;IACnB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,CACN,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA4BrH"}
|
|
@@ -39,11 +39,84 @@ export function assertNoServerSideJS(value) {
|
|
|
39
39
|
throw new MongoDBError(ErrorCodes.ForbiddenServerSideJS, `The use of server-side JavaScript operators (such as ${SERVER_SIDE_JS_OPERATORS.join(", ")}) is disabled. The "${operator}" operator is not allowed. To enable it, set the "disableServerSideJs" configuration option to false.`);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* The write operator of an aggregation stage, or `undefined` when the stage
|
|
44
|
+
* does not write to a collection.
|
|
45
|
+
*/
|
|
46
|
+
function writeStageOperator(stage) {
|
|
47
|
+
if ("$out" in stage) {
|
|
48
|
+
return "$out";
|
|
49
|
+
}
|
|
50
|
+
if ("$merge" in stage) {
|
|
51
|
+
return "$merge";
|
|
52
|
+
}
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
42
55
|
/**
|
|
43
56
|
* Returns true when the given aggregation stage writes data to a collection,
|
|
44
57
|
* i.e. it is a `$out` or `$merge` stage.
|
|
45
58
|
*/
|
|
46
59
|
export function isWriteStage(stage) {
|
|
47
|
-
return
|
|
60
|
+
return writeStageOperator(stage) !== undefined;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Describes the collections that the write stages of a pipeline target, so that
|
|
64
|
+
* the user can be told what a `$out` or `$merge` is about to affect before it
|
|
65
|
+
* runs.
|
|
66
|
+
*
|
|
67
|
+
* Only top-level stages are inspected, matching {@link isWriteStage}: `$out` and
|
|
68
|
+
* `$merge` are not permitted inside sub-pipelines. MongoDB also requires them to
|
|
69
|
+
* be the last stage, so in practice at most one target is returned; the array
|
|
70
|
+
* shape means a malformed pipeline is still described in full rather than
|
|
71
|
+
* partially.
|
|
72
|
+
*
|
|
73
|
+
* @param pipeline - The aggregation pipeline to inspect.
|
|
74
|
+
* @param defaultDatabase - The database the aggregation runs against, used to
|
|
75
|
+
* qualify stages that name only a collection.
|
|
76
|
+
*/
|
|
77
|
+
export function getWriteStageTargets(pipeline, defaultDatabase) {
|
|
78
|
+
const targets = [];
|
|
79
|
+
for (const stage of pipeline) {
|
|
80
|
+
switch (writeStageOperator(stage)) {
|
|
81
|
+
case "$out":
|
|
82
|
+
targets.push({ operator: "$out", namespace: resolveNamespace(stage.$out, defaultDatabase) });
|
|
83
|
+
break;
|
|
84
|
+
case "$merge": {
|
|
85
|
+
// The stage is either the target itself (`$merge: "coll"`) or a
|
|
86
|
+
// document describing it. `whenMatched` also accepts a custom
|
|
87
|
+
// update pipeline, which has no concise description, so only the
|
|
88
|
+
// documented string modes are reported.
|
|
89
|
+
const spec = isRecord(stage.$merge) ? stage.$merge : undefined;
|
|
90
|
+
targets.push({
|
|
91
|
+
operator: "$merge",
|
|
92
|
+
namespace: resolveNamespace(spec ? spec.into : stage.$merge, defaultDatabase),
|
|
93
|
+
...(typeof spec?.whenMatched === "string" ? { whenMatched: spec.whenMatched } : {}),
|
|
94
|
+
...(typeof spec?.whenNotMatched === "string" ? { whenNotMatched: spec.whenNotMatched } : {}),
|
|
95
|
+
});
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
case undefined:
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return targets;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Resolves the target of a `$out` stage or the `into` of a `$merge` stage to a
|
|
106
|
+
* fully qualified namespace. Returns `undefined` for any other shape, such as
|
|
107
|
+
* the `{ s3: ... }` target supported by Atlas Data Federation.
|
|
108
|
+
*/
|
|
109
|
+
function resolveNamespace(target, defaultDatabase) {
|
|
110
|
+
if (typeof target === "string") {
|
|
111
|
+
return `${defaultDatabase}.${target}`;
|
|
112
|
+
}
|
|
113
|
+
if (isRecord(target) && typeof target.coll === "string") {
|
|
114
|
+
const database = typeof target.db === "string" ? target.db : defaultDatabase;
|
|
115
|
+
return `${database}.${target.coll}`;
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
function isRecord(value) {
|
|
120
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
48
121
|
}
|
|
49
122
|
//# sourceMappingURL=mqlGuards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqlGuards.js","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;GAGG;AACH,MAAM,wBAAwB,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAU,CAAC;AAIlF;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,KAAc;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,wBAAwB,CAAC,QAAQ,CAAC,GAA2B,CAAC,EAAE,CAAC;gBACjE,OAAO,GAA2B,CAAC;YACvC,CAAC;YAED,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAC/C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAClB,UAAU,CAAC,qBAAqB,EAChC,wDAAwD,wBAAwB,CAAC,IAAI,CACjF,IAAI,CACP,uBAAuB,QAAQ,uGAAuG,CAC1I,CAAC;IACN,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAA8B;IACvD,OAAO,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"mqlGuards.js","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { WriteStageTarget } from "./mqlGuards.js";
|
|
2
|
+
/**
|
|
3
|
+
* Builds the message shown to the user before an aggregation containing a
|
|
4
|
+
* `$out` or `$merge` stage runs. The two operators differ in blast radius --
|
|
5
|
+
* `$out` replaces a collection wholesale while `$merge` modifies an existing
|
|
6
|
+
* one -- so each is described in its own terms, naming the affected namespace
|
|
7
|
+
* whenever it could be resolved.
|
|
8
|
+
*
|
|
9
|
+
* @param targets - The write stage targets, as returned by `getWriteStageTargets`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function buildWriteStageConfirmationMessage(targets: WriteStageTarget[]): string;
|
|
12
|
+
//# sourceMappingURL=writeStageConfirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeStageConfirmation.d.ts","sourceRoot":"","sources":["../../../src/helpers/writeStageConfirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAEtF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds the message shown to the user before an aggregation containing a
|
|
3
|
+
* `$out` or `$merge` stage runs. The two operators differ in blast radius --
|
|
4
|
+
* `$out` replaces a collection wholesale while `$merge` modifies an existing
|
|
5
|
+
* one -- so each is described in its own terms, naming the affected namespace
|
|
6
|
+
* whenever it could be resolved.
|
|
7
|
+
*
|
|
8
|
+
* @param targets - The write stage targets, as returned by `getWriteStageTargets`.
|
|
9
|
+
*/
|
|
10
|
+
export function buildWriteStageConfirmationMessage(targets) {
|
|
11
|
+
return `This aggregation contains ${targets.map(describeTarget).join(" and ")}. Proceed?`;
|
|
12
|
+
}
|
|
13
|
+
function describeTarget(target) {
|
|
14
|
+
const collection = target.namespace ? `\`${target.namespace}\`` : "its target collection";
|
|
15
|
+
switch (target.operator) {
|
|
16
|
+
case "$out":
|
|
17
|
+
return `a \`$out\` stage that will replace the entire contents of ${collection} with the pipeline output, permanently discarding any documents already there`;
|
|
18
|
+
case "$merge": {
|
|
19
|
+
const modes = [
|
|
20
|
+
target.whenMatched !== undefined ? `whenMatched: ${target.whenMatched}` : undefined,
|
|
21
|
+
target.whenNotMatched !== undefined ? `whenNotMatched: ${target.whenNotMatched}` : undefined,
|
|
22
|
+
].filter((mode) => mode !== undefined);
|
|
23
|
+
return `a \`$merge\` stage that will write the pipeline output into ${collection}, modifying data already in that collection${modes.length > 0 ? ` (${modes.join(", ")})` : ""}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=writeStageConfirmation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeStageConfirmation.js","sourceRoot":"","sources":["../../../src/helpers/writeStageConfirmation.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAA2B;IAC1E,OAAO,6BAA6B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC9F,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAE1F,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,MAAM;YACP,OAAO,6DAA6D,UAAU,+EAA+E,CAAC;QAClK,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG;gBACV,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;gBACnF,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS;aAC/F,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAEvC,OAAO,+DAA+D,UAAU,8CAA8C,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrL,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { ToolArgs, ToolCategory } from "../tool.js";
|
|
2
|
+
import type { ToolArgs, ToolCategory, ToolExecutionContext } from "../tool.js";
|
|
3
3
|
import { ToolBase } from "../tool.js";
|
|
4
4
|
import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
|
|
5
5
|
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
6
6
|
import type { ConnectionEntry } from "../../common/connectionRegistry.js";
|
|
7
7
|
import type { Server } from "../../server.js";
|
|
8
8
|
import type { ConnectionMetadata } from "../../telemetry/types.js";
|
|
9
|
+
import { type WriteStageTarget } from "../../helpers/mqlGuards.js";
|
|
9
10
|
export declare const DBOperationArgs: {
|
|
10
11
|
database: z.ZodString;
|
|
11
12
|
};
|
|
@@ -57,6 +58,11 @@ export declare abstract class MongoDBToolBase extends ToolBase {
|
|
|
57
58
|
* and projection for a find), since each is validated independently.
|
|
58
59
|
*/
|
|
59
60
|
protected assertMqlIsAllowed(...values: (Record<string, unknown> | Record<string, unknown>[] | undefined)[]): void;
|
|
61
|
+
/**
|
|
62
|
+
* Asks the user to confirm the write stages of an aggregation pipeline,
|
|
63
|
+
* throwing when they decline so that the pipeline never runs.
|
|
64
|
+
*/
|
|
65
|
+
protected confirmWriteStages(targets: WriteStageTarget[], context: ToolExecutionContext): Promise<void>;
|
|
60
66
|
private assertSingleMqlValueIsAllowed;
|
|
61
67
|
/**
|
|
62
68
|
* The connectionId description varies by whether a connection string is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodbTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAiB,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mongodbTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAiB,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAIvG,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AASF,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAQF,8BAAsB,eAAgB,SAAQ,QAAQ;IAClD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAa;IAE1C,SAAS,KAAK,qBAAqB,IAAI,OAAO,CAI7C;IAED;;;;OAIG;cACa,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAI3F,iGAAiG;cACjF,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cAItF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAKzD,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1E;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAOjG;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI;IAMlH;;;OAGG;cACa,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7G,OAAO,CAAC,6BAA6B;IAgCrC;;;OAGG;cACgB,gBAAgB,IAAI,MAAM;IAOtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;cAaxB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAoD3G;;;;;;;;OAQG;cACa,wBAAwB,CACpC,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAErC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,GACvC,OAAO,CAAC,kBAAkB,CAAC;CAOjC"}
|
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import { ToolBase } from "../tool.js";
|
|
3
3
|
import { ErrorCodes, MongoDBError } from "../../common/errors.js";
|
|
4
4
|
import { assertNoServerSideJS, isWriteStage } from "../../helpers/mqlGuards.js";
|
|
5
|
+
import { buildWriteStageConfirmationMessage } from "../../helpers/writeStageConfirmation.js";
|
|
5
6
|
import { EXPORT_TOOL_NAME } from "../../helpers/constants.js";
|
|
6
7
|
export const DBOperationArgs = {
|
|
7
8
|
database: z.string().describe("Database name"),
|
|
@@ -84,6 +85,19 @@ export class MongoDBToolBase extends ToolBase {
|
|
|
84
85
|
this.assertSingleMqlValueIsAllowed(value);
|
|
85
86
|
}
|
|
86
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Asks the user to confirm the write stages of an aggregation pipeline,
|
|
90
|
+
* throwing when they decline so that the pipeline never runs.
|
|
91
|
+
*/
|
|
92
|
+
async confirmWriteStages(targets, context) {
|
|
93
|
+
if (this.requiresConfirmation()) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (await this.requestConfirmation(buildWriteStageConfirmationMessage(targets), context)) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
throw new MongoDBError(ErrorCodes.ConfirmationDeclined, "User did not confirm the write stages of the aggregation pipeline so the aggregation was not performed.");
|
|
100
|
+
}
|
|
87
101
|
assertSingleMqlValueIsAllowed(value) {
|
|
88
102
|
if (this.config.disableServerSideJs) {
|
|
89
103
|
assertNoServerSideJS(value);
|
|
@@ -149,6 +163,7 @@ export class MongoDBToolBase extends ToolBase {
|
|
|
149
163
|
}
|
|
150
164
|
return super.handleError(error, args);
|
|
151
165
|
}
|
|
166
|
+
case ErrorCodes.ConfirmationDeclined:
|
|
152
167
|
case ErrorCodes.ForbiddenCollscan:
|
|
153
168
|
return {
|
|
154
169
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodbTool.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,EAAE,oBAAoB,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"mongodbTool.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,7 +77,7 @@ export declare class AggregateTool extends MongoDBToolBase {
|
|
|
77
77
|
"tool.responseBytesLimit": "tool.responseBytesLimit";
|
|
78
78
|
}>>;
|
|
79
79
|
};
|
|
80
|
-
protected execute({ connectionId, database, collection, pipeline, responseBytesLimit }: ToolArgs<typeof this.argsShape>,
|
|
80
|
+
protected execute({ connectionId, database, collection, pipeline, responseBytesLimit }: ToolArgs<typeof this.argsShape>, context: ToolExecutionContext): Promise<ToolResult<typeof this.outputSchema>>;
|
|
81
81
|
private safeCloseCursor;
|
|
82
82
|
private assertOnlyUsesPermittedStages;
|
|
83
83
|
private countAggregationResultDocuments;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuB/F,eAAO,MAAM,mCAAmC,kvKAiG/C,CAAC;AAWF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEzB,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAe;IAC9C,MAAM,CAAC,QAAQ,SAAe;IACvB,WAAW,SAAqD;IAChE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWd;IACF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IAE7B,YAAY;;;;;;;;MAAyB;cAErC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACrG,
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuB/F,eAAO,MAAM,mCAAmC,kvKAiG/C,CAAC;AAWF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEzB,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAe;IAC9C,MAAM,CAAC,QAAQ,SAAe;IACvB,WAAW,SAAqD;IAChE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWd;IACF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IAE7B,YAAY;;;;;;;;MAAyB;cAErC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACrG,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAyJlC,eAAe;IAY7B,OAAO,CAAC,6BAA6B;YAkBvB,+BAA+B;YAuC/B,uBAAuB;IA+CrC,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;CAGxB"}
|
|
@@ -9,7 +9,7 @@ import { AGG_COUNT_MAX_TIME_MS_CAP, ONE_MB, CURSOR_LIMITS_TO_LLM_TEXT, CURSOR_LI
|
|
|
9
9
|
import { LogId } from "../../../common/logging/index.js";
|
|
10
10
|
import { AnyAggregateStage, VectorSearchStage } from "../mongodbSchemas.js";
|
|
11
11
|
import { assertVectorSearchFilterFieldsAreIndexed, } from "../../../helpers/assertVectorSearchFilterFieldsAreIndexed.js";
|
|
12
|
-
import {
|
|
12
|
+
import { getWriteStageTargets } from "../../../helpers/mqlGuards.js";
|
|
13
13
|
import { bsonToJson } from "../../../helpers/bsonToJson.js";
|
|
14
14
|
export const pipelineDescriptionWithVectorSearch = `\
|
|
15
15
|
An array of aggregation stages to execute.
|
|
@@ -136,7 +136,8 @@ export class AggregateTool extends MongoDBToolBase {
|
|
|
136
136
|
};
|
|
137
137
|
this.outputSchema = AggregateOutputSchema;
|
|
138
138
|
}
|
|
139
|
-
async execute({ connectionId, database, collection, pipeline, responseBytesLimit },
|
|
139
|
+
async execute({ connectionId, database, collection, pipeline, responseBytesLimit }, context) {
|
|
140
|
+
const { signal } = context;
|
|
140
141
|
let aggregationCursor = undefined;
|
|
141
142
|
try {
|
|
142
143
|
const provider = await this.resolveConnection(connectionId);
|
|
@@ -196,7 +197,9 @@ export class AggregateTool extends MongoDBToolBase {
|
|
|
196
197
|
let documents;
|
|
197
198
|
let count;
|
|
198
199
|
let appliedLimits = [];
|
|
199
|
-
|
|
200
|
+
const writeStageTargets = getWriteStageTargets(pipeline, database);
|
|
201
|
+
if (writeStageTargets.length > 0) {
|
|
202
|
+
await this.confirmWriteStages(writeStageTargets, context);
|
|
200
203
|
// This is a write pipeline, so special-case it and don't attempt to apply limits or caps
|
|
201
204
|
aggregationCursor = provider.aggregate(database, collection, pipeline, {
|
|
202
205
|
signal,
|