@relaycast/mcp 0.5.1 → 0.5.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.
Files changed (58) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/piggyback.d.ts +12 -1
  6. package/dist/piggyback.d.ts.map +1 -1
  7. package/dist/piggyback.js +39 -16
  8. package/dist/piggyback.js.map +1 -1
  9. package/dist/prompts.d.ts +1 -1
  10. package/dist/prompts.d.ts.map +1 -1
  11. package/dist/prompts.js +9 -9
  12. package/dist/resources/definitions.d.ts +6 -1
  13. package/dist/resources/definitions.d.ts.map +1 -1
  14. package/dist/resources/definitions.js +38 -12
  15. package/dist/resources/definitions.js.map +1 -1
  16. package/dist/server.d.ts +5 -0
  17. package/dist/server.d.ts.map +1 -1
  18. package/dist/server.js +177 -38
  19. package/dist/server.js.map +1 -1
  20. package/dist/stdio.js +12 -7
  21. package/dist/stdio.js.map +1 -1
  22. package/dist/tool-aliases.d.ts +67 -0
  23. package/dist/tool-aliases.d.ts.map +1 -0
  24. package/dist/tool-aliases.js +71 -0
  25. package/dist/tool-aliases.js.map +1 -0
  26. package/dist/tools/channels.d.ts +5 -2
  27. package/dist/tools/channels.d.ts.map +1 -1
  28. package/dist/tools/channels.js +32 -21
  29. package/dist/tools/channels.js.map +1 -1
  30. package/dist/tools/features.d.ts +4 -1
  31. package/dist/tools/features.d.ts.map +1 -1
  32. package/dist/tools/features.js +28 -20
  33. package/dist/tools/features.js.map +1 -1
  34. package/dist/tools/messaging.d.ts +7 -1
  35. package/dist/tools/messaging.d.ts.map +1 -1
  36. package/dist/tools/messaging.js +34 -21
  37. package/dist/tools/messaging.js.map +1 -1
  38. package/dist/tools/programmability.d.ts +7 -1
  39. package/dist/tools/programmability.d.ts.map +1 -1
  40. package/dist/tools/programmability.js +22 -18
  41. package/dist/tools/programmability.js.map +1 -1
  42. package/dist/tools/registration.d.ts +4 -1
  43. package/dist/tools/registration.d.ts.map +1 -1
  44. package/dist/tools/registration.js +317 -21
  45. package/dist/tools/registration.js.map +1 -1
  46. package/dist/transports.d.ts +1 -1
  47. package/dist/transports.d.ts.map +1 -1
  48. package/dist/transports.js +123 -48
  49. package/dist/transports.js.map +1 -1
  50. package/dist/types.d.ts +23 -0
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js +4 -0
  53. package/dist/types.js.map +1 -1
  54. package/dist/workspaces.d.ts +69 -0
  55. package/dist/workspaces.d.ts.map +1 -0
  56. package/dist/workspaces.js +134 -0
  57. package/dist/workspaces.js.map +1 -0
  58. package/package.json +3 -3
