@evalops/maestro 0.10.14 → 0.10.16

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.
@@ -42,6 +42,26 @@ const PLATFORM_MCP_SCOPES_ENV_VARS = [
42
42
  "MAESTRO_EVALOPS_AGENT_MCP_SCOPES",
43
43
  "MAESTRO_CEREBRO_MCP_SCOPES",
44
44
  ];
45
+ const PLATFORM_MCP_INTEGRATION_PROFILE_ENV_VARS = [
46
+ "MAESTRO_EVALOPS_INTEGRATION_PROFILE",
47
+ "MAESTRO_INTEGRATION_PROFILE",
48
+ ];
49
+ const PLATFORM_MCP_MEMORY_MODE_ENV_VARS = [
50
+ "MAESTRO_EVALOPS_MEMORY_MODE",
51
+ "MAESTRO_MEMORY_MODE",
52
+ ];
53
+ const PLATFORM_MCP_RUNTIME_OWNER_ENV_VARS = [
54
+ "MAESTRO_EVALOPS_RUNTIME_OWNER",
55
+ "MAESTRO_RUNTIME_OWNER",
56
+ ];
57
+ const PLATFORM_MCP_SHIM_TYPE_ENV_VARS = [
58
+ "MAESTRO_EVALOPS_SHIM_TYPE",
59
+ "MAESTRO_SHIM_TYPE",
60
+ ];
61
+ const PLATFORM_MCP_TRACE_MODE_ENV_VARS = [
62
+ "MAESTRO_EVALOPS_TRACE_MODE",
63
+ "MAESTRO_TRACE_MODE",
64
+ ];
45
65
  const DEFAULT_PLATFORM_MCP_SERVER_NAME = "evalops";
46
66
  const AGENT_MCP_MANIFEST_PATH = "/.well-known/evalops/agent-mcp.json";
47
67
  const AGENT_MCP_PATH = "/mcp";
@@ -65,9 +85,16 @@ function buildPlatformMcpHeaders() {
65
85
  "X-EvalOps-Session-Id": getEnvValue(["MAESTRO_SESSION_ID"]),
66
86
  "X-EvalOps-Agent-Id": getEnvValue(PLATFORM_MCP_AGENT_ID_ENV_VARS) ?? stored?.agentId,
67
87
  "X-EvalOps-Agent-Run-Id": getEnvValue(["MAESTRO_AGENT_RUN_ID"]) ?? stored?.runId,
88
+ "X-EvalOps-Integration-Profile": getEnvValue(PLATFORM_MCP_INTEGRATION_PROFILE_ENV_VARS) ??
89
+ stored?.integrationProfile,
90
+ "X-EvalOps-Memory-Mode": getEnvValue(PLATFORM_MCP_MEMORY_MODE_ENV_VARS) ?? stored?.memoryMode,
91
+ "X-EvalOps-Runtime-Owner": getEnvValue(PLATFORM_MCP_RUNTIME_OWNER_ENV_VARS) ??
92
+ stored?.runtimeOwner,
68
93
  "X-EvalOps-Scopes": getEnvValue(PLATFORM_MCP_SCOPES_ENV_VARS),
94
+ "X-EvalOps-Shim-Type": getEnvValue(PLATFORM_MCP_SHIM_TYPE_ENV_VARS) ?? stored?.shimType,
69
95
  "X-EvalOps-Request-Id": getEnvValue(["MAESTRO_REQUEST_ID"]),
70
96
  "X-EvalOps-Trace-Id": getEnvValue(["TRACE_ID", "OTEL_TRACE_ID"]),
97
+ "X-EvalOps-Trace-Mode": getEnvValue(PLATFORM_MCP_TRACE_MODE_ENV_VARS) ?? stored?.traceMode,
71
98
  "X-EvalOps-Maestro-Surface": getEnvValue(["MAESTRO_SURFACE"]) ?? "maestro",
72
99
  }).filter((entry) => typeof entry[1] === "string" && entry[1].trim().length > 0));
