@prestyj/cli 4.3.59 → 4.3.93

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 (105) hide show
  1. package/dist/cli.js +155 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/core/auto-update.test.js +1 -1
  4. package/dist/core/auto-update.test.js.map +1 -1
  5. package/dist/core/compaction/token-estimator.d.ts.map +1 -1
  6. package/dist/core/compaction/token-estimator.js +2 -0
  7. package/dist/core/compaction/token-estimator.js.map +1 -1
  8. package/dist/core/pixel-fix-agent.d.ts +24 -0
  9. package/dist/core/pixel-fix-agent.d.ts.map +1 -0
  10. package/dist/core/pixel-fix-agent.js +49 -0
  11. package/dist/core/pixel-fix-agent.js.map +1 -0
  12. package/dist/core/pixel-fix.d.ts +70 -0
  13. package/dist/core/pixel-fix.d.ts.map +1 -0
  14. package/dist/core/pixel-fix.js +338 -0
  15. package/dist/core/pixel-fix.js.map +1 -0
  16. package/dist/core/pixel-fix.test.d.ts +2 -0
  17. package/dist/core/pixel-fix.test.d.ts.map +1 -0
  18. package/dist/core/pixel-fix.test.js +310 -0
  19. package/dist/core/pixel-fix.test.js.map +1 -0
  20. package/dist/core/pixel.d.ts +37 -0
  21. package/dist/core/pixel.d.ts.map +1 -0
  22. package/dist/core/pixel.js +378 -0
  23. package/dist/core/pixel.js.map +1 -0
  24. package/dist/core/pixel.test.d.ts +2 -0
  25. package/dist/core/pixel.test.d.ts.map +1 -0
  26. package/dist/core/pixel.test.js +269 -0
  27. package/dist/core/pixel.test.js.map +1 -0
  28. package/dist/core/source-maps.d.ts +47 -0
  29. package/dist/core/source-maps.d.ts.map +1 -0
  30. package/dist/core/source-maps.js +132 -0
  31. package/dist/core/source-maps.js.map +1 -0
  32. package/dist/core/source-maps.test.d.ts +2 -0
  33. package/dist/core/source-maps.test.d.ts.map +1 -0
  34. package/dist/core/source-maps.test.js +175 -0
  35. package/dist/core/source-maps.test.js.map +1 -0
  36. package/dist/system-prompt.d.ts.map +1 -1
  37. package/dist/system-prompt.js +20 -10
  38. package/dist/system-prompt.js.map +1 -1
  39. package/dist/tools/edit-diff.d.ts +10 -0
  40. package/dist/tools/edit-diff.d.ts.map +1 -1
  41. package/dist/tools/edit-diff.js +55 -0
  42. package/dist/tools/edit-diff.js.map +1 -1
  43. package/dist/tools/edit-diff.test.js +59 -1
  44. package/dist/tools/edit-diff.test.js.map +1 -1
  45. package/dist/tools/edit.d.ts +2 -1
  46. package/dist/tools/edit.d.ts.map +1 -1
  47. package/dist/tools/edit.js +22 -8
  48. package/dist/tools/edit.js.map +1 -1
  49. package/dist/tools/edit.test.js +65 -4
  50. package/dist/tools/edit.test.js.map +1 -1
  51. package/dist/tools/index.d.ts.map +1 -1
  52. package/dist/tools/index.js +1 -1
  53. package/dist/tools/index.js.map +1 -1
  54. package/dist/tools/plan-mode.test.js +1 -1
  55. package/dist/tools/plan-mode.test.js.map +1 -1
  56. package/dist/tools/read-tracker.d.ts +17 -0
  57. package/dist/tools/read-tracker.d.ts.map +1 -0
  58. package/dist/tools/read-tracker.js +38 -0
  59. package/dist/tools/read-tracker.js.map +1 -0
  60. package/dist/tools/read.d.ts +2 -1
  61. package/dist/tools/read.d.ts.map +1 -1
  62. package/dist/tools/read.js +3 -1
  63. package/dist/tools/read.js.map +1 -1
  64. package/dist/tools/read.test.js +6 -4
  65. package/dist/tools/read.test.js.map +1 -1
  66. package/dist/tools/write.d.ts +2 -1
  67. package/dist/tools/write.d.ts.map +1 -1
  68. package/dist/tools/write.js +6 -3
  69. package/dist/tools/write.js.map +1 -1
  70. package/dist/tools/write.test.js +23 -6
  71. package/dist/tools/write.test.js.map +1 -1
  72. package/dist/ui/App.d.ts +2 -0
  73. package/dist/ui/App.d.ts.map +1 -1
  74. package/dist/ui/App.js +139 -7
  75. package/dist/ui/App.js.map +1 -1
  76. package/dist/ui/components/InputArea.d.ts +2 -1
  77. package/dist/ui/components/InputArea.d.ts.map +1 -1
  78. package/dist/ui/components/InputArea.js +6 -1
  79. package/dist/ui/components/InputArea.js.map +1 -1
  80. package/dist/ui/components/PixelOverlay.d.ts +11 -0
  81. package/dist/ui/components/PixelOverlay.d.ts.map +1 -0
  82. package/dist/ui/components/PixelOverlay.js +117 -0
  83. package/dist/ui/components/PixelOverlay.js.map +1 -0
  84. package/dist/ui/components/ToolExecution.js +2 -2
  85. package/dist/ui/components/ToolExecution.js.map +1 -1
  86. package/dist/ui/pixel.d.ts +23 -0
  87. package/dist/ui/pixel.d.ts.map +1 -0
  88. package/dist/ui/pixel.js +421 -0
  89. package/dist/ui/pixel.js.map +1 -0
  90. package/dist/ui/pixel.test.d.ts +2 -0
  91. package/dist/ui/pixel.test.d.ts.map +1 -0
  92. package/dist/ui/pixel.test.js +138 -0
  93. package/dist/ui/pixel.test.js.map +1 -0
  94. package/dist/ui/render.d.ts +2 -0
  95. package/dist/ui/render.d.ts.map +1 -1
  96. package/dist/ui/render.js +2 -0
  97. package/dist/ui/render.js.map +1 -1
  98. package/dist/utils/error-handler.d.ts.map +1 -1
  99. package/dist/utils/error-handler.js +13 -0
  100. package/dist/utils/error-handler.js.map +1 -1
  101. package/dist/utils/image.d.ts.map +1 -1
  102. package/dist/utils/image.js +15 -0
  103. package/dist/utils/image.js.map +1 -1
  104. package/package.json +45 -11
  105. package/LICENSE +0 -21
