@secondlayer/mcp 1.0.1 → 1.1.0
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/README.md +3 -3
- package/dist/bin-http.js +21 -6
- package/dist/bin-http.js.map +4 -4
- package/dist/bin.js +21 -6
- package/dist/bin.js.map +4 -4
- package/dist/index.js +21 -6
- package/dist/index.js.map +4 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ Add to your Claude Desktop or Cursor config:
|
|
|
19
19
|
"command": "npx",
|
|
20
20
|
"args": ["@secondlayer/mcp"],
|
|
21
21
|
"env": {
|
|
22
|
-
"
|
|
22
|
+
"SL_SERVICE_KEY": "sl_live_..."
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -29,7 +29,7 @@ Add to your Claude Desktop or Cursor config:
|
|
|
29
29
|
## Quick Start — HTTP (Remote)
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
export
|
|
32
|
+
export SL_SERVICE_KEY=sl_live_...
|
|
33
33
|
export SECONDLAYER_MCP_SECRET=your-secret
|
|
34
34
|
npx @secondlayer/mcp-http
|
|
35
35
|
# Listening on port 3100
|
|
@@ -39,7 +39,7 @@ npx @secondlayer/mcp-http
|
|
|
39
39
|
|
|
40
40
|
| Variable | Required | Default | Description |
|
|
41
41
|
| --- | --- | --- | --- |
|
|
42
|
-
| `
|
|
42
|
+
| `SL_SERVICE_KEY` | Yes | — | Tenant service key. `SECONDLAYER_API_KEY` is still accepted as a deprecated alias. |
|
|
43
43
|
| `SECONDLAYER_MCP_PORT` | No | `3100` | HTTP transport port |
|
|
44
44
|
| `SECONDLAYER_MCP_SECRET` | No | — | Bearer token for HTTP auth. Disabled if unset. |
|
|
45
45
|
|
package/dist/bin-http.js
CHANGED
|
@@ -91,11 +91,26 @@ function registerResources(server) {
|
|
|
91
91
|
// src/lib/client.ts
|
|
92
92
|
import { SecondLayer } from "@secondlayer/sdk";
|
|
93
93
|
var instance = null;
|
|
94
|
+
var legacyEnvWarned = false;
|
|
95
|
+
function readServiceKey() {
|
|
96
|
+
const canonical = process.env.SL_SERVICE_KEY;
|
|
97
|
+
if (canonical)
|
|
98
|
+
return canonical;
|
|
99
|
+
const legacy = process.env.SECONDLAYER_API_KEY;
|
|
100
|
+
if (legacy) {
|
|
101
|
+
if (!legacyEnvWarned) {
|
|
102
|
+
legacyEnvWarned = true;
|
|
103
|
+
console.error("[mcp] SECONDLAYER_API_KEY is deprecated — use SL_SERVICE_KEY going forward.");
|
|
104
|
+
}
|
|
105
|
+
return legacy;
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
94
109
|
function getClient() {
|
|
95
110
|
if (!instance) {
|
|
96
|
-
const apiKey =
|
|
111
|
+
const apiKey = readServiceKey();
|
|
97
112
|
if (!apiKey) {
|
|
98
|
-
throw new Error("
|
|
113
|
+
throw new Error("SL_SERVICE_KEY environment variable is required. " + "Get your key from `sl instance info` or the dashboard.");
|
|
99
114
|
}
|
|
100
115
|
const baseUrl = process.env.SECONDLAYER_API_URL;
|
|
101
116
|
instance = new SecondLayer({
|
|
@@ -107,9 +122,9 @@ function getClient() {
|
|
|
107
122
|
return instance;
|
|
108
123
|
}
|
|
109
124
|
async function apiRequest(method, path, body) {
|
|
110
|
-
const apiKey =
|
|
125
|
+
const apiKey = readServiceKey();
|
|
111
126
|
if (!apiKey)
|
|
112
|
-
throw new Error("
|
|
127
|
+
throw new Error("SL_SERVICE_KEY required");
|
|
113
128
|
const baseUrl = process.env.SECONDLAYER_API_URL || "https://api.secondlayer.tools";
|
|
114
129
|
const res = await fetch(`${baseUrl}${path}`, {
|
|
115
130
|
method,
|
|
@@ -633,8 +648,8 @@ function createServer() {
|
|
|
633
648
|
});
|
|
634
649
|
registerScaffoldTools(server);
|
|
635
650
|
registerSubgraphTools(server);
|
|
636
|
-
registerAccountTools(server);
|
|
637
651
|
registerWorkflowTools(server);
|
|
652
|
+
registerAccountTools(server);
|
|
638
653
|
registerResources(server);
|
|
639
654
|
return server;
|
|
640
655
|
}
|
|
@@ -725,5 +740,5 @@ httpServer.listen(port, () => {
|
|
|
725
740
|
console.error("Warning: SECONDLAYER_MCP_SECRET not set, authentication disabled");
|
|
726
741
|
});
|
|
727
742
|
|
|
728
|
-
//# debugId=
|
|
743
|
+
//# debugId=AFBB40D279D464E664756E2164756E21
|
|
729
744
|
//# sourceMappingURL=bin-http.js.map
|
package/dist/bin-http.js.map
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"sources": ["../src/bin-http.ts", "../src/server.ts", "../src/resources.ts", "../src/lib/client.ts", "../src/lib/format.ts", "../src/lib/tool.ts", "../src/tools/account.ts", "../src/tools/scaffold.ts", "../src/tools/subgraphs.ts", "../src/tools/workflows.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"#!/usr/bin/env node\nimport {\n\ttype IncomingMessage,\n\ttype ServerResponse,\n\tcreateServer as createHttpServer,\n} from \"node:http\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\nimport { createServer } from \"./server.ts\";\n\nconst port = Number.parseInt(process.env.SECONDLAYER_MCP_PORT || \"3100\");\nconst secret = process.env.SECONDLAYER_MCP_SECRET;\nconst sessions = new Map<string, StreamableHTTPServerTransport>();\n\nfunction authenticate(req: IncomingMessage): boolean {\n\tif (!secret) return true;\n\treturn req.headers.authorization === `Bearer ${secret}`;\n}\n\nconst httpServer = createHttpServer(\n\tasync (req: IncomingMessage, res: ServerResponse) => {\n\t\t// Only handle /mcp endpoint\n\t\tconst url = new URL(req.url ?? \"/\", `http://localhost:${port}`);\n\t\tif (url.pathname !== \"/mcp\") {\n\t\t\tres.writeHead(404).end(JSON.stringify({ error: \"Not found\" }));\n\t\t\treturn;\n\t\t}\n\n\t\t// Auth check\n\t\tif (!authenticate(req)) {\n\t\t\tres.writeHead(401).end(JSON.stringify({ error: \"Unauthorized\" }));\n\t\t\treturn;\n\t\t}\n\n\t\tconst sessionId = req.headers[\"mcp-session-id\"] as string | undefined;\n\n\t\tif (req.method === \"POST\") {\n\t\t\t// Read body with 1MB limit\n\t\t\tconst MAX_BODY = 1_048_576;\n\t\t\tconst chunks: Buffer[] = [];\n\t\t\tlet totalSize = 0;\n\t\t\tfor await (const chunk of req) {\n\t\t\t\ttotalSize += (chunk as Buffer).length;\n\t\t\t\tif (totalSize > MAX_BODY) {\n\t\t\t\t\tres\n\t\t\t\t\t\t.writeHead(413)\n\t\t\t\t\t\t.end(JSON.stringify({ error: \"Request body too large\" }));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tchunks.push(chunk as Buffer);\n\t\t\t}\n\t\t\tlet body: any;\n\t\t\ttry {\n\t\t\t\tbody = JSON.parse(Buffer.concat(chunks).toString());\n\t\t\t} catch {\n\t\t\t\tres.writeHead(400).end(JSON.stringify({ error: \"Invalid JSON\" }));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check if this is an initialize request (new session)\n\t\t\tconst isInitialize = Array.isArray(body)\n\t\t\t\t? body.some((m: { method?: string }) => m.method === \"initialize\")\n\t\t\t\t: body.method === \"initialize\";\n\n\t\t\tif (isInitialize) {\n\t\t\t\t// Create new session\n\t\t\t\tconst transport = new StreamableHTTPServerTransport({\n\t\t\t\t\tsessionIdGenerator: () => crypto.randomUUID(),\n\t\t\t\t});\n\t\t\t\tconst server = createServer();\n\t\t\t\tawait server.connect(transport);\n\n\t\t\t\t// Store session after handling (sessionId is set after first request)\n\t\t\t\tawait transport.handleRequest(req, res, body);\n\n\t\t\t\tif (transport.sessionId) {\n\t\t\t\t\tsessions.set(transport.sessionId, transport);\n\t\t\t\t\ttransport.onclose = () => {\n\t\t\t\t\t\tif (transport.sessionId) sessions.delete(transport.sessionId);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Existing session\n\t\t\tif (!sessionId || !sessions.has(sessionId)) {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait sessions.get(sessionId)!.handleRequest(req, res, body);\n\t\t} else if (req.method === \"GET\") {\n\t\t\t// SSE stream for existing session\n\t\t\tif (!sessionId || !sessions.has(sessionId)) {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait sessions.get(sessionId)!.handleRequest(req, res);\n\t\t} else if (req.method === \"DELETE\") {\n\t\t\t// Session teardown\n\t\t\tif (sessionId && sessions.has(sessionId)) {\n\t\t\t\tconst transport = sessions.get(sessionId)!;\n\t\t\t\tawait transport.handleRequest(req, res);\n\t\t\t\tawait transport.close();\n\t\t\t\tsessions.delete(sessionId);\n\t\t\t} else {\n\t\t\t\tres\n\t\t\t\t\t.writeHead(400)\n\t\t\t\t\t.end(JSON.stringify({ error: \"Invalid or missing session ID\" }));\n\t\t\t}\n\t\t} else {\n\t\t\tres.writeHead(405).end(JSON.stringify({ error: \"Method not allowed\" }));\n\t\t}\n\t},\n);\n\nhttpServer.listen(port, () => {\n\tconsole.error(`SecondLayer MCP HTTP server listening on port ${port}`);\n\tif (!secret)\n\t\tconsole.error(\n\t\t\t\"Warning: SECONDLAYER_MCP_SECRET not set, authentication disabled\",\n\t\t);\n});\n",
|
|
6
|
-
"import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { registerResources } from \"./resources.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWorkflowTools } from \"./tools/workflows.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport function createServer(): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\n\tregisterScaffoldTools(server);\n\tregisterSubgraphTools(server);\n\
|
|
6
|
+
"import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { registerResources } from \"./resources.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWorkflowTools } from \"./tools/workflows.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport function createServer(): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\n\tregisterScaffoldTools(server);\n\tregisterSubgraphTools(server);\n\tregisterWorkflowTools(server);\n\tregisterAccountTools(server);\n\tregisterResources(server);\n\n\treturn server;\n}\n",
|
|
7
7
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\n/** Filter types for blockchain events — SubgraphFilter vocabulary. */\nconst FILTERS_REFERENCE = [\n\t{\n\t\ttype: \"stx_transfer\",\n\t\tfields: [\"sender\", \"recipient\", \"minAmount\", \"maxAmount\"],\n\t},\n\t{ type: \"stx_mint\", fields: [\"recipient\", \"minAmount\"] },\n\t{ type: \"stx_burn\", fields: [\"sender\", \"minAmount\"] },\n\t{ type: \"stx_lock\", fields: [\"lockedAddress\", \"minAmount\"] },\n\t{\n\t\ttype: \"ft_transfer\",\n\t\tfields: [\n\t\t\t\"sender\",\n\t\t\t\"recipient\",\n\t\t\t\"assetIdentifier\",\n\t\t\t\"minAmount\",\n\t\t\t\"maxAmount\",\n\t\t],\n\t},\n\t{ type: \"ft_mint\", fields: [\"recipient\", \"assetIdentifier\", \"minAmount\"] },\n\t{ type: \"ft_burn\", fields: [\"sender\", \"assetIdentifier\", \"minAmount\"] },\n\t{\n\t\ttype: \"nft_transfer\",\n\t\tfields: [\"sender\", \"recipient\", \"assetIdentifier\", \"tokenId\"],\n\t},\n\t{ type: \"nft_mint\", fields: [\"recipient\", \"assetIdentifier\", \"tokenId\"] },\n\t{ type: \"nft_burn\", fields: [\"sender\", \"assetIdentifier\", \"tokenId\"] },\n\t{ type: \"contract_call\", fields: [\"contract\", \"function\"] },\n\t{ type: \"contract_deploy\", fields: [\"contract\"] },\n\t{ type: \"print_event\", fields: [\"contract\", \"event\", \"contains\"] },\n];\n\nconst COLUMN_TYPES = [\n\t{\n\t\ttype: \"uint\",\n\t\tsqlType: \"bigint\",\n\t\tdescription: \"Unsigned integer (Clarity uint)\",\n\t},\n\t{\n\t\ttype: \"int\",\n\t\tsqlType: \"bigint\",\n\t\tdescription: \"Signed integer (Clarity int)\",\n\t},\n\t{ type: \"text\", sqlType: \"text\", description: \"UTF-8 string\" },\n\t{\n\t\ttype: \"principal\",\n\t\tsqlType: \"text\",\n\t\tdescription: \"Stacks address (standard or contract)\",\n\t},\n\t{ type: \"bool\", sqlType: \"boolean\", description: \"Boolean value\" },\n\t{ type: \"json\", sqlType: \"jsonb\", description: \"Arbitrary JSON data\" },\n\t{\n\t\toptions: [\"nullable\", \"indexed\", \"search\"],\n\t\tdescription:\n\t\t\t\"Column options: nullable allows NULL, indexed creates a B-tree index, search enables full-text search\",\n\t},\n];\n\nexport function registerResources(server: McpServer) {\n\tserver.resource(\n\t\t\"filters\",\n\t\t\"secondlayer://filters\",\n\t\t{ description: \"Event filter types and their available fields\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://filters\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(FILTERS_REFERENCE, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"column-types\",\n\t\t\"secondlayer://column-types\",\n\t\t{ description: \"Subgraph column types, SQL mappings, and options\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://column-types\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(COLUMN_TYPES, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n}\n",
|
|
8
|
-
"import { SecondLayer } from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Lazy SDK singleton from SECONDLAYER_API_KEY env var. */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey =
|
|
8
|
+
"import { SecondLayer } from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\nlet legacyEnvWarned = false;\n\n/**\n * Read the tenant service key from env. `SL_SERVICE_KEY` is canonical;\n * `SECONDLAYER_API_KEY` is accepted as a deprecated alias and logs once\n * per process so users notice without breaking their setup.\n */\nfunction readServiceKey(): string | undefined {\n\tconst canonical = process.env.SL_SERVICE_KEY;\n\tif (canonical) return canonical;\n\tconst legacy = process.env.SECONDLAYER_API_KEY;\n\tif (legacy) {\n\t\tif (!legacyEnvWarned) {\n\t\t\tlegacyEnvWarned = true;\n\t\t\tconsole.error(\n\t\t\t\t\"[mcp] SECONDLAYER_API_KEY is deprecated — use SL_SERVICE_KEY going forward.\",\n\t\t\t);\n\t\t}\n\t\treturn legacy;\n\t}\n\treturn undefined;\n}\n\n/** Lazy SDK singleton from SL_SERVICE_KEY (or SECONDLAYER_API_KEY) env var. */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readServiceKey();\n\t\tif (!apiKey) {\n\t\t\tthrow new Error(\n\t\t\t\t\"SL_SERVICE_KEY environment variable is required. \" +\n\t\t\t\t\t\"Get your key from `sl instance info` or the dashboard.\",\n\t\t\t);\n\t\t}\n\t\tconst baseUrl = process.env.SECONDLAYER_API_URL;\n\t\tinstance = new SecondLayer({\n\t\t\tapiKey,\n\t\t\torigin: \"mcp\",\n\t\t\t...(baseUrl ? { baseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. */\nexport async function apiRequest<T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n): Promise<T> {\n\tconst apiKey = readServiceKey();\n\tif (!apiKey) throw new Error(\"SL_SERVICE_KEY required\");\n\tconst baseUrl =\n\t\tprocess.env.SECONDLAYER_API_URL || \"https://api.secondlayer.tools\";\n\tconst res = await fetch(`${baseUrl}${path}`, {\n\t\tmethod,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\tAuthorization: `Bearer ${apiKey}`,\n\t\t},\n\t\tbody: body ? JSON.stringify(body) : undefined,\n\t});\n\tif (!res.ok) {\n\t\tconst text = await res.text().catch(() => \"\");\n\t\tthrow Object.assign(new Error(text || `HTTP ${res.status}`), {\n\t\t\tstatus: res.status,\n\t\t});\n\t}\n\tif (res.status === 204) return undefined as T;\n\treturn res.json() as Promise<T>;\n}\n",
|
|
9
9
|
"/** Summarize a subgraph for list responses. */\nexport function formatSubgraphSummary(s: {\n\tname: string;\n\tstatus: string;\n\ttables: string[] | Record<string, unknown>;\n\tlastProcessedBlock: number;\n}) {\n\treturn {\n\t\tname: s.name,\n\t\tstatus: s.status,\n\t\ttables: Array.isArray(s.tables) ? s.tables : Object.keys(s.tables),\n\t\tlastProcessedBlock: s.lastProcessedBlock,\n\t};\n}\n\n/** Cap array length and return truncation metadata. */\nexport function withCap<T>(\n\titems: T[],\n\tcap: number,\n): { items: T[]; truncated: boolean; total: number } {\n\treturn {\n\t\titems: items.slice(0, cap),\n\t\ttruncated: items.length > cap,\n\t\ttotal: items.length,\n\t};\n}\n\n/** Build MCP text response with JSON-serialized payload. */\nexport function jsonResponse(\n\tdata: unknown,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: JSON.stringify(data, null, 2) }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n\n/** Build MCP text response with plain text payload. */\nexport function textResponse(\n\ttext: string,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n",
|
|
10
10
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\ninterface ToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tisError?: boolean;\n}\n\n/**\n * Type-safe wrapper around McpServer.tool() that avoids TS2589.\n *\n * The MCP SDK's Zod-generic `tool()` signature recurses past TypeScript's\n * instantiation depth limit when schemas contain discriminated unions or\n * nested optionals. This helper isolates the boundary cast to one place\n * so tool files stay fully typed via the explicit `T` generic.\n *\n * Schema is typed as Record<string, unknown> to prevent TypeScript from\n * resolving the deeply recursive ZodRawShapeCompat constraint. Zod still\n * validates at runtime.\n */\nexport function defineTool<T>(\n\tserver: McpServer,\n\tname: string,\n\tdescription: string,\n\tschema: Record<string, unknown>,\n\thandler: (args: T) => Promise<ToolResult> | ToolResult,\n): void {\n\tconst wrappedHandler = async (args: T): Promise<ToolResult> => {\n\t\ttry {\n\t\t\treturn await handler(args);\n\t\t} catch (err: unknown) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\tconst status =\n\t\t\t\terr instanceof Error && \"status\" in err ? (err as any).status : 0;\n\t\t\tconst type =\n\t\t\t\tstatus === 401\n\t\t\t\t\t? \"unauthorized\"\n\t\t\t\t\t: status === 404\n\t\t\t\t\t\t? \"not_found\"\n\t\t\t\t\t\t: status === 429\n\t\t\t\t\t\t\t? \"rate_limited\"\n\t\t\t\t\t\t\t: status >= 500\n\t\t\t\t\t\t\t\t? \"server_error\"\n\t\t\t\t\t\t\t\t: \"error\";\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify({ error: { type, status, message } }),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t};\n\t\t}\n\t};\n\t(server.tool as Function)(name, description, schema, wrappedHandler);\n}\n",
|
|
11
11
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { apiRequest } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerAccountTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"account_whoami\",\n\t\t\"Show the authenticated account's email and plan.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await apiRequest<{ email: string; plan: string }>(\n\t\t\t\t\"GET\",\n\t\t\t\t\"/api/accounts/me\",\n\t\t\t);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n}\n",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { bundleSubgraphCode } from \"@secondlayer/bundler\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { formatSubgraphSummary, withCap } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerSubgraphTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"subgraphs_list\",\n\t\t\"List all deployed subgraphs. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await getClient().subgraphs.list();\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(data.map(formatSubgraphSummary), null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_get\",\n\t\t\"Get full details of a subgraph including schema, health, and table columns.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().subgraphs.get(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(detail, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\ttable: string;\n\t\tfilters?: Record<string, string>;\n\t\tsort?: string;\n\t\torder?: string;\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tfields?: string;\n\t\tcount?: boolean;\n\t}>(\n\t\tserver,\n\t\t\"subgraphs_query\",\n\t\t'Query rows from a subgraph table (max 200 rows). Filters support operators: \"amount.gte\": \"1000\", \"sender.neq\": \"SP...\", \"name.like\": \"%token%\". Available operators: eq, neq, gt, gte, lt, lte, like.',\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\n\t\t\ttable: z.string().describe(\"Table name\"),\n\t\t\tfilters: z\n\t\t\t\t.record(z.string(), z.string())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Column filters — plain values or with operators (e.g. {\"amount.gte\": \"1000\", \"sender\": \"SP...\"})',\n\t\t\t\t),\n\t\t\tsort: z.string().optional().describe(\"Column to sort by\"),\n\t\t\torder: z.enum([\"asc\", \"desc\"]).optional().describe(\"Sort order\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.max(200)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max rows (default 50, max 200)\"),\n\t\t\toffset: z.number().optional().describe(\"Offset for pagination\"),\n\t\t\tfields: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Comma-separated column list to return (e.g. \"sender,amount\")',\n\t\t\t\t),\n\t\t\tcount: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"If true, return row count instead of rows\"),\n\t\t},\n\t\tasync ({\n\t\t\tname,\n\t\t\ttable,\n\t\t\tfilters,\n\t\t\tsort,\n\t\t\torder,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tfields,\n\t\t\tcount,\n\t\t}) => {\n\t\t\tif (count) {\n\t\t\t\tconst result = await getClient().subgraphs.queryTableCount(\n\t\t\t\t\tname,\n\t\t\t\t\ttable,\n\t\t\t\t\t{ filters, sort, order },\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst rows = await getClient().subgraphs.queryTable(name, table, {\n\t\t\t\tfilters,\n\t\t\t\tsort,\n\t\t\t\torder,\n\t\t\t\tlimit: limit ?? 50,\n\t\t\t\toffset,\n\t\t\t\tfields,\n\t\t\t});\n\t\t\tconst cap = limit ?? 50;\n\t\t\tconst result = withCap(\n\t\t\t\trows as Record<string, unknown>[],\n\t\t\t\tcap > 200 ? 200 : cap,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; fromBlock?: number; toBlock?: number }>(\n\t\tserver,\n\t\t\"subgraphs_reindex\",\n\t\t\"Reindex a subgraph from a specific block range.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Start block (defaults to beginning)\"),\n\t\t\ttoBlock: z.number().optional().describe(\"End block (defaults to latest)\"),\n\t\t},\n\t\tasync ({ name, fromBlock, toBlock }) => {\n\t\t\tconst result = await getClient().subgraphs.reindex(name, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_delete\",\n\t\t\"Delete a subgraph permanently.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await getClient().subgraphs.delete(name);\n\t\t\treturn { content: [{ type: \"text\", text: result.message }] };\n\t\t},\n\t);\n\n\tdefineTool<{ code: string; reindex?: boolean }>(\n\t\tserver,\n\t\t\"subgraphs_deploy\",\n\t\t\"Deploy a subgraph from TypeScript code. Pass the full defineSubgraph() source — it will be bundled, validated, and deployed.\",\n\t\t{\n\t\t\tcode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"TypeScript source code containing a defineSubgraph() call\"),\n\t\t\treindex: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Force reindex on breaking schema change (drops and rebuilds all data)\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ code, reindex }) => {\n\t\t\tconst bundled = await bundleSubgraphCode(code);\n\t\t\tconst result = await getClient().subgraphs.deploy({\n\t\t\t\tname: bundled.name,\n\t\t\t\tversion: bundled.version,\n\t\t\t\tdescription: bundled.description,\n\t\t\t\tsources: bundled.sources,\n\t\t\t\tschema: bundled.schema,\n\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\tsourceCode: code,\n\t\t\t\treindex,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_read_source\",\n\t\t\"Fetch the deployed TypeScript source of a subgraph (plus its stored version). Returns a readOnly payload for subgraphs deployed before source capture — in that case the caller should redeploy via CLI before editing.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst source = await getClient().subgraphs.getSource(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(source, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n}\n",
|
|
14
14
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { bundleWorkflowCode } from \"@secondlayer/bundler\";\nimport {\n\ttype ScaffoldDeliveryTarget,\n\ttype ScaffoldStepKind,\n\tgenerateWorkflowCode,\n} from \"@secondlayer/scaffold\";\nimport { VersionConflictError } from \"@secondlayer/sdk\";\nimport { createPatch } from \"diff\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerWorkflowTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_list\",\n\t\t\"List all workflows. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { workflows } = await getClient().workflows.list();\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(workflows, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_get\",\n\t\t\"Get full details of a workflow by name.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().workflows.get(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(detail, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_get_definition\",\n\t\t\"Return the deployed TypeScript source of a workflow plus its stored version. Returns `sourceCode: null` + `readOnly: true` for workflows deployed before source capture.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst source = await getClient().workflows.getSource(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(source, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\tproposedCode: string;\n\t\texpectedVersion?: string;\n\t}>(\n\t\tserver,\n\t\t\"workflows_propose_edit\",\n\t\t\"Validate a proposed edit WITHOUT deploying. Fetches the current stored source, bundles the proposed source, computes a unified diff, and returns everything for review. Use this when you want to show the user a diff before committing — pair it with workflows_deploy(expectedVersion=...) to persist.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tproposedCode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"New TypeScript source — must compile and validate.\"),\n\t\t\texpectedVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Version the proposer is editing from (for audit).\"),\n\t\t},\n\t\tasync ({ name, proposedCode, expectedVersion }) => {\n\t\t\tconst current = await getClient().workflows.getSource(name);\n\t\t\tif (current.sourceCode === null) {\n\t\t\t\treturn {\n\t\t\t\t\tisError: true,\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\terror:\n\t\t\t\t\t\t\t\t\t\t\"Workflow has no stored source. Redeploy via CLI first.\",\n\t\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\t\tversion: current.version,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet bundleValid = false;\n\t\t\tlet validation: { name: string; triggerType: string } | { error: string };\n\t\t\tlet bundleSize = 0;\n\t\t\ttry {\n\t\t\t\tconst bundled = await bundleWorkflowCode(proposedCode);\n\t\t\t\tbundleValid = true;\n\t\t\t\tbundleSize = Buffer.byteLength(bundled.handlerCode, \"utf8\");\n\t\t\t\tvalidation = {\n\t\t\t\t\tname: bundled.name,\n\t\t\t\t\ttriggerType: bundled.trigger.type,\n\t\t\t\t};\n\t\t\t} catch (err) {\n\t\t\t\tvalidation = {\n\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst diffText = createPatch(\n\t\t\t\t`${name}.ts`,\n\t\t\t\tcurrent.sourceCode,\n\t\t\t\tproposedCode,\n\t\t\t\t`v${current.version}`,\n\t\t\t\t\"proposed\",\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcurrentVersion: current.version,\n\t\t\t\t\t\t\t\texpectedVersion,\n\t\t\t\t\t\t\t\tcurrentSource: current.sourceCode,\n\t\t\t\t\t\t\t\tproposedSource: proposedCode,\n\t\t\t\t\t\t\t\tdiffText,\n\t\t\t\t\t\t\t\tbundleValid,\n\t\t\t\t\t\t\t\tvalidation,\n\t\t\t\t\t\t\t\tbundleSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\trunId: string;\n\t\tlimit?: number;\n\t\ttimeoutMs?: number;\n\t}>(\n\t\tserver,\n\t\t\"workflows_tail_run\",\n\t\t\"Tail a workflow run via SSE and return a compacted log. Resolves as soon as the run completes, `limit` events are collected, or `timeoutMs` elapses (default 60s). MCP is not streaming-first — use this for short-lived follow-ups, not long tails.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\trunId: z.string().describe(\"Run id\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.positive()\n\t\t\t\t.max(200)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max step events to collect (default 50)\"),\n\t\t\ttimeoutMs: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.positive()\n\t\t\t\t.max(5 * 60 * 1000)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Hard timeout in ms (default 60000, max 300000)\"),\n\t\t},\n\t\tasync ({ name, runId, limit, timeoutMs }) => {\n\t\t\tconst cap = limit ?? 50;\n\t\t\tconst deadline = timeoutMs ?? 60_000;\n\n\t\t\tconst events: Array<Record<string, unknown>> = [];\n\t\t\tlet finalStatus: string | null = null;\n\t\t\tlet stoppedBy: \"done\" | \"limit\" | \"timeout\" = \"timeout\";\n\n\t\t\tconst controller = new AbortController();\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tstoppedBy = \"timeout\";\n\t\t\t\tcontroller.abort();\n\t\t\t}, deadline);\n\n\t\t\ttry {\n\t\t\t\tawait getClient().workflows.streamRun(\n\t\t\t\t\tname,\n\t\t\t\t\trunId,\n\t\t\t\t\t(event) => {\n\t\t\t\t\t\tif (event.type === \"step\") {\n\t\t\t\t\t\t\tevents.push(event.step as unknown as Record<string, unknown>);\n\t\t\t\t\t\t\tif (events.length >= cap) {\n\t\t\t\t\t\t\t\tstoppedBy = \"limit\";\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (event.type === \"done\") {\n\t\t\t\t\t\t\tfinalStatus = event.done.status;\n\t\t\t\t\t\t\tstoppedBy = \"done\";\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tcontroller.signal,\n\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tif (!(err instanceof Error) || err.name !== \"AbortError\") {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tclearTimeout(timer);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trunId,\n\t\t\t\t\t\t\t\tfinalStatus,\n\t\t\t\t\t\t\t\tstoppedBy,\n\t\t\t\t\t\t\t\teventCount: events.length,\n\t\t\t\t\t\t\t\tevents,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_pause_all\",\n\t\t\"Pause ALL active workflows for the authenticated account. Irreversible only by calling pause/resume per workflow. Returns the list of affected workflows.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await getClient().workflows.pauseAll();\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ runId: string }>(\n\t\tserver,\n\t\t\"workflows_cancel_run\",\n\t\t\"Cancel an in-flight workflow run. Marks the run as cancelled and removes any pending queue entry. No-ops if the run is already terminal.\",\n\t\t{ runId: z.string().describe(\"Run id to cancel\") },\n\t\tasync ({ runId }) => {\n\t\t\tconst result = await getClient().workflows.cancelRun(runId);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; toVersion?: string }>(\n\t\tserver,\n\t\t\"workflows_rollback\",\n\t\t\"Roll a workflow back to a prior version. The restored handler is re-published as a NEW version (audit trail), so no history is lost. Pass toVersion to pick a specific bundle; omit to roll back to the immediate previous version on disk. Last 3 versions are retained.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\ttoVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Target version to restore. Must be one of the retained bundles on disk.\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ name, toVersion }) => {\n\t\t\tconst result = await getClient().workflows.rollback(name, toVersion);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_delete\",\n\t\t\"Delete a workflow permanently.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.delete(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Deleted workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; input?: string }>(\n\t\tserver,\n\t\t\"workflows_trigger\",\n\t\t\"Trigger a workflow run. Optionally pass input as a JSON string.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tinput: z.string().optional().describe(\"Input as JSON string\"),\n\t\t},\n\t\tasync ({ name, input }) => {\n\t\t\tconst parsed = input ? JSON.parse(input) : undefined;\n\t\t\tconst result = await getClient().workflows.trigger(name, parsed);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_pause\",\n\t\t\"Pause a running workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.pause(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Paused workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_resume\",\n\t\t\"Resume a paused workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.resume(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Resumed workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\ttrigger:\n\t\t\t| { type: \"event\"; filterType?: string }\n\t\t\t| { type: \"schedule\"; cron: string; timezone?: string }\n\t\t\t| { type: \"manual\" };\n\t\tsteps: ScaffoldStepKind[];\n\t\tdeliveryTarget?: ScaffoldDeliveryTarget;\n\t}>(\n\t\tserver,\n\t\t\"workflows_scaffold\",\n\t\t\"Generate a compilable defineWorkflow() skeleton from a typed intent. Returns the TypeScript source; pass it to workflows_deploy to persist. Placeholders inside the source must be filled in before running a real workflow.\",\n\t\t{\n\t\t\tname: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^[a-z][a-z0-9-]*$/)\n\t\t\t\t.describe(\"Workflow name (lowercase, hyphens)\"),\n\t\t\ttrigger: z\n\t\t\t\t.discriminatedUnion(\"type\", [\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.literal(\"event\"),\n\t\t\t\t\t\tfilterType: z.string().optional(),\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.literal(\"schedule\"),\n\t\t\t\t\t\tcron: z.string().min(1),\n\t\t\t\t\t\ttimezone: z.string().optional(),\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({ type: z.literal(\"manual\") }),\n\t\t\t\t])\n\t\t\t\t.describe(\"Trigger shape\"),\n\t\t\tsteps: z\n\t\t\t\t.array(z.enum([\"run\", \"query\", \"ai\", \"deliver\"]))\n\t\t\t\t.describe(\"Ordered list of step kinds to include in the handler\"),\n\t\t\tdeliveryTarget: z\n\t\t\t\t.enum([\"webhook\", \"slack\", \"email\", \"discord\", \"telegram\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Delivery target used when steps includes `deliver`\"),\n\t\t},\n\t\tasync ({ name, trigger, steps, deliveryTarget }) => {\n\t\t\tconst code = generateWorkflowCode({\n\t\t\t\tname,\n\t\t\t\ttrigger,\n\t\t\t\tsteps,\n\t\t\t\tdeliveryTarget,\n\t\t\t});\n\t\t\treturn { content: [{ type: \"text\", text: code }] };\n\t\t},\n\t);\n\n\tdefineTool<{ code: string; expectedVersion?: string; dryRun?: boolean }>(\n\t\tserver,\n\t\t\"workflows_deploy\",\n\t\t\"Deploy a workflow from TypeScript source. Pass the full defineWorkflow() source — it will be bundled, validated, and deployed. Use expectedVersion for optimistic concurrency, or dryRun to validate without persisting.\",\n\t\t{\n\t\t\tcode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"TypeScript source code containing a defineWorkflow() call\"),\n\t\t\texpectedVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Stored version the client expects (major.minor.patch). Server returns 409 on mismatch.\",\n\t\t\t\t),\n\t\t\tdryRun: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"If true, validate and bundle only — do not persist.\"),\n\t\t},\n\t\tasync ({ code, expectedVersion, dryRun }) => {\n\t\t\tlet bundled: Awaited<ReturnType<typeof bundleWorkflowCode>>;\n\t\t\ttry {\n\t\t\t\tbundled = await bundleWorkflowCode(code);\n\t\t\t} catch (err) {\n\t\t\t\treturn {\n\t\t\t\t\tisError: true,\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst base = {\n\t\t\t\tname: bundled.name,\n\t\t\t\ttrigger: bundled.trigger as unknown as Record<string, unknown>,\n\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\tsourceCode: bundled.sourceCode,\n\t\t\t\tretries: bundled.retries as Record<string, unknown> | undefined,\n\t\t\t\ttimeout: bundled.timeout,\n\t\t\t\texpectedVersion,\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst result = dryRun\n\t\t\t\t\t? await getClient().workflows.deploy({ ...base, dryRun: true })\n\t\t\t\t\t: await getClient().workflows.deploy(base);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t\t};\n\t\t\t} catch (err) {\n\t\t\t\tif (err instanceof VersionConflictError) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tisError: true,\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\terror: err.message,\n\t\t\t\t\t\t\t\t\t\tcode: \"VERSION_CONFLICT\",\n\t\t\t\t\t\t\t\t\t\tcurrentVersion: err.currentVersion,\n\t\t\t\t\t\t\t\t\t\texpectedVersion: err.expectedVersion,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; status?: string; limit?: number }>(\n\t\tserver,\n\t\t\"workflows_runs\",\n\t\t\"List runs for a workflow. Optionally filter by status and limit results.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tstatus: z\n\t\t\t\t.enum([\"running\", \"completed\", \"failed\", \"cancelled\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by run status\"),\n\t\t\tlimit: z.number().optional().describe(\"Max runs to return (default 20)\"),\n\t\t},\n\t\tasync ({ name, status, limit }) => {\n\t\t\tconst { runs } = await getClient().workflows.listRuns(name, {\n\t\t\t\tstatus: status as\n\t\t\t\t\t| \"running\"\n\t\t\t\t\t| \"completed\"\n\t\t\t\t\t| \"failed\"\n\t\t\t\t\t| \"cancelled\"\n\t\t\t\t\t| undefined,\n\t\t\t\tlimit,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(runs, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n"
|
|
15
15
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
16
|
+
"mappings": "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",
|
|
17
|
+
"debugId": "AFBB40D279D464E664756E2164756E21",
|
|
18
18
|
"names": []
|
|
19
19
|
}
|
package/dist/bin.js
CHANGED
|
@@ -88,11 +88,26 @@ function registerResources(server) {
|
|
|
88
88
|
// src/lib/client.ts
|
|
89
89
|
import { SecondLayer } from "@secondlayer/sdk";
|
|
90
90
|
var instance = null;
|
|
91
|
+
var legacyEnvWarned = false;
|
|
92
|
+
function readServiceKey() {
|
|
93
|
+
const canonical = process.env.SL_SERVICE_KEY;
|
|
94
|
+
if (canonical)
|
|
95
|
+
return canonical;
|
|
96
|
+
const legacy = process.env.SECONDLAYER_API_KEY;
|
|
97
|
+
if (legacy) {
|
|
98
|
+
if (!legacyEnvWarned) {
|
|
99
|
+
legacyEnvWarned = true;
|
|
100
|
+
console.error("[mcp] SECONDLAYER_API_KEY is deprecated — use SL_SERVICE_KEY going forward.");
|
|
101
|
+
}
|
|
102
|
+
return legacy;
|
|
103
|
+
}
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
91
106
|
function getClient() {
|
|
92
107
|
if (!instance) {
|
|
93
|
-
const apiKey =
|
|
108
|
+
const apiKey = readServiceKey();
|
|
94
109
|
if (!apiKey) {
|
|
95
|
-
throw new Error("
|
|
110
|
+
throw new Error("SL_SERVICE_KEY environment variable is required. " + "Get your key from `sl instance info` or the dashboard.");
|
|
96
111
|
}
|
|
97
112
|
const baseUrl = process.env.SECONDLAYER_API_URL;
|
|
98
113
|
instance = new SecondLayer({
|
|
@@ -104,9 +119,9 @@ function getClient() {
|
|
|
104
119
|
return instance;
|
|
105
120
|
}
|
|
106
121
|
async function apiRequest(method, path, body) {
|
|
107
|
-
const apiKey =
|
|
122
|
+
const apiKey = readServiceKey();
|
|
108
123
|
if (!apiKey)
|
|
109
|
-
throw new Error("
|
|
124
|
+
throw new Error("SL_SERVICE_KEY required");
|
|
110
125
|
const baseUrl = process.env.SECONDLAYER_API_URL || "https://api.secondlayer.tools";
|
|
111
126
|
const res = await fetch(`${baseUrl}${path}`, {
|
|
112
127
|
method,
|
|
@@ -630,8 +645,8 @@ function createServer() {
|
|
|
630
645
|
});
|
|
631
646
|
registerScaffoldTools(server);
|
|
632
647
|
registerSubgraphTools(server);
|
|
633
|
-
registerAccountTools(server);
|
|
634
648
|
registerWorkflowTools(server);
|
|
649
|
+
registerAccountTools(server);
|
|
635
650
|
registerResources(server);
|
|
636
651
|
return server;
|
|
637
652
|
}
|
|
@@ -641,5 +656,5 @@ var server = createServer();
|
|
|
641
656
|
var transport = new StdioServerTransport;
|
|
642
657
|
await server.connect(transport);
|
|
643
658
|
|
|
644
|
-
//# debugId=
|
|
659
|
+
//# debugId=A34BDC5D0D801C0D64756E2164756E21
|
|
645
660
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"sources": ["../src/bin.ts", "../src/server.ts", "../src/resources.ts", "../src/lib/client.ts", "../src/lib/format.ts", "../src/lib/tool.ts", "../src/tools/account.ts", "../src/tools/scaffold.ts", "../src/tools/subgraphs.ts", "../src/tools/workflows.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"#!/usr/bin/env node\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { createServer } from \"./server.ts\";\n\nconst server = createServer();\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n",
|
|
6
|
-
"import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { registerResources } from \"./resources.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWorkflowTools } from \"./tools/workflows.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport function createServer(): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\n\tregisterScaffoldTools(server);\n\tregisterSubgraphTools(server);\n\
|
|
6
|
+
"import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { registerResources } from \"./resources.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWorkflowTools } from \"./tools/workflows.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport function createServer(): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\n\tregisterScaffoldTools(server);\n\tregisterSubgraphTools(server);\n\tregisterWorkflowTools(server);\n\tregisterAccountTools(server);\n\tregisterResources(server);\n\n\treturn server;\n}\n",
|
|
7
7
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\n/** Filter types for blockchain events — SubgraphFilter vocabulary. */\nconst FILTERS_REFERENCE = [\n\t{\n\t\ttype: \"stx_transfer\",\n\t\tfields: [\"sender\", \"recipient\", \"minAmount\", \"maxAmount\"],\n\t},\n\t{ type: \"stx_mint\", fields: [\"recipient\", \"minAmount\"] },\n\t{ type: \"stx_burn\", fields: [\"sender\", \"minAmount\"] },\n\t{ type: \"stx_lock\", fields: [\"lockedAddress\", \"minAmount\"] },\n\t{\n\t\ttype: \"ft_transfer\",\n\t\tfields: [\n\t\t\t\"sender\",\n\t\t\t\"recipient\",\n\t\t\t\"assetIdentifier\",\n\t\t\t\"minAmount\",\n\t\t\t\"maxAmount\",\n\t\t],\n\t},\n\t{ type: \"ft_mint\", fields: [\"recipient\", \"assetIdentifier\", \"minAmount\"] },\n\t{ type: \"ft_burn\", fields: [\"sender\", \"assetIdentifier\", \"minAmount\"] },\n\t{\n\t\ttype: \"nft_transfer\",\n\t\tfields: [\"sender\", \"recipient\", \"assetIdentifier\", \"tokenId\"],\n\t},\n\t{ type: \"nft_mint\", fields: [\"recipient\", \"assetIdentifier\", \"tokenId\"] },\n\t{ type: \"nft_burn\", fields: [\"sender\", \"assetIdentifier\", \"tokenId\"] },\n\t{ type: \"contract_call\", fields: [\"contract\", \"function\"] },\n\t{ type: \"contract_deploy\", fields: [\"contract\"] },\n\t{ type: \"print_event\", fields: [\"contract\", \"event\", \"contains\"] },\n];\n\nconst COLUMN_TYPES = [\n\t{\n\t\ttype: \"uint\",\n\t\tsqlType: \"bigint\",\n\t\tdescription: \"Unsigned integer (Clarity uint)\",\n\t},\n\t{\n\t\ttype: \"int\",\n\t\tsqlType: \"bigint\",\n\t\tdescription: \"Signed integer (Clarity int)\",\n\t},\n\t{ type: \"text\", sqlType: \"text\", description: \"UTF-8 string\" },\n\t{\n\t\ttype: \"principal\",\n\t\tsqlType: \"text\",\n\t\tdescription: \"Stacks address (standard or contract)\",\n\t},\n\t{ type: \"bool\", sqlType: \"boolean\", description: \"Boolean value\" },\n\t{ type: \"json\", sqlType: \"jsonb\", description: \"Arbitrary JSON data\" },\n\t{\n\t\toptions: [\"nullable\", \"indexed\", \"search\"],\n\t\tdescription:\n\t\t\t\"Column options: nullable allows NULL, indexed creates a B-tree index, search enables full-text search\",\n\t},\n];\n\nexport function registerResources(server: McpServer) {\n\tserver.resource(\n\t\t\"filters\",\n\t\t\"secondlayer://filters\",\n\t\t{ description: \"Event filter types and their available fields\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://filters\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(FILTERS_REFERENCE, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"column-types\",\n\t\t\"secondlayer://column-types\",\n\t\t{ description: \"Subgraph column types, SQL mappings, and options\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://column-types\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(COLUMN_TYPES, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n}\n",
|
|
8
|
-
"import { SecondLayer } from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Lazy SDK singleton from SECONDLAYER_API_KEY env var. */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey =
|
|
8
|
+
"import { SecondLayer } from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\nlet legacyEnvWarned = false;\n\n/**\n * Read the tenant service key from env. `SL_SERVICE_KEY` is canonical;\n * `SECONDLAYER_API_KEY` is accepted as a deprecated alias and logs once\n * per process so users notice without breaking their setup.\n */\nfunction readServiceKey(): string | undefined {\n\tconst canonical = process.env.SL_SERVICE_KEY;\n\tif (canonical) return canonical;\n\tconst legacy = process.env.SECONDLAYER_API_KEY;\n\tif (legacy) {\n\t\tif (!legacyEnvWarned) {\n\t\t\tlegacyEnvWarned = true;\n\t\t\tconsole.error(\n\t\t\t\t\"[mcp] SECONDLAYER_API_KEY is deprecated — use SL_SERVICE_KEY going forward.\",\n\t\t\t);\n\t\t}\n\t\treturn legacy;\n\t}\n\treturn undefined;\n}\n\n/** Lazy SDK singleton from SL_SERVICE_KEY (or SECONDLAYER_API_KEY) env var. */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readServiceKey();\n\t\tif (!apiKey) {\n\t\t\tthrow new Error(\n\t\t\t\t\"SL_SERVICE_KEY environment variable is required. \" +\n\t\t\t\t\t\"Get your key from `sl instance info` or the dashboard.\",\n\t\t\t);\n\t\t}\n\t\tconst baseUrl = process.env.SECONDLAYER_API_URL;\n\t\tinstance = new SecondLayer({\n\t\t\tapiKey,\n\t\t\torigin: \"mcp\",\n\t\t\t...(baseUrl ? { baseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. */\nexport async function apiRequest<T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n): Promise<T> {\n\tconst apiKey = readServiceKey();\n\tif (!apiKey) throw new Error(\"SL_SERVICE_KEY required\");\n\tconst baseUrl =\n\t\tprocess.env.SECONDLAYER_API_URL || \"https://api.secondlayer.tools\";\n\tconst res = await fetch(`${baseUrl}${path}`, {\n\t\tmethod,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\tAuthorization: `Bearer ${apiKey}`,\n\t\t},\n\t\tbody: body ? JSON.stringify(body) : undefined,\n\t});\n\tif (!res.ok) {\n\t\tconst text = await res.text().catch(() => \"\");\n\t\tthrow Object.assign(new Error(text || `HTTP ${res.status}`), {\n\t\t\tstatus: res.status,\n\t\t});\n\t}\n\tif (res.status === 204) return undefined as T;\n\treturn res.json() as Promise<T>;\n}\n",
|
|
9
9
|
"/** Summarize a subgraph for list responses. */\nexport function formatSubgraphSummary(s: {\n\tname: string;\n\tstatus: string;\n\ttables: string[] | Record<string, unknown>;\n\tlastProcessedBlock: number;\n}) {\n\treturn {\n\t\tname: s.name,\n\t\tstatus: s.status,\n\t\ttables: Array.isArray(s.tables) ? s.tables : Object.keys(s.tables),\n\t\tlastProcessedBlock: s.lastProcessedBlock,\n\t};\n}\n\n/** Cap array length and return truncation metadata. */\nexport function withCap<T>(\n\titems: T[],\n\tcap: number,\n): { items: T[]; truncated: boolean; total: number } {\n\treturn {\n\t\titems: items.slice(0, cap),\n\t\ttruncated: items.length > cap,\n\t\ttotal: items.length,\n\t};\n}\n\n/** Build MCP text response with JSON-serialized payload. */\nexport function jsonResponse(\n\tdata: unknown,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: JSON.stringify(data, null, 2) }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n\n/** Build MCP text response with plain text payload. */\nexport function textResponse(\n\ttext: string,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n",
|
|
10
10
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\ninterface ToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tisError?: boolean;\n}\n\n/**\n * Type-safe wrapper around McpServer.tool() that avoids TS2589.\n *\n * The MCP SDK's Zod-generic `tool()` signature recurses past TypeScript's\n * instantiation depth limit when schemas contain discriminated unions or\n * nested optionals. This helper isolates the boundary cast to one place\n * so tool files stay fully typed via the explicit `T` generic.\n *\n * Schema is typed as Record<string, unknown> to prevent TypeScript from\n * resolving the deeply recursive ZodRawShapeCompat constraint. Zod still\n * validates at runtime.\n */\nexport function defineTool<T>(\n\tserver: McpServer,\n\tname: string,\n\tdescription: string,\n\tschema: Record<string, unknown>,\n\thandler: (args: T) => Promise<ToolResult> | ToolResult,\n): void {\n\tconst wrappedHandler = async (args: T): Promise<ToolResult> => {\n\t\ttry {\n\t\t\treturn await handler(args);\n\t\t} catch (err: unknown) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\tconst status =\n\t\t\t\terr instanceof Error && \"status\" in err ? (err as any).status : 0;\n\t\t\tconst type =\n\t\t\t\tstatus === 401\n\t\t\t\t\t? \"unauthorized\"\n\t\t\t\t\t: status === 404\n\t\t\t\t\t\t? \"not_found\"\n\t\t\t\t\t\t: status === 429\n\t\t\t\t\t\t\t? \"rate_limited\"\n\t\t\t\t\t\t\t: status >= 500\n\t\t\t\t\t\t\t\t? \"server_error\"\n\t\t\t\t\t\t\t\t: \"error\";\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify({ error: { type, status, message } }),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t};\n\t\t}\n\t};\n\t(server.tool as Function)(name, description, schema, wrappedHandler);\n}\n",
|
|
11
11
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { apiRequest } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerAccountTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"account_whoami\",\n\t\t\"Show the authenticated account's email and plan.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await apiRequest<{ email: string; plan: string }>(\n\t\t\t\t\"GET\",\n\t\t\t\t\"/api/accounts/me\",\n\t\t\t);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n}\n",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { bundleSubgraphCode } from \"@secondlayer/bundler\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { formatSubgraphSummary, withCap } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerSubgraphTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"subgraphs_list\",\n\t\t\"List all deployed subgraphs. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await getClient().subgraphs.list();\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(data.map(formatSubgraphSummary), null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_get\",\n\t\t\"Get full details of a subgraph including schema, health, and table columns.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().subgraphs.get(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(detail, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\ttable: string;\n\t\tfilters?: Record<string, string>;\n\t\tsort?: string;\n\t\torder?: string;\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tfields?: string;\n\t\tcount?: boolean;\n\t}>(\n\t\tserver,\n\t\t\"subgraphs_query\",\n\t\t'Query rows from a subgraph table (max 200 rows). Filters support operators: \"amount.gte\": \"1000\", \"sender.neq\": \"SP...\", \"name.like\": \"%token%\". Available operators: eq, neq, gt, gte, lt, lte, like.',\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\n\t\t\ttable: z.string().describe(\"Table name\"),\n\t\t\tfilters: z\n\t\t\t\t.record(z.string(), z.string())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Column filters — plain values or with operators (e.g. {\"amount.gte\": \"1000\", \"sender\": \"SP...\"})',\n\t\t\t\t),\n\t\t\tsort: z.string().optional().describe(\"Column to sort by\"),\n\t\t\torder: z.enum([\"asc\", \"desc\"]).optional().describe(\"Sort order\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.max(200)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max rows (default 50, max 200)\"),\n\t\t\toffset: z.number().optional().describe(\"Offset for pagination\"),\n\t\t\tfields: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Comma-separated column list to return (e.g. \"sender,amount\")',\n\t\t\t\t),\n\t\t\tcount: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"If true, return row count instead of rows\"),\n\t\t},\n\t\tasync ({\n\t\t\tname,\n\t\t\ttable,\n\t\t\tfilters,\n\t\t\tsort,\n\t\t\torder,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tfields,\n\t\t\tcount,\n\t\t}) => {\n\t\t\tif (count) {\n\t\t\t\tconst result = await getClient().subgraphs.queryTableCount(\n\t\t\t\t\tname,\n\t\t\t\t\ttable,\n\t\t\t\t\t{ filters, sort, order },\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst rows = await getClient().subgraphs.queryTable(name, table, {\n\t\t\t\tfilters,\n\t\t\t\tsort,\n\t\t\t\torder,\n\t\t\t\tlimit: limit ?? 50,\n\t\t\t\toffset,\n\t\t\t\tfields,\n\t\t\t});\n\t\t\tconst cap = limit ?? 50;\n\t\t\tconst result = withCap(\n\t\t\t\trows as Record<string, unknown>[],\n\t\t\t\tcap > 200 ? 200 : cap,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; fromBlock?: number; toBlock?: number }>(\n\t\tserver,\n\t\t\"subgraphs_reindex\",\n\t\t\"Reindex a subgraph from a specific block range.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Start block (defaults to beginning)\"),\n\t\t\ttoBlock: z.number().optional().describe(\"End block (defaults to latest)\"),\n\t\t},\n\t\tasync ({ name, fromBlock, toBlock }) => {\n\t\t\tconst result = await getClient().subgraphs.reindex(name, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_delete\",\n\t\t\"Delete a subgraph permanently.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await getClient().subgraphs.delete(name);\n\t\t\treturn { content: [{ type: \"text\", text: result.message }] };\n\t\t},\n\t);\n\n\tdefineTool<{ code: string; reindex?: boolean }>(\n\t\tserver,\n\t\t\"subgraphs_deploy\",\n\t\t\"Deploy a subgraph from TypeScript code. Pass the full defineSubgraph() source — it will be bundled, validated, and deployed.\",\n\t\t{\n\t\t\tcode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"TypeScript source code containing a defineSubgraph() call\"),\n\t\t\treindex: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Force reindex on breaking schema change (drops and rebuilds all data)\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ code, reindex }) => {\n\t\t\tconst bundled = await bundleSubgraphCode(code);\n\t\t\tconst result = await getClient().subgraphs.deploy({\n\t\t\t\tname: bundled.name,\n\t\t\t\tversion: bundled.version,\n\t\t\t\tdescription: bundled.description,\n\t\t\t\tsources: bundled.sources,\n\t\t\t\tschema: bundled.schema,\n\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\tsourceCode: code,\n\t\t\t\treindex,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_read_source\",\n\t\t\"Fetch the deployed TypeScript source of a subgraph (plus its stored version). Returns a readOnly payload for subgraphs deployed before source capture — in that case the caller should redeploy via CLI before editing.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst source = await getClient().subgraphs.getSource(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(source, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n}\n",
|
|
14
14
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { bundleWorkflowCode } from \"@secondlayer/bundler\";\nimport {\n\ttype ScaffoldDeliveryTarget,\n\ttype ScaffoldStepKind,\n\tgenerateWorkflowCode,\n} from \"@secondlayer/scaffold\";\nimport { VersionConflictError } from \"@secondlayer/sdk\";\nimport { createPatch } from \"diff\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerWorkflowTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_list\",\n\t\t\"List all workflows. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { workflows } = await getClient().workflows.list();\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(workflows, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_get\",\n\t\t\"Get full details of a workflow by name.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().workflows.get(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(detail, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_get_definition\",\n\t\t\"Return the deployed TypeScript source of a workflow plus its stored version. Returns `sourceCode: null` + `readOnly: true` for workflows deployed before source capture.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst source = await getClient().workflows.getSource(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(source, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\tproposedCode: string;\n\t\texpectedVersion?: string;\n\t}>(\n\t\tserver,\n\t\t\"workflows_propose_edit\",\n\t\t\"Validate a proposed edit WITHOUT deploying. Fetches the current stored source, bundles the proposed source, computes a unified diff, and returns everything for review. Use this when you want to show the user a diff before committing — pair it with workflows_deploy(expectedVersion=...) to persist.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tproposedCode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"New TypeScript source — must compile and validate.\"),\n\t\t\texpectedVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Version the proposer is editing from (for audit).\"),\n\t\t},\n\t\tasync ({ name, proposedCode, expectedVersion }) => {\n\t\t\tconst current = await getClient().workflows.getSource(name);\n\t\t\tif (current.sourceCode === null) {\n\t\t\t\treturn {\n\t\t\t\t\tisError: true,\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\terror:\n\t\t\t\t\t\t\t\t\t\t\"Workflow has no stored source. Redeploy via CLI first.\",\n\t\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\t\tversion: current.version,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet bundleValid = false;\n\t\t\tlet validation: { name: string; triggerType: string } | { error: string };\n\t\t\tlet bundleSize = 0;\n\t\t\ttry {\n\t\t\t\tconst bundled = await bundleWorkflowCode(proposedCode);\n\t\t\t\tbundleValid = true;\n\t\t\t\tbundleSize = Buffer.byteLength(bundled.handlerCode, \"utf8\");\n\t\t\t\tvalidation = {\n\t\t\t\t\tname: bundled.name,\n\t\t\t\t\ttriggerType: bundled.trigger.type,\n\t\t\t\t};\n\t\t\t} catch (err) {\n\t\t\t\tvalidation = {\n\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst diffText = createPatch(\n\t\t\t\t`${name}.ts`,\n\t\t\t\tcurrent.sourceCode,\n\t\t\t\tproposedCode,\n\t\t\t\t`v${current.version}`,\n\t\t\t\t\"proposed\",\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcurrentVersion: current.version,\n\t\t\t\t\t\t\t\texpectedVersion,\n\t\t\t\t\t\t\t\tcurrentSource: current.sourceCode,\n\t\t\t\t\t\t\t\tproposedSource: proposedCode,\n\t\t\t\t\t\t\t\tdiffText,\n\t\t\t\t\t\t\t\tbundleValid,\n\t\t\t\t\t\t\t\tvalidation,\n\t\t\t\t\t\t\t\tbundleSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\trunId: string;\n\t\tlimit?: number;\n\t\ttimeoutMs?: number;\n\t}>(\n\t\tserver,\n\t\t\"workflows_tail_run\",\n\t\t\"Tail a workflow run via SSE and return a compacted log. Resolves as soon as the run completes, `limit` events are collected, or `timeoutMs` elapses (default 60s). MCP is not streaming-first — use this for short-lived follow-ups, not long tails.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\trunId: z.string().describe(\"Run id\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.positive()\n\t\t\t\t.max(200)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max step events to collect (default 50)\"),\n\t\t\ttimeoutMs: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.positive()\n\t\t\t\t.max(5 * 60 * 1000)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Hard timeout in ms (default 60000, max 300000)\"),\n\t\t},\n\t\tasync ({ name, runId, limit, timeoutMs }) => {\n\t\t\tconst cap = limit ?? 50;\n\t\t\tconst deadline = timeoutMs ?? 60_000;\n\n\t\t\tconst events: Array<Record<string, unknown>> = [];\n\t\t\tlet finalStatus: string | null = null;\n\t\t\tlet stoppedBy: \"done\" | \"limit\" | \"timeout\" = \"timeout\";\n\n\t\t\tconst controller = new AbortController();\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tstoppedBy = \"timeout\";\n\t\t\t\tcontroller.abort();\n\t\t\t}, deadline);\n\n\t\t\ttry {\n\t\t\t\tawait getClient().workflows.streamRun(\n\t\t\t\t\tname,\n\t\t\t\t\trunId,\n\t\t\t\t\t(event) => {\n\t\t\t\t\t\tif (event.type === \"step\") {\n\t\t\t\t\t\t\tevents.push(event.step as unknown as Record<string, unknown>);\n\t\t\t\t\t\t\tif (events.length >= cap) {\n\t\t\t\t\t\t\t\tstoppedBy = \"limit\";\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (event.type === \"done\") {\n\t\t\t\t\t\t\tfinalStatus = event.done.status;\n\t\t\t\t\t\t\tstoppedBy = \"done\";\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tcontroller.signal,\n\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tif (!(err instanceof Error) || err.name !== \"AbortError\") {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tclearTimeout(timer);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trunId,\n\t\t\t\t\t\t\t\tfinalStatus,\n\t\t\t\t\t\t\t\tstoppedBy,\n\t\t\t\t\t\t\t\teventCount: events.length,\n\t\t\t\t\t\t\t\tevents,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_pause_all\",\n\t\t\"Pause ALL active workflows for the authenticated account. Irreversible only by calling pause/resume per workflow. Returns the list of affected workflows.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await getClient().workflows.pauseAll();\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ runId: string }>(\n\t\tserver,\n\t\t\"workflows_cancel_run\",\n\t\t\"Cancel an in-flight workflow run. Marks the run as cancelled and removes any pending queue entry. No-ops if the run is already terminal.\",\n\t\t{ runId: z.string().describe(\"Run id to cancel\") },\n\t\tasync ({ runId }) => {\n\t\t\tconst result = await getClient().workflows.cancelRun(runId);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; toVersion?: string }>(\n\t\tserver,\n\t\t\"workflows_rollback\",\n\t\t\"Roll a workflow back to a prior version. The restored handler is re-published as a NEW version (audit trail), so no history is lost. Pass toVersion to pick a specific bundle; omit to roll back to the immediate previous version on disk. Last 3 versions are retained.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\ttoVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Target version to restore. Must be one of the retained bundles on disk.\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ name, toVersion }) => {\n\t\t\tconst result = await getClient().workflows.rollback(name, toVersion);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_delete\",\n\t\t\"Delete a workflow permanently.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.delete(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Deleted workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; input?: string }>(\n\t\tserver,\n\t\t\"workflows_trigger\",\n\t\t\"Trigger a workflow run. Optionally pass input as a JSON string.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tinput: z.string().optional().describe(\"Input as JSON string\"),\n\t\t},\n\t\tasync ({ name, input }) => {\n\t\t\tconst parsed = input ? JSON.parse(input) : undefined;\n\t\t\tconst result = await getClient().workflows.trigger(name, parsed);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_pause\",\n\t\t\"Pause a running workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.pause(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Paused workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_resume\",\n\t\t\"Resume a paused workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.resume(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Resumed workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\ttrigger:\n\t\t\t| { type: \"event\"; filterType?: string }\n\t\t\t| { type: \"schedule\"; cron: string; timezone?: string }\n\t\t\t| { type: \"manual\" };\n\t\tsteps: ScaffoldStepKind[];\n\t\tdeliveryTarget?: ScaffoldDeliveryTarget;\n\t}>(\n\t\tserver,\n\t\t\"workflows_scaffold\",\n\t\t\"Generate a compilable defineWorkflow() skeleton from a typed intent. Returns the TypeScript source; pass it to workflows_deploy to persist. Placeholders inside the source must be filled in before running a real workflow.\",\n\t\t{\n\t\t\tname: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^[a-z][a-z0-9-]*$/)\n\t\t\t\t.describe(\"Workflow name (lowercase, hyphens)\"),\n\t\t\ttrigger: z\n\t\t\t\t.discriminatedUnion(\"type\", [\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.literal(\"event\"),\n\t\t\t\t\t\tfilterType: z.string().optional(),\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.literal(\"schedule\"),\n\t\t\t\t\t\tcron: z.string().min(1),\n\t\t\t\t\t\ttimezone: z.string().optional(),\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({ type: z.literal(\"manual\") }),\n\t\t\t\t])\n\t\t\t\t.describe(\"Trigger shape\"),\n\t\t\tsteps: z\n\t\t\t\t.array(z.enum([\"run\", \"query\", \"ai\", \"deliver\"]))\n\t\t\t\t.describe(\"Ordered list of step kinds to include in the handler\"),\n\t\t\tdeliveryTarget: z\n\t\t\t\t.enum([\"webhook\", \"slack\", \"email\", \"discord\", \"telegram\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Delivery target used when steps includes `deliver`\"),\n\t\t},\n\t\tasync ({ name, trigger, steps, deliveryTarget }) => {\n\t\t\tconst code = generateWorkflowCode({\n\t\t\t\tname,\n\t\t\t\ttrigger,\n\t\t\t\tsteps,\n\t\t\t\tdeliveryTarget,\n\t\t\t});\n\t\t\treturn { content: [{ type: \"text\", text: code }] };\n\t\t},\n\t);\n\n\tdefineTool<{ code: string; expectedVersion?: string; dryRun?: boolean }>(\n\t\tserver,\n\t\t\"workflows_deploy\",\n\t\t\"Deploy a workflow from TypeScript source. Pass the full defineWorkflow() source — it will be bundled, validated, and deployed. Use expectedVersion for optimistic concurrency, or dryRun to validate without persisting.\",\n\t\t{\n\t\t\tcode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"TypeScript source code containing a defineWorkflow() call\"),\n\t\t\texpectedVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Stored version the client expects (major.minor.patch). Server returns 409 on mismatch.\",\n\t\t\t\t),\n\t\t\tdryRun: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"If true, validate and bundle only — do not persist.\"),\n\t\t},\n\t\tasync ({ code, expectedVersion, dryRun }) => {\n\t\t\tlet bundled: Awaited<ReturnType<typeof bundleWorkflowCode>>;\n\t\t\ttry {\n\t\t\t\tbundled = await bundleWorkflowCode(code);\n\t\t\t} catch (err) {\n\t\t\t\treturn {\n\t\t\t\t\tisError: true,\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst base = {\n\t\t\t\tname: bundled.name,\n\t\t\t\ttrigger: bundled.trigger as unknown as Record<string, unknown>,\n\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\tsourceCode: bundled.sourceCode,\n\t\t\t\tretries: bundled.retries as Record<string, unknown> | undefined,\n\t\t\t\ttimeout: bundled.timeout,\n\t\t\t\texpectedVersion,\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst result = dryRun\n\t\t\t\t\t? await getClient().workflows.deploy({ ...base, dryRun: true })\n\t\t\t\t\t: await getClient().workflows.deploy(base);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t\t};\n\t\t\t} catch (err) {\n\t\t\t\tif (err instanceof VersionConflictError) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tisError: true,\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\terror: err.message,\n\t\t\t\t\t\t\t\t\t\tcode: \"VERSION_CONFLICT\",\n\t\t\t\t\t\t\t\t\t\tcurrentVersion: err.currentVersion,\n\t\t\t\t\t\t\t\t\t\texpectedVersion: err.expectedVersion,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; status?: string; limit?: number }>(\n\t\tserver,\n\t\t\"workflows_runs\",\n\t\t\"List runs for a workflow. Optionally filter by status and limit results.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tstatus: z\n\t\t\t\t.enum([\"running\", \"completed\", \"failed\", \"cancelled\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by run status\"),\n\t\t\tlimit: z.number().optional().describe(\"Max runs to return (default 20)\"),\n\t\t},\n\t\tasync ({ name, status, limit }) => {\n\t\t\tconst { runs } = await getClient().workflows.listRuns(name, {\n\t\t\t\tstatus: status as\n\t\t\t\t\t| \"running\"\n\t\t\t\t\t| \"completed\"\n\t\t\t\t\t| \"failed\"\n\t\t\t\t\t| \"cancelled\"\n\t\t\t\t\t| undefined,\n\t\t\t\tlimit,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(runs, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n"
|
|
15
15
|
],
|
|
16
|
-
"mappings": "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",
|
|
17
|
-
"debugId": "
|
|
16
|
+
"mappings": ";;;AACA;;;ACDA;AACA;AACA;AACA;;;ACAA,IAAM,oBAAoB;AAAA,EACzB;AAAA,IACC,MAAM;AAAA,IACN,QAAQ,CAAC,UAAU,aAAa,aAAa,WAAW;AAAA,EACzD;AAAA,EACA,EAAE,MAAM,YAAY,QAAQ,CAAC,aAAa,WAAW,EAAE;AAAA,EACvD,EAAE,MAAM,YAAY,QAAQ,CAAC,UAAU,WAAW,EAAE;AAAA,EACpD,EAAE,MAAM,YAAY,QAAQ,CAAC,iBAAiB,WAAW,EAAE;AAAA,EAC3D;AAAA,IACC,MAAM;AAAA,IACN,QAAQ;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EACA,EAAE,MAAM,WAAW,QAAQ,CAAC,aAAa,mBAAmB,WAAW,EAAE;AAAA,EACzE,EAAE,MAAM,WAAW,QAAQ,CAAC,UAAU,mBAAmB,WAAW,EAAE;AAAA,EACtE;AAAA,IACC,MAAM;AAAA,IACN,QAAQ,CAAC,UAAU,aAAa,mBAAmB,SAAS;AAAA,EAC7D;AAAA,EACA,EAAE,MAAM,YAAY,QAAQ,CAAC,aAAa,mBAAmB,SAAS,EAAE;AAAA,EACxE,EAAE,MAAM,YAAY,QAAQ,CAAC,UAAU,mBAAmB,SAAS,EAAE;AAAA,EACrE,EAAE,MAAM,iBAAiB,QAAQ,CAAC,YAAY,UAAU,EAAE;AAAA,EAC1D,EAAE,MAAM,mBAAmB,QAAQ,CAAC,UAAU,EAAE;AAAA,EAChD,EAAE,MAAM,eAAe,QAAQ,CAAC,YAAY,SAAS,UAAU,EAAE;AAClE;AAEA,IAAM,eAAe;AAAA,EACpB;AAAA,IACC,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,EACd;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,EACd;AAAA,EACA,EAAE,MAAM,QAAQ,SAAS,QAAQ,aAAa,eAAe;AAAA,EAC7D;AAAA,IACC,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,EACd;AAAA,EACA,EAAE,MAAM,QAAQ,SAAS,WAAW,aAAa,gBAAgB;AAAA,EACjE,EAAE,MAAM,QAAQ,SAAS,SAAS,aAAa,sBAAsB;AAAA,EACrE;AAAA,IACC,SAAS,CAAC,YAAY,WAAW,QAAQ;AAAA,IACzC,aACC;AAAA,EACF;AACD;AAEO,SAAS,iBAAiB,CAAC,QAAmB;AAAA,EACpD,OAAO,SACN,WACA,yBACA,EAAE,aAAa,gDAAgD,GAC/D,aAAa;AAAA,IACZ,UAAU;AAAA,MACT;AAAA,QACC,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM,KAAK,UAAU,mBAAmB,MAAM,CAAC;AAAA,MAChD;AAAA,IACD;AAAA,EACD,EACD;AAAA,EAEA,OAAO,SACN,gBACA,8BACA,EAAE,aAAa,mDAAmD,GAClE,aAAa;AAAA,IACZ,UAAU;AAAA,MACT;AAAA,QACC,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM,KAAK,UAAU,cAAc,MAAM,CAAC;AAAA,MAC3C;AAAA,IACD;AAAA,EACD,EACD;AAAA;;;ACzFD;AAEA,IAAI,WAA+B;AACnC,IAAI,kBAAkB;AAOtB,SAAS,cAAc,GAAuB;AAAA,EAC7C,MAAM,YAAY,QAAQ,IAAI;AAAA,EAC9B,IAAI;AAAA,IAAW,OAAO;AAAA,EACtB,MAAM,SAAS,QAAQ,IAAI;AAAA,EAC3B,IAAI,QAAQ;AAAA,IACX,IAAI,CAAC,iBAAiB;AAAA,MACrB,kBAAkB;AAAA,MAClB,QAAQ,MACP,6EACD;AAAA,IACD;AAAA,IACA,OAAO;AAAA,EACR;AAAA,EACA;AAAA;AAIM,SAAS,SAAS,GAAgB;AAAA,EACxC,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,SAAS,eAAe;AAAA,IAC9B,IAAI,CAAC,QAAQ;AAAA,MACZ,MAAM,IAAI,MACT,sDACC,wDACF;AAAA,IACD;AAAA,IACA,MAAM,UAAU,QAAQ,IAAI;AAAA,IAC5B,WAAW,IAAI,YAAY;AAAA,MAC1B;AAAA,MACA,QAAQ;AAAA,SACJ,UAAU,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC9B,CAAC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAIR,eAAsB,UAAa,CAClC,QACA,MACA,MACa;AAAA,EACb,MAAM,SAAS,eAAe;AAAA,EAC9B,IAAI,CAAC;AAAA,IAAQ,MAAM,IAAI,MAAM,yBAAyB;AAAA,EACtD,MAAM,UACL,QAAQ,IAAI,uBAAuB;AAAA,EACpC,MAAM,MAAM,MAAM,MAAM,GAAG,UAAU,QAAQ;AAAA,IAC5C;AAAA,IACA,SAAS;AAAA,MACR,gBAAgB;AAAA,MAChB,eAAe,UAAU;AAAA,IAC1B;AAAA,IACA,MAAM,OAAO,KAAK,UAAU,IAAI,IAAI;AAAA,EACrC,CAAC;AAAA,EACD,IAAI,CAAC,IAAI,IAAI;AAAA,IACZ,MAAM,OAAO,MAAM,IAAI,KAAK,EAAE,MAAM,MAAM,EAAE;AAAA,IAC5C,MAAM,OAAO,OAAO,IAAI,MAAM,QAAQ,QAAQ,IAAI,QAAQ,GAAG;AAAA,MAC5D,QAAQ,IAAI;AAAA,IACb,CAAC;AAAA,EACF;AAAA,EACA,IAAI,IAAI,WAAW;AAAA,IAAK;AAAA,EACxB,OAAO,IAAI,KAAK;AAAA;;;ACtEV,SAAS,qBAAqB,CAAC,GAKnC;AAAA,EACF,OAAO;AAAA,IACN,MAAM,EAAE;AAAA,IACR,QAAQ,EAAE;AAAA,IACV,QAAQ,MAAM,QAAQ,EAAE,MAAM,IAAI,EAAE,SAAS,OAAO,KAAK,EAAE,MAAM;AAAA,IACjE,oBAAoB,EAAE;AAAA,EACvB;AAAA;AAIM,SAAS,OAAU,CACzB,OACA,KACoD;AAAA,EACpD,OAAO;AAAA,IACN,OAAO,MAAM,MAAM,GAAG,GAAG;AAAA,IACzB,WAAW,MAAM,SAAS;AAAA,IAC1B,OAAO,MAAM;AAAA,EACd;AAAA;AAIM,SAAS,YAAY,CAC3B,MACA,SACwE;AAAA,EACxE,OAAO;AAAA,IACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,MAAM,MAAM,CAAC,EAAE,CAAC;AAAA,OAC3D,WAAW,EAAE,SAAS,KAAK;AAAA,EAChC;AAAA;;;AChBM,SAAS,UAAa,CAC5B,QACA,MACA,aACA,QACA,SACO;AAAA,EACP,MAAM,iBAAiB,OAAO,SAAiC;AAAA,IAC9D,IAAI;AAAA,MACH,OAAO,MAAM,QAAQ,IAAI;AAAA,MACxB,OAAO,KAAc;AAAA,MACtB,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MAC/D,MAAM,SACL,eAAe,SAAS,YAAY,MAAO,IAAY,SAAS;AAAA,MACjE,MAAM,OACL,WAAW,MACR,iBACA,WAAW,MACV,cACA,WAAW,MACV,iBACA,UAAU,MACT,iBACA;AAAA,MACP,OAAO;AAAA,QACN,SAAS;AAAA,UACR;AAAA,YACC,MAAM;AAAA,YACN,MAAM,KAAK,UAAU,EAAE,OAAO,EAAE,MAAM,QAAQ,QAAQ,EAAE,CAAC;AAAA,UAC1D;AAAA,QACD;AAAA,QACA,SAAS;AAAA,MACV;AAAA;AAAA;AAAA,EAGD,OAAO,KAAkB,MAAM,aAAa,QAAQ,cAAc;AAAA;;;ACjD7D,SAAS,oBAAoB,CAAC,QAAmB;AAAA,EACvD,WACC,QACA,kBACA,oDACA,CAAC,GACD,YAAY;AAAA,IACX,MAAM,SAAS,MAAM,WACpB,OACA,kBACD;AAAA,IACA,OAAO,aAAa,MAAM;AAAA,GAE5B;AAAA;;;ACjBD;AAEA;AAGA,IAAM,WACL,QAAQ,IAAI,uBAAuB;AAEpC,eAAe,QAAQ,CACtB,YACwD;AAAA,EACxD,MAAM,MAAM,MAAM,MAAM,GAAG,+BAA+B,kBAAkB;AAAA,IAC3E,QAAQ,YAAY,QAAQ,GAAM;AAAA,EACnC,CAAC;AAAA,EACD,IAAI,CAAC,IAAI,IAAI;AAAA,IACZ,IAAI,IAAI,WAAW;AAAA,MAClB,MAAM,IAAI,MAAM,uBAAuB,YAAY;AAAA,IACpD,MAAM,IAAI,MAAM,6BAA6B,IAAI,QAAQ;AAAA,EAC1D;AAAA,EACA,MAAM,MAAO,MAAM,IAAI,KAAK;AAAA,EAI5B,OAAO;AAAA,IACN,WAAW,IAAI,aAAa,CAAC;AAAA,IAC7B,MAAM,IAAI,QAAQ,CAAC;AAAA,EACpB;AAAA;AAGM,SAAS,qBAAqB,CAAC,QAAmB;AAAA,EACxD,WACC,QACA,0BACA,gGACA;AAAA,IACC,YAAY,EACV,OAAO,EACP,SACA,6FACD;AAAA,IACD,cAAc,EACZ,OAAO,EACP,SAAS,EACT,SAAS,wDAAwD;AAAA,EACpE,GACA,SAAS,YAAY,mBAAmB;AAAA,IACvC,QAAQ,WAAW,SAAS,MAAM,SAAS,UAAU;AAAA,IACrD,MAAM,OAAO,qBACZ,YACA,WACA,cACA,IACD;AAAA,IACA,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,CAAC,EAAE;AAAA,GAEnD;AAAA,EAEA,WACC,QACA,qBACA,6FACA;AAAA,IACC,KAAK,EACH,OAAO,EACP,SAAS,gDAAgD;AAAA,IAC3D,YAAY,EAAE,OAAO,EAAE,SAAS,6BAA6B;AAAA,IAC7D,cAAc,EACZ,OAAO,EACP,SAAS,EACT,SAAS,4BAA4B;AAAA,EACxC,GACA,SAAS,KAAK,YAAY,mBAAmB;AAAA,IAC5C,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,SAAS,KAAK,MAAM,GAAG;AAAA,MACtB,MAAM;AAAA,MACP,OAAO;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,mBAAmB,CAAC;AAAA,QACpD,SAAS;AAAA,MACV;AAAA;AAAA,IAED,MAAM,OAAO,qBACZ,YACA,OAAO,aAAa,CAAC,GACrB,cACA,OAAO,QAAQ,CAAC,CACjB;AAAA,IACA,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,CAAC,EAAE;AAAA,GAEnD;AAAA;;;ACzFD;AACA,cAAS;AAKF,SAAS,qBAAqB,CAAC,QAAmB;AAAA,EACxD,WACC,QACA,kBACA,6DACA,CAAC,GACD,YAAY;AAAA,IACX,QAAQ,SAAS,MAAM,UAAU,EAAE,UAAU,KAAK;AAAA,IAClD,OAAO;AAAA,MACN,SAAS;AAAA,QACR;AAAA,UACC,MAAM;AAAA,UACN,MAAM,KAAK,UAAU,KAAK,IAAI,qBAAqB,GAAG,MAAM,CAAC;AAAA,QAC9D;AAAA,MACD;AAAA,IACD;AAAA,GAEF;AAAA,EAEA,WACC,QACA,iBACA,+EACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,IAAI,IAAI;AAAA,IACnD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WAWC,QACA,mBACA,0MACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,OAAO,GAAE,OAAO,EAAE,SAAS,YAAY;AAAA,IACvC,SAAS,GACP,OAAO,GAAE,OAAO,GAAG,GAAE,OAAO,CAAC,EAC7B,SAAS,EACT,SACA,kGACD;AAAA,IACD,MAAM,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,IACxD,OAAO,GAAE,KAAK,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,YAAY;AAAA,IAC/D,OAAO,GACL,OAAO,EACP,IAAI,GAAG,EACP,SAAS,EACT,SAAS,gCAAgC;AAAA,IAC3C,QAAQ,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA,IAC9D,QAAQ,GACN,OAAO,EACP,SAAS,EACT,SACA,8DACD;AAAA,IACD,OAAO,GACL,QAAQ,EACR,SAAS,EACT,SAAS,2CAA2C;AAAA,EACvD,GACA;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,QACK;AAAA,IACL,IAAI,OAAO;AAAA,MACV,MAAM,UAAS,MAAM,UAAU,EAAE,UAAU,gBAC1C,MACA,OACA,EAAE,SAAS,MAAM,MAAM,CACxB;AAAA,MACA,OAAO;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,SAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,MAClE;AAAA,IACD;AAAA,IACA,MAAM,OAAO,MAAM,UAAU,EAAE,UAAU,WAAW,MAAM,OAAO;AAAA,MAChE;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,SAAS;AAAA,MAChB;AAAA,MACA;AAAA,IACD,CAAC;AAAA,IACD,MAAM,MAAM,SAAS;AAAA,IACrB,MAAM,SAAS,QACd,MACA,MAAM,MAAM,MAAM,GACnB;AAAA,IACA,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,qBACA,mDACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,WAAW,GACT,OAAO,EACP,SAAS,EACT,SAAS,qCAAqC;AAAA,IAChD,SAAS,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EACzE,GACA,SAAS,MAAM,WAAW,cAAc;AAAA,IACvC,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,QAAQ,MAAM;AAAA,MACxD;AAAA,MACA;AAAA,IACD,CAAC;AAAA,IACD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,oBACA,kCACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,OAAO,IAAI;AAAA,IACtD,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,QAAQ,CAAC,EAAE;AAAA,GAE7D;AAAA,EAEA,WACC,QACA,oBACA,gIACA;AAAA,IACC,MAAM,GACJ,OAAO,EACP,SAAS,2DAA2D;AAAA,IACtE,SAAS,GACP,QAAQ,EACR,SAAS,EACT,SACA,uEACD;AAAA,EACF,GACA,SAAS,MAAM,cAAc;AAAA,IAC5B,MAAM,UAAU,MAAM,mBAAmB,IAAI;AAAA,IAC7C,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,OAAO;AAAA,MACjD,MAAM,QAAQ;AAAA,MACd,SAAS,QAAQ;AAAA,MACjB,aAAa,QAAQ;AAAA,MACrB,SAAS,QAAQ;AAAA,MACjB,QAAQ,QAAQ;AAAA,MAChB,aAAa,QAAQ;AAAA,MACrB,YAAY;AAAA,MACZ;AAAA,IACD,CAAC;AAAA,IACD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,yBACA,2NACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,UAAU,IAAI;AAAA,IACzD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA;;;ACtMD;AACA;AAAA;AAAA;AAKA;AACA;AACA,cAAS;AAIF,SAAS,qBAAqB,CAAC,QAAmB;AAAA,EACxD,WACC,QACA,kBACA,oDACA,CAAC,GACD,YAAY;AAAA,IACX,QAAQ,cAAc,MAAM,UAAU,EAAE,UAAU,KAAK;AAAA,IACvD,OAAO;AAAA,MACN,SAAS;AAAA,QACR;AAAA,UACC,MAAM;AAAA,UACN,MAAM,KAAK,UAAU,WAAW,MAAM,CAAC;AAAA,QACxC;AAAA,MACD;AAAA,IACD;AAAA,GAEF;AAAA,EAEA,WACC,QACA,iBACA,2CACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,IAAI,IAAI;AAAA,IACnD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,4BACA,4KACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,UAAU,IAAI;AAAA,IACzD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WAKC,QACA,0BACA,6SACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,cAAc,GACZ,OAAO,EACP,SAAS,oDAAmD;AAAA,IAC9D,iBAAiB,GACf,OAAO,EACP,MAAM,iBAAiB,EACvB,SAAS,EACT,SAAS,mDAAmD;AAAA,EAC/D,GACA,SAAS,MAAM,cAAc,sBAAsB;AAAA,IAClD,MAAM,UAAU,MAAM,UAAU,EAAE,UAAU,UAAU,IAAI;AAAA,IAC1D,IAAI,QAAQ,eAAe,MAAM;AAAA,MAChC,OAAO;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,UACR;AAAA,YACC,MAAM;AAAA,YACN,MAAM,KAAK,UACV;AAAA,cACC,OACC;AAAA,cACD,UAAU;AAAA,cACV,SAAS,QAAQ;AAAA,YAClB,GACA,MACA,CACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IAEA,IAAI,cAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI,aAAa;AAAA,IACjB,IAAI;AAAA,MACH,MAAM,UAAU,MAAM,mBAAmB,YAAY;AAAA,MACrD,cAAc;AAAA,MACd,aAAa,OAAO,WAAW,QAAQ,aAAa,MAAM;AAAA,MAC1D,aAAa;AAAA,QACZ,MAAM,QAAQ;AAAA,QACd,aAAa,QAAQ,QAAQ;AAAA,MAC9B;AAAA,MACC,OAAO,KAAK;AAAA,MACb,aAAa;AAAA,QACZ,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,MACvD;AAAA;AAAA,IAGD,MAAM,WAAW,YAChB,GAAG,WACH,QAAQ,YACR,cACA,IAAI,QAAQ,WACZ,UACD;AAAA,IAEA,OAAO;AAAA,MACN,SAAS;AAAA,QACR;AAAA,UACC,MAAM;AAAA,UACN,MAAM,KAAK,UACV;AAAA,YACC,gBAAgB,QAAQ;AAAA,YACxB;AAAA,YACA,eAAe,QAAQ;AAAA,YACvB,gBAAgB;AAAA,YAChB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACD,GACA,MACA,CACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,GAEF;AAAA,EAEA,WAMC,QACA,sBACA,wPACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,OAAO,GAAE,OAAO,EAAE,SAAS,QAAQ;AAAA,IACnC,OAAO,GACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,GAAG,EACP,SAAS,EACT,SAAS,yCAAyC;AAAA,IACpD,WAAW,GACT,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,IAAI,KAAK,IAAI,EACjB,SAAS,EACT,SAAS,gDAAgD;AAAA,EAC5D,GACA,SAAS,MAAM,OAAO,OAAO,gBAAgB;AAAA,IAC5C,MAAM,MAAM,SAAS;AAAA,IACrB,MAAM,WAAW,aAAa;AAAA,IAE9B,MAAM,SAAyC,CAAC;AAAA,IAChD,IAAI,cAA6B;AAAA,IACjC,IAAI,YAA0C;AAAA,IAE9C,MAAM,aAAa,IAAI;AAAA,IACvB,MAAM,QAAQ,WAAW,MAAM;AAAA,MAC9B,YAAY;AAAA,MACZ,WAAW,MAAM;AAAA,OACf,QAAQ;AAAA,IAEX,IAAI;AAAA,MACH,MAAM,UAAU,EAAE,UAAU,UAC3B,MACA,OACA,CAAC,UAAU;AAAA,QACV,IAAI,MAAM,SAAS,QAAQ;AAAA,UAC1B,OAAO,KAAK,MAAM,IAA0C;AAAA,UAC5D,IAAI,OAAO,UAAU,KAAK;AAAA,YACzB,YAAY;AAAA,YACZ,WAAW,MAAM;AAAA,UAClB;AAAA,QACD,EAAO,SAAI,MAAM,SAAS,QAAQ;AAAA,UACjC,cAAc,MAAM,KAAK;AAAA,UACzB,YAAY;AAAA,QACb;AAAA,SAED,WAAW,MACZ;AAAA,MACC,OAAO,KAAK;AAAA,MACb,IAAI,EAAE,eAAe,UAAU,IAAI,SAAS,cAAc;AAAA,QACzD,MAAM;AAAA,MACP;AAAA,cACC;AAAA,MACD,aAAa,KAAK;AAAA;AAAA,IAGnB,OAAO;AAAA,MACN,SAAS;AAAA,QACR;AAAA,UACC,MAAM;AAAA,UACN,MAAM,KAAK,UACV;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAY,OAAO;AAAA,YACnB;AAAA,UACD,GACA,MACA,CACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,GAEF;AAAA,EAEA,WACC,QACA,uBACA,6JACA,CAAC,GACD,YAAY;AAAA,IACX,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,SAAS;AAAA,IACpD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,wBACA,4IACA,EAAE,OAAO,GAAE,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACjD,SAAS,YAAY;AAAA,IACpB,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,UAAU,KAAK;AAAA,IAC1D,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,sBACA,6QACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,WAAW,GACT,OAAO,EACP,MAAM,iBAAiB,EACvB,SAAS,EACT,SACA,yEACD;AAAA,EACF,GACA,SAAS,MAAM,gBAAgB;AAAA,IAC9B,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,SAAS,MAAM,SAAS;AAAA,IACnE,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,oBACA,kCACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,UAAU,EAAE,UAAU,OAAO,IAAI;AAAA,IACvC,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,qBAAqB,QAAQ,CAAC;AAAA,IAC/D;AAAA,GAEF;AAAA,EAEA,WACC,QACA,qBACA,mEACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,OAAO,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,EAC7D,GACA,SAAS,MAAM,YAAY;AAAA,IAC1B,MAAM,SAAS,QAAQ,KAAK,MAAM,KAAK,IAAI;AAAA,IAC3C,MAAM,SAAS,MAAM,UAAU,EAAE,UAAU,QAAQ,MAAM,MAAM;AAAA,IAC/D,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,mBACA,6BACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,UAAU,EAAE,UAAU,MAAM,IAAI;AAAA,IACtC,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,oBAAoB,QAAQ,CAAC;AAAA,IAC9D;AAAA,GAEF;AAAA,EAEA,WACC,QACA,oBACA,6BACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,UAAU,EAAE,UAAU,OAAO,IAAI;AAAA,IACvC,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,qBAAqB,QAAQ,CAAC;AAAA,IAC/D;AAAA,GAEF;AAAA,EAEA,WASC,QACA,sBACA,gOACA;AAAA,IACC,MAAM,GACJ,OAAO,EACP,MAAM,mBAAmB,EACzB,SAAS,oCAAoC;AAAA,IAC/C,SAAS,GACP,mBAAmB,QAAQ;AAAA,MAC3B,GAAE,OAAO;AAAA,QACR,MAAM,GAAE,QAAQ,OAAO;AAAA,QACvB,YAAY,GAAE,OAAO,EAAE,SAAS;AAAA,MACjC,CAAC;AAAA,MACD,GAAE,OAAO;AAAA,QACR,MAAM,GAAE,QAAQ,UAAU;AAAA,QAC1B,MAAM,GAAE,OAAO,EAAE,IAAI,CAAC;AAAA,QACtB,UAAU,GAAE,OAAO,EAAE,SAAS;AAAA,MAC/B,CAAC;AAAA,MACD,GAAE,OAAO,EAAE,MAAM,GAAE,QAAQ,QAAQ,EAAE,CAAC;AAAA,IACvC,CAAC,EACA,SAAS,eAAe;AAAA,IAC1B,OAAO,GACL,MAAM,GAAE,KAAK,CAAC,OAAO,SAAS,MAAM,SAAS,CAAC,CAAC,EAC/C,SAAS,sDAAsD;AAAA,IACjE,gBAAgB,GACd,KAAK,CAAC,WAAW,SAAS,SAAS,WAAW,UAAU,CAAC,EACzD,SAAS,EACT,SAAS,oDAAoD;AAAA,EAChE,GACA,SAAS,MAAM,SAAS,OAAO,qBAAqB;AAAA,IACnD,MAAM,OAAO,qBAAqB;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC;AAAA,IACD,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,CAAC,EAAE;AAAA,GAEnD;AAAA,EAEA,WACC,QACA,oBACA,4NACA;AAAA,IACC,MAAM,GACJ,OAAO,EACP,SAAS,2DAA2D;AAAA,IACtE,iBAAiB,GACf,OAAO,EACP,MAAM,iBAAiB,EACvB,SAAS,EACT,SACA,wFACD;AAAA,IACD,QAAQ,GACN,QAAQ,EACR,SAAS,EACT,SAAS,qDAAoD;AAAA,EAChE,GACA,SAAS,MAAM,iBAAiB,aAAa;AAAA,IAC5C,IAAI;AAAA,IACJ,IAAI;AAAA,MACH,UAAU,MAAM,mBAAmB,IAAI;AAAA,MACtC,OAAO,KAAK;AAAA,MACb,OAAO;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,UACR;AAAA,YACC,MAAM;AAAA,YACN,MAAM,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,UACtD;AAAA,QACD;AAAA,MACD;AAAA;AAAA,IAGD,MAAM,OAAO;AAAA,MACZ,MAAM,QAAQ;AAAA,MACd,SAAS,QAAQ;AAAA,MACjB,aAAa,QAAQ;AAAA,MACrB,YAAY,QAAQ;AAAA,MACpB,SAAS,QAAQ;AAAA,MACjB,SAAS,QAAQ;AAAA,MACjB;AAAA,IACD;AAAA,IACA,IAAI;AAAA,MACH,MAAM,SAAS,SACZ,MAAM,UAAU,EAAE,UAAU,OAAO,KAAK,MAAM,QAAQ,KAAK,CAAC,IAC5D,MAAM,UAAU,EAAE,UAAU,OAAO,IAAI;AAAA,MAC1C,OAAO;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,MAClE;AAAA,MACC,OAAO,KAAK;AAAA,MACb,IAAI,eAAe,sBAAsB;AAAA,QACxC,OAAO;AAAA,UACN,SAAS;AAAA,UACT,SAAS;AAAA,YACR;AAAA,cACC,MAAM;AAAA,cACN,MAAM,KAAK,UACV;AAAA,gBACC,OAAO,IAAI;AAAA,gBACX,MAAM;AAAA,gBACN,gBAAgB,IAAI;AAAA,gBACpB,iBAAiB,IAAI;AAAA,cACtB,GACA,MACA,CACD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MACA,MAAM;AAAA;AAAA,GAGT;AAAA,EAEA,WACC,QACA,kBACA,4EACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,QAAQ,GACN,KAAK,CAAC,WAAW,aAAa,UAAU,WAAW,CAAC,EACpD,SAAS,EACT,SAAS,sBAAsB;AAAA,IACjC,OAAO,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iCAAiC;AAAA,EACxE,GACA,SAAS,MAAM,QAAQ,YAAY;AAAA,IAClC,QAAQ,SAAS,MAAM,UAAU,EAAE,UAAU,SAAS,MAAM;AAAA,MAC3D;AAAA,MAMA;AAAA,IACD,CAAC;AAAA,IACD,OAAO;AAAA,MACN,SAAS;AAAA,QACR;AAAA,UACC,MAAM;AAAA,UACN,MAAM,KAAK,UAAU,MAAM,MAAM,CAAC;AAAA,QACnC;AAAA,MACD;AAAA,IACD;AAAA,GAEF;AAAA;;;AR1eD,IAAM,aAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AACxD,IAAM,MAAM,KAAK,MAChB,aAAa,KAAK,YAAW,iBAAiB,GAAG,OAAO,CACzD;AAEO,SAAS,YAAY,GAAc;AAAA,EACzC,MAAM,SAAS,IAAI,UAAU;AAAA,IAC5B,MAAM;AAAA,IACN,SAAS,IAAI;AAAA,EACd,CAAC;AAAA,EAED,sBAAsB,MAAM;AAAA,EAC5B,sBAAsB,MAAM;AAAA,EAC5B,sBAAsB,MAAM;AAAA,EAC5B,qBAAqB,MAAM;AAAA,EAC3B,kBAAkB,MAAM;AAAA,EAExB,OAAO;AAAA;;;ADvBR,IAAM,SAAS,aAAa;AAC5B,IAAM,YAAY,IAAI;AACtB,MAAM,OAAO,QAAQ,SAAS;",
|
|
17
|
+
"debugId": "A34BDC5D0D801C0D64756E2164756E21",
|
|
18
18
|
"names": []
|
|
19
19
|
}
|
package/dist/index.js
CHANGED
|
@@ -83,11 +83,26 @@ function registerResources(server) {
|
|
|
83
83
|
// src/lib/client.ts
|
|
84
84
|
import { SecondLayer } from "@secondlayer/sdk";
|
|
85
85
|
var instance = null;
|
|
86
|
+
var legacyEnvWarned = false;
|
|
87
|
+
function readServiceKey() {
|
|
88
|
+
const canonical = process.env.SL_SERVICE_KEY;
|
|
89
|
+
if (canonical)
|
|
90
|
+
return canonical;
|
|
91
|
+
const legacy = process.env.SECONDLAYER_API_KEY;
|
|
92
|
+
if (legacy) {
|
|
93
|
+
if (!legacyEnvWarned) {
|
|
94
|
+
legacyEnvWarned = true;
|
|
95
|
+
console.error("[mcp] SECONDLAYER_API_KEY is deprecated — use SL_SERVICE_KEY going forward.");
|
|
96
|
+
}
|
|
97
|
+
return legacy;
|
|
98
|
+
}
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
86
101
|
function getClient() {
|
|
87
102
|
if (!instance) {
|
|
88
|
-
const apiKey =
|
|
103
|
+
const apiKey = readServiceKey();
|
|
89
104
|
if (!apiKey) {
|
|
90
|
-
throw new Error("
|
|
105
|
+
throw new Error("SL_SERVICE_KEY environment variable is required. " + "Get your key from `sl instance info` or the dashboard.");
|
|
91
106
|
}
|
|
92
107
|
const baseUrl = process.env.SECONDLAYER_API_URL;
|
|
93
108
|
instance = new SecondLayer({
|
|
@@ -99,9 +114,9 @@ function getClient() {
|
|
|
99
114
|
return instance;
|
|
100
115
|
}
|
|
101
116
|
async function apiRequest(method, path, body) {
|
|
102
|
-
const apiKey =
|
|
117
|
+
const apiKey = readServiceKey();
|
|
103
118
|
if (!apiKey)
|
|
104
|
-
throw new Error("
|
|
119
|
+
throw new Error("SL_SERVICE_KEY required");
|
|
105
120
|
const baseUrl = process.env.SECONDLAYER_API_URL || "https://api.secondlayer.tools";
|
|
106
121
|
const res = await fetch(`${baseUrl}${path}`, {
|
|
107
122
|
method,
|
|
@@ -625,8 +640,8 @@ function createServer() {
|
|
|
625
640
|
});
|
|
626
641
|
registerScaffoldTools(server);
|
|
627
642
|
registerSubgraphTools(server);
|
|
628
|
-
registerAccountTools(server);
|
|
629
643
|
registerWorkflowTools(server);
|
|
644
|
+
registerAccountTools(server);
|
|
630
645
|
registerResources(server);
|
|
631
646
|
return server;
|
|
632
647
|
}
|
|
@@ -634,5 +649,5 @@ export {
|
|
|
634
649
|
createServer
|
|
635
650
|
};
|
|
636
651
|
|
|
637
|
-
//# debugId=
|
|
652
|
+
//# debugId=319A017A7800ADD064756E2164756E21
|
|
638
653
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/server.ts", "../src/resources.ts", "../src/lib/client.ts", "../src/lib/format.ts", "../src/lib/tool.ts", "../src/tools/account.ts", "../src/tools/scaffold.ts", "../src/tools/subgraphs.ts", "../src/tools/workflows.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { registerResources } from \"./resources.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWorkflowTools } from \"./tools/workflows.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport function createServer(): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\n\tregisterScaffoldTools(server);\n\tregisterSubgraphTools(server);\n\
|
|
5
|
+
"import { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { registerResources } from \"./resources.ts\";\nimport { registerAccountTools } from \"./tools/account.ts\";\nimport { registerScaffoldTools } from \"./tools/scaffold.ts\";\nimport { registerSubgraphTools } from \"./tools/subgraphs.ts\";\nimport { registerWorkflowTools } from \"./tools/workflows.ts\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst pkg = JSON.parse(\n\treadFileSync(join(__dirname, \"../package.json\"), \"utf-8\"),\n);\n\nexport function createServer(): McpServer {\n\tconst server = new McpServer({\n\t\tname: \"secondlayer\",\n\t\tversion: pkg.version,\n\t});\n\n\tregisterScaffoldTools(server);\n\tregisterSubgraphTools(server);\n\tregisterWorkflowTools(server);\n\tregisterAccountTools(server);\n\tregisterResources(server);\n\n\treturn server;\n}\n",
|
|
6
6
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\n/** Filter types for blockchain events — SubgraphFilter vocabulary. */\nconst FILTERS_REFERENCE = [\n\t{\n\t\ttype: \"stx_transfer\",\n\t\tfields: [\"sender\", \"recipient\", \"minAmount\", \"maxAmount\"],\n\t},\n\t{ type: \"stx_mint\", fields: [\"recipient\", \"minAmount\"] },\n\t{ type: \"stx_burn\", fields: [\"sender\", \"minAmount\"] },\n\t{ type: \"stx_lock\", fields: [\"lockedAddress\", \"minAmount\"] },\n\t{\n\t\ttype: \"ft_transfer\",\n\t\tfields: [\n\t\t\t\"sender\",\n\t\t\t\"recipient\",\n\t\t\t\"assetIdentifier\",\n\t\t\t\"minAmount\",\n\t\t\t\"maxAmount\",\n\t\t],\n\t},\n\t{ type: \"ft_mint\", fields: [\"recipient\", \"assetIdentifier\", \"minAmount\"] },\n\t{ type: \"ft_burn\", fields: [\"sender\", \"assetIdentifier\", \"minAmount\"] },\n\t{\n\t\ttype: \"nft_transfer\",\n\t\tfields: [\"sender\", \"recipient\", \"assetIdentifier\", \"tokenId\"],\n\t},\n\t{ type: \"nft_mint\", fields: [\"recipient\", \"assetIdentifier\", \"tokenId\"] },\n\t{ type: \"nft_burn\", fields: [\"sender\", \"assetIdentifier\", \"tokenId\"] },\n\t{ type: \"contract_call\", fields: [\"contract\", \"function\"] },\n\t{ type: \"contract_deploy\", fields: [\"contract\"] },\n\t{ type: \"print_event\", fields: [\"contract\", \"event\", \"contains\"] },\n];\n\nconst COLUMN_TYPES = [\n\t{\n\t\ttype: \"uint\",\n\t\tsqlType: \"bigint\",\n\t\tdescription: \"Unsigned integer (Clarity uint)\",\n\t},\n\t{\n\t\ttype: \"int\",\n\t\tsqlType: \"bigint\",\n\t\tdescription: \"Signed integer (Clarity int)\",\n\t},\n\t{ type: \"text\", sqlType: \"text\", description: \"UTF-8 string\" },\n\t{\n\t\ttype: \"principal\",\n\t\tsqlType: \"text\",\n\t\tdescription: \"Stacks address (standard or contract)\",\n\t},\n\t{ type: \"bool\", sqlType: \"boolean\", description: \"Boolean value\" },\n\t{ type: \"json\", sqlType: \"jsonb\", description: \"Arbitrary JSON data\" },\n\t{\n\t\toptions: [\"nullable\", \"indexed\", \"search\"],\n\t\tdescription:\n\t\t\t\"Column options: nullable allows NULL, indexed creates a B-tree index, search enables full-text search\",\n\t},\n];\n\nexport function registerResources(server: McpServer) {\n\tserver.resource(\n\t\t\"filters\",\n\t\t\"secondlayer://filters\",\n\t\t{ description: \"Event filter types and their available fields\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://filters\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(FILTERS_REFERENCE, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n\n\tserver.resource(\n\t\t\"column-types\",\n\t\t\"secondlayer://column-types\",\n\t\t{ description: \"Subgraph column types, SQL mappings, and options\" },\n\t\tasync () => ({\n\t\t\tcontents: [\n\t\t\t\t{\n\t\t\t\t\turi: \"secondlayer://column-types\",\n\t\t\t\t\tmimeType: \"application/json\",\n\t\t\t\t\ttext: JSON.stringify(COLUMN_TYPES, null, 2),\n\t\t\t\t},\n\t\t\t],\n\t\t}),\n\t);\n}\n",
|
|
7
|
-
"import { SecondLayer } from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\n\n/** Lazy SDK singleton from SECONDLAYER_API_KEY env var. */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey =
|
|
7
|
+
"import { SecondLayer } from \"@secondlayer/sdk\";\n\nlet instance: SecondLayer | null = null;\nlet legacyEnvWarned = false;\n\n/**\n * Read the tenant service key from env. `SL_SERVICE_KEY` is canonical;\n * `SECONDLAYER_API_KEY` is accepted as a deprecated alias and logs once\n * per process so users notice without breaking their setup.\n */\nfunction readServiceKey(): string | undefined {\n\tconst canonical = process.env.SL_SERVICE_KEY;\n\tif (canonical) return canonical;\n\tconst legacy = process.env.SECONDLAYER_API_KEY;\n\tif (legacy) {\n\t\tif (!legacyEnvWarned) {\n\t\t\tlegacyEnvWarned = true;\n\t\t\tconsole.error(\n\t\t\t\t\"[mcp] SECONDLAYER_API_KEY is deprecated — use SL_SERVICE_KEY going forward.\",\n\t\t\t);\n\t\t}\n\t\treturn legacy;\n\t}\n\treturn undefined;\n}\n\n/** Lazy SDK singleton from SL_SERVICE_KEY (or SECONDLAYER_API_KEY) env var. */\nexport function getClient(): SecondLayer {\n\tif (!instance) {\n\t\tconst apiKey = readServiceKey();\n\t\tif (!apiKey) {\n\t\t\tthrow new Error(\n\t\t\t\t\"SL_SERVICE_KEY environment variable is required. \" +\n\t\t\t\t\t\"Get your key from `sl instance info` or the dashboard.\",\n\t\t\t);\n\t\t}\n\t\tconst baseUrl = process.env.SECONDLAYER_API_URL;\n\t\tinstance = new SecondLayer({\n\t\t\tapiKey,\n\t\t\torigin: \"mcp\",\n\t\t\t...(baseUrl ? { baseUrl } : {}),\n\t\t});\n\t}\n\treturn instance;\n}\n\n/** Raw fetch helper for API endpoints not covered by the SDK. */\nexport async function apiRequest<T>(\n\tmethod: string,\n\tpath: string,\n\tbody?: unknown,\n): Promise<T> {\n\tconst apiKey = readServiceKey();\n\tif (!apiKey) throw new Error(\"SL_SERVICE_KEY required\");\n\tconst baseUrl =\n\t\tprocess.env.SECONDLAYER_API_URL || \"https://api.secondlayer.tools\";\n\tconst res = await fetch(`${baseUrl}${path}`, {\n\t\tmethod,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\tAuthorization: `Bearer ${apiKey}`,\n\t\t},\n\t\tbody: body ? JSON.stringify(body) : undefined,\n\t});\n\tif (!res.ok) {\n\t\tconst text = await res.text().catch(() => \"\");\n\t\tthrow Object.assign(new Error(text || `HTTP ${res.status}`), {\n\t\t\tstatus: res.status,\n\t\t});\n\t}\n\tif (res.status === 204) return undefined as T;\n\treturn res.json() as Promise<T>;\n}\n",
|
|
8
8
|
"/** Summarize a subgraph for list responses. */\nexport function formatSubgraphSummary(s: {\n\tname: string;\n\tstatus: string;\n\ttables: string[] | Record<string, unknown>;\n\tlastProcessedBlock: number;\n}) {\n\treturn {\n\t\tname: s.name,\n\t\tstatus: s.status,\n\t\ttables: Array.isArray(s.tables) ? s.tables : Object.keys(s.tables),\n\t\tlastProcessedBlock: s.lastProcessedBlock,\n\t};\n}\n\n/** Cap array length and return truncation metadata. */\nexport function withCap<T>(\n\titems: T[],\n\tcap: number,\n): { items: T[]; truncated: boolean; total: number } {\n\treturn {\n\t\titems: items.slice(0, cap),\n\t\ttruncated: items.length > cap,\n\t\ttotal: items.length,\n\t};\n}\n\n/** Build MCP text response with JSON-serialized payload. */\nexport function jsonResponse(\n\tdata: unknown,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text: JSON.stringify(data, null, 2) }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n\n/** Build MCP text response with plain text payload. */\nexport function textResponse(\n\ttext: string,\n\tisError?: boolean,\n): { content: Array<{ type: \"text\"; text: string }>; isError?: boolean } {\n\treturn {\n\t\tcontent: [{ type: \"text\", text }],\n\t\t...(isError && { isError: true }),\n\t};\n}\n",
|
|
9
9
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\n\ninterface ToolResult {\n\tcontent: Array<{ type: \"text\"; text: string }>;\n\tisError?: boolean;\n}\n\n/**\n * Type-safe wrapper around McpServer.tool() that avoids TS2589.\n *\n * The MCP SDK's Zod-generic `tool()` signature recurses past TypeScript's\n * instantiation depth limit when schemas contain discriminated unions or\n * nested optionals. This helper isolates the boundary cast to one place\n * so tool files stay fully typed via the explicit `T` generic.\n *\n * Schema is typed as Record<string, unknown> to prevent TypeScript from\n * resolving the deeply recursive ZodRawShapeCompat constraint. Zod still\n * validates at runtime.\n */\nexport function defineTool<T>(\n\tserver: McpServer,\n\tname: string,\n\tdescription: string,\n\tschema: Record<string, unknown>,\n\thandler: (args: T) => Promise<ToolResult> | ToolResult,\n): void {\n\tconst wrappedHandler = async (args: T): Promise<ToolResult> => {\n\t\ttry {\n\t\t\treturn await handler(args);\n\t\t} catch (err: unknown) {\n\t\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\t\tconst status =\n\t\t\t\terr instanceof Error && \"status\" in err ? (err as any).status : 0;\n\t\t\tconst type =\n\t\t\t\tstatus === 401\n\t\t\t\t\t? \"unauthorized\"\n\t\t\t\t\t: status === 404\n\t\t\t\t\t\t? \"not_found\"\n\t\t\t\t\t\t: status === 429\n\t\t\t\t\t\t\t? \"rate_limited\"\n\t\t\t\t\t\t\t: status >= 500\n\t\t\t\t\t\t\t\t? \"server_error\"\n\t\t\t\t\t\t\t\t: \"error\";\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify({ error: { type, status, message } }),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tisError: true,\n\t\t\t};\n\t\t}\n\t};\n\t(server.tool as Function)(name, description, schema, wrappedHandler);\n}\n",
|
|
10
10
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { apiRequest } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerAccountTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"account_whoami\",\n\t\t\"Show the authenticated account's email and plan.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await apiRequest<{ email: string; plan: string }>(\n\t\t\t\t\"GET\",\n\t\t\t\t\"/api/accounts/me\",\n\t\t\t);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n}\n",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { bundleSubgraphCode } from \"@secondlayer/bundler\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { formatSubgraphSummary, withCap } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerSubgraphTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"subgraphs_list\",\n\t\t\"List all deployed subgraphs. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await getClient().subgraphs.list();\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(data.map(formatSubgraphSummary), null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_get\",\n\t\t\"Get full details of a subgraph including schema, health, and table columns.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().subgraphs.get(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(detail, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\ttable: string;\n\t\tfilters?: Record<string, string>;\n\t\tsort?: string;\n\t\torder?: string;\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tfields?: string;\n\t\tcount?: boolean;\n\t}>(\n\t\tserver,\n\t\t\"subgraphs_query\",\n\t\t'Query rows from a subgraph table (max 200 rows). Filters support operators: \"amount.gte\": \"1000\", \"sender.neq\": \"SP...\", \"name.like\": \"%token%\". Available operators: eq, neq, gt, gte, lt, lte, like.',\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\n\t\t\ttable: z.string().describe(\"Table name\"),\n\t\t\tfilters: z\n\t\t\t\t.record(z.string(), z.string())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Column filters — plain values or with operators (e.g. {\"amount.gte\": \"1000\", \"sender\": \"SP...\"})',\n\t\t\t\t),\n\t\t\tsort: z.string().optional().describe(\"Column to sort by\"),\n\t\t\torder: z.enum([\"asc\", \"desc\"]).optional().describe(\"Sort order\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.max(200)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max rows (default 50, max 200)\"),\n\t\t\toffset: z.number().optional().describe(\"Offset for pagination\"),\n\t\t\tfields: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Comma-separated column list to return (e.g. \"sender,amount\")',\n\t\t\t\t),\n\t\t\tcount: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"If true, return row count instead of rows\"),\n\t\t},\n\t\tasync ({\n\t\t\tname,\n\t\t\ttable,\n\t\t\tfilters,\n\t\t\tsort,\n\t\t\torder,\n\t\t\tlimit,\n\t\t\toffset,\n\t\t\tfields,\n\t\t\tcount,\n\t\t}) => {\n\t\t\tif (count) {\n\t\t\t\tconst result = await getClient().subgraphs.queryTableCount(\n\t\t\t\t\tname,\n\t\t\t\t\ttable,\n\t\t\t\t\t{ filters, sort, order },\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst rows = await getClient().subgraphs.queryTable(name, table, {\n\t\t\t\tfilters,\n\t\t\t\tsort,\n\t\t\t\torder,\n\t\t\t\tlimit: limit ?? 50,\n\t\t\t\toffset,\n\t\t\t\tfields,\n\t\t\t});\n\t\t\tconst cap = limit ?? 50;\n\t\t\tconst result = withCap(\n\t\t\t\trows as Record<string, unknown>[],\n\t\t\t\tcap > 200 ? 200 : cap,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; fromBlock?: number; toBlock?: number }>(\n\t\tserver,\n\t\t\"subgraphs_reindex\",\n\t\t\"Reindex a subgraph from a specific block range.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\n\t\t\tfromBlock: z\n\t\t\t\t.number()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Start block (defaults to beginning)\"),\n\t\t\ttoBlock: z.number().optional().describe(\"End block (defaults to latest)\"),\n\t\t},\n\t\tasync ({ name, fromBlock, toBlock }) => {\n\t\t\tconst result = await getClient().subgraphs.reindex(name, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_delete\",\n\t\t\"Delete a subgraph permanently.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await getClient().subgraphs.delete(name);\n\t\t\treturn { content: [{ type: \"text\", text: result.message }] };\n\t\t},\n\t);\n\n\tdefineTool<{ code: string; reindex?: boolean }>(\n\t\tserver,\n\t\t\"subgraphs_deploy\",\n\t\t\"Deploy a subgraph from TypeScript code. Pass the full defineSubgraph() source — it will be bundled, validated, and deployed.\",\n\t\t{\n\t\t\tcode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"TypeScript source code containing a defineSubgraph() call\"),\n\t\t\treindex: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Force reindex on breaking schema change (drops and rebuilds all data)\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ code, reindex }) => {\n\t\t\tconst bundled = await bundleSubgraphCode(code);\n\t\t\tconst result = await getClient().subgraphs.deploy({\n\t\t\t\tname: bundled.name,\n\t\t\t\tversion: bundled.version,\n\t\t\t\tdescription: bundled.description,\n\t\t\t\tsources: bundled.sources,\n\t\t\t\tschema: bundled.schema,\n\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\tsourceCode: code,\n\t\t\t\treindex,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_read_source\",\n\t\t\"Fetch the deployed TypeScript source of a subgraph (plus its stored version). Returns a readOnly payload for subgraphs deployed before source capture — in that case the caller should redeploy via CLI before editing.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst source = await getClient().subgraphs.getSource(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(source, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n}\n",
|
|
13
13
|
"import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { bundleWorkflowCode } from \"@secondlayer/bundler\";\nimport {\n\ttype ScaffoldDeliveryTarget,\n\ttype ScaffoldStepKind,\n\tgenerateWorkflowCode,\n} from \"@secondlayer/scaffold\";\nimport { VersionConflictError } from \"@secondlayer/sdk\";\nimport { createPatch } from \"diff\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\nexport function registerWorkflowTools(server: McpServer) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_list\",\n\t\t\"List all workflows. Returns summary fields only.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { workflows } = await getClient().workflows.list();\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(workflows, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_get\",\n\t\t\"Get full details of a workflow by name.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst detail = await getClient().workflows.get(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(detail, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_get_definition\",\n\t\t\"Return the deployed TypeScript source of a workflow plus its stored version. Returns `sourceCode: null` + `readOnly: true` for workflows deployed before source capture.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst source = await getClient().workflows.getSource(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(source, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\tproposedCode: string;\n\t\texpectedVersion?: string;\n\t}>(\n\t\tserver,\n\t\t\"workflows_propose_edit\",\n\t\t\"Validate a proposed edit WITHOUT deploying. Fetches the current stored source, bundles the proposed source, computes a unified diff, and returns everything for review. Use this when you want to show the user a diff before committing — pair it with workflows_deploy(expectedVersion=...) to persist.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tproposedCode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"New TypeScript source — must compile and validate.\"),\n\t\t\texpectedVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Version the proposer is editing from (for audit).\"),\n\t\t},\n\t\tasync ({ name, proposedCode, expectedVersion }) => {\n\t\t\tconst current = await getClient().workflows.getSource(name);\n\t\t\tif (current.sourceCode === null) {\n\t\t\t\treturn {\n\t\t\t\t\tisError: true,\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\terror:\n\t\t\t\t\t\t\t\t\t\t\"Workflow has no stored source. Redeploy via CLI first.\",\n\t\t\t\t\t\t\t\t\treadOnly: true,\n\t\t\t\t\t\t\t\t\tversion: current.version,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet bundleValid = false;\n\t\t\tlet validation: { name: string; triggerType: string } | { error: string };\n\t\t\tlet bundleSize = 0;\n\t\t\ttry {\n\t\t\t\tconst bundled = await bundleWorkflowCode(proposedCode);\n\t\t\t\tbundleValid = true;\n\t\t\t\tbundleSize = Buffer.byteLength(bundled.handlerCode, \"utf8\");\n\t\t\t\tvalidation = {\n\t\t\t\t\tname: bundled.name,\n\t\t\t\t\ttriggerType: bundled.trigger.type,\n\t\t\t\t};\n\t\t\t} catch (err) {\n\t\t\t\tvalidation = {\n\t\t\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst diffText = createPatch(\n\t\t\t\t`${name}.ts`,\n\t\t\t\tcurrent.sourceCode,\n\t\t\t\tproposedCode,\n\t\t\t\t`v${current.version}`,\n\t\t\t\t\"proposed\",\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcurrentVersion: current.version,\n\t\t\t\t\t\t\t\texpectedVersion,\n\t\t\t\t\t\t\t\tcurrentSource: current.sourceCode,\n\t\t\t\t\t\t\t\tproposedSource: proposedCode,\n\t\t\t\t\t\t\t\tdiffText,\n\t\t\t\t\t\t\t\tbundleValid,\n\t\t\t\t\t\t\t\tvalidation,\n\t\t\t\t\t\t\t\tbundleSize,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\trunId: string;\n\t\tlimit?: number;\n\t\ttimeoutMs?: number;\n\t}>(\n\t\tserver,\n\t\t\"workflows_tail_run\",\n\t\t\"Tail a workflow run via SSE and return a compacted log. Resolves as soon as the run completes, `limit` events are collected, or `timeoutMs` elapses (default 60s). MCP is not streaming-first — use this for short-lived follow-ups, not long tails.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\trunId: z.string().describe(\"Run id\"),\n\t\t\tlimit: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.positive()\n\t\t\t\t.max(200)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Max step events to collect (default 50)\"),\n\t\t\ttimeoutMs: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.positive()\n\t\t\t\t.max(5 * 60 * 1000)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Hard timeout in ms (default 60000, max 300000)\"),\n\t\t},\n\t\tasync ({ name, runId, limit, timeoutMs }) => {\n\t\t\tconst cap = limit ?? 50;\n\t\t\tconst deadline = timeoutMs ?? 60_000;\n\n\t\t\tconst events: Array<Record<string, unknown>> = [];\n\t\t\tlet finalStatus: string | null = null;\n\t\t\tlet stoppedBy: \"done\" | \"limit\" | \"timeout\" = \"timeout\";\n\n\t\t\tconst controller = new AbortController();\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tstoppedBy = \"timeout\";\n\t\t\t\tcontroller.abort();\n\t\t\t}, deadline);\n\n\t\t\ttry {\n\t\t\t\tawait getClient().workflows.streamRun(\n\t\t\t\t\tname,\n\t\t\t\t\trunId,\n\t\t\t\t\t(event) => {\n\t\t\t\t\t\tif (event.type === \"step\") {\n\t\t\t\t\t\t\tevents.push(event.step as unknown as Record<string, unknown>);\n\t\t\t\t\t\t\tif (events.length >= cap) {\n\t\t\t\t\t\t\t\tstoppedBy = \"limit\";\n\t\t\t\t\t\t\t\tcontroller.abort();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (event.type === \"done\") {\n\t\t\t\t\t\t\tfinalStatus = event.done.status;\n\t\t\t\t\t\t\tstoppedBy = \"done\";\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tcontroller.signal,\n\t\t\t\t);\n\t\t\t} catch (err) {\n\t\t\t\tif (!(err instanceof Error) || err.name !== \"AbortError\") {\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tclearTimeout(timer);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\trunId,\n\t\t\t\t\t\t\t\tfinalStatus,\n\t\t\t\t\t\t\t\tstoppedBy,\n\t\t\t\t\t\t\t\teventCount: events.length,\n\t\t\t\t\t\t\t\tevents,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"workflows_pause_all\",\n\t\t\"Pause ALL active workflows for the authenticated account. Irreversible only by calling pause/resume per workflow. Returns the list of affected workflows.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst result = await getClient().workflows.pauseAll();\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ runId: string }>(\n\t\tserver,\n\t\t\"workflows_cancel_run\",\n\t\t\"Cancel an in-flight workflow run. Marks the run as cancelled and removes any pending queue entry. No-ops if the run is already terminal.\",\n\t\t{ runId: z.string().describe(\"Run id to cancel\") },\n\t\tasync ({ runId }) => {\n\t\t\tconst result = await getClient().workflows.cancelRun(runId);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; toVersion?: string }>(\n\t\tserver,\n\t\t\"workflows_rollback\",\n\t\t\"Roll a workflow back to a prior version. The restored handler is re-published as a NEW version (audit trail), so no history is lost. Pass toVersion to pick a specific bundle; omit to roll back to the immediate previous version on disk. Last 3 versions are retained.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\ttoVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Target version to restore. Must be one of the retained bundles on disk.\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ name, toVersion }) => {\n\t\t\tconst result = await getClient().workflows.rollback(name, toVersion);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_delete\",\n\t\t\"Delete a workflow permanently.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.delete(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Deleted workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; input?: string }>(\n\t\tserver,\n\t\t\"workflows_trigger\",\n\t\t\"Trigger a workflow run. Optionally pass input as a JSON string.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tinput: z.string().optional().describe(\"Input as JSON string\"),\n\t\t},\n\t\tasync ({ name, input }) => {\n\t\t\tconst parsed = input ? JSON.parse(input) : undefined;\n\t\t\tconst result = await getClient().workflows.trigger(name, parsed);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_pause\",\n\t\t\"Pause a running workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.pause(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Paused workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"workflows_resume\",\n\t\t\"Resume a paused workflow.\",\n\t\t{ name: z.string().describe(\"Workflow name\") },\n\t\tasync ({ name }) => {\n\t\t\tawait getClient().workflows.resume(name);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: `Resumed workflow \"${name}\"` }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\ttrigger:\n\t\t\t| { type: \"event\"; filterType?: string }\n\t\t\t| { type: \"schedule\"; cron: string; timezone?: string }\n\t\t\t| { type: \"manual\" };\n\t\tsteps: ScaffoldStepKind[];\n\t\tdeliveryTarget?: ScaffoldDeliveryTarget;\n\t}>(\n\t\tserver,\n\t\t\"workflows_scaffold\",\n\t\t\"Generate a compilable defineWorkflow() skeleton from a typed intent. Returns the TypeScript source; pass it to workflows_deploy to persist. Placeholders inside the source must be filled in before running a real workflow.\",\n\t\t{\n\t\t\tname: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^[a-z][a-z0-9-]*$/)\n\t\t\t\t.describe(\"Workflow name (lowercase, hyphens)\"),\n\t\t\ttrigger: z\n\t\t\t\t.discriminatedUnion(\"type\", [\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.literal(\"event\"),\n\t\t\t\t\t\tfilterType: z.string().optional(),\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.literal(\"schedule\"),\n\t\t\t\t\t\tcron: z.string().min(1),\n\t\t\t\t\t\ttimezone: z.string().optional(),\n\t\t\t\t\t}),\n\t\t\t\t\tz.object({ type: z.literal(\"manual\") }),\n\t\t\t\t])\n\t\t\t\t.describe(\"Trigger shape\"),\n\t\t\tsteps: z\n\t\t\t\t.array(z.enum([\"run\", \"query\", \"ai\", \"deliver\"]))\n\t\t\t\t.describe(\"Ordered list of step kinds to include in the handler\"),\n\t\t\tdeliveryTarget: z\n\t\t\t\t.enum([\"webhook\", \"slack\", \"email\", \"discord\", \"telegram\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Delivery target used when steps includes `deliver`\"),\n\t\t},\n\t\tasync ({ name, trigger, steps, deliveryTarget }) => {\n\t\t\tconst code = generateWorkflowCode({\n\t\t\t\tname,\n\t\t\t\ttrigger,\n\t\t\t\tsteps,\n\t\t\t\tdeliveryTarget,\n\t\t\t});\n\t\t\treturn { content: [{ type: \"text\", text: code }] };\n\t\t},\n\t);\n\n\tdefineTool<{ code: string; expectedVersion?: string; dryRun?: boolean }>(\n\t\tserver,\n\t\t\"workflows_deploy\",\n\t\t\"Deploy a workflow from TypeScript source. Pass the full defineWorkflow() source — it will be bundled, validated, and deployed. Use expectedVersion for optimistic concurrency, or dryRun to validate without persisting.\",\n\t\t{\n\t\t\tcode: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"TypeScript source code containing a defineWorkflow() call\"),\n\t\t\texpectedVersion: z\n\t\t\t\t.string()\n\t\t\t\t.regex(/^\\d+\\.\\d+\\.\\d+$/)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Stored version the client expects (major.minor.patch). Server returns 409 on mismatch.\",\n\t\t\t\t),\n\t\t\tdryRun: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"If true, validate and bundle only — do not persist.\"),\n\t\t},\n\t\tasync ({ code, expectedVersion, dryRun }) => {\n\t\t\tlet bundled: Awaited<ReturnType<typeof bundleWorkflowCode>>;\n\t\t\ttry {\n\t\t\t\tbundled = await bundleWorkflowCode(code);\n\t\t\t} catch (err) {\n\t\t\t\treturn {\n\t\t\t\t\tisError: true,\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: err instanceof Error ? err.message : String(err),\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst base = {\n\t\t\t\tname: bundled.name,\n\t\t\t\ttrigger: bundled.trigger as unknown as Record<string, unknown>,\n\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\tsourceCode: bundled.sourceCode,\n\t\t\t\tretries: bundled.retries as Record<string, unknown> | undefined,\n\t\t\t\ttimeout: bundled.timeout,\n\t\t\t\texpectedVersion,\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst result = dryRun\n\t\t\t\t\t? await getClient().workflows.deploy({ ...base, dryRun: true })\n\t\t\t\t\t: await getClient().workflows.deploy(base);\n\t\t\t\treturn {\n\t\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result, null, 2) }],\n\t\t\t\t};\n\t\t\t} catch (err) {\n\t\t\t\tif (err instanceof VersionConflictError) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tisError: true,\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\t\ttext: JSON.stringify(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\terror: err.message,\n\t\t\t\t\t\t\t\t\t\tcode: \"VERSION_CONFLICT\",\n\t\t\t\t\t\t\t\t\t\tcurrentVersion: err.currentVersion,\n\t\t\t\t\t\t\t\t\t\texpectedVersion: err.expectedVersion,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; status?: string; limit?: number }>(\n\t\tserver,\n\t\t\"workflows_runs\",\n\t\t\"List runs for a workflow. Optionally filter by status and limit results.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Workflow name\"),\n\t\t\tstatus: z\n\t\t\t\t.enum([\"running\", \"completed\", \"failed\", \"cancelled\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by run status\"),\n\t\t\tlimit: z.number().optional().describe(\"Max runs to return (default 20)\"),\n\t\t},\n\t\tasync ({ name, status, limit }) => {\n\t\t\tconst { runs } = await getClient().workflows.listRuns(name, {\n\t\t\t\tstatus: status as\n\t\t\t\t\t| \"running\"\n\t\t\t\t\t| \"completed\"\n\t\t\t\t\t| \"failed\"\n\t\t\t\t\t| \"cancelled\"\n\t\t\t\t\t| undefined,\n\t\t\t\tlimit,\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: JSON.stringify(runs, null, 2),\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t);\n}\n"
|
|
14
14
|
],
|
|
15
|
-
"mappings": "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",
|
|
16
|
-
"debugId": "
|
|
15
|
+
"mappings": "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",
|
|
16
|
+
"debugId": "319A017A7800ADD064756E2164756E21",
|
|
17
17
|
"names": []
|
|
18
18
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@secondlayer/mcp",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
31
31
|
"@secondlayer/bundler": "^0.3.0",
|
|
32
32
|
"@secondlayer/scaffold": "^1.0.0",
|
|
33
|
-
"@secondlayer/sdk": "^
|
|
33
|
+
"@secondlayer/sdk": "^2.0.0",
|
|
34
34
|
"@secondlayer/subgraphs": "^0.11.7",
|
|
35
35
|
"@secondlayer/workflows": "^1.1.0",
|
|
36
36
|
"diff": "^8.0.4",
|