@quatcode/agent 0.1.2 → 0.2.1

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 (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -0
  3. package/dist/args.d.ts +13 -1
  4. package/dist/args.d.ts.map +1 -1
  5. package/dist/args.js +25 -5
  6. package/dist/args.js.map +1 -1
  7. package/dist/cli.js +161 -98
  8. package/dist/cli.js.map +1 -1
  9. package/dist/clipboard.d.ts +5 -0
  10. package/dist/clipboard.d.ts.map +1 -0
  11. package/dist/clipboard.js +82 -0
  12. package/dist/clipboard.js.map +1 -0
  13. package/dist/gate.d.ts.map +1 -1
  14. package/dist/gate.js +1 -7
  15. package/dist/gate.js.map +1 -1
  16. package/dist/input.d.ts +61 -0
  17. package/dist/input.d.ts.map +1 -0
  18. package/dist/input.js +304 -0
  19. package/dist/input.js.map +1 -0
  20. package/dist/keyboard.d.ts +68 -0
  21. package/dist/keyboard.d.ts.map +1 -0
  22. package/dist/keyboard.js +390 -0
  23. package/dist/keyboard.js.map +1 -0
  24. package/dist/logo.d.ts +16 -0
  25. package/dist/logo.d.ts.map +1 -0
  26. package/dist/logo.js +131 -0
  27. package/dist/logo.js.map +1 -0
  28. package/dist/markdown.d.ts +14 -0
  29. package/dist/markdown.d.ts.map +1 -0
  30. package/dist/markdown.js +244 -0
  31. package/dist/markdown.js.map +1 -0
  32. package/dist/mcp.d.ts +19 -0
  33. package/dist/mcp.d.ts.map +1 -0
  34. package/dist/mcp.js +206 -0
  35. package/dist/mcp.js.map +1 -0
  36. package/dist/models.d.ts +44 -0
  37. package/dist/models.d.ts.map +1 -0
  38. package/dist/models.js +310 -0
  39. package/dist/models.js.map +1 -0
  40. package/dist/picker.d.ts +40 -0
  41. package/dist/picker.d.ts.map +1 -0
  42. package/dist/picker.js +171 -0
  43. package/dist/picker.js.map +1 -0
  44. package/dist/render.d.ts.map +1 -1
  45. package/dist/render.js +3 -1
  46. package/dist/render.js.map +1 -1
  47. package/dist/screen.d.ts +30 -0
  48. package/dist/screen.d.ts.map +1 -0
  49. package/dist/screen.js +123 -0
  50. package/dist/screen.js.map +1 -0
  51. package/dist/skills.d.ts +21 -0
  52. package/dist/skills.d.ts.map +1 -0
  53. package/dist/skills.js +173 -0
  54. package/dist/skills.js.map +1 -0
  55. package/dist/store.d.ts +41 -1
  56. package/dist/store.d.ts.map +1 -1
  57. package/dist/store.js +192 -1
  58. package/dist/store.js.map +1 -1
  59. package/dist/theme.d.ts +86 -0
  60. package/dist/theme.d.ts.map +1 -0
  61. package/dist/theme.js +315 -0
  62. package/dist/theme.js.map +1 -0
  63. package/dist/tui.d.ts +22 -0
  64. package/dist/tui.d.ts.map +1 -0
  65. package/dist/tui.js +2709 -0
  66. package/dist/tui.js.map +1 -0
  67. package/dist/turn.d.ts +45 -0
  68. package/dist/turn.d.ts.map +1 -0
  69. package/dist/turn.js +198 -0
  70. package/dist/turn.js.map +1 -0
  71. package/dist/version.d.ts +2 -0
  72. package/dist/version.d.ts.map +1 -0
  73. package/dist/version.js +13 -0
  74. package/dist/version.js.map +1 -0
  75. package/package.json +22 -6
@@ -0,0 +1,86 @@
1
+ export type Palette = {
2
+ void: string;
3
+ ink: string;
4
+ panel: string;
5
+ graphite: string;
6
+ steel: string;
7
+ mist: string;
8
+ silver: string;
9
+ bone: string;
10
+ red: string;
11
+ amber: string;
12
+ accent: string;
13
+ };
14
+ export declare const palette: Palette;
15
+ export type ThemeDefinition = {
16
+ id: string;
17
+ label: string;
18
+ bg: string;
19
+ fg: string;
20
+ accent: string;
21
+ border?: string;
22
+ selection?: string;
23
+ secondary?: string;
24
+ silver?: string;
25
+ mist?: string;
26
+ steel?: string;
27
+ graphite?: string;
28
+ };
29
+ export declare const THEMES: ThemeDefinition[];
30
+ export declare function getThemes(): ThemeDefinition[];
31
+ export declare function activeThemeId(): string;
32
+ export declare function setTheme(id: string): ThemeDefinition;
33
+ export declare function buildColorRemap(before: Palette, after: Palette): Array<[string, string]>;
34
+ export declare function remapColors(text: string, pairs: Array<[string, string]>): string;
35
+ export declare function setColor(enabled: boolean): void;
36
+ export declare function colorOn(): boolean;
37
+ export declare function hexToRgb(hex: string): [number, number, number];
38
+ export declare function fg(hex: string, text: string): string;
39
+ export declare function bg(hex: string, text: string): string;
40
+ export declare function bold(text: string): string;
41
+ export declare function dim(text: string): string;
42
+ export declare function italic(text: string): string;
43
+ export declare function underline(text: string): string;
44
+ export declare const tone: {
45
+ bone: (t: string) => string;
46
+ silver: (t: string) => string;
47
+ mist: (t: string) => string;
48
+ steel: (t: string) => string;
49
+ red: (t: string) => string;
50
+ amber: (t: string) => string;
51
+ accent: (t: string) => string;
52
+ onBone: (t: string) => string;
53
+ onGraphite: (t: string) => string;
54
+ code: (t: string) => string;
55
+ };
56
+ export declare function stripAnsi(text: string): string;
57
+ export declare function stringWidth(text: string): number;
58
+ export declare function padEndTo(text: string, width: number): string;
59
+ export declare function padStartTo(text: string, width: number): string;
60
+ export declare function clipAnsi(text: string, max: number): string;
61
+ export declare function truncate(text: string, max: number): string;
62
+ export declare function divider(width: number): string;
63
+ export declare function usableWidth(out: NodeJS.WriteStream): number;
64
+ export declare const glyphs: {
65
+ prompt: string;
66
+ diamond: string;
67
+ diamondOpen: string;
68
+ check: string;
69
+ cross: string;
70
+ bullet: string;
71
+ pin: string;
72
+ arrow: string;
73
+ ellipsis: string;
74
+ spinner: string[];
75
+ box: {
76
+ tl: string;
77
+ tr: string;
78
+ bl: string;
79
+ br: string;
80
+ h: string;
81
+ v: string;
82
+ };
83
+ };
84
+ export declare const toolGlyphs: Record<string, string>;
85
+ export declare function toolGlyph(tool: string): string;
86
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
package/dist/theme.js ADDED
@@ -0,0 +1,315 @@
1
+ export const palette = {
2
+ void: "#030304",
3
+ ink: "#08090b",
4
+ panel: "#0c0d10",
5
+ graphite: "#16181d",
6
+ steel: "#26292f",
7
+ mist: "#686d76",
8
+ silver: "#9ba1ab",
9
+ bone: "#f4f5f6",
10
+ red: "#e5484d",
11
+ amber: "#d4a72c",
12
+ accent: "#f4f5f6",
13
+ };
14
+ export const THEMES = [
15
+ {
16
+ id: "quatcode",
17
+ label: "quatcode",
18
+ bg: "#030304",
19
+ fg: "#f4f5f6",
20
+ accent: "#f4f5f6",
21
+ border: "#26292f",
22
+ selection: "#16181d",
23
+ silver: "#9ba1ab",
24
+ mist: "#686d76",
25
+ steel: "#26292f",
26
+ graphite: "#16181d",
27
+ },
28
+ { id: "forest", label: "Forest", bg: "#1A1E12", fg: "#bbbbbb", accent: "#388E3C", border: "#202416", selection: "#1a1e12", secondary: "#647863" },
29
+ { id: "abyss", label: "Abyss", bg: "#0E1D31", fg: "#bbbbbb", accent: "#00BCD4", border: "#1a1c2d", selection: "#131d2d" },
30
+ { id: "amethyst", label: "Amethyst", bg: "#493162", fg: "#DADADA", accent: "#AB47BC", border: "#4d3a63", selection: "#412D62", secondary: "#8B79B4" },
31
+ { id: "orchid", label: "Orchid", bg: "#310a29", fg: "#bbbbbb", accent: "#E94686", border: "#381927", selection: "#330A2B", secondary: "#A179A7" },
32
+ { id: "blush", label: "Blush", bg: "#171816", fg: "#bbbbbb", accent: "#d58d9c", border: "#212220", selection: "#141513" },
33
+ { id: "carmine", label: "Carmine", bg: "#150b24", fg: "#b8b8b8", accent: "#c93939", border: "#362f3e", selection: "#0d041c", secondary: "#71688D" },
34
+ { id: "ruby", label: "Ruby", bg: "#401112", fg: "#fafafa", accent: "#e03943", border: "#551818", selection: "#401010", secondary: "#a47272" },
35
+ { id: "ember", label: "Ember", bg: "#080703", fg: "#c3c3c3", accent: "#e99745", border: "#1c1500", selection: "#100d03" },
36
+ { id: "cobalt", label: "Cobalt", bg: "#282b42", fg: "#bbbbbb", accent: "#578CDA", border: "#2a334b", selection: "#242942" },
37
+ { id: "tide", label: "Tide", bg: "#0b443e", fg: "#f3edff", accent: "#5eabb8", border: "#0d514a", selection: "#08332e", secondary: "#507F78" },
38
+ { id: "aurora", label: "Aurora", bg: "#393784", fg: "#f3edff", accent: "#54e255", border: "#413e96", selection: "#333184", secondary: "#7384d4" },
39
+ { id: "dusk", label: "Dusk", bg: "#25254B", fg: "#bbbbbb", accent: "#fee3cf", border: "#2b2c57", selection: "#272750", secondary: "#6C7EA5" },
40
+ { id: "scarlet", label: "Scarlet", bg: "#272b2d", fg: "#d3d3d3", accent: "#f03022", border: "#32373a", selection: "#1d2123", secondary: "#596570" },
41
+ { id: "ivory", label: "Ivory", bg: "#141216", fg: "#a8a8a8", accent: "#ECECEC", border: "#1e2021", selection: "#110f13", secondary: "#505A6D" },
42
+ { id: "umber", label: "Umber", bg: "#231a13", fg: "#cccccc", accent: "#8a3c3d", border: "#30231a", selection: "#1e160f", secondary: "#807571" },
43
+ { id: "bordeaux", label: "Bordeaux", bg: "#36101c", fg: "#efefef", accent: "#d6a53e", border: "#411221", selection: "#330e1b", secondary: "#a47272" },
44
+ ];
45
+ let activeId = "quatcode";
46
+ function mix(base, toward, t) {
47
+ const [br, bgc, bb] = hexToRgb(base);
48
+ const [tr, tg, tb] = hexToRgb(toward);
49
+ const channel = (a, b) => Math.round(a + (b - a) * t)
50
+ .toString(16)
51
+ .padStart(2, "0");
52
+ return `#${channel(br, tr)}${channel(bgc, tg)}${channel(bb, tb)}`;
53
+ }
54
+ export function getThemes() {
55
+ return THEMES;
56
+ }
57
+ export function activeThemeId() {
58
+ return activeId;
59
+ }
60
+ export function setTheme(id) {
61
+ const theme = THEMES.find((entry) => entry.id === id) ?? THEMES[0];
62
+ palette.void = theme.bg;
63
+ palette.ink = mix(theme.bg, theme.fg, 0.03);
64
+ palette.panel = mix(theme.bg, theme.fg, 0.05);
65
+ palette.graphite = theme.graphite ?? mix(theme.selection ?? theme.bg, theme.fg, 0.1);
66
+ palette.steel = theme.steel ?? theme.border ?? mix(theme.bg, theme.fg, 0.14);
67
+ palette.silver = theme.silver ?? theme.secondary ?? mix(theme.bg, theme.fg, 0.63);
68
+ palette.mist = theme.mist ?? mix(theme.bg, theme.fg, 0.42);
69
+ palette.bone = theme.fg;
70
+ palette.red = "#e5484d";
71
+ palette.amber = "#d4a72c";
72
+ palette.accent = theme.accent;
73
+ activeId = theme.id;
74
+ return theme;
75
+ }
76
+ function ansiCodes(hex) {
77
+ const [r, g, b] = hexToRgb(hex);
78
+ return { fg: `38;2;${r};${g};${b}`, bg: `48;2;${r};${g};${b}` };
79
+ }
80
+ export function buildColorRemap(before, after) {
81
+ const pairs = [];
82
+ for (const key of Object.keys(before)) {
83
+ const from = ansiCodes(before[key]);
84
+ const to = ansiCodes(after[key]);
85
+ if (from.fg !== to.fg)
86
+ pairs.push([from.fg, to.fg]);
87
+ if (from.bg !== to.bg)
88
+ pairs.push([from.bg, to.bg]);
89
+ }
90
+ return pairs;
91
+ }
92
+ export function remapColors(text, pairs) {
93
+ let out = text;
94
+ for (const [from, to] of pairs) {
95
+ if (out.includes(from))
96
+ out = out.split(from).join(to);
97
+ }
98
+ return out;
99
+ }
100
+ function detectColor() {
101
+ const force = process.env.FORCE_COLOR;
102
+ if (force !== undefined && force !== "" && force !== "0" && force !== "false")
103
+ return true;
104
+ if (force === "0" || force === "false")
105
+ return false;
106
+ if (process.env.NO_COLOR !== undefined)
107
+ return false;
108
+ if (process.env.TERM === "dumb")
109
+ return false;
110
+ return Boolean(process.stdout.isTTY);
111
+ }
112
+ let colorEnabled = detectColor();
113
+ export function setColor(enabled) {
114
+ colorEnabled = enabled;
115
+ }
116
+ export function colorOn() {
117
+ return colorEnabled;
118
+ }
119
+ export function hexToRgb(hex) {
120
+ const clean = hex.replace("#", "");
121
+ return [
122
+ Number.parseInt(clean.slice(0, 2), 16),
123
+ Number.parseInt(clean.slice(2, 4), 16),
124
+ Number.parseInt(clean.slice(4, 6), 16),
125
+ ];
126
+ }
127
+ export function fg(hex, text) {
128
+ if (!colorEnabled)
129
+ return text;
130
+ const [r, g, b] = hexToRgb(hex);
131
+ return `\u001b[38;2;${r};${g};${b}m${text}\u001b[39m`;
132
+ }
133
+ export function bg(hex, text) {
134
+ if (!colorEnabled)
135
+ return text;
136
+ const [r, g, b] = hexToRgb(hex);
137
+ return `\u001b[48;2;${r};${g};${b}m${text}\u001b[49m`;
138
+ }
139
+ export function bold(text) {
140
+ if (!colorEnabled)
141
+ return text;
142
+ return `\u001b[1m${text}\u001b[22m`;
143
+ }
144
+ export function dim(text) {
145
+ if (!colorEnabled)
146
+ return text;
147
+ return `\u001b[2m${text}\u001b[22m`;
148
+ }
149
+ export function italic(text) {
150
+ if (!colorEnabled)
151
+ return text;
152
+ return `\u001b[3m${text}\u001b[23m`;
153
+ }
154
+ export function underline(text) {
155
+ if (!colorEnabled)
156
+ return text;
157
+ return `\u001b[4m${text}\u001b[24m`;
158
+ }
159
+ export const tone = {
160
+ bone: (t) => fg(palette.bone, t),
161
+ silver: (t) => fg(palette.silver, t),
162
+ mist: (t) => fg(palette.mist, t),
163
+ steel: (t) => fg(palette.steel, t),
164
+ red: (t) => fg(palette.red, t),
165
+ amber: (t) => fg(palette.amber, t),
166
+ accent: (t) => fg(palette.accent, t),
167
+ onBone: (t) => fg(palette.void, bg(palette.bone, t)),
168
+ onGraphite: (t) => fg(palette.bone, bg(palette.graphite, t)),
169
+ code: (t) => fg(palette.bone, bg(palette.graphite, t)),
170
+ };
171
+ const ANSI_RE = /\u001b\[[0-9;?]*[A-Za-z]/g;
172
+ export function stripAnsi(text) {
173
+ return text.replace(ANSI_RE, "");
174
+ }
175
+ const ASCII_MODE = process.env.QUATCODE_ASCII === "1";
176
+ function isWide(cp) {
177
+ return ((cp >= 0x1100 && cp <= 0x115f) ||
178
+ (cp >= 0x2e80 && cp <= 0xa4cf) ||
179
+ (cp >= 0xac00 && cp <= 0xd7a3) ||
180
+ (cp >= 0xf900 && cp <= 0xfaff) ||
181
+ (cp >= 0xfe30 && cp <= 0xfe4f) ||
182
+ (cp >= 0xff00 && cp <= 0xff60) ||
183
+ (cp >= 0xffe0 && cp <= 0xffe6) ||
184
+ (cp >= 0x1f300 && cp <= 0x1faff) ||
185
+ (cp >= 0x20000 && cp <= 0x3fffd));
186
+ }
187
+ function isCombining(cp) {
188
+ return ((cp >= 0x0300 && cp <= 0x036f) ||
189
+ (cp >= 0x1ab0 && cp <= 0x1aff) ||
190
+ (cp >= 0x1dc0 && cp <= 0x1dff) ||
191
+ (cp >= 0x20d0 && cp <= 0x20ff) ||
192
+ (cp >= 0xfe20 && cp <= 0xfe2f));
193
+ }
194
+ export function stringWidth(text) {
195
+ let width = 0;
196
+ for (const ch of stripAnsi(text)) {
197
+ const cp = ch.codePointAt(0) ?? 0;
198
+ if (isCombining(cp) || cp === 0x200d || cp === 0xfe0f)
199
+ continue;
200
+ width += isWide(cp) ? 2 : 1;
201
+ }
202
+ return width;
203
+ }
204
+ export function padEndTo(text, width) {
205
+ const diff = width - stringWidth(text);
206
+ return diff > 0 ? text + " ".repeat(diff) : text;
207
+ }
208
+ export function padStartTo(text, width) {
209
+ const diff = width - stringWidth(text);
210
+ return diff > 0 ? " ".repeat(diff) + text : text;
211
+ }
212
+ export function clipAnsi(text, max) {
213
+ if (max <= 0)
214
+ return "";
215
+ if (stringWidth(text) <= max)
216
+ return text;
217
+ let width = 0;
218
+ let out = "";
219
+ let i = 0;
220
+ while (i < text.length && width < max - 1) {
221
+ const esc = text.startsWith("\u001b[", i);
222
+ if (esc) {
223
+ const end = text.indexOf("m", i);
224
+ if (end === -1)
225
+ break;
226
+ out += text.slice(i, end + 1);
227
+ i = end + 1;
228
+ continue;
229
+ }
230
+ const cp = text.codePointAt(i) ?? 0;
231
+ const ch = String.fromCodePoint(cp);
232
+ const w = isWide(cp) ? 2 : isCombining(cp) ? 0 : 1;
233
+ if (width + w > max - 1)
234
+ break;
235
+ out += ch;
236
+ width += w;
237
+ i += ch.length;
238
+ }
239
+ return `${out}${colorEnabled ? "\u001b[0m" : ""}…`;
240
+ }
241
+ export function truncate(text, max) {
242
+ if (max <= 1)
243
+ return text.length > 0 ? "…" : "";
244
+ if (stringWidth(text) <= max)
245
+ return text;
246
+ return clipAnsi(text, max);
247
+ }
248
+ export function divider(width) {
249
+ return tone.steel("─".repeat(Math.max(0, width)));
250
+ }
251
+ export function usableWidth(out) {
252
+ return Math.max(20, (out.columns ?? 80) - 1);
253
+ }
254
+ export const glyphs = ASCII_MODE
255
+ ? {
256
+ prompt: ">",
257
+ diamond: "*",
258
+ diamondOpen: "o",
259
+ check: "v",
260
+ cross: "x",
261
+ bullet: "*",
262
+ pin: "*",
263
+ arrow: "->",
264
+ ellipsis: "...",
265
+ spinner: ["{*}", "{+}", "{ }", "{+}"],
266
+ box: {
267
+ tl: "+",
268
+ tr: "+",
269
+ bl: "+",
270
+ br: "+",
271
+ h: "-",
272
+ v: "|",
273
+ },
274
+ }
275
+ : {
276
+ prompt: "›",
277
+ diamond: "◆",
278
+ diamondOpen: "◇",
279
+ check: "✓",
280
+ cross: "✕",
281
+ bullet: "•",
282
+ pin: "★",
283
+ arrow: "→",
284
+ ellipsis: "…",
285
+ spinner: ["{◆}", "{◈}", "{◇}", "{◈}"],
286
+ box: {
287
+ tl: "┌",
288
+ tr: "┐",
289
+ bl: "└",
290
+ br: "┘",
291
+ h: "─",
292
+ v: "│",
293
+ },
294
+ };
295
+ export const toolGlyphs = {
296
+ read_file: ASCII_MODE ? "r" : "▤",
297
+ write_file: ASCII_MODE ? "w" : "✎",
298
+ edit_file: ASCII_MODE ? "e" : "±",
299
+ list_dir: ASCII_MODE ? "l" : "▦",
300
+ search: ASCII_MODE ? "s" : "⌕",
301
+ run_command: ASCII_MODE ? "$" : "❯",
302
+ git: ASCII_MODE ? "g" : "◈",
303
+ inspect_project: ASCII_MODE ? "i" : "⊞",
304
+ screenshot: ASCII_MODE ? "p" : "▣",
305
+ start_server: ASCII_MODE ? ">" : "▶",
306
+ stop_server: ASCII_MODE ? "x" : "■",
307
+ };
308
+ export function toolGlyph(tool) {
309
+ for (const [key, glyph] of Object.entries(toolGlyphs)) {
310
+ if (tool === key || tool.startsWith(key))
311
+ return glyph;
312
+ }
313
+ return glyphs.diamondOpen;
314
+ }
315
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;CAClB,CAAC;AAiBF,MAAM,CAAC,MAAM,MAAM,GAAsB;IACvC;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,SAAS;KACpB;IACD,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACjJ,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACzH,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACrJ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACjJ,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACzH,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACnJ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IAC7I,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACzH,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IAC3H,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IAC7I,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACjJ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IAC7I,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IACnJ,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IAC/I,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;IAC/I,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;CACtJ,CAAC;AAEF,IAAI,QAAQ,GAAG,UAAU,CAAC;AAE1B,SAAS,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,CAAS;IAClD,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAC/C,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACxB,QAAQ,CAAC,EAAE,CAAC;SACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtB,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,IAAK,MAAM,CAAC,CAAC,CAAqB,CAAC;IACxF,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;IACxB,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9C,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACrF,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7E,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAClF,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;IACxB,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC;IACxB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC9B,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,KAAc;IAC7D,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAyB,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAA8B;IACtE,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC3F,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;AAEjC,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,YAAY,GAAG,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnC,OAAO;QACL,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,GAAW,EAAE,IAAY;IAC1C,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,GAAW,EAAE,IAAY;IAC1C,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,YAAY,IAAI,YAAY,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY;IAC9B,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,YAAY,IAAI,YAAY,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,YAAY,IAAI,YAAY,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,YAAY,IAAI,YAAY,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,UAAU,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpE,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;CAC/D,CAAC;AAEF,MAAM,OAAO,GAAG,2BAA2B,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,GAAG,CAAC;AAEtD,SAAS,MAAM,CAAC,EAAU;IACxB,OAAO,CACL,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC;QAChC,CAAC,EAAE,IAAI,OAAO,IAAI,EAAE,IAAI,OAAO,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAU;IAC7B,OAAO,CACL,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC;QAC9B,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM;YAAE,SAAS;QAChE,KAAK,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,KAAa;IAClD,MAAM,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa;IACpD,MAAM,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAW;IAChD,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,MAAM;YACtB,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACZ,SAAS;QACX,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YAAE,MAAM;QAC/B,GAAG,IAAI,EAAE,CAAC;QACV,KAAK,IAAI,CAAC,CAAC;QACX,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAW;IAChD,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAuB;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU;IAC9B,CAAC,CAAC;QACE,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,GAAG;QAChB,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QACrC,GAAG,EAAE;YACH,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;SACP;KACF;IACH,CAAC,CAAC;QACE,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,GAAG;QACZ,WAAW,EAAE,GAAG;QAChB,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;QACX,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QACrC,GAAG,EAAE;YACH,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,GAAG;YACP,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;SACP;KACF,CAAC;AAEN,MAAM,CAAC,MAAM,UAAU,GAA2B;IAChD,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IACjC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IAClC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IACjC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IAChC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IAC9B,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IACnC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IAC3B,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IACvC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IAClC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;IACpC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;CACpC,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CAAC;AAC5B,CAAC"}
package/dist/tui.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import type { ImagePart } from "@quatcode/core";
2
+ export type TuiOptions = {
3
+ dir: string;
4
+ model?: string;
5
+ effort?: string;
6
+ system?: string;
7
+ maxSteps: number;
8
+ allowAll: boolean;
9
+ context: boolean;
10
+ initialPrompt?: string;
11
+ io?: {
12
+ input: NodeJS.ReadStream;
13
+ output: NodeJS.WriteStream;
14
+ };
15
+ };
16
+ export declare function runTui(options: TuiOptions): Promise<number>;
17
+ export declare function nextImageIndex(text: string): number;
18
+ export declare function extractInputImages(text: string, images: ReadonlyMap<number, ImagePart>): {
19
+ text: string;
20
+ images: ImagePart[];
21
+ };
22
+ //# sourceMappingURL=tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,SAAS,EAMV,MAAM,gBAAgB,CAAC;AAoFxB,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,EAAE,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAA;KAAE,CAAC;CAC/D,CAAC;AAwCF,wBAAsB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAWjE;AAmlFD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASnD;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,GACrC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,EAAE,CAAA;CAAE,CAavC"}