@@ -0,0 +1,310 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
+ import { mkdtempSync, rmSync, writeFileSync, mkdirSync } from "node:fs";
3
+ import { tmpdir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { EventEmitter } from "node:events";
6
+ import { buildAgentPrompt, fixError, } from "./pixel-fix.js";
7
+ let home;
8
+ beforeEach(() => {
9
+ home = mkdtempSync(join(tmpdir(), "ezcoder-fix-"));
10
+ });
11
+ afterEach(() => rmSync(home, { recursive: true, force: true }));
12
+ function setupProjectMapping(projectId, name, path, secret = `sk_live_${projectId}_test`) {
13
+ mkdirSync(join(home, ".ezcoder"), { recursive: true });
14
+ writeFileSync(join(home, ".ezcoder", "projects.json"), JSON.stringify({ [projectId]: { name, path, secret } }));
15
+ }
16
+ const baseError = {
17
+ id: "err_abc123",
18
+ project_id: "proj_p1",
19
+ fingerprint: "fp",
20
+ status: "open",
21
+ type: "TypeError",
22
+ message: "Cannot read properties of undefined (reading 'name')",
23
+ stack: JSON.stringify([
24
+ { fn: "UserCard", file: "/repo/src/UserCard.tsx", line: 42, col: 23, in_app: true },
25
+ { fn: "lib", file: "/repo/node_modules/react/index.js", line: 1, col: 1, in_app: false },
26
+ ]),
27
+ code_context: JSON.stringify({
28
+ file: "/repo/src/UserCard.tsx",
29
+ error_line: 42,
30
+ lines: [
31
+ "function UserCard({ user }: Props) {",
32
+ " return (",
33
+ " <div>{user.name}</div>",
34
+ " );",
35
+ "}",
36
+ ],
37
+ }),
38
+ runtime: "node-22",
39
+ occurrences: 47,
40
+ recurrence_count: 0,
41
+ branch: null,
42
+ };
43
+ describe("buildAgentPrompt", () => {
44
+ it("includes the error type, message, and in-app location", () => {
45
+ const prompt = buildAgentPrompt(baseError, "fix/pixel-err_abc123");
46
+ expect(prompt).toContain("TypeError");
47
+ expect(prompt).toContain("Cannot read properties of undefined");
48
+ expect(prompt).toContain("Location: /repo/src/UserCard.tsx:42");
49
+ });
50
+ it("renders the code window with a marker on the error line", () => {
51
+ const prompt = buildAgentPrompt(baseError, "fix/pixel-err_abc123");
52
+ expect(prompt).toContain("> ");
53
+ expect(prompt).toContain("<div>{user.name}</div>");
54
+ });
55
+ it("renders the stack with (lib) for non-in-app frames", () => {
56
+ const prompt = buildAgentPrompt(baseError, "fix/pixel-err_abc123");
57
+ expect(prompt).toMatch(/UserCard\s+\/repo\/src\/UserCard\.tsx:42(?!\s*\(lib\))/);
58
+ expect(prompt).toMatch(/\/repo\/node_modules\/react\/index\.js:1\s+\(lib\)/);
59
+ });
60
+ it("includes the branch instruction", () => {
61
+ const prompt = buildAgentPrompt(baseError, "fix/pixel-err_abc123");
62
+ expect(prompt).toContain("Create branch: fix/pixel-err_abc123");
63
+ expect(prompt).toContain("Do not merge");
64
+ });
65
+ it("flags recurrence when recurrence_count > 0", () => {
66
+ const prompt = buildAgentPrompt({ ...baseError, recurrence_count: 2 }, "fix/pixel-x");
67
+ expect(prompt).toContain("2nd time");
68
+ expect(prompt).toContain("earlier fix did not hold");
69
+ });
70
+ });
71
+ function makeFakeChild(exitCode, stdout = "", stderr = "") {
72
+ const child = new EventEmitter();
73
+ child.stdout = new EventEmitter();
74
+ child.stderr = new EventEmitter();
75
+ setImmediate(() => {
76
+ if (stdout)
77
+ child.stdout.emit("data", Buffer.from(stdout));
78
+ if (stderr)
79
+ child.stderr.emit("data", Buffer.from(stderr));
80
+ child.emit("exit", exitCode);
81
+ });
82
+ return child;
83
+ }
84
+ function buildSpawnFn(handlers) {
85
+ const calls = [];
86
+ let i = 0;
87
+ const fn = (command, args, options) => {
88
+ const call = { command, args, options };
89
+ calls.push(call);
90
+ const handler = handlers[Math.min(i, handlers.length - 1)];
91
+ i++;
92
+ if (!handler)
93
+ throw new Error(`unexpected spawn call: ${command} ${args.join(" ")}`);
94
+ return handler(call);
95
+ };
96
+ return { fn, calls };
97
+ }
98
+ function fakeFetchScript(handlers) {
99
+ const calls = [];
100
+ let i = 0;
101
+ const fn = (async (input, init) => {
102
+ const url = String(input);
103
+ const method = (init?.method ?? "GET").toUpperCase();
104
+ calls.push({ method, url });
105
+ const handler = handlers[Math.min(i, handlers.length - 1)];
106
+ i++;
107
+ if (!handler)
108
+ throw new Error(`unexpected fetch: ${method} ${url}`);
109
+ return handler({ method, url });
110
+ });
111
+ return { fn, calls };
112
+ }
113
+ describe("fixError — orchestration", () => {
114
+ it("marks awaiting_review when the agent succeeds, branch exists, and has commits", async () => {
115
+ setupProjectMapping("proj_p1", "demo-app", "/tmp/demo-app");
116
+ const { fn: fetchFn, calls: fetchCalls } = fakeFetchScript([
117
+ // GET /api/errors/err_abc123
118
+ () => new Response(JSON.stringify(baseError), { status: 200 }),
119
+ // PATCH in_progress
120
+ () => new Response(JSON.stringify({ ...baseError, status: "in_progress" }), { status: 200 }),
121
+ // PATCH awaiting_review
122
+ () => new Response(JSON.stringify({ ...baseError, status: "awaiting_review" }), { status: 200 }),
123
+ ]);
124
+ const { fn: spawnFn, calls: spawnCalls } = buildSpawnFn([
125
+ // ezcoder agent run
126
+ () => makeFakeChild(0),
127
+ // git show-ref --verify refs/heads/fix/pixel-err_abc123
128
+ () => makeFakeChild(0),
129
+ // git show-ref --verify refs/heads/main
130
+ () => makeFakeChild(0),
131
+ // git rev-list --count main..fix/pixel-err_abc123
132
+ () => makeFakeChild(0, "3\n"),
133
+ ]);
134
+ const result = await fixError("err_abc123", {
135
+ homeDir: home,
136
+ fetchFn,
137
+ spawnFn,
138
+ inheritStdio: false,
139
+ });
140
+ expect(result.outcome).toBe("awaiting_review");
141
+ expect(result.branch).toBe("fix/pixel-err_abc123");
142
+ expect(result.reason).toContain("3 commit");
143
+ // First call to ezcoder uses the right cwd and args
144
+ const ggCall = spawnCalls[0];
145
+ expect(ggCall?.command).toBe("ezcoder");
146
+ expect(ggCall?.args).toContain("--json");
147
+ expect(ggCall?.args).toContain("--system-prompt");
148
+ expect(ggCall?.options.cwd).toBe("/tmp/demo-app");
149
+ // Status PATCH sequence: in_progress, then awaiting_review
150
+ const patchBodies = fetchCalls.filter((c) => c.method === "PATCH").map((c) => c.url);
151
+ expect(patchBodies).toEqual([
152
+ "https://ez-pixel-server.buzzbeamaustralia.workers.dev/api/errors/err_abc123",
153
+ "https://ez-pixel-server.buzzbeamaustralia.workers.dev/api/errors/err_abc123",
154
+ ]);
155
+ });
156
+ it("marks failed when the agent exits non-zero", async () => {
157
+ setupProjectMapping("proj_p1", "demo-app", "/tmp/demo-app");
158
+ const { fn: fetchFn } = fakeFetchScript([
159
+ () => new Response(JSON.stringify(baseError), { status: 200 }),
160
+ () => new Response("{}", { status: 200 }), // PATCH in_progress
161
+ () => new Response("{}", { status: 200 }), // PATCH failed
162
+ ]);
163
+ const { fn: spawnFn } = buildSpawnFn([() => makeFakeChild(1)]);
164
+ const result = await fixError("err_abc123", {
165
+ homeDir: home,
166
+ fetchFn,
167
+ spawnFn,
168
+ inheritStdio: false,
169
+ });
170
+ expect(result.outcome).toBe("failed");
171
+ expect(result.reason).toContain("exited with code 1");
172
+ });
173
+ it("marks failed when the branch was not created", async () => {
174
+ setupProjectMapping("proj_p1", "demo-app", "/tmp/demo-app");
175
+ const { fn: fetchFn } = fakeFetchScript([
176
+ () => new Response(JSON.stringify(baseError), { status: 200 }),
177
+ () => new Response("{}", { status: 200 }),
178
+ () => new Response("{}", { status: 200 }),
179
+ ]);
180
+ const { fn: spawnFn } = buildSpawnFn([
181
+ () => makeFakeChild(0), // ezcoder ok
182
+ () => makeFakeChild(1), // git show-ref FAIL
183
+ ]);
184
+ const result = await fixError("err_abc123", {
185
+ homeDir: home,
186
+ fetchFn,
187
+ spawnFn,
188
+ inheritStdio: false,
189
+ });
190
+ expect(result.outcome).toBe("failed");
191
+ expect(result.reason).toContain("not created");
192
+ });
193
+ it("marks failed when the branch exists but has no commits ahead of main", async () => {
194
+ setupProjectMapping("proj_p1", "demo-app", "/tmp/demo-app");
195
+ const { fn: fetchFn } = fakeFetchScript([
196
+ () => new Response(JSON.stringify(baseError), { status: 200 }),
197
+ () => new Response("{}", { status: 200 }),
198
+ () => new Response("{}", { status: 200 }),
199
+ ]);
200
+ const { fn: spawnFn } = buildSpawnFn([
201
+ () => makeFakeChild(0), // ezcoder
202
+ () => makeFakeChild(0), // branch exists
203
+ () => makeFakeChild(0), // main exists
204
+ () => makeFakeChild(0, "0\n"), // 0 commits ahead
205
+ ]);
206
+ const result = await fixError("err_abc123", {
207
+ homeDir: home,
208
+ fetchFn,
209
+ spawnFn,
210
+ inheritStdio: false,
211
+ });
212
+ expect(result.outcome).toBe("failed");
213
+ expect(result.reason).toContain("no new commits");
214
+ });
215
+ it("falls back to master when main does not exist", async () => {
216
+ setupProjectMapping("proj_p1", "demo-app", "/tmp/demo-app");
217
+ const { fn: fetchFn } = fakeFetchScript([
218
+ () => new Response(JSON.stringify(baseError), { status: 200 }),
219
+ () => new Response("{}", { status: 200 }),
220
+ () => new Response("{}", { status: 200 }),
221
+ ]);
222
+ const { fn: spawnFn, calls: spawnCalls } = buildSpawnFn([
223
+ () => makeFakeChild(0), // ezcoder
224
+ () => makeFakeChild(0), // branch exists
225
+ () => makeFakeChild(1), // main missing
226
+ () => makeFakeChild(0), // master exists
227
+ () => makeFakeChild(0, "2\n"), // 2 commits ahead of master
228
+ ]);
229
+ const result = await fixError("err_abc123", {
230
+ homeDir: home,
231
+ fetchFn,
232
+ spawnFn,
233
+ inheritStdio: false,
234
+ });
235
+ expect(result.outcome).toBe("awaiting_review");
236
+ const masterCall = spawnCalls.find((c) => c.args.includes("master..fix/pixel-err_abc123"));
237
+ expect(masterCall).toBeTruthy();
238
+ });
239
+ it("throws when no projects.json mapping exists for the project_id", async () => {
240
+ // No setupProjectMapping call — projects.json doesn't exist
241
+ const { fn: fetchFn } = fakeFetchScript([
242
+ () => new Response(JSON.stringify(baseError), { status: 200 }),
243
+ ]);
244
+ const { fn: spawnFn } = buildSpawnFn([]);
245
+ await expect(fixError("err_abc123", {
246
+ homeDir: home,
247
+ fetchFn,
248
+ spawnFn,
249
+ inheritStdio: false,
250
+ })).rejects.toThrow(/No projects mapping/);
251
+ });
252
+ it("throws when no project on this machine owns the error (all secrets reject)", async () => {
253
+ // proj_OTHER is registered but its secret returns 403/404 against err_abc123.
254
+ setupProjectMapping("proj_OTHER", "x", "/x");
255
+ const { fn: fetchFn } = fakeFetchScript([
256
+ () => new Response(JSON.stringify({ error: "forbidden" }), { status: 403 }),
257
+ ]);
258
+ const { fn: spawnFn } = buildSpawnFn([]);
259
+ await expect(fixError("err_abc123", {
260
+ homeDir: home,
261
+ fetchFn,
262
+ spawnFn,
263
+ inheritStdio: false,
264
+ })).rejects.toThrow(/not found in any registered project/);
265
+ });
266
+ it("throws when projects.json has no entries with a stored secret", async () => {
267
+ // Legacy entries (no secret) — must re-install before management works.
268
+ mkdirSync(join(home, ".ezcoder"), { recursive: true });
269
+ writeFileSync(join(home, ".ezcoder", "projects.json"), JSON.stringify({ proj_legacy: { name: "x", path: "/x" } }));
270
+ const { fn: fetchFn } = fakeFetchScript([]);
271
+ const { fn: spawnFn } = buildSpawnFn([]);
272
+ await expect(fixError("err_abc123", {
273
+ homeDir: home,
274
+ fetchFn,
275
+ spawnFn,
276
+ inheritStdio: false,
277
+ })).rejects.toThrow(/No managed projects/);
278
+ });
279
+ });
280
+ describe("fixError — wiring", () => {
281
+ it("marks the error in_progress before spawning the agent", async () => {
282
+ setupProjectMapping("proj_p1", "demo-app", "/tmp/demo-app");
283
+ const observed = [];
284
+ const { fn: fetchFn } = fakeFetchScript([
285
+ () => new Response(JSON.stringify(baseError), { status: 200 }),
286
+ () => {
287
+ observed.push("PATCH-1");
288
+ return new Response("{}", { status: 200 });
289
+ },
290
+ () => {
291
+ observed.push("PATCH-2");
292
+ return new Response("{}", { status: 200 });
293
+ },
294
+ ]);
295
+ const { fn: spawnFn } = buildSpawnFn([
296
+ () => {
297
+ observed.push("SPAWN");
298
+ return makeFakeChild(0);
299
+ },
300
+ () => makeFakeChild(0),
301
+ () => makeFakeChild(0),
302
+ () => makeFakeChild(0, "1\n"),
303
+ ]);
304
+ await fixError("err_abc123", { homeDir: home, fetchFn, spawnFn, inheritStdio: false });
305
+ expect(observed).toEqual(["PATCH-1", "SPAWN", "PATCH-2"]);
306
+ });
307
+ });
308
+ // Silence vitest unused import warning
309
+ void vi;
310
+ //# sourceMappingURL=pixel-fix.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixel-fix.test.js","sourceRoot":"","sources":["../../src/core/pixel-fix.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ interface ListOptions {
2
+ ingestUrl?: string;
3
+ homeDir?: string;
4
+ fetchFn?: typeof fetch;
5
+ }
6
+ export interface PixelEntry {
7
+ errorId: string;
8
+ projectId: string;
9
+ projectName: string;
10
+ projectPath: string;
11
+ status: string;
12
+ type: string;
13
+ message: string;
14
+ occurrences: number;
15
+ recurrenceCount: number;
16
+ location: string;
17
+ branch: string | null;
18
+ lastSeenAt?: number;
19
+ }
20
+ export interface PixelFetchResult {
21
+ entries: PixelEntry[];
22
+ unreachable: string[];
23
+ /** Project names that exist in projects.json but are missing the bearer
24
+ * secret — they need to be re-installed before they can be managed. */
25
+ unmanaged: string[];
26
+ hasProjects: boolean;
27
+ }
28
+ export declare function fetchPixelEntries(opts?: ListOptions): Promise<PixelFetchResult>;
29
+ export declare function listAllErrors(opts?: ListOptions): Promise<void>;
30
+ interface InstallCliOptions {
31
+ ingestUrl?: string;
32
+ name?: string;
33
+ skipPackageInstall: boolean;
34
+ }
35
+ export declare function runPixelInstall(opts: InstallCliOptions): Promise<void>;
36
+ export {};
37
+ //# sourceMappingURL=pixel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixel.d.ts","sourceRoot":"","sources":["../../src/core/pixel.ts"],"names":[],"mappings":"AAiCA,UAAU,WAAW;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;4EACwE;IACxE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0FzF;AAmCD,wBAAsB,aAAa,CAAC,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGzE;AA4FD,UAAU,iBAAiB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD5E"}