@buildlog/openclaw-skill 1.0.0 → 2.0.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.
package/dist/recorder.js CHANGED
@@ -2,7 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BuildlogRecorder = void 0;
4
4
  /**
5
- * BuildlogRecorder - State machine for recording OpenClaw sessions
5
+ * BuildlogRecorder v2 - Slim workflow format
6
+ *
7
+ * Key change from v1: Prompts are the primary artifact.
8
+ * We capture the workflow, not the full file contents.
6
9
  *
7
10
  * States: idle -> recording <-> paused -> idle
8
11
  */
@@ -11,11 +14,13 @@ class BuildlogRecorder {
11
14
  session = null;
12
15
  config;
13
16
  eventHandlers = new Map();
14
- pendingUserMessage = null;
17
+ lastPromptStep = null;
18
+ pendingFileChanges = new Map();
15
19
  constructor(config = {}) {
16
20
  this.config = {
17
- includeFileContents: config.includeFileContents ?? true,
18
- maxFileSizeKb: config.maxFileSizeKb ?? 100,
21
+ fullFormat: config.fullFormat ?? false,
22
+ aiProvider: config.aiProvider ?? 'claude',
23
+ model: config.model,
19
24
  };
20
25
  }
21
26
  /**
@@ -47,34 +52,38 @@ class BuildlogRecorder {
47
52
  id: this.generateId(),
48
53
  title,
49
54
  startedAt: Date.now(),
50
- entries: [],
51
- notes: [],
52
- chapters: [],
55
+ steps: [],
56
+ sequenceCounter: 0,
53
57
  metadata: {
54
58
  ...metadata,
55
59
  title,
56
60
  createdAt: new Date().toISOString(),
61
+ editor: 'openclaw',
62
+ aiProvider: this.config.aiProvider,
63
+ model: this.config.model,
57
64
  },
65
+ filesCreated: new Set(),
66
+ filesModified: new Set(),
58
67
  };
59
68
  this.state = 'recording';
69
+ this.lastPromptStep = null;
70
+ this.pendingFileChanges.clear();
60
71
  this.emit('started', { sessionId: this.session.id, title });
61
72
  }
62
73
  /**
63
- * Stop recording and return the session
74
+ * Stop recording and return the buildlog
64
75
  */
65
- stop() {
76
+ stop(outcome) {
66
77
  if (this.state === 'idle') {
67
78
  throw new Error('Cannot stop: not recording');
68
79
  }
69
- const session = this.session;
70
- if (session) {
71
- session.metadata.duration = Date.now() - session.startedAt;
72
- }
80
+ const buildlog = this.toBuildlog(outcome);
73
81
  this.state = 'idle';
74
82
  this.session = null;
75
- this.pendingUserMessage = null;
76
- this.emit('stopped', { session });
77
- return session;
83
+ this.lastPromptStep = null;
84
+ this.pendingFileChanges.clear();
85
+ this.emit('stopped', { buildlog });
86
+ return buildlog;
78
87
  }
79
88
  /**
80
89
  * Pause recording
@@ -119,83 +128,190 @@ class BuildlogRecorder {
119
128
  }
120
129
  }
121
130
  /**
122
- * Add a note at the current position
131
+ * Manually add a prompt step
132
+ */
133
+ addPrompt(content, options) {
134
+ if (!this.session) {
135
+ throw new Error('Cannot add prompt: no active session');
136
+ }
137
+ // Flush any pending file changes as an action
138
+ this.flushPendingChanges();
139
+ const step = {
140
+ id: this.generateId(),
141
+ type: 'prompt',
142
+ timestamp: this.getTimestamp(),
143
+ sequence: this.session.sequenceCounter++,
144
+ content,
145
+ context: options?.context,
146
+ intent: options?.intent,
147
+ };
148
+ this.session.steps.push(step);
149
+ this.lastPromptStep = step;
150
+ this.emit('step_added', { step });
151
+ }
152
+ /**
153
+ * Manually add an action step
154
+ */
155
+ addAction(summary, options) {
156
+ if (!this.session) {
157
+ throw new Error('Cannot add action: no active session');
158
+ }
159
+ // Track files for outcome
160
+ options?.filesCreated?.forEach(f => this.session.filesCreated.add(f));
161
+ options?.filesModified?.forEach(f => this.session.filesModified.add(f));
162
+ const step = {
163
+ id: this.generateId(),
164
+ type: 'action',
165
+ timestamp: this.getTimestamp(),
166
+ sequence: this.session.sequenceCounter++,
167
+ summary,
168
+ filesCreated: options?.filesCreated,
169
+ filesModified: options?.filesModified,
170
+ filesDeleted: options?.filesDeleted,
171
+ approach: options?.approach,
172
+ aiResponse: this.config.fullFormat ? options?.aiResponse : undefined,
173
+ };
174
+ this.session.steps.push(step);
175
+ this.emit('step_added', { step });
176
+ }
177
+ /**
178
+ * Add a note step
123
179
  */
124
- addNote(text) {
180
+ addNote(content, category) {
125
181
  if (!this.session) {
126
182
  throw new Error('Cannot add note: no active session');
127
183
  }
128
- this.session.notes.push({
129
- timestamp: Date.now(),
130
- text,
131
- entryIndex: this.session.entries.length,
132
- });
133
- this.emit('note_added', { text });
184
+ const step = {
185
+ id: this.generateId(),
186
+ type: 'note',
187
+ timestamp: this.getTimestamp(),
188
+ sequence: this.session.sequenceCounter++,
189
+ content,
190
+ category,
191
+ };
192
+ this.session.steps.push(step);
193
+ this.emit('step_added', { step });
134
194
  }
135
195
  /**
136
- * Add a chapter marker
196
+ * Add a checkpoint step
137
197
  */
138
- addChapter(title) {
198
+ addCheckpoint(label, summary) {
139
199
  if (!this.session) {
140
- throw new Error('Cannot add chapter: no active session');
200
+ throw new Error('Cannot add checkpoint: no active session');
141
201
  }
142
- this.session.chapters.push({
143
- title,
144
- entryIndex: this.session.entries.length,
145
- timestamp: Date.now(),
146
- });
147
- this.emit('chapter_added', { title });
202
+ const step = {
203
+ id: this.generateId(),
204
+ type: 'checkpoint',
205
+ timestamp: this.getTimestamp(),
206
+ sequence: this.session.sequenceCounter++,
207
+ name: label,
208
+ label: label,
209
+ summary: summary,
210
+ description: summary,
211
+ };
212
+ this.session.steps.push(step);
213
+ this.emit('step_added', { step });
148
214
  }
149
215
  /**
150
- * Mark the last entry as important
216
+ * Track a file change for the current action
151
217
  */
152
- markImportant() {
153
- if (!this.session || this.session.entries.length === 0) {
154
- throw new Error('Cannot mark: no entries');
218
+ trackFileChange(path, changeType) {
219
+ if (!this.session)
220
+ return;
221
+ if (changeType === 'created') {
222
+ this.session.filesCreated.add(path);
223
+ }
224
+ else if (changeType === 'modified') {
225
+ this.session.filesModified.add(path);
155
226
  }
156
- const lastEntry = this.session.entries[this.session.entries.length - 1];
157
- lastEntry.metadata = {
158
- ...lastEntry.metadata,
159
- important: true,
227
+ }
228
+ /**
229
+ * Add a terminal command step
230
+ */
231
+ addTerminal(command, cwd, exitCode) {
232
+ if (!this.session) {
233
+ throw new Error('Cannot add terminal: no active session');
234
+ }
235
+ const outcome = exitCode === 0 ? 'success' : exitCode !== undefined ? 'failure' : 'success';
236
+ const step = {
237
+ id: this.generateId(),
238
+ type: 'terminal',
239
+ timestamp: this.getTimestamp(),
240
+ sequence: this.session.sequenceCounter++,
241
+ command,
242
+ cwd,
243
+ outcome,
244
+ exitCode,
160
245
  };
161
- this.emit('marked_important', { entryIndex: this.session.entries.length - 1 });
246
+ this.session.steps.push(step);
247
+ this.emit('step_added', { step });
248
+ }
249
+ /**
250
+ * Add an error step
251
+ */
252
+ addError(message, resolved = false, resolution) {
253
+ if (!this.session) {
254
+ throw new Error('Cannot add error: no active session');
255
+ }
256
+ const step = {
257
+ id: this.generateId(),
258
+ type: 'error',
259
+ timestamp: this.getTimestamp(),
260
+ sequence: this.session.sequenceCounter++,
261
+ message,
262
+ resolved,
263
+ resolution,
264
+ };
265
+ this.session.steps.push(step);
266
+ this.emit('step_added', { step });
162
267
  }
163
268
  /**
164
269
  * Get recording status
165
270
  */
166
271
  getStatus() {
272
+ const promptCount = this.session?.steps.filter(s => s.type === 'prompt').length ?? 0;
167
273
  return {
168
274
  state: this.state,
169
275
  sessionId: this.session?.id,
170
276
  title: this.session?.title,
171
- entryCount: this.session?.entries.length ?? 0,
277
+ stepCount: this.session?.steps.length ?? 0,
278
+ promptCount,
172
279
  duration: this.session ? Date.now() - this.session.startedAt : 0,
173
- noteCount: this.session?.notes.length ?? 0,
174
- chapterCount: this.session?.chapters.length ?? 0,
175
280
  };
176
281
  }
177
282
  /**
178
283
  * Convert session to Buildlog format
179
284
  */
180
- toBuildlog() {
285
+ toBuildlog(outcome) {
181
286
  if (!this.session) {
182
287
  return null;
183
288
  }
289
+ const durationSeconds = Math.round((Date.now() - this.session.startedAt) / 1000);
290
+ const hasPrompts = this.session.steps.some(s => s.type === 'prompt');
291
+ const metadata = {
292
+ id: this.session.id,
293
+ title: this.session.title,
294
+ createdAt: new Date(this.session.startedAt).toISOString(),
295
+ durationSeconds,
296
+ editor: 'openclaw',
297
+ aiProvider: this.config.aiProvider,
298
+ model: this.config.model,
299
+ replicable: hasPrompts,
300
+ ...this.session.metadata,
301
+ };
302
+ const buildlogOutcome = {
303
+ status: outcome?.status || (hasPrompts ? 'success' : 'abandoned'),
304
+ summary: outcome?.summary || `Recorded ${this.session.steps.length} steps`,
305
+ filesCreated: this.session.filesCreated.size,
306
+ filesModified: this.session.filesModified.size,
307
+ canReplicate: hasPrompts,
308
+ };
184
309
  return {
185
- version: '1.0.0',
186
- metadata: {
187
- id: this.session.id,
188
- title: this.session.title,
189
- createdAt: new Date(this.session.startedAt).toISOString(),
190
- duration: Date.now() - this.session.startedAt,
191
- entryCount: this.session.entries.length,
192
- ...this.session.metadata,
193
- },
194
- entries: this.session.entries,
195
- chapters: this.session.chapters.map((ch) => ({
196
- title: ch.title,
197
- startIndex: ch.entryIndex,
198
- })),
310
+ version: '2.0.0',
311
+ format: this.config.fullFormat ? 'full' : 'slim',
312
+ metadata,
313
+ steps: this.session.steps,
314
+ outcome: buildlogOutcome,
199
315
  };
200
316
  }
201
317
  /**
@@ -213,59 +329,93 @@ class BuildlogRecorder {
213
329
  }
214
330
  // Private methods
215
331
  handleUserMessage(event) {
216
- const entry = {
217
- type: 'user',
218
- timestamp: event.timestamp,
219
- content: event.data.content,
220
- attachments: event.data.attachments?.map((a) => ({
221
- type: 'file',
222
- name: a.name,
223
- content: this.truncateContent(a.content),
224
- })),
225
- };
226
- this.pendingUserMessage = entry;
227
- this.session.entries.push(entry);
332
+ // User messages become prompts
333
+ const context = event.data.attachments?.map(a => a.name);
334
+ this.addPrompt(event.data.content, { context });
228
335
  }
229
336
  handleAssistantMessage(event) {
230
- const entry = {
231
- type: 'assistant',
232
- timestamp: event.timestamp,
233
- content: event.data.content,
234
- toolCalls: event.data.toolCalls,
235
- };
236
- this.session.entries.push(entry);
237
- this.pendingUserMessage = null;
337
+ // Flush pending file changes and create an action step
338
+ this.flushPendingChanges(event.data.content);
238
339
  }
239
340
  handleFileChange(event) {
240
- const fileChange = event.data;
241
- // Optionally truncate file content
242
- if (fileChange.content && !this.config.includeFileContents) {
243
- delete fileChange.content;
341
+ const { path, action } = event.data;
342
+ // Track the file change
343
+ if (action === 'create') {
344
+ this.pendingFileChanges.set(path, 'create');
345
+ this.session?.filesCreated.add(path);
244
346
  }
245
- else if (fileChange.content) {
246
- fileChange.content = this.truncateContent(fileChange.content);
347
+ else if (action === 'modify') {
348
+ if (!this.pendingFileChanges.has(path)) {
349
+ this.pendingFileChanges.set(path, 'modify');
350
+ }
351
+ this.session?.filesModified.add(path);
247
352
  }
248
- const entry = {
249
- type: 'file_change',
250
- timestamp: event.timestamp,
251
- fileChange,
252
- };
253
- this.session.entries.push(entry);
254
353
  }
255
354
  handleTerminalCommand(event) {
256
- const entry = {
355
+ if (!this.session)
356
+ return;
357
+ const { command, output, exitCode } = event.data;
358
+ const outcome = exitCode === 0 ? 'success' :
359
+ exitCode === undefined ? 'partial' : 'failure';
360
+ const step = {
361
+ id: this.generateId(),
257
362
  type: 'terminal',
258
- timestamp: event.timestamp,
259
- command: event.data,
363
+ timestamp: this.getTimestamp(),
364
+ sequence: this.session.sequenceCounter++,
365
+ command,
366
+ outcome,
367
+ output: this.config.fullFormat ? output : undefined,
368
+ exitCode,
369
+ };
370
+ this.session.steps.push(step);
371
+ this.emit('step_added', { step });
372
+ }
373
+ /**
374
+ * Flush pending file changes into an action step
375
+ */
376
+ flushPendingChanges(aiResponse) {
377
+ if (!this.session || this.pendingFileChanges.size === 0) {
378
+ return;
379
+ }
380
+ const filesCreated = [];
381
+ const filesModified = [];
382
+ for (const [path, action] of this.pendingFileChanges) {
383
+ if (action === 'create') {
384
+ filesCreated.push(path);
385
+ }
386
+ else {
387
+ filesModified.push(path);
388
+ }
389
+ }
390
+ const summary = this.generateActionSummary(filesCreated, filesModified);
391
+ const step = {
392
+ id: this.generateId(),
393
+ type: 'action',
394
+ timestamp: this.getTimestamp(),
395
+ sequence: this.session.sequenceCounter++,
396
+ summary,
397
+ filesCreated: filesCreated.length > 0 ? filesCreated : undefined,
398
+ filesModified: filesModified.length > 0 ? filesModified : undefined,
399
+ aiResponse: this.config.fullFormat ? aiResponse : undefined,
260
400
  };
261
- this.session.entries.push(entry);
401
+ this.session.steps.push(step);
402
+ this.pendingFileChanges.clear();
403
+ this.emit('step_added', { step });
262
404
  }
263
- truncateContent(content) {
264
- const maxBytes = this.config.maxFileSizeKb * 1024;
265
- if (content.length <= maxBytes) {
266
- return content;
405
+ generateActionSummary(created, modified) {
406
+ const parts = [];
407
+ if (created.length > 0) {
408
+ parts.push(`Created ${created.length} file${created.length > 1 ? 's' : ''}`);
409
+ }
410
+ if (modified.length > 0) {
411
+ parts.push(`Modified ${modified.length} file${modified.length > 1 ? 's' : ''}`);
267
412
  }
268
- return content.slice(0, maxBytes) + '\n... [truncated]';
413
+ return parts.join(', ') || 'Code changes';
414
+ }
415
+ getTimestamp() {
416
+ if (!this.session)
417
+ return 0;
418
+ return Math.round((Date.now() - this.session.startedAt) / 1000);
269
419
  }
270
420
  generateId() {
271
421
  return `bl_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"recorder.js","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recorder.js","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"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"}
package/dist/skill.d.ts CHANGED
@@ -20,8 +20,8 @@ export interface SkillConfig {
20
20
  apiKey?: string;
21
21
  autoUpload?: boolean;
22
22
  defaultPublic?: boolean;
23
- includeFileContents?: boolean;
24
- maxFileSizeKb?: number;
23
+ fullFormat?: boolean;
24
+ aiProvider?: string;
25
25
  }
26
26
  export interface CommandMatch {
27
27
  pattern: RegExp;
@@ -29,6 +29,9 @@ export interface CommandMatch {
29
29
  }
30
30
  /**
31
31
  * BuildlogSkill - Main skill implementation for OpenClaw
32
+ *
33
+ * v2: Captures workflow recipes, not session replays.
34
+ * Prompts are the artifact. Code is ephemeral.
32
35
  */
33
36
  export declare class BuildlogSkill {
34
37
  private recorder;
@@ -59,13 +62,13 @@ export declare class BuildlogSkill {
59
62
  private handleExportLastN;
60
63
  private handleUpload;
61
64
  private handleShare;
65
+ private handleAddPrompt;
66
+ private handleAddAction;
62
67
  private handleAddNote;
63
- private handleAddChapter;
64
- private handleMarkImportant;
68
+ private handleAddCheckpoint;
65
69
  private handleStatus;
66
70
  private handleInfo;
67
71
  private subscribeToEvents;
68
- private sessionToBuildlog;
69
72
  private uploadBuildlog;
70
73
  }
71
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,cAAc,EAAsB,MAAM,eAAe,CAAC;AAG1F;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,cAAc,CAAC;KACzB,CAAC;IACF,MAAM,EAAE;QACN,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;QAChE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;KAC1C,CAAC;IACF,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,aAAa,CAAyB;IAG9C,OAAO,CAAC,QAAQ,CAkEd;gBAEU,MAAM,GAAE,WAAgB;IAkBpC;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc5E;;OAEG;IACH,OAAO,IAAI,IAAI;YAaD,WAAW;YAYX,UAAU;YAoCV,WAAW;YAUX,YAAY;YAUZ,YAAY;YAYZ,iBAAiB;YAajB,YAAY;YA0BZ,WAAW;YAKX,aAAa;YAgBb,gBAAgB;YAgBhB,mBAAmB;YASnB,YAAY;YA6BZ,UAAU;IAMxB,OAAO,CAAC,iBAAiB;IA0CzB,OAAO,CAAC,iBAAiB;YAmBX,cAAc;CAa7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,WAAgB,GAAG,aAAa,CAE3E"}
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,cAAc,EAAwC,MAAM,eAAe,CAAC;AAG5G;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,cAAc,CAAC;KACzB,CAAC;IACF,MAAM,EAAE;QACN,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;QAChE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;KAC1C,CAAC;IACF,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,aAAa,CAAyB;IAG9C,OAAO,CAAC,QAAQ,CAuEd;gBAEU,MAAM,GAAE,WAAgB;IAoBpC;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrD;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc5E;;OAEG;IACH,OAAO,IAAI,IAAI;YAaD,WAAW;YAYX,UAAU;YAqCV,WAAW;YAUX,YAAY;YAUZ,YAAY;YAaZ,iBAAiB;YAajB,YAAY;YA0BZ,WAAW;YAKX,eAAe;YAgBf,eAAe;YAgBf,aAAa;YAgBb,mBAAmB;YAgBnB,YAAY;YA4BZ,UAAU;IAMxB,OAAO,CAAC,iBAAiB;YA0BX,cAAc;CAa7B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,WAAgB,GAAG,aAAa,CAE3E"}