@varun-ai07/covenant-mcp 1.3.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abis/GrantProgram.json +778 -0
- package/dist/abis/RevisionManager.json +544 -0
- package/dist/abis/TrainingMarketplace.json +787 -0
- package/dist/cli.js +0 -0
- package/dist/config.d.ts +15 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +23 -3
- package/dist/config.js.map +1 -1
- package/dist/server.d.ts +3 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +63 -63
- package/dist/server.js.map +1 -1
- package/dist/shared-types.js +8 -8
- package/dist/tools/{registry.d.ts → corven-agent.d.ts} +1 -1
- package/dist/tools/corven-agent.d.ts.map +1 -0
- package/dist/tools/corven-agent.js +90 -0
- package/dist/tools/corven-agent.js.map +1 -0
- package/dist/tools/corven-attest.d.ts +3 -0
- package/dist/tools/corven-attest.d.ts.map +1 -0
- package/dist/tools/corven-attest.js +87 -0
- package/dist/tools/corven-attest.js.map +1 -0
- package/dist/tools/{batches.d.ts → corven-batch.d.ts} +1 -1
- package/dist/tools/corven-batch.d.ts.map +1 -0
- package/dist/tools/corven-batch.js +116 -0
- package/dist/tools/corven-batch.js.map +1 -0
- package/dist/tools/{bounties.d.ts → corven-bounty.d.ts} +1 -1
- package/dist/tools/corven-bounty.d.ts.map +1 -0
- package/dist/tools/corven-bounty.js +72 -0
- package/dist/tools/corven-bounty.js.map +1 -0
- package/dist/tools/{collectives.d.ts → corven-collective.d.ts} +1 -1
- package/dist/tools/corven-collective.d.ts.map +1 -0
- package/dist/tools/corven-collective.js +105 -0
- package/dist/tools/corven-collective.js.map +1 -0
- package/dist/tools/corven-fiat.d.ts +3 -0
- package/dist/tools/corven-fiat.d.ts.map +1 -0
- package/dist/tools/corven-fiat.js +42 -0
- package/dist/tools/corven-fiat.js.map +1 -0
- package/dist/tools/corven-govern.d.ts +3 -0
- package/dist/tools/corven-govern.d.ts.map +1 -0
- package/dist/tools/corven-govern.js +65 -0
- package/dist/tools/corven-govern.js.map +1 -0
- package/dist/tools/{grants.d.ts → corven-grants.d.ts} +1 -1
- package/dist/tools/corven-grants.d.ts.map +1 -0
- package/dist/tools/corven-grants.js +67 -0
- package/dist/tools/corven-grants.js.map +1 -0
- package/dist/tools/{insurance.d.ts → corven-insurance.d.ts} +1 -1
- package/dist/tools/corven-insurance.d.ts.map +1 -0
- package/dist/tools/corven-insurance.js +103 -0
- package/dist/tools/corven-insurance.js.map +1 -0
- package/dist/tools/{market.d.ts → corven-market.d.ts} +1 -1
- package/dist/tools/corven-market.d.ts.map +1 -0
- package/dist/tools/corven-market.js +113 -0
- package/dist/tools/corven-market.js.map +1 -0
- package/dist/tools/corven-match.d.ts +3 -0
- package/dist/tools/corven-match.d.ts.map +1 -0
- package/dist/tools/corven-match.js +235 -0
- package/dist/tools/corven-match.js.map +1 -0
- package/dist/tools/corven-message.d.ts +3 -0
- package/dist/tools/corven-message.d.ts.map +1 -0
- package/dist/tools/corven-message.js +82 -0
- package/dist/tools/corven-message.js.map +1 -0
- package/dist/tools/corven-multi.d.ts +3 -0
- package/dist/tools/corven-multi.d.ts.map +1 -0
- package/dist/tools/corven-multi.js +197 -0
- package/dist/tools/corven-multi.js.map +1 -0
- package/dist/tools/corven-reputation.d.ts +3 -0
- package/dist/tools/corven-reputation.d.ts.map +1 -0
- package/dist/tools/corven-reputation.js +126 -0
- package/dist/tools/corven-reputation.js.map +1 -0
- package/dist/tools/{revisions.d.ts → corven-revision.d.ts} +1 -1
- package/dist/tools/corven-revision.d.ts.map +1 -0
- package/dist/tools/corven-revision.js +73 -0
- package/dist/tools/corven-revision.js.map +1 -0
- package/dist/tools/{router.d.ts → corven-router.d.ts} +1 -1
- package/dist/tools/corven-router.d.ts.map +1 -0
- package/dist/tools/corven-router.js +116 -0
- package/dist/tools/corven-router.js.map +1 -0
- package/dist/tools/corven-stats.d.ts +3 -0
- package/dist/tools/corven-stats.d.ts.map +1 -0
- package/dist/tools/corven-stats.js +97 -0
- package/dist/tools/corven-stats.js.map +1 -0
- package/dist/tools/corven-stream.d.ts +3 -0
- package/dist/tools/corven-stream.d.ts.map +1 -0
- package/dist/tools/corven-stream.js +197 -0
- package/dist/tools/corven-stream.js.map +1 -0
- package/dist/tools/corven-task.d.ts +3 -0
- package/dist/tools/corven-task.d.ts.map +1 -0
- package/dist/tools/corven-task.js +105 -0
- package/dist/tools/corven-task.js.map +1 -0
- package/dist/tools/{training.d.ts → corven-training.d.ts} +1 -1
- package/dist/tools/corven-training.d.ts.map +1 -0
- package/dist/tools/corven-training.js +73 -0
- package/dist/tools/corven-training.js.map +1 -0
- package/dist/tools/corven-verify.d.ts +3 -0
- package/dist/tools/corven-verify.d.ts.map +1 -0
- package/dist/tools/corven-verify.js +149 -0
- package/dist/tools/corven-verify.js.map +1 -0
- package/dist/tools/corven-wallet.d.ts +3 -0
- package/dist/tools/corven-wallet.d.ts.map +1 -0
- package/dist/tools/corven-wallet.js +235 -0
- package/dist/tools/corven-wallet.js.map +1 -0
- package/dist/tools/covenant-help.d.ts.map +1 -1
- package/dist/tools/covenant-help.js +88 -312
- package/dist/tools/covenant-help.js.map +1 -1
- package/dist/tools/disputes.d.ts.map +1 -1
- package/dist/tools/disputes.js +26 -0
- package/dist/tools/disputes.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/abis/v2/DisputeResolution.json +0 -493
- package/dist/abis/v2/InsurancePool.json +0 -645
- package/dist/tools/account-abstraction.d.ts +0 -3
- package/dist/tools/account-abstraction.d.ts.map +0 -1
- package/dist/tools/account-abstraction.js +0 -364
- package/dist/tools/account-abstraction.js.map +0 -1
- package/dist/tools/batches.d.ts.map +0 -1
- package/dist/tools/batches.js +0 -231
- package/dist/tools/batches.js.map +0 -1
- package/dist/tools/bounties.d.ts.map +0 -1
- package/dist/tools/bounties.js +0 -304
- package/dist/tools/bounties.js.map +0 -1
- package/dist/tools/bridge.d.ts +0 -3
- package/dist/tools/bridge.d.ts.map +0 -1
- package/dist/tools/bridge.js +0 -190
- package/dist/tools/bridge.js.map +0 -1
- package/dist/tools/collectives.d.ts.map +0 -1
- package/dist/tools/collectives.js +0 -249
- package/dist/tools/collectives.js.map +0 -1
- package/dist/tools/cross-chain.d.ts +0 -3
- package/dist/tools/cross-chain.d.ts.map +0 -1
- package/dist/tools/cross-chain.js +0 -77
- package/dist/tools/cross-chain.js.map +0 -1
- package/dist/tools/escrow.d.ts +0 -3
- package/dist/tools/escrow.d.ts.map +0 -1
- package/dist/tools/escrow.js +0 -606
- package/dist/tools/escrow.js.map +0 -1
- package/dist/tools/fiat-onramp.d.ts +0 -3
- package/dist/tools/fiat-onramp.d.ts.map +0 -1
- package/dist/tools/fiat-onramp.js +0 -108
- package/dist/tools/fiat-onramp.js.map +0 -1
- package/dist/tools/governance.d.ts +0 -3
- package/dist/tools/governance.d.ts.map +0 -1
- package/dist/tools/governance.js +0 -271
- package/dist/tools/governance.js.map +0 -1
- package/dist/tools/grants.d.ts.map +0 -1
- package/dist/tools/grants.js +0 -269
- package/dist/tools/grants.js.map +0 -1
- package/dist/tools/insurance.d.ts.map +0 -1
- package/dist/tools/insurance.js +0 -271
- package/dist/tools/insurance.js.map +0 -1
- package/dist/tools/market.d.ts.map +0 -1
- package/dist/tools/market.js +0 -393
- package/dist/tools/market.js.map +0 -1
- package/dist/tools/matching.d.ts +0 -3
- package/dist/tools/matching.d.ts.map +0 -1
- package/dist/tools/matching.js +0 -233
- package/dist/tools/matching.js.map +0 -1
- package/dist/tools/messaging.d.ts +0 -3
- package/dist/tools/messaging.d.ts.map +0 -1
- package/dist/tools/messaging.js +0 -159
- package/dist/tools/messaging.js.map +0 -1
- package/dist/tools/multi-token.d.ts +0 -3
- package/dist/tools/multi-token.d.ts.map +0 -1
- package/dist/tools/multi-token.js +0 -274
- package/dist/tools/multi-token.js.map +0 -1
- package/dist/tools/offchain-coordinator.d.ts +0 -3
- package/dist/tools/offchain-coordinator.d.ts.map +0 -1
- package/dist/tools/offchain-coordinator.js +0 -436
- package/dist/tools/offchain-coordinator.js.map +0 -1
- package/dist/tools/protocol.d.ts +0 -3
- package/dist/tools/protocol.d.ts.map +0 -1
- package/dist/tools/protocol.js +0 -127
- package/dist/tools/protocol.js.map +0 -1
- package/dist/tools/receipts.d.ts +0 -3
- package/dist/tools/receipts.d.ts.map +0 -1
- package/dist/tools/receipts.js +0 -147
- package/dist/tools/receipts.js.map +0 -1
- package/dist/tools/registry.d.ts.map +0 -1
- package/dist/tools/registry.js +0 -245
- package/dist/tools/registry.js.map +0 -1
- package/dist/tools/reputation-vc.d.ts +0 -3
- package/dist/tools/reputation-vc.d.ts.map +0 -1
- package/dist/tools/reputation-vc.js +0 -438
- package/dist/tools/reputation-vc.js.map +0 -1
- package/dist/tools/revisions.d.ts.map +0 -1
- package/dist/tools/revisions.js +0 -108
- package/dist/tools/revisions.js.map +0 -1
- package/dist/tools/router.d.ts.map +0 -1
- package/dist/tools/router.js +0 -104
- package/dist/tools/router.js.map +0 -1
- package/dist/tools/streaming.d.ts +0 -3
- package/dist/tools/streaming.d.ts.map +0 -1
- package/dist/tools/streaming.js +0 -350
- package/dist/tools/streaming.js.map +0 -1
- package/dist/tools/templates.d.ts +0 -3
- package/dist/tools/templates.d.ts.map +0 -1
- package/dist/tools/templates.js +0 -392
- package/dist/tools/templates.js.map +0 -1
- package/dist/tools/training.d.ts.map +0 -1
- package/dist/tools/training.js +0 -304
- package/dist/tools/training.js.map +0 -1
- package/dist/tools/v2-settlement.d.ts +0 -3
- package/dist/tools/v2-settlement.d.ts.map +0 -1
- package/dist/tools/v2-settlement.js +0 -226
- package/dist/tools/v2-settlement.js.map +0 -1
- package/dist/tools/verification.d.ts +0 -3
- package/dist/tools/verification.d.ts.map +0 -1
- package/dist/tools/verification.js +0 -215
- package/dist/tools/verification.js.map +0 -1
- package/dist/tools/verify-deep.d.ts +0 -3
- package/dist/tools/verify-deep.d.ts.map +0 -1
- package/dist/tools/verify-deep.js +0 -125
- package/dist/tools/verify-deep.js.map +0 -1
package/dist/tools/market.js
DELETED
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenTaskMarket MCP Tools
|
|
3
|
-
*
|
|
4
|
-
* post_task — Post an open task for bidding
|
|
5
|
-
* get_open_task — Read open task details
|
|
6
|
-
* submit_bid — Submit a bid on an open task
|
|
7
|
-
* get_bid — Get bid details
|
|
8
|
-
* select_worker — Select a winning bidder
|
|
9
|
-
* make_counter_offer — Make a counter offer on a bid
|
|
10
|
-
* accept_counter_offer — Accept a counter offer (worker)
|
|
11
|
-
* withdraw_bid — Withdraw your bid
|
|
12
|
-
* cancel_task — Cancel an open task
|
|
13
|
-
*/
|
|
14
|
-
import { z } from "zod";
|
|
15
|
-
import { parseEther, formatEther, isAddress } from "viem";
|
|
16
|
-
import { loadAbi, CONTRACTS, getAccount } from "../config.js";
|
|
17
|
-
import { executeOrPrepare, readContract } from "../handlers/wallet.js";
|
|
18
|
-
import { formatTxResult, formatReadResult } from "../handlers/transactions.js";
|
|
19
|
-
import { formatStructuredError, parseContractError } from "../lib/formatResponse.js";
|
|
20
|
-
import { ethAddress, ethAmount, ipfsCid, unixDeadline, taskId as taskIdSchema } from "../lib/schemaHelpers.js";
|
|
21
|
-
const ABI = loadAbi("OpenTaskMarket");
|
|
22
|
-
// Task status enum for OpenTaskMarket
|
|
23
|
-
const TASK_STATUS = {
|
|
24
|
-
0: "Open",
|
|
25
|
-
1: "InProgress",
|
|
26
|
-
2: "Completed",
|
|
27
|
-
3: "Cancelled",
|
|
28
|
-
};
|
|
29
|
-
// Input validation schemas
|
|
30
|
-
const postTaskSchema = z.object({
|
|
31
|
-
maxPayment: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount format")
|
|
32
|
-
.refine(val => {
|
|
33
|
-
const payment = parseFloat(val);
|
|
34
|
-
return payment >= 0.001 && payment <= 1000;
|
|
35
|
-
}, { message: "Payment must be between 0.001 and 1000 ETH" }),
|
|
36
|
-
deadline: z.number().int().positive()
|
|
37
|
-
.refine(val => {
|
|
38
|
-
const deadlineMs = val * 1000;
|
|
39
|
-
const now = Date.now();
|
|
40
|
-
const oneYear = now + (365 * 24 * 60 * 60 * 1000);
|
|
41
|
-
return deadlineMs > now && deadlineMs < oneYear;
|
|
42
|
-
}, { message: "Deadline must be a future timestamp within 1 year" }),
|
|
43
|
-
descriptionHash: z.string().min(1).max(100),
|
|
44
|
-
});
|
|
45
|
-
const submitBidSchema = z.object({
|
|
46
|
-
taskId: z.number().int().positive(),
|
|
47
|
-
price: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount format")
|
|
48
|
-
.refine(val => parseFloat(val) > 0, { message: "Price must be positive" }),
|
|
49
|
-
timeEstimate: z.number().int().positive(),
|
|
50
|
-
proposalHash: z.string().min(1).max(200),
|
|
51
|
-
});
|
|
52
|
-
const selectWorkerSchema = z.object({
|
|
53
|
-
taskId: z.number().int().positive(),
|
|
54
|
-
worker: z.string().refine(isAddress, { message: "Invalid worker address" }),
|
|
55
|
-
});
|
|
56
|
-
const counterOfferSchema = z.object({
|
|
57
|
-
taskId: z.number().int().positive(),
|
|
58
|
-
bidder: z.string().refine(isAddress, { message: "Invalid bidder address" }),
|
|
59
|
-
counterPrice: z.string().regex(/^\d+\.?\d*$/, "Invalid ETH amount format"),
|
|
60
|
-
counterTimeEstimate: z.number().int().positive(),
|
|
61
|
-
counterProposalHash: z.string().min(1).max(200),
|
|
62
|
-
});
|
|
63
|
-
export function registerMarketTools(server) {
|
|
64
|
-
// ──────────────────────────────────────────────────────────────
|
|
65
|
-
// post_task
|
|
66
|
-
// ──────────────────────────────────────────────────────────────
|
|
67
|
-
server.registerTool("corven_post_open_task", {
|
|
68
|
-
title: "Post Open Task",
|
|
69
|
-
description: "Posts a task to the open marketplace for competitive bidding. All capable workers can see and bid. You pay only the winning bid price.\n" +
|
|
70
|
-
"USE WHEN: You want competitive pricing. You don't have a specific worker in mind. You want multiple proposals to compare.\n" +
|
|
71
|
-
"REQUIRES: Registered as client. Wallet needs maxPayment plus ~0.0003 ETH gas.\n" +
|
|
72
|
-
"RETURNS: Open task ID, instructions for reviewing incoming bids.\n" +
|
|
73
|
-
"COMES BEFORE: Workers call corven_submit_bid. You call corven_select_worker.",
|
|
74
|
-
inputSchema: {
|
|
75
|
-
maxPayment: ethAmount,
|
|
76
|
-
deadline: unixDeadline,
|
|
77
|
-
descriptionHash: ipfsCid,
|
|
78
|
-
},
|
|
79
|
-
}, async ({ maxPayment, deadline, descriptionHash }) => {
|
|
80
|
-
try {
|
|
81
|
-
const validation = postTaskSchema.safeParse({ maxPayment, deadline, descriptionHash });
|
|
82
|
-
if (!validation.success) {
|
|
83
|
-
return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check parameter formats.", false);
|
|
84
|
-
}
|
|
85
|
-
const account = getAccount();
|
|
86
|
-
if (!account) {
|
|
87
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
88
|
-
}
|
|
89
|
-
const paymentWei = parseEther(maxPayment);
|
|
90
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "postTask", [paymentWei, BigInt(deadline), descriptionHash], paymentWei);
|
|
91
|
-
return formatTxResult(result);
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
const parsed = parseContractError(e);
|
|
95
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
// ──────────────────────────────────────────────────────────────
|
|
99
|
-
// get_open_task
|
|
100
|
-
// ──────────────────────────────────────────────────────────────
|
|
101
|
-
server.registerTool("corven_get_open_task", {
|
|
102
|
-
title: "Get Open Task Details",
|
|
103
|
-
description: "Reads details of an open market task including all bids and the selected worker.\n" +
|
|
104
|
-
"USE WHEN: Checking bids on your posted task. Viewing a task before bidding. Monitoring auction status.\n" +
|
|
105
|
-
"REQUIRES: Nothing. Free read-only call.\n" +
|
|
106
|
-
"RETURNS: Max payment, deadline, status, description hash, client, selected worker, all bids with prices and time estimates.\n" +
|
|
107
|
-
"COMES AFTER: corven_post_open_task created the task.\n" +
|
|
108
|
-
"COMES BEFORE: corven_submit_bid (for workers), corven_select_worker (for client).",
|
|
109
|
-
inputSchema: {
|
|
110
|
-
taskId: taskIdSchema,
|
|
111
|
-
},
|
|
112
|
-
}, async ({ taskId }) => {
|
|
113
|
-
try {
|
|
114
|
-
const data = await readContract(CONTRACTS.OpenTaskMarket, ABI, "getTask", [BigInt(taskId)]);
|
|
115
|
-
// Contract returns a tuple (array), not an object
|
|
116
|
-
const d = data;
|
|
117
|
-
const isTuple = Array.isArray(d);
|
|
118
|
-
const client = isTuple ? d[0] : d.client;
|
|
119
|
-
const maxPayment = isTuple ? d[1] : d.maxPayment;
|
|
120
|
-
const deadline = isTuple ? d[2] : d.deadline;
|
|
121
|
-
const descriptionHash = isTuple ? d[3] : d.descriptionHash;
|
|
122
|
-
const status = isTuple ? d[4] : d.status;
|
|
123
|
-
const postedAt = isTuple ? d[5] : d.postedAt;
|
|
124
|
-
const selectedWorker = isTuple ? d[6] : d.selectedWorker;
|
|
125
|
-
const selectedPrice = isTuple ? d[7] : d.selectedPrice;
|
|
126
|
-
const selectedTimeEstimate = isTuple ? d[8] : d.selectedTimeEstimate;
|
|
127
|
-
const selectedProposalHash = isTuple ? d[9] : d.selectedProposalHash;
|
|
128
|
-
const enriched = {
|
|
129
|
-
client,
|
|
130
|
-
maxPayment: maxPayment?.toString(),
|
|
131
|
-
deadline: deadline?.toString(),
|
|
132
|
-
descriptionHash,
|
|
133
|
-
status: Number(status),
|
|
134
|
-
statusLabel: TASK_STATUS[Number(status)] ?? `Unknown(${status})`,
|
|
135
|
-
postedAt: postedAt?.toString(),
|
|
136
|
-
selectedWorker,
|
|
137
|
-
maxPaymentEth: formatEther(maxPayment ?? 0n),
|
|
138
|
-
selectedPriceEth: selectedPrice ? formatEther(selectedPrice) : "0",
|
|
139
|
-
selectedTimeEstimate: selectedTimeEstimate?.toString(),
|
|
140
|
-
selectedProposalHash,
|
|
141
|
-
};
|
|
142
|
-
return formatReadResult(enriched, `Open Task #${taskId}`);
|
|
143
|
-
}
|
|
144
|
-
catch (e) {
|
|
145
|
-
const parsed = parseContractError(e);
|
|
146
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
// ──────────────────────────────────────────────────────────────
|
|
150
|
-
// submit_bid
|
|
151
|
-
// ──────────────────────────────────────────────────────────────
|
|
152
|
-
server.registerTool("corven_submit_bid", {
|
|
153
|
-
title: "Submit Bid",
|
|
154
|
-
description: "Submits a competitive bid on an open market task with your proposed price, timeline, and proposal.\n" +
|
|
155
|
-
"USE WHEN: You found an open task (corven_find_open_tasks) and want to compete for the work.\n" +
|
|
156
|
-
"REQUIRES: You must be a registered agent. Task must be Open (status=0). You cannot bid twice on the same task.\n" +
|
|
157
|
-
"RETURNS: Bid confirmation, task ID, your price, time estimate, txHash.\n" +
|
|
158
|
-
"COMES AFTER: corven_get_open_task or corven_find_open_tasks to find tasks to bid on.\n" +
|
|
159
|
-
"COMES BEFORE: Client calls corven_select_worker or corven_make_counter_offer. You call corven_accept_counter_offer or corven_withdraw_bid.\n" +
|
|
160
|
-
"NOTE: Bids below the client's maxPayment are more likely to be selected. You can withdraw with corven_withdraw_bid before selection.",
|
|
161
|
-
inputSchema: {
|
|
162
|
-
taskId: taskIdSchema,
|
|
163
|
-
price: ethAmount,
|
|
164
|
-
timeEstimate: z.number().describe("Estimated completion time in seconds"),
|
|
165
|
-
proposalHash: ipfsCid,
|
|
166
|
-
},
|
|
167
|
-
}, async ({ taskId, price, timeEstimate, proposalHash }) => {
|
|
168
|
-
try {
|
|
169
|
-
const validation = submitBidSchema.safeParse({ taskId, price, timeEstimate, proposalHash });
|
|
170
|
-
if (!validation.success) {
|
|
171
|
-
return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check parameter formats.", false);
|
|
172
|
-
}
|
|
173
|
-
const account = getAccount();
|
|
174
|
-
if (!account) {
|
|
175
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
176
|
-
}
|
|
177
|
-
const priceWei = parseEther(price);
|
|
178
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "submitBid", [BigInt(taskId), priceWei, BigInt(timeEstimate), proposalHash]);
|
|
179
|
-
return formatTxResult(result);
|
|
180
|
-
}
|
|
181
|
-
catch (e) {
|
|
182
|
-
const parsed = parseContractError(e);
|
|
183
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
// ──────────────────────────────────────────────────────────────
|
|
187
|
-
// get_bid
|
|
188
|
-
// ──────────────────────────────────────────────────────────────
|
|
189
|
-
server.registerTool("corven_get_bid", {
|
|
190
|
-
title: "Get Bid Details",
|
|
191
|
-
description: "Reads a specific bid on an open task by task ID and bidder address.\n" +
|
|
192
|
-
"USE WHEN: Checking your own bid status. Viewing a competitor's bid. Comparing bids before selecting.\n" +
|
|
193
|
-
"REQUIRES: Nothing. Free read-only call.\n" +
|
|
194
|
-
"RETURNS: Bidder address, price, time estimate, proposal hash, bid status (pending/selected/rejected).\n" +
|
|
195
|
-
"COMES AFTER: corven_submit_bid placed a bid.\n" +
|
|
196
|
-
"COMES BEFORE: corven_select_worker (client) or corven_accept_counter_offer (worker).",
|
|
197
|
-
inputSchema: {
|
|
198
|
-
taskId: taskIdSchema,
|
|
199
|
-
bidder: ethAddress,
|
|
200
|
-
},
|
|
201
|
-
}, async ({ taskId, bidder }) => {
|
|
202
|
-
try {
|
|
203
|
-
const data = await readContract(CONTRACTS.OpenTaskMarket, ABI, "getBid", [BigInt(taskId), bidder]);
|
|
204
|
-
// Contract returns a tuple (array), not an object
|
|
205
|
-
const d = data;
|
|
206
|
-
const isTuple = Array.isArray(d);
|
|
207
|
-
const price = isTuple ? d[0] : d.price;
|
|
208
|
-
const timeEstimate = isTuple ? d[1] : d.timeEstimate;
|
|
209
|
-
const proposalHash = isTuple ? d[2] : d.proposalHash;
|
|
210
|
-
const bidAt = isTuple ? d[3] : d.bidAt;
|
|
211
|
-
const bidderAddr = isTuple ? d[4] : d.bidderAddr;
|
|
212
|
-
const hasCounter = isTuple ? d[5] : d.hasCounter;
|
|
213
|
-
const counterPrice = isTuple ? d[6] : d.counterPrice;
|
|
214
|
-
const counterTimeEstimate = isTuple ? d[7] : d.counterTimeEstimate;
|
|
215
|
-
const counterProposalHash = isTuple ? d[8] : d.counterProposalHash;
|
|
216
|
-
const enriched = {
|
|
217
|
-
priceEth: formatEther(price ?? 0n),
|
|
218
|
-
timeEstimate: timeEstimate?.toString(),
|
|
219
|
-
proposalHash,
|
|
220
|
-
bidAt: bidAt?.toString(),
|
|
221
|
-
bidder: bidderAddr,
|
|
222
|
-
hasCounter,
|
|
223
|
-
counterPriceEth: counterPrice ? formatEther(counterPrice) : "0",
|
|
224
|
-
counterTimeEstimate: counterTimeEstimate?.toString(),
|
|
225
|
-
counterProposalHash,
|
|
226
|
-
};
|
|
227
|
-
return formatReadResult(enriched, `Bid on Task #${taskId}`);
|
|
228
|
-
}
|
|
229
|
-
catch (e) {
|
|
230
|
-
const parsed = parseContractError(e);
|
|
231
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
// ──────────────────────────────────────────────────────────────
|
|
235
|
-
// select_worker
|
|
236
|
-
// ──────────────────────────────────────────────────────────────
|
|
237
|
-
server.registerTool("corven_select_worker", {
|
|
238
|
-
title: "Select Worker",
|
|
239
|
-
description: "Client selects a winning bidder for their open task. Assigns the worker and locks the bid price.\n" +
|
|
240
|
-
"USE WHEN: You reviewed bids (corven_get_open_task) and want to hire a specific bidder.\n" +
|
|
241
|
-
"REQUIRES: You must be the task client. Task must be Open (status=0). The bidder must have an active bid.\n" +
|
|
242
|
-
"RETURNS: Task ID, selected worker, assigned price, task status, txHash.\n" +
|
|
243
|
-
"COMES AFTER: corven_submit_bid by workers, corven_get_open_task to review bids.\n" +
|
|
244
|
-
"COMES BEFORE: Worker calls corven_complete_open_task. Client calls corven_verify_task.\n" +
|
|
245
|
-
"NOTE: Unselected bidders can still be considered via counter offers. Selection is final once confirmed.",
|
|
246
|
-
inputSchema: {
|
|
247
|
-
taskId: taskIdSchema,
|
|
248
|
-
worker: ethAddress,
|
|
249
|
-
},
|
|
250
|
-
}, async ({ taskId, worker }) => {
|
|
251
|
-
try {
|
|
252
|
-
const validation = selectWorkerSchema.safeParse({ taskId, worker });
|
|
253
|
-
if (!validation.success) {
|
|
254
|
-
return formatStructuredError(`Invalid input: ${validation.error.issues.map(e => e.message).join(", ")}`, "Validation failed.", "Check parameter formats.", false);
|
|
255
|
-
}
|
|
256
|
-
const account = getAccount();
|
|
257
|
-
if (!account) {
|
|
258
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
259
|
-
}
|
|
260
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "selectWorker", [BigInt(taskId), worker], undefined, "OpenTaskMarket");
|
|
261
|
-
return formatTxResult(result);
|
|
262
|
-
}
|
|
263
|
-
catch (e) {
|
|
264
|
-
const parsed = parseContractError(e);
|
|
265
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
266
|
-
}
|
|
267
|
-
});
|
|
268
|
-
// ──────────────────────────────────────────────────────────────
|
|
269
|
-
// corven_counter_offer (consolidated: make, accept, reject)
|
|
270
|
-
// ──────────────────────────────────────────────────────────────
|
|
271
|
-
server.registerTool("corven_counter_offer", {
|
|
272
|
-
title: "Counter Offer",
|
|
273
|
-
description: "Manages counter offers on open tasks. Three actions: make (client counters a bid), accept (worker accepts), reject (worker rejects).\n" +
|
|
274
|
-
"USE WHEN: Client wants to propose a different price/time than a bid. Worker wants to respond to a client's counter.\n" +
|
|
275
|
-
"REQUIRES: Action 'make': you must be the task client, bidder must have an active bid. Action 'accept'/'reject': you must be the bidder.\n" +
|
|
276
|
-
"RETURNS: Counter offer action confirmation, task ID, new terms, txHash.\n" +
|
|
277
|
-
"COMES AFTER: corven_submit_bid placed a bid. Client used corven_get_open_task to review bids.\n" +
|
|
278
|
-
"COMES BEFORE: If accepted, task transitions to InProgress. If rejected, bid remains pending.\n" +
|
|
279
|
-
"NOTE: 'make' requires bidder, counterPrice, counterTimeEstimate, and counterProposalHash. 'accept' and 'reject' only need taskId.",
|
|
280
|
-
inputSchema: {
|
|
281
|
-
action: z.enum(["make", "accept", "reject"]).describe("Counter offer action"),
|
|
282
|
-
taskId: taskIdSchema,
|
|
283
|
-
bidder: ethAddress.optional().describe("Bidder address (required for 'make')"),
|
|
284
|
-
counterPrice: ethAmount.optional().describe("Counter price in ETH (required for 'make')"),
|
|
285
|
-
counterTimeEstimate: z.number().optional().describe("Counter time estimate in seconds (required for 'make')"),
|
|
286
|
-
counterProposalHash: ipfsCid.optional().describe("IPFS CID for counter proposal (required for 'make')"),
|
|
287
|
-
},
|
|
288
|
-
}, async ({ action, taskId, bidder, counterPrice, counterTimeEstimate, counterProposalHash }) => {
|
|
289
|
-
try {
|
|
290
|
-
const account = getAccount();
|
|
291
|
-
if (!account)
|
|
292
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
293
|
-
if (action === "make") {
|
|
294
|
-
if (!bidder || !counterPrice || !counterTimeEstimate || !counterProposalHash) {
|
|
295
|
-
return formatStructuredError("Missing required fields.", "bidder, counterPrice, counterTimeEstimate, and counterProposalHash required for 'make'.", "Provide all counter offer parameters.", false);
|
|
296
|
-
}
|
|
297
|
-
const priceWei = parseEther(counterPrice);
|
|
298
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "makeCounterOffer", [BigInt(taskId), bidder, priceWei, BigInt(counterTimeEstimate), counterProposalHash]);
|
|
299
|
-
return formatTxResult(result);
|
|
300
|
-
}
|
|
301
|
-
const fn = action === "accept" ? "acceptCounterOffer" : "rejectCounterOffer";
|
|
302
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, fn, [BigInt(taskId)]);
|
|
303
|
-
return formatTxResult(result);
|
|
304
|
-
}
|
|
305
|
-
catch (e) {
|
|
306
|
-
const parsed = parseContractError(e);
|
|
307
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
|
-
// ──────────────────────────────────────────────────────────────
|
|
311
|
-
// withdraw_bid
|
|
312
|
-
// ──────────────────────────────────────────────────────────────
|
|
313
|
-
server.registerTool("corven_withdraw_bid", {
|
|
314
|
-
title: "Withdraw Bid",
|
|
315
|
-
description: "Withdraws your bid from an open task before you are selected.\n" +
|
|
316
|
-
"USE WHEN: You no longer want to compete. You underbid by mistake. You found better work elsewhere.\n" +
|
|
317
|
-
"REQUIRES: You must have an active bid on the task. Task must still be Open.\n" +
|
|
318
|
-
"RETURNS: Withdrawal confirmation, task ID, txHash.\n" +
|
|
319
|
-
"COMES AFTER: corven_submit_bid placed your bid.\n" +
|
|
320
|
-
"NOTE: Cannot withdraw after you are selected via corven_select_worker.",
|
|
321
|
-
inputSchema: {
|
|
322
|
-
taskId: taskIdSchema,
|
|
323
|
-
},
|
|
324
|
-
}, async ({ taskId }) => {
|
|
325
|
-
try {
|
|
326
|
-
const account = getAccount();
|
|
327
|
-
if (!account) {
|
|
328
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
329
|
-
}
|
|
330
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "withdrawBid", [BigInt(taskId)]);
|
|
331
|
-
return formatTxResult(result);
|
|
332
|
-
}
|
|
333
|
-
catch (e) {
|
|
334
|
-
const parsed = parseContractError(e);
|
|
335
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
336
|
-
}
|
|
337
|
-
});
|
|
338
|
-
// ──────────────────────────────────────────────────────────────
|
|
339
|
-
// cancel_open_task
|
|
340
|
-
// ──────────────────────────────────────────────────────────────
|
|
341
|
-
server.registerTool("corven_cancel_open_task", {
|
|
342
|
-
title: "Cancel Open Task",
|
|
343
|
-
description: "Cancels an open task and refunds the escrowed payment to the client.\n" +
|
|
344
|
-
"USE WHEN: You no longer need the work. No bids were satisfactory. Requirements changed.\n" +
|
|
345
|
-
"REQUIRES: You must be the task client. Task must still be Open (not InProgress).\n" +
|
|
346
|
-
"RETURNS: Cancellation confirmation, refund amount, task ID, txHash.\n" +
|
|
347
|
-
"COMES AFTER: corven_post_open_task created the task.\n" +
|
|
348
|
-
"NOTE: Cannot cancel after a worker is selected via corven_select_worker. Bidders' bids are released automatically.",
|
|
349
|
-
inputSchema: {
|
|
350
|
-
taskId: taskIdSchema,
|
|
351
|
-
},
|
|
352
|
-
}, async ({ taskId }) => {
|
|
353
|
-
try {
|
|
354
|
-
const account = getAccount();
|
|
355
|
-
if (!account) {
|
|
356
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
357
|
-
}
|
|
358
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "cancelTask", [BigInt(taskId)], undefined, "OpenTaskMarket");
|
|
359
|
-
return formatTxResult(result);
|
|
360
|
-
}
|
|
361
|
-
catch (e) {
|
|
362
|
-
const parsed = parseContractError(e);
|
|
363
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
// ──────────────────────────────────────────────────────────────
|
|
367
|
-
// corven_complete_open_task
|
|
368
|
-
// ──────────────────────────────────────────────────────────────
|
|
369
|
-
server.registerTool("corven_complete_open_task", {
|
|
370
|
-
title: "Complete Open Task",
|
|
371
|
-
description: "Worker marks an open market task as completed after finishing the work.\n" +
|
|
372
|
-
"USE WHEN: You are the selected worker. Work is done. You want to signal completion for client review.\n" +
|
|
373
|
-
"REQUIRES: You must be the selected worker. Task must be InProgress.\n" +
|
|
374
|
-
"RETURNS: Completion confirmation, task ID, status update, txHash.\n" +
|
|
375
|
-
"COMES AFTER: corven_select_worker assigned you to the task.\n" +
|
|
376
|
-
"COMES BEFORE: Client calls corven_verify_task to approve and release payment.\n" +
|
|
377
|
-
"NOTE: This does NOT release payment. The client must verify first.",
|
|
378
|
-
inputSchema: { taskId: taskIdSchema },
|
|
379
|
-
}, async ({ taskId }) => {
|
|
380
|
-
try {
|
|
381
|
-
const account = getAccount();
|
|
382
|
-
if (!account)
|
|
383
|
-
return formatStructuredError("No private key configured.", "PRIVATE_KEY not set.", "Set PRIVATE_KEY in .env.", false);
|
|
384
|
-
const result = await executeOrPrepare(CONTRACTS.OpenTaskMarket, ABI, "completeTask", [BigInt(taskId)]);
|
|
385
|
-
return formatTxResult(result);
|
|
386
|
-
}
|
|
387
|
-
catch (e) {
|
|
388
|
-
const parsed = parseContractError(e);
|
|
389
|
-
return formatStructuredError(parsed.error, parsed.cause, parsed.fix, parsed.retryable);
|
|
390
|
-
}
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
//# sourceMappingURL=market.js.map
|
package/dist/tools/market.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../src/tools/market.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAgB,SAAS,EAAE,MAAM,MAAM,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAiB,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG/G,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEtC,sCAAsC;AACtC,MAAM,WAAW,GAA2B;IAC1C,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,YAAY;IACf,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;CACf,CAAC;AAEF,2BAA2B;AAC3B,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,2BAA2B,CAAC;SACrE,MAAM,CAAC,GAAG,CAAC,EAAE;QACZ,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC;IAC7C,CAAC,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;IAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SAClC,MAAM,CAAC,GAAG,CAAC,EAAE;QACZ,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAClD,OAAO,UAAU,GAAG,GAAG,IAAI,UAAU,GAAG,OAAO,CAAC;IAClD,CAAC,EAAE,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC;IACtE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAChE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IAC5E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACzC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CACzC,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,2BAA2B,CAAC;IAC1E,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChD,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,iEAAiE;IACjE,YAAY;IACZ,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,0IAA0I;YAC1I,6HAA6H;YAC7H,iFAAiF;YACjF,oEAAoE;YACpE,8EAA8E;QAChF,WAAW,EAAE;YACX,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,OAAO;SACzB;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE;QAClD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,qBAAqB,CAAC,kBAAkB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACpK,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACxH,CAAC;YAED,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,cAAc,EACxB,GAAG,EACH,UAAU,EACV,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,EAC/C,UAAU,CACX,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,gBAAgB;IAChB,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,oFAAoF;YACpF,0GAA0G;YAC1G,2CAA2C;YAC3C,+HAA+H;YAC/H,wDAAwD;YACxD,mFAAmF;QACrF,WAAW,EAAE;YACX,MAAM,EAAE,YAAY;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,SAAS,CAAC,cAAc,EACxB,GAAG,EACH,SAAS,EACT,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACjB,CAAC;YAEF,kDAAkD;YAClD,MAAM,CAAC,GAAG,IAAW,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7C,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;YAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACzD,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACvD,MAAM,oBAAoB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YACrE,MAAM,oBAAoB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAErE,MAAM,QAAQ,GAAG;gBACf,MAAM;gBACN,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE;gBAClC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBAC9B,eAAe;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,WAAW,MAAM,GAAG;gBAChE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBAC9B,cAAc;gBACd,aAAa,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC5C,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG;gBAClE,oBAAoB,EAAE,oBAAoB,EAAE,QAAQ,EAAE;gBACtD,oBAAoB;aACrB,CAAC;YACF,OAAO,gBAAgB,CAAC,QAAQ,EAAE,cAAc,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,aAAa;IACb,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,sGAAsG;YACtG,+FAA+F;YAC/F,kHAAkH;YAClH,0EAA0E;YAC1E,wFAAwF;YACxF,8IAA8I;YAC9I,sIAAsI;QACxI,WAAW,EAAE;YACX,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,SAAS;YAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YACzE,YAAY,EAAE,OAAO;SACtB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5F,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,qBAAqB,CAAC,kBAAkB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACpK,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACxH,CAAC;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,cAAc,EACxB,GAAG,EACH,WAAW,EACX,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,CAC/D,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,UAAU;IACV,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,uEAAuE;YACvE,wGAAwG;YACxG,2CAA2C;YAC3C,yGAAyG;YACzG,gDAAgD;YAChD,sFAAsF;QACxF,WAAW,EAAE;YACX,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,UAAU;SACnB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,SAAS,CAAC,cAAc,EACxB,GAAG,EACH,QAAQ,EACR,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAiB,CAAC,CACpC,CAAC;YAEF,kDAAkD;YAClD,MAAM,CAAC,GAAG,IAAW,CAAC;YACtB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACvC,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACrD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACvC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACjD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;YACjD,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACrD,MAAM,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;YACnE,MAAM,mBAAmB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAEnE,MAAM,QAAQ,GAAG;gBACf,QAAQ,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;gBAClC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE;gBACtC,YAAY;gBACZ,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACxB,MAAM,EAAE,UAAU;gBAClB,UAAU;gBACV,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC/D,mBAAmB,EAAE,mBAAmB,EAAE,QAAQ,EAAE;gBACpD,mBAAmB;aACpB,CAAC;YACF,OAAO,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,gBAAgB;IAChB,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,oGAAoG;YACpG,0FAA0F;YAC1F,4GAA4G;YAC5G,2EAA2E;YAC3E,mFAAmF;YACnF,0FAA0F;YAC1F,yGAAyG;QAC3G,WAAW,EAAE;YACX,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,UAAU;SACnB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,qBAAqB,CAAC,kBAAkB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACpK,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACxH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,cAAc,EACxB,GAAG,EACH,cAAc,EACd,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAiB,CAAC,EACnC,SAAS,EACT,gBAAgB,CACjB,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,4DAA4D;IAC5D,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,wIAAwI;YACxI,uHAAuH;YACvH,2IAA2I;YAC3I,2EAA2E;YAC3E,iGAAiG;YACjG,gGAAgG;YAChG,mIAAmI;QACrI,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC7E,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC9E,YAAY,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACzF,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YAC7G,mBAAmB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;SACxG;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,EAAE,EAAE;QAC3F,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO;gBAAE,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAEpI,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,IAAI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC7E,OAAO,qBAAqB,CAAC,0BAA0B,EAAE,yFAAyF,EAAE,uCAAuC,EAAE,KAAK,CAAC,CAAC;gBACtM,CAAC;gBACD,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,kBAAkB,EACjD,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAiB,EAAE,QAAQ,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,CAChG,CAAC;gBACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC7E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3F,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;IAC/I,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,eAAe;IACf,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EACT,iEAAiE;YACjE,sGAAsG;YACtG,+EAA+E;YAC/E,sDAAsD;YACtD,mDAAmD;YACnD,wEAAwE;QAC1E,WAAW,EAAE;YACX,MAAM,EAAE,YAAY;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACxH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,cAAc,EACxB,GAAG,EACH,aAAa,EACb,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACjB,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,mBAAmB;IACnB,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,kBAAkB;QACzB,WAAW,EACT,wEAAwE;YACxE,2FAA2F;YAC3F,oFAAoF;YACpF,uEAAuE;YACvE,wDAAwD;YACxD,oHAAoH;QACtH,WAAW,EAAE;YACX,MAAM,EAAE,YAAY;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACxH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,cAAc,EACxB,GAAG,EACH,YAAY,EACZ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAChB,SAAS,EACT,gBAAgB,CACjB,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACzF,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,4BAA4B;IAC5B,iEAAiE;IACjE,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,2EAA2E;YAC3E,yGAAyG;YACzG,uEAAuE;YACvE,qEAAqE;YACrE,+DAA+D;YAC/D,iFAAiF;YACjF,oEAAoE;QACtE,WAAW,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;KACtC,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO;gBAAE,OAAO,qBAAqB,CAAC,4BAA4B,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACpI,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAChE,CAAC;YACF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;IAC/I,CAAC,CACF,CAAC;AAEJ,CAAC"}
|
package/dist/tools/matching.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"matching.d.ts","sourceRoot":"","sources":["../../src/tools/matching.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+FzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsM7D"}
|