@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.
- package/dist/app/assets/{EnvironmentPage-BScgHmkw.js → EnvironmentPage-DDRxo015.js} +1 -1
- package/dist/app/assets/{HomePage-CGedji_w.js → HomePage-BeIoPOVO.js} +1 -1
- package/dist/app/assets/{MainPage-DWfF4jXW.js → MainPage-DHVFRXPc.js} +1 -1
- package/dist/app/assets/{MaterializationsPage-B9PDlk8c.js → MaterializationsPage-BYnr56IV.js} +1 -1
- package/dist/app/assets/{ModelPage-BiNOgK_e.js → ModelPage-B8tF_hYc.js} +1 -1
- package/dist/app/assets/{PackagePage-DAN5V7gu.js → PackagePage-LzaaviPn.js} +1 -1
- package/dist/app/assets/{RouteError-CEnIzuKN.js → RouteError-vAYvRAi3.js} +1 -1
- package/dist/app/assets/{WorkbookPage-gA1ceqHP.js → WorkbookPage-CTjs2hXr.js} +1 -1
- package/dist/app/assets/{core-AOmIKwkc.es-Dclu1Fga.js → core-AOmIKwkc.es-B29cca-e.js} +1 -1
- package/dist/app/assets/index-CVGIZdxd.js +40 -0
- package/dist/app/assets/{index-DtlPzNxc.js → index-Db2wvjL3.js} +3 -3
- package/dist/app/assets/index-Dj4uKosi.js +1760 -0
- package/dist/app/assets/index.umd-BRRXibWA.js +2467 -0
- package/dist/app/index.html +1 -1
- package/dist/server.mjs +7984 -4159
- package/package.json +13 -11
- package/src/health.ts +6 -0
- package/src/mcp/agent_server.protocol.spec.ts +78 -0
- package/src/mcp/agent_server.spec.ts +18 -0
- package/src/mcp/agent_server.ts +144 -0
- package/src/mcp/server.ts +3 -0
- package/src/mcp/skills/build_skills_bundle.spec.ts +51 -0
- package/src/mcp/skills/build_skills_bundle.ts +66 -0
- package/src/mcp/skills/skills_bundle.json +1 -0
- package/src/mcp/skills/skills_bundle.spec.ts +33 -0
- package/src/mcp/tools/docs_search/build_docs_index.ts +132 -0
- package/src/mcp/tools/docs_search/malloy_docs_index.json +1 -0
- package/src/mcp/tools/docs_search_tool.spec.ts +32 -0
- package/src/mcp/tools/docs_search_tool.ts +138 -0
- package/src/mcp/tools/get_context_eval.ts +126 -0
- package/src/mcp/tools/get_context_tool.spec.ts +44 -0
- package/src/mcp/tools/get_context_tool.ts +341 -0
- package/src/server.ts +14 -0
- package/tests/integration/watch-mode/watch_mode.integration.spec.ts +6 -0
- package/dist/app/assets/index-DGGe8UpP.js +0 -40
- package/dist/app/assets/index-uu6UpHd2.js +0 -1812
- 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
|
|