@opendatalabs/connect 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +58 -0
  2. package/dist/cli/bin.d.ts +3 -0
  3. package/dist/cli/bin.d.ts.map +1 -0
  4. package/dist/cli/bin.js +15 -0
  5. package/dist/cli/bin.js.map +1 -0
  6. package/dist/cli/index.d.ts +89 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +3844 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/cli/main.d.ts +2 -0
  11. package/dist/cli/main.d.ts.map +1 -0
  12. package/dist/cli/main.js +10 -0
  13. package/dist/cli/main.js.map +1 -0
  14. package/dist/cli/mcp-server.d.ts +15 -0
  15. package/dist/cli/mcp-server.d.ts.map +1 -0
  16. package/dist/cli/mcp-server.js +199 -0
  17. package/dist/cli/mcp-server.js.map +1 -0
  18. package/dist/cli/queries.d.ts +128 -0
  19. package/dist/cli/queries.d.ts.map +1 -0
  20. package/dist/cli/queries.js +415 -0
  21. package/dist/cli/queries.js.map +1 -0
  22. package/dist/cli/render/capabilities.d.ts +9 -0
  23. package/dist/cli/render/capabilities.d.ts.map +1 -0
  24. package/dist/cli/render/capabilities.js +24 -0
  25. package/dist/cli/render/capabilities.js.map +1 -0
  26. package/dist/cli/render/connect-renderer.d.ts +18 -0
  27. package/dist/cli/render/connect-renderer.d.ts.map +1 -0
  28. package/dist/cli/render/connect-renderer.js +255 -0
  29. package/dist/cli/render/connect-renderer.js.map +1 -0
  30. package/dist/cli/render/format.d.ts +27 -0
  31. package/dist/cli/render/format.d.ts.map +1 -0
  32. package/dist/cli/render/format.js +111 -0
  33. package/dist/cli/render/format.js.map +1 -0
  34. package/dist/cli/render/index.d.ts +7 -0
  35. package/dist/cli/render/index.d.ts.map +1 -0
  36. package/dist/cli/render/index.js +7 -0
  37. package/dist/cli/render/index.js.map +1 -0
  38. package/dist/cli/render/progress.d.ts +11 -0
  39. package/dist/cli/render/progress.d.ts.map +1 -0
  40. package/dist/cli/render/progress.js +56 -0
  41. package/dist/cli/render/progress.js.map +1 -0
  42. package/dist/cli/render/symbols.d.ts +11 -0
  43. package/dist/cli/render/symbols.d.ts.map +1 -0
  44. package/dist/cli/render/symbols.js +21 -0
  45. package/dist/cli/render/symbols.js.map +1 -0
  46. package/dist/cli/render/theme.d.ts +15 -0
  47. package/dist/cli/render/theme.d.ts.map +1 -0
  48. package/dist/cli/render/theme.js +41 -0
  49. package/dist/cli/render/theme.js.map +1 -0
  50. package/dist/cli/search-select.d.ts +17 -0
  51. package/dist/cli/search-select.d.ts.map +1 -0
  52. package/dist/cli/search-select.js +29 -0
  53. package/dist/cli/search-select.js.map +1 -0
  54. package/dist/cli/update-check-worker.d.ts +2 -0
  55. package/dist/cli/update-check-worker.d.ts.map +1 -0
  56. package/dist/cli/update-check-worker.js +55 -0
  57. package/dist/cli/update-check-worker.js.map +1 -0
  58. package/dist/cli/update-check.d.ts +21 -0
  59. package/dist/cli/update-check.d.ts.map +1 -0
  60. package/dist/cli/update-check.js +52 -0
  61. package/dist/cli/update-check.js.map +1 -0
  62. package/dist/connectors/index.d.ts +2 -0
  63. package/dist/connectors/index.d.ts.map +1 -0
  64. package/dist/connectors/index.js +2 -0
  65. package/dist/connectors/index.js.map +1 -0
  66. package/dist/connectors/registry.d.ts +55 -0
  67. package/dist/connectors/registry.d.ts.map +1 -0
  68. package/dist/connectors/registry.js +298 -0
  69. package/dist/connectors/registry.js.map +1 -0
  70. package/dist/core/cli-types.d.ts +692 -0
  71. package/dist/core/cli-types.d.ts.map +1 -0
  72. package/dist/core/cli-types.js +322 -0
  73. package/dist/core/cli-types.js.map +1 -0
  74. package/dist/core/index.d.ts +4 -0
  75. package/dist/core/index.d.ts.map +1 -1
  76. package/dist/core/index.js +3 -0
  77. package/dist/core/index.js.map +1 -1
  78. package/dist/core/paths.d.ts +28 -0
  79. package/dist/core/paths.d.ts.map +1 -0
  80. package/dist/core/paths.js +89 -0
  81. package/dist/core/paths.js.map +1 -0
  82. package/dist/core/state-store.d.ts +39 -0
  83. package/dist/core/state-store.d.ts.map +1 -0
  84. package/dist/core/state-store.js +101 -0
  85. package/dist/core/state-store.js.map +1 -0
  86. package/dist/core/types.d.ts +2 -0
  87. package/dist/core/types.d.ts.map +1 -1
  88. package/dist/personal-server/client.d.ts +34 -0
  89. package/dist/personal-server/client.d.ts.map +1 -0
  90. package/dist/personal-server/client.js +94 -0
  91. package/dist/personal-server/client.js.map +1 -0
  92. package/dist/personal-server/index.d.ts +18 -0
  93. package/dist/personal-server/index.d.ts.map +1 -0
  94. package/dist/personal-server/index.js +123 -0
  95. package/dist/personal-server/index.js.map +1 -0
  96. package/dist/personal-server/scope-resolver.d.ts +22 -0
  97. package/dist/personal-server/scope-resolver.d.ts.map +1 -0
  98. package/dist/personal-server/scope-resolver.js +68 -0
  99. package/dist/personal-server/scope-resolver.js.map +1 -0
  100. package/dist/runtime/core/contracts.d.ts +84 -0
  101. package/dist/runtime/core/contracts.d.ts.map +1 -0
  102. package/dist/runtime/core/contracts.js +2 -0
  103. package/dist/runtime/core/contracts.js.map +1 -0
  104. package/dist/runtime/core/index.d.ts +2 -0
  105. package/dist/runtime/core/index.d.ts.map +1 -0
  106. package/dist/runtime/core/index.js +2 -0
  107. package/dist/runtime/core/index.js.map +1 -0
  108. package/dist/runtime/index.d.ts +4 -0
  109. package/dist/runtime/index.d.ts.map +1 -0
  110. package/dist/runtime/index.js +3 -0
  111. package/dist/runtime/index.js.map +1 -0
  112. package/dist/runtime/managed-playwright.d.ts +42 -0
  113. package/dist/runtime/managed-playwright.d.ts.map +1 -0
  114. package/dist/runtime/managed-playwright.js +178 -0
  115. package/dist/runtime/managed-playwright.js.map +1 -0
  116. package/dist/runtime/playwright/browser.d.ts +12 -0
  117. package/dist/runtime/playwright/browser.d.ts.map +1 -0
  118. package/dist/runtime/playwright/browser.js +229 -0
  119. package/dist/runtime/playwright/browser.js.map +1 -0
  120. package/dist/runtime/playwright/in-process-run.d.ts +6 -0
  121. package/dist/runtime/playwright/in-process-run.d.ts.map +1 -0
  122. package/dist/runtime/playwright/in-process-run.js +628 -0
  123. package/dist/runtime/playwright/in-process-run.js.map +1 -0
  124. package/dist/runtime/playwright/index.d.ts +3 -0
  125. package/dist/runtime/playwright/index.d.ts.map +1 -0
  126. package/dist/runtime/playwright/index.js +3 -0
  127. package/dist/runtime/playwright/index.js.map +1 -0
  128. package/dist/runtime/repo-paths.d.ts +2 -0
  129. package/dist/runtime/repo-paths.d.ts.map +1 -0
  130. package/dist/runtime/repo-paths.js +36 -0
  131. package/dist/runtime/repo-paths.js.map +1 -0
  132. package/dist/server/config.d.ts +2 -0
  133. package/dist/server/config.d.ts.map +1 -1
  134. package/dist/server/config.js +1 -0
  135. package/dist/server/config.js.map +1 -1
  136. package/dist/server/connect.d.ts.map +1 -1
  137. package/dist/server/connect.js +4 -0
  138. package/dist/server/connect.js.map +1 -1
  139. package/dist/skills/index.d.ts +4 -0
  140. package/dist/skills/index.d.ts.map +1 -0
  141. package/dist/skills/index.js +3 -0
  142. package/dist/skills/index.js.map +1 -0
  143. package/dist/skills/paths.d.ts +33 -0
  144. package/dist/skills/paths.d.ts.map +1 -0
  145. package/dist/skills/paths.js +81 -0
  146. package/dist/skills/paths.js.map +1 -0
  147. package/dist/skills/registry.d.ts +48 -0
  148. package/dist/skills/registry.d.ts.map +1 -0
  149. package/dist/skills/registry.js +173 -0
  150. package/dist/skills/registry.js.map +1 -0
  151. package/package.json +51 -4
