@vantagestack/mcp-server 0.1.56 → 0.1.59

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 (109) hide show
  1. package/package.json +1 -1
  2. package/dist/client.d.ts +0 -25
  3. package/dist/client.js +0 -172
  4. package/dist/client.js.map +0 -1
  5. package/dist/index.d.ts +0 -2
  6. package/dist/index.js +0 -1319
  7. package/dist/index.js.map +0 -1
  8. package/dist/tools/account-deletion.d.ts +0 -6
  9. package/dist/tools/account-deletion.js +0 -92
  10. package/dist/tools/account-deletion.js.map +0 -1
  11. package/dist/tools/account-health.d.ts +0 -21
  12. package/dist/tools/account-health.js +0 -84
  13. package/dist/tools/account-health.js.map +0 -1
  14. package/dist/tools/account.d.ts +0 -19
  15. package/dist/tools/account.js +0 -291
  16. package/dist/tools/account.js.map +0 -1
  17. package/dist/tools/account.test.d.ts +0 -1
  18. package/dist/tools/account.test.js +0 -213
  19. package/dist/tools/account.test.js.map +0 -1
  20. package/dist/tools/calendar.d.ts +0 -4
  21. package/dist/tools/calendar.js +0 -85
  22. package/dist/tools/calendar.js.map +0 -1
  23. package/dist/tools/calendar.test.d.ts +0 -1
  24. package/dist/tools/calendar.test.js +0 -62
  25. package/dist/tools/calendar.test.js.map +0 -1
  26. package/dist/tools/canary.d.ts +0 -4
  27. package/dist/tools/canary.js +0 -25
  28. package/dist/tools/canary.js.map +0 -1
  29. package/dist/tools/canary.test.d.ts +0 -1
  30. package/dist/tools/canary.test.js +0 -46
  31. package/dist/tools/canary.test.js.map +0 -1
  32. package/dist/tools/contract-configs.d.ts +0 -9
  33. package/dist/tools/contract-configs.js +0 -187
  34. package/dist/tools/contract-configs.js.map +0 -1
  35. package/dist/tools/contract-configs.test.d.ts +0 -1
  36. package/dist/tools/contract-configs.test.js +0 -245
  37. package/dist/tools/contract-configs.test.js.map +0 -1
  38. package/dist/tools/copier.d.ts +0 -11
  39. package/dist/tools/copier.js +0 -52
  40. package/dist/tools/copier.js.map +0 -1
  41. package/dist/tools/copier.test.d.ts +0 -1
  42. package/dist/tools/copier.test.js +0 -75
  43. package/dist/tools/copier.test.js.map +0 -1
  44. package/dist/tools/groups.d.ts +0 -14
  45. package/dist/tools/groups.js +0 -44
  46. package/dist/tools/groups.js.map +0 -1
  47. package/dist/tools/groups.test.d.ts +0 -1
  48. package/dist/tools/groups.test.js +0 -72
  49. package/dist/tools/groups.test.js.map +0 -1
  50. package/dist/tools/ip-allowlist.d.ts +0 -6
  51. package/dist/tools/ip-allowlist.js +0 -69
  52. package/dist/tools/ip-allowlist.js.map +0 -1
  53. package/dist/tools/journal.d.ts +0 -6
  54. package/dist/tools/journal.js +0 -110
  55. package/dist/tools/journal.js.map +0 -1
  56. package/dist/tools/journal.test.d.ts +0 -1
  57. package/dist/tools/journal.test.js +0 -100
  58. package/dist/tools/journal.test.js.map +0 -1
  59. package/dist/tools/latency.d.ts +0 -3
  60. package/dist/tools/latency.js +0 -54
  61. package/dist/tools/latency.js.map +0 -1
  62. package/dist/tools/market-history.d.ts +0 -4
  63. package/dist/tools/market-history.js +0 -50
  64. package/dist/tools/market-history.js.map +0 -1
  65. package/dist/tools/market-hours.d.ts +0 -3
  66. package/dist/tools/market-hours.js +0 -19
  67. package/dist/tools/market-hours.js.map +0 -1
  68. package/dist/tools/paper-trading.d.ts +0 -10
  69. package/dist/tools/paper-trading.js +0 -200
  70. package/dist/tools/paper-trading.js.map +0 -1
  71. package/dist/tools/ping.d.ts +0 -8
  72. package/dist/tools/ping.js +0 -22
  73. package/dist/tools/ping.js.map +0 -1
  74. package/dist/tools/ping.test.d.ts +0 -1
  75. package/dist/tools/ping.test.js +0 -25
  76. package/dist/tools/ping.test.js.map +0 -1
  77. package/dist/tools/qc.d.ts +0 -18
  78. package/dist/tools/qc.js +0 -422
  79. package/dist/tools/qc.js.map +0 -1
  80. package/dist/tools/qc.test.d.ts +0 -1
  81. package/dist/tools/qc.test.js +0 -218
  82. package/dist/tools/qc.test.js.map +0 -1
  83. package/dist/tools/read.d.ts +0 -7
  84. package/dist/tools/read.js +0 -154
  85. package/dist/tools/read.js.map +0 -1
  86. package/dist/tools/read.test.d.ts +0 -1
  87. package/dist/tools/read.test.js +0 -102
  88. package/dist/tools/read.test.js.map +0 -1
  89. package/dist/tools/risk.d.ts +0 -7
  90. package/dist/tools/risk.js +0 -108
  91. package/dist/tools/risk.js.map +0 -1
  92. package/dist/tools/signal-templates.d.ts +0 -6
  93. package/dist/tools/signal-templates.js +0 -90
  94. package/dist/tools/signal-templates.js.map +0 -1
  95. package/dist/tools/signals.d.ts +0 -8
  96. package/dist/tools/signals.js +0 -318
  97. package/dist/tools/signals.js.map +0 -1
  98. package/dist/tools/signals.test.d.ts +0 -1
  99. package/dist/tools/signals.test.js +0 -92
  100. package/dist/tools/signals.test.js.map +0 -1
  101. package/dist/tools/sync-accounts.d.ts +0 -18
  102. package/dist/tools/sync-accounts.js +0 -68
  103. package/dist/tools/sync-accounts.js.map +0 -1
  104. package/dist/tools/trade.d.ts +0 -3
  105. package/dist/tools/trade.js +0 -49
  106. package/dist/tools/trade.js.map +0 -1
  107. package/dist/user.d.ts +0 -19
  108. package/dist/user.js +0 -21
  109. package/dist/user.js.map +0 -1
