@sharpe-terminal/mcp-server 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -7
- package/dist/api-client.d.ts +38 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +119 -10
- package/dist/api-client.js.map +1 -1
- package/dist/composite-tools.d.ts +27 -45
- package/dist/composite-tools.d.ts.map +1 -1
- package/dist/composite-tools.js +372 -546
- package/dist/composite-tools.js.map +1 -1
- package/dist/contracts/manifest.d.ts +52 -0
- package/dist/contracts/manifest.d.ts.map +1 -0
- package/dist/contracts/manifest.js +9 -0
- package/dist/contracts/manifest.js.map +1 -0
- package/dist/endpoint-tools.d.ts +107 -0
- package/dist/endpoint-tools.d.ts.map +1 -0
- package/dist/endpoint-tools.js +382 -0
- package/dist/endpoint-tools.js.map +1 -0
- package/dist/server.d.ts +20 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +143 -101
- package/dist/server.js.map +1 -1
- package/dist/tool-runtime.d.ts +33 -38
- package/dist/tool-runtime.d.ts.map +1 -1
- package/dist/tool-runtime.js +113 -238
- package/dist/tool-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/tools.d.ts +0 -567
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -1166
- package/dist/tools.js.map +0 -1
package/dist/tool-runtime.js
CHANGED
|
@@ -7,21 +7,11 @@ export const READ_ONLY_MARKET_DATA_TOOL_ANNOTATIONS = {
|
|
|
7
7
|
idempotentHint: true,
|
|
8
8
|
openWorldHint: true,
|
|
9
9
|
};
|
|
10
|
-
export const API_TOOL_OUTPUT_SCHEMA = {
|
|
11
|
-
result: z
|
|
12
|
-
.unknown()
|
|
13
|
-
.optional()
|
|
14
|
-
.describe("Sharpe API payload after filtering and response-size truncation."),
|
|
15
|
-
error: z.string().optional().describe("Error message when the call fails."),
|
|
16
|
-
};
|
|
17
10
|
/**
|
|
18
|
-
* Splits a
|
|
19
|
-
* the pagination envelope
|
|
20
|
-
* gem-finder/data);
|
|
21
|
-
*
|
|
22
|
-
* the cursor onward. Metadata riding beside a page (a futures chart's
|
|
23
|
-
* `chart`/`coverage`/`source`) comes back as `extras` so it is reattached
|
|
24
|
-
* too rather than dropped with the envelope.
|
|
11
|
+
* Splits a composite's API answer into rows + pagination. The api-client keeps
|
|
12
|
+
* the pagination envelope of paginated endpoints (funding/rates,
|
|
13
|
+
* gem-finder/data); metadata riding beside a page (a futures chart's
|
|
14
|
+
* `chart`/`coverage`/`source`) comes back as `extras`.
|
|
25
15
|
*/
|
|
26
16
|
export function splitPaginated(result) {
|
|
27
17
|
if (result &&
|
|
@@ -34,35 +24,6 @@ export function splitPaginated(result) {
|
|
|
34
24
|
}
|
|
35
25
|
return { rows: result, pagination: null, extras: {} };
|
|
36
26
|
}
|
|
37
|
-
/**
|
|
38
|
-
* Client-side paging for a free route that ignores limit/cursor and returns
|
|
39
|
-
* every row. Mirrors the v1 `paginateData` contract (src/lib/api/response.ts):
|
|
40
|
-
* the cursor is the base64url-encoded next offset, so a keyless caller walks
|
|
41
|
-
* the same pages an authenticated one would.
|
|
42
|
-
*/
|
|
43
|
-
export function paginateRows(rows, limit, cursor) {
|
|
44
|
-
const offset = cursor ? decodeOffsetCursor(cursor) : 0;
|
|
45
|
-
const nextOffset = offset + limit;
|
|
46
|
-
const hasMore = nextOffset < rows.length;
|
|
47
|
-
return {
|
|
48
|
-
data: rows.slice(offset, nextOffset),
|
|
49
|
-
pagination: {
|
|
50
|
-
cursor: hasMore
|
|
51
|
-
? Buffer.from(String(nextOffset)).toString("base64url")
|
|
52
|
-
: null,
|
|
53
|
-
has_more: hasMore,
|
|
54
|
-
total: rows.length,
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
function decodeOffsetCursor(cursor) {
|
|
59
|
-
const decoded = /^[A-Za-z0-9_-]+$/.test(cursor)
|
|
60
|
-
? Buffer.from(cursor, "base64url").toString("utf8")
|
|
61
|
-
: "";
|
|
62
|
-
if (!/^\d+$/.test(decoded))
|
|
63
|
-
throw new Error("Invalid pagination cursor.");
|
|
64
|
-
return Number(decoded);
|
|
65
|
-
}
|
|
66
27
|
/**
|
|
67
28
|
* A row's time in epoch ms, read from the keys the futures routes sort on
|
|
68
29
|
* (`snapshot_at ?? settled_at ?? timestamp`). Null when absent or unparseable.
|
|
@@ -78,9 +39,9 @@ export function rowTimeMs(row) {
|
|
|
78
39
|
return Number.isFinite(ms) ? ms : null;
|
|
79
40
|
}
|
|
80
41
|
/**
|
|
81
|
-
*
|
|
42
|
+
* Keeps `size` items of an array. Sharpe time series are ordered oldest-first,
|
|
82
43
|
* so a head slice handed agents only the oldest rows (a 3M oi-snapshot capped
|
|
83
|
-
* to readings 9-10 days old, 2026-09-24 audit)
|
|
44
|
+
* to readings 9-10 days old, 2026-09-24 audit): an ascending series keeps its
|
|
84
45
|
* newest rows; every other array keeps its head, where the API puts its
|
|
85
46
|
* ranking.
|
|
86
47
|
*/
|
|
@@ -95,222 +56,127 @@ function capArray(values, size) {
|
|
|
95
56
|
}
|
|
96
57
|
return { kept: values.slice(0, size), latest: false };
|
|
97
58
|
}
|
|
98
|
-
export const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
59
|
+
export const TRUNCATION_MESSAGE = "Response truncated to protect the agent context window. Narrow the result set with a cursor, offset, or filter parameters to retrieve the remaining items.";
|
|
60
|
+
/** The JSON text an agent receives, and the length the context guard measures (UTF-16 units, as Python counts them). */
|
|
61
|
+
export function jsonText(value) {
|
|
62
|
+
return JSON.stringify(value);
|
|
63
|
+
}
|
|
64
|
+
function childPath(path, key) {
|
|
65
|
+
if (typeof key === "number")
|
|
66
|
+
return `${path}[${key}]`;
|
|
67
|
+
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key)
|
|
68
|
+
? `${path}.${key}`
|
|
69
|
+
: `${path}[${JSON.stringify(key)}]`;
|
|
70
|
+
}
|
|
71
|
+
function recordCut(fields, path, total, showing, latest) {
|
|
72
|
+
// A field cut more than once (MAX_ITEMS, then each character-limit halving)
|
|
73
|
+
// keeps the length it had before its first cut (2026-09-24 audit).
|
|
74
|
+
const prior = fields[path];
|
|
75
|
+
fields[path] = {
|
|
76
|
+
total: prior ? prior.total : total,
|
|
77
|
+
showing,
|
|
78
|
+
...(latest || prior?.kept === "latest" ? { kept: "latest" } : {}),
|
|
79
|
+
};
|
|
108
80
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
throw new Error("invalid cursor");
|
|
81
|
+
/** Caps every array at MAX_ITEMS, depth first, recording each cut. */
|
|
82
|
+
function capItems(value, path, fields) {
|
|
83
|
+
if (Array.isArray(value)) {
|
|
84
|
+
let items = value;
|
|
85
|
+
if (value.length > MAX_ITEMS) {
|
|
86
|
+
const { kept, latest } = capArray(value, MAX_ITEMS);
|
|
87
|
+
recordCut(fields, path, value.length, kept.length, latest);
|
|
88
|
+
items = kept;
|
|
118
89
|
}
|
|
119
|
-
return
|
|
90
|
+
return items.map((item, index) => capItems(item, childPath(path, index), fields));
|
|
120
91
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Client-side pagination for the free Gem Finder fallback, whose raw payload
|
|
127
|
-
* contains the complete `coins` array. Cursor shape matches the v1 endpoint so
|
|
128
|
-
* agents do not silently restart from offset zero when no API key is set.
|
|
129
|
-
*/
|
|
130
|
-
export function paginateSnapshotPayload(payload, limit, cursor) {
|
|
131
|
-
const rows = Array.isArray(payload.coins) ? payload.coins : [];
|
|
132
|
-
const snapshot = typeof payload.updatedAt === "string" && payload.updatedAt
|
|
133
|
-
? payload.updatedAt
|
|
134
|
-
: "empty-snapshot";
|
|
135
|
-
let offset = 0;
|
|
136
|
-
if (cursor) {
|
|
137
|
-
const decoded = decodeSnapshotCursor(cursor);
|
|
138
|
-
if (decoded.snapshot !== snapshot) {
|
|
139
|
-
throw new Error("Gem Finder pagination cursor belongs to an expired cache snapshot. Restart without a cursor.");
|
|
92
|
+
if (value && typeof value === "object") {
|
|
93
|
+
const out = {};
|
|
94
|
+
for (const [key, item] of Object.entries(value)) {
|
|
95
|
+
out[key] = capItems(item, childPath(path, key), fields);
|
|
140
96
|
}
|
|
141
|
-
|
|
97
|
+
return out;
|
|
142
98
|
}
|
|
143
|
-
|
|
144
|
-
const nextOffset = offset + limit;
|
|
145
|
-
const hasMore = nextOffset < rows.length;
|
|
146
|
-
return {
|
|
147
|
-
data,
|
|
148
|
-
pagination: {
|
|
149
|
-
cursor: hasMore
|
|
150
|
-
? encodeSnapshotCursor({
|
|
151
|
-
version: 1,
|
|
152
|
-
snapshot,
|
|
153
|
-
offset: nextOffset,
|
|
154
|
-
})
|
|
155
|
-
: null,
|
|
156
|
-
has_more: hasMore,
|
|
157
|
-
total: rows.length,
|
|
158
|
-
},
|
|
159
|
-
};
|
|
99
|
+
return value;
|
|
160
100
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const serializedLength = JSON.stringify(data).length;
|
|
165
|
-
if (data.length > MAX_ITEMS || serializedLength > CHARACTER_LIMIT) {
|
|
166
|
-
const { kept, latest } = capArray(data, MAX_ITEMS);
|
|
167
|
-
const items = kept.map((value) => truncateNestedValue(value));
|
|
168
|
-
const result = { items };
|
|
169
|
-
markTruncated(result, "items", data.length, items.length, latest);
|
|
170
|
-
return capByCharacters(result);
|
|
171
|
-
}
|
|
172
|
-
return data.map((value) => truncateNestedValue(value));
|
|
173
|
-
}
|
|
174
|
-
if (data && typeof data === "object" && !Array.isArray(data)) {
|
|
175
|
-
return capByCharacters(truncateNestedObject(data));
|
|
101
|
+
function collect(value, path, test, out, owner, key) {
|
|
102
|
+
if (owner !== undefined && key !== undefined && test(value)) {
|
|
103
|
+
out.push({ owner, key, value, path });
|
|
176
104
|
}
|
|
177
|
-
return data;
|
|
178
|
-
}
|
|
179
|
-
function truncateNestedValue(value) {
|
|
180
105
|
if (Array.isArray(value)) {
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
if (value && typeof value === "object") {
|
|
184
|
-
return truncateNestedObject(value);
|
|
106
|
+
value.forEach((item, index) => collect(item, childPath(path, index), test, out, value, index));
|
|
185
107
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
const result = {};
|
|
190
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
191
|
-
if (Array.isArray(value)) {
|
|
192
|
-
const { kept, latest } = capArray(value, MAX_ITEMS);
|
|
193
|
-
const truncated = kept.map((item) => truncateNestedValue(item));
|
|
194
|
-
result[key] = truncated;
|
|
195
|
-
if (truncated.length < value.length) {
|
|
196
|
-
markTruncated(result, key, value.length, truncated.length, latest);
|
|
197
|
-
}
|
|
198
|
-
continue;
|
|
108
|
+
else if (value && typeof value === "object") {
|
|
109
|
+
for (const [childKey, item] of Object.entries(value)) {
|
|
110
|
+
collect(item, childPath(path, childKey), test, out, value, childKey);
|
|
199
111
|
}
|
|
200
|
-
result[key] = truncateNestedValue(value);
|
|
201
112
|
}
|
|
202
|
-
return
|
|
113
|
+
return out;
|
|
203
114
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
typeof owner.truncated_fields === "object" &&
|
|
209
|
-
!Array.isArray(owner.truncated_fields)
|
|
210
|
-
? owner.truncated_fields
|
|
211
|
-
: {};
|
|
212
|
-
// A field capped more than once (MAX_ITEMS, then each character-limit
|
|
213
|
-
// halving) keeps the length it had before its first cap. Overwriting it
|
|
214
|
-
// reported an intermediate length as the total (2026-09-24 audit).
|
|
215
|
-
const prior = existing[key];
|
|
216
|
-
const originalTotal = typeof prior?.total === "number" ? prior.total : total;
|
|
217
|
-
const fields = {
|
|
218
|
-
...existing,
|
|
219
|
-
[key]: keptLatest
|
|
220
|
-
? { total: originalTotal, showing, kept: "latest" }
|
|
221
|
-
: { total: originalTotal, showing },
|
|
222
|
-
};
|
|
223
|
-
owner.truncated_fields = fields;
|
|
224
|
-
// Preserve the established single-array convenience fields used by agents.
|
|
225
|
-
// They describe the first capped field and follow it through every later
|
|
226
|
-
// halving; `truncated_fields` remains authoritative when multiple arrays
|
|
227
|
-
// are capped.
|
|
228
|
-
if (Object.keys(fields)[0] === key) {
|
|
229
|
-
if (owner.total === undefined)
|
|
230
|
-
owner.total = originalTotal;
|
|
231
|
-
owner.showing = showing;
|
|
232
|
-
}
|
|
115
|
+
const isNonEmptyArray = (value) => Array.isArray(value) && value.length > 0;
|
|
116
|
+
const isLongString = (value) => typeof value === "string" && value.length > 64;
|
|
117
|
+
function setSlot(slot, value) {
|
|
118
|
+
slot.owner[slot.key] = value;
|
|
233
119
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
}
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
120
|
+
/**
|
|
121
|
+
* The payload cut to fit the agent's context window, and the cuts: every array to MAX_ITEMS, then, while the JSON
|
|
122
|
+
* is over CHARACTER_LIMIT, the largest array halved (an ascending series from its old end), then the longest string.
|
|
123
|
+
* The payload keeps its shape (the tool's output schema still holds); what was cut is reported beside it, by path
|
|
124
|
+
* from `data`, never inside it.
|
|
125
|
+
*/
|
|
126
|
+
export function capToContext(data) {
|
|
127
|
+
const fields = {};
|
|
128
|
+
const holder = {
|
|
129
|
+
data: capItems(data, "data", fields),
|
|
130
|
+
};
|
|
131
|
+
while (jsonText(holder.data).length > CHARACTER_LIMIT) {
|
|
132
|
+
const arrays = collect(holder, "", isNonEmptyArray, []);
|
|
133
|
+
if (arrays.length > 0) {
|
|
134
|
+
let largest = arrays[0];
|
|
135
|
+
let largestLength = jsonText(largest.value).length;
|
|
136
|
+
for (const slot of arrays.slice(1)) {
|
|
137
|
+
const length = jsonText(slot.value).length;
|
|
138
|
+
if (length > largestLength) {
|
|
139
|
+
largest = slot;
|
|
140
|
+
largestLength = length;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
247
143
|
const total = largest.value.length;
|
|
248
144
|
const showing = total <= 1 ? 0 : Math.floor(total / 2);
|
|
249
145
|
const { kept, latest } = capArray(largest.value, showing);
|
|
250
|
-
largest
|
|
251
|
-
|
|
146
|
+
setSlot(largest, kept);
|
|
147
|
+
recordCut(fields, largest.path.slice(1), total, showing, latest);
|
|
252
148
|
continue;
|
|
253
149
|
}
|
|
254
|
-
//
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
const strings = collectStringReferences(result).filter(({ key, value }) => key !== "truncation_message" && value.length > 64);
|
|
258
|
-
const largestString = strings.sort((a, b) => b.value.length - a.value.length)[0];
|
|
259
|
-
if (!largestString)
|
|
150
|
+
// One enormous string can exceed the limit after every array is empty.
|
|
151
|
+
const strings = collect(holder, "", isLongString, []);
|
|
152
|
+
if (strings.length === 0)
|
|
260
153
|
break;
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
return result;
|
|
266
|
-
}
|
|
267
|
-
function collectArrayReferences(obj) {
|
|
268
|
-
const references = [];
|
|
269
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
270
|
-
if (Array.isArray(value)) {
|
|
271
|
-
references.push({ owner: obj, key, value });
|
|
272
|
-
for (const item of value) {
|
|
273
|
-
if (item && typeof item === "object" && !Array.isArray(item)) {
|
|
274
|
-
references.push(...collectArrayReferences(item));
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
else if (value && typeof value === "object") {
|
|
279
|
-
references.push(...collectArrayReferences(value));
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
return references;
|
|
283
|
-
}
|
|
284
|
-
function collectStringReferences(obj) {
|
|
285
|
-
const references = [];
|
|
286
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
287
|
-
if (typeof value === "string") {
|
|
288
|
-
references.push({ owner: obj, key, value });
|
|
289
|
-
}
|
|
290
|
-
else if (Array.isArray(value)) {
|
|
291
|
-
for (const item of value) {
|
|
292
|
-
if (item && typeof item === "object" && !Array.isArray(item)) {
|
|
293
|
-
references.push(...collectStringReferences(item));
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
else if (value && typeof value === "object") {
|
|
298
|
-
references.push(...collectStringReferences(value));
|
|
154
|
+
let longest = strings[0];
|
|
155
|
+
for (const slot of strings.slice(1)) {
|
|
156
|
+
if (slot.value.length > longest.value.length)
|
|
157
|
+
longest = slot;
|
|
299
158
|
}
|
|
159
|
+
const clipped = `${longest.value.slice(0, Math.floor(longest.value.length / 2))}…`;
|
|
160
|
+
setSlot(longest, clipped);
|
|
161
|
+
recordCut(fields, longest.path.slice(1), longest.value.length, clipped.length, false);
|
|
300
162
|
}
|
|
301
|
-
return
|
|
163
|
+
return { data: holder.data, fields };
|
|
302
164
|
}
|
|
303
|
-
export
|
|
165
|
+
export const TEXT_TOOL_OUTPUT_SCHEMA = {
|
|
166
|
+
report: z.string().optional().describe("Formatted markdown report."),
|
|
167
|
+
// analyze_coin returns the coin beside its report. The schema is strict, so
|
|
168
|
+
// leaving it out made SDK clients that validate output reject every
|
|
169
|
+
// analyze_coin result (-32602, 2026-09-26).
|
|
170
|
+
coin: z.string().optional().describe("Coin the report covers."),
|
|
171
|
+
error: z.string().optional().describe("Error message when the call fails."),
|
|
172
|
+
};
|
|
173
|
+
/** An endpoint tool's answer: the result as `structuredContent`, and the same JSON as text for clients without it. */
|
|
174
|
+
export function toStructuredToolResult(result) {
|
|
304
175
|
return {
|
|
305
|
-
structuredContent:
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
// Compact: indentation added ~35% to every payload's token count
|
|
310
|
-
// (2026-09-26 audit) and carries nothing an agent reads.
|
|
311
|
-
text: JSON.stringify(result),
|
|
312
|
-
},
|
|
313
|
-
],
|
|
176
|
+
structuredContent: result,
|
|
177
|
+
// Compact: indentation added ~35% to every payload's token count
|
|
178
|
+
// (2026-09-26 audit) and carries nothing an agent reads.
|
|
179
|
+
content: [{ type: "text", text: jsonText(result) }],
|
|
314
180
|
};
|
|
315
181
|
}
|
|
316
182
|
export function toTextToolResult(report, extra) {
|
|
@@ -324,6 +190,7 @@ export function toTextToolResult(report, extra) {
|
|
|
324
190
|
],
|
|
325
191
|
};
|
|
326
192
|
}
|
|
193
|
+
/** A composite's failure: `{ error }` as structured content, and as text. */
|
|
327
194
|
export function toToolErrorResult(error) {
|
|
328
195
|
const message = error instanceof Error ? error.message : String(error);
|
|
329
196
|
return {
|
|
@@ -337,4 +204,12 @@ export function toToolErrorResult(error) {
|
|
|
337
204
|
isError: true,
|
|
338
205
|
};
|
|
339
206
|
}
|
|
207
|
+
/** An endpoint tool's failure: the message, as text (the Python server reports a tool error the same way). */
|
|
208
|
+
export function toTextErrorResult(error) {
|
|
209
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
210
|
+
return {
|
|
211
|
+
content: [{ type: "text", text: message }],
|
|
212
|
+
isError: true,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
340
215
|
//# sourceMappingURL=tool-runtime.js.map
|
package/dist/tool-runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-runtime.js","sourceRoot":"","sources":["../src/tool-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-runtime.js","sourceRoot":"","sources":["../src/tool-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC;AAC7B,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,sCAAsC,GAAoB;IACrE,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,IAAI;IACpB,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAK5C,IACE,MAAM;QACN,OAAO,MAAM,KAAK,QAAQ;QAC1B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACtB,YAAY,IAAI,MAAM;QACtB,MAAM,IAAI,MAAM,EAChB,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,MAAiC,CAAC;QAC1E,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;IAChE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAC;IAC/D,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,EAAE,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,QAAQ,CACf,MAAiB,EACjB,IAAY;IAEZ,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAClD,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;YACrD,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAC7B,4JAA4J,CAAC;AAS/J,wHAAwH;AACxH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,GAAoB;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC;IACtD,OAAO,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE;QAClB,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AACxC,CAAC;AASD,SAAS,SAAS,CAChB,MAAsC,EACtC,IAAY,EACZ,KAAa,EACb,OAAe,EACf,MAAe;IAEf,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,CAAC,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;QAClC,OAAO;QACP,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,SAAS,QAAQ,CACf,KAAc,EACd,IAAY,EACZ,MAAsC;IAEtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAC7B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACpD,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAC/C,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CACd,KAAc,EACd,IAAY,EACZ,IAAoC,EACpC,GAAc,EACd,KAA8B,EAC9B,GAAqB;IAErB,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC5B,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAC/D,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,CACL,IAAI,EACJ,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,EACzB,IAAI,EACJ,GAAG,EACH,KAAgC,EAChC,QAAQ,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,KAAc,EAAsB,EAAE,CAC7D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C,MAAM,YAAY,GAAG,CAAC,KAAc,EAAmB,EAAE,CACvD,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;AAEjD,SAAS,OAAO,CAAC,IAAmB,EAAE,KAAc;IACjD,IAAI,CAAC,KAA0C,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACrE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa;IAIxC,MAAM,MAAM,GAAmC,EAAE,CAAC;IAClD,MAAM,MAAM,GAAsB;QAChC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;KACrC,CAAC;IACF,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;gBAC3C,IAAI,MAAM,GAAG,aAAa,EAAE,CAAC;oBAC3B,OAAO,GAAG,IAAI,CAAC;oBACf,aAAa,GAAG,MAAM,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YACnC,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACvD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1D,OAAO,CAAC,OAAwB,EAAE,IAAI,CAAC,CAAC;YACxC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACjE,SAAS;QACX,CAAC;QACD,uEAAuE;QACvE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAChC,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO,GAAG,IAAI,CAAC;QAC/D,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnF,OAAO,CAAC,OAAwB,EAAE,OAAO,CAAC,CAAC;QAC3C,SAAS,CACP,MAAM,EACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EACpB,OAAO,CAAC,MAAM,EACd,KAAK,CACN,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACpE,4EAA4E;IAC5E,oEAAoE;IACpE,4CAA4C;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAC/D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CAC5C,CAAC;AAElC,sHAAsH;AACtH,MAAM,UAAU,sBAAsB,CAAC,MAA+B;IACpE,OAAO;QACL,iBAAiB,EAAE,MAAM;QACzB,iEAAiE;QACjE,yDAAyD;QACzD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,KAA+B;IAE/B,OAAO;QACL,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;QACvC,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO;QACL,iBAAiB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;QACrC,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aACzC;SACF;QACD,OAAO,EAAE,IAAa;KACvB,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACnD,OAAO,EAAE,IAAa;KACvB,CAAC;AACJ,CAAC"}
|