@@ -0,0 +1,255 @@
1
+ import { detectRenderCapabilities } from "./capabilities.js";
2
+ // Vana accent blue
3
+ const ACCENT = [65, 65, 252];
4
+ const ERROR = [231, 0, 11];
5
+ export function createConnectRenderer() {
6
+ const capabilities = detectRenderCapabilities();
7
+ const canAnimate = capabilities.interactive;
8
+ const useColor = capabilities.color;
9
+ // Smooth double-beat with dark pause between cycles
10
+ // dark -> · -> ✧ -> ✦ (first beat) -> ✧ -> · -> ✧ -> ✦ (second beat, holds) -> ✧ -> · -> dark
11
+ const SPINNER_FRAMES = [
12
+ { char: " ", duration: 180, dim: true },
13
+ { char: "\u00B7", duration: 150, dim: true },
14
+ { char: "\u2727", duration: 120, dim: false },
15
+ { char: "\u2726", duration: 200, dim: false },
16
+ { char: "\u2727", duration: 100, dim: false },
17
+ { char: "\u00B7", duration: 80, dim: true },
18
+ { char: "\u2727", duration: 120, dim: false },
19
+ { char: "\u2726", duration: 500, dim: false },
20
+ { char: "\u2727", duration: 120, dim: false },
21
+ { char: "\u00B7", duration: 150, dim: true },
22
+ { char: " ", duration: 120, dim: true },
23
+ ];
24
+ let titleText = "";
25
+ const scopes = [];
26
+ let successMessage = "";
27
+ const detailLines = [];
28
+ let spinnerFrameIndex = 0;
29
+ let spinnerElapsed = 0;
30
+ let spinnerInterval = null;
31
+ let lastRenderedLineCount = 0;
32
+ let isComplete = false;
33
+ let isFailure = false;
34
+ function rgb(r, g, b, text) {
35
+ if (!useColor)
36
+ return text;
37
+ return `\x1b[38;2;${r};${g};${b}m${text}\x1b[39m`;
38
+ }
39
+ function dim(text) {
40
+ return useColor ? `\x1b[2m${text}\x1b[22m` : text;
41
+ }
42
+ function bold(text) {
43
+ return useColor ? `\x1b[1m${text}\x1b[22m` : text;
44
+ }
45
+ function renderSpinnerChar() {
46
+ const frame = SPINNER_FRAMES[spinnerFrameIndex];
47
+ const char = frame.dim
48
+ ? dim(rgb(...ACCENT, frame.char))
49
+ : rgb(...ACCENT, frame.char);
50
+ return char;
51
+ }
52
+ function renderLine(scope) {
53
+ if (scope.state === "done") {
54
+ const check = rgb(...ACCENT, "\u2713");
55
+ const detail = scope.detail ? ` ${dim(`\u2014 ${scope.detail}`)}` : "";
56
+ return ` ${check} ${scope.name}${detail}`;
57
+ }
58
+ if (scope.state === "failed") {
59
+ const x = rgb(...ERROR, "\u2717");
60
+ const detail = scope.detail ? ` ${dim(`\u2014 ${scope.detail}`)}` : "";
61
+ return ` ${x} ${scope.name}${detail}`;
62
+ }
63
+ // active
64
+ const spinner = renderSpinnerChar();
65
+ return ` ${spinner} ${scope.name}`;
66
+ }
67
+ function render() {
68
+ const lines = [];
69
+ // Title
70
+ lines.push(` ${bold(titleText)}`);
71
+ lines.push("");
72
+ // Scope lines
73
+ for (const scope of scopes) {
74
+ lines.push(renderLine(scope));
75
+ }
76
+ // If complete, show success/failure + details
77
+ if (isComplete && successMessage) {
78
+ lines.push("");
79
+ const prefix = isFailure
80
+ ? rgb(...ERROR, "\u2717")
81
+ : rgb(...ACCENT, "\u2713");
82
+ lines.push(` ${prefix} ${bold(successMessage)}`);
83
+ for (const line of detailLines) {
84
+ lines.push(` ${dim(line)}`);
85
+ }
86
+ }
87
+ return lines.join("\n");
88
+ }
89
+ function paint() {
90
+ if (!canAnimate)
91
+ return;
92
+ // Clear previous render
93
+ if (lastRenderedLineCount > 0) {
94
+ process.stderr.write(`\x1b[${lastRenderedLineCount}A`);
95
+ for (let i = 0; i < lastRenderedLineCount; i++) {
96
+ process.stderr.write("\x1b[2K\n");
97
+ }
98
+ process.stderr.write(`\x1b[${lastRenderedLineCount}A`);
99
+ }
100
+ const output = render();
101
+ lastRenderedLineCount = output.split("\n").length;
102
+ process.stderr.write(output + "\n");
103
+ }
104
+ function startSpinner() {
105
+ if (!canAnimate || spinnerInterval)
106
+ return;
107
+ spinnerInterval = setInterval(() => {
108
+ spinnerElapsed += 30;
109
+ const frame = SPINNER_FRAMES[spinnerFrameIndex];
110
+ if (spinnerElapsed >= frame.duration) {
111
+ spinnerElapsed = 0;
112
+ spinnerFrameIndex = (spinnerFrameIndex + 1) % SPINNER_FRAMES.length;
113
+ }
114
+ paint();
115
+ }, 30);
116
+ }
117
+ function stopSpinner() {
118
+ if (spinnerInterval) {
119
+ clearInterval(spinnerInterval);
120
+ spinnerInterval = null;
121
+ }
122
+ }
123
+ return {
124
+ title(source) {
125
+ titleText = `Connect ${source}`;
126
+ if (!canAnimate) {
127
+ process.stderr.write(` ${bold(titleText)}\n\n`);
128
+ }
129
+ },
130
+ scopeActive(scope) {
131
+ // Don't add duplicate active scope
132
+ const existing = scopes.find((s) => s.name === scope && s.state === "active");
133
+ if (existing)
134
+ return;
135
+ // Auto-complete any previously active scopes
136
+ for (const s of scopes) {
137
+ if (s.state === "active") {
138
+ s.state = "done";
139
+ if (!canAnimate) {
140
+ const check = rgb(...ACCENT, "\u2713");
141
+ const detailStr = s.detail ? ` ${dim(`\u2014 ${s.detail}`)}` : "";
142
+ process.stderr.write(` ${check} ${s.name}${detailStr}\n`);
143
+ }
144
+ }
145
+ }
146
+ // Reset spinner for new scope
147
+ spinnerFrameIndex = 0;
148
+ spinnerElapsed = 0;
149
+ scopes.push({ name: scope, state: "active" });
150
+ startSpinner();
151
+ paint();
152
+ },
153
+ scopeDone(scope, detail) {
154
+ const existing = scopes.find((s) => s.name === scope && s.state === "active");
155
+ if (existing) {
156
+ existing.state = "done";
157
+ existing.detail = detail;
158
+ }
159
+ else {
160
+ // Scope appeared and completed immediately
161
+ scopes.push({ name: scope, state: "done", detail });
162
+ }
163
+ // Reset spinner for next active scope
164
+ spinnerFrameIndex = 0;
165
+ spinnerElapsed = 0;
166
+ if (!canAnimate) {
167
+ const check = rgb(...ACCENT, "\u2713");
168
+ const detailStr = detail ? ` ${dim(`\u2014 ${detail}`)}` : "";
169
+ process.stderr.write(` ${check} ${scope}${detailStr}\n`);
170
+ }
171
+ paint();
172
+ },
173
+ scopeFailed(scope, error) {
174
+ const existing = scopes.find((s) => s.name === scope && s.state === "active");
175
+ if (existing) {
176
+ existing.state = "failed";
177
+ existing.detail = error;
178
+ }
179
+ else {
180
+ scopes.push({ name: scope, state: "failed", detail: error });
181
+ }
182
+ if (!canAnimate) {
183
+ const x = rgb(...ERROR, "\u2717");
184
+ const detailStr = error ? ` ${dim(`\u2014 ${error}`)}` : "";
185
+ process.stderr.write(` ${x} ${scope}${detailStr}\n`);
186
+ }
187
+ paint();
188
+ },
189
+ success(message) {
190
+ stopSpinner();
191
+ // Resolve any still-active scopes to done
192
+ for (const scope of scopes) {
193
+ if (scope.state === "active") {
194
+ scope.state = "done";
195
+ }
196
+ }
197
+ isComplete = true;
198
+ successMessage = message;
199
+ if (!canAnimate) {
200
+ const check = rgb(...ACCENT, "\u2713");
201
+ process.stderr.write(`\n ${check} ${bold(message)}\n`);
202
+ }
203
+ paint();
204
+ },
205
+ detail(message) {
206
+ detailLines.push(message);
207
+ if (!canAnimate) {
208
+ process.stderr.write(` ${dim(message)}\n`);
209
+ }
210
+ paint();
211
+ },
212
+ next(command) {
213
+ detailLines.push(`Next: ${command}`);
214
+ if (!canAnimate) {
215
+ process.stderr.write(` ${dim("Next:")} ${bold(command)}\n`);
216
+ }
217
+ paint();
218
+ },
219
+ fail(message) {
220
+ stopSpinner();
221
+ isFailure = true;
222
+ // Resolve any still-active scopes to failed
223
+ for (const scope of scopes) {
224
+ if (scope.state === "active") {
225
+ scope.state = "failed";
226
+ }
227
+ }
228
+ isComplete = true;
229
+ successMessage = message;
230
+ if (!canAnimate) {
231
+ const x = rgb(...ERROR, "\u2717");
232
+ process.stderr.write(`\n ${x} ${message}\n`);
233
+ }
234
+ paint();
235
+ },
236
+ bell() {
237
+ process.stderr.write("\x07");
238
+ },
239
+ cleanup() {
240
+ stopSpinner();
241
+ },
242
+ pauseForPrompt() {
243
+ stopSpinner();
244
+ // Final paint to show current state
245
+ paint();
246
+ process.stderr.write("\n");
247
+ },
248
+ resumeAfterPrompt() {
249
+ // Reset line count so next paint starts fresh below the prompt
250
+ lastRenderedLineCount = 0;
251
+ startSpinner();
252
+ },
253
+ };
254
+ }
255
+ //# sourceMappingURL=connect-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-renderer.js","sourceRoot":"","sources":["../../../src/cli/render/connect-renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type RenderCapabilities } from "./capabilities.js";
2
+ import { type RenderSymbols } from "./symbols.js";
3
+ import { type RenderTheme } from "./theme.js";
4
+ type Tone = "accent" | "success" | "warning" | "error" | "muted" | "info";
5
+ export interface HumanRenderer {
6
+ readonly capabilities: RenderCapabilities;
7
+ readonly symbols: RenderSymbols;
8
+ readonly theme: RenderTheme;
9
+ blank(): string;
10
+ title(text: string): string;
11
+ success(text: string): string;
12
+ section(text: string): string;
13
+ keyValue(label: string, value: string, tone?: Tone): string;
14
+ sourceTitle(name: string, badges?: string[]): string;
15
+ detail(text: string): string;
16
+ bullet(text: string): string;
17
+ badge(text: string, tone?: Tone): string;
18
+ }
19
+ export declare function createHumanRenderer(): HumanRenderer;
20
+ export declare function formatDisplayPath(filePath: string, homeDir?: string): string;
21
+ export declare function tableRow(columns: Array<{
22
+ text: string;
23
+ width: number;
24
+ }>): string;
25
+ export declare function formatRelativeTime(iso: string): string;
26
+ export {};
27
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/cli/render/format.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE3D,KAAK,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAG1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,KAAK,IAAI,MAAM,CAAC;IAChB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC5D,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACrD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CAC1C;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CA6CnD;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,SAAe,GACrB,MAAM,CAUR;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9C,MAAM,CAMR;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4BtD"}
@@ -0,0 +1,111 @@
1
+ import os from "node:os";
2
+ import path from "node:path";
3
+ import { detectRenderCapabilities, } from "./capabilities.js";
4
+ import { createSymbols } from "./symbols.js";
5
+ import { createTheme } from "./theme.js";
6
+ const KEY_VALUE_LABEL_WIDTH = 14;
7
+ export function createHumanRenderer() {
8
+ const capabilities = detectRenderCapabilities();
9
+ const theme = createTheme(capabilities);
10
+ const symbols = createSymbols(capabilities);
11
+ return {
12
+ capabilities,
13
+ symbols,
14
+ theme,
15
+ blank() {
16
+ return "";
17
+ },
18
+ title(text) {
19
+ return theme.heading(text);
20
+ },
21
+ success(text) {
22
+ return `${theme.success(symbols.success)} ${theme.heading(text)}`;
23
+ },
24
+ section(text) {
25
+ return `${theme.heading(text)}`;
26
+ },
27
+ keyValue(label, value, tone = "muted") {
28
+ const rawLabel = `${label}:`;
29
+ const paddedLabel = rawLabel.length >= KEY_VALUE_LABEL_WIDTH
30
+ ? rawLabel
31
+ : rawLabel.padEnd(KEY_VALUE_LABEL_WIDTH);
32
+ return ` ${theme.label(paddedLabel)} ${applyTone(theme, tone, value)}`;
33
+ },
34
+ sourceTitle(name, badges = []) {
35
+ if (badges.length === 0) {
36
+ return theme.heading(name);
37
+ }
38
+ return `${theme.heading(name)} ${badges.join(" ")}`;
39
+ },
40
+ detail(text) {
41
+ return ` ${theme.muted(text)}`;
42
+ },
43
+ bullet(text) {
44
+ return ` ${theme.muted(symbols.bullet)} ${text}`;
45
+ },
46
+ badge(text, tone = "muted") {
47
+ return applyTone(theme, tone, text);
48
+ },
49
+ };
50
+ }
51
+ export function formatDisplayPath(filePath, homeDir = os.homedir()) {
52
+ if (filePath === homeDir) {
53
+ return "~";
54
+ }
55
+ if (filePath.startsWith(`${homeDir}${path.sep}`)) {
56
+ return `~${filePath.slice(homeDir.length)}`;
57
+ }
58
+ return filePath;
59
+ }
60
+ export function tableRow(columns) {
61
+ return columns
62
+ .map((col) => col.text.length >= col.width ? col.text : col.text.padEnd(col.width))
63
+ .join(" ");
64
+ }
65
+ export function formatRelativeTime(iso) {
66
+ const now = Date.now();
67
+ const then = new Date(iso).getTime();
68
+ if (Number.isNaN(then)) {
69
+ return iso;
70
+ }
71
+ const diffMs = now - then;
72
+ if (diffMs < 0) {
73
+ return "just now";
74
+ }
75
+ const seconds = Math.floor(diffMs / 1000);
76
+ if (seconds < 60) {
77
+ return "just now";
78
+ }
79
+ const minutes = Math.floor(seconds / 60);
80
+ if (minutes < 60) {
81
+ return `${minutes}m ago`;
82
+ }
83
+ const hours = Math.floor(minutes / 60);
84
+ if (hours < 24) {
85
+ return `${hours}h ago`;
86
+ }
87
+ const days = Math.floor(hours / 24);
88
+ if (days < 30) {
89
+ return `${days}d ago`;
90
+ }
91
+ const months = Math.floor(days / 30);
92
+ return `${months}mo ago`;
93
+ }
94
+ function applyTone(theme, tone, text) {
95
+ switch (tone) {
96
+ case "accent":
97
+ return theme.accent(text);
98
+ case "success":
99
+ return theme.success(text);
100
+ case "warning":
101
+ return theme.warning(text);
102
+ case "error":
103
+ return theme.error(text);
104
+ case "info":
105
+ return theme.info(text);
106
+ case "muted":
107
+ default:
108
+ return theme.muted(text);
109
+ }
110
+ }
111
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/cli/render/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from "./capabilities.js";
2
+ export * from "./connect-renderer.js";
3
+ export * from "./format.js";
4
+ export * from "./progress.js";
5
+ export * from "./symbols.js";
6
+ export * from "./theme.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/render/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./capabilities.js";
2
+ export * from "./connect-renderer.js";
3
+ export * from "./format.js";
4
+ export * from "./progress.js";
5
+ export * from "./symbols.js";
6
+ export * from "./theme.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/render/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface ProgressHandle {
2
+ start(text: string): void;
3
+ update(text: string): void;
4
+ succeed(text: string): void;
5
+ fail(text: string): void;
6
+ stop(): void;
7
+ }
8
+ export declare function createProgressHandle(options?: {
9
+ enabled?: boolean;
10
+ }): ProgressHandle;
11
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/cli/render/progress.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,IAAI,CAAC;CACd;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,cAAc,CA6CjB"}
@@ -0,0 +1,56 @@
1
+ import ora from "ora";
2
+ import { detectRenderCapabilities } from "./capabilities.js";
3
+ export function createProgressHandle(options) {
4
+ const capabilities = detectRenderCapabilities();
5
+ if (!options?.enabled || !capabilities.interactive) {
6
+ return createNoopHandle();
7
+ }
8
+ let spinner = null;
9
+ return {
10
+ start(text) {
11
+ if (spinner) {
12
+ spinner.stop();
13
+ }
14
+ spinner = ora({
15
+ text,
16
+ isEnabled: true,
17
+ discardStdin: false,
18
+ }).start();
19
+ },
20
+ update(text) {
21
+ if (!spinner) {
22
+ this.start(text);
23
+ return;
24
+ }
25
+ spinner.text = text;
26
+ },
27
+ succeed(text) {
28
+ if (!spinner) {
29
+ spinner = ora({ text, isEnabled: true, discardStdin: false });
30
+ }
31
+ spinner.succeed(text);
32
+ spinner = null;
33
+ },
34
+ fail(text) {
35
+ if (!spinner) {
36
+ spinner = ora({ text, isEnabled: true, discardStdin: false });
37
+ }
38
+ spinner.fail(text);
39
+ spinner = null;
40
+ },
41
+ stop() {
42
+ spinner?.stop();
43
+ spinner = null;
44
+ },
45
+ };
46
+ }
47
+ function createNoopHandle() {
48
+ return {
49
+ start() { },
50
+ update() { },
51
+ succeed() { },
52
+ fail() { },
53
+ stop() { },
54
+ };
55
+ }
56
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/cli/render/progress.ts"],"names":[],"mappings":"AAAA,OAAO,GAAiB,MAAM,KAAK,CAAC;AAEpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAU7D,MAAM,UAAU,oBAAoB,CAAC,OAEpC;IACC,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO,GAAe,IAAI,CAAC;IAE/B,OAAO;QACL,KAAK,CAAC,IAAY;YAChB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC;YACD,OAAO,GAAG,GAAG,CAAC;gBACZ,IAAI;gBACJ,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;QACD,MAAM,CAAC,IAAY;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,IAAY;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,IAAY;YACf,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI;YACF,OAAO,EAAE,IAAI,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,KAAK,KAAI,CAAC;QACV,MAAM,KAAI,CAAC;QACX,OAAO,KAAI,CAAC;QACZ,IAAI,KAAI,CAAC;QACT,IAAI,KAAI,CAAC;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { RenderCapabilities } from "./capabilities.js";
2
+ export interface RenderSymbols {
3
+ readonly success: string;
4
+ readonly error: string;
5
+ readonly warning: string;
6
+ readonly info: string;
7
+ readonly bullet: string;
8
+ readonly arrow: string;
9
+ }
10
+ export declare function createSymbols(capabilities: RenderCapabilities): RenderSymbols;
11
+ //# sourceMappingURL=symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../../src/cli/render/symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,kBAAkB,GAAG,aAAa,CAoB7E"}
@@ -0,0 +1,21 @@
1
+ export function createSymbols(capabilities) {
2
+ if (!capabilities.unicode) {
3
+ return {
4
+ success: "OK",
5
+ error: "x",
6
+ warning: "!",
7
+ info: "i",
8
+ bullet: "-",
9
+ arrow: "->",
10
+ };
11
+ }
12
+ return {
13
+ success: "✓",
14
+ error: "✕",
15
+ warning: "!",
16
+ info: "•",
17
+ bullet: "•",
18
+ arrow: "→",
19
+ };
20
+ }
21
+ //# sourceMappingURL=symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../src/cli/render/symbols.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,aAAa,CAAC,YAAgC;IAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG;QACZ,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;KACX,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { RenderCapabilities } from "./capabilities.js";
2
+ export interface RenderTheme {
3
+ readonly accent: (text: string) => string;
4
+ readonly heading: (text: string) => string;
5
+ readonly label: (text: string) => string;
6
+ readonly muted: (text: string) => string;
7
+ readonly dim: (text: string) => string;
8
+ readonly success: (text: string) => string;
9
+ readonly warning: (text: string) => string;
10
+ readonly error: (text: string) => string;
11
+ readonly info: (text: string) => string;
12
+ readonly code: (text: string) => string;
13
+ }
14
+ export declare function createTheme(capabilities: RenderCapabilities): RenderTheme;
15
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/cli/render/theme.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ5D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED,wBAAgB,WAAW,CAAC,YAAY,EAAE,kBAAkB,GAAG,WAAW,CA+BzE"}
@@ -0,0 +1,41 @@
1
+ import { createColors } from "picocolors";
2
+ const VANA_ACCENT = [65, 65, 252];
3
+ const VANA_SUCCESS = [0, 213, 11];
4
+ const VANA_DESTRUCTIVE = [231, 0, 11];
5
+ const VANA_MUTED = [112, 112, 112];
6
+ const VANA_WARNING = [186, 139, 0];
7
+ export function createTheme(capabilities) {
8
+ const colors = createColors(capabilities.color);
9
+ const formatCode = (text) => `\`${text}\``;
10
+ const richMuted = (text) => rgb(...VANA_MUTED, text);
11
+ if (capabilities.tier === "rich") {
12
+ return {
13
+ accent: (text) => rgb(...VANA_ACCENT, text),
14
+ heading: (text) => colors.bold(text),
15
+ label: (text) => richMuted(colors.bold(text)),
16
+ muted: (text) => richMuted(text),
17
+ dim: (text) => colors.dim(text),
18
+ success: (text) => rgb(...VANA_SUCCESS, text),
19
+ warning: (text) => rgb(...VANA_WARNING, text),
20
+ error: (text) => rgb(...VANA_DESTRUCTIVE, text),
21
+ info: (text) => rgb(...VANA_ACCENT, text),
22
+ code: (text) => colors.bold(formatCode(text)),
23
+ };
24
+ }
25
+ return {
26
+ accent: (text) => colors.blue(text),
27
+ heading: (text) => colors.bold(text),
28
+ label: (text) => colors.bold(colors.gray(text)),
29
+ muted: (text) => colors.gray(text),
30
+ dim: (text) => colors.dim(text),
31
+ success: (text) => colors.green(text),
32
+ warning: (text) => colors.yellow(text),
33
+ error: (text) => colors.red(text),
34
+ info: (text) => colors.cyan(text),
35
+ code: (text) => colors.bold(formatCode(text)),
36
+ };
37
+ }
38
+ function rgb(red, green, blue, text) {
39
+ return `\u001B[38;2;${red};${green};${blue}m${text}\u001B[39m`;
40
+ }
41
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/cli/render/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAU,CAAC;AAC3C,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAU,CAAC;AAC3C,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAU,CAAC;AAC/C,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAC5C,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAU,CAAC;AAe5C,MAAM,UAAU,WAAW,CAAC,YAAgC;IAC1D,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC;IACnD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7D,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO;YACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,IAAI,CAAC;YAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC;YAChC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;YAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC;YAC7C,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC;YAC7C,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,gBAAgB,EAAE,IAAI,CAAC;YAC/C,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,IAAI,CAAC;YACzC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACnC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QACrC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACtC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,IAAY,EAAE,IAAY;IACjE,OAAO,eAAe,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,YAAY,CAAC;AACjE,CAAC"}