@staticpayload/zai-code 1.4.2 → 1.4.3

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.
@@ -1,6 +1,4 @@
1
- declare const MAX_CONTEXT_TOKENS = 50000;
2
- declare const MAX_FILE_SIZE = 50000;
3
- declare const MAX_FILES = 50;
1
+ import { IntentType } from '../session';
4
2
  export interface FileScore {
5
3
  path: string;
6
4
  score: number;
@@ -8,22 +6,11 @@ export interface FileScore {
8
6
  extension: string;
9
7
  }
10
8
  export interface ContextResult {
11
- files: Array<{
12
- path: string;
13
- content: string;
14
- truncated: boolean;
15
- }>;
9
+ files: FileScore[];
16
10
  totalTokens: number;
17
- fileCount: number;
18
- truncatedCount: number;
19
- }
20
- export declare function indexWorkspace(rootPath: string): FileScore[];
21
- export declare function scoreFileRelevance(file: FileScore, intent: string, intentType: string): number;
22
- export declare function summarizeFile(content: string, maxChars: number): {
23
- summary: string;
24
11
  truncated: boolean;
25
- };
26
- export declare function buildContext(rootPath: string, intent: string, intentType: string, additionalFiles?: string[]): ContextResult;
12
+ }
13
+ export declare function indexWorkspace(workingDir: string, maxDepth?: number): FileScore[];
14
+ export declare function buildContext(workingDir: string, intent: string, intentType: IntentType, openFiles?: string[], maxTokens?: number): ContextResult;
27
15
  export declare function formatContextForModel(context: ContextResult): string;
28
- export { MAX_CONTEXT_TOKENS, MAX_FILE_SIZE, MAX_FILES };
29
16
  //# sourceMappingURL=context_builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context_builder.d.ts","sourceRoot":"","sources":["../../src/context/context_builder.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,kBAAkB,QAAQ,CAAC;AACjC,QAAA,MAAM,aAAa,QAAQ,CAAC;AAC5B,QAAA,MAAM,SAAS,KAAK,CAAC;AAIrB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AA6DD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAuD5D;AAGD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,MAAM,CA+CR;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CA6BxG;AAGD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,eAAe,GAAE,MAAM,EAAO,GAC7B,aAAa,CAkFf;AAGD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAkBpE;AAGD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"context_builder.d.ts","sourceRoot":"","sources":["../../src/context/context_builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAgED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,SAAS,EAAE,CAmDpF;AAiCD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,SAAS,GAAE,MAAM,EAAO,EACxB,SAAS,GAAE,MAAc,GACxB,aAAa,CAyCf;AAGD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAiBpE"}
@@ -33,23 +33,12 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.MAX_FILES = exports.MAX_FILE_SIZE = exports.MAX_CONTEXT_TOKENS = void 0;
37
36
  exports.indexWorkspace = indexWorkspace;
38
- exports.scoreFileRelevance = scoreFileRelevance;
39
- exports.summarizeFile = summarizeFile;
40
37
  exports.buildContext = buildContext;
41
38
  exports.formatContextForModel = formatContextForModel;
42
39
  const fs = __importStar(require("fs"));
43
40
  const path = __importStar(require("path"));
