@secondlayer/mcp 4.2.0 → 4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -104,6 +104,12 @@ function jsonResponse(data, isError) {
104
104
  ...isError && { isError: true }
105
105
  };
106
106
  }
107
+ function textResponse(text, isError) {
108
+ return {
109
+ content: [{ type: "text", text }],
110
+ ...isError && { isError: true }
111
+ };
112
+ }
107
113
 
108
114
  // src/lib/tool.ts
109
115
  var registeredToolNames = new Set;
@@ -466,20 +472,11 @@ import { z as z5 } from "zod/v4";
466
472
  function registerSubgraphTools(server, clientProvider = getClient) {
467
473
  defineTool(server, "subgraphs_list", "List all deployed subgraphs. Returns summary fields only, including visibility — public subgraphs are anon-readable at /v1/subgraphs/<name>.", {}, async () => {
468
474
  const { data } = await clientProvider().subgraphs.list();
469
- return {
470
- content: [
471
- {
472
- type: "text",
473
- text: JSON.stringify(data.map(formatSubgraphSummary), null, 2)
474
- }
475
- ]
476
- };
475
+ return jsonResponse(data.map(formatSubgraphSummary));
477
476
  });
478
477
  defineTool(server, "subgraphs_get", "Get full details of a subgraph including schema, health, and table columns.", { name: z5.string().describe("Subgraph name") }, async ({ name }) => {
479
478
  const detail = await clientProvider().subgraphs.get(name);
480
- return {
481
- content: [{ type: "text", text: JSON.stringify(detail, null, 2) }]
482
- };
479
+ return jsonResponse(detail);
483
480
  });
484
481
  defineTool(server, "subgraphs_query", '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. To TAIL new rows (no streaming over MCP): sort=_id, order=desc for the latest, then poll forward with the filter {"_id.gt": "<last _id seen>"}, order=asc. Fetch one row by id with {"_id": "<id>"}. Public subgraphs are also keyless over HTTP at GET /v1/subgraphs/<name>/<table> — { rows, next_cursor, tip } envelope, resume with ?cursor=<next_cursor> + _order=asc|desc (no _offset/_sort on /v1); hand that URL to third parties.', {
485
482
  name: z5.string().describe("Subgraph name"),
@@ -504,9 +501,7 @@ function registerSubgraphTools(server, clientProvider = getClient) {
504
501
  }) => {
505
502
  if (count) {
506
503
  const result2 = await clientProvider().subgraphs.queryTableCount(name, table, { filters, sort, order });
507
- return {
508
- content: [{ type: "text", text: JSON.stringify(result2, null, 2) }]
509
- };
504
+ return jsonResponse(result2);
510
505
  }
511
506
  const rows = await clientProvider().subgraphs.queryTable(name, table, {
512
507
  filters,
@@ -516,11 +511,8 @@ function registerSubgraphTools(server, clientProvider = getClient) {
516
511
  offset,
517
512
  fields
518
513
  });
519
- const cap = limit ?? 50;
520
- const result = withCap(rows, cap > 200 ? 200 : cap);
521
- return {
522
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
523
- };
514
+ const result = withCap(rows, Math.min(limit ?? 50, 200));
515
+ return jsonResponse(result);
524
516
  });
525
517
  defineTool(server, "subgraphs_reindex", "Reindex a subgraph from a specific block range. Returns an operationId — check subgraphs_get (health) or the REST operations endpoint to track progress to completion.", {
526
518
  name: z5.string().describe("Subgraph name"),
@@ -531,9 +523,7 @@ function registerSubgraphTools(server, clientProvider = getClient) {
531
523
  fromBlock,
532
524
  toBlock
533
525
  });
534
- return {
535
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
536
- };
526
+ return jsonResponse(result);
537
527
  });
538
528
  defineTool(server, "subgraphs_backfill", "Backfill a subgraph over a block range. Non-destructive forward fill (does not drop existing data) — unlike subgraphs_reindex, and the only data-fill path for BYO subgraphs (reindex is blocked there). Both blocks required. Returns an operationId — check subgraphs_get (health) or the REST operations endpoint to track progress.", {
539
529
  name: z5.string().describe("Subgraph name"),
@@ -544,15 +534,11 @@ function registerSubgraphTools(server, clientProvider = getClient) {
544
534
  fromBlock,
545
535
  toBlock
546
536
  });
547
- return {
548
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
549
- };
537
+ return jsonResponse(result);
550
538
  });
551
539
  defineTool(server, "subgraphs_stop", "Cancel an in-flight reindex or backfill operation for a subgraph. Returns the stop request status; check subgraphs_get (health) or the REST operations endpoint to confirm it reaches a terminal state.", { name: z5.string().describe("Subgraph name") }, async ({ name }) => {
552
540
  const result = await clientProvider().subgraphs.stop(name);
553
- return {
554
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
555
- };
541
+ return jsonResponse(result);
556
542
  });
557
543
  defineTool(server, "subgraphs_gaps", "List indexing gaps (missing block ranges) for a subgraph. Each gap reports start/end/size, reason, and detected/resolved timestamps. Feed an unresolved gap's range into subgraphs_backfill to fill it. Defaults to unresolved gaps.", {
558
544
  name: z5.string().describe("Subgraph name"),
@@ -565,13 +551,11 @@ function registerSubgraphTools(server, clientProvider = getClient) {
565
551
  offset,
566
552
  resolved
567
553
  });
568
- return {
569
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
570
- };
554
+ return jsonResponse(result);
571
555
  });
572
556
  defineTool(server, "subgraphs_delete", "Delete a subgraph permanently.", { name: z5.string().describe("Subgraph name") }, async ({ name }) => {
573
557
  const result = await clientProvider().subgraphs.delete(name);
574
- return { content: [{ type: "text", text: result.message }] };
558
+ return textResponse(result.message);
575
559
  });
576
560
  defineTool(server, "subgraphs_deploy", "Deploy a subgraph from TypeScript code. Pass the full defineSubgraph() source — it will be bundled, validated, and deployed. Optional startBlock overrides the source definition for this deploy. Set dryRun to validate and preview the schema/DDL without writing anything. Set databaseUrl to deploy to your own Postgres (BYO data plane) — the server verifies the connection first; with dryRun it returns the DDL + grant script. A breaking BYO schema change is refused and returns a migration plan (drop + rebuild DDL) instead of deploying. Visibility defaults: managed deploys are public (anon-readable at /v1/subgraphs/<name>, name claimed in the global public namespace), BYO deploys are private. Call `subgraphs_reindex` separately if you need a forced reindex.", {
577
561
  code: z5.string().describe("TypeScript source code containing a defineSubgraph() call"),
@@ -595,34 +579,21 @@ function registerSubgraphTools(server, clientProvider = getClient) {
595
579
  ...dryRun !== undefined ? { dryRun } : {},
596
580
  ...visibility !== undefined ? { visibility } : {}
597
581
  });
598
- return {
599
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
600
- };
582
+ return jsonResponse(result);
601
583
  } catch (err) {
602
584
  if (err instanceof ByoBreakingChangeError) {
603
- return {
604
- content: [
605
- {
606
- type: "text",
607
- text: JSON.stringify({ byoBreakingChange: true, ...err.details }, null, 2)
608
- }
609
- ]
610
- };
585
+ return jsonResponse({ byoBreakingChange: true, ...err.details });
611
586
  }
612
587
  throw err;
613
588
  }
614
589
  });
615
590
  defineTool(server, "subgraphs_publish", "Make a subgraph publicly readable at /v1/subgraphs/<name> — anyone (or any agent) can read it without a key. Claims the name in the global public namespace; fails with PUBLIC_NAME_TAKEN if another account holds it.", { name: z5.string().describe("Subgraph name") }, async ({ name }) => {
616
591
  const result = await clientProvider().subgraphs.publish(name);
617
- return {
618
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
619
- };
592
+ return jsonResponse(result);
620
593
  });
621
594
  defineTool(server, "subgraphs_unpublish", "Make a subgraph private again — /v1 reads then require the owning account's bearer key, and the global public name claim is released.", { name: z5.string().describe("Subgraph name") }, async ({ name }) => {
622
595
  const result = await clientProvider().subgraphs.unpublish(name);
623
- return {
624
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
625
- };
596
+ return jsonResponse(result);
626
597
  });
627
598
  }
628
599
 
