cyrus-config-updater 0.2.32 → 0.2.34
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/ConfigUpdater.d.ts +1 -1
- package/dist/ConfigUpdater.d.ts.map +1 -1
- package/dist/ConfigUpdater.js +3 -3
- package/dist/ConfigUpdater.js.map +1 -1
- package/dist/handlers/configureMcp.d.ts.map +1 -1
- package/dist/handlers/configureMcp.js +5 -4
- package/dist/handlers/configureMcp.js.map +1 -1
- package/dist/handlers/testMcp.d.ts +1 -4
- package/dist/handlers/testMcp.d.ts.map +1 -1
- package/dist/handlers/testMcp.js +117 -38
- package/dist/handlers/testMcp.js.map +1 -1
- package/dist/types.d.ts +12 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
package/dist/ConfigUpdater.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FastifyInstance } from "fastify";
|
|
2
2
|
/**
|
|
3
3
|
* ConfigUpdater registers configuration update routes with a Fastify server
|
|
4
|
-
* Handles: cyrus-config, cyrus-env, repository, test-mcp, configure-mcp, check-gh endpoints
|
|
4
|
+
* Handles: cyrus-config, cyrus-env, repository, update/test-mcp, update/configure-mcp, check-gh endpoints
|
|
5
5
|
*/
|
|
6
6
|
export declare class ConfigUpdater {
|
|
7
7
|
private fastify;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigUpdater.d.ts","sourceRoot":"","sources":["../src/ConfigUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAqB/C;;;GAGG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMvE;;OAEG;IACH,QAAQ,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"ConfigUpdater.d.ts","sourceRoot":"","sources":["../src/ConfigUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAqB/C;;;GAGG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMvE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAiBhB;;OAEG;IACH,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;YACW,sBAAsB;IAapC;;OAEG;YACW,mBAAmB;IAajC;;OAEG;YACW,qBAAqB;IAMnC;;OAEG;YACW,kBAAkB;IAMhC;;OAEG;YACW,uBAAuB;IAMrC;;OAEG;YACW,kBAAkB;IAMhC;;OAEG;YACW,2BAA2B;CAKzC"}
|
package/dist/ConfigUpdater.js
CHANGED
|
@@ -6,7 +6,7 @@ import { handleRepository, handleRepositoryDelete, } from "./handlers/repository
|
|
|
6
6
|
import { handleTestMcp } from "./handlers/testMcp.js";
|
|
7
7
|
/**
|
|
8
8
|
* ConfigUpdater registers configuration update routes with a Fastify server
|
|
9
|
-
* Handles: cyrus-config, cyrus-env, repository, test-mcp, configure-mcp, check-gh endpoints
|
|
9
|
+
* Handles: cyrus-config, cyrus-env, repository, update/test-mcp, update/configure-mcp, check-gh endpoints
|
|
10
10
|
*/
|
|
11
11
|
export class ConfigUpdater {
|
|
12
12
|
fastify;
|
|
@@ -26,8 +26,8 @@ export class ConfigUpdater {
|
|
|
26
26
|
this.registerRoute("/api/update/cyrus-env", this.handleCyrusEnvRoute);
|
|
27
27
|
this.registerRoute("/api/update/repository", this.handleRepositoryRoute);
|
|
28
28
|
this.registerDeleteRoute("/api/update/repository", this.handleRepositoryDeleteRoute);
|
|
29
|
-
this.registerRoute("/api/test-mcp", this.handleTestMcpRoute);
|
|
30
|
-
this.registerRoute("/api/configure-mcp", this.handleConfigureMcpRoute);
|
|
29
|
+
this.registerRoute("/api/update/test-mcp", this.handleTestMcpRoute);
|
|
30
|
+
this.registerRoute("/api/update/configure-mcp", this.handleConfigureMcpRoute);
|
|
31
31
|
this.registerRoute("/api/check-gh", this.handleCheckGhRoute);
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigUpdater.js","sourceRoot":"","sources":["../src/ConfigUpdater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACN,gBAAgB,EAChB,sBAAsB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAYtD;;;GAGG;AACH,MAAM,OAAO,aAAa;IACjB,OAAO,CAAkB;IACzB,SAAS,CAAS;IAClB,MAAM,CAAS;IAEvB,YAAY,OAAwB,EAAE,SAAiB,EAAE,MAAc;QACtE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,QAAQ;QACP,0CAA0C;QAC1C,IAAI,CAAC,aAAa,CAAC,0BAA0B,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACzE,IAAI,CAAC,mBAAmB,CACvB,wBAAwB,EACxB,IAAI,CAAC,2BAA2B,CAChC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"ConfigUpdater.js","sourceRoot":"","sources":["../src/ConfigUpdater.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureMcp.d.ts","sourceRoot":"","sources":["../../src/handlers/configureMcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEpE;;;GAGG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"configureMcp.d.ts","sourceRoot":"","sources":["../../src/handlers/configureMcp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEpE;;;GAGG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CA4EtB"}
|
|
@@ -22,15 +22,16 @@ export async function handleConfigureMcp(payload, cyrusHome) {
|
|
|
22
22
|
details: "At least one MCP server configuration must be provided.",
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
// Ensure the
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
// Ensure the mcp-configs subdirectory exists
|
|
26
|
+
const mcpConfigsDir = join(cyrusHome, "mcp-configs");
|
|
27
|
+
if (!existsSync(mcpConfigsDir)) {
|
|
28
|
+
mkdirSync(mcpConfigsDir, { recursive: true });
|
|
28
29
|
}
|
|
29
30
|
const mcpFilesWritten = [];
|
|
30
31
|
// Write each MCP server configuration to its own file
|
|
31
32
|
for (const slug of serverSlugs) {
|
|
32
33
|
const serverConfig = payload.mcpServers[slug];
|
|
33
|
-
const mcpFilePath = join(
|
|
34
|
+
const mcpFilePath = join(mcpConfigsDir, `mcp-${slug}.json`);
|
|
34
35
|
// Perform environment variable substitution
|
|
35
36
|
const processedConfig = performEnvSubstitution(serverConfig);
|
|
36
37
|
// Write the config file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureMcp.js","sourceRoot":"","sources":["../../src/handlers/configureMcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,OAA4B,EAC5B,SAAiB;IAEjB,IAAI,CAAC;QACJ,mBAAmB;QACnB,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnE,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,+CAA+C;gBACtD,OAAO,EACN,0EAA0E;aAC3E,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,6BAA6B;gBACpC,OAAO,EAAE,yDAAyD;aAClE,CAAC;QACH,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"configureMcp.js","sourceRoot":"","sources":["../../src/handlers/configureMcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import type { ApiResponse, TestMcpPayload } from "../types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Handle MCP connection test
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* Note: This is a placeholder implementation. The actual MCP testing logic
|
|
7
|
-
* would require integrating with the MCP SDK to test connections.
|
|
4
|
+
* Spawns the MCP server, connects via the MCP protocol, and discovers available tools.
|
|
8
5
|
*/
|
|
9
6
|
export declare function handleTestMcp(payload: TestMcpPayload): Promise<ApiResponse>;
|
|
10
7
|
//# sourceMappingURL=testMcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testMcp.d.ts","sourceRoot":"","sources":["../../src/handlers/testMcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testMcp.d.ts","sourceRoot":"","sources":["../../src/handlers/testMcp.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAK/D;;;GAGG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,WAAW,CAAC,CAwCtB"}
|
package/dist/handlers/testMcp.js
CHANGED
|
@@ -1,74 +1,153 @@
|
|
|
1
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
2
|
+
import { getDefaultEnvironment, StdioClientTransport, } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
3
|
+
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
4
|
+
const TEST_TIMEOUT_MS = 25_000; // 25s (edge request timeout is 30s)
|
|
5
|
+
const CLOSE_TIMEOUT_MS = 5_000; // 5s for graceful close
|
|
1
6
|
/**
|
|
2
7
|
* Handle MCP connection test
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Note: This is a placeholder implementation. The actual MCP testing logic
|
|
6
|
-
* would require integrating with the MCP SDK to test connections.
|
|
8
|
+
* Spawns the MCP server, connects via the MCP protocol, and discovers available tools.
|
|
7
9
|
*/
|
|
8
10
|
export async function handleTestMcp(payload) {
|
|
9
11
|
try {
|
|
10
|
-
// Validate payload
|
|
11
12
|
if (!payload.transportType) {
|
|
12
13
|
return {
|
|
13
14
|
success: false,
|
|
14
15
|
error: "MCP test requires transport type",
|
|
15
|
-
details: 'The transportType field is required and must be either "stdio" or "sse".',
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
if (payload.transportType !== "stdio" && payload.transportType !== "sse") {
|
|
19
|
-
return {
|
|
20
|
-
success: false,
|
|
21
|
-
error: "Invalid MCP transport type",
|
|
22
|
-
details: `Transport type "${payload.transportType}" is not supported. Must be either "stdio" or "sse".`,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
// Validate transport-specific requirements
|
|
26
18
|
if (payload.transportType === "stdio") {
|
|
27
19
|
if (!payload.command) {
|
|
28
20
|
return {
|
|
29
21
|
success: false,
|
|
30
|
-
error: "MCP stdio transport requires command",
|
|
31
|
-
details: "The command field is required when using stdio transport type.",
|
|
22
|
+
error: "MCP stdio transport requires a command",
|
|
32
23
|
};
|
|
33
24
|
}
|
|
25
|
+
return await testStdioMcp(payload);
|
|
34
26
|
}
|
|
35
|
-
|
|
27
|
+
if (payload.transportType === "http" || payload.transportType === "sse") {
|
|
36
28
|
if (!payload.serverUrl) {
|
|
37
29
|
return {
|
|
38
30
|
success: false,
|
|
39
|
-
error: "MCP SSE transport requires server URL",
|
|
40
|
-
details: "The serverUrl field is required when using SSE transport type.",
|
|
31
|
+
error: "MCP HTTP/SSE transport requires a server URL",
|
|
41
32
|
};
|
|
42
33
|
}
|
|
34
|
+
return await testHttpMcp(payload);
|
|
43
35
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
36
|
+
return {
|
|
37
|
+
success: false,
|
|
38
|
+
error: `Unsupported transport type: ${payload.transportType}`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: error instanceof Error ? error.message : "MCP connection test failed",
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Test a stdio MCP server by spawning the process, connecting, and listing tools.
|
|
50
|
+
*/
|
|
51
|
+
async function testStdioMcp(payload) {
|
|
52
|
+
const args = payload.commandArgs
|
|
53
|
+
? [...payload.commandArgs]
|
|
54
|
+
.sort((a, b) => a.order - b.order)
|
|
55
|
+
.map((a) => a.value)
|
|
56
|
+
: [];
|
|
57
|
+
// Start with the default safe environment (PATH, HOME, etc.)
|
|
58
|
+
const env = getDefaultEnvironment();
|
|
59
|
+
// Layer on user-provided env vars
|
|
60
|
+
if (payload.envVars) {
|
|
61
|
+
for (const { key, value } of payload.envVars) {
|
|
62
|
+
env[key] = value;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const transport = new StdioClientTransport({
|
|
66
|
+
command: payload.command,
|
|
67
|
+
args,
|
|
68
|
+
env,
|
|
69
|
+
stderr: "pipe",
|
|
70
|
+
});
|
|
71
|
+
return await connectAndDiscover(transport, payload.command);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Test an HTTP/SSE MCP server by connecting and listing tools.
|
|
75
|
+
*/
|
|
76
|
+
async function testHttpMcp(payload) {
|
|
77
|
+
// Build headers, substituting env vars
|
|
78
|
+
const headers = {};
|
|
79
|
+
if (payload.headers) {
|
|
80
|
+
for (const { name, value } of payload.headers) {
|
|
81
|
+
headers[name] = value;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Substitute ${VAR} placeholders in URL and headers
|
|
85
|
+
let url = payload.serverUrl;
|
|
86
|
+
if (payload.envVars) {
|
|
87
|
+
for (const { key, value } of payload.envVars) {
|
|
88
|
+
const placeholder = `\${${key}}`;
|
|
89
|
+
url = url.replaceAll(placeholder, value);
|
|
90
|
+
for (const headerName of Object.keys(headers)) {
|
|
91
|
+
const current = headers[headerName];
|
|
92
|
+
if (current !== undefined) {
|
|
93
|
+
headers[headerName] = current.replaceAll(placeholder, value);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const transport = new StreamableHTTPClientTransport(new URL(url), {
|
|
99
|
+
requestInit: {
|
|
100
|
+
headers,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
return await connectAndDiscover(transport, url);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Connect to an MCP server via the given transport, list tools, and return the result.
|
|
107
|
+
*/
|
|
108
|
+
async function connectAndDiscover(transport, fallbackName) {
|
|
109
|
+
const client = new Client({
|
|
110
|
+
name: "cyrus-mcp-tester",
|
|
111
|
+
version: "1.0.0",
|
|
112
|
+
});
|
|
113
|
+
try {
|
|
114
|
+
await withTimeout(client.connect(transport), "Connection timed out");
|
|
115
|
+
const toolsResult = await withTimeout(client.listTools(), "Tool listing timed out");
|
|
116
|
+
const tools = toolsResult.tools.map((t) => ({
|
|
117
|
+
name: t.name,
|
|
118
|
+
description: t.description || "",
|
|
119
|
+
}));
|
|
120
|
+
const serverVersion = client.getServerVersion();
|
|
51
121
|
return {
|
|
52
122
|
success: true,
|
|
53
|
-
message:
|
|
123
|
+
message: `MCP connection test successful — discovered ${tools.length} tool(s)`,
|
|
54
124
|
data: {
|
|
55
|
-
|
|
56
|
-
tools: [],
|
|
125
|
+
tools,
|
|
57
126
|
serverInfo: {
|
|
58
|
-
name:
|
|
59
|
-
version: "
|
|
127
|
+
name: serverVersion?.name || fallbackName,
|
|
128
|
+
version: serverVersion?.version || "unknown",
|
|
60
129
|
protocol: "mcp/1.0",
|
|
61
130
|
},
|
|
62
|
-
note: "This is a placeholder response. Full MCP testing will be implemented in a future update.",
|
|
63
131
|
},
|
|
64
132
|
};
|
|
65
133
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
134
|
+
finally {
|
|
135
|
+
try {
|
|
136
|
+
await withTimeout(client.close(), "Close timed out", CLOSE_TIMEOUT_MS);
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Best-effort cleanup — if close hangs, let it go
|
|
140
|
+
}
|
|
72
141
|
}
|
|
73
142
|
}
|
|
143
|
+
/** Race a promise against a timeout, clearing the timer on settlement. */
|
|
144
|
+
function withTimeout(promise, message, ms = TEST_TIMEOUT_MS) {
|
|
145
|
+
let timer;
|
|
146
|
+
return Promise.race([
|
|
147
|
+
promise,
|
|
148
|
+
new Promise((_, reject) => {
|
|
149
|
+
timer = setTimeout(() => reject(new Error(message)), ms);
|
|
150
|
+
}),
|
|
151
|
+
]).finally(() => clearTimeout(timer));
|
|
152
|
+
}
|
|
74
153
|
//# sourceMappingURL=testMcp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testMcp.js","sourceRoot":"","sources":["../../src/handlers/testMcp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"testMcp.js","sourceRoot":"","sources":["../../src/handlers/testMcp.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -23,9 +23,15 @@ export interface DeleteRepositoryPayload {
|
|
|
23
23
|
* may omit workspaceBaseDir - the handler applies a default value.
|
|
24
24
|
*/
|
|
25
25
|
export declare const CyrusConfigPayloadSchema: z.ZodObject<{
|
|
26
|
+
linearWorkspaces: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
27
|
+
linearToken: z.ZodString;
|
|
28
|
+
linearRefreshToken: z.ZodOptional<z.ZodString>;
|
|
29
|
+
linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
|
|
30
|
+
linearWorkspaceName: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>>>;
|
|
32
|
+
linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
|
|
26
33
|
ngrokAuthToken: z.ZodOptional<z.ZodString>;
|
|
27
34
|
stripeCustomerId: z.ZodOptional<z.ZodString>;
|
|
28
|
-
linearWorkspaceSlug: z.ZodOptional<z.ZodString>;
|
|
29
35
|
claudeDefaultModel: z.ZodOptional<z.ZodString>;
|
|
30
36
|
claudeDefaultFallbackModel: z.ZodOptional<z.ZodString>;
|
|
31
37
|
geminiDefaultModel: z.ZodOptional<z.ZodString>;
|
|
@@ -87,13 +93,13 @@ export declare const CyrusConfigPayloadSchema: z.ZodObject<{
|
|
|
87
93
|
repositoryPath: z.ZodString;
|
|
88
94
|
baseBranch: z.ZodString;
|
|
89
95
|
githubUrl: z.ZodOptional<z.ZodString>;
|
|
90
|
-
linearWorkspaceId: z.ZodString
|
|
91
|
-
linearWorkspaceName: z.ZodOptional<z.ZodString>;
|
|
92
|
-
linearToken: z.ZodString;
|
|
93
|
-
linearRefreshToken: z.ZodOptional<z.ZodString>;
|
|
96
|
+
linearWorkspaceId: z.ZodOptional<z.ZodString>;
|
|
94
97
|
teamKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
95
98
|
routingLabels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
96
99
|
projectKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
100
|
+
linearToken: z.ZodOptional<z.ZodString>;
|
|
101
|
+
linearRefreshToken: z.ZodOptional<z.ZodString>;
|
|
102
|
+
linearWorkspaceName: z.ZodOptional<z.ZodString>;
|
|
97
103
|
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
98
104
|
promptTemplatePath: z.ZodOptional<z.ZodString>;
|
|
99
105
|
allowedTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -180,7 +186,7 @@ export interface McpServerConfig {
|
|
|
180
186
|
* Test MCP connection payload
|
|
181
187
|
*/
|
|
182
188
|
export interface TestMcpPayload {
|
|
183
|
-
transportType: "stdio" | "sse";
|
|
189
|
+
transportType: "stdio" | "sse" | "http";
|
|
184
190
|
serverUrl?: string | null;
|
|
185
191
|
command?: string | null;
|
|
186
192
|
commandArgs?: Array<{
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,aAAa,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAC7D,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACxD,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,IAAI,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACX;AAED,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cyrus-config-updater",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.34",
|
|
4
4
|
"description": "Configuration update handlers for Cyrus agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
+
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
18
19
|
"fastify": "^5.8.1",
|
|
19
20
|
"zod": "^4.3.6",
|
|
20
|
-
"cyrus-core": "0.2.
|
|
21
|
+
"cyrus-core": "0.2.34"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
24
|
"@types/node": "^20.12.7",
|