mindweave 2.4.7 → 2.4.9
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 +5 -3
- package/dist/cli/App.js +70 -23
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/chatAnchor.js +22 -0
- package/dist/cli/chatAnchor.js.map +1 -1
- package/dist/cli/commandArgs.js +60 -16
- package/dist/cli/commandArgs.js.map +1 -1
- package/dist/cli/components/Picker.js +61 -19
- package/dist/cli/components/Picker.js.map +1 -1
- package/dist/cli/scrollPill.js +4 -4
- package/dist/cli/scrollPill.js.map +1 -1
- package/dist/drivers/clientId.js +2 -3
- package/dist/drivers/clientId.js.map +1 -1
- package/dist/drivers/openaiCompat/wire.js +55 -3
- package/dist/drivers/openaiCompat/wire.js.map +1 -1
- package/dist/drivers/openrouter/catalog.js +136 -0
- package/dist/drivers/openrouter/catalog.js.map +1 -0
- package/dist/drivers/openrouter/client.js +102 -0
- package/dist/drivers/openrouter/client.js.map +1 -0
- package/dist/drivers/openrouter/endpoint.js +20 -0
- package/dist/drivers/openrouter/endpoint.js.map +1 -0
- package/dist/drivers/openrouter/index.js +5 -0
- package/dist/drivers/openrouter/index.js.map +1 -0
- package/dist/drivers/openrouter/manifest.js +83 -0
- package/dist/drivers/openrouter/manifest.js.map +1 -0
- package/dist/drivers/providerError.js +51 -0
- package/dist/drivers/providerError.js.map +1 -1
- package/dist/drivers/registry.js +111 -3
- package/dist/drivers/registry.js.map +1 -1
- package/dist/dynamo/model.js +63 -4
- package/dist/dynamo/model.js.map +1 -1
- package/package.json +74 -74
package/dist/cli/chatAnchor.js
CHANGED
|
@@ -59,6 +59,28 @@ export function chatLayout(contentHeight, chatRows, scrollUp) {
|
|
|
59
59
|
scrolled,
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Where the reader should sit after the transcript grows without a resize — a reply
|
|
64
|
+
* streaming in, a tool row landing, anything that appends below the fold.
|
|
65
|
+
*
|
|
66
|
+
* `scrollUp` counts lines back from the newest, so it names a DISTANCE from a point
|
|
67
|
+
* that keeps moving: every line a running turn appends pushes "the newest" further
|
|
68
|
+
* down, and holding the distance constant slides the window itself toward the new
|
|
69
|
+
* content. A reader who scrolled back to read something drifts toward the bottom with
|
|
70
|
+
* no wheel touched, and a long-running turn can carry them all the way down before it
|
|
71
|
+
* finishes — which is the whole difference between "reading" and "watching it happen
|
|
72
|
+
* to me". Adding the growth to `scrollUp` holds the same absolute rows on screen,
|
|
73
|
+
* because growth (unlike a re-wrap) does not change what a line IS — only a resize
|
|
74
|
+
* needs the proportion `reflowScroll` computes instead.
|
|
75
|
+
*
|
|
76
|
+
* Pinned to the newest (`scrollUp === 0`) is left alone: that reader wants the growth,
|
|
77
|
+
* not to be insulated from it.
|
|
78
|
+
*/
|
|
79
|
+
export function growScroll(scrollUp, prevHeight, height) {
|
|
80
|
+
if (scrollUp <= 0 || height <= prevHeight)
|
|
81
|
+
return scrollUp;
|
|
82
|
+
return scrollUp + (height - prevHeight);
|
|
83
|
+
}
|
|
62
84
|
/**
|
|
63
85
|
* Where the reader should sit after the transcript re-wraps at a new width.
|
|
64
86
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatAnchor.js","sourceRoot":"","sources":["../../src/cli/chatAnchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAqBH;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,aAAqB,EAAE,QAAgB,EAAE,QAAgB;IAClF,yEAAyE;IACzE,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,iDAAiD;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnC,OAAO;QACL,0EAA0E;QAC1E,wDAAwD;QACxD,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;QACtB,8EAA8E;QAC9E,kCAAkC;QAClC,aAAa,EAAE,SAAS,KAAK,CAAC;QAC9B,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,YAAoB,EAAE,YAAoB;IACvF,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,kFAAkF;IAClF,8EAA8E;IAC9E,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
|
1
|
+
{"version":3,"file":"chatAnchor.js","sourceRoot":"","sources":["../../src/cli/chatAnchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAqBH;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,aAAqB,EAAE,QAAgB,EAAE,QAAgB;IAClF,yEAAyE;IACzE,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,iDAAiD;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnC,OAAO;QACL,0EAA0E;QAC1E,wDAAwD;QACxD,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;QACtB,8EAA8E;QAC9E,kCAAkC;QAClC,aAAa,EAAE,SAAS,KAAK,CAAC;QAC9B,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,UAAkB,EAAE,MAAc;IAC7E,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,IAAI,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC3D,OAAO,QAAQ,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,YAAoB,EAAE,YAAoB;IACvF,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,kFAAkF;IAClF,8EAA8E;IAC9E,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC"}
|
package/dist/cli/commandArgs.js
CHANGED
|
@@ -13,11 +13,14 @@
|
|
|
13
13
|
* which reads them from the registry. That is the rule for core code, and it is also
|
|
14
14
|
* what makes this testable without a key.
|
|
15
15
|
*
|
|
16
|
-
* The matching is deliberately forgiving in a bounded way: exact id, then
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
16
|
+
* The matching is deliberately forgiving in a bounded way: exact id or label, then a
|
|
17
|
+
* UNIQUE prefix, then every typed WORD appearing somewhere in the id or label, in any
|
|
18
|
+
* order. Words matter once a provider lists hundreds of models: "deepseek flash" has to
|
|
19
|
+
* find "DeepSeek V4.1 Flash" although "V4.1" sits between the two words. Never a
|
|
20
|
+
* "closest guess" — picking a model or a reasoning budget is a decision with a cost
|
|
21
|
+
* attached, and quietly choosing the nearest thing to a typo is how you end up billed
|
|
22
|
+
* for the wrong one. Several matches come back as the list of them, so a caller can
|
|
23
|
+
* offer exactly those; a miss comes back as a message.
|
|
21
24
|
*/
|
|
22
25
|
function norm(s) {
|
|
23
26
|
return s.trim().toLowerCase();
|
|
@@ -48,16 +51,56 @@ export function resolveChoice(arg, candidates, what) {
|
|
|
48
51
|
if (starts.length === 1)
|
|
49
52
|
return { kind: "match", index: starts[0] };
|
|
50
53
|
if (starts.length > 1)
|
|
51
|
-
return
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
return several(arg, starts, names);
|
|
55
|
+
const words = wordsOf(arg);
|
|
56
|
+
const all = matchesFor(candidates, (c) => words.every((w) => includes(c, w)));
|
|
57
|
+
if (all.length === 1)
|
|
58
|
+
return { kind: "match", index: all[0] };
|
|
59
|
+
if (all.length > 1)
|
|
60
|
+
return several(arg, all, names);
|
|
61
|
+
return { kind: "error", message: miss(arg, words, candidates, what) };
|
|
62
|
+
}
|
|
63
|
+
/** The words of a typed argument, lowercased. */
|
|
64
|
+
export function wordsOf(text) {
|
|
65
|
+
return norm(text).split(/\s+/).filter(Boolean);
|
|
66
|
+
}
|
|
67
|
+
/** True when every word appears in one of the texts. Shared with the picker's filter. */
|
|
68
|
+
export function matchesWords(words, ...texts) {
|
|
69
|
+
const hay = texts.filter((t) => !!t).map(norm);
|
|
70
|
+
return words.every((w) => hay.some((h) => h.includes(w)));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Split `/model <words>` into the provider it names and the words left to match.
|
|
74
|
+
*
|
|
75
|
+
* The first word names a provider only when it is exactly one AND the whole phrase
|
|
76
|
+
* matches nothing on the provider in use. So on a router `/model deepseek flash` finds
|
|
77
|
+
* the router's DeepSeek Flash, while on a provider serving no DeepSeek model it moves
|
|
78
|
+
* to DeepSeek. `/model openrouter` alone leaves no words, which means "show me its list".
|
|
79
|
+
*/
|
|
80
|
+
export function splitModelArg(arg, providers, current, matchesHere) {
|
|
81
|
+
const [first = "", ...rest] = wordsOf(arg);
|
|
82
|
+
const named = providers.find((p) => norm(p.id) === first || norm(p.label) === first);
|
|
83
|
+
if (!named || matchesHere)
|
|
84
|
+
return { providerId: current, words: arg.trim() };
|
|
85
|
+
return { providerId: named.id, words: rest.join(" ") };
|
|
86
|
+
}
|
|
87
|
+
/** A long list is not read by anyone, so beyond this only the nearest names are offered. */
|
|
88
|
+
const LIST_ALL_UP_TO = 12;
|
|
89
|
+
function miss(arg, words, candidates, what) {
|
|
90
|
+
const said = `No ${what} called "${arg.trim()}".`;
|
|
91
|
+
if (candidates.length <= LIST_ALL_UP_TO)
|
|
92
|
+
return `${said} Available: ${list(candidates.map((c) => c.label))}.`;
|
|
93
|
+
// Nearest by how many of the typed words each one contains. A suggestion, never a pick.
|
|
94
|
+
const scored = candidates
|
|
95
|
+
.map((c) => ({ c, score: words.filter((w) => includes(c, w)).length }))
|
|
96
|
+
.filter((x) => x.score > 0)
|
|
97
|
+
.sort((a, b) => b.score - a.score)
|
|
98
|
+
.slice(0, 3)
|
|
99
|
+
.map((x) => x.c.label);
|
|
100
|
+
return scored.length > 0 ? `${said} Closest: ${list(scored)}.` : said;
|
|
101
|
+
}
|
|
102
|
+
function several(arg, indices, names) {
|
|
103
|
+
return { kind: "several", indices, message: ambiguous(arg, indices.map((i) => names[i])) };
|
|
61
104
|
}
|
|
62
105
|
function matchesFor(candidates, pred) {
|
|
63
106
|
const out = [];
|
|
@@ -74,6 +117,7 @@ function includes(c, wanted) {
|
|
|
74
117
|
return norm(c.label).includes(wanted) || (c.id !== undefined && norm(c.id).includes(wanted));
|
|
75
118
|
}
|
|
76
119
|
function ambiguous(arg, matched) {
|
|
77
|
-
|
|
120
|
+
const shown = matched.length > LIST_ALL_UP_TO ? [...matched.slice(0, LIST_ALL_UP_TO), `${matched.length - LIST_ALL_UP_TO} more`] : matched;
|
|
121
|
+
return `"${arg.trim()}" matches ${list(shown)}. Which one?`;
|
|
78
122
|
}
|
|
79
123
|
//# sourceMappingURL=commandArgs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandArgs.js","sourceRoot":"","sources":["../../src/cli/commandArgs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"commandArgs.js","sourceRoot":"","sources":["../../src/cli/commandArgs.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,14 +5,19 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
5
5
|
* (`/model`, `/think`), and the forbidden-lift approval prompt all render through
|
|
6
6
|
* this, so selection looks and feels identical everywhere.
|
|
7
7
|
*
|
|
8
|
-
* It owns
|
|
8
|
+
* It owns a highlight index and a filter. ↑/↓ move (wrapping), Enter selects, Esc
|
|
9
|
+
* cancels, and typing narrows the list to rows containing every typed word, so one
|
|
10
|
+
* model among hundreds is a few keystrokes away. `onSelect` always receives the index
|
|
11
|
+
* into the caller's `items`, filtered or not.
|
|
9
12
|
* Like the input box, it captures keys via `useInput`; the caller gates it with
|
|
10
13
|
* `active` so exactly one input owner is live at a time (the prompt is disabled
|
|
11
14
|
* while a picker is open).
|
|
12
15
|
*/
|
|
13
|
-
import { useState } from "react";
|
|
16
|
+
import { useMemo, useState } from "react";
|
|
14
17
|
import { Box, Text, useInput } from "ink";
|
|
15
18
|
import { clipRows } from "../wrap.js";
|
|
19
|
+
import { matchesWords, wordsOf } from "../commandArgs.js";
|
|
20
|
+
import { stripMouse } from "../mouse.js";
|
|
16
21
|
const MAX_VISIBLE = 10;
|
|
17
22
|
/**
|
|
18
23
|
* The title is clipped to this many rendered rows, wrapping included.
|
|
@@ -30,28 +35,58 @@ const MAX_VISIBLE = 10;
|
|
|
30
35
|
*/
|
|
31
36
|
const MAX_TITLE_ROWS = 6;
|
|
32
37
|
const MAX_NOTE_ROWS = 4;
|
|
33
|
-
export function Picker({ title, items, onSelect, onCancel, width, active = true, initialIndex = 0, maxTitleRows = MAX_TITLE_ROWS, note, maxNoteRows = MAX_NOTE_ROWS, describeSelection = false, rightAlignDescription = false, maxRows = MAX_VISIBLE, }) {
|
|
38
|
+
export function Picker({ title, items, onSelect, onCancel, width, active = true, initialIndex = 0, maxTitleRows = MAX_TITLE_ROWS, note, maxNoteRows = MAX_NOTE_ROWS, describeSelection = false, rightAlignDescription = false, maxRows = MAX_VISIBLE, initialFilter = "", }) {
|
|
34
39
|
// Same window size as the command menu (App clamps maxRows to a safe ceiling), so the
|
|
35
40
|
// picker box and the command box are the SAME fixed height.
|
|
36
41
|
const visible = Math.max(1, maxRows);
|
|
37
|
-
const [
|
|
38
|
-
|
|
42
|
+
const [filter, setFilter] = useState(initialFilter);
|
|
43
|
+
// Rows still showing, as indices into `items`. Label and description both count, so
|
|
44
|
+
// "vision" or "1M" finds a model by what its row says about it.
|
|
45
|
+
const matching = useMemo(() => {
|
|
46
|
+
const words = wordsOf(filter);
|
|
47
|
+
return items.flatMap((item, i) => (matchesWords(words, item.label, item.description) ? [i] : []));
|
|
48
|
+
}, [items, filter]);
|
|
49
|
+
const [sel, setSel] = useState(initialFilter ? 0 : Math.min(Math.max(0, initialIndex), Math.max(0, items.length - 1)));
|
|
50
|
+
const count = matching.length;
|
|
51
|
+
useInput((raw, key) => {
|
|
52
|
+
// With wheel reporting on, a scroll arrives as bytes like `[<65;43;30M` that Ink
|
|
53
|
+
// hands over as typed text, and the filter filled up with them. A chunk that was
|
|
54
|
+
// nothing but mouse reports is not a keystroke at all.
|
|
55
|
+
const input = stripMouse(raw);
|
|
56
|
+
if (input === "" && raw !== "")
|
|
57
|
+
return;
|
|
39
58
|
if (key.upArrow)
|
|
40
|
-
setSel((s) => (s - 1 +
|
|
59
|
+
setSel((s) => (count === 0 ? 0 : (s - 1 + count) % count));
|
|
41
60
|
else if (key.downArrow)
|
|
42
|
-
setSel((s) => (s + 1) %
|
|
43
|
-
else if (key.return)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
else if (key.escape || key.backspace || key.delete)
|
|
61
|
+
setSel((s) => (count === 0 ? 0 : (s + 1) % count));
|
|
62
|
+
else if (key.return) {
|
|
63
|
+
const picked = matching[sel];
|
|
64
|
+
if (picked !== undefined)
|
|
65
|
+
onSelect(picked);
|
|
66
|
+
}
|
|
67
|
+
else if (key.escape)
|
|
50
68
|
onCancel();
|
|
69
|
+
else if (key.backspace || key.delete) {
|
|
70
|
+
// Backspace edits the filter while there is one. With none, it closes: the input
|
|
71
|
+
// line above is empty, so a delete is the natural "take it back" — the same
|
|
72
|
+
// gesture that removes the `/` and closes the command menu.
|
|
73
|
+
if (filter) {
|
|
74
|
+
setFilter((f) => f.slice(0, -1));
|
|
75
|
+
setSel(0);
|
|
76
|
+
}
|
|
77
|
+
else
|
|
78
|
+
onCancel();
|
|
79
|
+
}
|
|
80
|
+
else if (input && !key.ctrl && !key.meta && !key.tab && !/[\u0000-\u001f]/.test(input)) {
|
|
81
|
+
setFilter((f) => f + input);
|
|
82
|
+
setSel(0);
|
|
83
|
+
}
|
|
51
84
|
}, { isActive: active && items.length > 0 });
|
|
85
|
+
const shownItems = matching.map((i) => items[i]);
|
|
52
86
|
// A scrolling window so a long list never blows past the visible rows.
|
|
53
|
-
const start = Math.min(Math.max(0, sel - (visible - 1)), Math.max(0,
|
|
54
|
-
const shown =
|
|
87
|
+
const start = Math.min(Math.max(0, sel - (visible - 1)), Math.max(0, count - visible));
|
|
88
|
+
const shown = shownItems.slice(start, start + visible);
|
|
89
|
+
// Measured over every item, not just the matches, so the columns hold still as you type.
|
|
55
90
|
const labelWidth = Math.min(40, Math.max(...items.map((i) => i.label.length), 1));
|
|
56
91
|
// Widths subtract the input box's chrome — border (2) + paddingX (2) = 4 — plus the
|
|
57
92
|
// 2-col prefix, so a truncated label/description ends INSIDE the border rather than
|
|
@@ -62,12 +97,16 @@ export function Picker({ title, items, onSelect, onCancel, width, active = true,
|
|
|
62
97
|
// no sign that there is more of it, and the rows that used to say so were removed for
|
|
63
98
|
// changing the box's height as you reached the ends. A counter on a row that already
|
|
64
99
|
// exists says the same thing and cannot resize anything.
|
|
65
|
-
const counter =
|
|
100
|
+
const counter = filter
|
|
101
|
+
? ` ${count === 0 ? 0 : sel + 1} of ${count}`
|
|
102
|
+
: items.length > visible
|
|
103
|
+
? ` ${sel + 1} of ${items.length}`
|
|
104
|
+
: "";
|
|
66
105
|
const titleRows = clipRows(title, Math.max(4, rowWidth - counter.length), maxTitleRows);
|
|
67
106
|
// The note is either the caller's own text, or — with describeSelection — the
|
|
68
107
|
// highlighted item's full description, wrapped. The two never combine: a picker that
|
|
69
108
|
// describes its selection has no separate note to show.
|
|
70
|
-
const selectionNote = describeSelection ?
|
|
109
|
+
const selectionNote = describeSelection ? shownItems[sel]?.description ?? "" : "";
|
|
71
110
|
const noteText = describeSelection ? selectionNote : note ?? "";
|
|
72
111
|
const noteRows = noteText ? clipRows(noteText, rowWidth, maxNoteRows) : [];
|
|
73
112
|
// Blank rows so title + list + note is a fixed count, matching the command menu's
|
|
@@ -96,6 +135,9 @@ export function Picker({ title, items, onSelect, onCancel, width, active = true,
|
|
|
96
135
|
return (_jsxs(Box, { width: rowWidth, flexShrink: 0, children: [_jsx(Box, { flexGrow: 1, flexShrink: 1, overflow: "hidden", children: _jsxs(Text, { color: activeRow ? "cyan" : undefined, bold: activeRow, wrap: "truncate-end", children: [activeRow ? "› " : " ", item.label] }) }), _jsx(Box, { flexShrink: 0, children: _jsx(Text, { dimColor: true, children: " " + item.description }) })] }, idx));
|
|
97
136
|
}
|
|
98
137
|
return (_jsxs(Box, { width: rowWidth, flexShrink: 0, children: [_jsxs(Text, { color: activeRow ? "cyan" : undefined, bold: activeRow, children: [activeRow ? "› " : " ", item.label.padEnd(labelWidth)] }), item.description && !describeSelection ? (_jsx(Box, { width: descWidth, children: _jsx(Text, { dimColor: true, wrap: "truncate-end", children: " " + item.description }) })) : null] }, idx));
|
|
99
|
-
}), noteGap ? (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) })) : null, noteRows.map((line, i) => (_jsx(Box, { width: rowWidth, flexShrink: 0, children: _jsx(Text, { dimColor: true, wrap: "truncate-end", children: line }) }, `n${i}`))), Array.from({ length: pad }).map((_, i) => (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) }, `pad${i}`))), _jsx(Box, { flexShrink: 0, children:
|
|
138
|
+
}), noteGap ? (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) })) : null, noteRows.map((line, i) => (_jsx(Box, { width: rowWidth, flexShrink: 0, children: _jsx(Text, { dimColor: true, wrap: "truncate-end", children: line }) }, `n${i}`))), Array.from({ length: pad }).map((_, i) => (_jsx(Box, { flexShrink: 0, children: _jsx(Text, { children: " " }) }, `pad${i}`))), _jsx(Box, { flexShrink: 0, children: filter ? (
|
|
139
|
+
// The filter lives on the hint row, which always exists, so typing never changes
|
|
140
|
+
// the box's height.
|
|
141
|
+
_jsx(Box, { width: rowWidth, children: _jsxs(Text, { wrap: "truncate-start", children: [_jsx(Text, { color: "cyan", children: filter }), _jsx(Text, { dimColor: true, children: count === 0 ? " · no matches · ⌫ edit · Esc back" : " · ↑/↓ move · Enter select · ⌫ edit · Esc back" })] }) })) : (_jsx(Text, { dimColor: true, children: items.length > visible ? "type to filter · ↑/↓ move · Enter select · Esc back" : "↑/↓ move · Enter select · Esc or ⌫ back" })) })] }));
|
|
100
142
|
}
|
|
101
143
|
//# sourceMappingURL=Picker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../src/cli/components/Picker.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../../src/cli/components/Picker.tsx"],"names":[],"mappings":"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"}
|
package/dist/cli/scrollPill.js
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* So a chip rides the last row of the viewport whenever the view is scrolled back. It
|
|
11
11
|
* says one of two things:
|
|
12
12
|
*
|
|
13
|
-
* - **
|
|
14
|
-
* - **N new
|
|
13
|
+
* - **Catch up** — you are reading history and nothing new has arrived.
|
|
14
|
+
* - **Catch up — N new** — the model has answered since you scrolled away.
|
|
15
15
|
*
|
|
16
16
|
* Both name the key, because a chip that reports a state without offering the way out
|
|
17
17
|
* of it is only half an answer.
|
|
@@ -36,8 +36,8 @@ export function scrollPill(input) {
|
|
|
36
36
|
if (input.scrolled <= 0 || input.overlayOpen)
|
|
37
37
|
return null;
|
|
38
38
|
const label = input.newReplies > 0
|
|
39
|
-
?
|
|
40
|
-
: "
|
|
39
|
+
? `Catch up — ${input.newReplies} new`
|
|
40
|
+
: "Catch up";
|
|
41
41
|
// The chord first, since it is the more useful half on a wide terminal.
|
|
42
42
|
const full = ` ${label} (ctrl+End) ↓ `;
|
|
43
43
|
if (full.length + 2 <= input.width)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollPill.js","sourceRoot":"","sources":["../../src/cli/scrollPill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA2BH;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,KAAK,GACT,KAAK,CAAC,UAAU,GAAG,CAAC;QAClB,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"scrollPill.js","sourceRoot":"","sources":["../../src/cli/scrollPill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AA2BH;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,KAAK,GACT,KAAK,CAAC,UAAU,GAAG,CAAC;QAClB,CAAC,CAAC,cAAc,KAAK,CAAC,UAAU,MAAM;QACtC,CAAC,CAAC,UAAU,CAAC;IAEjB,wEAAwE;IACxE,MAAM,IAAI,GAAG,IAAI,KAAK,gBAAgB,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAChD,kFAAkF;IAClF,4EAA4E;IAC5E,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC;IAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAChD,sFAAsF;IACtF,uEAAuE;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,MAA+C,EAAE,IAAmB;IAClG,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACzB,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI;YAAE,MAAM;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;YAAE,CAAC,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAkB,EAAE,CAAS,EAAE,CAAS;IAC/D,OAAO,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC;AACnE,CAAC"}
|
package/dist/drivers/clientId.js
CHANGED
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
* request.
|
|
4
4
|
*
|
|
5
5
|
* Every provider logs the `User-Agent` (or equivalent) header on inbound
|
|
6
|
-
* requests for its own analytics, rate-limit tiers, and abuse review
|
|
7
|
-
*
|
|
8
|
-
* themselves rather than looking like a bare SDK call. This is that string, sent
|
|
6
|
+
* requests for its own analytics, rate-limit tiers, and abuse review, so a client
|
|
7
|
+
* that names itself reads as an application rather than a bare SDK call. This is that string, sent
|
|
9
8
|
* consistently from every driver so Mindweave's traffic reads as Mindweave's
|
|
10
9
|
* traffic wherever a provider looks.
|
|
11
10
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientId.js","sourceRoot":"","sources":["../../src/drivers/clientId.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"clientId.js","sourceRoot":"","sources":["../../src/drivers/clientId.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC;6EAC6E;AAC7E,MAAM,UAAU,QAAQ;IACtB,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAA0B,CAAC;QAClG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,+BAA+B;IACjC,CAAC;IACD,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAC1E,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -165,7 +165,7 @@ export function buildBody(provider, req, maxTokens) {
|
|
|
165
165
|
body.tools = tools;
|
|
166
166
|
body.tool_choice = "auto";
|
|
167
167
|
}
|
|
168
|
-
return body;
|
|
168
|
+
return provider.finishBody ? provider.finishBody(body, req) : body;
|
|
169
169
|
}
|
|
170
170
|
/**
|
|
171
171
|
* Map an OpenAI-shaped `finish_reason` onto the shared stop reason.
|
|
@@ -191,6 +191,38 @@ export function toStop(provider, reason) {
|
|
|
191
191
|
return "end";
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* A failure reported INSIDE a successful response.
|
|
196
|
+
*
|
|
197
|
+
* Once a stream has started the HTTP status is already 200 and cannot change, so a
|
|
198
|
+
* router whose upstream dies mid-reply says so in the body: a top-level `error`
|
|
199
|
+
* object, and often `finish_reason: "error"` on the last choice. A buffered response
|
|
200
|
+
* can carry the same object with a 200. Read naively, both look like a model that
|
|
201
|
+
* finished normally, possibly having said nothing.
|
|
202
|
+
*
|
|
203
|
+
* Returned as a ProviderHttpError when the body names a numeric code, so an account
|
|
204
|
+
* refusal (402 out of credits, 429 rate limited) is classified the same whether it
|
|
205
|
+
* arrived as a status line or inside the body.
|
|
206
|
+
*/
|
|
207
|
+
export function bodyError(provider, raw) {
|
|
208
|
+
const error = raw?.error;
|
|
209
|
+
if (!error || typeof error !== "object")
|
|
210
|
+
return undefined;
|
|
211
|
+
const { code, message } = error;
|
|
212
|
+
const text = typeof message === "string" && message ? message : "the provider reported an error";
|
|
213
|
+
const status = typeof code === "number" ? code : Number(code);
|
|
214
|
+
if (Number.isInteger(status) && status >= 400 && status < 600) {
|
|
215
|
+
return new ProviderHttpError(status, text, provider.label, "");
|
|
216
|
+
}
|
|
217
|
+
return upstreamError(`${provider.label} API error: ${text}`);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* An error the PROVIDER reported with no status to classify it by, marked so the
|
|
221
|
+
* screen can say "the provider failed" rather than show a bare red error.
|
|
222
|
+
*/
|
|
223
|
+
export function upstreamError(message) {
|
|
224
|
+
return Object.assign(new Error(message), { upstream: true });
|
|
225
|
+
}
|
|
194
226
|
/**
|
|
195
227
|
* Read an SSE response into a finished turn, emitting each delta along the way.
|
|
196
228
|
*
|
|
@@ -220,6 +252,14 @@ export async function consumeStream(provider, response, onEvent) {
|
|
|
220
252
|
if (chunk.usage)
|
|
221
253
|
usage = toUsage(provider, chunk.usage);
|
|
222
254
|
finishReason = chunk.choices?.[0]?.finish_reason ?? finishReason;
|
|
255
|
+
// A failure after the stream began. Thrown into the salvage path below, so text
|
|
256
|
+
// already shown is kept as an incomplete reply and a stream with nothing in it
|
|
257
|
+
// surfaces the provider's own sentence instead of an empty "finished" turn.
|
|
258
|
+
const failed = bodyError(provider, chunk);
|
|
259
|
+
if (failed)
|
|
260
|
+
throw failed;
|
|
261
|
+
if (finishReason === "error")
|
|
262
|
+
throw upstreamError(`${provider.label} API error: the reply ended with an error`);
|
|
223
263
|
const delta = chunk.choices?.[0]?.delta;
|
|
224
264
|
if (!delta)
|
|
225
265
|
continue;
|
|
@@ -295,11 +335,18 @@ export function toUsage(provider, raw) {
|
|
|
295
335
|
totalTokens: num("total_tokens") || promptTokens + completionTokens,
|
|
296
336
|
cacheHitTokens: split?.hit ?? 0,
|
|
297
337
|
cacheMissTokens: split?.miss ?? promptTokens,
|
|
338
|
+
...(split?.write !== undefined ? { cacheWriteTokens: split.write } : {}),
|
|
298
339
|
};
|
|
299
340
|
}
|
|
300
341
|
/** Pull a finished (non-streamed) response into a turn. */
|
|
301
342
|
export function toTurn(provider, data) {
|
|
302
343
|
const parsed = data;
|
|
344
|
+
const failed = bodyError(provider, data);
|
|
345
|
+
if (failed)
|
|
346
|
+
throw failed;
|
|
347
|
+
if (parsed.choices?.[0]?.finish_reason === "error") {
|
|
348
|
+
throw upstreamError(`${provider.label} API error: the reply ended with an error`);
|
|
349
|
+
}
|
|
303
350
|
const message = parsed.choices?.[0]?.message;
|
|
304
351
|
const content = typeof message?.content === "string" ? message.content : "";
|
|
305
352
|
const toolCalls = (message?.tool_calls ?? []).map((tc) => ({
|
|
@@ -409,7 +456,12 @@ async function send(provider, body, signal) {
|
|
|
409
456
|
try {
|
|
410
457
|
response = await fetch(`${provider.baseUrl}/chat/completions`, {
|
|
411
458
|
method: "POST",
|
|
412
|
-
headers: {
|
|
459
|
+
headers: {
|
|
460
|
+
"Content-Type": "application/json",
|
|
461
|
+
Authorization: `Bearer ${requireApiKey(provider)}`,
|
|
462
|
+
"User-Agent": clientId(),
|
|
463
|
+
...provider.headers,
|
|
464
|
+
},
|
|
413
465
|
body: JSON.stringify(body),
|
|
414
466
|
signal,
|
|
415
467
|
});
|
|
@@ -461,7 +513,7 @@ async function postStream(provider, body, signal) {
|
|
|
461
513
|
*/
|
|
462
514
|
export async function listModels(provider) {
|
|
463
515
|
const response = await fetch(`${provider.baseUrl}/models`, {
|
|
464
|
-
headers: { Authorization: `Bearer ${requireApiKey(provider)}`, "User-Agent": clientId() },
|
|
516
|
+
headers: { Authorization: `Bearer ${requireApiKey(provider)}`, "User-Agent": clientId(), ...provider.headers },
|
|
465
517
|
});
|
|
466
518
|
if (!response.ok) {
|
|
467
519
|
const detail = await response.text().catch(() => "");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/drivers/openaiCompat/wire.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA4FvD;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAE/B;IACA;IAFX,YACW,MAAc,EACd,MAAc,EACvB,KAAa,EACb,UAAkB;QAElB,KAAK,CAAC,GAAG,KAAK,cAAc,MAAM,KAAK,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QALtD,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QAKvB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,qBAA+D,CAAC;IACtF,MAAM,GAAG,GAAG,OAAO,OAAO,EAAE,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;AAClD,CAAC;AAED,6EAA6E;AAC7E,SAAS,MAAM,CACb,QAAwB,EACxB,OAAe,EACf,SAAqB;IAErB,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACtG,CAAC;AAED;;;;;;;;GAQG;AACH;;;;;;;;;GASG;AACH,SAAS,YAAY,CACnB,CAAiD,EACjD,QAAgB;IAEhB,8CAA8C;IAC9C,EAAE;IACF,iFAAiF;IACjF,gFAAgF;IAChF,oFAAoF;IACpF,4DAA4D;IAC5D,EAAE;IACF,sFAAsF;IACtF,uFAAuF;IACvF,kFAAkF;IAClF,yCAAyC;IACzC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,CAAc;IACnC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACzD,OAAO;QACL,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;QACjC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,EAAE,GAAG,EAAE,QAAQ,GAAG,CAAC,SAAS,WAAW,GAAG,CAAC,IAAI,EAAE,EAAE;SAC/D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAuB,EAAE,QAAQ,GAAG,EAAE;IACnE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,6EAA6E;QAC7E,6EAA6E;QAC7E,kEAAkE;QAClE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAiB;IAC9C,MAAM,QAAQ,GAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3F,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,yEAAyE;QACzE,4EAA4E;QAC5E,8DAA8D;QAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,CAAC,OAAO,sBAAsB,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,QAAwB,EACxB,GAAiB,EACjB,SAAkB;IAElB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,MAAM,IAAI,GAA4B;QACpC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,QAAQ,CAAC,YAAY;QAChD,QAAQ,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;QAC7D,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QACtC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KAC1C,CAAC;IACF,IAAI,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACzD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAC,QAAwB,EAAE,MAAiC;IAChF,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC;QACrB,KAAK,gBAAgB;YACnB,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAwBD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAwB,EACxB,QAAgC,EAChC,OAAsC;IAEtC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,gFAAgF;IAChF,+DAA+D;IAC/D,MAAM,KAAK,GAAG,IAAI,GAAG,EAGlB,CAAC;IACJ,IAAI,KAAwB,CAAC;IAC7B,IAAI,YAAuC,CAAC;IAE5C,IAAI,CAAC;QACL,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM;YAC7B,IAAI,KAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,CAAC,+CAA+C;YAC3D,CAAC;YAED,IAAI,KAAK,CAAC,KAAK;gBAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACxD,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,YAAY,CAAC;YAEjE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;YACxC,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,SAAS,CAAC;YAC7D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC/C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACvD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;gBACzB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC5B,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;oBACvE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,EAAE,CAAC,EAAE;oBAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAC1B,4EAA4E;gBAC5E,iEAAiE;gBACjE,IAAI,EAAE,CAAC,aAAa;oBAAE,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,aAAa,CAAC;gBACnD,mEAAmE;gBACnE,4CAA4C;gBAC5C,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI;oBAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC7B,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;oBACnB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;gBAC3C,IAAI,WAAW,EAAE,CAAC;oBAChB,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;oBACxB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC;IACD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,WAAW,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QACpC,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAe,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;SAC/C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACf,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;QACzB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnF,CAAC,CAAC,CAAC;IAEN,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;AACtE,CAAC;AAGD;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,QAAwB,EAAE,GAA4B;IAC5E,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO;QACL,YAAY;QACZ,gBAAgB;QAChB,WAAW,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,YAAY,GAAG,gBAAgB;QACnE,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC/B,eAAe,EAAE,KAAK,EAAE,IAAI,IAAI,YAAY;KAC7C,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,MAAM,CAAC,QAAwB,EAAE,IAAa;IAC5D,MAAM,MAAM,GAAG,IAad,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IAC7C,MAAM,OAAO,GAAG,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACzD,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;QACtB,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI;QACxC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrG,CAAC,CAAC,CAAC;IACJ,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC;QAC1D,8EAA8E;QAC9E,6EAA6E;QAC7E,iCAAiC;QACjC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KAClE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAgC;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,8EAA8E;IAC9E,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAA4C,EAAE,CAAC;QACvE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,GAAW,CAAC;QAChB,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,OAAO,KAAK,IAAI;gBAAE,MAAM,OAAO,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,iFAAiF;AACjF,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,QAAwB;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,MAAM,QAAQ,CAAC,SAAS,+DAA+D;YACrF,qBAAqB;YACrB,2BAA2B,QAAQ,CAAC,SAAS,kBAAkB;YAC/D,gEAAgE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;4DAC4D;AAC5D,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC;QACF,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO,OAAO,EAAE,CAAC;QACtC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,IAAI,CAAC,QAAwB,EAAE,IAA6B,EAAE,MAAoB;IAC/F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,kBAAkB,EAAE,OAAO,EAAE,EAAE,CAAC;QAC/D,IAAI,QAA8B,CAAC;QACnC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,OAAO,mBAAmB,EAAE;gBAC7D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;gBAC7H,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM;aACP,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,EAAE;gBAAE,OAAO,QAAQ,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACrD,SAAS,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,IAAI,WAAW,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACpC,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC;YAAE,MAAM,SAAS,CAAC;QACrD,IAAI,OAAO,KAAK,kBAAkB;YAAE,MAAM;QAE1C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7G,6EAA6E;QAC7E,kFAAkF;QAClF,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM;QAC1B,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,SAAS,CAAC;AAClB,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,IAAI,CAAC,QAAwB,EAAE,IAA6B,EAAE,MAAoB;IAC/F,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACrD,CAAC;AAED,4EAA4E;AAC5E,KAAK,UAAU,UAAU,CACvB,QAAwB,EACxB,IAA6B,EAC7B,MAAoB;IAEpB,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAUD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAwB;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,OAAO,SAAS,EAAE;QACzD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE;KAC1F,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAwB,EACxB,GAAiB,EACjB,MAAoB;IAEpB,MAAM,IAAI,GAAG,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACxF,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAwB,EACxB,GAAiB,EACjB,OAAsC,EACtC,MAAoB;IAEpB,MAAM,IAAI,GAAG;QACX,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,eAAe,CAAC;QACrD,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;KACxC,CAAC;IACF,OAAO,aAAa,CAAC,QAAQ,EAAE,MAAM,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/drivers/openaiCompat/wire.ts"],"names":[],"mappings":"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"}
|