@@ -632,15 +603,11 @@ import { z as z6 } from "zod/v4";
632
603
  function registerSubscriptionTools(server, clientProvider = getClient) {
633
604
  defineTool(server, "subscriptions_list", "List all subscriptions for the current account. Returns summary fields (no secrets).", {}, async () => {
634
605
  const { data } = await clientProvider().subscriptions.list();
635
- return {
636
- content: [{ type: "text", text: JSON.stringify(data, null, 2) }]
637
- };
606
+ return jsonResponse(data);
638
607
  });
639
608
  defineTool(server, "subscriptions_get", "Get full detail for a subscription (filter, auth, retry config, circuit state).", { id: z6.string().describe("Subscription id") }, async ({ id }) => {
640
609
  const detail = await clientProvider().subscriptions.get(id);
641
- return {
642
- content: [{ type: "text", text: JSON.stringify(detail, null, 2) }]
643
- };
610
+ return jsonResponse(detail);
644
611
  });
645
612
  defineTool(server, "subscriptions_create", "Create a subscription. Two kinds (mutually exclusive): a SUBGRAPH subscription fires on a subgraph table's rows (set subgraphName + tableName + optional filter); a CHAIN subscription fires on raw chain events with no subgraph (set triggers). Returns `signingSecret` ONCE — forward it to the user so they can wire it into their receiver.", {
646
613
  name: z6.string().describe("Human-readable name, unique per account"),
@@ -676,9 +643,7 @@ function registerSubscriptionTools(server, clientProvider = getClient) {
676
643
  authConfig: z6.record(z6.string(), z6.unknown()).optional().describe('Receiver auth sent with each delivery, e.g. {"type": "bearer", "token": "..."}')
677
644
  }, async (input) => {
678
645
  const res = await clientProvider().subscriptions.create(input);
679
- return {
680
- content: [{ type: "text", text: JSON.stringify(res, null, 2) }]
681
- };
646
+ return jsonResponse(res);
682
647
  });
683
648
  defineTool(server, "subscriptions_update", "Patch a subscription (name, url, filter, authConfig, format, runtime, retry, timeout, concurrency).", {
684
649
  id: z6.string(),
@@ -700,21 +665,15 @@ function registerSubscriptionTools(server, clientProvider = getClient) {
700
665
  concurrency: z6.number().int().min(1).optional()
701
666
  }, async ({ id, ...patch }) => {
702
667
  const res = await clientProvider().subscriptions.update(id, patch);
703
- return {
704
- content: [{ type: "text", text: JSON.stringify(res, null, 2) }]
705
- };
668
+ return jsonResponse(res);
706
669
  });
707
670
  defineTool(server, "subscriptions_delete", "Delete a subscription. Pending outbox rows are cascade-deleted.", { id: z6.string() }, async ({ id }) => {
708
671
  const res = await clientProvider().subscriptions.delete(id);
709
- return {
710
- content: [{ type: "text", text: JSON.stringify(res, null, 2) }]
711
- };
672
+ return jsonResponse(res);
712
673
  });
713
674
  defineTool(server, "subscriptions_test", "Send a one-off test webhook to a subscription's URL (built for its format, SSRF-guarded). Logged as a delivery row. Returns {ok, statusCode, error, durationMs, deliveryId}.", { id: z6.string().describe("Subscription id") }, async ({ id }) => {
714
675
  const res = await clientProvider().subscriptions.test(id);
715
- return {
716
- content: [{ type: "text", text: JSON.stringify(res, null, 2) }]
717
- };
676
+ return jsonResponse(res);
718
677
  });
719
678
  defineTool(server, "subscriptions_replay", "Replay a block range for a subscription. Replays run at 10% of batch capacity — use sparingly. Pass `force` (a short idempotency suffix) to re-run a range that was already replayed.", {
720
679
  id: z6.string(),
@@ -727,9 +686,7 @@ function registerSubscriptionTools(server, clientProvider = getClient) {
727
686
  toBlock,
728
687
  ...force !== undefined ? { force } : {}
729
688
  });
730
- return {
731
- content: [{ type: "text", text: JSON.stringify(res, null, 2) }]
732
- };
689
+ return jsonResponse(res);
733
690
  });
734
691
  }
735
692
 
@@ -755,5 +712,5 @@ export {
755
712
  createServer
756
713
  };
757
714
 
758
- //# debugId=539F2A4C117F5FEC64756E2164756E21
715
+ //# debugId=26696E4DD72BCA8964756E2164756E21
759
716
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -12,10 +12,10 @@
12
12
  "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { DECODED_EVENT_TYPES } from \"@secondlayer/shared\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype ClientProvider = typeof getClient;\n\nconst INDEX_EVENT_TYPES = DECODED_EVENT_TYPES;\n\n/** Filters shared by the height/cursor-paginated Index endpoints. */\nconst rangeFilters = {\n\tcontractId: z.string().optional().describe(\"Filter by contract id\"),\n\tfromHeight: z.number().optional().describe(\"Start block height (inclusive)\"),\n\ttoHeight: z.number().optional().describe(\"End block height (inclusive)\"),\n\tcursor: z\n\t\t.string()\n\t\t.optional()\n\t\t.describe(\"Opaque cursor from a prior response's next_cursor\"),\n\tlimit: z.number().optional().describe(\"Max rows for this page\"),\n};\n\n/** Height-range subset for endpoints that don't filter by contract (blocks). */\nconst heightFilters = {\n\tfromHeight: rangeFilters.fromHeight,\n\ttoHeight: rangeFilters.toHeight,\n\tcursor: rangeFilters.cursor,\n\tlimit: rangeFilters.limit,\n};\n\nexport function registerIndexTools(\n\tserver: McpServer,\n\tclientProvider: ClientProvider = getClient,\n) {\n\tdefineTool<{\n\t\tcontractId?: string;\n\t\tsender?: string;\n\t\trecipient?: string;\n\t\tfromHeight?: number;\n\t\ttoHeight?: number;\n\t\tcursor?: string;\n\t\tlimit?: number;\n\t}>(\n\t\tserver,\n\t\t\"index_ft_transfers\",\n\t\t\"List decoded SIP-010 fungible-token transfers from the Index (decoded layer). Anonymous reads allowed (free-tier API keys are rejected — Build+ required).\",\n\t\t{\n\t\t\t...rangeFilters,\n\t\t\tsender: z.string().optional().describe(\"Filter by sender principal\"),\n\t\t\trecipient: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by recipient principal\"),\n\t\t},\n\t\tasync (params) =>\n\t\t\tjsonResponse(await clientProvider().index.ftTransfers.list(params)),\n\t);\n\n\tdefineTool<{\n\t\tcontractId?: string;\n\t\tsender?: string;\n\t\trecipient?: string;\n\t\tassetIdentifier?: string;\n\t\tfromHeight?: number;\n\t\ttoHeight?: number;\n\t\tcursor?: string;\n\t\tlimit?: number;\n\t}>(\n\t\tserver,\n\t\t\"index_nft_transfers\",\n\t\t\"List decoded SIP-009 non-fungible-token transfers from the Index. Anonymous reads allowed (free-tier keys rejected).\",\n\t\t{\n\t\t\t...rangeFilters,\n\t\t\tsender: z.string().optional().describe(\"Filter by sender principal\"),\n\t\t\trecipient: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by recipient principal\"),\n\t\t\tassetIdentifier: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by asset identifier (contract::asset)\"),\n\t\t},\n\t\tasync (params) =>\n\t\t\tjsonResponse(await clientProvider().index.nftTransfers.list(params)),\n\t);\n\n\tdefineTool<{\n\t\teventType: (typeof INDEX_EVENT_TYPES)[number];\n\t\tcontractId?: string;\n\t\tsender?: string;\n\t\trecipient?: string;\n\t\tassetIdentifier?: string;\n\t\ttrait?: string;\n\t\ttxContext?: boolean;\n\t\tfromHeight?: number;\n\t\ttoHeight?: number;\n\t\tcursor?: string;\n\t\tlimit?: number;\n\t}>(\n\t\tserver,\n\t\t\"index_events\",\n\t\t\"List decoded chain events from the Index by event type. Use this for event types without a dedicated tool (stx_*, ft_mint/burn, nft_mint/burn, print), and for trait-scoped queries: set `trait` (e.g. sip-010) to match all contracts conforming to a standard — pair with contracts_find to discover traits. For ft/nft transfers without a trait prefer index_ft_transfers / index_nft_transfers.\",\n\t\t{\n\t\t\teventType: z\n\t\t\t\t.enum(INDEX_EVENT_TYPES)\n\t\t\t\t.describe(\"Required. Decoded event type to list.\"),\n\t\t\t...rangeFilters,\n\t\t\tsender: z.string().optional().describe(\"Filter by sender principal\"),\n\t\t\trecipient: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by recipient principal\"),\n\t\t\tassetIdentifier: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by asset identifier where applicable\"),\n\t\t\ttrait: 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\"Match contracts conforming to a trait/standard (e.g. sip-010). Mutually exclusive with contractId; contract-keyed event types only.\",\n\t\t\t\t),\n\t\t\ttxContext: 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\"Join the submitting transaction into each event (tx_sender, tx_type, tx_status, tx_contract_id, tx_function_name). For print events it's the only source of the submitting sender.\",\n\t\t\t\t),\n\t\t},\n\t\tasync (params) =>\n\t\t\tjsonResponse(await clientProvider().index.events.list(params)),\n\t);\n\n\tdefineTool<{\n\t\tcontractId?: string;\n\t\tfunctionName?: string;\n\t\tsender?: string;\n\t\ttrait?: string;\n\t\tfromHeight?: number;\n\t\ttoHeight?: number;\n\t\tcursor?: string;\n\t\tlimit?: number;\n\t}>(\n\t\tserver,\n\t\t\"index_contract_calls\",\n\t\t\"List decoded contract calls from the Index (function name, args, result). Set `trait` (e.g. sip-010) to match calls to all contracts conforming to a standard. Note: contract-call cursors are a SEPARATE keyspace from event cursors — they are not interchangeable.\",\n\t\t{\n\t\t\t...rangeFilters,\n\t\t\tfunctionName: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by called function name\"),\n\t\t\tsender: z.string().optional().describe(\"Filter by caller principal\"),\n\t\t\ttrait: 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\"Match contracts conforming to a trait/standard (e.g. sip-010). Mutually exclusive with contractId.\",\n\t\t\t\t),\n\t\t},\n\t\tasync (params) =>\n\t\t\tjsonResponse(await clientProvider().index.contractCalls.list(params)),\n\t);\n\n\tdefineTool<{\n\t\tfromHeight?: number;\n\t\ttoHeight?: number;\n\t\tcursor?: string;\n\t\tlimit?: number;\n\t}>(\n\t\tserver,\n\t\t\"index_blocks\",\n\t\t\"List decoded blocks from the Index. Anonymous reads allowed (free-tier keys rejected).\",\n\t\t{ ...heightFilters },\n\t\tasync (params) =>\n\t\t\tjsonResponse(await clientProvider().index.blocks.list(params)),\n\t);\n\n\tdefineTool<{\n\t\ttype?: string;\n\t\tsender?: string;\n\t\tcontractId?: string;\n\t\tfromHeight?: number;\n\t\ttoHeight?: number;\n\t\tcursor?: string;\n\t\tlimit?: number;\n\t}>(\n\t\tserver,\n\t\t\"index_transactions\",\n\t\t\"List decoded transactions from the Index. Filter by type, sender, or contract. Anonymous reads allowed (free-tier keys rejected).\",\n\t\t{\n\t\t\t...rangeFilters,\n\t\t\ttype: z.string().optional().describe(\"Filter by transaction type\"),\n\t\t\tsender: z.string().optional().describe(\"Filter by sender principal\"),\n\t\t},\n\t\tasync (params) =>\n\t\t\tjsonResponse(await clientProvider().index.transactions.list(params)),\n\t);\n\n\tdefineTool<{ contractId: string }>(\n\t\tserver,\n\t\t\"index_print_schema\",\n\t\t\"Empirical per-topic print payload schemas for a contract, inferred from sampled on-chain events: each topic's fields with observed Clarity types, decoded TS types, subgraph column types, and presence rates. Use before writing print_event subgraph handlers to learn what's on e.data. Anonymous read.\",\n\t\t{\n\t\t\tcontractId: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\"Contract id (SP….name) whose print events to profile\"),\n\t\t},\n\t\tasync (params) =>\n\t\t\tjsonResponse(await clientProvider().index.printSchema(params.contractId)),\n\t);\n\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"index_discover\",\n\t\t\"Discover the Index vocabulary: every event type and its columns, allowed/equality filters, and required-non-null fields (and which types accept `trait`). Read this before building Index queries instead of guessing filters. Anonymous read.\",\n\t\t{},\n\t\tasync () => jsonResponse(await clientProvider().index.discover()),\n\t);\n\n\tdefineTool<{\n\t\trequests: Array<{ path: string; params?: Record<string, string> }>;\n\t}>(\n\t\tserver,\n\t\t\"batch_query\",\n\t\t\"Run up to 10 public /v1 reads in one round trip (POST /v1/batch). Each item keeps its own auth/quota/pay-per-call semantics; results return in order with per-item status. Paths must start with /v1/index, /v1/subgraphs, /v1/streams, or /v1/contracts.\",\n\t\t{\n\t\t\trequests: z\n\t\t\t\t.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\tpath: z.string().describe(\"Public /v1 read path\"),\n\t\t\t\t\t\tparams: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.min(1)\n\t\t\t\t.max(10)\n\t\t\t\t.describe(\"Read descriptors, executed concurrently\"),\n\t\t},\n\t\tasync (params) =>\n\t\t\tjsonResponse(await clientProvider().batch(params.requests)),\n\t);\n}\n",
13
13
  "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { generateSubgraphCode } from \"@secondlayer/scaffold\";\nimport type { AbiFunction, AbiMap } from \"@secondlayer/scaffold\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype ClientProvider = typeof getClient;\n\n// Source ABIs from the platform contract registry (prod-safe). The old\n// `/api/node/contracts/:id/abi` proxy is OSS/dedicated-only and 404s in prod.\nasync function fetchAbi(\n\tclientProvider: ClientProvider,\n\tcontractId: string,\n): Promise<{ functions: AbiFunction[]; maps: AbiMap[] }> {\n\tconst contract = await clientProvider().contracts.get(contractId, {\n\t\tincludeAbi: true,\n\t});\n\tif (!contract) throw new Error(`Contract not found: ${contractId}`);\n\tconst abi = contract.abi as {\n\t\tfunctions?: AbiFunction[];\n\t\tmaps?: AbiMap[];\n\t} | null;\n\tif (!abi) {\n\t\tthrow new Error(\n\t\t\t`No ABI available for ${contractId} (abi_status: ${contract.abi_status})`,\n\t\t);\n\t}\n\treturn { functions: abi.functions ?? [], maps: abi.maps ?? [] };\n}\n\nexport function registerScaffoldTools(\n\tserver: McpServer,\n\tclientProvider: ClientProvider = getClient,\n) {\n\tdefineTool<{ contractId: string; subgraphName?: string }>(\n\t\tserver,\n\t\t\"scaffold_from_contract\",\n\t\t\"Generate a subgraph scaffold from a deployed Stacks contract. Fetches the ABI automatically.\",\n\t\t{\n\t\t\tcontractId: z\n\t\t\t\t.string()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Fully qualified contract ID (e.g. SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.amm-pool-v2-01)\",\n\t\t\t\t),\n\t\t\tsubgraphName: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Override the subgraph name (defaults to contract name)\"),\n\t\t},\n\t\tasync ({ contractId, subgraphName }) => {\n\t\t\tconst { functions, maps } = await fetchAbi(clientProvider, contractId);\n\t\t\tconst code = generateSubgraphCode(\n\t\t\t\tcontractId,\n\t\t\t\tfunctions,\n\t\t\t\tsubgraphName,\n\t\t\t\tmaps,\n\t\t\t);\n\t\t\treturn { content: [{ type: \"text\", text: code }] };\n\t\t},\n\t);\n}\n",
14
14
  "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { getClient } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype ClientProvider = typeof getClient;\n\nexport function registerStreamsTools(\n\tserver: McpServer,\n\tclientProvider: ClientProvider = getClient,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"streams_dumps\",\n\t\t\"List the Streams bulk parquet dumps manifest — coverage range, latest_finalized_cursor, and per-file metadata (block range, row count, size, sha256, signed URL). This is the cold backfill path for downloading all raw data; fetch the file URLs directly (e.g. with DuckDB). Requires the dumps base URL to be configured (SL_STREAMS_DUMPS_URL). Live Streams reads (tip, events, consume) are REST-only: see /v1/streams/* in the OpenAPI spec.\",\n\t\t{},\n\t\tasync () => jsonResponse(await clientProvider().streams.dumps.list()),\n\t);\n}\n",
15
- "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { bundleSubgraphCode } from \"@secondlayer/bundler\";\nimport { ByoBreakingChangeError } from \"@secondlayer/sdk\";\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\ntype SubgraphClientProvider = typeof getClient;\n\nexport function registerSubgraphTools(\n\tserver: McpServer,\n\tclientProvider: SubgraphClientProvider = getClient,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"subgraphs_list\",\n\t\t\"List all deployed subgraphs. Returns summary fields only, including visibility — public subgraphs are anon-readable at /v1/subgraphs/<name>.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await clientProvider().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 clientProvider().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. To TAIL new rows (no streaming over MCP): sort=_id, order=desc for the latest, then poll forward with the filter {\"_id.gt\": \"<last _id seen>\"}, order=asc. Fetch one row by id with {\"_id\": \"<id>\"}. Public subgraphs are also keyless over HTTP at GET /v1/subgraphs/<name>/<table> — { rows, next_cursor, tip } envelope, resume with ?cursor=<next_cursor> + _order=asc|desc (no _offset/_sort on /v1); hand that URL to third parties.',\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 clientProvider().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 clientProvider().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. Returns an operationId — check subgraphs_get (health) or the REST operations endpoint to track progress to completion.\",\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 clientProvider().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; fromBlock: number; toBlock: number }>(\n\t\tserver,\n\t\t\"subgraphs_backfill\",\n\t\t\"Backfill a subgraph over a block range. Non-destructive forward fill (does not drop existing data) — unlike subgraphs_reindex, and the only data-fill path for BYO subgraphs (reindex is blocked there). Both blocks required. Returns an operationId — check subgraphs_get (health) or the REST operations endpoint to track progress.\",\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.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.describe(\"Start block (inclusive)\"),\n\t\t\ttoBlock: z.number().int().nonnegative().describe(\"End block (inclusive)\"),\n\t\t},\n\t\tasync ({ name, fromBlock, toBlock }) => {\n\t\t\tconst result = await clientProvider().subgraphs.backfill(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_stop\",\n\t\t\"Cancel an in-flight reindex or backfill operation for a subgraph. Returns the stop request status; check subgraphs_get (health) or the REST operations endpoint to confirm it reaches a terminal state.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await clientProvider().subgraphs.stop(name);\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<{\n\t\tname: string;\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tresolved?: boolean;\n\t}>(\n\t\tserver,\n\t\t\"subgraphs_gaps\",\n\t\t\"List indexing gaps (missing block ranges) for a subgraph. Each gap reports start/end/size, reason, and detected/resolved timestamps. Feed an unresolved gap's range into subgraphs_backfill to fill it. Defaults to unresolved gaps.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\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.optional()\n\t\t\t\t.describe(\"Max gaps to return\"),\n\t\t\toffset: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Pagination offset\"),\n\t\t\tresolved: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by resolved state (omit for unresolved only)\"),\n\t\t},\n\t\tasync ({ name, limit, offset, resolved }) => {\n\t\t\tconst result = await clientProvider().subgraphs.gaps(name, {\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\tresolved,\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 clientProvider().subgraphs.delete(name);\n\t\t\treturn { content: [{ type: \"text\", text: result.message }] };\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tcode: string;\n\t\tstartBlock?: number;\n\t\tdatabaseUrl?: string;\n\t\tdryRun?: boolean;\n\t\tvisibility?: \"public\" | \"private\";\n\t}>(\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. Optional startBlock overrides the source definition for this deploy. Set dryRun to validate and preview the schema/DDL without writing anything. Set databaseUrl to deploy to your own Postgres (BYO data plane) — the server verifies the connection first; with dryRun it returns the DDL + grant script. A breaking BYO schema change is refused and returns a migration plan (drop + rebuild DDL) instead of deploying. Visibility defaults: managed deploys are public (anon-readable at /v1/subgraphs/<name>, name claimed in the global public namespace), BYO deploys are private. Call `subgraphs_reindex` separately if you need a forced reindex.\",\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\tstartBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Override the definition startBlock for this deploy\"),\n\t\t\tdatabaseUrl: 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\"BYO data plane: Postgres connection string to host the subgraph's schema and rows in your own database\",\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(\n\t\t\t\t\t\"Validate and preview the deploy (schema/DDL, BYO connection) without writing changes\",\n\t\t\t\t),\n\t\t\tvisibility: z\n\t\t\t\t.enum([\"public\", \"private\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Read visibility: public = anon /v1 reads + global name claim; private = owning account's key only. Defaults: managed → public, BYO → private.\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ code, startBlock, databaseUrl, dryRun, visibility }) => {\n\t\t\tconst bundled = await bundleSubgraphCode(code);\n\t\t\ttry {\n\t\t\t\tconst result = await clientProvider().subgraphs.deploy({\n\t\t\t\t\tname: bundled.name,\n\t\t\t\t\tversion: bundled.version,\n\t\t\t\t\tdescription: bundled.description,\n\t\t\t\t\tsources: bundled.sources,\n\t\t\t\t\tschema: bundled.schema,\n\t\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\t\tsourceCode: code,\n\t\t\t\t\t...(startBlock !== undefined ? { startBlock } : {}),\n\t\t\t\t\t...(databaseUrl !== undefined ? { databaseUrl } : {}),\n\t\t\t\t\t...(dryRun !== undefined ? { dryRun } : {}),\n\t\t\t\t\t...(visibility !== undefined ? { visibility } : {}),\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} catch (err) {\n\t\t\t\t// A refused BYO breaking change is an actionable result, not a failure:\n\t\t\t\t// defineTool would flatten the throw to {error:{message}} and drop the\n\t\t\t\t// migration plan, so surface reasons/diff/plan as a normal result.\n\t\t\t\tif (err instanceof ByoBreakingChangeError) {\n\t\t\t\t\treturn {\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{ byoBreakingChange: true, ...err.details },\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 }>(\n\t\tserver,\n\t\t\"subgraphs_publish\",\n\t\t\"Make a subgraph publicly readable at /v1/subgraphs/<name> — anyone (or any agent) can read it without a key. Claims the name in the global public namespace; fails with PUBLIC_NAME_TAKEN if another account holds it.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await clientProvider().subgraphs.publish(name);\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_unpublish\",\n\t\t\"Make a subgraph private again — /v1 reads then require the owning account's bearer key, and the global public name claim is released.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await clientProvider().subgraphs.unpublish(name);\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",
16
- "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type {\n\tChainTrigger,\n\tCreateSubscriptionRequest,\n\tUpdateSubscriptionRequest,\n} from \"@secondlayer/sdk\";\nimport { CHAIN_TRIGGER_TYPES } from \"@secondlayer/shared\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype SubscriptionClientProvider = typeof getClient;\n\n/**\n * Subscription MCP tools — let agents list, configure, test, and replay\n * subgraph event subscriptions. Mirrors the HTTP API 1:1; structured\n * errors bubble through the SDK's ApiError.\n */\nexport function registerSubscriptionTools(\n\tserver: McpServer,\n\tclientProvider: SubscriptionClientProvider = getClient,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"subscriptions_list\",\n\t\t\"List all subscriptions for the current account. Returns summary fields (no secrets).\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await clientProvider().subscriptions.list();\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(data, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"subscriptions_get\",\n\t\t\"Get full detail for a subscription (filter, auth, retry config, circuit state).\",\n\t\t{ id: z.string().describe(\"Subscription id\") },\n\t\tasync ({ id }) => {\n\t\t\tconst detail = await clientProvider().subscriptions.get(id);\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\tsubgraphName?: string;\n\t\ttableName?: string;\n\t\ttriggers?: ChainTrigger[];\n\t\turl: string;\n\t\tformat?:\n\t\t\t| \"standard-webhooks\"\n\t\t\t| \"inngest\"\n\t\t\t| \"trigger\"\n\t\t\t| \"cloudflare\"\n\t\t\t| \"cloudevents\"\n\t\t\t| \"raw\";\n\t\truntime?: \"inngest\" | \"trigger\" | \"cloudflare\" | \"node\";\n\t\tfilter?: Record<string, unknown>;\n\t\tauthConfig?: Record<string, unknown>;\n\t}>(\n\t\tserver,\n\t\t\"subscriptions_create\",\n\t\t\"Create a subscription. Two kinds (mutually exclusive): a SUBGRAPH subscription fires on a subgraph table's rows (set subgraphName + tableName + optional filter); a CHAIN subscription fires on raw chain events with no subgraph (set triggers). Returns `signingSecret` ONCE — forward it to the user so they can wire it into their receiver.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Human-readable name, unique per account\"),\n\t\t\tsubgraphName: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Subgraph to subscribe to (subgraph subscription)\"),\n\t\t\ttableName: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Table within the subgraph (subgraph subscription)\"),\n\t\t\ttriggers: z\n\t\t\t\t.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.enum(CHAIN_TRIGGER_TYPES),\n\t\t\t\t\t\tcontractId: z.string().optional(),\n\t\t\t\t\t\tfunctionName: z.string().optional(),\n\t\t\t\t\t\tcaller: z.string().optional(),\n\t\t\t\t\t\tsender: z.string().optional(),\n\t\t\t\t\t\trecipient: z.string().optional(),\n\t\t\t\t\t\tassetIdentifier: z.string().optional(),\n\t\t\t\t\t\tdeployer: z.string().optional(),\n\t\t\t\t\t\tcontractName: z.string().optional(),\n\t\t\t\t\t\ttopic: z.string().optional(),\n\t\t\t\t\t\tlockedAddress: z.string().optional(),\n\t\t\t\t\t\ttrait: z.string().optional(),\n\t\t\t\t\t\tminAmount: z.union([z.string(), z.number()]).optional(),\n\t\t\t\t\t\tmaxAmount: z.union([z.string(), z.number()]).optional(),\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Chain triggers (chain subscription) — provide INSTEAD of subgraphName/tableName. Each targets a raw chain event/tx; string fields accept `*` wildcards, `trait` scopes to a SIP/trait. Per-type accepted fields: see the secondlayer://chain-triggers resource. Forward-looking: starts at chain tip, no backfill.\",\n\t\t\t\t),\n\t\t\turl: z.string().describe(\"Webhook URL\"),\n\t\t\tformat: z\n\t\t\t\t.enum([\n\t\t\t\t\t\"standard-webhooks\",\n\t\t\t\t\t\"inngest\",\n\t\t\t\t\t\"trigger\",\n\t\t\t\t\t\"cloudflare\",\n\t\t\t\t\t\"cloudevents\",\n\t\t\t\t\t\"raw\",\n\t\t\t\t])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Wire format (default standard-webhooks)\"),\n\t\t\truntime: z\n\t\t\t\t.enum([\"inngest\", \"trigger\", \"cloudflare\", \"node\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Receiver runtime label (display only)\"),\n\t\t\tfilter: z\n\t\t\t\t.record(z.string(), z.unknown())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Scalar filter DSL, e.g. {\"amount\": {\"gte\": 100}, \"sender\": \"SP...\"}',\n\t\t\t\t),\n\t\t\tauthConfig: z\n\t\t\t\t.record(z.string(), z.unknown())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Receiver auth sent with each delivery, e.g. {\"type\": \"bearer\", \"token\": \"...\"}',\n\t\t\t\t),\n\t\t},\n\t\tasync (input) => {\n\t\t\tconst res = await clientProvider().subscriptions.create(\n\t\t\t\tinput as CreateSubscriptionRequest,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(res, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tid: string;\n\t\tname?: string;\n\t\turl?: string;\n\t\tfilter?: Record<string, unknown>;\n\t\tauthConfig?: Record<string, unknown>;\n\t\tformat?:\n\t\t\t| \"standard-webhooks\"\n\t\t\t| \"inngest\"\n\t\t\t| \"trigger\"\n\t\t\t| \"cloudflare\"\n\t\t\t| \"cloudevents\"\n\t\t\t| \"raw\";\n\t\truntime?: \"inngest\" | \"trigger\" | \"cloudflare\" | \"node\" | null;\n\t\tmaxRetries?: number;\n\t\ttimeoutMs?: number;\n\t\tconcurrency?: number;\n\t}>(\n\t\tserver,\n\t\t\"subscriptions_update\",\n\t\t\"Patch a subscription (name, url, filter, authConfig, format, runtime, retry, timeout, concurrency).\",\n\t\t{\n\t\t\tid: z.string(),\n\t\t\tname: z.string().optional().describe(\"Rename the subscription\"),\n\t\t\turl: z.string().optional(),\n\t\t\tfilter: z.record(z.string(), z.unknown()).optional(),\n\t\t\tauthConfig: z\n\t\t\t\t.record(z.string(), z.unknown())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Receiver auth sent with each delivery (bearer/etc.)\"),\n\t\t\tformat: z\n\t\t\t\t.enum([\n\t\t\t\t\t\"standard-webhooks\",\n\t\t\t\t\t\"inngest\",\n\t\t\t\t\t\"trigger\",\n\t\t\t\t\t\"cloudflare\",\n\t\t\t\t\t\"cloudevents\",\n\t\t\t\t\t\"raw\",\n\t\t\t\t])\n\t\t\t\t.optional(),\n\t\t\truntime: z\n\t\t\t\t.enum([\"inngest\", \"trigger\", \"cloudflare\", \"node\"])\n\t\t\t\t.nullable()\n\t\t\t\t.optional(),\n\t\t\tmaxRetries: z.number().int().min(0).optional(),\n\t\t\ttimeoutMs: z.number().int().min(100).optional(),\n\t\t\tconcurrency: z.number().int().min(1).optional(),\n\t\t},\n\t\tasync ({ id, ...patch }) => {\n\t\t\tconst res = await clientProvider().subscriptions.update(\n\t\t\t\tid,\n\t\t\t\tpatch as UpdateSubscriptionRequest,\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(res, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"subscriptions_delete\",\n\t\t\"Delete a subscription. Pending outbox rows are cascade-deleted.\",\n\t\t{ id: z.string() },\n\t\tasync ({ id }) => {\n\t\t\tconst res = await clientProvider().subscriptions.delete(id);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(res, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"subscriptions_test\",\n\t\t\"Send a one-off test webhook to a subscription's URL (built for its format, SSRF-guarded). Logged as a delivery row. Returns {ok, statusCode, error, durationMs, deliveryId}.\",\n\t\t{ id: z.string().describe(\"Subscription id\") },\n\t\tasync ({ id }) => {\n\t\t\tconst res = await clientProvider().subscriptions.test(id);\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(res, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tid: string;\n\t\tfromBlock: number;\n\t\ttoBlock: number;\n\t\tforce?: string;\n\t}>(\n\t\tserver,\n\t\t\"subscriptions_replay\",\n\t\t\"Replay a block range for a subscription. Replays run at 10% of batch capacity — use sparingly. Pass `force` (a short idempotency suffix) to re-run a range that was already replayed.\",\n\t\t{\n\t\t\tid: z.string(),\n\t\t\tfromBlock: z.number().int().nonnegative(),\n\t\t\ttoBlock: z.number().int().nonnegative(),\n\t\t\tforce: 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\"Idempotency suffix to force a duplicate replay of the range\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ id, fromBlock, toBlock, force }) => {\n\t\t\tconst res = await clientProvider().subscriptions.replay(id, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t\t...(force !== undefined ? { force } : {}),\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(res, null, 2) }],\n\t\t\t};\n\t\t},\n\t);\n}\n"
15
+ "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { bundleSubgraphCode } from \"@secondlayer/bundler\";\nimport { ByoBreakingChangeError } from \"@secondlayer/sdk\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport {\n\tformatSubgraphSummary,\n\tjsonResponse,\n\ttextResponse,\n\twithCap,\n} from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype SubgraphClientProvider = typeof getClient;\n\nexport function registerSubgraphTools(\n\tserver: McpServer,\n\tclientProvider: SubgraphClientProvider = getClient,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"subgraphs_list\",\n\t\t\"List all deployed subgraphs. Returns summary fields only, including visibility — public subgraphs are anon-readable at /v1/subgraphs/<name>.\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await clientProvider().subgraphs.list();\n\t\t\treturn jsonResponse(data.map(formatSubgraphSummary));\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 clientProvider().subgraphs.get(name);\n\t\t\treturn jsonResponse(detail);\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. To TAIL new rows (no streaming over MCP): sort=_id, order=desc for the latest, then poll forward with the filter {\"_id.gt\": \"<last _id seen>\"}, order=asc. Fetch one row by id with {\"_id\": \"<id>\"}. Public subgraphs are also keyless over HTTP at GET /v1/subgraphs/<name>/<table> — { rows, next_cursor, tip } envelope, resume with ?cursor=<next_cursor> + _order=asc|desc (no _offset/_sort on /v1); hand that URL to third parties.',\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 clientProvider().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 jsonResponse(result);\n\t\t\t}\n\t\t\tconst rows = await clientProvider().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 result = withCap(\n\t\t\t\trows as Record<string, unknown>[],\n\t\t\t\tMath.min(limit ?? 50, 200),\n\t\t\t);\n\t\t\treturn jsonResponse(result);\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. Returns an operationId — check subgraphs_get (health) or the REST operations endpoint to track progress to completion.\",\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 clientProvider().subgraphs.reindex(name, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t});\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n\n\tdefineTool<{ name: string; fromBlock: number; toBlock: number }>(\n\t\tserver,\n\t\t\"subgraphs_backfill\",\n\t\t\"Backfill a subgraph over a block range. Non-destructive forward fill (does not drop existing data) — unlike subgraphs_reindex, and the only data-fill path for BYO subgraphs (reindex is blocked there). Both blocks required. Returns an operationId — check subgraphs_get (health) or the REST operations endpoint to track progress.\",\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.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.describe(\"Start block (inclusive)\"),\n\t\t\ttoBlock: z.number().int().nonnegative().describe(\"End block (inclusive)\"),\n\t\t},\n\t\tasync ({ name, fromBlock, toBlock }) => {\n\t\t\tconst result = await clientProvider().subgraphs.backfill(name, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t});\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_stop\",\n\t\t\"Cancel an in-flight reindex or backfill operation for a subgraph. Returns the stop request status; check subgraphs_get (health) or the REST operations endpoint to confirm it reaches a terminal state.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await clientProvider().subgraphs.stop(name);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\tlimit?: number;\n\t\toffset?: number;\n\t\tresolved?: boolean;\n\t}>(\n\t\tserver,\n\t\t\"subgraphs_gaps\",\n\t\t\"List indexing gaps (missing block ranges) for a subgraph. Each gap reports start/end/size, reason, and detected/resolved timestamps. Feed an unresolved gap's range into subgraphs_backfill to fill it. Defaults to unresolved gaps.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Subgraph name\"),\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.optional()\n\t\t\t\t.describe(\"Max gaps to return\"),\n\t\t\toffset: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Pagination offset\"),\n\t\t\tresolved: z\n\t\t\t\t.boolean()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Filter by resolved state (omit for unresolved only)\"),\n\t\t},\n\t\tasync ({ name, limit, offset, resolved }) => {\n\t\t\tconst result = await clientProvider().subgraphs.gaps(name, {\n\t\t\t\tlimit,\n\t\t\t\toffset,\n\t\t\t\tresolved,\n\t\t\t});\n\t\t\treturn jsonResponse(result);\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 clientProvider().subgraphs.delete(name);\n\t\t\treturn textResponse(result.message);\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tcode: string;\n\t\tstartBlock?: number;\n\t\tdatabaseUrl?: string;\n\t\tdryRun?: boolean;\n\t\tvisibility?: \"public\" | \"private\";\n\t}>(\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. Optional startBlock overrides the source definition for this deploy. Set dryRun to validate and preview the schema/DDL without writing anything. Set databaseUrl to deploy to your own Postgres (BYO data plane) — the server verifies the connection first; with dryRun it returns the DDL + grant script. A breaking BYO schema change is refused and returns a migration plan (drop + rebuild DDL) instead of deploying. Visibility defaults: managed deploys are public (anon-readable at /v1/subgraphs/<name>, name claimed in the global public namespace), BYO deploys are private. Call `subgraphs_reindex` separately if you need a forced reindex.\",\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\tstartBlock: z\n\t\t\t\t.number()\n\t\t\t\t.int()\n\t\t\t\t.nonnegative()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Override the definition startBlock for this deploy\"),\n\t\t\tdatabaseUrl: 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\"BYO data plane: Postgres connection string to host the subgraph's schema and rows in your own database\",\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(\n\t\t\t\t\t\"Validate and preview the deploy (schema/DDL, BYO connection) without writing changes\",\n\t\t\t\t),\n\t\t\tvisibility: z\n\t\t\t\t.enum([\"public\", \"private\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Read visibility: public = anon /v1 reads + global name claim; private = owning account's key only. Defaults: managed → public, BYO → private.\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ code, startBlock, databaseUrl, dryRun, visibility }) => {\n\t\t\tconst bundled = await bundleSubgraphCode(code);\n\t\t\ttry {\n\t\t\t\tconst result = await clientProvider().subgraphs.deploy({\n\t\t\t\t\tname: bundled.name,\n\t\t\t\t\tversion: bundled.version,\n\t\t\t\t\tdescription: bundled.description,\n\t\t\t\t\tsources: bundled.sources,\n\t\t\t\t\tschema: bundled.schema,\n\t\t\t\t\thandlerCode: bundled.handlerCode,\n\t\t\t\t\tsourceCode: code,\n\t\t\t\t\t...(startBlock !== undefined ? { startBlock } : {}),\n\t\t\t\t\t...(databaseUrl !== undefined ? { databaseUrl } : {}),\n\t\t\t\t\t...(dryRun !== undefined ? { dryRun } : {}),\n\t\t\t\t\t...(visibility !== undefined ? { visibility } : {}),\n\t\t\t\t});\n\t\t\t\treturn jsonResponse(result);\n\t\t\t} catch (err) {\n\t\t\t\t// A refused BYO breaking change is an actionable result, not a failure:\n\t\t\t\t// defineTool would flatten the throw to {error:{message}} and drop the\n\t\t\t\t// migration plan, so surface reasons/diff/plan as a normal result.\n\t\t\t\tif (err instanceof ByoBreakingChangeError) {\n\t\t\t\t\treturn jsonResponse({ byoBreakingChange: true, ...err.details });\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 }>(\n\t\tserver,\n\t\t\"subgraphs_publish\",\n\t\t\"Make a subgraph publicly readable at /v1/subgraphs/<name> — anyone (or any agent) can read it without a key. Claims the name in the global public namespace; fails with PUBLIC_NAME_TAKEN if another account holds it.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await clientProvider().subgraphs.publish(name);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n\n\tdefineTool<{ name: string }>(\n\t\tserver,\n\t\t\"subgraphs_unpublish\",\n\t\t\"Make a subgraph private again — /v1 reads then require the owning account's bearer key, and the global public name claim is released.\",\n\t\t{ name: z.string().describe(\"Subgraph name\") },\n\t\tasync ({ name }) => {\n\t\t\tconst result = await clientProvider().subgraphs.unpublish(name);\n\t\t\treturn jsonResponse(result);\n\t\t},\n\t);\n}\n",
16
+ "import type { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport type {\n\tChainTrigger,\n\tCreateSubscriptionRequest,\n\tUpdateSubscriptionRequest,\n} from \"@secondlayer/sdk\";\nimport { CHAIN_TRIGGER_TYPES } from \"@secondlayer/shared\";\nimport { z } from \"zod/v4\";\nimport { getClient } from \"../lib/client.ts\";\nimport { jsonResponse } from \"../lib/format.ts\";\nimport { defineTool } from \"../lib/tool.ts\";\n\ntype SubscriptionClientProvider = typeof getClient;\n\n/**\n * Subscription MCP tools — let agents list, configure, test, and replay\n * subgraph event subscriptions. Mirrors the HTTP API 1:1; structured\n * errors bubble through the SDK's ApiError.\n */\nexport function registerSubscriptionTools(\n\tserver: McpServer,\n\tclientProvider: SubscriptionClientProvider = getClient,\n) {\n\tdefineTool<Record<string, never>>(\n\t\tserver,\n\t\t\"subscriptions_list\",\n\t\t\"List all subscriptions for the current account. Returns summary fields (no secrets).\",\n\t\t{},\n\t\tasync () => {\n\t\t\tconst { data } = await clientProvider().subscriptions.list();\n\t\t\treturn jsonResponse(data);\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"subscriptions_get\",\n\t\t\"Get full detail for a subscription (filter, auth, retry config, circuit state).\",\n\t\t{ id: z.string().describe(\"Subscription id\") },\n\t\tasync ({ id }) => {\n\t\t\tconst detail = await clientProvider().subscriptions.get(id);\n\t\t\treturn jsonResponse(detail);\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tname: string;\n\t\tsubgraphName?: string;\n\t\ttableName?: string;\n\t\ttriggers?: ChainTrigger[];\n\t\turl: string;\n\t\tformat?:\n\t\t\t| \"standard-webhooks\"\n\t\t\t| \"inngest\"\n\t\t\t| \"trigger\"\n\t\t\t| \"cloudflare\"\n\t\t\t| \"cloudevents\"\n\t\t\t| \"raw\";\n\t\truntime?: \"inngest\" | \"trigger\" | \"cloudflare\" | \"node\";\n\t\tfilter?: Record<string, unknown>;\n\t\tauthConfig?: Record<string, unknown>;\n\t}>(\n\t\tserver,\n\t\t\"subscriptions_create\",\n\t\t\"Create a subscription. Two kinds (mutually exclusive): a SUBGRAPH subscription fires on a subgraph table's rows (set subgraphName + tableName + optional filter); a CHAIN subscription fires on raw chain events with no subgraph (set triggers). Returns `signingSecret` ONCE — forward it to the user so they can wire it into their receiver.\",\n\t\t{\n\t\t\tname: z.string().describe(\"Human-readable name, unique per account\"),\n\t\t\tsubgraphName: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Subgraph to subscribe to (subgraph subscription)\"),\n\t\t\ttableName: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Table within the subgraph (subgraph subscription)\"),\n\t\t\ttriggers: z\n\t\t\t\t.array(\n\t\t\t\t\tz.object({\n\t\t\t\t\t\ttype: z.enum(CHAIN_TRIGGER_TYPES),\n\t\t\t\t\t\tcontractId: z.string().optional(),\n\t\t\t\t\t\tfunctionName: z.string().optional(),\n\t\t\t\t\t\tcaller: z.string().optional(),\n\t\t\t\t\t\tsender: z.string().optional(),\n\t\t\t\t\t\trecipient: z.string().optional(),\n\t\t\t\t\t\tassetIdentifier: z.string().optional(),\n\t\t\t\t\t\tdeployer: z.string().optional(),\n\t\t\t\t\t\tcontractName: z.string().optional(),\n\t\t\t\t\t\ttopic: z.string().optional(),\n\t\t\t\t\t\tlockedAddress: z.string().optional(),\n\t\t\t\t\t\ttrait: z.string().optional(),\n\t\t\t\t\t\tminAmount: z.union([z.string(), z.number()]).optional(),\n\t\t\t\t\t\tmaxAmount: z.union([z.string(), z.number()]).optional(),\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t\"Chain triggers (chain subscription) — provide INSTEAD of subgraphName/tableName. Each targets a raw chain event/tx; string fields accept `*` wildcards, `trait` scopes to a SIP/trait. Per-type accepted fields: see the secondlayer://chain-triggers resource. Forward-looking: starts at chain tip, no backfill.\",\n\t\t\t\t),\n\t\t\turl: z.string().describe(\"Webhook URL\"),\n\t\t\tformat: z\n\t\t\t\t.enum([\n\t\t\t\t\t\"standard-webhooks\",\n\t\t\t\t\t\"inngest\",\n\t\t\t\t\t\"trigger\",\n\t\t\t\t\t\"cloudflare\",\n\t\t\t\t\t\"cloudevents\",\n\t\t\t\t\t\"raw\",\n\t\t\t\t])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Wire format (default standard-webhooks)\"),\n\t\t\truntime: z\n\t\t\t\t.enum([\"inngest\", \"trigger\", \"cloudflare\", \"node\"])\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Receiver runtime label (display only)\"),\n\t\t\tfilter: z\n\t\t\t\t.record(z.string(), z.unknown())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Scalar filter DSL, e.g. {\"amount\": {\"gte\": 100}, \"sender\": \"SP...\"}',\n\t\t\t\t),\n\t\t\tauthConfig: z\n\t\t\t\t.record(z.string(), z.unknown())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\n\t\t\t\t\t'Receiver auth sent with each delivery, e.g. {\"type\": \"bearer\", \"token\": \"...\"}',\n\t\t\t\t),\n\t\t},\n\t\tasync (input) => {\n\t\t\tconst res = await clientProvider().subscriptions.create(\n\t\t\t\tinput as CreateSubscriptionRequest,\n\t\t\t);\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tid: string;\n\t\tname?: string;\n\t\turl?: string;\n\t\tfilter?: Record<string, unknown>;\n\t\tauthConfig?: Record<string, unknown>;\n\t\tformat?:\n\t\t\t| \"standard-webhooks\"\n\t\t\t| \"inngest\"\n\t\t\t| \"trigger\"\n\t\t\t| \"cloudflare\"\n\t\t\t| \"cloudevents\"\n\t\t\t| \"raw\";\n\t\truntime?: \"inngest\" | \"trigger\" | \"cloudflare\" | \"node\" | null;\n\t\tmaxRetries?: number;\n\t\ttimeoutMs?: number;\n\t\tconcurrency?: number;\n\t}>(\n\t\tserver,\n\t\t\"subscriptions_update\",\n\t\t\"Patch a subscription (name, url, filter, authConfig, format, runtime, retry, timeout, concurrency).\",\n\t\t{\n\t\t\tid: z.string(),\n\t\t\tname: z.string().optional().describe(\"Rename the subscription\"),\n\t\t\turl: z.string().optional(),\n\t\t\tfilter: z.record(z.string(), z.unknown()).optional(),\n\t\t\tauthConfig: z\n\t\t\t\t.record(z.string(), z.unknown())\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Receiver auth sent with each delivery (bearer/etc.)\"),\n\t\t\tformat: z\n\t\t\t\t.enum([\n\t\t\t\t\t\"standard-webhooks\",\n\t\t\t\t\t\"inngest\",\n\t\t\t\t\t\"trigger\",\n\t\t\t\t\t\"cloudflare\",\n\t\t\t\t\t\"cloudevents\",\n\t\t\t\t\t\"raw\",\n\t\t\t\t])\n\t\t\t\t.optional(),\n\t\t\truntime: z\n\t\t\t\t.enum([\"inngest\", \"trigger\", \"cloudflare\", \"node\"])\n\t\t\t\t.nullable()\n\t\t\t\t.optional(),\n\t\t\tmaxRetries: z.number().int().min(0).optional(),\n\t\t\ttimeoutMs: z.number().int().min(100).optional(),\n\t\t\tconcurrency: z.number().int().min(1).optional(),\n\t\t},\n\t\tasync ({ id, ...patch }) => {\n\t\t\tconst res = await clientProvider().subscriptions.update(\n\t\t\t\tid,\n\t\t\t\tpatch as UpdateSubscriptionRequest,\n\t\t\t);\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"subscriptions_delete\",\n\t\t\"Delete a subscription. Pending outbox rows are cascade-deleted.\",\n\t\t{ id: z.string() },\n\t\tasync ({ id }) => {\n\t\t\tconst res = await clientProvider().subscriptions.delete(id);\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n\n\tdefineTool<{ id: string }>(\n\t\tserver,\n\t\t\"subscriptions_test\",\n\t\t\"Send a one-off test webhook to a subscription's URL (built for its format, SSRF-guarded). Logged as a delivery row. Returns {ok, statusCode, error, durationMs, deliveryId}.\",\n\t\t{ id: z.string().describe(\"Subscription id\") },\n\t\tasync ({ id }) => {\n\t\t\tconst res = await clientProvider().subscriptions.test(id);\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n\n\tdefineTool<{\n\t\tid: string;\n\t\tfromBlock: number;\n\t\ttoBlock: number;\n\t\tforce?: string;\n\t}>(\n\t\tserver,\n\t\t\"subscriptions_replay\",\n\t\t\"Replay a block range for a subscription. Replays run at 10% of batch capacity — use sparingly. Pass `force` (a short idempotency suffix) to re-run a range that was already replayed.\",\n\t\t{\n\t\t\tid: z.string(),\n\t\t\tfromBlock: z.number().int().nonnegative(),\n\t\t\ttoBlock: z.number().int().nonnegative(),\n\t\t\tforce: 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\"Idempotency suffix to force a duplicate replay of the range\",\n\t\t\t\t),\n\t\t},\n\t\tasync ({ id, fromBlock, toBlock, force }) => {\n\t\t\tconst res = await clientProvider().subscriptions.replay(id, {\n\t\t\t\tfromBlock,\n\t\t\t\ttoBlock,\n\t\t\t\t...(force !== undefined ? { force } : {}),\n\t\t\t});\n\t\t\treturn jsonResponse(res);\n\t\t},\n\t);\n}\n"
17
17
  ],
