@rudderhq/agent-runtime-utils 0.5.1 → 0.5.2-canary.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.
@@ -1,6 +1,6 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { fingerprintRudderMcpToolManifest } from "./rudder-mcp-fingerprint.js";
3
- import { RUDDER_BROWSER_MCP_CONTRACT_HASH, RUDDER_BROWSER_MCP_TOOL_NAMES, RUDDER_CORE_MCP_CONTRACT_HASH, RUDDER_CORE_MCP_TOOL_NAMES, RUDDER_MCP_CONTRACT_VERSION, RUDDER_MCP_SERVER_NAME, isRudderBrowserMcpToolCandidate, } from "./rudder-mcp.js";
3
+ import { RUDDER_BROWSER_MCP_CONTRACT_HASH, RUDDER_BROWSER_MCP_SERVER_NAME, RUDDER_BROWSER_MCP_TOOL_NAMES, RUDDER_CORE_MCP_CONTRACT_HASH, RUDDER_CORE_MCP_TOOL_NAMES, RUDDER_MCP_CONTRACT_VERSION, RUDDER_MCP_SERVER_NAME, isRudderBrowserMcpToolCandidate, } from "./rudder-mcp.js";
4
4
  const PREFLIGHT_TIMEOUT_MS = 10_000;
5
5
  const RUDDER_SCHEMA_KEYS = new Set([
6
6
  "type",
@@ -9,6 +9,14 @@ const RUDDER_SCHEMA_KEYS = new Set([
9
9
  "items",
10
10
  "additionalProperties",
11
11
  "required",
12
+ "enum",
13
+ "minimum",
14
+ "maximum",
15
+ "minLength",
16
+ "maxLength",
17
+ "minItems",
18
+ "maxItems",
19
+ "oneOf",
12
20
  ]);
13
21
  const JSON_SCHEMA_TYPES = new Set([
14
22
  "array",
@@ -52,11 +60,25 @@ function isValidRudderSchemaNode(value) {
52
60
  const schema = value;
53
61
  if (Object.keys(schema).some((key) => !RUDDER_SCHEMA_KEYS.has(key)))
54
62
  return false;
55
- const types = schemaTypes(schema.type);
56
- if (!types)
63
+ const types = schema.type === undefined ? [] : schemaTypes(schema.type);
64
+ if (types === null)
57
65
  return false;
58
66
  if (schema.description !== undefined && typeof schema.description !== "string")
59
67
  return false;
68
+ if (schema.enum !== undefined && (!Array.isArray(schema.enum) || schema.enum.length === 0))
69
+ return false;
70
+ for (const key of ["minimum", "maximum", "minLength", "maxLength", "minItems", "maxItems"]) {
71
+ if (schema[key] !== undefined
72
+ && (typeof schema[key] !== "number" || !Number.isFinite(schema[key]) || Number(schema[key]) < 0)) {
73
+ return false;
74
+ }
75
+ }
76
+ if (schema.oneOf !== undefined
77
+ && (!Array.isArray(schema.oneOf)
78
+ || schema.oneOf.length === 0
79
+ || !schema.oneOf.every(isValidRudderSchemaNode))) {
80
+ return false;
81
+ }
60
82
  const supportsObject = types.includes("object");
61
83
  const supportsArray = types.includes("array");
62
84
  if (schema.additionalProperties !== undefined) {
@@ -129,6 +151,18 @@ function failed(command, code, message, partial = {}) {
129
151
  tools: partial.tools ?? [],
130
152
  };
131
153
  }
154
+ function failedCore(command, code, message, partial = {}) {
155
+ return {
156
+ available: false,
157
+ provenance: command.provenance,
158
+ version: partial.version ?? null,
159
+ contractVersion: partial.contractVersion ?? null,
160
+ coreContractHash: partial.coreContractHash ?? null,
161
+ diagnosticCode: code,
162
+ diagnostic: message,
163
+ tools: partial.tools ?? [],
164
+ };
165
+ }
132
166
  export function assertRudderMcpCoreAvailable(result) {
133
167
  if (result.available)
134
168
  return;
@@ -207,30 +241,23 @@ async function exchange(command, env, timeoutMs) {
207
241
  child.stdin.write(`${JSON.stringify({ jsonrpc: "2.0", id: "tools-list", method: "tools/list", params: {} })}\n`);
208
242
  });
209
243
  }
210
- function hasExactProviderSurface(result, browserEnabled) {
211
- const expectedNames = [
212
- ...RUDDER_CORE_MCP_TOOL_NAMES,
213
- ...(browserEnabled ? RUDDER_BROWSER_MCP_TOOL_NAMES : []),
214
- ];
215
- return result.available && hasExactNames(result.tools.map((tool) => tool.name), expectedNames);
216
- }
217
244
  async function preflightRudderMcpServerOnce(input) {
218
245
  const env = Object.fromEntries(Object.entries({ ...input.runtimeEnv, ...(input.command.env ?? {}), ...(input.managedEnv ?? {}) })
219
246
  .filter((entry) => typeof entry[1] === "string"));
220
247
  delete env.RUDDER_DESKTOP_CLI_ENTRY;
221
- env.RUDDER_BROWSER_ENABLED = input.browserEnabled ? "true" : "false";
248
+ env.RUDDER_BROWSER_ENABLED = "false";
222
249
  let responses;
223
250
  try {
224
251
  responses = await exchange(input.command, env, input.timeoutMs ?? PREFLIGHT_TIMEOUT_MS);
225
252
  }
226
253
  catch (error) {
227
254
  const detail = error instanceof Error ? error.message : String(error);
228
- return failed(input.command, "browser_bundle_handshake_failed", `Rudder MCP initialize/tools-list handshake failed: ${detail}; core Rudder tools are unavailable.`);
255
+ return failedCore(input.command, "core_bundle_handshake_failed", `Rudder MCP initialize/tools-list handshake failed: ${detail}; core Rudder tools are unavailable.`);
229
256
  }
230
257
  const initialize = responses.get("initialize");
231
258
  const toolsList = responses.get("tools-list");
232
259
  if (initialize?.error || toolsList?.error) {
233
- return failed(input.command, "browser_bundle_handshake_failed", "Rudder MCP initialize/tools-list returned a protocol error; core Rudder tools are unavailable.");
260
+ return failedCore(input.command, "core_bundle_handshake_failed", "Rudder MCP initialize/tools-list returned a protocol error; core Rudder tools are unavailable.");
234
261
  }
235
262
  const initializeResult = asRecord(initialize?.result);
236
263
  const serverInfo = asRecord(initializeResult.serverInfo);
@@ -239,10 +266,9 @@ async function preflightRudderMcpServerOnce(input) {
239
266
  const version = asExactString(serverInfo.version);
240
267
  const contractVersion = asExactString(rudder.contractVersion);
241
268
  const coreContractHash = asExactString(rudder.coreContractHash);
242
- const contractHash = asExactString(rudder.browserContractHash);
243
269
  const listed = asRecord(toolsList?.result).tools;
244
270
  if (!Array.isArray(listed)) {
245
- return failed(input.command, "browser_bundle_handshake_failed", "Rudder MCP tools/list returned an invalid manifest; core Rudder tools are unavailable.", { version, contractVersion, coreContractHash, contractHash });
271
+ return failedCore(input.command, "core_bundle_tools_mismatch", "Rudder MCP tools/list returned an invalid manifest; core Rudder tools are unavailable.", { version, contractVersion, coreContractHash });
246
272
  }
247
273
  const parsedTools = listed.map((entry) => {
248
274
  const tool = asRecord(entry);
@@ -261,64 +287,116 @@ async function preflightRudderMcpServerOnce(input) {
261
287
  const tools = parsedTools
262
288
  .filter((entry) => entry !== null)
263
289
  .map(({ hasCanonicalInputSchema: _hasCanonicalInputSchema, ...tool }) => tool);
264
- const partial = { version, contractVersion, coreContractHash, contractHash, tools };
290
+ const partial = { version, contractVersion, coreContractHash, tools };
265
291
  if (asExactString(serverInfo.name) !== RUDDER_MCP_SERVER_NAME) {
266
- return failed(input.command, "browser_bundle_server_mismatch", "Rudder MCP server identity did not match the managed bundle; core Rudder tools are unavailable.", partial);
292
+ return failedCore(input.command, "core_bundle_server_mismatch", "Rudder MCP server identity did not match the managed bundle; core Rudder tools are unavailable.", partial);
267
293
  }
268
294
  const coreTools = parsedTools.filter((tool) => tool && !isRudderBrowserMcpToolCandidate(tool.name));
269
295
  const coreToolNames = coreTools.map((tool) => tool.name);
270
296
  const observedCoreContractHash = semanticManifestHash(coreTools.filter((tool) => tool !== null));
297
+ if (contractVersion !== RUDDER_MCP_CONTRACT_VERSION
298
+ || coreContractHash !== RUDDER_CORE_MCP_CONTRACT_HASH) {
299
+ return failedCore(input.command, "core_bundle_contract_mismatch", "Rudder MCP core contract hash did not match the runtime bundle; core MCP is unavailable.", partial);
300
+ }
271
301
  if (parsedTools.some((tool) => tool === null)
302
+ || parsedTools.length !== coreTools.length
272
303
  || !hasExactNames(coreToolNames, RUDDER_CORE_MCP_TOOL_NAMES)
273
304
  || coreTools.some((tool) => !tool.hasCanonicalInputSchema)
274
- || coreContractHash !== RUDDER_CORE_MCP_CONTRACT_HASH
275
305
  || observedCoreContractHash !== RUDDER_CORE_MCP_CONTRACT_HASH) {
276
- return failed(input.command, "browser_bundle_handshake_failed", "Rudder MCP tools/list did not match the canonical core Rudder manifest; core MCP is unavailable.", partial);
306
+ return failedCore(input.command, "core_bundle_tools_mismatch", "Rudder MCP tools/list did not match the canonical core Rudder manifest; core MCP is unavailable.", partial);
277
307
  }
278
308
  if (input.command.expectedVersion && version !== input.command.expectedVersion) {
279
- return failed(input.command, "browser_bundle_version_mismatch", `Rudder MCP bundle version mismatch (expected ${input.command.expectedVersion}, received ${version ?? "unknown"}); optional Browser capability was disabled.`, partial);
280
- }
281
- if (contractVersion !== RUDDER_MCP_CONTRACT_VERSION || contractHash !== RUDDER_BROWSER_MCP_CONTRACT_HASH) {
282
- return failed(input.command, "browser_bundle_contract_mismatch", "Rudder MCP Browser contract hash did not match the runtime bundle; optional Browser capability was disabled.", partial);
283
- }
284
- const browserTools = parsedTools.filter((tool) => tool && isRudderBrowserMcpToolCandidate(tool.name));
285
- const browserToolNames = browserTools.map((tool) => tool.name);
286
- const expectedBrowserTools = input.browserEnabled ? [...RUDDER_BROWSER_MCP_TOOL_NAMES] : [];
287
- const observedBrowserContractHash = semanticManifestHash(browserTools.filter((tool) => tool !== null));
288
- if (!hasExactNames(browserToolNames, expectedBrowserTools)
289
- || browserTools.some((tool) => !tool.hasCanonicalInputSchema)
290
- || (input.browserEnabled && observedBrowserContractHash !== RUDDER_BROWSER_MCP_CONTRACT_HASH)) {
291
- return failed(input.command, "browser_bundle_tools_mismatch", "Rudder MCP Browser tool manifest did not expose the exact managed tool set; optional Browser capability was disabled.", partial);
309
+ return failedCore(input.command, "core_bundle_version_mismatch", `Rudder MCP bundle version mismatch (expected ${input.command.expectedVersion}, received ${version ?? "unknown"}); core Rudder tools are unavailable.`, partial);
292
310
  }
293
311
  return {
294
312
  available: true,
295
- browserAvailable: input.browserEnabled,
296
313
  provenance: input.command.provenance,
297
314
  version,
298
315
  contractVersion,
299
316
  coreContractHash,
300
- contractHash,
301
317
  diagnosticCode: null,
302
318
  diagnostic: null,
303
319
  tools,
304
320
  };
305
321
  }
306
322
  export async function preflightRudderMcpServer(input) {
307
- const requested = await preflightRudderMcpServerOnce(input);
308
- if (!requested.available || (input.browserEnabled && requested.browserAvailable))
309
- return requested;
310
- if (!input.browserEnabled) {
311
- if (hasExactProviderSurface(requested, false))
312
- return requested;
313
- return failed(input.command, "browser_bundle_handshake_failed", "Rudder MCP core-only tools/list did not expose the exact canonical core manifest; core MCP is unavailable.", { ...requested, available: false });
323
+ return preflightRudderMcpServerOnce(input);
324
+ }
325
+ export async function preflightRudderBrowserMcpServer(input) {
326
+ const env = Object.fromEntries(Object.entries({ ...input.runtimeEnv, ...(input.command.env ?? {}), ...(input.managedEnv ?? {}) })
327
+ .filter((entry) => typeof entry[1] === "string"));
328
+ delete env.RUDDER_DESKTOP_CLI_ENTRY;
329
+ env.RUDDER_BROWSER_ENABLED = "true";
330
+ let responses;
331
+ try {
332
+ responses = await exchange(input.command, env, input.timeoutMs ?? PREFLIGHT_TIMEOUT_MS);
333
+ }
334
+ catch (error) {
335
+ const detail = error instanceof Error ? error.message : String(error);
336
+ return failed(input.command, "browser_bundle_handshake_failed", `Rudder Browser MCP initialize/tools-list handshake failed: ${detail}; optional Browser capability was disabled.`, { available: true });
337
+ }
338
+ const initialize = responses.get("initialize");
339
+ const toolsList = responses.get("tools-list");
340
+ if (initialize?.error || toolsList?.error) {
341
+ return failed(input.command, "browser_bundle_handshake_failed", "Rudder Browser MCP initialize/tools-list returned a protocol error; optional Browser capability was disabled.", { available: true });
342
+ }
343
+ const initializeResult = asRecord(initialize?.result);
344
+ const serverInfo = asRecord(initializeResult.serverInfo);
345
+ const rudder = asRecord(asRecord(asRecord(initializeResult.capabilities).experimental).rudder);
346
+ const version = asExactString(serverInfo.version);
347
+ const contractVersion = asExactString(rudder.contractVersion);
348
+ const coreContractHash = asExactString(rudder.coreContractHash);
349
+ const contractHash = asExactString(rudder.browserContractHash);
350
+ const listed = asRecord(toolsList?.result).tools;
351
+ const partialBase = { available: true, version, contractVersion, coreContractHash, contractHash };
352
+ if (!Array.isArray(listed)) {
353
+ return failed(input.command, "browser_bundle_handshake_failed", "Rudder Browser MCP tools/list returned an invalid manifest; optional Browser capability was disabled.", partialBase);
314
354
  }
315
- const coreOnly = await preflightRudderMcpServerOnce({ ...input, browserEnabled: false });
316
- if (!hasExactProviderSurface(coreOnly, false)) {
317
- return failed(input.command, "browser_bundle_handshake_failed", "Rudder MCP Browser downgrade did not produce an exact core-only provider surface; core MCP is unavailable.", { ...coreOnly, available: false });
355
+ const parsedTools = listed.map((entry) => {
356
+ const tool = asRecord(entry);
357
+ const name = asExactString(tool.name);
358
+ if (!name)
359
+ return null;
360
+ const description = asExactString(tool.description);
361
+ const inputSchema = asRecord(tool.inputSchema);
362
+ return {
363
+ name,
364
+ hasCanonicalInputSchema: hasCanonicalInputSchema(tool.inputSchema),
365
+ ...(description ? { description } : {}),
366
+ ...(Object.keys(inputSchema).length > 0 ? { inputSchema } : {}),
367
+ };
368
+ });
369
+ const tools = parsedTools
370
+ .filter((entry) => entry !== null)
371
+ .map(({ hasCanonicalInputSchema: _hasCanonicalInputSchema, ...tool }) => tool);
372
+ const partial = { ...partialBase, tools };
373
+ if (asExactString(serverInfo.name) !== RUDDER_BROWSER_MCP_SERVER_NAME) {
374
+ return failed(input.command, "browser_bundle_server_mismatch", "Rudder Browser MCP server identity did not match the managed bundle; optional Browser capability was disabled.", partial);
375
+ }
376
+ if (input.command.expectedVersion && version !== input.command.expectedVersion) {
377
+ return failed(input.command, "browser_bundle_version_mismatch", `Rudder Browser MCP bundle version mismatch (expected ${input.command.expectedVersion}, received ${version ?? "unknown"}); optional Browser capability was disabled.`, partial);
378
+ }
379
+ if (contractVersion !== RUDDER_MCP_CONTRACT_VERSION || contractHash !== RUDDER_BROWSER_MCP_CONTRACT_HASH) {
380
+ return failed(input.command, "browser_bundle_contract_mismatch", "Rudder Browser MCP contract hash did not match the runtime bundle; optional Browser capability was disabled.", partial);
381
+ }
382
+ const observedContractHash = semanticManifestHash(parsedTools.filter((tool) => tool !== null));
383
+ if (parsedTools.some((tool) => tool === null)
384
+ || !hasExactNames(tools.map((tool) => tool.name), RUDDER_BROWSER_MCP_TOOL_NAMES)
385
+ || parsedTools.some((tool) => tool !== null && !tool.hasCanonicalInputSchema)
386
+ || observedContractHash !== RUDDER_BROWSER_MCP_CONTRACT_HASH) {
387
+ return failed(input.command, "browser_bundle_tools_mismatch", "Rudder Browser MCP tools/list did not expose the exact canonical Browser manifest; optional Browser capability was disabled.", partial);
318
388
  }
319
389
  return {
320
- ...requested,
321
- tools: coreOnly.tools,
390
+ available: true,
391
+ browserAvailable: true,
392
+ provenance: input.command.provenance,
393
+ version,
394
+ contractVersion,
395
+ coreContractHash,
396
+ contractHash,
397
+ diagnosticCode: null,
398
+ diagnostic: null,
399
+ tools,
322
400
  };
323
401
  }
324
402
  //# sourceMappingURL=rudder-mcp-preflight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rudder-mcp-preflight.js","sourceRoot":"","sources":["../src/rudder-mcp-preflight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rudder-mcp-preflight.js","sourceRoot":"","sources":["../src/rudder-mcp-preflight.ts"],"names":[],"mappings":"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"}