@malloy-publisher/server 0.0.207 → 0.0.208

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.
Files changed (37) hide show
  1. package/dist/app/assets/{EnvironmentPage-BScgHmkw.js → EnvironmentPage-DDRxo015.js} +1 -1
  2. package/dist/app/assets/{HomePage-CGedji_w.js → HomePage-BeIoPOVO.js} +1 -1
  3. package/dist/app/assets/{MainPage-DWfF4jXW.js → MainPage-DHVFRXPc.js} +1 -1
  4. package/dist/app/assets/{MaterializationsPage-B9PDlk8c.js → MaterializationsPage-BYnr56IV.js} +1 -1
  5. package/dist/app/assets/{ModelPage-BiNOgK_e.js → ModelPage-B8tF_hYc.js} +1 -1
  6. package/dist/app/assets/{PackagePage-DAN5V7gu.js → PackagePage-LzaaviPn.js} +1 -1
  7. package/dist/app/assets/{RouteError-CEnIzuKN.js → RouteError-vAYvRAi3.js} +1 -1
  8. package/dist/app/assets/{WorkbookPage-gA1ceqHP.js → WorkbookPage-CTjs2hXr.js} +1 -1
  9. package/dist/app/assets/{core-AOmIKwkc.es-Dclu1Fga.js → core-AOmIKwkc.es-B29cca-e.js} +1 -1
  10. package/dist/app/assets/index-CVGIZdxd.js +40 -0
  11. package/dist/app/assets/{index-DtlPzNxc.js → index-Db2wvjL3.js} +3 -3
  12. package/dist/app/assets/index-Dj4uKosi.js +1760 -0
  13. package/dist/app/assets/index.umd-BRRXibWA.js +2467 -0
  14. package/dist/app/index.html +1 -1
  15. package/dist/server.mjs +7984 -4159
  16. package/package.json +13 -11
  17. package/src/health.ts +6 -0
  18. package/src/mcp/agent_server.protocol.spec.ts +78 -0
  19. package/src/mcp/agent_server.spec.ts +18 -0
  20. package/src/mcp/agent_server.ts +144 -0
  21. package/src/mcp/server.ts +3 -0
  22. package/src/mcp/skills/build_skills_bundle.spec.ts +51 -0
  23. package/src/mcp/skills/build_skills_bundle.ts +66 -0
  24. package/src/mcp/skills/skills_bundle.json +1 -0
  25. package/src/mcp/skills/skills_bundle.spec.ts +33 -0
  26. package/src/mcp/tools/docs_search/build_docs_index.ts +132 -0
  27. package/src/mcp/tools/docs_search/malloy_docs_index.json +1 -0
  28. package/src/mcp/tools/docs_search_tool.spec.ts +32 -0
  29. package/src/mcp/tools/docs_search_tool.ts +138 -0
  30. package/src/mcp/tools/get_context_eval.ts +126 -0
  31. package/src/mcp/tools/get_context_tool.spec.ts +44 -0
  32. package/src/mcp/tools/get_context_tool.ts +341 -0
  33. package/src/server.ts +14 -0
  34. package/tests/integration/watch-mode/watch_mode.integration.spec.ts +6 -0
  35. package/dist/app/assets/index-DGGe8UpP.js +0 -40
  36. package/dist/app/assets/index-uu6UpHd2.js +0 -1812
  37. package/dist/app/assets/index.umd-DDq93YX4.js +0 -2469
package/src/server.ts CHANGED
@@ -39,6 +39,7 @@ import { checkHeapConfiguration } from "./heap_check";
39
39
  import { queryConcurrency } from "./query_concurrency";
40
40
  import { MaterializationController } from "./controller/materialization.controller";
41
41
  import { initializeMcpServer } from "./mcp/server";
42
+ import { startAgentMcpServer } from "./mcp/agent_server";
42
43
  import { registerLegacyRoutes } from "./server-old";
43
44
  import { EnvironmentStore } from "./service/environment_store";
44
45
  import { MaterializationService } from "./service/materialization_service";
@@ -160,6 +161,7 @@ parseArgs();
160
161
  const PUBLISHER_PORT = Number(process.env.PUBLISHER_PORT || 4000);
161
162
  const PUBLISHER_HOST = process.env.PUBLISHER_HOST || "0.0.0.0";
162
163
  const MCP_PORT = Number(process.env.MCP_PORT || 4040);
164
+ const AGENT_MCP_PORT = Number(process.env.AGENT_MCP_PORT || 4041);
163
165
  const MCP_ENDPOINT = "/mcp";
164
166
  const SHUTDOWN_DRAIN_DURATION_SECONDS = Number(
165
167
  process.env.SHUTDOWN_DRAIN_DURATION_SECONDS || 0,
@@ -1765,9 +1767,21 @@ mcpServer.timeout = 600000;
1765
1767
  mcpServer.keepAliveTimeout = 600000;
1766
1768
  mcpServer.headersTimeout = 600000;
1767
1769
 
1770
+ // Separate, isolated MCP server for the agent retrieval tools (get_context,
1771
+ // search_docs) on its own listener. Kept apart from the core MCP server above.
1772
+ const agentMcpServer = startAgentMcpServer(
1773
+ environmentStore,
1774
+ PUBLISHER_HOST,
1775
+ AGENT_MCP_PORT,
1776
+ );
1777
+ agentMcpServer.timeout = 600000;
1778
+ agentMcpServer.keepAliveTimeout = 600000;
1779
+ agentMcpServer.headersTimeout = 600000;
1780
+
1768
1781
  registerSignalHandlers(
1769
1782
  mainServer,
1770
1783
  mcpServer,
1771
1784
  SHUTDOWN_DRAIN_DURATION_SECONDS,
1772
1785
  SHUTDOWN_GRACEFUL_CLOSE_TIMEOUT_SECONDS,
1786
+ agentMcpServer,
1773
1787
  );
@@ -116,6 +116,11 @@ async function startServer(opts: { watch: boolean }): Promise<TestServer> {
116
116
  const port = await getFreePort();
117
117
  let mcpPort = await getFreePort();
118
118
  while (mcpPort === port) mcpPort = await getFreePort();
119
+ // The agent MCP server binds its own listener; give it a distinct free port
120
+ // too, otherwise every spawned child binds the fixed default and collides.
121
+ let agentMcpPort = await getFreePort();
122
+ while (agentMcpPort === port || agentMcpPort === mcpPort)
123
+ agentMcpPort = await getFreePort();
119
124
  const baseUrl = `http://127.0.0.1:${port}`;
120
125
 
121
126
  const env: NodeJS.ProcessEnv = {
@@ -124,6 +129,7 @@ async function startServer(opts: { watch: boolean }): Promise<TestServer> {
124
129
  PUBLISHER_HOST: "127.0.0.1",
125
130
  PUBLISHER_PORT: String(port),
126
131
  MCP_PORT: String(mcpPort),
132
+ AGENT_MCP_PORT: String(agentMcpPort),
127
133
  };
128
134
  if (opts.watch) env.PUBLISHER_WATCH = ENV_NAME;
129
135