@varun-ai07/covenant-mcp 1.2.3 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +1056 -170
  2. package/dist/abis/MultiTokenEscrow.json +836 -0
  3. package/dist/abis/v2/AgentRegistry.json +872 -0
  4. package/dist/abis/v2/DisputeResolution.json +493 -0
  5. package/dist/abis/v2/InsurancePool.json +645 -0
  6. package/dist/abis/v2/ReceiptVerifier.json +394 -0
  7. package/dist/abis/v2/RevisionManager.json +544 -0
  8. package/dist/abis/v2/TaskEscrow.json +1018 -0
  9. package/dist/cli.js +0 -0
  10. package/dist/config.d.ts +13 -1
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +84 -25
  13. package/dist/config.js.map +1 -1
  14. package/dist/lib/did.d.ts +72 -0
  15. package/dist/lib/did.d.ts.map +1 -0
  16. package/dist/lib/did.js +115 -0
  17. package/dist/lib/did.js.map +1 -0
  18. package/dist/lib/formatResponse.d.ts +33 -0
  19. package/dist/lib/formatResponse.d.ts.map +1 -0
  20. package/dist/lib/formatResponse.js +92 -0
  21. package/dist/lib/formatResponse.js.map +1 -0
  22. package/dist/lib/schemaHelpers.d.ts +11 -0
  23. package/dist/lib/schemaHelpers.d.ts.map +1 -0
  24. package/dist/lib/schemaHelpers.js +11 -0
  25. package/dist/lib/schemaHelpers.js.map +1 -0
  26. package/dist/lib/store.d.ts +10 -0
  27. package/dist/lib/store.d.ts.map +1 -0
  28. package/dist/lib/store.js +39 -0
  29. package/dist/lib/store.js.map +1 -0
  30. package/dist/lib/verify.d.ts +21 -0
  31. package/dist/lib/verify.d.ts.map +1 -0
  32. package/dist/lib/verify.js +568 -0
  33. package/dist/lib/verify.js.map +1 -0
  34. package/dist/schemas.d.ts +5 -5
  35. package/dist/schemas.d.ts.map +1 -1
  36. package/dist/server.d.ts +1 -25
  37. package/dist/server.d.ts.map +1 -1
  38. package/dist/server.js +53 -37
  39. package/dist/server.js.map +1 -1
  40. package/dist/shared-types.d.ts +67 -0
  41. package/dist/shared-types.d.ts.map +1 -0
  42. package/dist/shared-types.js +86 -0
  43. package/dist/shared-types.js.map +1 -0
  44. package/dist/tools/account-abstraction.d.ts +3 -0
  45. package/dist/tools/account-abstraction.d.ts.map +1 -0
  46. package/dist/tools/account-abstraction.js +364 -0
  47. package/dist/tools/account-abstraction.js.map +1 -0
  48. package/dist/tools/batches.d.ts.map +1 -1
  49. package/dist/tools/batches.js +68 -37
  50. package/dist/tools/batches.js.map +1 -1
  51. package/dist/tools/bounties.d.ts +3 -0
  52. package/dist/tools/bounties.d.ts.map +1 -0
  53. package/dist/tools/bounties.js +304 -0
  54. package/dist/tools/bounties.js.map +1 -0
  55. package/dist/tools/bridge.d.ts +3 -0
  56. package/dist/tools/bridge.d.ts.map +1 -0
  57. package/dist/tools/bridge.js +190 -0
  58. package/dist/tools/bridge.js.map +1 -0
  59. package/dist/tools/collectives.d.ts.map +1 -1
  60. package/dist/tools/collectives.js +74 -46
  61. package/dist/tools/collectives.js.map +1 -1
  62. package/dist/tools/covenant-help.d.ts +3 -0
  63. package/dist/tools/covenant-help.d.ts.map +1 -0
  64. package/dist/tools/covenant-help.js +321 -0
  65. package/dist/tools/covenant-help.js.map +1 -0
  66. package/dist/tools/cross-chain.d.ts +3 -0
  67. package/dist/tools/cross-chain.d.ts.map +1 -0
  68. package/dist/tools/cross-chain.js +77 -0
  69. package/dist/tools/cross-chain.js.map +1 -0
  70. package/dist/tools/disputes.d.ts.map +1 -1
  71. package/dist/tools/disputes.js +39 -33
  72. package/dist/tools/disputes.js.map +1 -1
  73. package/dist/tools/escrow.d.ts.map +1 -1
  74. package/dist/tools/escrow.js +248 -199
  75. package/dist/tools/escrow.js.map +1 -1
  76. package/dist/tools/fiat-onramp.d.ts +3 -0
  77. package/dist/tools/fiat-onramp.d.ts.map +1 -0
  78. package/dist/tools/fiat-onramp.js +108 -0
  79. package/dist/tools/fiat-onramp.js.map +1 -0
  80. package/dist/tools/governance.d.ts +3 -0
  81. package/dist/tools/governance.d.ts.map +1 -0
  82. package/dist/tools/governance.js +271 -0
  83. package/dist/tools/governance.js.map +1 -0
  84. package/dist/tools/grants.d.ts +3 -0
  85. package/dist/tools/grants.d.ts.map +1 -0
  86. package/dist/tools/grants.js +269 -0
  87. package/dist/tools/grants.js.map +1 -0
  88. package/dist/tools/insurance.d.ts.map +1 -1
  89. package/dist/tools/insurance.js +92 -45
  90. package/dist/tools/insurance.js.map +1 -1
  91. package/dist/tools/market.d.ts.map +1 -1
  92. package/dist/tools/market.js +122 -103
  93. package/dist/tools/market.js.map +1 -1
  94. package/dist/tools/matching.d.ts +3 -0
  95. package/dist/tools/matching.d.ts.map +1 -0
  96. package/dist/tools/matching.js +233 -0
  97. package/dist/tools/matching.js.map +1 -0
  98. package/dist/tools/messaging.d.ts +3 -0
  99. package/dist/tools/messaging.d.ts.map +1 -0
  100. package/dist/tools/messaging.js +159 -0
  101. package/dist/tools/messaging.js.map +1 -0
  102. package/dist/tools/multi-token.d.ts +3 -0
  103. package/dist/tools/multi-token.d.ts.map +1 -0
  104. package/dist/tools/multi-token.js +274 -0
  105. package/dist/tools/multi-token.js.map +1 -0
  106. package/dist/tools/offchain-coordinator.d.ts +3 -0
  107. package/dist/tools/offchain-coordinator.d.ts.map +1 -0
  108. package/dist/tools/offchain-coordinator.js +436 -0
  109. package/dist/tools/offchain-coordinator.js.map +1 -0
  110. package/dist/tools/protocol.d.ts.map +1 -1
  111. package/dist/tools/protocol.js +19 -6
  112. package/dist/tools/protocol.js.map +1 -1
  113. package/dist/tools/receipts.d.ts.map +1 -1
  114. package/dist/tools/receipts.js +39 -39
  115. package/dist/tools/receipts.js.map +1 -1
  116. package/dist/tools/registry.d.ts.map +1 -1
  117. package/dist/tools/registry.js +90 -43
  118. package/dist/tools/registry.js.map +1 -1
  119. package/dist/tools/reputation-vc.d.ts +3 -0
  120. package/dist/tools/reputation-vc.d.ts.map +1 -0
  121. package/dist/tools/reputation-vc.js +438 -0
  122. package/dist/tools/reputation-vc.js.map +1 -0
  123. package/dist/tools/revisions.d.ts +3 -0
  124. package/dist/tools/revisions.d.ts.map +1 -0
  125. package/dist/tools/revisions.js +108 -0
  126. package/dist/tools/revisions.js.map +1 -0
  127. package/dist/tools/router.d.ts +3 -0
  128. package/dist/tools/router.d.ts.map +1 -0
  129. package/dist/tools/router.js +104 -0
  130. package/dist/tools/router.js.map +1 -0
  131. package/dist/tools/streaming.d.ts +3 -0
  132. package/dist/tools/streaming.d.ts.map +1 -0
  133. package/dist/tools/streaming.js +350 -0
  134. package/dist/tools/streaming.js.map +1 -0
  135. package/dist/tools/templates.d.ts +3 -0
  136. package/dist/tools/templates.d.ts.map +1 -0
  137. package/dist/tools/templates.js +392 -0
  138. package/dist/tools/templates.js.map +1 -0
  139. package/dist/tools/training.d.ts +3 -0
  140. package/dist/tools/training.d.ts.map +1 -0
  141. package/dist/tools/training.js +304 -0
  142. package/dist/tools/training.js.map +1 -0
  143. package/dist/tools/v2-settlement.d.ts +3 -0
  144. package/dist/tools/v2-settlement.d.ts.map +1 -0
  145. package/dist/tools/v2-settlement.js +226 -0
  146. package/dist/tools/v2-settlement.js.map +1 -0
  147. package/dist/tools/verification.d.ts +3 -0
  148. package/dist/tools/verification.d.ts.map +1 -0
  149. package/dist/tools/verification.js +215 -0
  150. package/dist/tools/verification.js.map +1 -0
  151. package/dist/tools/verify-deep.d.ts +3 -0
  152. package/dist/tools/verify-deep.d.ts.map +1 -0
  153. package/dist/tools/verify-deep.js +125 -0
  154. package/dist/tools/verify-deep.js.map +1 -0
  155. package/dist/types.d.ts +16 -3
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +4 -23
  158. package/dist/types.js.map +1 -1
  159. package/package.json +2 -1
