@fleettools/squawk 0.1.0 → 0.1.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 (66) hide show
  1. package/package.json +1 -1
  2. package/AGENTS.md +0 -28
  3. package/dist/src/db/checkpoint-storage.d.ts +0 -19
  4. package/dist/src/db/checkpoint-storage.d.ts.map +0 -1
  5. package/dist/src/db/checkpoint-storage.js +0 -355
  6. package/dist/src/db/checkpoint-storage.js.map +0 -1
  7. package/dist/src/db/index.d.ts +0 -30
  8. package/dist/src/db/index.d.ts.map +0 -1
  9. package/dist/src/db/index.js +0 -329
  10. package/dist/src/db/index.js.map +0 -1
  11. package/dist/src/db/sqlite.d.ts +0 -31
  12. package/dist/src/db/sqlite.d.ts.map +0 -1
  13. package/dist/src/db/sqlite.js +0 -558
  14. package/dist/src/db/sqlite.js.map +0 -1
  15. package/dist/src/db/types.d.ts +0 -611
  16. package/dist/src/db/types.d.ts.map +0 -1
  17. package/dist/src/db/types.js +0 -4
  18. package/dist/src/db/types.js.map +0 -1
  19. package/dist/src/index.d.ts +0 -2
  20. package/dist/src/index.d.ts.map +0 -1
  21. package/dist/src/index.js +0 -285
  22. package/dist/src/index.js.map +0 -1
  23. package/dist/src/recovery/checkpointing.d.ts +0 -244
  24. package/dist/src/recovery/checkpointing.d.ts.map +0 -1
  25. package/dist/src/recovery/checkpointing.js +0 -511
  26. package/dist/src/recovery/checkpointing.js.map +0 -1
  27. package/dist/src/recovery/detection.d.ts +0 -137
  28. package/dist/src/recovery/detection.d.ts.map +0 -1
  29. package/dist/src/recovery/detection.js +0 -240
  30. package/dist/src/recovery/detection.js.map +0 -1
  31. package/dist/src/recovery/detector.d.ts +0 -34
  32. package/dist/src/recovery/detector.d.ts.map +0 -1
  33. package/dist/src/recovery/detector.js +0 -42
  34. package/dist/src/recovery/detector.js.map +0 -1
  35. package/dist/src/recovery/index.d.ts +0 -3
  36. package/dist/src/recovery/index.d.ts.map +0 -1
  37. package/dist/src/recovery/index.js +0 -3
  38. package/dist/src/recovery/index.js.map +0 -1
  39. package/dist/src/recovery/restorer.d.ts +0 -51
  40. package/dist/src/recovery/restorer.d.ts.map +0 -1
  41. package/dist/src/recovery/restorer.js +0 -266
  42. package/dist/src/recovery/restorer.js.map +0 -1
  43. package/dist/src/schemas.d.ts +0 -142
  44. package/dist/src/schemas.d.ts.map +0 -1
  45. package/dist/src/schemas.js +0 -110
  46. package/dist/src/schemas.js.map +0 -1
  47. package/src/db/checkpoint-storage.ts +0 -443
  48. package/src/db/index.d.ts +0 -30
  49. package/src/db/index.d.ts.map +0 -1
  50. package/src/db/index.js.map +0 -1
  51. package/src/db/index.ts +0 -417
  52. package/src/db/schema.sql +0 -112
  53. package/src/db/sqlite.d.ts +0 -31
  54. package/src/db/sqlite.d.ts.map +0 -1
  55. package/src/db/sqlite.js +0 -667
  56. package/src/db/sqlite.js.map +0 -1
  57. package/src/db/sqlite.ts +0 -677
  58. package/src/db/types.d.ts +0 -612
  59. package/src/db/types.d.ts.map +0 -1
  60. package/src/db/types.js +0 -4
  61. package/src/db/types.js.map +0 -1
  62. package/src/db/types.ts +0 -771
  63. package/src/index.ts +0 -332
  64. package/src/recovery/detector.ts +0 -82
  65. package/src/recovery/index.ts +0 -3
  66. package/src/recovery/restorer.ts +0 -377
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fleettools/squawk",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "FleetTools Squawk - Agent Coordination System",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/AGENTS.md DELETED
@@ -1,28 +0,0 @@
1
- # Squawk Workspace Agent Context
2
-
3
- **Hierarchy Level:** Coordination Service
4
- **Parent:** [../AGENTS.md](../AGENTS.md)
5
- **Philosophy:** See [AGENTS.md](../AGENTS.md) Core Philosophy section
6
-
7
- ## Commands
8
-
9
- ```bash
10
- cd squawk
11
- bun run build # Compile TypeScript to dist/
12
- bun run dev # bun src/index.ts
13
- bun start # bun dist/index.js
14
- ```
15
-
16
- ## Key Patterns
17
-
18
- - Bun.serve HTTP server on `SQUAWK_PORT` (default: 3001)
19
- - Event sourcing with `bun:sqlite` for persistence
20
- - Mailbox/cursor/lock APIs for agent coordination
21
- - No external HTTP dependencies (pure Bun APIs)
22
- - Database initialized on startup, closed on SIGINT
23
-
24
- ## Architecture
25
-
26
- - `src/db/` - SQLite adapter with prepared statements
27
- - `src/recovery/` - Checkpoint restoration logic
28
- - Entry point: `src/index.ts` with all route handlers
@@ -1,19 +0,0 @@
1
- import type { Checkpoint, CreateCheckpointInput } from './types.js';
2
- export declare class CheckpointStorage {
3
- version: string;
4
- constructor();
5
- create(input: CreateCheckpointInput): Promise<Checkpoint>;
6
- getById(checkpointId: string): Promise<Checkpoint | null>;
7
- getLatest(missionId: string): Promise<Checkpoint | null>;
8
- list(missionId?: string): Promise<Checkpoint[]>;
9
- delete(checkpointId: string): Promise<boolean>;
10
- markConsumed(checkpointId: string): Promise<Checkpoint | null>;
11
- getStats(): Promise<{
12
- total_checkpoints: number;
13
- file_count: number;
14
- latest_checkpoint?: Checkpoint;
15
- }>;
16
- cleanup(): Promise<number>;
17
- }
18
- export declare const checkpointStorage: CheckpointStorage;
19
- //# sourceMappingURL=checkpoint-storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkpoint-storage.d.ts","sourceRoot":"","sources":["../../../src/db/checkpoint-storage.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EAMtB,MAAM,YAAY,CAAC;AAuOpB,qBAAa,iBAAiB;IAC5B,OAAO,SAAW;;IAMZ,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAYzD,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAezD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAoCxD,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA8B/C,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB9C,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAe9D,QAAQ,IAAI,OAAO,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,UAAU,CAAC;KAChC,CAAC;IA6BI,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;CAsBjC;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -1,355 +0,0 @@
1
- import { writeFileSync, readFileSync, unlinkSync, existsSync, mkdirSync, symlinkSync } from 'fs';
2
- import { join } from 'path';
3
- import { randomUUID } from 'crypto';
4
- const mockDatabase = require('../../../tests/helpers/mock-database').mockDatabase;
5
- function validateCheckpoint(checkpoint) {
6
- const errors = [];
7
- if (!checkpoint.id || typeof checkpoint.id !== 'string') {
8
- errors.push('Invalid or missing id');
9
- }
10
- if (!checkpoint.mission_id || typeof checkpoint.mission_id !== 'string') {
11
- errors.push('Invalid or missing mission_id');
12
- }
13
- if (!checkpoint.timestamp || typeof checkpoint.timestamp !== 'string') {
14
- errors.push('Invalid or missing timestamp');
15
- }
16
- if (!checkpoint.trigger || !['progress', 'error', 'manual', 'compaction'].includes(checkpoint.trigger)) {
17
- errors.push('Invalid or missing trigger');
18
- }
19
- if (typeof checkpoint.progress_percent !== 'number' ||
20
- checkpoint.progress_percent < 0 ||
21
- checkpoint.progress_percent > 100) {
22
- errors.push('Invalid progress_percent (must be 0-100)');
23
- }
24
- if (!checkpoint.created_by || typeof checkpoint.created_by !== 'string') {
25
- errors.push('Invalid or missing created_by');
26
- }
27
- if (!checkpoint.version || typeof checkpoint.version !== 'string') {
28
- errors.push('Invalid or missing version');
29
- }
30
- if (checkpoint.timestamp && isNaN(Date.parse(checkpoint.timestamp))) {
31
- errors.push('Invalid timestamp format');
32
- }
33
- if (!Array.isArray(checkpoint.sorties)) {
34
- errors.push('sorties must be an array');
35
- }
36
- if (!Array.isArray(checkpoint.active_locks)) {
37
- errors.push('active_locks must be an array');
38
- }
39
- if (!Array.isArray(checkpoint.pending_messages)) {
40
- errors.push('pending_messages must be an array');
41
- }
42
- if (!checkpoint.recovery_context || typeof checkpoint.recovery_context !== 'object') {
43
- errors.push('Invalid or missing recovery_context');
44
- }
45
- else {
46
- const rc = checkpoint.recovery_context;
47
- if (!rc.last_action || typeof rc.last_action !== 'string') {
48
- errors.push('Invalid or missing recovery_context.last_action');
49
- }
50
- if (!Array.isArray(rc.next_steps)) {
51
- errors.push('recovery_context.next_steps must be an array');
52
- }
53
- if (!Array.isArray(rc.blockers)) {
54
- errors.push('recovery_context.blockers must be an array');
55
- }
56
- if (!Array.isArray(rc.files_modified)) {
57
- errors.push('recovery_context.files_modified must be an array');
58
- }
59
- if (!rc.mission_summary || typeof rc.mission_summary !== 'string') {
60
- errors.push('Invalid or missing recovery_context.mission_summary');
61
- }
62
- if (typeof rc.elapsed_time_ms !== 'number' || rc.elapsed_time_ms < 0) {
63
- errors.push('Invalid recovery_context.elapsed_time_ms');
64
- }
65
- if (!rc.last_activity_at || typeof rc.last_activity_at !== 'string') {
66
- errors.push('Invalid or missing recovery_context.last_activity_at');
67
- }
68
- else if (isNaN(Date.parse(rc.last_activity_at))) {
69
- errors.push('Invalid recovery_context.last_activity_at format');
70
- }
71
- }
72
- if (errors.length > 0) {
73
- throw new Error(`Checkpoint validation failed: ${errors.join(', ')}`);
74
- }
75
- return checkpoint;
76
- }
77
- // STORAGE UTILITIES
78
- function generateCheckpointId() {
79
- const uuid = randomUUID().split('-')[0];
80
- return `chk-${uuid}`;
81
- }
82
- function getFlightlineDir() {
83
- if (process.env.FLIGHTLINE_TEST_DIR) {
84
- return process.env.FLIGHTLINE_TEST_DIR;
85
- }
86
- const homeDir = require('os').homedir();
87
- return join(homeDir, '.flightline');
88
- }
89
- function getCheckpointsDir() {
90
- return join(getFlightlineDir(), 'checkpoints');
91
- }
92
- function getCheckpointFilePath(checkpointId) {
93
- return join(getCheckpointsDir(), `${checkpointId}.json`);
94
- }
95
- function getLatestSymlinkPath() {
96
- return join(getCheckpointsDir(), 'latest.json');
97
- }
98
- function ensureCheckpointsDir() {
99
- const checkpointsDir = getCheckpointsDir();
100
- if (!existsSync(checkpointsDir)) {
101
- mkdirSync(checkpointsDir, { recursive: true });
102
- }
103
- }
104
- function createSymlink(target, linkPath) {
105
- try {
106
- if (existsSync(linkPath)) {
107
- unlinkSync(linkPath);
108
- }
109
- symlinkSync(target, linkPath, 'file');
110
- }
111
- catch (error) {
112
- // Fallback: copy file content if symlinks aren't supported
113
- try {
114
- const content = readFileSync(target, 'utf-8');
115
- writeFileSync(linkPath, content);
116
- }
117
- catch (copyError) {
118
- console.warn('Failed to create symlink or fallback copy:', copyError);
119
- }
120
- }
121
- }
122
- function writeCheckpointFile(checkpoint) {
123
- const filepath = getCheckpointFilePath(checkpoint.id);
124
- try {
125
- ensureCheckpointsDir();
126
- const content = JSON.stringify(checkpoint, null, 2);
127
- writeFileSync(filepath, content, 'utf-8');
128
- createSymlink(filepath, getLatestSymlinkPath());
129
- }
130
- catch (error) {
131
- throw new Error(`Failed to write checkpoint file ${filepath}: ${error}`);
132
- }
133
- }
134
- function readCheckpointFile(checkpointId) {
135
- const filepath = getCheckpointFilePath(checkpointId);
136
- try {
137
- if (!existsSync(filepath)) {
138
- return null;
139
- }
140
- const content = readFileSync(filepath, 'utf-8');
141
- const data = JSON.parse(content);
142
- return validateCheckpoint(data);
143
- }
144
- catch (error) {
145
- console.warn(`Failed to read checkpoint file ${filepath}:`, error);
146
- return null;
147
- }
148
- }
149
- function deleteCheckpointFile(checkpointId) {
150
- const filepath = getCheckpointFilePath(checkpointId);
151
- try {
152
- if (existsSync(filepath)) {
153
- unlinkSync(filepath);
154
- return true;
155
- }
156
- return false;
157
- }
158
- catch (error) {
159
- console.warn(`Failed to delete checkpoint file ${filepath}:`, error);
160
- return false;
161
- }
162
- }
163
- function updateLatestSymlink() {
164
- try {
165
- const checkpointsDir = getCheckpointsDir();
166
- if (!existsSync(checkpointsDir)) {
167
- return;
168
- }
169
- const files = require('fs').readdirSync(checkpointsDir)
170
- .filter((file) => file.endsWith('.json') && file !== 'latest.json')
171
- .map((file) => {
172
- const filepath = join(checkpointsDir, file);
173
- const stats = require('fs').statSync(filepath);
174
- return { file, filepath, mtime: stats.mtime };
175
- })
176
- .sort((a, b) => b.mtime.getTime() - a.mtime.getTime());
177
- if (files.length > 0) {
178
- createSymlink(files[0].filepath, getLatestSymlinkPath());
179
- }
180
- else {
181
- const symlinkPath = getLatestSymlinkPath();
182
- if (existsSync(symlinkPath)) {
183
- unlinkSync(symlinkPath);
184
- }
185
- }
186
- }
187
- catch (error) {
188
- console.warn('Failed to update latest symlink:', error);
189
- }
190
- }
191
- // MAIN STORAGE CLASS
192
- export class CheckpointStorage {
193
- version = '1.0.0';
194
- constructor() {
195
- ensureCheckpointsDir();
196
- }
197
- async create(input) {
198
- try {
199
- const checkpoint = await mockDatabase.checkpoints.create(input);
200
- writeCheckpointFile(checkpoint);
201
- return checkpoint;
202
- }
203
- catch (error) {
204
- throw new Error(`Failed to create checkpoint: ${error}`);
205
- }
206
- }
207
- async getById(checkpointId) {
208
- try {
209
- let checkpoint = await mockDatabase.checkpoints.getById(checkpointId);
210
- if (!checkpoint) {
211
- checkpoint = readCheckpointFile(checkpointId);
212
- }
213
- return checkpoint;
214
- }
215
- catch (error) {
216
- console.warn(`Error retrieving checkpoint ${checkpointId}:`, error);
217
- return null;
218
- }
219
- }
220
- async getLatest(missionId) {
221
- try {
222
- let checkpoint = await mockDatabase.checkpoints.getLatest(missionId);
223
- // Fallback: read from files if database fails
224
- if (!checkpoint) {
225
- const checkpointsDir = getCheckpointsDir();
226
- if (existsSync(checkpointsDir)) {
227
- const files = require('fs').readdirSync(checkpointsDir)
228
- .filter((file) => file.endsWith('.json') && file !== 'latest.json')
229
- .map((file) => {
230
- const filepath = join(checkpointsDir, file);
231
- try {
232
- const checkpoint = readCheckpointFile(file.replace('.json', ''));
233
- return checkpoint ? { ...checkpoint, filepath } : null;
234
- }
235
- catch {
236
- return null;
237
- }
238
- })
239
- .filter(Boolean)
240
- .filter((cp) => cp.mission_id === missionId)
241
- .sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
242
- if (files.length > 0) {
243
- checkpoint = files[0];
244
- }
245
- }
246
- }
247
- return checkpoint;
248
- }
249
- catch (error) {
250
- console.warn(`Error retrieving latest checkpoint for mission ${missionId}:`, error);
251
- return null;
252
- }
253
- }
254
- async list(missionId) {
255
- try {
256
- let checkpoints = await mockDatabase.checkpoints.list(missionId);
257
- if (checkpoints.length === 0) {
258
- const checkpointsDir = getCheckpointsDir();
259
- if (existsSync(checkpointsDir)) {
260
- const fileCheckpoints = require('fs').readdirSync(checkpointsDir)
261
- .filter((file) => file.endsWith('.json') && file !== 'latest.json')
262
- .map((file) => {
263
- const checkpointId = file.replace('.json', '');
264
- return readCheckpointFile(checkpointId);
265
- })
266
- .filter(Boolean)
267
- .filter((cp) => !missionId || cp.mission_id === missionId)
268
- .sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
269
- checkpoints = fileCheckpoints;
270
- }
271
- }
272
- return checkpoints;
273
- }
274
- catch (error) {
275
- console.warn(`Error listing checkpoints${missionId ? ` for mission ${missionId}` : ''}:`, error);
276
- return [];
277
- }
278
- }
279
- async delete(checkpointId) {
280
- try {
281
- const dbDeleted = await mockDatabase.checkpoints.delete(checkpointId);
282
- const fileDeleted = deleteCheckpointFile(checkpointId);
283
- if (dbDeleted || fileDeleted) {
284
- updateLatestSymlink();
285
- return true;
286
- }
287
- return false;
288
- }
289
- catch (error) {
290
- console.warn(`Error deleting checkpoint ${checkpointId}:`, error);
291
- return false;
292
- }
293
- }
294
- async markConsumed(checkpointId) {
295
- try {
296
- const checkpoint = await mockDatabase.checkpoints.markConsumed(checkpointId);
297
- if (checkpoint) {
298
- writeCheckpointFile(checkpoint);
299
- }
300
- return checkpoint;
301
- }
302
- catch (error) {
303
- console.warn(`Error marking checkpoint ${checkpointId} as consumed:`, error);
304
- return null;
305
- }
306
- }
307
- async getStats() {
308
- try {
309
- const checkpoints = await mockDatabase.checkpoints.list();
310
- const dbStats = { total_checkpoints: checkpoints.length };
311
- const checkpointsDir = getCheckpointsDir();
312
- let fileCount = 0;
313
- if (existsSync(checkpointsDir)) {
314
- fileCount = require('fs').readdirSync(checkpointsDir)
315
- .filter((file) => file.endsWith('.json') && file !== 'latest.json')
316
- .length;
317
- }
318
- const latestCheckpoint = await this.getLatest(''); // Get any latest checkpoint
319
- return {
320
- total_checkpoints: dbStats.total_checkpoints,
321
- file_count: fileCount,
322
- latest_checkpoint: latestCheckpoint || undefined
323
- };
324
- }
325
- catch (error) {
326
- console.warn('Error getting checkpoint stats:', error);
327
- return {
328
- total_checkpoints: 0,
329
- file_count: 0
330
- };
331
- }
332
- }
333
- async cleanup() {
334
- try {
335
- let cleanedCount = 0;
336
- const now = new Date();
337
- const checkpoints = await this.list();
338
- for (const checkpoint of checkpoints) {
339
- if (checkpoint.expires_at && new Date(checkpoint.expires_at) < now) {
340
- const deleted = await this.delete(checkpoint.id);
341
- if (deleted) {
342
- cleanedCount++;
343
- }
344
- }
345
- }
346
- return cleanedCount;
347
- }
348
- catch (error) {
349
- console.warn('Error during checkpoint cleanup:', error);
350
- return 0;
351
- }
352
- }
353
- }
354
- export const checkpointStorage = new CheckpointStorage();
355
- //# sourceMappingURL=checkpoint-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkpoint-storage.js","sourceRoot":"","sources":["../../../src/db/checkpoint-storage.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { SQLiteAdapter } from './sqlite.js';
2
- import type { Event, Mailbox, Cursor, Lock } from './types.js';
3
- export declare function initializeDatabase(dbPath?: string): Promise<void>;
4
- export declare function getAdapter(): SQLiteAdapter;
5
- export declare function closeDatabase(): Promise<void>;
6
- export declare const mailboxOps: {
7
- getAll: () => Promise<any>;
8
- getById: (id: string) => Promise<any>;
9
- create: (id: string) => Promise<any>;
10
- exists: (id: string) => Promise<boolean>;
11
- };
12
- export declare const eventOps: {
13
- getByMailbox: (mailboxId: string) => Promise<any>;
14
- append: (mailboxId: string, events: any[]) => Promise<Event[]>;
15
- };
16
- export declare const cursorOps: {
17
- getById: (id: string) => Promise<any>;
18
- getByStream: (streamId: string) => Promise<any>;
19
- upsert: (cursor: any) => Promise<any>;
20
- };
21
- export declare const lockOps: {
22
- getAll: () => Promise<any>;
23
- getById: (id: string) => Promise<any>;
24
- acquire: (lock: any) => Promise<any>;
25
- release: (id: string) => Promise<any>;
26
- getExpired: () => Promise<any>;
27
- releaseExpired: () => Promise<any>;
28
- };
29
- export type { Mailbox, Event, Cursor, Lock };
30
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA8B/D,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvE;AAED,wBAAgB,UAAU,IAAI,aAAa,CAO1C;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnD;AAyID,eAAO,MAAM,UAAU;;kBAUD,MAAM;iBAKP,MAAM;iBAUN,MAAM;CAK1B,CAAC;AAEF,eAAO,MAAM,QAAQ;8BACa,MAAM;wBAUZ,MAAM,UAAU,GAAG,EAAE;CAmChD,CAAC;AAEF,eAAO,MAAM,SAAS;kBACA,MAAM;4BAKI,MAAM;qBASb,GAAG;CAuB3B,CAAC;AAEF,eAAO,MAAM,OAAO;;kBAcE,MAAM;oBAKH,GAAG;kBAkCN,MAAM;;;CA8B3B,CAAC;AAKF,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC"}