18
- "mappings": ";AAAA;AACA;AACA;AACA;;;ACFA;AACA;AACA;;;ACHA;AACA;AAEA,IAAI,WAA+B;AAOnC,SAAS,UAAU,GAAuB;AAAA,EACzC,OAAO,QAAQ,IAAI;AAAA;AAepB,SAAS,cAAc,GAA6B;AAAA,EACnD,MAAM,MAAM,QAAQ,IAAI;AAAA,EACxB,IAAI,CAAC;AAAA,IAAK;AAAA,EACV,MAAM,UAAU,oBAAoB,GAAG;AAAA,EAIvC,MAAM,WAAW,OAAO,QAAQ,IAAI,kBAAkB,EAAE;AAAA,EACxD,MAAM,OAAO,SAAS,OAAO;AAAA,IAC5B;AAAA,OACI,OAAO,SAAS,QAAQ,KAAK,WAAW,IACzC;AAAA,MACA,OAAO;AAAA,QACN,KAAK;AAAA,QACL,WAAW,OAAO,QAAQ,IAAI,yBAAyB,KAAK;AAAA,MAC7D;AAAA,IACD,IACC,CAAC;AAAA,EACL,CAAC;AAAA,EACD,MAAM,UAAU,OAAO,OAAqB,SAAuB;AAAA,IAClE,MAAM,MAAM,MAAM,KAAK,OAAO,IAAI;AAAA,IAClC,MAAM,UAAU,gBAAgB,GAAG;AAAA,IACnC,IAAI,SAAS;AAAA,MACZ,QAAQ,MACP,iCAAiC,QAAQ,SAAS,oBAAoB,QAAQ,MAC/E;AAAA,IACD;AAAA,IACA,OAAO;AAAA;AAAA,EAIR,OAAO;AAAA;AAGD,SAAS,SAAS,GAAgB;AAAA,EACxC,IAAI,CAAC,UAAU;AAAA,IACd,MAAM,SAAS,WAAW;AAAA,IAC1B,MAAM,UAAU,QAAQ,IAAI;AAAA,IAC5B,MAAM,eAAe,QAAQ,IAAI;AAAA,IACjC,MAAM,YAAY,eAAe;AAAA,IACjC,WAAW,IAAI,YAAY;AAAA,SACtB,SAAS,EAAE,OAAO,IAAI,CAAC;AAAA,MAC3B,QAAQ;AAAA,SACJ,UAAU,EAAE,QAAQ,IAAI,CAAC;AAAA,SACzB,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,SACnC,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,IAClC,CAAC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAKD,IAAM,UACZ,iDACA;AAGD,eAAsB,UAAa,CAClC,QACA,MACA,MACa;AAAA,EACb,MAAM,SAAS,WAAW;AAAA,EAC1B,MAAM,UACL,QAAQ,IAAI,uBAAuB;AAAA,EACpC,MAAM,MAAM,MAAM,MAAM,GAAG,UAAU,QAAQ;AAAA,IAC5C;AAAA,IACA,SAAS;AAAA,MACR,gBAAgB;AAAA,SACZ,SAAS,EAAE,eAAe,UAAU,SAAS,IAAI,CAAC;AAAA,IACvD;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,WAAW,CAAC,WAAW,IAAI,WAAW,OAAO,IAAI,WAAW;AAAA,IAClE,MAAM,OAAO,OACZ,IAAI,OAAO,QAAQ,QAAQ,IAAI,aAAa,WAAW,UAAU,GAAG,GACpE,EAAE,QAAQ,IAAI,OAAO,CACtB;AAAA,EACD;AAAA,EACA,IAAI,IAAI,WAAW;AAAA,IAAK;AAAA,EACxB,OAAO,IAAI,KAAK;AAAA;;;AC5GV,SAAS,qBAAqB,CAAC,GAMnC;AAAA,EACF,MAAM,SACL,QAAQ,IAAI,uBAAuB;AAAA,EACpC,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,OAClB,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,IAAI,CAAC;AAAA,OAE/C,EAAE,eAAe,WAClB,EAAE,WAAW,GAAG,uBAAuB,EAAE,OAAO,IAChD,CAAC;AAAA,EACL;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;;;AChCD,IAAM,sBAAsB,IAAI;AAGzB,SAAS,sBAAsB,GAAa;AAAA,EAClD,OAAO,CAAC,GAAG,mBAAmB;AAAA;AAexB,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,SAEL,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,EAGF,oBAAoB,IAAI,IAAI;AAAA,EAC3B,OAAO,KACP,MACA,aACA,QACA,cACD;AAAA;;;AHrDD,IAAM,eAAiE;AAAA,EACtE,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AACZ;AAEO,IAAM,oBAAoB;AAAA,EAChC;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,CAAC,UAAU,aAAa,mBAAmB,aAAa,OAAO;AAAA,EACxE;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,QAAQ,CAAC,aAAa,mBAAmB,aAAa,OAAO;AAAA,EAC9D;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,QAAQ,CAAC,UAAU,mBAAmB,aAAa,OAAO;AAAA,EAC3D;AAAA,EACA;AAAA,IACC,MAAM;AAAA,IACN,QAAQ,CAAC,UAAU,aAAa,mBAAmB,OAAO;AAAA,EAC3D;AAAA,EACA,EAAE,MAAM,YAAY,QAAQ,CAAC,aAAa,mBAAmB,OAAO,EAAE;AAAA,EACtE,EAAE,MAAM,YAAY,QAAQ,CAAC,UAAU,mBAAmB,OAAO,EAAE;AAAA,EACnE;AAAA,IACC,MAAM;AAAA,IACN,QAAQ,CAAC,cAAc,gBAAgB,UAAU,SAAS,KAAK;AAAA,EAChE;AAAA,EACA,EAAE,MAAM,mBAAmB,QAAQ,CAAC,YAAY,cAAc,EAAE;AAAA,EAChE,EAAE,MAAM,eAAe,QAAQ,CAAC,cAAc,SAAS,OAAO,EAAE;AACjE;AAIA,IAAM,2BAAuD;AAAA,EAC5D,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,WAAW;AAAA,EACX,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AACR;AAIO,IAAM,eAA+C;AAAA,EAC3D,GAAI,OAAO,KAAK,QAAQ,EAAmB,IAAI,CAAC,UAAU;AAAA,IACzD;AAAA,IACA,SAAS,SAAS;AAAA,IAClB,aAAa,yBAAyB;AAAA,EACvC,EAAE;AAAA,EACF;AAAA,IACC,SAAS,CAAC,YAAY,WAAW,QAAQ;AAAA,IACzC,aACC;AAAA,EACF;AACD;AAKA,IAAM,iBAAyC;AAAA,EAC9C,OAAO;AAAA,EACP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AAAA,EACX,eAAe;AAAA,EACf,SAAS;AAAA,EACT,UAAU;AACX;AAEA,IAAM,gBAAgB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAQO,SAAS,iBAAiB,GAAG;AAAA,EACnC,MAAM,WAAW,IAAI;AAAA,EACrB,WAAW,QAAQ,uBAAuB,GAAG;AAAA,IAC5C,MAAM,SAAS,KAAK,MAAM,GAAG,KAAK,QAAQ,GAAG,CAAC;AAAA,IAC9C,MAAM,QAAQ,SAAS,IAAI,MAAM,KAAK,CAAC;AAAA,IACvC,MAAM,KAAK,IAAI;AAAA,IACf,SAAS,IAAI,QAAQ,KAAK;AAAA,EAC3B;AAAA,EACA,MAAM,QAAQ;AAAA,IACb,GAAG,cAAc,OAAO,CAAC,MAAM,SAAS,IAAI,CAAC,CAAC;AAAA,IAC9C,GAAG,CAAC,GAAG,SAAS,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,SAAS,CAAC,CAAC;AAAA,EACjE;AAAA,EACA,MAAM,WAAW,MAAM,IAAI,CAAC,MAAM;AAAA,IACjC,MAAM,QAAQ,SAAS,IAAI,CAAC,KAAK,CAAC;AAAA,IAClC,MAAM,QAAQ,eAAe;AAAA,IAC7B,OAAO,QACJ,GAAG,OAAM,UAAU,MAAM,KAAK,IAAI,OAClC,GAAG,MAAM,MAAM,KAAK,IAAI;AAAA,GAC3B;AAAA,EACD,OAAO;AAAA,IACN;AAAA,IACA,eACC;AAAA,EACF;AAAA;AAID,IAAM,kBAAkB;AAAA,EACvB,MAAM;AAAA,EACN,YACC;AAAA,EACD,SACC;AAAA,EACD,WACC;AAAA,EACD,SACC;AACF;AAGA,IAAM,kBAAkB;AAAA,EACvB,OACC;AAAA,EACD,SAAS;AAAA,EACT,WACC;AACF;AAcA,eAAsB,YAAY,CACjC,OAAoB,EAAE,gBAAgB,UAAU,GAC/C;AAAA,EACD,MAAM,cAAc;AAAA,EACpB,MAAM,SAAS,CAAI,MAA6B,KAAK,OAAO,cAAc;AAAA,EAE1E,MAAM,OAAO,MAAM,KACjB,eAAe,EACf,QAAQ,EACR,MAAM,MAAM,IAAI;AAAA,EAElB,OAAO;AAAA,IACN,WAAW;AAAA,MACV,WAAW,QAAQ,QAAQ,IAAI,UAAU;AAAA,MACzC,eAAe,QAAQ,QAAQ,IAAI,gBAAgB;AAAA,IACpD;AAAA,IACA,YAAY;AAAA,MACX,SAAS,OAAO,MAAM,OAAO;AAAA,MAC7B,YAAY,OAAO,MAAM,UAAU;AAAA,MACnC,UAAU,OAAO,MAAM,QAAQ;AAAA,MAC/B,WAAW,MAAM,YACd,KAAK,UAAU,IAAI,qBAAqB,IACxC;AAAA,MACH,eAAe,OAAO,MAAM,aAAa;AAAA,MACzC,UAAU,OAAO,MAAM,QAAQ;AAAA,MAC/B,SAAS,OAAO,MAAM,OAAO;AAAA,MAC7B,kBAAkB,OAAO,MAAM,gBAAgB;AAAA,IAChD;AAAA,IACA,cAAc,kBAAkB;AAAA,IAChC,eAAe;AAAA,IACf,YAAY;AAAA,EACb;AAAA;AAGM,SAAS,iBAAiB,CAAC,QAAmB;AAAA,EACpD,OAAO,SACN,WACA,yBACA;AAAA,IACC,aACC;AAAA,EACF,GACA,aAAa;AAAA,IACZ,UAAU;AAAA,MACT;AAAA,QACC,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM,KAAK,UAAU,MAAM,aAAa,GAAG,MAAM,CAAC;AAAA,MACnD;AAAA,IACD;AAAA,EACD,EACD;AAAA,EAEA,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,EAEA,OAAO,SACN,UACA,wBACA;AAAA,IACC,aACC;AAAA,EACF,GACA,aAAa;AAAA,IACZ,UAAU;AAAA,MACT;AAAA,QACC,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM,KAAK,UACV;AAAA,UACC,QAAQ,gBAAgB,IAAI,CAAC,QAAQ;AAAA,YACpC;AAAA,YACA,aAAa,aAAa;AAAA,UAC3B,EAAE;AAAA,QACH,GACA,MACA,CACD;AAAA,MACD;AAAA,IACD;AAAA,EACD,EACD;AAAA,EAEA,OAAO,SACN,kBACA,gCACA;AAAA,IACC,aACC;AAAA,EACF,GACA,aAAa;AAAA,IACZ,UAAU;AAAA,MACT;AAAA,QACC,KAAK;AAAA,QACL,UAAU;AAAA,QACV,MAAM,KAAK,UAAU,sBAAsB,MAAM,CAAC;AAAA,MACnD;AAAA,IACD;AAAA,EACD,EACD;AAAA;;;AI5SD;AAKO,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,EAEA,WACC,QACA,sBACA,+MACA;AAAA,IACC,SAAS,EACP,KAAK,CAAC,WAAW,OAAO,CAAC,EACzB,SAAS,EACT,SAAS,6BAA6B;AAAA,IACxC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EAClE,GACA,SAAS,SAAS,WACjB,aAAa,MAAM,UAAU,EAAE,QAAQ,OAAO,EAAE,SAAS,KAAK,CAAC,CAAC,CAClE;AAAA;;;ACjCD,cAAS;AAOF,SAAS,qBAAqB,CACpC,QACA,iBAAiC,WAChC;AAAA,EACD,WAOC,QACA,kBACA,gLACA;AAAA,IACC,OAAO,GAAE,OAAO,EAAE,SAAS,4CAA4C;AAAA,IACvE,aAAa,GACX,KAAK,CAAC,YAAY,YAAY,KAAK,CAAC,EACpC,SAAS,EACT,SACA,mFACD;AAAA,IACD,SAAS,GACP,QAAQ,KAAK,EACb,SAAS,EACT,SAAS,kDAAmD;AAAA,IAC9D,OAAO,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAA+B;AAAA,IACrE,QAAQ,GACN,OAAO,EACP,SAAS,EACT,SAAS,mDAAmD;AAAA,EAC/D,GACA,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,UAAU,KAAK,MAAM,CAAC,CAC5D;AAAA,EAEA,WACC,QACA,oBACA,qSACA;AAAA,IACC,YAAY,GACV,OAAO,EACP,SAAS,uDAAsD;AAAA,EAClE,GACA,SAAS,iBAAiB;AAAA,IACzB,MAAM,WAAW,MAAM,eAAe,EAAE,UAAU,IAAI,YAAY;AAAA,MACjE,YAAY;AAAA,IACb,CAAC;AAAA,IACD,OAAO,WACJ,aAAa,QAAQ,IACrB,aACA;AAAA,MACC,OAAO;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS,6BAA6B;AAAA,MACvC;AAAA,IACD,GACA,IACD;AAAA,GAEJ;AAAA;;;ACrED;AACA,cAAS;AAOT,IAAM,oBAAoB;AAG1B,IAAM,eAAe;AAAA,EACpB,YAAY,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,uBAAuB;AAAA,EAClE,YAAY,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,gCAAgC;AAAA,EAC3E,UAAU,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,EACvE,QAAQ,GACN,OAAO,EACP,SAAS,EACT,SAAS,mDAAmD;AAAA,EAC9D,OAAO,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAC/D;AAGA,IAAM,gBAAgB;AAAA,EACrB,YAAY,aAAa;AAAA,EACzB,UAAU,aAAa;AAAA,EACvB,QAAQ,aAAa;AAAA,EACrB,OAAO,aAAa;AACrB;AAEO,SAAS,kBAAkB,CACjC,QACA,iBAAiC,WAChC;AAAA,EACD,WASC,QACA,sBACA,8JACA;AAAA,OACI;AAAA,IACH,QAAQ,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,IACnE,WAAW,GACT,OAAO,EACP,SAAS,EACT,SAAS,+BAA+B;AAAA,EAC3C,GACA,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,MAAM,YAAY,KAAK,MAAM,CAAC,CACpE;AAAA,EAEA,WAUC,QACA,uBACA,wHACA;AAAA,OACI;AAAA,IACH,QAAQ,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,IACnE,WAAW,GACT,OAAO,EACP,SAAS,EACT,SAAS,+BAA+B;AAAA,IAC1C,iBAAiB,GACf,OAAO,EACP,SAAS,EACT,SAAS,8CAA8C;AAAA,EAC1D,GACA,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,MAAM,aAAa,KAAK,MAAM,CAAC,CACrE;AAAA,EAEA,WAaC,QACA,gBACA,wYACA;AAAA,IACC,WAAW,GACT,KAAK,iBAAiB,EACtB,SAAS,uCAAuC;AAAA,OAC/C;AAAA,IACH,QAAQ,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,IACnE,WAAW,GACT,OAAO,EACP,SAAS,EACT,SAAS,+BAA+B;AAAA,IAC1C,iBAAiB,GACf,OAAO,EACP,SAAS,EACT,SAAS,6CAA6C;AAAA,IACxD,OAAO,GACL,OAAO,EACP,SAAS,EACT,SACA,qIACD;AAAA,IACD,WAAW,GACT,QAAQ,EACR,SAAS,EACT,SACA,oLACD;AAAA,EACF,GACA,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,MAAM,OAAO,KAAK,MAAM,CAAC,CAC/D;AAAA,EAEA,WAUC,QACA,wBACA,yQACA;AAAA,OACI;AAAA,IACH,cAAc,GACZ,OAAO,EACP,SAAS,EACT,SAAS,gCAAgC;AAAA,IAC3C,QAAQ,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,IACnE,OAAO,GACL,OAAO,EACP,SAAS,EACT,SACA,oGACD;AAAA,EACF,GACA,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,MAAM,cAAc,KAAK,MAAM,CAAC,CACtE;AAAA,EAEA,WAMC,QACA,gBACA,0FACA,KAAK,cAAc,GACnB,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,MAAM,OAAO,KAAK,MAAM,CAAC,CAC/D;AAAA,EAEA,WASC,QACA,sBACA,qIACA;AAAA,OACI;AAAA,IACH,MAAM,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,IACjE,QAAQ,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,EACpE,GACA,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,MAAM,aAAa,KAAK,MAAM,CAAC,CACrE;AAAA,EAEA,WACC,QACA,sBACA,8SACA;AAAA,IACC,YAAY,GACV,OAAO,EACP,SAAS,sDAAqD;AAAA,EACjE,GACA,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,MAAM,YAAY,OAAO,UAAU,CAAC,CAC1E;AAAA,EAEA,WACC,QACA,kBACA,kPACA,CAAC,GACD,YAAY,aAAa,MAAM,eAAe,EAAE,MAAM,SAAS,CAAC,CACjE;AAAA,EAEA,WAGC,QACA,eACA,6PACA;AAAA,IACC,UAAU,GACR,MACA,GAAE,OAAO;AAAA,MACR,MAAM,GAAE,OAAO,EAAE,SAAS,sBAAsB;AAAA,MAChD,QAAQ,GAAE,OAAO,GAAE,OAAO,GAAG,GAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACnD,CAAC,CACF,EACC,IAAI,CAAC,EACL,IAAI,EAAE,EACN,SAAS,yCAAyC;AAAA,EACrD,GACA,OAAO,WACN,aAAa,MAAM,eAAe,EAAE,MAAM,OAAO,QAAQ,CAAC,CAC5D;AAAA;;;ACjPD;AAEA,cAAS;AAQT,eAAe,QAAQ,CACtB,gBACA,YACwD;AAAA,EACxD,MAAM,WAAW,MAAM,eAAe,EAAE,UAAU,IAAI,YAAY;AAAA,IACjE,YAAY;AAAA,EACb,CAAC;AAAA,EACD,IAAI,CAAC;AAAA,IAAU,MAAM,IAAI,MAAM,uBAAuB,YAAY;AAAA,EAClE,MAAM,MAAM,SAAS;AAAA,EAIrB,IAAI,CAAC,KAAK;AAAA,IACT,MAAM,IAAI,MACT,wBAAwB,2BAA2B,SAAS,aAC7D;AAAA,EACD;AAAA,EACA,OAAO,EAAE,WAAW,IAAI,aAAa,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,EAAE;AAAA;AAGxD,SAAS,qBAAqB,CACpC,QACA,iBAAiC,WAChC;AAAA,EACD,WACC,QACA,0BACA,gGACA;AAAA,IACC,YAAY,GACV,OAAO,EACP,SACA,6FACD;AAAA,IACD,cAAc,GACZ,OAAO,EACP,SAAS,EACT,SAAS,wDAAwD;AAAA,EACpE,GACA,SAAS,YAAY,mBAAmB;AAAA,IACvC,QAAQ,WAAW,SAAS,MAAM,SAAS,gBAAgB,UAAU;AAAA,IACrE,MAAM,OAAO,qBACZ,YACA,WACA,cACA,IACD;AAAA,IACA,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,CAAC,EAAE;AAAA,GAEnD;AAAA;;;ACrDM,SAAS,oBAAoB,CACnC,QACA,iBAAiC,WAChC;AAAA,EACD,WACC,QACA,iBACA,wbACA,CAAC,GACD,YAAY,aAAa,MAAM,eAAe,EAAE,QAAQ,MAAM,KAAK,CAAC,CACrE;AAAA;;;AChBD;AACA;AACA,cAAS;AAOF,SAAS,qBAAqB,CACpC,QACA,iBAAyC,WACxC;AAAA,EACD,WACC,QACA,kBACA,gJACA,CAAC,GACD,YAAY;AAAA,IACX,QAAQ,SAAS,MAAM,eAAe,EAAE,UAAU,KAAK;AAAA,IACvD,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,eAAe,EAAE,UAAU,IAAI,IAAI;AAAA,IACxD,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,qnBACA;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,eAAe,EAAE,UAAU,gBAC/C,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,eAAe,EAAE,UAAU,WAAW,MAAM,OAAO;AAAA,MACrE;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,0KACA;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,eAAe,EAAE,UAAU,QAAQ,MAAM;AAAA,MAC7D;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,sBACA,2UACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,WAAW,GACT,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,SAAS,yBAAyB;AAAA,IACpC,SAAS,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,uBAAuB;AAAA,EACzE,GACA,SAAS,MAAM,WAAW,cAAc;AAAA,IACvC,MAAM,SAAS,MAAM,eAAe,EAAE,UAAU,SAAS,MAAM;AAAA,MAC9D;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,kBACA,2MACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,SAAS,MAAM,eAAe,EAAE,UAAU,KAAK,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,WAMC,QACA,kBACA,wOACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe;AAAA,IACzC,OAAO,GACL,OAAO,EACP,IAAI,EACJ,SAAS,EACT,SAAS,EACT,SAAS,oBAAoB;AAAA,IAC/B,QAAQ,GACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,SAAS,mBAAmB;AAAA,IAC9B,UAAU,GACR,QAAQ,EACR,SAAS,EACT,SAAS,qDAAqD;AAAA,EACjE,GACA,SAAS,MAAM,OAAO,QAAQ,eAAe;AAAA,IAC5C,MAAM,SAAS,MAAM,eAAe,EAAE,UAAU,KAAK,MAAM;AAAA,MAC1D;AAAA,MACA;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,eAAe,EAAE,UAAU,OAAO,IAAI;AAAA,IAC3D,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,OAAO,QAAQ,CAAC,EAAE;AAAA,GAE7D;AAAA,EAEA,WAOC,QACA,oBACA,6vBACA;AAAA,IACC,MAAM,GACJ,OAAO,EACP,SAAS,2DAA2D;AAAA,IACtE,YAAY,GACV,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,SAAS,EACT,SAAS,oDAAoD;AAAA,IAC/D,aAAa,GACX,OAAO,EACP,SAAS,EACT,SACA,wGACD;AAAA,IACD,QAAQ,GACN,QAAQ,EACR,SAAS,EACT,SACA,sFACD;AAAA,IACD,YAAY,GACV,KAAK,CAAC,UAAU,SAAS,CAAC,EAC1B,SAAS,EACT,SACA,+IACD;AAAA,EACF,GACA,SAAS,MAAM,YAAY,aAAa,QAAQ,iBAAiB;AAAA,IAChE,MAAM,UAAU,MAAM,mBAAmB,IAAI;AAAA,IAC7C,IAAI;AAAA,MACH,MAAM,SAAS,MAAM,eAAe,EAAE,UAAU,OAAO;AAAA,QACtD,MAAM,QAAQ;AAAA,QACd,SAAS,QAAQ;AAAA,QACjB,aAAa,QAAQ;AAAA,QACrB,SAAS,QAAQ;AAAA,QACjB,QAAQ,QAAQ;AAAA,QAChB,aAAa,QAAQ;AAAA,QACrB,YAAY;AAAA,WACR,eAAe,YAAY,EAAE,WAAW,IAAI,CAAC;AAAA,WAC7C,gBAAgB,YAAY,EAAE,YAAY,IAAI,CAAC;AAAA,WAC/C,WAAW,YAAY,EAAE,OAAO,IAAI,CAAC;AAAA,WACrC,eAAe,YAAY,EAAE,WAAW,IAAI,CAAC;AAAA,MAClD,CAAC;AAAA,MACD,OAAO;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,MAClE;AAAA,MACC,OAAO,KAAK;AAAA,MAIb,IAAI,eAAe,wBAAwB;AAAA,QAC1C,OAAO;AAAA,UACN,SAAS;AAAA,YACR;AAAA,cACC,MAAM;AAAA,cACN,MAAM,KAAK,UACV,EAAE,mBAAmB,SAAS,IAAI,QAAQ,GAC1C,MACA,CACD;AAAA,YACD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,MACA,MAAM;AAAA;AAAA,GAGT;AAAA,EAEA,WACC,QACA,qBACA,0NACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,SAAS,MAAM,eAAe,EAAE,UAAU,QAAQ,IAAI;AAAA,IAC5D,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,uBACA,yIACA,EAAE,MAAM,GAAE,OAAO,EAAE,SAAS,eAAe,EAAE,GAC7C,SAAS,WAAW;AAAA,IACnB,MAAM,SAAS,MAAM,eAAe,EAAE,UAAU,UAAU,IAAI;AAAA,IAC9D,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA;;;ACjVD;AACA,cAAS;AAWF,SAAS,yBAAyB,CACxC,QACA,iBAA6C,WAC5C;AAAA,EACD,WACC,QACA,sBACA,wFACA,CAAC,GACD,YAAY;AAAA,IACX,QAAQ,SAAS,MAAM,eAAe,EAAE,cAAc,KAAK;AAAA,IAC3D,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,MAAM,MAAM,CAAC,EAAE,CAAC;AAAA,IAChE;AAAA,GAEF;AAAA,EAEA,WACC,QACA,qBACA,mFACA,EAAE,IAAI,GAAE,OAAO,EAAE,SAAS,iBAAiB,EAAE,GAC7C,SAAS,SAAS;AAAA,IACjB,MAAM,SAAS,MAAM,eAAe,EAAE,cAAc,IAAI,EAAE;AAAA,IAC1D,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,QAAQ,MAAM,CAAC,EAAE,CAAC;AAAA,IAClE;AAAA,GAEF;AAAA,EAEA,WAiBC,QACA,wBACA,oVACA;AAAA,IACC,MAAM,GAAE,OAAO,EAAE,SAAS,yCAAyC;AAAA,IACnE,cAAc,GACZ,OAAO,EACP,SAAS,EACT,SAAS,kDAAkD;AAAA,IAC7D,WAAW,GACT,OAAO,EACP,SAAS,EACT,SAAS,mDAAmD;AAAA,IAC9D,UAAU,GACR,MACA,GAAE,OAAO;AAAA,MACR,MAAM,GAAE,KAAK,mBAAmB;AAAA,MAChC,YAAY,GAAE,OAAO,EAAE,SAAS;AAAA,MAChC,cAAc,GAAE,OAAO,EAAE,SAAS;AAAA,MAClC,QAAQ,GAAE,OAAO,EAAE,SAAS;AAAA,MAC5B,QAAQ,GAAE,OAAO,EAAE,SAAS;AAAA,MAC5B,WAAW,GAAE,OAAO,EAAE,SAAS;AAAA,MAC/B,iBAAiB,GAAE,OAAO,EAAE,SAAS;AAAA,MACrC,UAAU,GAAE,OAAO,EAAE,SAAS;AAAA,MAC9B,cAAc,GAAE,OAAO,EAAE,SAAS;AAAA,MAClC,OAAO,GAAE,OAAO,EAAE,SAAS;AAAA,MAC3B,eAAe,GAAE,OAAO,EAAE,SAAS;AAAA,MACnC,OAAO,GAAE,OAAO,EAAE,SAAS;AAAA,MAC3B,WAAW,GAAE,MAAM,CAAC,GAAE,OAAO,GAAG,GAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,MACtD,WAAW,GAAE,MAAM,CAAC,GAAE,OAAO,GAAG,GAAE,OAAO,CAAC,CAAC,EAAE,SAAS;AAAA,IACvD,CAAC,CACF,EACC,SAAS,EACT,SACA,oTACD;AAAA,IACD,KAAK,GAAE,OAAO,EAAE,SAAS,aAAa;AAAA,IACtC,QAAQ,GACN,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC,EACA,SAAS,EACT,SAAS,yCAAyC;AAAA,IACpD,SAAS,GACP,KAAK,CAAC,WAAW,WAAW,cAAc,MAAM,CAAC,EACjD,SAAS,EACT,SAAS,uCAAuC;AAAA,IAClD,QAAQ,GACN,OAAO,GAAE,OAAO,GAAG,GAAE,QAAQ,CAAC,EAC9B,SAAS,EACT,SACA,qEACD;AAAA,IACD,YAAY,GACV,OAAO,GAAE,OAAO,GAAG,GAAE,QAAQ,CAAC,EAC9B,SAAS,EACT,SACA,gFACD;AAAA,EACF,GACA,OAAO,UAAU;AAAA,IAChB,MAAM,MAAM,MAAM,eAAe,EAAE,cAAc,OAChD,KACD;AAAA,IACA,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;AAAA,IAC/D;AAAA,GAEF;AAAA,EAEA,WAkBC,QACA,wBACA,uGACA;AAAA,IACC,IAAI,GAAE,OAAO;AAAA,IACb,MAAM,GAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,IAC9D,KAAK,GAAE,OAAO,EAAE,SAAS;AAAA,IACzB,QAAQ,GAAE,OAAO,GAAE,OAAO,GAAG,GAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,IACnD,YAAY,GACV,OAAO,GAAE,OAAO,GAAG,GAAE,QAAQ,CAAC,EAC9B,SAAS,EACT,SAAS,qDAAqD;AAAA,IAChE,QAAQ,GACN,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC,EACA,SAAS;AAAA,IACX,SAAS,GACP,KAAK,CAAC,WAAW,WAAW,cAAc,MAAM,CAAC,EACjD,SAAS,EACT,SAAS;AAAA,IACX,YAAY,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,IAC7C,WAAW,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IAC9C,aAAa,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC/C,GACA,SAAS,OAAO,YAAY;AAAA,IAC3B,MAAM,MAAM,MAAM,eAAe,EAAE,cAAc,OAChD,IACA,KACD;AAAA,IACA,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;AAAA,IAC/D;AAAA,GAEF;AAAA,EAEA,WACC,QACA,wBACA,mEACA,EAAE,IAAI,GAAE,OAAO,EAAE,GACjB,SAAS,SAAS;AAAA,IACjB,MAAM,MAAM,MAAM,eAAe,EAAE,cAAc,OAAO,EAAE;AAAA,IAC1D,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;AAAA,IAC/D;AAAA,GAEF;AAAA,EAEA,WACC,QACA,sBACA,gLACA,EAAE,IAAI,GAAE,OAAO,EAAE,SAAS,iBAAiB,EAAE,GAC7C,SAAS,SAAS;AAAA,IACjB,MAAM,MAAM,MAAM,eAAe,EAAE,cAAc,KAAK,EAAE;AAAA,IACxD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;AAAA,IAC/D;AAAA,GAEF;AAAA,EAEA,WAMC,QACA,wBACA,yLACA;AAAA,IACC,IAAI,GAAE,OAAO;AAAA,IACb,WAAW,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACxC,SAAS,GAAE,OAAO,EAAE,IAAI,EAAE,YAAY;AAAA,IACtC,OAAO,GACL,OAAO,EACP,SAAS,EACT,SACA,6DACD;AAAA,EACF,GACA,SAAS,IAAI,WAAW,SAAS,YAAY;AAAA,IAC5C,MAAM,MAAM,MAAM,eAAe,EAAE,cAAc,OAAO,IAAI;AAAA,MAC3D;AAAA,MACA;AAAA,SACI,UAAU,YAAY,EAAE,MAAM,IAAI,CAAC;AAAA,IACxC,CAAC;AAAA,IACD,OAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC,EAAE,CAAC;AAAA,IAC/D;AAAA,GAEF;AAAA;;;AXlPD,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,0BAA0B,MAAM;AAAA,EAChC,qBAAqB,MAAM;AAAA,EAC3B,mBAAmB,MAAM;AAAA,EACzB,qBAAqB,MAAM;AAAA,EAC3B,sBAAsB,MAAM;AAAA,EAC5B,kBAAkB,MAAM;AAAA,EAExB,OAAO;AAAA;",
19
- "debugId": "539F2A4C117F5FEC64756E2164756E21",
18
+ "mappings": "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",
19
+ "debugId": "26696E4DD72BCA8964756E2164756E21",
20
20
  "names": []
21
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@secondlayer/mcp",
3
- "version": "4.2.0",
3
+ "version": "4.2.2",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,10 +23,7 @@
23
23
  "import": "./dist/index.js"
24
24
  }
25
25
  },
26
- "files": [
27
- "dist",
28
- "README.md"
29
- ],
26
+ "files": ["dist", "README.md"],
30
27
  "scripts": {
31
28
  "build": "bunup",
32
29
  "dev": "bunup --watch",
@@ -36,7 +33,7 @@
36
33
  },
37
34
  "dependencies": {
38
35
  "@modelcontextprotocol/sdk": "^1.27.1",
39
- "@secondlayer/bundler": "^0.3.7",
36
+ "@secondlayer/bundler": "^0.4.0",
40
37
  "@secondlayer/scaffold": "^1.3.0",
41
38
  "@secondlayer/sdk": "^6.26.0",
42
39
  "@secondlayer/shared": "^6.32.0",