Skip to content

Commit 7eed735

Browse files
committed
chore: add the Manager suffix
1 parent 19a333c commit 7eed735

File tree

11 files changed

+37
-33
lines changed

11 files changed

+37
-33
lines changed

src/common/search/vectorSearchEmbeddings.ts renamed to src/common/search/vectorSearchEmbeddingsManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export type VectorFieldIndexDefinition = {
1212
};
1313

1414
export type EmbeddingNamespace = `${string}.${string}`;
15-
export class VectorSearchEmbeddings {
15+
export class VectorSearchEmbeddingsManager {
1616
constructor(
1717
private readonly config: UserConfig,
1818
private readonly connectionManager: ConnectionManager,

src/common/session.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-d
1616
import { ErrorCodes, MongoDBError } from "./errors.js";
1717
import type { ExportsManager } from "./exportsManager.js";
1818
import type { Keychain } from "./keychain.js";
19-
import type { VectorSearchEmbeddings } from "./search/vectorSearchEmbeddings.js";
19+
import type { VectorSearchEmbeddingsManager } from "./search/vectorSearchEmbeddingsManager.js";
2020

2121
export interface SessionOptions {
2222
apiBaseUrl: string;
@@ -26,7 +26,7 @@ export interface SessionOptions {
2626
exportsManager: ExportsManager;
2727
connectionManager: ConnectionManager;
2828
keychain: Keychain;
29-
vectorSearchEmbeddings: VectorSearchEmbeddings;
29+
vectorSearchEmbeddingsManager: VectorSearchEmbeddingsManager;
3030
}
3131

3232
export type SessionEvents = {
@@ -42,7 +42,7 @@ export class Session extends EventEmitter<SessionEvents> {
4242
readonly connectionManager: ConnectionManager;
4343
readonly apiClient: ApiClient;
4444
readonly keychain: Keychain;
45-
readonly vectorSearchEmbeddings: VectorSearchEmbeddings;
45+
readonly vectorSearchEmbeddingsManager: VectorSearchEmbeddingsManager;
4646

4747
mcpClient?: {
4848
name?: string;
@@ -60,7 +60,7 @@ export class Session extends EventEmitter<SessionEvents> {
6060
connectionManager,
6161
exportsManager,
6262
keychain,
63-
vectorSearchEmbeddings,
63+
vectorSearchEmbeddingsManager,
6464
}: SessionOptions) {
6565
super();
6666

@@ -77,7 +77,7 @@ export class Session extends EventEmitter<SessionEvents> {
7777
this.apiClient = new ApiClient({ baseUrl: apiBaseUrl, credentials }, logger);
7878
this.exportsManager = exportsManager;
7979
this.connectionManager = connectionManager;
80-
this.vectorSearchEmbeddings = vectorSearchEmbeddings;
80+
this.vectorSearchEmbeddingsManager = vectorSearchEmbeddingsManager;
8181
this.connectionManager.events.on("connection-success", () => this.emit("connect"));
8282
this.connectionManager.events.on("connection-time-out", (error) => this.emit("connection-error", error));
8383
this.connectionManager.events.on("connection-close", () => this.emit("disconnect"));

src/tools/mongodb/create/createIndex.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ export class CreateIndexTool extends MongoDBToolBase {
126126
responseClarification =
127127
" Since this is a vector search index, it may take a while for the index to build. Use the `list-indexes` tool to check the index status.";
128128
// clean up the embeddings cache so it considers the new index
129-
this.session.vectorSearchEmbeddings.cleanupEmbeddingsForNamespace({ database, collection });
129+
this.session.vectorSearchEmbeddingsManager.cleanupEmbeddingsForNamespace({ database, collection });
130130
}
131131

132132
break;

src/tools/mongodb/create/insertMany.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export class InsertManyTool extends MongoDBToolBase {
2727
const embeddingValidations = new Set(
2828
...(await Promise.all(
2929
documents.flatMap((document) =>
30-
this.session.vectorSearchEmbeddings.findFieldsWithWrongEmbeddings(
30+
this.session.vectorSearchEmbeddingsManager.findFieldsWithWrongEmbeddings(
3131
{ database, collection },
3232
document
3333
)

src/transports/base.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
} from "../common/connectionErrorHandler.js";
1717
import type { CommonProperties } from "../telemetry/types.js";
1818
import { Elicitation } from "../elicitation.js";
19-
import { VectorSearchEmbeddings } from "../common/search/vectorSearchEmbeddings.js";
19+
import { VectorSearchEmbeddingsManager } from "../common/search/vectorSearchEmbeddingsManager.js";
2020

2121
export type TransportRunnerConfig = {
2222
userConfig: UserConfig;
@@ -90,7 +90,7 @@ export abstract class TransportRunnerBase {
9090
exportsManager,
9191
connectionManager,
9292
keychain: Keychain.root,
93-
vectorSearchEmbeddings: new VectorSearchEmbeddings(this.userConfig, connectionManager),
93+
vectorSearchEmbeddingsManager: new VectorSearchEmbeddingsManager(this.userConfig, connectionManager),
9494
});
9595

9696
const telemetry = Telemetry.create(session, this.userConfig, this.deviceId, {

tests/integration/helpers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import { connectionErrorHandler } from "../../src/common/connectionErrorHandler.
2121
import { Keychain } from "../../src/common/keychain.js";
2222
import { Elicitation } from "../../src/elicitation.js";
2323
import type { MockClientCapabilities, createMockElicitInput } from "../utils/elicitationMocks.js";
24-
import { VectorSearchEmbeddings } from "../../src/common/search/vectorSearchEmbeddings.js";
24+
import { VectorSearchEmbeddingsManager } from "../../src/common/search/vectorSearchEmbeddingsManager.js";
2525

2626
export const driverOptions = setupDriverConfig({
2727
config,
@@ -113,7 +113,7 @@ export function setupIntegrationTest(
113113
exportsManager,
114114
connectionManager,
115115
keychain: new Keychain(),
116-
vectorSearchEmbeddings: new VectorSearchEmbeddings(userConfig, connectionManager),
116+
vectorSearchEmbeddingsManager: new VectorSearchEmbeddingsManager(userConfig, connectionManager),
117117
});
118118

119119
// Mock hasValidAccessToken for tests

tests/integration/telemetry.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { CompositeLogger } from "../../src/common/logger.js";
88
import { MCPConnectionManager } from "../../src/common/connectionManager.js";
99
import { ExportsManager } from "../../src/common/exportsManager.js";
1010
import { Keychain } from "../../src/common/keychain.js";
11-
import { VectorSearchEmbeddings } from "../../src/common/search/vectorSearchEmbeddings.js";
11+
import { VectorSearchEmbeddingsManager } from "../../src/common/search/vectorSearchEmbeddingsManager.js";
1212

1313
describe("Telemetry", () => {
1414
it("should resolve the actual device ID", async () => {
@@ -25,7 +25,7 @@ describe("Telemetry", () => {
2525
exportsManager: ExportsManager.init(config, logger),
2626
connectionManager: connectionManager,
2727
keychain: new Keychain(),
28-
vectorSearchEmbeddings: new VectorSearchEmbeddings(config, connectionManager),
28+
vectorSearchEmbeddingsManager: new VectorSearchEmbeddingsManager(config, connectionManager),
2929
}),
3030
config,
3131
deviceId

tests/integration/tools/mongodb/mongodbTool.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { ErrorCodes } from "../../../../src/common/errors.js";
2020
import { Keychain } from "../../../../src/common/keychain.js";
2121
import { Elicitation } from "../../../../src/elicitation.js";
2222
import { MongoDbTools } from "../../../../src/tools/mongodb/tools.js";
23-
import { VectorSearchEmbeddings } from "../../../../src/common/search/vectorSearchEmbeddings.js";
23+
import { VectorSearchEmbeddingsManager } from "../../../../src/common/search/vectorSearchEmbeddingsManager.js";
2424

2525
const injectedErrorHandler: ConnectionErrorHandler = (error) => {
2626
switch (error.code) {
@@ -109,7 +109,7 @@ describe("MongoDBTool implementations", () => {
109109
exportsManager,
110110
connectionManager,
111111
keychain: new Keychain(),
112-
vectorSearchEmbeddings: new VectorSearchEmbeddings(userConfig, connectionManager),
112+
vectorSearchEmbeddingsManager: new VectorSearchEmbeddingsManager(userConfig, connectionManager),
113113
});
114114
const telemetry = Telemetry.create(session, userConfig, deviceId);
115115

tests/unit/common/search/vectorSearchEmbeddings.test.ts renamed to tests/unit/common/search/vectorSearchEmbeddingsManager.test.ts

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { describe, it, expect, vi, beforeEach } from "vitest";
22
import type { MockedFunction } from "vitest";
3-
import { VectorSearchEmbeddings } from "../../../../src/common/search/vectorSearchEmbeddings.js";
3+
import { VectorSearchEmbeddingsManager } from "../../../../src/common/search/vectorSearchEmbeddingsManager.js";
44
import type {
55
EmbeddingNamespace,
66
VectorFieldIndexDefinition,
7-
} from "../../../../src/common/search/vectorSearchEmbeddings.js";
7+
} from "../../../../src/common/search/vectorSearchEmbeddingsManager.js";
88
import { BSON } from "bson";
99
import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
1010
import type { ConnectionManager, UserConfig } from "../../../../src/lib.js";
@@ -64,7 +64,7 @@ const embeddingConfig: Map<EmbeddingNamespace, VectorFieldIndexDefinition[]> = n
6464
],
6565
]);
6666

67-
describe("VectorSearchEmbeddings", () => {
67+
describe("VectorSearchEmbeddingsManager", () => {
6868
const embeddingValidationEnabled: UserConfig = { disableEmbeddingsValidation: false } as UserConfig;
6969
const embeddingValidationDisabled: UserConfig = { disableEmbeddingsValidation: true } as UserConfig;
7070
const eventEmitter = new EventEmitter();
@@ -93,7 +93,11 @@ describe("VectorSearchEmbeddings", () => {
9393
describe("embeddings cache", () => {
9494
it("the connection is closed gets cleared", async () => {
9595
const configCopy = new Map(embeddingConfig);
96-
const embeddings = new VectorSearchEmbeddings(embeddingValidationEnabled, connectionManager, configCopy);
96+
const embeddings = new VectorSearchEmbeddingsManager(
97+
embeddingValidationEnabled,
98+
connectionManager,
99+
configCopy
100+
);
97101

98102
eventEmitter.emit("connection-close");
99103
void embeddings; // we don't need to call it, it's already subscribed by the constructor
@@ -144,7 +148,7 @@ describe("VectorSearchEmbeddings", () => {
144148
});
145149

146150
it("retrieves the list of vector search indexes for that collection from the cluster", async () => {
147-
const embeddings = new VectorSearchEmbeddings(embeddingValidationEnabled, connectionManager);
151+
const embeddings = new VectorSearchEmbeddingsManager(embeddingValidationEnabled, connectionManager);
148152
const result = await embeddings.embeddingsForNamespace({ database, collection });
149153

150154
expect(result).toContainEqual({
@@ -156,14 +160,14 @@ describe("VectorSearchEmbeddings", () => {
156160
});
157161

158162
it("ignores any other type of index", async () => {
159-
const embeddings = new VectorSearchEmbeddings(embeddingValidationEnabled, connectionManager);
163+
const embeddings = new VectorSearchEmbeddingsManager(embeddingValidationEnabled, connectionManager);
160164
const result = await embeddings.embeddingsForNamespace({ database, collection });
161165

162166
expect(result?.filter((emb) => emb.type !== "vector")).toHaveLength(0);
163167
});
164168

165169
it("embeddings are cached in memory", async () => {
166-
const embeddings = new VectorSearchEmbeddings(embeddingValidationEnabled, connectionManager);
170+
const embeddings = new VectorSearchEmbeddingsManager(embeddingValidationEnabled, connectionManager);
167171
const result1 = await embeddings.embeddingsForNamespace({ database, collection });
168172
const result2 = await embeddings.embeddingsForNamespace({ database, collection });
169173

@@ -172,7 +176,7 @@ describe("VectorSearchEmbeddings", () => {
172176
});
173177

174178
it("embeddings are cached in memory until cleaned up", async () => {
175-
const embeddings = new VectorSearchEmbeddings(embeddingValidationEnabled, connectionManager);
179+
const embeddings = new VectorSearchEmbeddingsManager(embeddingValidationEnabled, connectionManager);
176180
const result1 = await embeddings.embeddingsForNamespace({ database, collection });
177181
embeddings.cleanupEmbeddingsForNamespace({ database, collection });
178182
const result2 = await embeddings.embeddingsForNamespace({ database, collection });
@@ -185,7 +189,7 @@ describe("VectorSearchEmbeddings", () => {
185189

186190
describe("embedding validation", () => {
187191
it("when there are no embeddings, all documents are valid", async () => {
188-
const embeddings = new VectorSearchEmbeddings(
192+
const embeddings = new VectorSearchEmbeddingsManager(
189193
embeddingValidationEnabled,
190194
connectionManager,
191195
new Map([[mapKey, []]])
@@ -197,10 +201,10 @@ describe("VectorSearchEmbeddings", () => {
197201

198202
describe("when there are embeddings", () => {
199203
describe("when the validation is disabled", () => {
200-
let embeddings: VectorSearchEmbeddings;
204+
let embeddings: VectorSearchEmbeddingsManager;
201205

202206
beforeEach(() => {
203-
embeddings = new VectorSearchEmbeddings(
207+
embeddings = new VectorSearchEmbeddingsManager(
204208
embeddingValidationDisabled,
205209
connectionManager,
206210
embeddingConfig
@@ -236,10 +240,10 @@ describe("VectorSearchEmbeddings", () => {
236240
});
237241

238242
describe("when the validation is enabled", () => {
239-
let embeddings: VectorSearchEmbeddings;
243+
let embeddings: VectorSearchEmbeddingsManager;
240244

241245
beforeEach(() => {
242-
embeddings = new VectorSearchEmbeddings(
246+
embeddings = new VectorSearchEmbeddingsManager(
243247
embeddingValidationEnabled,
244248
connectionManager,
245249
embeddingConfig

tests/unit/common/session.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { MCPConnectionManager } from "../../../src/common/connectionManager.js";
99
import { ExportsManager } from "../../../src/common/exportsManager.js";
1010
import { DeviceId } from "../../../src/helpers/deviceId.js";
1111
import { Keychain } from "../../../src/common/keychain.js";
12-
import { VectorSearchEmbeddings } from "../../../src/common/search/vectorSearchEmbeddings.js";
12+
import { VectorSearchEmbeddingsManager } from "../../../src/common/search/vectorSearchEmbeddingsManager.js";
1313
import { ErrorCodes, MongoDBError } from "../../../src/common/errors.js";
1414

1515
vi.mock("@mongosh/service-provider-node-driver");
@@ -34,7 +34,7 @@ describe("Session", () => {
3434
exportsManager: ExportsManager.init(config, logger),
3535
connectionManager: connectionManager,
3636
keychain: new Keychain(),
37-
vectorSearchEmbeddings: new VectorSearchEmbeddings(config, connectionManager),
37+
vectorSearchEmbeddingsManager: new VectorSearchEmbeddingsManager(config, connectionManager),
3838
});
3939

4040
MockNodeDriverServiceProvider.connect = vi.fn().mockResolvedValue({} as unknown as NodeDriverServiceProvider);

0 commit comments

Comments
 (0)