package/dist/tools/qc.js DELETED
@@ -1,422 +0,0 @@
1
- import { makeErrorResult } from "../user.js";
2
- function parseOrdersCsv(csv) {
3
- const lines = csv.trim().split("\n");
4
- if (lines.length <= 1)
5
- return "No orders in export.";
6
- const header = lines[0];
7
- const cols = header.split(",").map((c) => c.trim());
8
- const rows = lines.slice(1).map((l) => {
9
- const vals = l.split(",");
10
- return Object.fromEntries(cols.map((c, i) => [c, vals[i]?.trim() ?? ""]));
11
- });
12
- const summary = rows
13
- .slice(0, 20)
14
- .map((r) => {
15
- const time = r["Time"] ?? r["Date"] ?? r["EntryTime"] ?? "?";
16
- const sym = r["Symbol"] ?? r["Ticker"] ?? "?";
17
- const dir = r["Direction"] ?? r["Action"] ?? "?";
18
- const qty = r["Quantity"] ?? r["Qty"] ?? "?";
19
- const price = r["FillPrice"] ?? r["Price"] ?? "?";
20
- const pnl = r["PnL"] ?? r["NetProfit"] ?? "";
21
- return `• [${time}] ${dir} ${sym} qty=${qty} @${price}${pnl ? ` pnl=${pnl}` : ""}`;
22
- })
23
- .join("\n");
24
- const trailer = rows.length > 20 ? `\n… and ${rows.length - 20} more` : "";
25
- return `${rows.length} order(s):\n${summary}${trailer}`;
26
- }
27
- export async function listQcAlgorithms(client, _resolver, _input) {
28
- try {
29
- const algos = await client.get("/api/qc-algorithms");
30
- if (!algos.length) {
31
- return { content: [{ type: "text", text: "No QC algorithms found. Use create_qc_algorithm to create one." }, { type: "text", text: "[]" }] };
32
- }
33
- const lines = algos.map((a) => `• id=${a.id} "${a.name ?? "?"}" (updated ${a.updatedAt ?? "?"})`);
34
- return {
35
- content: [
36
- { type: "text", text: `${algos.length} algorithm(s):\n${lines.join("\n")}` },
37
- { type: "text", text: JSON.stringify(algos, null, 2) },
38
- ],
39
- };
40
- }
41
- catch (err) {
42
- return makeErrorResult(err);
43
- }
44
- }
45
- export async function getQcAlgorithm(client, _resolver, input) {
46
- const algorithmId = String(input.algorithmId ?? "");
47
- if (!algorithmId)
48
- return makeErrorResult(new Error("algorithmId is required"));
49
- try {
50
- const algo = await client.get(`/api/qc-algorithms/${algorithmId}`);
51
- const files = algo.files ?? [];
52
- const summary = `Algorithm "${algo.name ?? "?"}" (id=${algo.id}), ${files.length} file(s): ${files.join(", ")}`;
53
- return {
54
- content: [
55
- { type: "text", text: summary },
56
- { type: "text", text: JSON.stringify(algo, null, 2) },
57
- ],
58
- };
59
- }
60
- catch (err) {
61
- return makeErrorResult(err);
62
- }
63
- }
64
- export async function getAlgorithmFile(client, _resolver, input) {
65
- const algorithmId = String(input.algorithmId ?? "");
66
- const filename = String(input.filename ?? "");
67
- if (!algorithmId || !filename)
68
- return makeErrorResult(new Error("algorithmId and filename are required"));
69
- try {
70
- const content = await client.getText(`/api/qc-algorithms/${algorithmId}/files/${encodeURIComponent(filename)}`);
71
- const lines = content.split("\n").length;
72
- return {
73
- content: [
74
- { type: "text", text: `${filename} (${lines} lines):` },
75
- { type: "text", text: content },
76
- ],
77
- };
78
- }
79
- catch (err) {
80
- return makeErrorResult(err);
81
- }
82
- }
83
- export async function createQcAlgorithm(client, _resolver, input) {
84
- const name = String(input.name ?? "");
85
- if (!name)
86
- return makeErrorResult(new Error("name is required"));
87
- const files = input.files;
88
- try {
89
- const algo = await client.post("/api/qc-algorithms", { name, files: files ?? [] });
90
- return {
91
- content: [
92
- { type: "text", text: `Algorithm "${name}" created with id=${algo.id}` },
93
- { type: "text", text: JSON.stringify(algo, null, 2) },
94
- ],
95
- };
96
- }
97
- catch (err) {
98
- return makeErrorResult(err);
99
- }
100
- }
101
- export async function updateQcAlgorithm(client, _resolver, input) {
102
- const algorithmId = String(input.algorithmId ?? "");
103
- if (!algorithmId)
104
- return makeErrorResult(new Error("algorithmId is required"));
105
- const files = input.files;
106
- if (!files?.length)
107
- return makeErrorResult(new Error("files array is required"));
108
- try {
109
- const algo = await client.patch(`/api/qc-algorithms/${algorithmId}`, { files });
110
- const fileNames = files.map((f) => f.filename).join(", ");
111
- return {
112
- content: [
113
- { type: "text", text: `Algorithm ${algorithmId} updated — files: ${fileNames}` },
114
- { type: "text", text: JSON.stringify(algo, null, 2) },
115
- ],
116
- };
117
- }
118
- catch (err) {
119
- return makeErrorResult(err);
120
- }
121
- }
122
- export async function listStrategyInstances(client, _resolver, input) {
123
- try {
124
- const params = new URLSearchParams();
125
- if (input.status)
126
- params.set("status", String(input.status));
127
- if (input.groupId)
128
- params.set("groupId", String(input.groupId));
129
- const qs = params.toString() ? `?${params}` : "";
130
- const instances = await client.get(`/api/strategy-instances${qs}`);
131
- if (!instances.length) {
132
- return { content: [{ type: "text", text: "No strategy instances found." }, { type: "text", text: "[]" }] };
133
- }
134
- const lines = instances.map((i) => `• id=${i.id} "${i.algorithmName ?? "?"}" [${i.status ?? "?"}] mode=${i.isSimulated ? "simulated" : "live"} created=${i.createdAt ?? "?"}`);
135
- return {
136
- content: [
137
- { type: "text", text: `${instances.length} instance(s):\n${lines.join("\n")}` },
138
- { type: "text", text: JSON.stringify(instances, null, 2) },
139
- ],
140
- };
141
- }
142
- catch (err) {
143
- return makeErrorResult(err);
144
- }
145
- }
146
- export async function getStrategyInstance(client, _resolver, input) {
147
- const instanceId = String(input.instanceId ?? "");
148
- if (!instanceId)
149
- return makeErrorResult(new Error("instanceId is required"));
150
- try {
151
- const inst = await client.get(`/api/strategy-instances/${instanceId}`);
152
- const progress = inst.progress != null ? ` (${(inst.progress * 100).toFixed(0)}%)` : "";
153
- const errStr = inst.error ? ` ERROR: ${inst.error}` : "";
154
- const summary = `Instance ${instanceId}: "${inst.algorithmName ?? "?"}" [${inst.status ?? "?"}]${progress} mode=${inst.isSimulated ? "simulated" : "live"}${errStr}`;
155
- return {
156
- content: [
157
- { type: "text", text: summary },
158
- { type: "text", text: JSON.stringify(inst, null, 2) },
159
- ],
160
- };
161
- }
162
- catch (err) {
163
- return makeErrorResult(err);
164
- }
165
- }
166
- export async function launchStrategy(client, _resolver, input) {
167
- const algorithmId = Number(input.algorithmId);
168
- const connectionAccountId = Number(input.connectionAccountId);
169
- const strategyName = String(input.strategyName ?? "");
170
- if (!algorithmId)
171
- return makeErrorResult(new Error("algorithmId is required"));
172
- if (!connectionAccountId)
173
- return makeErrorResult(new Error("connectionAccountId is required"));
174
- if (!strategyName)
175
- return makeErrorResult(new Error("strategyName is required"));
176
- const body = { algorithmId, connectionAccountId, strategyName };
177
- if (input.quickTestMode !== undefined)
178
- body.quickTestMode = Boolean(input.quickTestMode);
179
- if (input.useDatabento !== undefined)
180
- body.useDatabento = Boolean(input.useDatabento);
181
- if (input.replayStart)
182
- body.replayStart = String(input.replayStart);
183
- if (input.replayEnd)
184
- body.replayEnd = String(input.replayEnd);
185
- if (input.databentoApiKey)
186
- body.databentoApiKey = String(input.databentoApiKey);
187
- if (input.sessionStartTime)
188
- body.sessionStartTime = String(input.sessionStartTime);
189
- if (input.preset)
190
- body.preset = String(input.preset);
191
- if (input.slippageTicks !== undefined)
192
- body.slippageTicks = Number(input.slippageTicks);
193
- if (input.delayedLiveMode !== undefined)
194
- body.delayedLiveMode = Boolean(input.delayedLiveMode);
195
- // WP-UXSETTINGS: per-strategy market-data feed kind + backpressure pass-through.
196
- if (input.marketDataFeedKind)
197
- body.marketDataFeedKind = String(input.marketDataFeedKind);
198
- if (input.marketDataHistoryFeedKind)
199
- body.marketDataHistoryFeedKind = String(input.marketDataHistoryFeedKind);
200
- if (input.marketDataBackpressureMode)
201
- body.marketDataBackpressureMode = String(input.marketDataBackpressureMode);
202
- try {
203
- const inst = await client.post("/api/strategy-instances", body);
204
- const replayNote = input.replayStart ? ` replay from ${input.replayStart}` : " live";
205
- const qtNote = input.quickTestMode ? " [quick test]" : "";
206
- return {
207
- content: [
208
- {
209
- type: "text",
210
- text: `Strategy launched: instanceId=${inst.instanceId ?? inst.id}${replayNote}${qtNote}, status=${inst.status ?? "?"}. Use get_strategy_logs(instanceId: "${inst.instanceId ?? inst.id}") to monitor.`,
211
- },
212
- { type: "text", text: JSON.stringify(inst, null, 2) },
213
- ],
214
- };
215
- }
216
- catch (err) {
217
- return makeErrorResult(err);
218
- }
219
- }
220
- export async function stopStrategy(client, _resolver, input) {
221
- const instanceId = String(input.instanceId ?? "");
222
- if (!instanceId)
223
- return makeErrorResult(new Error("instanceId is required"));
224
- try {
225
- await client.delete(`/api/strategy-instances/${instanceId}`);
226
- return {
227
- content: [{ type: "text", text: `Strategy instance ${instanceId} stopped.` }],
228
- };
229
- }
230
- catch (err) {
231
- return makeErrorResult(err);
232
- }
233
- }
234
- export async function launchGroup(client, _resolver, input) {
235
- const groupId = Number(input.groupId);
236
- const algorithmId = Number(input.algorithmId);
237
- if (!groupId)
238
- return makeErrorResult(new Error("groupId is required"));
239
- if (!algorithmId)
240
- return makeErrorResult(new Error("algorithmId is required"));
241
- const body = { groupId, algorithmId };
242
- if (input.quickTestMode !== undefined)
243
- body.quickTestMode = Boolean(input.quickTestMode);
244
- if (input.useDatabento !== undefined)
245
- body.useDatabento = Boolean(input.useDatabento);
246
- if (input.replayStart)
247
- body.replayStart = String(input.replayStart);
248
- if (input.replayEnd)
249
- body.replayEnd = String(input.replayEnd);
250
- if (input.preset)
251
- body.preset = String(input.preset);
252
- if (input.slippageTicks !== undefined)
253
- body.slippageTicks = Number(input.slippageTicks);
254
- try {
255
- const result = await client.post("/api/strategy-instances/group", body);
256
- const ids = result.instanceIds ?? [];
257
- return {
258
- content: [
259
- {
260
- type: "text",
261
- text: `Launched ${ids.length} instance(s) in group ${groupId}: instanceIds=${ids.join(", ")}. Use get_strategy_logs for each to monitor progress.`,
262
- },
263
- { type: "text", text: JSON.stringify(result, null, 2) },
264
- ],
265
- };
266
- }
267
- catch (err) {
268
- return makeErrorResult(err);
269
- }
270
- }
271
- export async function stopGroup(client, _resolver, input) {
272
- const groupId = String(input.groupId ?? "");
273
- if (!groupId)
274
- return makeErrorResult(new Error("groupId is required"));
275
- try {
276
- const result = await client.delete(`/api/strategy-instances/group/${groupId}`);
277
- return {
278
- content: [{ type: "text", text: `Stopped ${result.stopped} running instance(s) in group ${groupId}.` }],
279
- };
280
- }
281
- catch (err) {
282
- return makeErrorResult(err);
283
- }
284
- }
285
- export async function getStrategyLogs(client, _resolver, input) {
286
- const instanceId = String(input.instanceId ?? "");
287
- if (!instanceId)
288
- return makeErrorResult(new Error("instanceId is required"));
289
- const tail = input.tail ? Number(input.tail) : 100;
290
- try {
291
- const raw = await client.getText(`/api/strategy-instances/${instanceId}/logs`);
292
- if (!raw.trim()) {
293
- return { content: [{ type: "text", text: `No logs yet for instance ${instanceId}.` }] };
294
- }
295
- const lines = raw.trim().split("\n");
296
- const slice = lines.slice(-tail);
297
- const header = lines.length > tail ? `(showing last ${tail} of ${lines.length} lines)\n` : "";
298
- return {
299
- content: [{ type: "text", text: `${header}${slice.join("\n")}` }],
300
- };
301
- }
302
- catch (err) {
303
- return makeErrorResult(err);
304
- }
305
- }
306
- export async function getStrategyStats(client, _resolver, input) {
307
- const instanceId = String(input.instanceId ?? "");
308
- if (!instanceId)
309
- return makeErrorResult(new Error("instanceId is required"));
310
- try {
311
- const stats = await client.get(`/api/strategy-instances/${instanceId}/export/stats.json`);
312
- const pnlStr = stats.netPnl != null ? `${stats.netPnl >= 0 ? "+" : ""}${stats.netPnl.toFixed(2)}` : "?";
313
- const wrStr = stats.winRate != null ? `${(stats.winRate * 100).toFixed(1)}%` : "?";
314
- const pfStr = stats.profitFactor != null ? stats.profitFactor.toFixed(2) : "?";
315
- const shStr = stats.sharpe != null ? stats.sharpe.toFixed(2) : "?";
316
- const ddStr = stats.maxDrawdown != null ? stats.maxDrawdown.toFixed(2) : "?";
317
- const summary = [
318
- `Net P&L: ${pnlStr}`,
319
- `Trades: ${stats.totalTrades ?? "?"}`,
320
- `Win rate: ${wrStr}`,
321
- `Profit factor: ${pfStr}`,
322
- `Sharpe: ${shStr}`,
323
- `Max drawdown: ${ddStr}`,
324
- ].join(" | ");
325
- return {
326
- content: [
327
- { type: "text", text: summary },
328
- { type: "text", text: JSON.stringify(stats, null, 2) },
329
- ],
330
- };
331
- }
332
- catch (err) {
333
- return makeErrorResult(err);
334
- }
335
- }
336
- export async function getStrategyOrders(client, _resolver, input) {
337
- const instanceId = String(input.instanceId ?? "");
338
- if (!instanceId)
339
- return makeErrorResult(new Error("instanceId is required"));
340
- try {
341
- const csv = await client.getText(`/api/strategy-instances/${instanceId}/export/orders.csv`);
342
- if (!csv.trim()) {
343
- return { content: [{ type: "text", text: `No orders exported for instance ${instanceId}.` }] };
344
- }
345
- const summary = parseOrdersCsv(csv);
346
- return {
347
- content: [
348
- { type: "text", text: summary },
349
- { type: "text", text: csv },
350
- ],
351
- };
352
- }
353
- catch (err) {
354
- return makeErrorResult(err);
355
- }
356
- }
357
- export async function getStrategyTrades(client, _resolver, input) {
358
- const instanceId = String(input.instanceId ?? "");
359
- if (!instanceId)
360
- return makeErrorResult(new Error("instanceId is required"));
361
- try {
362
- const trades = await client.get(`/api/strategy-instances/${instanceId}/trades`);
363
- if (!trades || trades.length === 0) {
364
- return { content: [{ type: "text", text: `No trades for instance ${instanceId}.` }] };
365
- }
366
- const closed = trades.filter(t => t.isClosed && t.realizedPnl != null);
367
- const open = trades.filter(t => !t.isClosed);
368
- const totalPnl = closed.reduce((s, t) => s + (t.realizedPnl ?? 0), 0);
369
- const wins = closed.filter(t => (t.realizedPnl ?? 0) > 0).length;
370
- const losses = closed.filter(t => (t.realizedPnl ?? 0) < 0).length;
371
- const totalCommission = trades.reduce((s, t) => s + (t.commission ?? 0), 0);
372
- const summary = [
373
- `${trades.length} round-trip(s): ${closed.length} closed, ${open.length} open`,
374
- `Net P&L: ${totalPnl >= 0 ? "+" : ""}$${totalPnl.toFixed(2)} (commission-net)`,
375
- `Wins/Losses: ${wins}/${losses}`,
376
- `Total commission: $${totalCommission.toFixed(2)}`,
377
- ].join("\n");
378
- const rows = trades.slice(0, 50).map(t => {
379
- const side = t.entrySide === "buy" ? "Long" : "Short";
380
- const exit = t.isClosed
381
- ? `${t.exitAtUtc?.slice(0, 16) ?? "?"} @ ${t.exitPrice}`
382
- : "(open)";
383
- const pnl = t.realizedPnl != null
384
- ? `${t.realizedPnl >= 0 ? "+" : ""}$${t.realizedPnl.toFixed(2)}`
385
- : "—";
386
- return `${t.entryAtUtc.slice(0, 16)} ${side} ${t.quantity} ${t.symbol} @ ${t.entryPrice} → ${exit} P&L=${pnl}`;
387
- });
388
- return {
389
- content: [
390
- { type: "text", text: summary },
391
- { type: "text", text: rows.join("\n") + (trades.length > 50 ? `\n… and ${trades.length - 50} more` : "") },
392
- ],
393
- };
394
- }
395
- catch (err) {
396
- return makeErrorResult(err);
397
- }
398
- }
399
- export async function getStrategySessions(client, _resolver, input) {
400
- const instanceId = String(input.instanceId ?? "");
401
- if (!instanceId)
402
- return makeErrorResult(new Error("instanceId is required"));
403
- try {
404
- const rows = await client.get(`/api/strategy-instances/${instanceId}/session-lines`);
405
- if (!rows.length) {
406
- return { content: [{ type: "text", text: `No session data yet for instance ${instanceId}.` }] };
407
- }
408
- const summary = rows
409
- .map((r) => `${r.date} range=${r.rangePts}pts long=${r.longEntry} short=${r.shortEntry}`)
410
- .join("\n");
411
- return {
412
- content: [
413
- { type: "text", text: summary },
414
- { type: "text", text: JSON.stringify(rows, null, 2) },
415
- ],
416
- };
417
- }
418
- catch (err) {
419
- return makeErrorResult(err);
420
- }
421
- }
422
- //# sourceMappingURL=qc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"qc.js","sourceRoot":"","sources":["../../src/tools/qc.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,eAAe,EAAc,MAAM,YAAY,CAAC;AAqCvE,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,sBAAsB,CAAC;IACrD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI;SACjB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC;QAC7D,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;QAC9C,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC;QACjD,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;QAClD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC7C,OAAO,MAAM,IAAI,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACrF,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,GAAG,IAAI,CAAC,MAAM,eAAe,OAAO,GAAG,OAAO,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAqB,EACrB,SAAuB,EACvB,MAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAgB,oBAAoB,CAAC,CAAC;QAEpE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gEAAgE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/I,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,GAAG,cAAc,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,CAAC,CAAC;QAClG,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBAC5E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACvD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAc,sBAAsB,WAAW,EAAE,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,cAAc,IAAI,CAAC,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChH,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACtD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,QAAQ;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAE1G,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,sBAAsB,WAAW,UAAU,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACzC,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,KAAK,KAAK,UAAU,EAAE;gBACvD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;aAChC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEjE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAiE,CAAC;IAEtF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAc,oBAAoB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;QAChG,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,IAAI,qBAAqB,IAAI,CAAC,EAAE,EAAE,EAAE;gBACxE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACtD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAE/E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAiE,CAAC;IACtF,IAAI,CAAC,KAAK,EAAE,MAAM;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAEjF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAc,sBAAsB,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7F,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,WAAW,qBAAqB,SAAS,EAAE,EAAE;gBAChF,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACtD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,IAAI,KAAK,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,CAAqB,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAEvF,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7G,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,aAAa,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,SAAS,IAAI,GAAG,EAAE,CAC7I,CAAC;QACF,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,MAAM,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;gBAC/E,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aAC3D;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAmB,2BAA2B,UAAU,EAAE,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,YAAY,UAAU,MAAM,IAAI,CAAC,aAAa,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,SAAS,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QACrK,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACtD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,WAAW;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,mBAAmB;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC/F,IAAI,CAAC,YAAY;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAEjF,MAAM,IAAI,GAA4B,EAAE,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;IACzF,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACtF,IAAI,KAAK,CAAC,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,eAAe;QAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAChF,IAAI,KAAK,CAAC,gBAAgB;QAAE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACnF,IAAI,KAAK,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACxF,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/F,iFAAiF;IACjF,IAAI,KAAK,CAAC,kBAAkB;QAAE,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,yBAAyB;QAAE,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC9G,IAAI,KAAK,CAAC,0BAA0B;QAAE,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEjH,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAmB,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACrF,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,iCAAiC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,GAAG,UAAU,GAAG,MAAM,YAAY,IAAI,CAAC,MAAM,IAAI,GAAG,wCAAwC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,gBAAgB;iBACxM;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACtD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAU,2BAA2B,UAAU,EAAE,CAAC,CAAC;QACtE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,UAAU,WAAW,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,WAAW;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAE/E,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAC/D,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;QAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACtF,IAAI,KAAK,CAAC,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;QAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAExF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAA4B,+BAA+B,EAAE,IAAI,CAAC,CAAC;QACnG,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QACrC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY,GAAG,CAAC,MAAM,yBAAyB,OAAO,iBAAiB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,uDAAuD;iBACnJ;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACxD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAEvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAwC,iCAAiC,OAAO,EAAE,CAAC,CAAC;QACtH,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,MAAM,CAAC,OAAO,iCAAiC,OAAO,GAAG,EAAE,CAAC;SACxG,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,2BAA2B,UAAU,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,iBAAiB,IAAI,OAAO,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;SAClE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAgB,2BAA2B,UAAU,oBAAoB,CAAC,CAAC;QAEzG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACxG,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnF,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAE7E,MAAM,OAAO,GAAG;YACd,YAAY,MAAM,EAAE;YACpB,WAAW,KAAK,CAAC,WAAW,IAAI,GAAG,EAAE;YACrC,aAAa,KAAK,EAAE;YACpB,kBAAkB,KAAK,EAAE;YACzB,WAAW,KAAK,EAAE;YAClB,iBAAiB,KAAK,EAAE;SACzB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEd,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACvD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,2BAA2B,UAAU,oBAAoB,CAAC,CAAC;QAC5F,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;QACjG,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;aAC5B;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAY3B,2BAA2B,UAAU,SAAS,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;QACxF,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;QACvE,MAAM,IAAI,GAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5E,MAAM,OAAO,GAAG;YACd,GAAG,MAAM,CAAC,MAAM,mBAAmB,MAAM,CAAC,MAAM,YAAY,IAAI,CAAC,MAAM,OAAO;YAC9E,YAAY,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB;YAC9E,gBAAgB,IAAI,IAAI,MAAM,EAAE;YAChC,sBAAsB,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACvC,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACtD,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ;gBACrB,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,SAAS,EAAE;gBACxD,CAAC,CAAC,QAAQ,CAAC;YACb,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,IAAI,IAAI;gBAC/B,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAChE,CAAC,CAAC,GAAG,CAAC;YACR,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,UAAU,MAAM,IAAI,QAAQ,GAAG,EAAE,CAAC;QACjH,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;aAC3G;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAqB,EACrB,SAAuB,EACvB,KAA8B;IAE9B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU;QAAE,OAAO,eAAe,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,2BAA2B,UAAU,gBAAgB,CAA8B,CAAC;QAClH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;QAClG,CAAC;QACD,MAAM,OAAO,GAAG,IAAI;aACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,QAAQ,aAAa,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;aAC3F,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC/B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;aACtD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- export {};