package/dist/server.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
2
+ import { CallToolRequestSchema, ListToolsRequestSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
3
3
  import { createInternalRelayCast, createInternalWsClient } from '@relaycast/sdk/internal';
4
4
  import { registerRegistrationTools } from './tools/registration.js';
5
5
  import { registerChannelTools } from './tools/channels.js';
@@ -13,6 +13,8 @@ import { registerResourceDefinitions } from './resources/definitions.js';
13
13
  import { SubscriptionManager } from './resources/subscriptions.js';
14
14
  import { WsBridge } from './resources/ws-bridge.js';
15
15
  import { createMcpTelemetry } from './telemetry.js';
16
+ import { resolveToolName } from './tool-aliases.js';
17
+ import { findWorkspaceContext } from './workspaces.js';
16
18
  export const MCP_VERSION = '0.1.2';
17
19
  export function createRelayMcpServer(options) {
18
20
  const session = createInitialSession({
@@ -42,35 +44,81 @@ export function createRelayMcpServer(options) {
42
44
  transport: options.telemetryTransport ?? 'unknown',
43
45
  });
44
46
  const getSession = () => session;
45
- const getRelay = () => {
46
- const workspaceKey = session.workspaceKey;
47
- if (!workspaceKey) {
48
- throw new Error('Workspace key not configured. Set RELAY_API_KEY at startup, or call "create_workspace" or "set_workspace_key" first.');
47
+ const getRelay = (wsRouting, asAgent) => {
48
+ if (!session.workspaceKey) {
49
+ throw new Error('Workspace key not configured. Set RELAY_API_KEY at startup, or call "workspace.create" or "workspace.set_key" first.');
49
50
  }
51
+ if (!wsRouting && !asAgent) {
52
+ return createInternalRelayCast({
53
+ apiKey: session.workspaceKey,
54
+ baseUrl: options.baseUrl,
55
+ }, mcpOrigin);
56
+ }
57
+ const identity = resolveAgentIdentity(wsRouting, asAgent);
50
58
  return createInternalRelayCast({
51
- apiKey: workspaceKey,
59
+ apiKey: identity.workspaceKey,
52
60
  baseUrl: options.baseUrl,
53
61
  }, mcpOrigin);
54
62
  };
63
+ const syncActiveWorkspaceContext = () => {
64
+ if (!session.workspaceKey || !session.agentToken || !session.agentName) {
65
+ return;
66
+ }
67
+ const existing = session.workspaces.get(session.workspaceKey);
68
+ const agents = new Map(existing?.agents ?? []);
69
+ for (const [agentName, agent] of session.agents) {
70
+ agents.set(agentName, agent);
71
+ }
72
+ agents.set(session.agentName, {
73
+ agentName: session.agentName,
74
+ agentToken: session.agentToken,
75
+ });
76
+ session.workspaces.set(session.workspaceKey, {
77
+ workspaceKey: session.workspaceKey,
78
+ agentToken: session.agentToken,
79
+ agentName: session.agentName,
80
+ agents,
81
+ workspaceName: existing?.workspaceName,
82
+ workspaceLabel: existing?.workspaceLabel,
83
+ wsBridge: session.wsBridge,
84
+ subscriptions: session.subscriptions,
85
+ wsInitAttempted: session.wsInitAttempted,
86
+ });
87
+ };
88
+ const notifySubscribers = () => {
89
+ const uris = session.subscriptions?.getAll() ?? [];
90
+ for (const uri of uris) {
91
+ mcpServer.server.sendResourceUpdated({ uri }).catch(() => { });
92
+ }
93
+ };
55
94
  const setSession = (partial) => {
56
- const nextAgentToken = partial.agentToken === undefined ? session.agentToken : partial.agentToken;
57
- const nextAgentName = partial.agentName ?? session.agentName ?? null;
58
- const shouldResetBridge = partial.agentToken !== undefined && partial.agentToken !== session.agentToken;
59
- if (shouldResetBridge && session.wsBridge) {
60
- session.wsBridge.stop();
95
+ const switchingWorkspace = partial.workspaceKey !== undefined && partial.workspaceKey !== session.workspaceKey;
96
+ const changingToken = partial.agentToken !== undefined && partial.agentToken !== session.agentToken;
97
+ // In a single MCP process the bridge tracks the active workspace, not
98
+ // every agent token update inside that workspace. Rebuild it only when
99
+ // the workspace itself changes.
100
+ if (switchingWorkspace) {
101
+ // Notify subscribers before tearing down so clients know data changed
102
+ notifySubscribers();
103
+ session.wsBridge?.stop();
61
104
  session.subscriptions?.clear();
62
105
  session.wsBridge = null;
63
106
  session.subscriptions = null;
64
- }
65
- if (shouldResetBridge) {
66
107
  session.wsInitAttempted = false;
67
108
  }
68
- // When an agent token is set, initialize the WebSocket bridge.
69
- if (nextAgentToken && !session.wsBridge && !session.wsInitAttempted) {
109
+ // Apply the partial state update
110
+ Object.assign(session, partial);
111
+ // When the agent token changes within the same workspace, notify
112
+ // subscribers that resource data may have changed.
113
+ if (!switchingWorkspace && changingToken) {
114
+ notifySubscribers();
115
+ }
116
+ // If we have a token but no bridge yet, and we haven't failed initialization, try to start it.
117
+ if (session.agentToken && !session.wsBridge && !session.wsInitAttempted) {
70
118
  try {
71
119
  const subscriptions = new SubscriptionManager();
72
120
  const wsClient = createInternalWsClient({
73
- token: nextAgentToken,
121
+ token: session.agentToken,
74
122
  baseUrl: options.baseUrl,
75
123
  }, mcpOrigin);
76
124
  const wsBridge = new WsBridge(wsClient, subscriptions, (uri) => {
@@ -79,43 +127,79 @@ export function createRelayMcpServer(options) {
79
127
  });
80
128
  });
81
129
  wsBridge.start();
82
- Object.assign(session, partial, {
83
- wsBridge,
84
- subscriptions,
85
- wsInitAttempted: true,
86
- });
130
+ session.wsBridge = wsBridge;
131
+ session.subscriptions = subscriptions;
132
+ session.wsInitAttempted = true;
87
133
  }
88
134
  catch {
89
135
  // In non-WS runtimes (e.g. some test environments), keep session usable
90
136
  // without real-time resource updates.
91
- Object.assign(session, partial, {
92
- wsBridge: null,
93
- subscriptions: null,
94
- wsInitAttempted: true,
95
- });
137
+ session.wsBridge = null;
138
+ session.subscriptions = null;
139
+ session.wsInitAttempted = true;
96
140
  }
97
141
  telemetry.capture('relaycast_mcp_session_authenticated', {
98
142
  source_surface: 'mcp',
99
- agent_name: nextAgentName,
143
+ agent_name: session.agentName,
100
144
  });
101
145
  }
102
- else {
103
- Object.assign(session, partial);
104
- }
146
+ syncActiveWorkspaceContext();
105
147
  };
106
- const getAgentClient = () => {
107
- if (!session.agentToken) {
108
- throw new Error('Not registered. Call the "register" tool first.');
148
+ const resolveRegisteredToken = (agents, agentName) => {
149
+ if (!agentName)
150
+ return null;
151
+ return agents.get(agentName)?.agentToken ?? null;
152
+ };
153
+ const resolveAgentIdentity = (wsRouting, asAgent) => {
154
+ if (wsRouting && (wsRouting.workspace_id || wsRouting.workspace_alias)) {
155
+ const ctx = findWorkspaceContext(session, wsRouting, options.workspaces);
156
+ if (!ctx) {
157
+ throw new Error(`Workspace not found: ${wsRouting.workspace_id ?? wsRouting.workspace_alias}. ` +
158
+ 'Join the workspace first via "workspace.join" or bootstrap via RELAY_WORKSPACES_JSON.');
159
+ }
160
+ const routedToken = resolveRegisteredToken(ctx.agents, asAgent) ?? ctx.agentToken;
161
+ if (asAgent && !resolveRegisteredToken(ctx.agents, asAgent)) {
162
+ throw new Error(`Unknown agent identity "${asAgent}" for workspace ${wsRouting.workspace_id ?? wsRouting.workspace_alias}. Register it first.`);
163
+ }
164
+ return {
165
+ workspaceKey: ctx.workspaceKey,
166
+ agentToken: routedToken,
167
+ agentName: asAgent ?? ctx.agentName,
168
+ };
169
+ }
170
+ const activeToken = resolveRegisteredToken(session.agents, asAgent) ?? session.agentToken;
171
+ if (asAgent && !resolveRegisteredToken(session.agents, asAgent)) {
172
+ throw new Error(`Unknown agent identity "${asAgent}". Register it first.`);
173
+ }
174
+ if (!activeToken) {
175
+ throw new Error('Not registered. Call the "agent.register" tool first.');
109
176
  }
177
+ return {
178
+ workspaceKey: session.workspaceKey ?? activeToken,
179
+ agentToken: activeToken,
180
+ agentName: asAgent ?? session.agentName ?? '',
181
+ };
182
+ };
183
+ const getAgentClient = (wsRouting, asAgent) => {
184
+ const identity = resolveAgentIdentity(wsRouting, asAgent);
110
185
  return createInternalRelayCast({
111
- apiKey: session.agentToken,
186
+ apiKey: identity.agentToken,
112
187
  baseUrl: options.baseUrl,
113
- }, mcpOrigin).as(session.agentToken);
188
+ }, mcpOrigin).as(identity.agentToken);
114
189
  };
115
190
  // Enable piggybacking of unread messages on all tool responses
116
- enablePiggyback(mcpServer, getSession, getAgentClient, telemetry);
191
+ enablePiggyback(mcpServer, getSession, getAgentClient, telemetry, (routing) => resolveAgentIdentity(routing, routing?.as));
117
192
  // Register resource definitions (inbox, agents, channels, etc.)
118
193
  registerResourceDefinitions(mcpServer, getAgentClient, getRelay);
194
+ // Register subscribe/unsubscribe handlers so clients can track resource changes
195
+ mcpServer.server.setRequestHandler(SubscribeRequestSchema, async (req) => {
196
+ session.subscriptions?.subscribe(req.params.uri);
197
+ return {};
198
+ });
199
+ mcpServer.server.setRequestHandler(UnsubscribeRequestSchema, async (req) => {
200
+ session.subscriptions?.unsubscribe(req.params.uri);
201
+ return {};
202
+ });
119
203
  // Register all tools
120
204
  registerRegistrationTools(mcpServer, getRelay, getSession, setSession, options.baseUrl, options.strictAgentName, options.agentName, options.agentType);
121
205
  registerChannelTools(mcpServer, getAgentClient);
@@ -134,16 +218,71 @@ export function createRelayMcpServer(options) {
134
218
  const origToolsListHandler = handlers.get('tools/list');
135
219
  if (origToolsListHandler) {
136
220
  mcpServer.server.setRequestHandler(ListToolsRequestSchema, async (req, extra) => {
137
- const result = (await origToolsListHandler(req, extra));
221
+ const result = await origToolsListHandler(req, extra);
138
222
  if (result?.tools) {
139
223
  result.tools = result.tools.map(t => {
140
- const { execution, outputSchema, _meta, ...clean } = t;
224
+ const { execution: _execution, outputSchema: _outputSchema, _meta, ...clean } = t;
141
225
  return clean;
142
226
  });
143
227
  }
144
228
  return result;
145
229
  });
146
230
  }
231
+ const origCallToolHandler = handlers.get('tools/call');
232
+ if (origCallToolHandler) {
233
+ mcpServer.server.setRequestHandler(CallToolRequestSchema, async (req, extra) => {
234
+ const resolvedName = resolveToolName(req.params.name);
235
+ const request = resolvedName === req.params.name
236
+ ? req
237
+ : {
238
+ ...req,
239
+ params: {
240
+ ...req.params,
241
+ name: resolvedName,
242
+ },
243
+ };
244
+ return await origCallToolHandler(request, extra);
245
+ });
246
+ }
247
+ // Populate workspace contexts from options so routing works without
248
+ // external code reaching into server internals.
249
+ if (options.workspaces?.length) {
250
+ for (const ws of options.workspaces) {
251
+ if (ws.agent_token && ws.agent_name) {
252
+ const existing = session.workspaces.get(ws.api_key);
253
+ const agents = new Map(existing?.agents ?? []);
254
+ agents.set(ws.agent_name, {
255
+ agentName: ws.agent_name,
256
+ agentToken: ws.agent_token,
257
+ });
258
+ session.workspaces.set(ws.api_key, {
259
+ workspaceKey: ws.api_key,
260
+ agentToken: ws.agent_token,
261
+ agentName: ws.agent_name,
262
+ agents,
263
+ workspaceName: ws.workspace_name ?? existing?.workspaceName,
264
+ workspaceLabel: existing?.workspaceLabel,
265
+ wsBridge: null,
266
+ subscriptions: null,
267
+ wsInitAttempted: false,
268
+ });
269
+ }
270
+ }
271
+ }
272
+ if (session.workspaceKey && session.agentToken && session.agentName) {
273
+ const existing = session.workspaces.get(session.workspaceKey);
274
+ session.workspaces.set(session.workspaceKey, {
275
+ workspaceKey: session.workspaceKey,
276
+ agentToken: session.agentToken,
277
+ agentName: session.agentName,
278
+ agents: new Map(session.agents),
279
+ workspaceName: existing?.workspaceName,
280
+ workspaceLabel: existing?.workspaceLabel,
281
+ wsBridge: existing?.wsBridge ?? session.wsBridge,
282
+ subscriptions: existing?.subscriptions ?? session.subscriptions,
283
+ wsInitAttempted: existing?.wsInitAttempted ?? session.wsInitAttempted,
284
+ });
285
+ }
147
286
  return mcpServer;
148
287
  }
149
288
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/stdio.js CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { startStdio } from "./transports.js";
2
+ import { startStdio } from './transports.js';
3
+ import { parseWorkspaceEnv } from './workspaces.js';
3
4
  /**
4
5
  * Resolve the Relaycast API key from RELAY_API_KEY env var.
5
6
  * When spawned by the broker, RELAY_API_KEY is always injected into the environment.
@@ -11,26 +12,30 @@ function parseStrictAgentName(value) {
11
12
  if (!value)
12
13
  return false;
13
14
  const normalized = value.trim().toLowerCase();
14
- return (normalized === "1" ||
15
- normalized === "true" ||
16
- normalized === "yes" ||
17
- normalized === "on");
15
+ return normalized === '1' || normalized === 'true' || normalized === 'yes' || normalized === 'on';
18
16
  }
19
17
  function parseAgentType(value) {
20
18
  if (!value)
21
19
  return undefined;
22
20
  const normalized = value.trim().toLowerCase();
23
- if (normalized === "agent" || normalized === "human") {
21
+ if (normalized === 'agent' || normalized === 'human') {
24
22
  return normalized;
25
23
  }
26
24
  return undefined;
27
25
  }
26
+ // When RELAY_SKIP_BOOTSTRAP is set (broker-spawned agents with a pre-registered
27
+ // token), omit workspaces to prevent redundant bootstrap HTTP calls that would
28
+ // delay the MCP initialize handshake.
29
+ const skipBootstrap = parseStrictAgentName(process.env.RELAY_SKIP_BOOTSTRAP);
30
+ const workspaces = skipBootstrap ? [] : parseWorkspaceEnv(process.env.RELAY_WORKSPACES_JSON);
28
31
  startStdio({
29
32
  apiKey: resolveApiKey(),
30
33
  baseUrl: process.env.RELAY_BASE_URL,
31
34
  agentToken: process.env.RELAY_AGENT_TOKEN,
32
- agentName: process.env.RELAY_AGENT_NAME ?? process.env.RELAY_CLAW_NAME,
35
+ agentName: process.env.RELAY_AGENT_NAME,
33
36
  agentType: parseAgentType(process.env.RELAY_AGENT_TYPE),
34
37
  strictAgentName: parseStrictAgentName(process.env.RELAY_STRICT_AGENT_NAME),
38
+ workspaces: workspaces.length > 0 ? workspaces : undefined,
39
+ defaultWorkspace: process.env.RELAY_DEFAULT_WORKSPACE,
35
40
  });
36
41
  //# sourceMappingURL=stdio.js.map
package/dist/stdio.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;GAGG;AACH,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACnC,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,CACL,UAAU,KAAK,GAAG;QAClB,UAAU,KAAK,MAAM;QACrB,UAAU,KAAK,KAAK;QACpB,UAAU,KAAK,IAAI,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,KAAyB;IAEzB,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QACrD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,UAAU,CAAC;IACT,MAAM,EAAE,aAAa,EAAE;IACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;IACnC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;IACzC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe;IACtE,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACvD,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;CAC3E,CAAC,CAAC"}
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;GAGG;AACH,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AACnC,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB;IACrD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI,CAAC;AACpG,CAAC;AAED,SAAS,cAAc,CAAC,KAAyB;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QACrD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gFAAgF;AAChF,+EAA+E;AAC/E,sCAAsC;AACtC,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC7E,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAE7F,UAAU,CAAC;IACT,MAAM,EAAE,aAAa,EAAE;IACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;IACnC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;IACzC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;IACvC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACvD,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAC1E,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;IAC1D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;CACtD,CAAC,CAAC"}
@@ -0,0 +1,67 @@
1
+ export declare const LEGACY_TOOL_NAME_ALIASES: {
2
+ readonly create_workspace: "workspace.create";
3
+ readonly set_workspace_key: "workspace.set_key";
4
+ readonly register: "agent.register";
5
+ readonly list_agents: "agent.list";
6
+ readonly list_workspaces: "workspace.list";
7
+ readonly join_workspace: "workspace.join";
8
+ readonly switch_workspace: "workspace.switch";
9
+ readonly create_channel: "channel.create";
10
+ readonly list_channels: "channel.list";
11
+ readonly join_channel: "channel.join";
12
+ readonly leave_channel: "channel.leave";
13
+ readonly invite_to_channel: "channel.invite";
14
+ readonly set_channel_topic: "channel.set_topic";
15
+ readonly archive_channel: "channel.archive";
16
+ readonly post_message: "message.post";
17
+ readonly get_messages: "message.list";
18
+ readonly reply_to_thread: "message.reply";
19
+ readonly get_thread: "message.get_thread";
20
+ readonly send_dm: "message.dm.send";
21
+ readonly get_dms: "message.dm.list";
22
+ readonly send_group_dm: "message.dm.send_group";
23
+ readonly add_reaction: "message.reaction.add";
24
+ readonly remove_reaction: "message.reaction.remove";
25
+ readonly search_messages: "message.search";
26
+ readonly check_inbox: "message.inbox.check";
27
+ readonly mark_read: "message.inbox.mark_read";
28
+ readonly get_readers: "message.inbox.get_readers";
29
+ readonly upload_file: "message.file.upload";
30
+ readonly create_webhook: "integration.webhook.create";
31
+ readonly list_webhooks: "integration.webhook.list";
32
+ readonly delete_webhook: "integration.webhook.delete";
33
+ readonly trigger_webhook: "integration.webhook.trigger";
34
+ readonly create_subscription: "integration.subscription.create";
35
+ readonly list_subscriptions: "integration.subscription.list";
36
+ readonly get_subscription: "integration.subscription.get";
37
+ readonly delete_subscription: "integration.subscription.delete";
38
+ readonly register_command: "integration.command.register";
39
+ readonly list_commands: "integration.command.list";
40
+ readonly delete_command: "integration.command.delete";
41
+ readonly invoke_command: "integration.command.invoke";
42
+ readonly add_agent: "agent.add";
43
+ readonly remove_agent: "agent.remove";
44
+ readonly 'dm.send': "message.dm.send";
45
+ readonly 'dm.list': "message.dm.list";
46
+ readonly 'dm.send_group': "message.dm.send_group";
47
+ readonly 'reaction.add': "message.reaction.add";
48
+ readonly 'reaction.remove': "message.reaction.remove";
49
+ readonly 'inbox.check': "message.inbox.check";
50
+ readonly 'inbox.mark_read': "message.inbox.mark_read";
51
+ readonly 'inbox.get_readers': "message.inbox.get_readers";
52
+ readonly 'file.upload': "message.file.upload";
53
+ readonly 'webhook.create': "integration.webhook.create";
54
+ readonly 'webhook.list': "integration.webhook.list";
55
+ readonly 'webhook.delete': "integration.webhook.delete";
56
+ readonly 'webhook.trigger': "integration.webhook.trigger";
57
+ readonly 'subscription.create': "integration.subscription.create";
58
+ readonly 'subscription.list': "integration.subscription.list";
59
+ readonly 'subscription.get': "integration.subscription.get";
60
+ readonly 'subscription.delete': "integration.subscription.delete";
61
+ readonly 'command.register': "integration.command.register";
62
+ readonly 'command.list': "integration.command.list";
63
+ readonly 'command.delete': "integration.command.delete";
64
+ readonly 'command.invoke': "integration.command.invoke";
65
+ };
66
+ export declare function resolveToolName(toolName: string): string;
67
+ //# sourceMappingURL=tool-aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-aliases.d.ts","sourceRoot":"","sources":["../src/tool-aliases.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEM,CAAC;AAE5C,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -0,0 +1,71 @@
1
+ export const LEGACY_TOOL_NAME_ALIASES = {
2
+ create_workspace: 'workspace.create',
3
+ set_workspace_key: 'workspace.set_key',
4
+ register: 'agent.register',
5
+ list_agents: 'agent.list',
6
+ list_workspaces: 'workspace.list',
7
+ join_workspace: 'workspace.join',
8
+ switch_workspace: 'workspace.switch',
9
+ create_channel: 'channel.create',
10
+ list_channels: 'channel.list',
11
+ join_channel: 'channel.join',
12
+ leave_channel: 'channel.leave',
13
+ invite_to_channel: 'channel.invite',
14
+ set_channel_topic: 'channel.set_topic',
15
+ archive_channel: 'channel.archive',
16
+ post_message: 'message.post',
17
+ get_messages: 'message.list',
18
+ reply_to_thread: 'message.reply',
19
+ get_thread: 'message.get_thread',
20
+ send_dm: 'message.dm.send',
21
+ get_dms: 'message.dm.list',
22
+ send_group_dm: 'message.dm.send_group',
23
+ add_reaction: 'message.reaction.add',
24
+ remove_reaction: 'message.reaction.remove',
25
+ search_messages: 'message.search',
26
+ check_inbox: 'message.inbox.check',
27
+ mark_read: 'message.inbox.mark_read',
28
+ get_readers: 'message.inbox.get_readers',
29
+ upload_file: 'message.file.upload',
30
+ create_webhook: 'integration.webhook.create',
31
+ list_webhooks: 'integration.webhook.list',
32
+ delete_webhook: 'integration.webhook.delete',
33
+ trigger_webhook: 'integration.webhook.trigger',
34
+ create_subscription: 'integration.subscription.create',
35
+ list_subscriptions: 'integration.subscription.list',
36
+ get_subscription: 'integration.subscription.get',
37
+ delete_subscription: 'integration.subscription.delete',
38
+ register_command: 'integration.command.register',
39
+ list_commands: 'integration.command.list',
40
+ delete_command: 'integration.command.delete',
41
+ invoke_command: 'integration.command.invoke',
42
+ add_agent: 'agent.add',
43
+ remove_agent: 'agent.remove',
44
+ // v0.5 two-level aliases
45
+ 'dm.send': 'message.dm.send',
46
+ 'dm.list': 'message.dm.list',
47
+ 'dm.send_group': 'message.dm.send_group',
48
+ 'reaction.add': 'message.reaction.add',
49
+ 'reaction.remove': 'message.reaction.remove',
50
+ 'inbox.check': 'message.inbox.check',
51
+ 'inbox.mark_read': 'message.inbox.mark_read',
52
+ 'inbox.get_readers': 'message.inbox.get_readers',
53
+ 'file.upload': 'message.file.upload',
54
+ // v0.5 two-level aliases for programmability tools
55
+ 'webhook.create': 'integration.webhook.create',
56
+ 'webhook.list': 'integration.webhook.list',
57
+ 'webhook.delete': 'integration.webhook.delete',
58
+ 'webhook.trigger': 'integration.webhook.trigger',
59
+ 'subscription.create': 'integration.subscription.create',
60
+ 'subscription.list': 'integration.subscription.list',
61
+ 'subscription.get': 'integration.subscription.get',
62
+ 'subscription.delete': 'integration.subscription.delete',
63
+ 'command.register': 'integration.command.register',
64
+ 'command.list': 'integration.command.list',
65
+ 'command.delete': 'integration.command.delete',
66
+ 'command.invoke': 'integration.command.invoke',
67
+ };
68
+ export function resolveToolName(toolName) {
69
+ return LEGACY_TOOL_NAME_ALIASES[toolName] ?? toolName;
70
+ }
71
+ //# sourceMappingURL=tool-aliases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-aliases.js","sourceRoot":"","sources":["../src/tool-aliases.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,QAAQ,EAAE,gBAAgB;IAC1B,WAAW,EAAE,YAAY;IACzB,eAAe,EAAE,gBAAgB;IACjC,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,cAAc;IAC7B,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,gBAAgB;IACnC,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,oBAAoB;IAChC,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,aAAa,EAAE,uBAAuB;IACtC,YAAY,EAAE,sBAAsB;IACpC,eAAe,EAAE,yBAAyB;IAC1C,eAAe,EAAE,gBAAgB;IACjC,WAAW,EAAE,qBAAqB;IAClC,SAAS,EAAE,yBAAyB;IACpC,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE,qBAAqB;IAClC,cAAc,EAAE,4BAA4B;IAC5C,aAAa,EAAE,0BAA0B;IACzC,cAAc,EAAE,4BAA4B;IAC5C,eAAe,EAAE,6BAA6B;IAC9C,mBAAmB,EAAE,iCAAiC;IACtD,kBAAkB,EAAE,+BAA+B;IACnD,gBAAgB,EAAE,8BAA8B;IAChD,mBAAmB,EAAE,iCAAiC;IACtD,gBAAgB,EAAE,8BAA8B;IAChD,aAAa,EAAE,0BAA0B;IACzC,cAAc,EAAE,4BAA4B;IAC5C,cAAc,EAAE,4BAA4B;IAC5C,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,cAAc;IAC5B,yBAAyB;IACzB,SAAS,EAAE,iBAAiB;IAC5B,SAAS,EAAE,iBAAiB;IAC5B,eAAe,EAAE,uBAAuB;IACxC,cAAc,EAAE,sBAAsB;IACtC,iBAAiB,EAAE,yBAAyB;IAC5C,aAAa,EAAE,qBAAqB;IACpC,iBAAiB,EAAE,yBAAyB;IAC5C,mBAAmB,EAAE,2BAA2B;IAChD,aAAa,EAAE,qBAAqB;IACpC,mDAAmD;IACnD,gBAAgB,EAAE,4BAA4B;IAC9C,cAAc,EAAE,0BAA0B;IAC1C,gBAAgB,EAAE,4BAA4B;IAC9C,iBAAiB,EAAE,6BAA6B;IAChD,qBAAqB,EAAE,iCAAiC;IACxD,mBAAmB,EAAE,+BAA+B;IACpD,kBAAkB,EAAE,8BAA8B;IAClD,qBAAqB,EAAE,iCAAiC;IACxD,kBAAkB,EAAE,8BAA8B;IAClD,cAAc,EAAE,0BAA0B;IAC1C,gBAAgB,EAAE,4BAA4B;IAC9C,gBAAgB,EAAE,4BAA4B;CACL,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,wBAAwB,CAAC,QAAiD,CAAC,IAAI,QAAQ,CAAC;AACjG,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { AgentClient } from '@relaycast/sdk';
3
- export declare function registerChannelTools(server: McpServer, getAgentClient: () => AgentClient): void;
2
+ import type { AgentClient } from '@relaycast/sdk';
3
+ export declare function registerChannelTools(server: McpServer, getAgentClient: (wsRouting?: {
4
+ workspace_id?: string;
5
+ workspace_alias?: string;
6
+ }, as?: string) => AgentClient): void;
4
7
  //# sourceMappingURL=channels.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/tools/channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,MAAM,WAAW,GAChC,IAAI,CAsKN"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/tools/channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAUlD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,WAAW,GAC5G,IAAI,CAyLN"}