73
100
  return Object.keys(headers).length > 0 ? headers : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"platform-plugin.js","sourceRoot":"","sources":["../../src/mcp/platform-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import { getStoredEvalOpsAgentMcpMetadata } from \"../evalops/agent-bootstrap.js\";\nimport {\n\tgetEnvValue,\n\tnormalizeBaseUrl,\n\tresolveConfiguredToken,\n\tresolveWorkspaceId,\n} from \"../platform/client.js\";\nimport type { McpServerConfig } from \"./types.js\";\n\nconst PLATFORM_MCP_DISABLED_VALUES = new Set([\"0\", \"false\", \"no\", \"off\"]);\nconst PLATFORM_MCP_ENABLED_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_ENABLED\",\n\t\"MAESTRO_AGENT_MCP_ENABLED\",\n] as const;\nconst PLATFORM_MCP_NAME_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_NAME\",\n\t\"MAESTRO_AGENT_MCP_NAME\",\n] as const;\nconst PLATFORM_MCP_URL_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_URL\",\n\t\"MAESTRO_AGENT_MCP_URL\",\n\t\"MAESTRO_EVALOPS_AGENT_MCP_URL\",\n] as const;\nconst PLATFORM_MCP_MANIFEST_URL_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_MANIFEST_URL\",\n\t\"MAESTRO_AGENT_MCP_MANIFEST_URL\",\n\t\"MAESTRO_EVALOPS_AGENT_MCP_MANIFEST_URL\",\n] as const;\nconst PLATFORM_MCP_TOKEN_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_TOKEN\",\n\t\"MAESTRO_AGENT_MCP_TOKEN\",\n\t\"MAESTRO_EVALOPS_ACCESS_TOKEN\",\n\t\"EVALOPS_TOKEN\",\n] as const;\nconst PLATFORM_MCP_WORKSPACE_ENV_VARS = [\n\t\"MAESTRO_WORKSPACE_ID\",\n\t\"MAESTRO_EVALOPS_WORKSPACE_ID\",\n\t\"MAESTRO_EVALOPS_ORG_ID\",\n\t\"EVALOPS_ORGANIZATION_ID\",\n\t\"MAESTRO_ENTERPRISE_ORG_ID\",\n] as const;\nconst PLATFORM_MCP_AGENT_ID_ENV_VARS = [\n\t\"MAESTRO_AGENT_ID\",\n\t\"MAESTRO_EVALOPS_AGENT_ID\",\n] as const;\nconst PLATFORM_MCP_SCOPES_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_SCOPES\",\n\t\"MAESTRO_AGENT_MCP_SCOPES\",\n\t\"MAESTRO_EVALOPS_AGENT_MCP_SCOPES\",\n\t\"MAESTRO_CEREBRO_MCP_SCOPES\",\n] as const;\nconst DEFAULT_PLATFORM_MCP_SERVER_NAME = \"evalops\";\nconst AGENT_MCP_MANIFEST_PATH = \"/.well-known/evalops/agent-mcp.json\";\nconst AGENT_MCP_PATH = \"/mcp\";\n\nfunction isPlatformMcpExplicitlyDisabled(): boolean {\n\tconst enabled = getEnvValue(PLATFORM_MCP_ENABLED_ENV_VARS);\n\tif (!enabled) {\n\t\treturn false;\n\t}\n\treturn PLATFORM_MCP_DISABLED_VALUES.has(enabled.trim().toLowerCase());\n}\n\nfunction buildPlatformMcpHeaders(): Record<string, string> | undefined {\n\tconst stored = getStoredEvalOpsAgentMcpMetadata();\n\tconst token =\n\t\tgetEnvValue(PLATFORM_MCP_TOKEN_ENV_VARS) ??\n\t\tstored?.apiKey ??\n\t\tresolveConfiguredToken(PLATFORM_MCP_TOKEN_ENV_VARS);\n\tconst workspaceId =\n\t\tresolveWorkspaceId(PLATFORM_MCP_WORKSPACE_ENV_VARS) ?? stored?.workspaceId;\n\tconst headers = Object.fromEntries(\n\t\tObject.entries({\n\t\t\t...(token ? { Authorization: `Bearer ${token}` } : {}),\n\t\t\t\"Mcp-Session-Id\": getEnvValue([\"MAESTRO_SESSION_ID\"]),\n\t\t\t\"X-EvalOps-Workspace-Id\": workspaceId,\n\t\t\t\"X-EvalOps-Session-Id\": getEnvValue([\"MAESTRO_SESSION_ID\"]),\n\t\t\t\"X-EvalOps-Agent-Id\":\n\t\t\t\tgetEnvValue(PLATFORM_MCP_AGENT_ID_ENV_VARS) ?? stored?.agentId,\n\t\t\t\"X-EvalOps-Agent-Run-Id\":\n\t\t\t\tgetEnvValue([\"MAESTRO_AGENT_RUN_ID\"]) ?? stored?.runId,\n\t\t\t\"X-EvalOps-Scopes\": getEnvValue(PLATFORM_MCP_SCOPES_ENV_VARS),\n\t\t\t\"X-EvalOps-Request-Id\": getEnvValue([\"MAESTRO_REQUEST_ID\"]),\n\t\t\t\"X-EvalOps-Trace-Id\": getEnvValue([\"TRACE_ID\", \"OTEL_TRACE_ID\"]),\n\t\t\t\"X-EvalOps-Maestro-Surface\":\n\t\t\t\tgetEnvValue([\"MAESTRO_SURFACE\"]) ?? \"maestro\",\n\t\t}).filter(\n\t\t\t(entry): entry is [string, string] =>\n\t\t\t\ttypeof entry[1] === \"string\" && entry[1].trim().length > 0,\n\t\t),\n\t);\n\treturn Object.keys(headers).length > 0 ? headers : undefined;\n}\n\nfunction normalizePlatformMcpEndpoint(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\ttry {\n\t\tconst parsed = new URL(normalized);\n\t\tif (\n\t\t\tparsed.pathname === \"\" ||\n\t\t\tparsed.pathname === \"/\" ||\n\t\t\tparsed.pathname === AGENT_MCP_MANIFEST_PATH\n\t\t) {\n\t\t\tparsed.pathname = AGENT_MCP_PATH;\n\t\t\tparsed.search = \"\";\n\t\t\tparsed.hash = \"\";\n\t\t\treturn normalizeBaseUrl(parsed.toString());\n\t\t}\n\t} catch {\n\t\t// Keep the existing permissive behavior for non-standard local test URLs.\n\t}\n\treturn normalized;\n}\n\nfunction resolvePlatformMcpURL(): string | undefined {\n\treturn (\n\t\tgetEnvValue(PLATFORM_MCP_URL_ENV_VARS) ??\n\t\tgetEnvValue(PLATFORM_MCP_MANIFEST_URL_ENV_VARS) ??\n\t\tgetStoredEvalOpsAgentMcpMetadata()?.endpoint\n\t);\n}\n\nexport function getPlatformMcpPluginServers(): McpServerConfig[] {\n\tif (isPlatformMcpExplicitlyDisabled()) {\n\t\treturn [];\n\t}\n\n\tconst url = resolvePlatformMcpURL();\n\tif (!url) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\t{\n\t\t\tname:\n\t\t\t\tgetEnvValue(PLATFORM_MCP_NAME_ENV_VARS) ??\n\t\t\t\tDEFAULT_PLATFORM_MCP_SERVER_NAME,\n\t\t\ttransport: \"http\",\n\t\t\turl: normalizePlatformMcpEndpoint(url),\n\t\t\theaders: buildPlatformMcpHeaders(),\n\t\t\tscope: \"plugin\",\n\t\t},\n\t];\n}\n"]}