44
- // Context size limits
45
- const MAX_CONTEXT_TOKENS = 50000; // Approximate max tokens
46
- exports.MAX_CONTEXT_TOKENS = MAX_CONTEXT_TOKENS;
47
- const MAX_FILE_SIZE = 50000; // Max bytes per file
48
- exports.MAX_FILE_SIZE = MAX_FILE_SIZE;
49
- const MAX_FILES = 50; // Max files to include
50
- exports.MAX_FILES = MAX_FILES;
51
- const CHARS_PER_TOKEN = 4; // Approximate chars per token
52
- // File extensions by priority
41
+ // File extensions priority for code context
53
42
  const EXTENSION_PRIORITY = {
54
43
  '.ts': 10,
55
44
  '.tsx': 10,
@@ -76,7 +65,7 @@ const EXTENSION_PRIORITY = {
76
65
  '.sh': 5,
77
66
  '.bash': 5,
78
67
  };
79
- // Directories to always skip
68
+ // Directories to skip
80
69
  const SKIP_DIRS = new Set([
81
70
  'node_modules',
82
71
  '.git',
@@ -85,238 +74,155 @@ const SKIP_DIRS = new Set([
85
74
  'dist',
86
75
  'build',
87
76
  'out',
88
- 'target',
89
- '__pycache__',
90
- '.cache',
91
77
  '.next',
92
78
  '.nuxt',
93
- 'vendor',
79
+ '__pycache__',
80
+ '.pytest_cache',
94
81
  'coverage',
95
82
  '.nyc_output',
83
+ 'vendor',
84
+ '.zai',
96
85
  ]);
97
- // Files to always skip
86
+ // Files to skip
98
87
  const SKIP_FILES = new Set([
99
88
  'package-lock.json',
100
89
  'yarn.lock',
101
90
  'pnpm-lock.yaml',
102
- 'composer.lock',
103
- 'Gemfile.lock',
104
- 'Cargo.lock',
105
- 'go.sum',
91
+ '.DS_Store',
92
+ 'Thumbs.db',
106
93
  ]);
107
- // Index workspace and return file list with metadata
108
- function indexWorkspace(rootPath) {
94
+ // Estimate tokens from content (rough: 1 token ≈ 4 chars)
95
+ function estimateTokens(content) {
96
+ return Math.ceil(content.length / 4);
97
+ }
98
+ // Index workspace files
99
+ function indexWorkspace(workingDir, maxDepth = 5) {
109
100
  const files = [];
110
- // Validate root path exists
111
- if (!fs.existsSync(rootPath)) {
112
- return files;
113
- }
114
- function walk(dir, depth = 0) {
115
- if (depth > 10)
116
- return; // Max depth
101
+ function walk(dir, depth) {
102
+ if (depth > maxDepth)
103
+ return;
104
+ let entries;
117
105
  try {
118
- const entries = fs.readdirSync(dir, { withFileTypes: true });
119
- for (const entry of entries) {
120
- const fullPath = path.join(dir, entry.name);
121
- const relativePath = path.relative(rootPath, fullPath);
122
- if (entry.isDirectory()) {
123
- if (!SKIP_DIRS.has(entry.name) && !entry.name.startsWith('.')) {
124
- walk(fullPath, depth + 1);
125
- }
106
+ entries = fs.readdirSync(dir, { withFileTypes: true });
107
+ }
108
+ catch {
109
+ return;
110
+ }
111
+ for (const entry of entries) {
112
+ const fullPath = path.join(dir, entry.name);
113
+ const relativePath = path.relative(workingDir, fullPath);
114
+ if (entry.isDirectory()) {
115
+ if (!SKIP_DIRS.has(entry.name) && !entry.name.startsWith('.')) {
116
+ walk(fullPath, depth + 1);
126
117
  }
127
- else if (entry.isFile()) {
128
- if (SKIP_FILES.has(entry.name))
129
- continue;
130
- try {
131
- const stats = fs.statSync(fullPath);
132
- const ext = path.extname(entry.name).toLowerCase();
133
- // Skip binary and very large files
134
- if (stats.size > MAX_FILE_SIZE * 2)
135
- continue;
136
- const priority = EXTENSION_PRIORITY[ext] || 1;
137
- // Score based on extension priority and inverse of depth
138
- const score = priority * (10 - Math.min(depth, 9));
139
- files.push({
140
- path: relativePath,
141
- score,
142
- size: stats.size,
143
- extension: ext,
144
- });
145
- }
146
- catch {
147
- // Skip files we can't stat
148
- }
118
+ }
119
+ else if (entry.isFile()) {
120
+ if (SKIP_FILES.has(entry.name))
121
+ continue;
122
+ if (entry.name.startsWith('.'))
123
+ continue;
124
+ const ext = path.extname(entry.name).toLowerCase();
125
+ const priority = EXTENSION_PRIORITY[ext] || 1;
126
+ let size = 0;
127
+ try {
128
+ const stat = fs.statSync(fullPath);
129
+ size = stat.size;
130
+ }
131
+ catch {
132
+ continue;
149
133
  }
134
+ // Skip very large files (> 100KB)
135
+ if (size > 100000)
136
+ continue;
137
+ files.push({
138
+ path: relativePath,
139
+ score: priority,
140
+ size,
141
+ extension: ext,
142
+ });
150
143
  }
151
144
  }
152
- catch {
153
- // Skip directories we can't read
154
- }
155
145
  }
156
- walk(rootPath);
146
+ walk(workingDir, 0);
157
147
  return files;
158
148
  }
159
- // Score file relevance to a task
149
+ // Score files based on relevance to intent
160
150
  function scoreFileRelevance(file, intent, intentType) {
161
151
  let score = file.score;
162
- const intentLower = intent.toLowerCase();
163
- const pathLower = file.path.toLowerCase();
164
- // Boost if path contains words from intent
165
- const intentWords = intentLower.split(/\s+/).filter(w => w.length > 3);
166
- for (const word of intentWords) {
167
- if (pathLower.includes(word)) {
152
+ const lowerPath = file.path.toLowerCase();
153
+ const lowerIntent = intent.toLowerCase();
154
+ // Boost files mentioned in intent
155
+ const words = lowerIntent.split(/\s+/);
156
+ for (const word of words) {
157
+ if (word.length > 2 && lowerPath.includes(word)) {
168
158
  score += 5;
169
159
  }
170
160
  }
171
161
  // Boost based on intent type
172
- switch (intentType) {
173
- case 'DEBUG':
174
- // Prefer test files and error-related files
175
- if (pathLower.includes('test') || pathLower.includes('spec')) {
176
- score += 3;
177
- }
178
- if (pathLower.includes('error') || pathLower.includes('exception')) {
179
- score += 3;
180
- }
181
- break;
182
- case 'REFACTOR':
183
- // Prefer main source files
184
- if (pathLower.includes('src/') || pathLower.includes('lib/')) {
185
- score += 3;
186
- }
187
- break;
188
- case 'REVIEW':
189
- // Prefer config and doc files
190
- if (file.extension === '.md' || file.extension === '.json') {
191
- score += 2;
192
- }
193
- break;
162
+ if (intentType === 'DEBUG' && (lowerPath.includes('test') || lowerPath.includes('spec'))) {
163
+ score += 3;
194
164
  }
195
- // Penalize very large files
196
- if (file.size > 10000) {
197
- score -= 2;
165
+ if (intentType === 'REVIEW' && lowerPath.includes('readme')) {
166
+ score += 2;
198
167
  }
199
- if (file.size > 30000) {
200
- score -= 3;
168
+ // Boost entry points
169
+ if (lowerPath === 'index.ts' || lowerPath === 'index.js' || lowerPath === 'main.ts') {
170
+ score += 2;
201
171
  }
202
172
  return score;
203
173
  }
204
- // Summarize a large file to fit in context
205
- function summarizeFile(content, maxChars) {
206
- if (maxChars <= 0) {
207
- return { summary: '', truncated: true };
208
- }
209
- if (content.length <= maxChars) {
210
- return { summary: content, truncated: false };
211
- }
212
- // Include first portion and last portion
213
- const headSize = Math.floor(maxChars * 0.7);
214
- const tailSize = Math.floor(maxChars * 0.2);
215
- const truncationMessage = `\n\n... [${content.length - headSize - tailSize} chars truncated] ...\n\n`;
216
- // Ensure we have room for the truncation message
217
- const effectiveMaxChars = maxChars - truncationMessage.length;
218
- if (effectiveMaxChars <= 0) {
219
- return { summary: content.slice(0, maxChars), truncated: true };
220
- }
221
- const effectiveHeadSize = Math.floor(effectiveMaxChars * 0.7);
222
- const effectiveTailSize = Math.floor(effectiveMaxChars * 0.2);
223
- const head = content.slice(0, effectiveHeadSize);
224
- const tail = content.slice(-effectiveTailSize);
225
- const summary = `${head}${truncationMessage}${tail}`;
226
- return { summary, truncated: true };
227
- }
228
- // Build context for a task
229
- function buildContext(rootPath, intent, intentType, additionalFiles = []) {
230
- // Index workspace
231
- const allFiles = indexWorkspace(rootPath);
232
- // Score files by relevance
174
+ // Build context for API call
175
+ function buildContext(workingDir, intent, intentType, openFiles = [], maxTokens = 50000) {
176
+ const allFiles = indexWorkspace(workingDir);
177
+ // Score and sort files
233
178
  const scoredFiles = allFiles.map(f => ({
234
179
  ...f,
235
- relevanceScore: scoreFileRelevance(f, intent, intentType),
180
+ score: scoreFileRelevance(f, intent, intentType),
236
181
  }));
237
- // Sort by relevance score descending
238
- scoredFiles.sort((a, b) => b.relevanceScore - a.relevanceScore);
239
- // Add additional files with high priority
240
- const additionalSet = new Set(additionalFiles.map(f => path.relative(rootPath, f)));
241
- // Select files within token budget
242
- const result = {
243
- files: [],
244
- totalTokens: 0,
245
- fileCount: 0,
246
- truncatedCount: 0,
247
- };
248
- const maxChars = MAX_CONTEXT_TOKENS * CHARS_PER_TOKEN;
249
- let currentChars = 0;
250
- // First, add explicitly requested files
251
- for (const relPath of additionalSet) {
252
- const fullPath = path.join(rootPath, relPath);
253
- try {
254
- const content = fs.readFileSync(fullPath, 'utf-8');
255
- const { summary, truncated } = summarizeFile(content, Math.min(content.length, MAX_FILE_SIZE));
256
- if (currentChars + summary.length > maxChars)
257
- break;
258
- result.files.push({
259
- path: relPath,
260
- content: summary,
261
- truncated,
262
- });
263
- currentChars += summary.length;
264
- result.fileCount++;
265
- if (truncated)
266
- result.truncatedCount++;
267
- }
268
- catch {
269
- // Skip files we can't read
182
+ // Prioritize open files
183
+ for (const openFile of openFiles) {
184
+ const relative = path.relative(workingDir, openFile);
185
+ const found = scoredFiles.find(f => f.path === relative);
186
+ if (found) {
187
+ found.score += 20;
270
188
  }
271
189
  }
272
- // Then add scored files
190
+ // Sort by score descending
191
+ scoredFiles.sort((a, b) => b.score - a.score);
192
+ // Select files within token budget
193
+ const selectedFiles = [];
194
+ let totalTokens = 0;
195
+ let truncated = false;
273
196
  for (const file of scoredFiles) {
274
- if (result.fileCount >= MAX_FILES)
275
- break;
276
- if (currentChars >= maxChars)
277
- break;
278
- if (additionalSet.has(file.path))
197
+ const estimatedTokens = Math.ceil(file.size / 4);
198
+ if (totalTokens + estimatedTokens > maxTokens) {
199
+ truncated = true;
279
200
  continue;
280
- const fullPath = path.join(rootPath, file.path);
281
- try {
282
- const content = fs.readFileSync(fullPath, 'utf-8');
283
- const maxFileChars = Math.min(MAX_FILE_SIZE, Math.floor((maxChars - currentChars) / 2) // Leave room for other files
284
- );
285
- const { summary, truncated } = summarizeFile(content, maxFileChars);
286
- if (currentChars + summary.length > maxChars)
287
- break;
288
- result.files.push({
289
- path: file.path,
290
- content: summary,
291
- truncated,
292
- });
293
- currentChars += summary.length;
294
- result.fileCount++;
295
- if (truncated)
296
- result.truncatedCount++;
297
- }
298
- catch {
299
- // Skip files we can't read
300
201
  }
202
+ selectedFiles.push(file);
203
+ totalTokens += estimatedTokens;
301
204
  }
302
- result.totalTokens = Math.ceil(currentChars / CHARS_PER_TOKEN);
303
- return result;
205
+ return {
206
+ files: selectedFiles,
207
+ totalTokens,
208
+ truncated,
209
+ };
304
210
  }
305
- // Format context for model input
211
+ // Format context for model
306
212
  function formatContextForModel(context) {
307
213
  if (context.files.length === 0) {
308
- return 'No files in context.';
309
- }
310
- let output = `Context: ${context.fileCount} files (~${context.totalTokens} tokens)`;
311
- if (context.truncatedCount > 0) {
312
- output += ` [${context.truncatedCount} truncated]`;
214
+ return '';
313
215
  }
314
- output += '\n\n';
315
- for (const file of context.files) {
316
- output += `--- ${file.path}${file.truncated ? ' [truncated]' : ''} ---\n`;
317
- output += file.content;
318
- output += '\n\n';
216
+ const parts = [];
217
+ for (const file of context.files.slice(0, 20)) {
218
+ try {
219
+ const content = fs.readFileSync(file.path, 'utf-8');
220
+ parts.push(`--- ${file.path} ---\n${content}\n`);
221
+ }
222
+ catch {
223
+ // Skip unreadable files
224
+ }
319
225
  }
320
- return output;
226
+ return parts.join('\n');
321
227
  }
322
228
  //# sourceMappingURL=context_builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context_builder.js","sourceRoot":"","sources":["../../src/context/context_builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context_builder.js","sourceRoot":"","sources":["../../src/context/context_builder.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,5 @@
1
- declare const MEMORY_FILE = ".zai/context.md";
2
- declare const BASE_SYSTEM_PROMPT = "You are an execution engine. Follow these rules exactly:\n\nRULES:\n- Output ONLY what is explicitly requested\n- No explanations unless requested\n- No apologies or acknowledgments\n- No conversational language\n- No first-person references\n- No preamble or postamble\n- No markdown formatting unless requested\n- Raw output only\n\nBEHAVIOR:\n- Execute instructions literally\n- Be deterministic and consistent\n- If a schema is provided, output valid JSON matching that schema exactly\n- If output format is specified, follow it precisely\n\nVIOLATIONS:\n- Do not say \"I\", \"I'll\", \"I can\", \"Sure\", \"Certainly\", \"Of course\"\n- Do not say \"Here is\", \"Here's\", \"Let me\"\n- Do not apologize or explain limitations\n- Do not add commentary or suggestions unless requested";
3
- export declare function loadProjectContext(workingDir?: string): string;
4
- export declare function saveProjectContext(content: string, workingDir?: string): boolean;
5
- export declare function appendProjectRule(rule: string, workingDir?: string): boolean;
1
+ export declare function loadProjectContext(workingDir: string): string | null;
2
+ export declare function saveProjectContext(workingDir: string, content: string): boolean;
6
3
  export declare function getSystemPrompt(workingDir?: string): string;
7
- export interface ProjectMemory {
8
- load(): Promise<string>;
9
- append(rule: string): Promise<void>;
10
- getSystemPrompt(): Promise<string>;
11
- }
12
- export declare function createProjectMemory(workingDir?: string): ProjectMemory;
13
- export { MEMORY_FILE, BASE_SYSTEM_PROMPT };
4
+ export declare function hasProjectContext(workingDir: string): boolean;
14
5
  //# sourceMappingURL=project_memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project_memory.d.ts","sourceRoot":"","sources":["../../src/context/project_memory.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,WAAW,oBAAoB,CAAC;AAGtC,QAAA,MAAM,kBAAkB,yxBAsBgC,CAAC;AAuBzD,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAW9D;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAYhF;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAI5E;AAGD,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAY3D;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACpC;AAGD,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAYtE;AAGD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"project_memory.d.ts","sourceRoot":"","sources":["../../src/context/project_memory.ts"],"names":[],"mappings":"AA6BA,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYpE;AAGD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAa/E;AAGD,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAW3D;AAGD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAG7D"}