@@ -11,6 +11,8 @@ import { parseEther, formatEther, isAddress } from "viem";
11
11
  import { loadAbi, CONTRACTS, getAccount } from "../config.js";
12
12
  import { executeOrPrepare, readContract } from "../handlers/wallet.js";
13
13
  import { formatTxResult, formatReadResult, formatError } from "../handlers/transactions.js";
14
+ import { parseContractError, formatStructuredError } from "../lib/formatResponse.js";
15
+ import { taskId as taskIdSchema, ethAddress, ethAmount, ipfsCid, unixDeadline } from "../lib/schemaHelpers.js";
14
16
  import { stringToBytes32, stringsToBytes32 } from "../utils.js";
15
17
  const ABI = loadAbi("AgentCollective");
16
18
  // Input validation schemas
@@ -36,13 +38,17 @@ export function registerCollectiveTools(server) {
36
38
  // ──────────────────────────────────────────────────────────────
37
39
  server.registerTool("corven_create_collective", {
38
40
  title: "Create Agent Collective",
39
- description: "Create a new collective of agents that pool resources. " +
40
- "Collectives can launch tasks and share proceeds. " +
41
- "You must send at least minContribution ETH as your initial stake.",
41
+ description: "Create a new collective of agents that pool resources. Collectives can launch tasks and share proceeds. You must send at least minContribution ETH as your initial stake.\n" +
42
+ "USE WHEN: You want to form a group of agents to collaborate on tasks and pool funds for shared operations.\n" +
43
+ "REQUIRES: You must be a registered agent. Your wallet must have enough ETH for the initial contribution plus gas.\n" +
44
+ "RETURNS: Transaction hash. The collective ID is emitted in the event logs.\n" +
45
+ "COMES AFTER: corven_register_agent (you must be registered first).\n" +
46
+ "COMES BEFORE: corven_join_collective (others can join), corven_launch_collective_task (launch tasks from pooled funds).\n" +
47
+ "NOTE: maxMembers is permanent and cannot be changed after creation. initialContribution defaults to minContribution if omitted.",
42
48
  inputSchema: {
43
- minContribution: z.string().describe("Minimum contribution in ETH to join"),
49
+ minContribution: ethAmount,
44
50
  maxMembers: z.number().describe("Maximum number of members (2-100)"),
45
- initialContribution: z.string().optional().describe("Initial ETH contribution (defaults to minContribution)"),
51
+ initialContribution: ethAmount.optional(),
46
52
  },
47
53
  }, async ({ minContribution, maxMembers, initialContribution }) => {
48
54
  try {
@@ -62,7 +68,8 @@ export function registerCollectiveTools(server) {
62
68
  return formatTxResult(result);
63
69
  }
64
70
  catch (e) {
65
- return formatError(e);
71
+ const parsed = parseContractError(e);
72
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
66
73
  }
67
74
  });
68
75
  // ──────────────────────────────────────────────────────────────
@@ -70,11 +77,16 @@ export function registerCollectiveTools(server) {
70
77
  // ──────────────────────────────────────────────────────────────
71
78
  server.registerTool("corven_join_collective", {
72
79
  title: "Join Collective",
73
- description: "Join an existing collective by contributing ETH. " +
74
- "Contribution must meet the collective's minimum.",
80
+ description: "Join an existing collective by contributing ETH. Contribution must meet the collective's minimum.\n" +
81
+ "USE WHEN: You want to become a member of an existing collective to participate in pooled tasks.\n" +
82
+ "REQUIRES: The collective must exist and not be full. Your contribution must meet the collective's minimum.\n" +
83
+ "RETURNS: Transaction hash confirming your membership.\n" +
84
+ "COMES AFTER: corven_create_collective created the collective, or corven_get_collective to find one to join.\n" +
85
+ "COMES BEFORE: corven_launch_collective_task (as a member, you can launch tasks from pooled funds).\n" +
86
+ "NOTE: Your ETH is added to the collective's pooled treasury.",
75
87
  inputSchema: {
76
- collectiveId: z.number().describe("Collective ID to join"),
77
- contribution: z.string().describe("Contribution amount in ETH"),
88
+ collectiveId: z.number().describe("Numeric collective ID to join"),
89
+ contribution: ethAmount,
78
90
  },
79
91
  }, async ({ collectiveId, contribution }) => {
80
92
  try {
@@ -91,7 +103,8 @@ export function registerCollectiveTools(server) {
91
103
  return formatTxResult(result);
92
104
  }
93
105
  catch (e) {
94
- return formatError(e);
106
+ const parsed = parseContractError(e);
107
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
95
108
  }
96
109
  });
97
110
  // ──────────────────────────────────────────────────────────────
@@ -99,14 +112,19 @@ export function registerCollectiveTools(server) {
99
112
  // ──────────────────────────────────────────────────────────────
100
113
  server.registerTool("corven_launch_collective_task", {
101
114
  title: "Launch Collective Task",
102
- description: "Launch a task from a collective's pooled funds. " +
103
- "Only collective members can call this.",
115
+ description: "Launch a task from a collective's pooled funds. Only collective members can call this.\n" +
116
+ "USE WHEN: The collective has decided to commission work from a specific worker using pooled treasury funds.\n" +
117
+ "REQUIRES: You must be a member of the collective. The collective must have enough pooled ETH for the payment.\n" +
118
+ "RETURNS: Transaction hash. The task ID is emitted in the event logs.\n" +
119
+ "COMES AFTER: corven_create_collective and corven_join_collective built the treasury.\n" +
120
+ "COMES BEFORE: corven_submit_work (worker delivers), corven_submit_deliverable (encrypted delivery to all members).\n" +
121
+ "NOTE: The payment comes from the collective treasury, not your personal wallet.",
104
122
  inputSchema: {
105
- collectiveId: z.number().describe("Collective ID"),
106
- workerAddress: z.string().describe("Worker address to assign"),
107
- payment: z.string().describe("Payment amount in ETH"),
108
- deadline: z.number().describe("Deadline timestamp (seconds)"),
109
- descriptionHash: z.string().describe("IPFS CID for task description"),
123
+ collectiveId: z.number().describe("Numeric collective ID"),
124
+ workerAddress: ethAddress,
125
+ payment: ethAmount,
126
+ deadline: unixDeadline,
127
+ descriptionHash: ipfsCid,
110
128
  },
111
129
  }, async ({ collectiveId, workerAddress, payment, deadline, descriptionHash }) => {
112
130
  try {
@@ -130,20 +148,31 @@ export function registerCollectiveTools(server) {
130
148
  return formatTxResult(result);
131
149
  }
132
150
  catch (e) {
133
- return formatError(e);
151
+ const parsed = parseContractError(e);
152
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
134
153
  }
135
154
  });
136
155
  // ──────────────────────────────────────────────────────────────
137
156
  // get_collective
138
157
  // ──────────────────────────────────────────────────────────────
139
158
  server.registerTool("corven_get_collective", {
140
- title: "Get Collective Details",
141
- description: "Retrieve details about a collective including members and treasury.",
159
+ title: "Get Collective",
160
+ description: "Get collective details by ID, or total collective count if no ID provided.\n" +
161
+ "USE WHEN: You need to inspect a collective's members, treasury balance, or status.\n" +
162
+ "REQUIRES: The collective must exist on-chain.\n" +
163
+ "RETURNS: Collective details including creator, members, total fund, max members, and minimum contribution. If no ID provided, returns total collective count.\n" +
164
+ "COMES AFTER: corven_create_collective created the collective.\n" +
165
+ "COMES BEFORE: corven_join_collective (to join) or corven_launch_collective_task (to use funds).\n" +
166
+ "NOTE: Omit collectiveId to get the total number of collectives.",
142
167
  inputSchema: {
143
- collectiveId: z.number().describe("Collective ID"),
168
+ collectiveId: z.number().optional().describe("Collective ID. Omit to get total count."),
144
169
  },
145
170
  }, async ({ collectiveId }) => {
146
171
  try {
172
+ if (collectiveId === undefined) {
173
+ const count = await readContract(CONTRACTS.AgentCollective, ABI, "collectiveCounter", []);
174
+ return formatReadResult({ collectiveCount: Number(count) }, "Total Collectives");
175
+ }
147
176
  const data = await readContract(CONTRACTS.AgentCollective, ABI, "getCollective", [BigInt(collectiveId)]);
148
177
  const enriched = {
149
178
  ...data,
@@ -152,35 +181,26 @@ export function registerCollectiveTools(server) {
152
181
  return formatReadResult(enriched, `Collective #${collectiveId}`);
153
182
  }
154
183
  catch (e) {
155
- return formatError(e);
156
- }
157
- });
158
- // ──────────────────────────────────────────────────────────────
159
- // get_collective_counter
160
- // ──────────────────────────────────────────────────────────────
161
- server.registerTool("corven_get_collective_counter", {
162
- title: "Get Collective Counter",
163
- description: "Get the total number of collectives created.",
164
- inputSchema: {},
165
- }, async () => {
166
- try {
167
- const count = await readContract(CONTRACTS.AgentCollective, ABI, "collectiveCounter", []);
168
- return formatReadResult({ count: Number(count) }, "Collective Counter");
169
- }
170
- catch (e) {
171
- return formatError(e);
184
+ const parsed = parseContractError(e);
185
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
172
186
  }
173
187
  });
188
+ // get_collective_counter merged into get_collective
174
189
  // ──────────────────────────────────────────────────────────────
175
190
  // corven_submit_deliverable
176
191
  // ──────────────────────────────────────────────────────────────
177
192
  server.registerTool("corven_submit_deliverable", {
178
193
  title: "Submit Collective Deliverable",
179
- description: "Worker submits encrypted deliverables to a collective task. " +
180
- "Each member receives their own encrypted copy.",
194
+ description: "Worker submits encrypted deliverables to a collective task. Each member receives their own encrypted copy.\n" +
195
+ "USE WHEN: You are the assigned worker on a collective task and have completed the work.\n" +
196
+ "REQUIRES: You must be the assigned worker for this task. The task must be in InProgress status.\n" +
197
+ "RETURNS: Transaction hash confirming deliverable submission.\n" +
198
+ "COMES AFTER: corven_launch_collective_task assigned you the work.\n" +
199
+ "COMES BEFORE: corven_claim_deliverable (each member claims their encrypted copy).\n" +
200
+ "NOTE: You must provide one encrypted hash per collective member, in the same order as the member list.",
181
201
  inputSchema: {
182
- collectiveId: z.number().describe("Collective ID"),
183
- taskId: z.number().describe("Task ID"),
202
+ collectiveId: z.number().describe("Numeric collective ID"),
203
+ taskId: taskIdSchema,
184
204
  encryptedDeliveryHashes: z.array(z.string()).describe("Array of encrypted delivery hashes (one per member, will be converted to bytes32)"),
185
205
  },
186
206
  }, async ({ collectiveId, taskId, encryptedDeliveryHashes }) => {
@@ -193,7 +213,8 @@ export function registerCollectiveTools(server) {
193
213
  return formatTxResult(result);
194
214
  }
195
215
  catch (e) {
196
- return formatError(e);
216
+ const parsed = parseContractError(e);
217
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
197
218
  }
198
219
  });
199
220
  // ──────────────────────────────────────────────────────────────
@@ -201,7 +222,13 @@ export function registerCollectiveTools(server) {
201
222
  // ──────────────────────────────────────────────────────────────
202
223
  server.registerTool("corven_claim_deliverable", {
203
224
  title: "Claim Collective Deliverable",
204
- description: "Claim your encrypted deliverable from a collective task.",
225
+ description: "Claim your encrypted deliverable from a collective task.\n" +
226
+ "USE WHEN: You are a collective member and the worker has submitted deliverables for a task.\n" +
227
+ "REQUIRES: You must be a member of the collective. The worker must have already called corven_submit_deliverable.\n" +
228
+ "RETURNS: Transaction hash. Your encrypted deliverable is returned in the event logs.\n" +
229
+ "COMES AFTER: corven_submit_deliverable was called by the worker.\n" +
230
+ "COMES BEFORE: Decrypt the deliverable with your private key to view the content.\n" +
231
+ "NOTE: Each member receives a uniquely encrypted copy — only you can decrypt yours.",
205
232
  inputSchema: {
206
233
  collectiveId: z.number().describe("Collective ID"),
207
234
  },
@@ -214,7 +241,8 @@ export function registerCollectiveTools(server) {
214
241
  return formatTxResult(result);
215
242
  }
216
243
  catch (e) {
217
- return formatError(e);
244
+ const parsed = parseContractError(e);
245
+ return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
218
246
  }
219
247
  });
220
248
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collectives.js","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collectives.js","sourceRoot":"","sources":["../../src/tools/collectives.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerCovenantHelpTools(server: McpServer): void;
3
+ //# sourceMappingURL=covenant-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"covenant-help.d.ts","sourceRoot":"","sources":["../../src/tools/covenant-help.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiWjE"}
@@ -0,0 +1,321 @@
1
+ import { formatReadResult } from "../handlers/transactions.js";
2
+ export function registerCovenantHelpTools(server) {
3
+ server.registerTool("corven_help", {
4
+ title: "COVENANT Protocol Guide",
5
+ description: "Comprehensive protocol guide for AI agents. Returns structured JSON with " +
6
+ "what COVENANT is, critical format rules, common mistakes, quick-start workflows, " +
7
+ "all tools by category, error references, and network details. " +
8
+ "Call this FIRST before using any other corven_ tool.",
9
+ inputSchema: {},
10
+ }, async () => {
11
+ try {
12
+ const guide = {
13
+ // ──────────────────────────────────────────────────────
14
+ // 1. What is COVENANT
15
+ // ──────────────────────────────────────────────────────
16
+ what_is_covenant: "COVENANT is an autonomous agent enforcement protocol that enables AI agents to " +
17
+ "discover, negotiate, hire, and pay each other on-chain via Base Sepolia (L2). " +
18
+ "It uses three core contracts (AgentRegistry for identity/reputation, TaskEscrow " +
19
+ "for trustless payment escrow, and ReceiptVerifier for ERC-8004 attestation receipts) " +
20
+ "plus extensions for competitive marketplaces, parallel batch execution, agent collectives, " +
21
+ "insurance pools, dispute resolution with juror voting, ZK capability/reputation proofs, " +
22
+ "a unified router for gas-efficient batched operations, multi-token escrow (USDC/DAI/USDT), " +
23
+ "and W3C Verifiable Credentials for reputation portability. " +
24
+ "Settlement happens onchain; coordination (profiles, matching, messaging, templates) happens offchain with proofs.",
25
+ // ──────────────────────────────────────────────────────
26
+ // 2. Critical Format Rules
27
+ // ──────────────────────────────────────────────────────
28
+ critical_format_rules: {
29
+ eth_amounts: "Must be a string with decimal point, e.g. '0.001', '1.5', '100.0'. " +
30
+ "NEVER pass raw wei numbers. Min: 0.001 ETH. Max: 1000 ETH. " +
31
+ "The SDK converts to wei internally via parseEther().",
32
+ addresses: "Must be valid EVM checksummed addresses starting with 0x, " +
33
+ "e.g. '0xB215589dA259A98eEE8BF39739F6255131ac33A1'. " +
34
+ "42 characters total. Zero address (0x000...000) is never valid for agent/task params.",
35
+ ipfs_cids: "IPFS CIDs (Content Identifiers) are used for task descriptions and deliverables. " +
36
+ "Typically start with 'Qm' (CIDv0) or 'bafy' (CIDv1). " +
37
+ "Example: 'QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o'. " +
38
+ "Store your task description on IPFS first, then pass the CID.",
39
+ deadlines: "Unix timestamp in SECONDS (not milliseconds). " +
40
+ "Must be in the future and within 1 year. " +
41
+ "Example: Math.floor(Date.now() / 1000) + 86400 for 24 hours from now.",
42
+ task_ids: "Numeric integers starting from 0. Auto-incremented on-chain. " +
43
+ "Always use the task ID returned from create_task for subsequent operations.",
44
+ priority_levels: "0=Low (0.5% fee), 1=Medium (1% fee, default), 2=High (2% fee), 3=Urgent (5% fee).",
45
+ },
46
+ // ──────────────────────────────────────────────────────
47
+ // 3. Top Mistake
48
+ // ──────────────────────────────────────────────────────
49
+ top_mistake: "NEVER call corven_create_task before corven_register_agent. " +
50
+ "You MUST register as an agent on-chain first (corven_register_agent), " +
51
+ "otherwise task creation will fail because the protocol cannot verify your identity. " +
52
+ "The one exception is corven_register_and_create_task which does both in a single transaction.",
53
+ // ──────────────────────────────────────────────────────
54
+ // 4. Quick-Start Sequences
55
+ // ──────────────────────────────────────────────────────
56
+ quick_start_sequences: {
57
+ register_and_hire: {
58
+ description: "Client registers and hires a worker for a direct task.",
59
+ steps: [
60
+ "1. corven_register_agent (name, capabilities, stake='0.001')",
61
+ "2. corven_find_workers (capability='data-analysis') to discover workers",
62
+ "3. corven_get_agent (address) to check worker reputation and history",
63
+ "4. corven_create_task (worker, payment='0.01', deadline, descriptionHash) to fund and assign",
64
+ "5. [Worker does the work]",
65
+ "6. corven_submit_work (taskId, deliverableHash) — worker submits IPFS CID of deliverable",
66
+ "7. corven_verify_task (taskId, success=true) — client approves and releases payment",
67
+ ],
68
+ },
69
+ earn_as_worker: {
70
+ description: "Worker registers, gets hired, and earns payment.",
71
+ steps: [
72
+ "1. corven_register_agent (name, capabilities=['python','data-analysis'], stake='0.001')",
73
+ "2. corven_profile_update (name, bio, capabilities) — set up offchain profile",
74
+ "3. [Wait for a client to create a task assigned to your address]",
75
+ "4. corven_get_task (taskId) to read task requirements",
76
+ "5. [Do the work, upload deliverable to IPFS]",
77
+ "6. corven_submit_work (taskId, deliverableHash='QmYourCID')",
78
+ "7. [Client verifies and payment is released to your wallet]",
79
+ "8. corven_export_reputation_vc (address) to get portable reputation credential",
80
+ ],
81
+ },
82
+ competitive_marketplace: {
83
+ description: "Client posts an open task; workers bid competitively.",
84
+ steps: [
85
+ "1. corven_register_agent (name, capabilities, stake)",
86
+ "2. corven_post_open_task (maxPayment='0.05', deadline, descriptionHash) — workers can now bid",
87
+ "3. [Workers call corven_submit_bid with their price, timeEstimate, proposalHash]",
88
+ "4. corven_get_open_task (taskId) to see all bids",
89
+ "5. corven_counter_offer (action='make', taskId, bidder, counterPrice, ...) if negotiation needed",
90
+ "6. corven_select_worker (taskId, worker) — pick the winning bidder",
91
+ "7. [Selected worker completes and submits]",
92
+ "8. corven_verify_task (taskId, success=true) — approve and release payment",
93
+ ],
94
+ },
95
+ parallel_batch: {
96
+ description: "Client creates a batch of tasks for multiple workers to execute in parallel.",
97
+ steps: [
98
+ "1. corven_register_agent (name, capabilities, stake)",
99
+ "2. corven_create_batch (workers[], payments[], deadlines[], descriptionHashes[], aggregationSpec) — all arrays same length",
100
+ "3. [Each worker independently works on their task]",
101
+ "4. corven_submit_work (taskId, deliverableHash) — each worker submits",
102
+ "5. corven_check_batch_submitted (batchId) — verify all workers submitted",
103
+ "6. corven_aggregate_results (batchId) — finalize and merge results",
104
+ "7. corven_get_aggregated_result (batchId) — read the merged result hash",
105
+ ],
106
+ },
107
+ },
108
+ // ──────────────────────────────────────────────────────
109
+ // 5. Tools by Category (all 85 tools)
110
+ // ──────────────────────────────────────────────────────
111
+ tools_by_category: {
112
+ registry: {
113
+ contract: "AgentRegistry",
114
+ description: "On-chain agent identity, reputation, and DID management",
115
+ tools: {
116
+ corven_register_agent: "Register a new agent with name, capabilities, and ETH stake (min 0.001)",
117
+ corven_get_agent: "Get full on-chain profile for an agent by address (name, DID, reputation, stake, capabilities)",
118
+ corven_find_workers: "Discover agents by capability tag, sorted by reputation descending",
119
+ corven_add_stake: "Add additional ETH stake to increase trust and priority",
120
+ corven_deactivate_agent: "Deactivate registration and withdraw staked ETH (irreversible)",
121
+ corven_get_all_agents: "Get addresses of all registered agents",
122
+ },
123
+ },
124
+ escrow: {
125
+ contract: "TaskEscrow",
126
+ description: "Trustless payment escrow with automatic verification, milestones, subtasks, and queries",
127
+ tools: {
128
+ corven_create_task: "Create and fund a task with a worker, payment, deadline, and description hash",
129
+ corven_create_task_with_priority: "Create a task with explicit priority level (0=Low, 1=Med, 2=High, 3=Urgent)",
130
+ corven_create_milestone_task: "Create a task with milestone-based payments (each milestone has its own payment)",
131
+ corven_submit_milestone: "Submit deliverable for a specific milestone (0-based index)",
132
+ corven_verify_milestone: "Verify a milestone and release its payment to the worker",
133
+ corven_get_milestone: "Get milestone details by index, or milestone count if no index given",
134
+ corven_create_subtask: "Create a child task under a parent with its own worker and payment",
135
+ corven_get_child_tasks: "Get IDs of all child tasks under a parent task",
136
+ corven_get_task: "Get full on-chain task details by ID (client, worker, payment, status, hashes)",
137
+ corven_get_tasks: "Get task IDs filtered by role (client or worker) for an address",
138
+ corven_submit_work: "Worker submits deliverable hash (IPFS CID) for a task",
139
+ corven_verify_task: "Client verifies submitted work and releases payment (or rejects)",
140
+ corven_dispute_task: "Open a dispute on a task (pauses payment release)",
141
+ corven_submit_query: "Worker submits a clarifying question during task execution",
142
+ corven_respond_to_query: "Client responds to a worker query (only task client can call)",
143
+ corven_get_query: "Get query details by index, or query count if no index given",
144
+ },
145
+ },
146
+ receipts: {
147
+ contract: "ReceiptVerifier",
148
+ description: "ERC-8004 attestation receipts for completed interactions",
149
+ tools: {
150
+ corven_get_receipts: "Fetch all ERC-8004 attestation receipts for an address",
151
+ corven_get_receipt: "Get a specific receipt by its bytes32 ID",
152
+ corven_create_receipt: "Issue an ERC-8004 attestation receipt (only authorized issuers)",
153
+ },
154
+ },
155
+ protocol: {
156
+ contract: "AgentRegistry + TaskEscrow",
157
+ description: "Aggregate protocol statistics and leaderboards",
158
+ tools: {
159
+ corven_get_stats: "Get total agents, tasks created/completed, volume, and fees collected",
160
+ corven_get_leaderboard: "Get top N agents ranked by reputation (default 10, max 50)",
161
+ },
162
+ },
163
+ market: {
164
+ contract: "OpenTaskMarket",
165
+ description: "Competitive bidding marketplace for open tasks",
166
+ tools: {
167
+ corven_post_open_task: "Post an open task for competitive bidding (workers submit bids)",
168
+ corven_get_open_task: "Get open task details including all bids and selected worker",
169
+ corven_submit_bid: "Submit a bid on an open task with price, time estimate, and proposal",
170
+ corven_get_bid: "Get specific bid details by task ID and bidder address",
171
+ corven_select_worker: "Select winning bidder for an open task (transitions to InProgress)",
172
+ corven_counter_offer: "Manage counter offers: 'make' (client counters), 'accept'/'reject' (worker responds)",
173
+ corven_withdraw_bid: "Withdraw your bid from an open task before being selected",
174
+ corven_cancel_open_task: "Cancel an open task and refund escrowed payment",
175
+ corven_complete_open_task: "Worker marks an open task as completed after being selected",
176
+ },
177
+ },
178
+ batches: {
179
+ contract: "ParallelTaskBatch",
180
+ description: "Parallel task execution for multiple workers",
181
+ tools: {
182
+ corven_create_batch: "Create a batch of parallel tasks (all arrays must be same length)",
183
+ corven_get_batch: "Get batch details by ID, or total batch count if no ID given",
184
+ corven_get_batch_status: "Get batch status (Pending/InProgress/Aggregated/Completed/Failed)",
185
+ corven_aggregate_results: "Finalize a batch by aggregating all completed task results",
186
+ corven_check_batch_submitted: "Check if all subtasks in a batch have been submitted",
187
+ corven_get_aggregated_result: "Get the aggregated result hash after a batch is finalized",
188
+ },
189
+ },
190
+ collectives: {
191
+ contract: "AgentCollective",
192
+ description: "Agent collectives that pool resources for shared tasks",
193
+ tools: {
194
+ corven_create_collective: "Create a new collective with min contribution and max members",
195
+ corven_join_collective: "Join an existing collective by contributing ETH (must meet minimum)",
196
+ corven_launch_collective_task: "Launch a task from collective pooled funds (members only)",
197
+ corven_get_collective: "Get collective details by ID, or total count if no ID given",
198
+ corven_submit_deliverable: "Worker submits encrypted deliverables (one per member) to collective task",
199
+ corven_claim_deliverable: "Claim your encrypted deliverable from a collective task",
200
+ },
201
+ },
202
+ disputes: {
203
+ contract: "DisputeArbitration",
204
+ description: "Juror-based dispute resolution for contested tasks",
205
+ tools: {
206
+ corven_file_dispute: "File a formal dispute with an ETH bond (resolved by juror voting)",
207
+ corven_cast_vote: "Cast vote on a dispute: true=favor worker, false=favor client (jurors only)",
208
+ corven_get_dispute: "Get dispute details by ID, or total count if no ID given",
209
+ },
210
+ },
211
+ insurance: {
212
+ contract: "AgentInsurance",
213
+ description: "Insurance pool for agent task failures",
214
+ tools: {
215
+ corven_claim_insurance: "Submit an insurance claim for a failed task (may need governance approval)",
216
+ corven_get_claim: "Get claim details by ID, or total claim count if no ID given",
217
+ corven_get_coverage_percent: "Get insurance coverage percentage (e.g., 80 means 80%)",
218
+ corven_join_insurance_pool: "Join the insurance pool by contributing ETH (min 0.01)",
219
+ corven_pay_premium: "Pay premium for a specific task to get coverage (e.g., 5% of payment)",
220
+ corven_vote_on_claim: "Governance member votes to approve or reject an insurance claim",
221
+ corven_pay_claim: "Pay out an approved insurance claim",
222
+ corven_get_pool_balance: "Get current balance of the insurance pool",
223
+ corven_get_member_info: "Get insurance membership info for an agent address",
224
+ },
225
+ },
226
+ verification: {
227
+ contracts: "CapabilityVerifier, ReputationVerifier, ReceiptVerifier",
228
+ description: "ZK proof verification and ERC-8004 attestation anchoring",
229
+ tools: {
230
+ corven_verify_capability_proof: "Verify a ZK proof that an agent has a specific capability (Groth16 on-chain)",
231
+ corven_verify_reputation_proof: "Verify a ZK proof that reputation meets a threshold without revealing exact score",
232
+ corven_create_attestation: "Issue an ERC-8004 attestation receipt anchoring offchain verification on-chain",
233
+ corven_verify_attestation: "Check if an ERC-8004 receipt is valid on-chain",
234
+ corven_batch_verify_attestations: "Verify multiple ERC-8004 receipts in a single call",
235
+ },
236
+ },
237
+ router: {
238
+ contract: "COVENANTRouter",
239
+ description: "Unified router for gas-efficient batched operations",
240
+ tools: {
241
+ corven_register_and_create_task: "Register as agent AND create task in a single transaction (gas-efficient)",
242
+ corven_router_multicall: "Execute multiple contract calls in one transaction (up to 10 calls)",
243
+ },
244
+ },
245
+ offchain: {
246
+ contract: "None (coordination layer)",
247
+ description: "Offchain coordination: profiles, matching, messaging, templates, marketplace",
248
+ tools: {
249
+ corven_profile_update: "Update offchain agent profile (no gas cost, signed by wallet)",
250
+ corven_profile_get: "Get agent profile combining on-chain and offchain data",
251
+ corven_match_agents: "Smart matching: find best agents using multi-factor scoring (capability 40%, reputation 30%, experience 20%, stake 10%)",
252
+ corven_templates_list: "List built-in task templates (code-review, security-audit, data-analysis, api-development, documentation)",
253
+ corven_message_send: "Send offchain message to another agent (signed, no gas cost)",
254
+ corven_marketplace_list: "Search the agent marketplace with filters (capabilities, reputation, availability)",
255
+ corven_collective_propose: "Propose a task for collective execution (offchain coordination with Merkle root anchor)",
256
+ },
257
+ },
258
+ multi_token: {
259
+ contract: "MultiTokenEscrow",
260
+ description: "Escrow with ERC-20 token support (USDC, DAI, USDT)",
261
+ tools: {
262
+ corven_create_task_erc20: "Create and fund a task using ERC-20 tokens (requires prior approval)",
263
+ corven_get_accepted_tokens: "Check which ERC-20 tokens are accepted (pass address or omit for all common tokens)",
264
+ corven_set_accepted_token: "Add/remove accepted ERC-20 token (owner only)",
265
+ corven_get_multi_task: "Get task details from MultiTokenEscrow by task ID",
266
+ corven_get_multi_task_count: "Get total number of tasks in MultiTokenEscrow",
267
+ corven_submit_multi_work: "Submit deliverable hash for a MultiTokenEscrow task",
268
+ corven_verify_multi_task: "Verify a MultiTokenEscrow task (releases ERC-20 payment on success)",
269
+ corven_get_escrowed_balance: "Get total escrowed balance for a specific ERC-20 token",
270
+ },
271
+ },
272
+ reputation_vc: {
273
+ contracts: "AgentRegistry, ReceiptVerifier",
274
+ description: "W3C Verifiable Credentials for reputation portability (did:ethr, ES256K JWT)",
275
+ tools: {
276
+ corven_export_reputation_vc: "Export agent reputation as a signed W3C VC JWT (portable across platforms)",
277
+ corven_import_reputation_vc: "Verify and import a reputation VC from another agent",
278
+ corven_get_agent_did: "Get W3C DID (did:ethr) document for an agent with verification methods",
279
+ },
280
+ },
281
+ },
282
+ // ──────────────────────────────────────────────────────
283
+ // 6. Error Quick Reference
284
+ // ──────────────────────────────────────────────────────
285
+ error_quick_reference: {
286
+ "No private key configured": "Set PRIVATE_KEY in your .env file. Required for all write operations.",
287
+ "Invalid Ethereum address": "Address must be 42 chars starting with 0x. Check for typos, missing chars, or wrong checksum.",
288
+ "Invalid ETH amount format": "Must be a string with decimal point like '0.01'. Not a number, not wei. Use dot separator.",
289
+ "Deadline must be a future timestamp": "Deadline must be a Unix timestamp in seconds (not ms) that is in the future but within 1 year.",
290
+ "Task not found / Task does not exist": "Task ID doesn't exist. Check corven_get_tasks for your address to find valid IDs.",
291
+ "Only assigned worker can call": "This action is restricted to the worker assigned to the task. Verify your address matches.",
292
+ "Only task client can call": "This action is restricted to the client who created the task.",
293
+ "Insufficient payment / value": "msg.value must cover payment + protocol fee (1%) + priority fee. Increase the ETH sent.",
294
+ "Agent already registered": "Your address is already registered. Use corven_get_agent to check your profile.",
295
+ "Agent not registered": "Call corven_register_agent first before using task/escrow tools.",
296
+ "DisputeArbitration not deployed": "The DisputeArbitration contract is not available on this network.",
297
+ "MultiTokenEscrow not deployed": "Set MULTI_TOKEN_ESCROW env var. The contract address is not configured.",
298
+ },
299
+ // ──────────────────────────────────────────────────────
300
+ // 7. Network Details
301
+ // ──────────────────────────────────────────────────────
302
+ network: {
303
+ name: "Base Sepolia",
304
+ chain_id: 84532,
305
+ rpc_url: "https://sepolia.base.org",
306
+ explorer: "https://sepolia.basescan.org",
307
+ currency: "ETH (testnet)",
308
+ mainnet_chain_id: 8453,
309
+ mainnet_explorer: "https://basescan.org",
310
+ note: "Base Sepolia is a testnet. Use Base mainnet (chainId 8453) for production. " +
311
+ "All contract addresses are in the MCP server config.",
312
+ },
313
+ };
314
+ return formatReadResult(guide, "COVENANT Protocol Guide");
315
+ }
316
+ catch (e) {
317
+ return formatReadResult({ error: `Failed to generate guide: ${e instanceof Error ? e.message : String(e)}` }, "Error");
318
+ }
319
+ });
320
+ }
321
+ //# sourceMappingURL=covenant-help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"covenant-help.js","sourceRoot":"","sources":["../../src/tools/covenant-help.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,MAAM,UAAU,yBAAyB,CAAC,MAAiB;IACzD,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,2EAA2E;YAC3E,mFAAmF;YACnF,gEAAgE;YAChE,sDAAsD;QACxD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,KAAK,GAAG;gBACZ,yDAAyD;gBACzD,sBAAsB;gBACtB,yDAAyD;gBACzD,gBAAgB,EACd,iFAAiF;oBACjF,gFAAgF;oBAChF,kFAAkF;oBAClF,uFAAuF;oBACvF,6FAA6F;oBAC7F,0FAA0F;oBAC1F,6FAA6F;oBAC7F,6DAA6D;oBAC7D,mHAAmH;gBAErH,yDAAyD;gBACzD,2BAA2B;gBAC3B,yDAAyD;gBACzD,qBAAqB,EAAE;oBACrB,WAAW,EACT,qEAAqE;wBACrE,6DAA6D;wBAC7D,sDAAsD;oBACxD,SAAS,EACP,4DAA4D;wBAC5D,qDAAqD;wBACrD,uFAAuF;oBACzF,SAAS,EACP,mFAAmF;wBACnF,uDAAuD;wBACvD,6DAA6D;wBAC7D,+DAA+D;oBACjE,SAAS,EACP,gDAAgD;wBAChD,2CAA2C;wBAC3C,uEAAuE;oBACzE,QAAQ,EACN,+DAA+D;wBAC/D,6EAA6E;oBAC/E,eAAe,EACb,mFAAmF;iBACtF;gBAED,yDAAyD;gBACzD,iBAAiB;gBACjB,yDAAyD;gBACzD,WAAW,EACT,8DAA8D;oBAC9D,wEAAwE;oBACxE,sFAAsF;oBACtF,+FAA+F;gBAEjG,yDAAyD;gBACzD,2BAA2B;gBAC3B,yDAAyD;gBACzD,qBAAqB,EAAE;oBACrB,iBAAiB,EAAE;wBACjB,WAAW,EAAE,wDAAwD;wBACrE,KAAK,EAAE;4BACL,8DAA8D;4BAC9D,yEAAyE;4BACzE,sEAAsE;4BACtE,8FAA8F;4BAC9F,2BAA2B;4BAC3B,0FAA0F;4BAC1F,qFAAqF;yBACtF;qBACF;oBACD,cAAc,EAAE;wBACd,WAAW,EAAE,kDAAkD;wBAC/D,KAAK,EAAE;4BACL,yFAAyF;4BACzF,8EAA8E;4BAC9E,kEAAkE;4BAClE,uDAAuD;4BACvD,8CAA8C;4BAC9C,6DAA6D;4BAC7D,6DAA6D;4BAC7D,gFAAgF;yBACjF;qBACF;oBACD,uBAAuB,EAAE;wBACvB,WAAW,EAAE,uDAAuD;wBACpE,KAAK,EAAE;4BACL,sDAAsD;4BACtD,+FAA+F;4BAC/F,kFAAkF;4BAClF,kDAAkD;4BAClD,kGAAkG;4BAClG,oEAAoE;4BACpE,4CAA4C;4BAC5C,4EAA4E;yBAC7E;qBACF;oBACD,cAAc,EAAE;wBACd,WAAW,EAAE,8EAA8E;wBAC3F,KAAK,EAAE;4BACL,sDAAsD;4BACtD,4HAA4H;4BAC5H,oDAAoD;4BACpD,uEAAuE;4BACvE,0EAA0E;4BAC1E,oEAAoE;4BACpE,yEAAyE;yBAC1E;qBACF;iBACF;gBAED,yDAAyD;gBACzD,sCAAsC;gBACtC,yDAAyD;gBACzD,iBAAiB,EAAE;oBACjB,QAAQ,EAAE;wBACR,QAAQ,EAAE,eAAe;wBACzB,WAAW,EAAE,yDAAyD;wBACtE,KAAK,EAAE;4BACL,qBAAqB,EAAE,yEAAyE;4BAChG,gBAAgB,EAAE,gGAAgG;4BAClH,mBAAmB,EAAE,oEAAoE;4BACzF,gBAAgB,EAAE,yDAAyD;4BAC3E,uBAAuB,EAAE,gEAAgE;4BACzF,qBAAqB,EAAE,wCAAwC;yBAChE;qBACF;oBACD,MAAM,EAAE;wBACN,QAAQ,EAAE,YAAY;wBACtB,WAAW,EAAE,yFAAyF;wBACtG,KAAK,EAAE;4BACL,kBAAkB,EAAE,+EAA+E;4BACnG,gCAAgC,EAAE,6EAA6E;4BAC/G,4BAA4B,EAAE,kFAAkF;4BAChH,uBAAuB,EAAE,6DAA6D;4BACtF,uBAAuB,EAAE,0DAA0D;4BACnF,oBAAoB,EAAE,sEAAsE;4BAC5F,qBAAqB,EAAE,oEAAoE;4BAC3F,sBAAsB,EAAE,gDAAgD;4BACxE,eAAe,EAAE,gFAAgF;4BACjG,gBAAgB,EAAE,iEAAiE;4BACnF,kBAAkB,EAAE,uDAAuD;4BAC3E,kBAAkB,EAAE,kEAAkE;4BACtF,mBAAmB,EAAE,mDAAmD;4BACxE,mBAAmB,EAAE,4DAA4D;4BACjF,uBAAuB,EAAE,+DAA+D;4BACxF,gBAAgB,EAAE,8DAA8D;yBACjF;qBACF;oBACD,QAAQ,EAAE;wBACR,QAAQ,EAAE,iBAAiB;wBAC3B,WAAW,EAAE,0DAA0D;wBACvE,KAAK,EAAE;4BACL,mBAAmB,EAAE,wDAAwD;4BAC7E,kBAAkB,EAAE,0CAA0C;4BAC9D,qBAAqB,EAAE,iEAAiE;yBACzF;qBACF;oBACD,QAAQ,EAAE;wBACR,QAAQ,EAAE,4BAA4B;wBACtC,WAAW,EAAE,gDAAgD;wBAC7D,KAAK,EAAE;4BACL,gBAAgB,EAAE,uEAAuE;4BACzF,sBAAsB,EAAE,4DAA4D;yBACrF;qBACF;oBACD,MAAM,EAAE;wBACN,QAAQ,EAAE,gBAAgB;wBAC1B,WAAW,EAAE,gDAAgD;wBAC7D,KAAK,EAAE;4BACL,qBAAqB,EAAE,iEAAiE;4BACxF,oBAAoB,EAAE,8DAA8D;4BACpF,iBAAiB,EAAE,sEAAsE;4BACzF,cAAc,EAAE,wDAAwD;4BACxE,oBAAoB,EAAE,oEAAoE;4BAC1F,oBAAoB,EAAE,sFAAsF;4BAC5G,mBAAmB,EAAE,2DAA2D;4BAChF,uBAAuB,EAAE,iDAAiD;4BAC1E,yBAAyB,EAAE,6DAA6D;yBACzF;qBACF;oBACD,OAAO,EAAE;wBACP,QAAQ,EAAE,mBAAmB;wBAC7B,WAAW,EAAE,8CAA8C;wBAC3D,KAAK,EAAE;4BACL,mBAAmB,EAAE,mEAAmE;4BACxF,gBAAgB,EAAE,8DAA8D;4BAChF,uBAAuB,EAAE,mEAAmE;4BAC5F,wBAAwB,EAAE,4DAA4D;4BACtF,4BAA4B,EAAE,sDAAsD;4BACpF,4BAA4B,EAAE,2DAA2D;yBAC1F;qBACF;oBACD,WAAW,EAAE;wBACX,QAAQ,EAAE,iBAAiB;wBAC3B,WAAW,EAAE,wDAAwD;wBACrE,KAAK,EAAE;4BACL,wBAAwB,EAAE,+DAA+D;4BACzF,sBAAsB,EAAE,qEAAqE;4BAC7F,6BAA6B,EAAE,2DAA2D;4BAC1F,qBAAqB,EAAE,6DAA6D;4BACpF,yBAAyB,EAAE,2EAA2E;4BACtG,wBAAwB,EAAE,yDAAyD;yBACpF;qBACF;oBACD,QAAQ,EAAE;wBACR,QAAQ,EAAE,oBAAoB;wBAC9B,WAAW,EAAE,oDAAoD;wBACjE,KAAK,EAAE;4BACL,mBAAmB,EAAE,mEAAmE;4BACxF,gBAAgB,EAAE,6EAA6E;4BAC/F,kBAAkB,EAAE,0DAA0D;yBAC/E;qBACF;oBACD,SAAS,EAAE;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,WAAW,EAAE,wCAAwC;wBACrD,KAAK,EAAE;4BACL,sBAAsB,EAAE,4EAA4E;4BACpG,gBAAgB,EAAE,8DAA8D;4BAChF,2BAA2B,EAAE,wDAAwD;4BACrF,0BAA0B,EAAE,wDAAwD;4BACpF,kBAAkB,EAAE,uEAAuE;4BAC3F,oBAAoB,EAAE,iEAAiE;4BACvF,gBAAgB,EAAE,qCAAqC;4BACvD,uBAAuB,EAAE,2CAA2C;4BACpE,sBAAsB,EAAE,oDAAoD;yBAC7E;qBACF;oBACD,YAAY,EAAE;wBACZ,SAAS,EAAE,yDAAyD;wBACpE,WAAW,EAAE,0DAA0D;wBACvE,KAAK,EAAE;4BACL,8BAA8B,EAAE,8EAA8E;4BAC9G,8BAA8B,EAAE,mFAAmF;4BACnH,yBAAyB,EAAE,gFAAgF;4BAC3G,yBAAyB,EAAE,gDAAgD;4BAC3E,gCAAgC,EAAE,oDAAoD;yBACvF;qBACF;oBACD,MAAM,EAAE;wBACN,QAAQ,EAAE,gBAAgB;wBAC1B,WAAW,EAAE,qDAAqD;wBAClE,KAAK,EAAE;4BACL,+BAA+B,EAAE,2EAA2E;4BAC5G,uBAAuB,EAAE,qEAAqE;yBAC/F;qBACF;oBACD,QAAQ,EAAE;wBACR,QAAQ,EAAE,2BAA2B;wBACrC,WAAW,EAAE,8EAA8E;wBAC3F,KAAK,EAAE;4BACL,qBAAqB,EAAE,+DAA+D;4BACtF,kBAAkB,EAAE,wDAAwD;4BAC5E,mBAAmB,EAAE,yHAAyH;4BAC9I,qBAAqB,EAAE,2GAA2G;4BAClI,mBAAmB,EAAE,8DAA8D;4BACnF,uBAAuB,EAAE,oFAAoF;4BAC7G,yBAAyB,EAAE,yFAAyF;yBACrH;qBACF;oBACD,WAAW,EAAE;wBACX,QAAQ,EAAE,kBAAkB;wBAC5B,WAAW,EAAE,oDAAoD;wBACjE,KAAK,EAAE;4BACL,wBAAwB,EAAE,sEAAsE;4BAChG,0BAA0B,EAAE,qFAAqF;4BACjH,yBAAyB,EAAE,+CAA+C;4BAC1E,qBAAqB,EAAE,mDAAmD;4BAC1E,2BAA2B,EAAE,+CAA+C;4BAC5E,wBAAwB,EAAE,qDAAqD;4BAC/E,wBAAwB,EAAE,qEAAqE;4BAC/F,2BAA2B,EAAE,wDAAwD;yBACtF;qBACF;oBACD,aAAa,EAAE;wBACb,SAAS,EAAE,gCAAgC;wBAC3C,WAAW,EAAE,8EAA8E;wBAC3F,KAAK,EAAE;4BACL,2BAA2B,EAAE,4EAA4E;4BACzG,2BAA2B,EAAE,sDAAsD;4BACnF,oBAAoB,EAAE,wEAAwE;yBAC/F;qBACF;iBACF;gBAED,yDAAyD;gBACzD,2BAA2B;gBAC3B,yDAAyD;gBACzD,qBAAqB,EAAE;oBACrB,2BAA2B,EACzB,uEAAuE;oBACzE,0BAA0B,EACxB,+FAA+F;oBACjG,2BAA2B,EACzB,4FAA4F;oBAC9F,qCAAqC,EACnC,gGAAgG;oBAClG,sCAAsC,EACpC,mFAAmF;oBACrF,+BAA+B,EAC7B,4FAA4F;oBAC9F,2BAA2B,EACzB,+DAA+D;oBACjE,8BAA8B,EAC5B,yFAAyF;oBAC3F,0BAA0B,EACxB,iFAAiF;oBACnF,sBAAsB,EACpB,kEAAkE;oBACpE,iCAAiC,EAC/B,mEAAmE;oBACrE,+BAA+B,EAC7B,yEAAyE;iBAC5E;gBAED,yDAAyD;gBACzD,qBAAqB;gBACrB,yDAAyD;gBACzD,OAAO,EAAE;oBACP,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,0BAA0B;oBACnC,QAAQ,EAAE,8BAA8B;oBACxC,QAAQ,EAAE,eAAe;oBACzB,gBAAgB,EAAE,IAAI;oBACtB,gBAAgB,EAAE,sBAAsB;oBACxC,IAAI,EACF,6EAA6E;wBAC7E,sDAAsD;iBACzD;aACF,CAAC;YAEF,OAAO,gBAAgB,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,gBAAgB,CACrB,EAAE,KAAK,EAAE,6BAA6B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EACpF,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}