1
+ {"version":3,"file":"platform-plugin.js","sourceRoot":"","sources":["../../src/mcp/platform-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import { getStoredEvalOpsAgentMcpMetadata } from \"../evalops/agent-bootstrap.js\";\nimport {\n\tgetEnvValue,\n\tnormalizeBaseUrl,\n\tresolveConfiguredToken,\n\tresolveWorkspaceId,\n} from \"../platform/client.js\";\nimport type { McpServerConfig } from \"./types.js\";\n\nconst PLATFORM_MCP_DISABLED_VALUES = new Set([\"0\", \"false\", \"no\", \"off\"]);\nconst PLATFORM_MCP_ENABLED_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_ENABLED\",\n\t\"MAESTRO_AGENT_MCP_ENABLED\",\n] as const;\nconst PLATFORM_MCP_NAME_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_NAME\",\n\t\"MAESTRO_AGENT_MCP_NAME\",\n] as const;\nconst PLATFORM_MCP_URL_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_URL\",\n\t\"MAESTRO_AGENT_MCP_URL\",\n\t\"MAESTRO_EVALOPS_AGENT_MCP_URL\",\n] as const;\nconst PLATFORM_MCP_MANIFEST_URL_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_MANIFEST_URL\",\n\t\"MAESTRO_AGENT_MCP_MANIFEST_URL\",\n\t\"MAESTRO_EVALOPS_AGENT_MCP_MANIFEST_URL\",\n] as const;\nconst PLATFORM_MCP_TOKEN_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_TOKEN\",\n\t\"MAESTRO_AGENT_MCP_TOKEN\",\n\t\"MAESTRO_EVALOPS_ACCESS_TOKEN\",\n\t\"EVALOPS_TOKEN\",\n] as const;\nconst PLATFORM_MCP_WORKSPACE_ENV_VARS = [\n\t\"MAESTRO_WORKSPACE_ID\",\n\t\"MAESTRO_EVALOPS_WORKSPACE_ID\",\n\t\"MAESTRO_EVALOPS_ORG_ID\",\n\t\"EVALOPS_ORGANIZATION_ID\",\n\t\"MAESTRO_ENTERPRISE_ORG_ID\",\n] as const;\nconst PLATFORM_MCP_AGENT_ID_ENV_VARS = [\n\t\"MAESTRO_AGENT_ID\",\n\t\"MAESTRO_EVALOPS_AGENT_ID\",\n] as const;\nconst PLATFORM_MCP_SCOPES_ENV_VARS = [\n\t\"MAESTRO_PLATFORM_MCP_SCOPES\",\n\t\"MAESTRO_AGENT_MCP_SCOPES\",\n\t\"MAESTRO_EVALOPS_AGENT_MCP_SCOPES\",\n\t\"MAESTRO_CEREBRO_MCP_SCOPES\",\n] as const;\nconst PLATFORM_MCP_INTEGRATION_PROFILE_ENV_VARS = [\n\t\"MAESTRO_EVALOPS_INTEGRATION_PROFILE\",\n\t\"MAESTRO_INTEGRATION_PROFILE\",\n] as const;\nconst PLATFORM_MCP_MEMORY_MODE_ENV_VARS = [\n\t\"MAESTRO_EVALOPS_MEMORY_MODE\",\n\t\"MAESTRO_MEMORY_MODE\",\n] as const;\nconst PLATFORM_MCP_RUNTIME_OWNER_ENV_VARS = [\n\t\"MAESTRO_EVALOPS_RUNTIME_OWNER\",\n\t\"MAESTRO_RUNTIME_OWNER\",\n] as const;\nconst PLATFORM_MCP_SHIM_TYPE_ENV_VARS = [\n\t\"MAESTRO_EVALOPS_SHIM_TYPE\",\n\t\"MAESTRO_SHIM_TYPE\",\n] as const;\nconst PLATFORM_MCP_TRACE_MODE_ENV_VARS = [\n\t\"MAESTRO_EVALOPS_TRACE_MODE\",\n\t\"MAESTRO_TRACE_MODE\",\n] as const;\nconst DEFAULT_PLATFORM_MCP_SERVER_NAME = \"evalops\";\nconst AGENT_MCP_MANIFEST_PATH = \"/.well-known/evalops/agent-mcp.json\";\nconst AGENT_MCP_PATH = \"/mcp\";\n\nfunction isPlatformMcpExplicitlyDisabled(): boolean {\n\tconst enabled = getEnvValue(PLATFORM_MCP_ENABLED_ENV_VARS);\n\tif (!enabled) {\n\t\treturn false;\n\t}\n\treturn PLATFORM_MCP_DISABLED_VALUES.has(enabled.trim().toLowerCase());\n}\n\nfunction buildPlatformMcpHeaders(): Record<string, string> | undefined {\n\tconst stored = getStoredEvalOpsAgentMcpMetadata();\n\tconst token =\n\t\tgetEnvValue(PLATFORM_MCP_TOKEN_ENV_VARS) ??\n\t\tstored?.apiKey ??\n\t\tresolveConfiguredToken(PLATFORM_MCP_TOKEN_ENV_VARS);\n\tconst workspaceId =\n\t\tresolveWorkspaceId(PLATFORM_MCP_WORKSPACE_ENV_VARS) ?? stored?.workspaceId;\n\tconst headers = Object.fromEntries(\n\t\tObject.entries({\n\t\t\t...(token ? { Authorization: `Bearer ${token}` } : {}),\n\t\t\t\"Mcp-Session-Id\": getEnvValue([\"MAESTRO_SESSION_ID\"]),\n\t\t\t\"X-EvalOps-Workspace-Id\": workspaceId,\n\t\t\t\"X-EvalOps-Session-Id\": getEnvValue([\"MAESTRO_SESSION_ID\"]),\n\t\t\t\"X-EvalOps-Agent-Id\":\n\t\t\t\tgetEnvValue(PLATFORM_MCP_AGENT_ID_ENV_VARS) ?? stored?.agentId,\n\t\t\t\"X-EvalOps-Agent-Run-Id\":\n\t\t\t\tgetEnvValue([\"MAESTRO_AGENT_RUN_ID\"]) ?? stored?.runId,\n\t\t\t\"X-EvalOps-Integration-Profile\":\n\t\t\t\tgetEnvValue(PLATFORM_MCP_INTEGRATION_PROFILE_ENV_VARS) ??\n\t\t\t\tstored?.integrationProfile,\n\t\t\t\"X-EvalOps-Memory-Mode\":\n\t\t\t\tgetEnvValue(PLATFORM_MCP_MEMORY_MODE_ENV_VARS) ?? stored?.memoryMode,\n\t\t\t\"X-EvalOps-Runtime-Owner\":\n\t\t\t\tgetEnvValue(PLATFORM_MCP_RUNTIME_OWNER_ENV_VARS) ??\n\t\t\t\tstored?.runtimeOwner,\n\t\t\t\"X-EvalOps-Scopes\": getEnvValue(PLATFORM_MCP_SCOPES_ENV_VARS),\n\t\t\t\"X-EvalOps-Shim-Type\":\n\t\t\t\tgetEnvValue(PLATFORM_MCP_SHIM_TYPE_ENV_VARS) ?? stored?.shimType,\n\t\t\t\"X-EvalOps-Request-Id\": getEnvValue([\"MAESTRO_REQUEST_ID\"]),\n\t\t\t\"X-EvalOps-Trace-Id\": getEnvValue([\"TRACE_ID\", \"OTEL_TRACE_ID\"]),\n\t\t\t\"X-EvalOps-Trace-Mode\":\n\t\t\t\tgetEnvValue(PLATFORM_MCP_TRACE_MODE_ENV_VARS) ?? stored?.traceMode,\n\t\t\t\"X-EvalOps-Maestro-Surface\":\n\t\t\t\tgetEnvValue([\"MAESTRO_SURFACE\"]) ?? \"maestro\",\n\t\t}).filter(\n\t\t\t(entry): entry is [string, string] =>\n\t\t\t\ttypeof entry[1] === \"string\" && entry[1].trim().length > 0,\n\t\t),\n\t);\n\treturn Object.keys(headers).length > 0 ? headers : undefined;\n}\n\nfunction normalizePlatformMcpEndpoint(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\ttry {\n\t\tconst parsed = new URL(normalized);\n\t\tif (\n\t\t\tparsed.pathname === \"\" ||\n\t\t\tparsed.pathname === \"/\" ||\n\t\t\tparsed.pathname === AGENT_MCP_MANIFEST_PATH\n\t\t) {\n\t\t\tparsed.pathname = AGENT_MCP_PATH;\n\t\t\tparsed.search = \"\";\n\t\t\tparsed.hash = \"\";\n\t\t\treturn normalizeBaseUrl(parsed.toString());\n\t\t}\n\t} catch {\n\t\t// Keep the existing permissive behavior for non-standard local test URLs.\n\t}\n\treturn normalized;\n}\n\nfunction resolvePlatformMcpURL(): string | undefined {\n\treturn (\n\t\tgetEnvValue(PLATFORM_MCP_URL_ENV_VARS) ??\n\t\tgetEnvValue(PLATFORM_MCP_MANIFEST_URL_ENV_VARS) ??\n\t\tgetStoredEvalOpsAgentMcpMetadata()?.endpoint\n\t);\n}\n\nexport function getPlatformMcpPluginServers(): McpServerConfig[] {\n\tif (isPlatformMcpExplicitlyDisabled()) {\n\t\treturn [];\n\t}\n\n\tconst url = resolvePlatformMcpURL();\n\tif (!url) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\t{\n\t\t\tname:\n\t\t\t\tgetEnvValue(PLATFORM_MCP_NAME_ENV_VARS) ??\n\t\t\t\tDEFAULT_PLATFORM_MCP_SERVER_NAME,\n\t\t\ttransport: \"http\",\n\t\t\turl: normalizePlatformMcpEndpoint(url),\n\t\t\theaders: buildPlatformMcpHeaders(),\n\t\t\tscope: \"plugin\",\n\t\t},\n\t];\n}\n"]}
package/dist/version.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "0.10.14",
3
- "notes": "Maestro by EvalOps - Deterministic coding agent with TUI/CLI and Web UI for AI-assisted development v0.10.14 is now available."
2
+ "version": "0.10.16",
3
+ "notes": "Maestro by EvalOps - Deterministic coding agent with TUI/CLI and Web UI for AI-assisted development v0.10.16 is now available."
4
4
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evalops/contracts",
3
- "version": "0.10.14",
3
+ "version": "0.10.16",
4
4
  "description": "Shared Maestro contracts for frontend/backend integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evalops/tui",
3
- "version": "0.10.14",
3
+ "version": "0.10.16",
4
4
  "description": "Terminal UI library with differential rendering for Maestro",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@evalops/maestro",
3
3
  "description": "Maestro by EvalOps - Deterministic coding agent with TUI/CLI and Web UI for AI-assisted development",
4
- "version": "0.10.14",
4
+ "version": "0.10.16",
5
5
  "private": false,
6
6
  "type": "module",
7
7
  "workspaces": [
@@ -127,8 +127,8 @@
127
127
  "@aws-sdk/client-bedrock-runtime": "^3.1020.0",
128
128
  "@crosscopy/clipboard": "^0.2.8",
129
129
  "@daytonaio/sdk": "^0.155.0",
130
- "@evalops/contracts": "^0.10.14",
131
- "@evalops/tui": "^0.10.14",
130
+ "@evalops/contracts": "^0.10.16",
131
+ "@evalops/tui": "^0.10.16",
132
132
  "@modelcontextprotocol/sdk": "^1.29.0",
133
133
  "@opentelemetry/api": "^1.9.1",
134
134
  "@opentelemetry/auto-instrumentations-node": "^0.74.0",