@agimon-ai/mcp-proxy 0.10.1 → 0.10.2

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/dist/cli.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- const require_src = require("./src-CRhtaDaz.cjs");
2
+ const require_src = require("./src-DMlOlvPm.cjs");
3
3
  let node_fs = require("node:fs");
4
4
  let node_fs_promises = require("node:fs/promises");
5
5
  let js_yaml = require("js-yaml");
@@ -13,12 +13,12 @@ let liquidjs = require("liquidjs");
13
13
  let commander = require("commander");
14
14
  let node_url = require("node:url");
15
15
  let _agimon_ai_foundation_port_registry = require("@agimon-ai/foundation-port-registry");
16
- //#region src/commands/prestart-http.ts
16
+ //#region src/commands/http-runtime.ts
17
17
  /**
18
- * Prestart HTTP Command
18
+ * HTTP Runtime Helper
19
19
  *
20
20
  * Starts an mcp-proxy HTTP runtime in the background, waits until it is healthy,
21
- * and then exits so the runtime can be reused by other commands.
21
+ * and returns the runtime details for callers that need to reuse it.
22
22
  */
23
23
  const WORKSPACE_MARKERS = [
24
24
  "pnpm-workspace.yaml",
@@ -26,7 +26,7 @@ const WORKSPACE_MARKERS = [
26
26
  ".git"
27
27
  ];
28
28
  const DEFAULT_HOST$1 = "localhost";
29
- const DEFAULT_TIMEOUT_MS = 12e4;
29
+ const DEFAULT_HTTP_RUNTIME_TIMEOUT_MS = 12e4;
30
30
  const POLL_INTERVAL_MS = 250;
31
31
  function resolveWorkspaceRoot(startPath = process.env.PROJECT_PATH || process.cwd()) {
32
32
  let current = node_path.default.resolve(startPath);
@@ -82,7 +82,7 @@ function buildCliCandidates() {
82
82
  throw new Error("Unable to locate mcp-proxy CLI entrypoint");
83
83
  }
84
84
  function parseTimeoutMs(value) {
85
- if (!value) return DEFAULT_TIMEOUT_MS;
85
+ if (!value) return DEFAULT_HTTP_RUNTIME_TIMEOUT_MS;
86
86
  const parsed = Number.parseInt(value, 10);
87
87
  if (!Number.isInteger(parsed) || parsed <= 0) throw new Error(`Invalid timeout value: ${value}`);
88
88
  return parsed;
@@ -208,17 +208,12 @@ async function prestartHttpRuntime(options) {
208
208
  throw new Error(`Failed to prestart HTTP runtime '${serverId}': ${error instanceof Error ? error.message : String(error)}`, { cause: error });
209
209
  }
210
210
  }
211
- const prestartHttpCommand = new commander.Command("prestart-http").description("Start an mcp-proxy HTTP runtime in the background and wait until it is healthy").option("--id <id>", "Server identifier to assign to the runtime").option("--host <host>", "Host to bind to", DEFAULT_HOST$1).option("-p, --port <port>", "Preferred HTTP port for the runtime", (value) => Number.parseInt(value, 10)).option("-c, --config <path>", "Path to MCP server configuration file").option("--no-cache", "Disable configuration caching, always reload from config file").option("--definitions-cache <path>", "Path to prefetched tool/prompt/skill definitions cache file").option("--clear-definitions-cache", "Delete definitions cache before startup", false).option("--proxy-mode <mode>", "How mcp-proxy exposes downstream tools: meta, flat, or search", "meta").option("--registry-path <path>", "Custom registry path or directory for service discovery").option("--registry-dir <path>", "Custom registry directory for service discovery").option("--timeout-ms <ms>", "How long to wait for the runtime to become healthy", String(DEFAULT_TIMEOUT_MS)).action(async (options) => {
212
- try {
213
- const { host, port, serverId, workspaceRoot } = await prestartHttpRuntime(options);
214
- process.stdout.write(`mcp-proxy HTTP runtime ready at http://${host}:${port} (${serverId})\n`);
215
- process.stdout.write(`runtimeId=${serverId}\n`);
216
- process.stdout.write(`runtimeUrl=http://${host}:${port}\n`);
217
- process.stdout.write(`workspaceRoot=${workspaceRoot}\n`);
218
- } catch (error) {
219
- throw new Error(`Failed to prestart HTTP runtime '${options.id || "generated-server-id"}': ${error instanceof Error ? error.message : String(error)}`, { cause: error });
220
- }
221
- });
211
+ function writePrestartHttpResult(result) {
212
+ process.stdout.write(`mcp-proxy HTTP runtime ready at http://${result.host}:${result.port} (${result.serverId})\n`);
213
+ process.stdout.write(`runtimeId=${result.serverId}\n`);
214
+ process.stdout.write(`runtimeUrl=http://${result.host}:${result.port}\n`);
215
+ process.stdout.write(`workspaceRoot=${result.workspaceRoot}\n`);
216
+ }
222
217
  //#endregion
223
218
  //#region src/commands/bootstrap.ts
224
219
  function toErrorMessage$9(error) {
@@ -1277,11 +1272,33 @@ async function startTransport(transportType, options, resolvedConfigPath, server
1277
1272
  throw new Error(`Failed to start transport '${transportType}': ${toErrorMessage$3(error)}`);
1278
1273
  }
1279
1274
  }
1275
+ async function prestartHttpRuntimeCommand(options, resolvedConfigPath) {
1276
+ try {
1277
+ writePrestartHttpResult(await prestartHttpRuntime({
1278
+ id: options.id,
1279
+ host: options.host ?? DEFAULT_HOST,
1280
+ port: options.port,
1281
+ config: options.config || resolvedConfigPath,
1282
+ cache: options.cache,
1283
+ definitionsCache: options.definitionsCache,
1284
+ clearDefinitionsCache: options.clearDefinitionsCache,
1285
+ proxyMode: options.proxyMode,
1286
+ timeoutMs: options.timeoutMs
1287
+ }));
1288
+ } catch (error) {
1289
+ console.error(`Failed to prestart HTTP runtime '${options.id || "generated-server-id"}': ${toErrorMessage$3(error)}`);
1290
+ process.exit(1);
1291
+ }
1292
+ }
1280
1293
  /**
1281
1294
  * MCP Serve command
1282
1295
  */
1283
- const mcpServeCommand = new commander.Command("mcp-serve").description("Start MCP server with specified transport").option("-t, --type <type>", `Transport type: ${TRANSPORT_TYPE_STDIO}, ${TRANSPORT_TYPE_HTTP}, ${TRANSPORT_TYPE_SSE}, or ${TRANSPORT_TYPE_STDIO_HTTP}`).option("-p, --port <port>", "Port to listen on (http/sse) or backend port for stdio-http", (val) => Number.parseInt(val, 10)).option("--host <host>", "Host to bind to (http/sse) or backend host for stdio-http").option("-c, --config <path>", "Path to MCP server configuration file").option("--no-cache", "Disable configuration caching, always reload from config file").option("--definitions-cache <path>", "Path to prefetched tool/prompt/skill definitions cache file").option("--clear-definitions-cache", "Delete definitions cache before startup", false).option("--proxy-mode <mode>", "How mcp-proxy exposes downstream tools: meta, flat, or search", "meta").option("--id <id>", "Unique server identifier (overrides config file id, auto-generated if not provided)").action(async (options) => {
1296
+ const mcpServeCommand = new commander.Command("mcp-serve").description("Start MCP server with specified transport or prestart the HTTP runtime in the background").option("-t, --type <type>", `Transport type: ${TRANSPORT_TYPE_STDIO}, ${TRANSPORT_TYPE_HTTP}, ${TRANSPORT_TYPE_SSE}, or ${TRANSPORT_TYPE_STDIO_HTTP}`).option("-p, --port <port>", "Port to listen on (http/sse) or backend port for stdio-http", (val) => Number.parseInt(val, 10)).option("--host <host>", "Host to bind to (http/sse) or backend host for stdio-http").option("-c, --config <path>", "Path to MCP server configuration file").option("--no-cache", "Disable configuration caching, always reload from config file").option("--definitions-cache <path>", "Path to prefetched tool/prompt/skill definitions cache file").option("--clear-definitions-cache", "Delete definitions cache before startup", false).option("--proxy-mode <mode>", "How mcp-proxy exposes downstream tools: meta, flat, or search", "meta").option("--id <id>", "Unique server identifier (overrides config file id, auto-generated if not provided)").option("--prestart-http", "Prestart the HTTP runtime in the background and exit after it becomes healthy", false).option("--timeout-ms <ms>", "How long to wait for the HTTP runtime to become healthy", String(DEFAULT_HTTP_RUNTIME_TIMEOUT_MS)).action(async (options) => {
1284
1297
  try {
1298
+ if (options.prestartHttp) {
1299
+ await prestartHttpRuntimeCommand(options, options.config || await findConfigFileAsync() || void 0);
1300
+ return;
1301
+ }
1285
1302
  const resolvedConfigPath = options.config || await findConfigFileAsync() || void 0;
1286
1303
  const proxyDefaults = resolvedConfigPath ? loadProxyDefaults(resolvedConfigPath) : {};
1287
1304
  const transportType = validateTransportType((options.type ?? proxyDefaults.type ?? TRANSPORT_TYPE_STDIO).toLowerCase());
@@ -1708,7 +1725,6 @@ async function main() {
1708
1725
  program.name("mcp-proxy").description("MCP proxy server package").version(require_src.version);
1709
1726
  program.addCommand(initCommand);
1710
1727
  program.addCommand(mcpServeCommand);
1711
- program.addCommand(prestartHttpCommand);
1712
1728
  program.addCommand(searchToolsCommand);
1713
1729
  program.addCommand(describeToolsCommand);
1714
1730
  program.addCommand(useToolCommand);
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { C as DefinitionsCacheService, D as version, T as findConfigFile, b as RuntimeStateService, d as StdioHttpTransportHandler, f as StdioTransportHandler, m as HttpTransportHandler, n as createServer, o as createProxyIoCContainer, p as SseTransportHandler, r as createSessionServer, t as TRANSPORT_MODE, u as initializeSharedServices, v as StopServerService, w as generateServerId } from "./src-C48MCBti.mjs";
2
+ import { C as DefinitionsCacheService, D as version, T as findConfigFile, b as RuntimeStateService, d as StdioHttpTransportHandler, f as StdioTransportHandler, m as HttpTransportHandler, n as createServer, o as createProxyIoCContainer, p as SseTransportHandler, r as createSessionServer, t as TRANSPORT_MODE, u as initializeSharedServices, v as StopServerService, w as generateServerId } from "./src-pCtALj-B.mjs";
3
3
  import { constants, existsSync, readFileSync } from "node:fs";
4
4
  import { access, writeFile } from "node:fs/promises";
5
5
  import yaml from "js-yaml";
@@ -11,12 +11,12 @@ import { Liquid } from "liquidjs";
11
11
  import { Command } from "commander";
12
12
  import { fileURLToPath } from "node:url";
13
13
  import { DEFAULT_PORT_RANGE, PortRegistryService } from "@agimon-ai/foundation-port-registry";
14
- //#region src/commands/prestart-http.ts
14
+ //#region src/commands/http-runtime.ts
15
15
  /**
16
- * Prestart HTTP Command
16
+ * HTTP Runtime Helper
17
17
  *
18
18
  * Starts an mcp-proxy HTTP runtime in the background, waits until it is healthy,
19
- * and then exits so the runtime can be reused by other commands.
19
+ * and returns the runtime details for callers that need to reuse it.
20
20
  */
21
21
  const WORKSPACE_MARKERS = [
22
22
  "pnpm-workspace.yaml",
@@ -24,7 +24,7 @@ const WORKSPACE_MARKERS = [
24
24
  ".git"
25
25
  ];
26
26
  const DEFAULT_HOST$1 = "localhost";
27
- const DEFAULT_TIMEOUT_MS = 12e4;
27
+ const DEFAULT_HTTP_RUNTIME_TIMEOUT_MS = 12e4;
28
28
  const POLL_INTERVAL_MS = 250;
29
29
  function resolveWorkspaceRoot(startPath = process.env.PROJECT_PATH || process.cwd()) {
30
30
  let current = path.resolve(startPath);
@@ -80,7 +80,7 @@ function buildCliCandidates() {
80
80
  throw new Error("Unable to locate mcp-proxy CLI entrypoint");
81
81
  }
82
82
  function parseTimeoutMs(value) {
83
- if (!value) return DEFAULT_TIMEOUT_MS;
83
+ if (!value) return DEFAULT_HTTP_RUNTIME_TIMEOUT_MS;
84
84
  const parsed = Number.parseInt(value, 10);
85
85
  if (!Number.isInteger(parsed) || parsed <= 0) throw new Error(`Invalid timeout value: ${value}`);
86
86
  return parsed;
@@ -206,17 +206,12 @@ async function prestartHttpRuntime(options) {
206
206
  throw new Error(`Failed to prestart HTTP runtime '${serverId}': ${error instanceof Error ? error.message : String(error)}`, { cause: error });
207
207
  }
208
208
  }
209
- const prestartHttpCommand = new Command("prestart-http").description("Start an mcp-proxy HTTP runtime in the background and wait until it is healthy").option("--id <id>", "Server identifier to assign to the runtime").option("--host <host>", "Host to bind to", DEFAULT_HOST$1).option("-p, --port <port>", "Preferred HTTP port for the runtime", (value) => Number.parseInt(value, 10)).option("-c, --config <path>", "Path to MCP server configuration file").option("--no-cache", "Disable configuration caching, always reload from config file").option("--definitions-cache <path>", "Path to prefetched tool/prompt/skill definitions cache file").option("--clear-definitions-cache", "Delete definitions cache before startup", false).option("--proxy-mode <mode>", "How mcp-proxy exposes downstream tools: meta, flat, or search", "meta").option("--registry-path <path>", "Custom registry path or directory for service discovery").option("--registry-dir <path>", "Custom registry directory for service discovery").option("--timeout-ms <ms>", "How long to wait for the runtime to become healthy", String(DEFAULT_TIMEOUT_MS)).action(async (options) => {
210
- try {
211
- const { host, port, serverId, workspaceRoot } = await prestartHttpRuntime(options);
212
- process.stdout.write(`mcp-proxy HTTP runtime ready at http://${host}:${port} (${serverId})\n`);
213
- process.stdout.write(`runtimeId=${serverId}\n`);
214
- process.stdout.write(`runtimeUrl=http://${host}:${port}\n`);
215
- process.stdout.write(`workspaceRoot=${workspaceRoot}\n`);
216
- } catch (error) {
217
- throw new Error(`Failed to prestart HTTP runtime '${options.id || "generated-server-id"}': ${error instanceof Error ? error.message : String(error)}`, { cause: error });
218
- }
219
- });
209
+ function writePrestartHttpResult(result) {
210
+ process.stdout.write(`mcp-proxy HTTP runtime ready at http://${result.host}:${result.port} (${result.serverId})\n`);
211
+ process.stdout.write(`runtimeId=${result.serverId}\n`);
212
+ process.stdout.write(`runtimeUrl=http://${result.host}:${result.port}\n`);
213
+ process.stdout.write(`workspaceRoot=${result.workspaceRoot}\n`);
214
+ }
220
215
  //#endregion
221
216
  //#region src/commands/bootstrap.ts
222
217
  function toErrorMessage$9(error) {
@@ -1275,11 +1270,33 @@ async function startTransport(transportType, options, resolvedConfigPath, server
1275
1270
  throw new Error(`Failed to start transport '${transportType}': ${toErrorMessage$3(error)}`);
1276
1271
  }
1277
1272
  }
1273
+ async function prestartHttpRuntimeCommand(options, resolvedConfigPath) {
1274
+ try {
1275
+ writePrestartHttpResult(await prestartHttpRuntime({
1276
+ id: options.id,
1277
+ host: options.host ?? DEFAULT_HOST,
1278
+ port: options.port,
1279
+ config: options.config || resolvedConfigPath,
1280
+ cache: options.cache,
1281
+ definitionsCache: options.definitionsCache,
1282
+ clearDefinitionsCache: options.clearDefinitionsCache,
1283
+ proxyMode: options.proxyMode,
1284
+ timeoutMs: options.timeoutMs
1285
+ }));
1286
+ } catch (error) {
1287
+ console.error(`Failed to prestart HTTP runtime '${options.id || "generated-server-id"}': ${toErrorMessage$3(error)}`);
1288
+ process.exit(1);
1289
+ }
1290
+ }
1278
1291
  /**
1279
1292
  * MCP Serve command
1280
1293
  */
1281
- const mcpServeCommand = new Command("mcp-serve").description("Start MCP server with specified transport").option("-t, --type <type>", `Transport type: ${TRANSPORT_TYPE_STDIO}, ${TRANSPORT_TYPE_HTTP}, ${TRANSPORT_TYPE_SSE}, or ${TRANSPORT_TYPE_STDIO_HTTP}`).option("-p, --port <port>", "Port to listen on (http/sse) or backend port for stdio-http", (val) => Number.parseInt(val, 10)).option("--host <host>", "Host to bind to (http/sse) or backend host for stdio-http").option("-c, --config <path>", "Path to MCP server configuration file").option("--no-cache", "Disable configuration caching, always reload from config file").option("--definitions-cache <path>", "Path to prefetched tool/prompt/skill definitions cache file").option("--clear-definitions-cache", "Delete definitions cache before startup", false).option("--proxy-mode <mode>", "How mcp-proxy exposes downstream tools: meta, flat, or search", "meta").option("--id <id>", "Unique server identifier (overrides config file id, auto-generated if not provided)").action(async (options) => {
1294
+ const mcpServeCommand = new Command("mcp-serve").description("Start MCP server with specified transport or prestart the HTTP runtime in the background").option("-t, --type <type>", `Transport type: ${TRANSPORT_TYPE_STDIO}, ${TRANSPORT_TYPE_HTTP}, ${TRANSPORT_TYPE_SSE}, or ${TRANSPORT_TYPE_STDIO_HTTP}`).option("-p, --port <port>", "Port to listen on (http/sse) or backend port for stdio-http", (val) => Number.parseInt(val, 10)).option("--host <host>", "Host to bind to (http/sse) or backend host for stdio-http").option("-c, --config <path>", "Path to MCP server configuration file").option("--no-cache", "Disable configuration caching, always reload from config file").option("--definitions-cache <path>", "Path to prefetched tool/prompt/skill definitions cache file").option("--clear-definitions-cache", "Delete definitions cache before startup", false).option("--proxy-mode <mode>", "How mcp-proxy exposes downstream tools: meta, flat, or search", "meta").option("--id <id>", "Unique server identifier (overrides config file id, auto-generated if not provided)").option("--prestart-http", "Prestart the HTTP runtime in the background and exit after it becomes healthy", false).option("--timeout-ms <ms>", "How long to wait for the HTTP runtime to become healthy", String(DEFAULT_HTTP_RUNTIME_TIMEOUT_MS)).action(async (options) => {
1282
1295
  try {
1296
+ if (options.prestartHttp) {
1297
+ await prestartHttpRuntimeCommand(options, options.config || await findConfigFileAsync() || void 0);
1298
+ return;
1299
+ }
1283
1300
  const resolvedConfigPath = options.config || await findConfigFileAsync() || void 0;
1284
1301
  const proxyDefaults = resolvedConfigPath ? loadProxyDefaults(resolvedConfigPath) : {};
1285
1302
  const transportType = validateTransportType((options.type ?? proxyDefaults.type ?? TRANSPORT_TYPE_STDIO).toLowerCase());
@@ -1706,7 +1723,6 @@ async function main() {
1706
1723
  program.name("mcp-proxy").description("MCP proxy server package").version(version);
1707
1724
  program.addCommand(initCommand);
1708
1725
  program.addCommand(mcpServeCommand);
1709
- program.addCommand(prestartHttpCommand);
1710
1726
  program.addCommand(searchToolsCommand);
1711
1727
  program.addCommand(describeToolsCommand);
1712
1728
  program.addCommand(useToolCommand);
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_src = require("./src-CRhtaDaz.cjs");
2
+ const require_src = require("./src-DMlOlvPm.cjs");
3
3
  exports.ConfigFetcherService = require_src.ConfigFetcherService;
4
4
  exports.DefinitionsCacheService = require_src.DefinitionsCacheService;
5
5
  exports.DescribeToolsTool = require_src.DescribeToolsTool;
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { C as DefinitionsCacheService, E as ConfigFetcherService, S as createProxyLogger, T as findConfigFile, _ as DescribeToolsTool, a as createProxyContainer, b as RuntimeStateService, c as createStdioHttpTransportHandler, d as StdioHttpTransportHandler, f as StdioTransportHandler, g as SearchListToolsTool, h as UseToolTool, i as createHttpTransportHandler, l as createStdioTransportHandler, m as HttpTransportHandler, n as createServer, p as SseTransportHandler, r as createSessionServer, s as createSseTransportHandler, t as TRANSPORT_MODE, u as initializeSharedServices, v as StopServerService, w as generateServerId, x as McpClientManagerService, y as SkillService } from "./src-C48MCBti.mjs";
1
+ import { C as DefinitionsCacheService, E as ConfigFetcherService, S as createProxyLogger, T as findConfigFile, _ as DescribeToolsTool, a as createProxyContainer, b as RuntimeStateService, c as createStdioHttpTransportHandler, d as StdioHttpTransportHandler, f as StdioTransportHandler, g as SearchListToolsTool, h as UseToolTool, i as createHttpTransportHandler, l as createStdioTransportHandler, m as HttpTransportHandler, n as createServer, p as SseTransportHandler, r as createSessionServer, s as createSseTransportHandler, t as TRANSPORT_MODE, u as initializeSharedServices, v as StopServerService, w as generateServerId, x as McpClientManagerService, y as SkillService } from "./src-pCtALj-B.mjs";
2
2
  export { ConfigFetcherService, DefinitionsCacheService, DescribeToolsTool, HttpTransportHandler, McpClientManagerService, RuntimeStateService, SearchListToolsTool, SkillService, SseTransportHandler, StdioHttpTransportHandler, StdioTransportHandler, StopServerService, TRANSPORT_MODE, UseToolTool, createHttpTransportHandler, createProxyContainer, createProxyLogger, createServer, createSessionServer, createSseTransportHandler, createStdioHttpTransportHandler, createStdioTransportHandler, findConfigFile, generateServerId, initializeSharedServices };
@@ -48,7 +48,7 @@ let _modelcontextprotocol_sdk_server_sse_js = require("@modelcontextprotocol/sdk
48
48
  let _modelcontextprotocol_sdk_server_stdio_js = require("@modelcontextprotocol/sdk/server/stdio.js");
49
49
  let _modelcontextprotocol_sdk_server_index_js = require("@modelcontextprotocol/sdk/server/index.js");
50
50
  //#region package.json
51
- var version = "0.10.0";
51
+ var version = "0.10.1";
52
52
  //#endregion
53
53
  //#region src/utils/mcpConfigSchema.ts
54
54
  /**
@@ -25,7 +25,7 @@ import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
25
25
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
26
26
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
27
27
  //#region package.json
28
- var version = "0.10.0";
28
+ var version = "0.10.1";
29
29
  //#endregion
30
30
  //#region src/utils/mcpConfigSchema.ts
31
31
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agimon-ai/mcp-proxy",
3
3
  "description": "MCP proxy server package",
4
- "version": "0.10.1",
4
+ "version": "0.10.2",
5
5
  "license": "AGPL-3.0",
6
6
  "keywords": [
7
7
  "mcp",
@@ -30,8 +30,8 @@
30
30
  "zod": "4.3.6",
31
31
  "@agimon-ai/foundation-process-registry": "0.8.0",
32
32
  "@agimon-ai/log-sink-mcp": "0.8.0",
33
- "@agimon-ai/foundation-port-registry": "0.8.0",
34
- "@agimon-ai/foundation-validator": "0.5.0"
33
+ "@agimon-ai/foundation-validator": "0.5.0",
34
+ "@agimon-ai/foundation-port-registry": "0.8.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/js-yaml": "4.0.9",