@polpo-ai/server 0.15.44 → 0.15.46

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 (34) hide show
  1. package/dist/deps.d.ts +5 -3
  2. package/dist/deps.d.ts.map +1 -1
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/routes/schedules.d.ts +2 -5
  8. package/dist/routes/schedules.d.ts.map +1 -1
  9. package/dist/routes/schedules.js +625 -121
  10. package/dist/routes/schedules.js.map +1 -1
  11. package/dist/routes/schedules.test.d.ts +2 -0
  12. package/dist/routes/schedules.test.d.ts.map +1 -0
  13. package/dist/routes/schedules.test.js +328 -0
  14. package/dist/routes/schedules.test.js.map +1 -0
  15. package/dist/schemas.d.ts +10 -10
  16. package/dist/schemas.js +4 -4
  17. package/dist/schemas.js.map +1 -1
  18. package/dist/services/schedules-migration.d.ts +44 -0
  19. package/dist/services/schedules-migration.d.ts.map +1 -0
  20. package/dist/services/schedules-migration.js +308 -0
  21. package/dist/services/schedules-migration.js.map +1 -0
  22. package/dist/services/schedules-migration.test.d.ts +2 -0
  23. package/dist/services/schedules-migration.test.d.ts.map +1 -0
  24. package/dist/services/schedules-migration.test.js +471 -0
  25. package/dist/services/schedules-migration.test.js.map +1 -0
  26. package/dist/services/schedules.d.ts +42 -0
  27. package/dist/services/schedules.d.ts.map +1 -0
  28. package/dist/services/schedules.js +183 -0
  29. package/dist/services/schedules.js.map +1 -0
  30. package/dist/services/schedules.test.d.ts +2 -0
  31. package/dist/services/schedules.test.d.ts.map +1 -0
  32. package/dist/services/schedules.test.js +261 -0
  33. package/dist/services/schedules.test.js.map +1 -0
  34. package/package.json +6 -6
@@ -0,0 +1,471 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { InMemoryScheduleStore, ScheduleConflictError, ScheduleNotFoundError, } from "@polpo-ai/core/scheduling";
3
+ import { migrateLegacyMissionSchedules } from "./schedules-migration.js";
4
+ import { ScheduleService } from "./schedules.js";
5
+ const NOW = "2026-07-28T08:00:00.000Z";
6
+ function harness() {
7
+ const store = new InMemoryScheduleStore({
8
+ now: () => new Date(NOW),
9
+ });
10
+ const driver = {
11
+ register: vi.fn(async (schedule) => ({
12
+ kind: "test",
13
+ status: "registered",
14
+ providerId: `provider:${schedule.id}`,
15
+ updatedAt: NOW,
16
+ })),
17
+ update: vi.fn(async () => ({
18
+ kind: "test",
19
+ status: "registered",
20
+ updatedAt: NOW,
21
+ })),
22
+ pause: vi.fn(async () => { }),
23
+ resume: vi.fn(async () => { }),
24
+ delete: vi.fn(async () => { }),
25
+ };
26
+ return {
27
+ store,
28
+ driver,
29
+ service: new ScheduleService({
30
+ store,
31
+ driver,
32
+ now: () => new Date(NOW),
33
+ }),
34
+ };
35
+ }
36
+ describe("migrateLegacyMissionSchedules", () => {
37
+ it("imports recurring and one-time mission schedules with deterministic ids", async () => {
38
+ const state = harness();
39
+ const result = await migrateLegacyMissionSchedules({
40
+ service: state.service,
41
+ now: NOW,
42
+ missions: [
43
+ {
44
+ id: "daily-report",
45
+ status: "recurring",
46
+ schedule: "0 9 * * *",
47
+ endDate: "2026-08-30T00:00:00.000Z",
48
+ data: "must not be copied",
49
+ },
50
+ {
51
+ id: "launch",
52
+ status: "scheduled",
53
+ schedule: "2026-07-29T10:00:00Z",
54
+ },
55
+ ],
56
+ });
57
+ expect(result).toEqual({
58
+ scanned: 2,
59
+ eligible: 2,
60
+ created: 2,
61
+ existing: 0,
62
+ skipped: 0,
63
+ failed: 0,
64
+ items: [
65
+ {
66
+ missionId: "daily-report",
67
+ scheduleId: "legacy-mission:daily-report",
68
+ status: "created",
69
+ code: "CREATED",
70
+ },
71
+ {
72
+ missionId: "launch",
73
+ scheduleId: "legacy-mission:launch",
74
+ status: "created",
75
+ code: "CREATED",
76
+ },
77
+ ],
78
+ });
79
+ await expect(state.service.get("legacy-mission:daily-report"))
80
+ .resolves.toMatchObject({
81
+ timing: {
82
+ kind: "cron",
83
+ expression: "0 9 * * *",
84
+ timezone: "UTC",
85
+ },
86
+ invocation: {
87
+ surface: "legacy_mission",
88
+ missionId: "daily-report",
89
+ },
90
+ metadata: {
91
+ compatibility: {
92
+ source: "mission-v1",
93
+ recurring: true,
94
+ deprecated: true,
95
+ },
96
+ },
97
+ });
98
+ await expect(state.service.get("legacy-mission:launch"))
99
+ .resolves.toMatchObject({
100
+ timing: {
101
+ kind: "once",
102
+ at: "2026-07-29T10:00:00.000Z",
103
+ },
104
+ });
105
+ expect(JSON.stringify(await state.service.list())).not.toContain("must not be copied");
106
+ });
107
+ it("is idempotent and never re-registers an already migrated schedule", async () => {
108
+ const state = harness();
109
+ const input = {
110
+ service: state.service,
111
+ now: NOW,
112
+ missions: [{
113
+ id: "daily-report",
114
+ status: "recurring",
115
+ schedule: "0 9 * * *",
116
+ }],
117
+ };
118
+ const first = await migrateLegacyMissionSchedules(input);
119
+ const second = await migrateLegacyMissionSchedules(input);
120
+ expect(first.created).toBe(1);
121
+ expect(second).toMatchObject({
122
+ scanned: 1,
123
+ eligible: 1,
124
+ created: 0,
125
+ existing: 1,
126
+ skipped: 0,
127
+ failed: 0,
128
+ });
129
+ expect(second.items).toEqual([{
130
+ missionId: "daily-report",
131
+ scheduleId: "legacy-mission:daily-report",
132
+ status: "existing",
133
+ code: "ALREADY_MIGRATED",
134
+ }]);
135
+ expect(state.driver.register).toHaveBeenCalledTimes(1);
136
+ });
137
+ it("preserves paused state and supports dry runs without writes", async () => {
138
+ const state = harness();
139
+ const dryRun = await migrateLegacyMissionSchedules({
140
+ service: state.service,
141
+ now: NOW,
142
+ dryRun: true,
143
+ missions: [{
144
+ id: "paused-report",
145
+ status: "paused",
146
+ schedule: "0 9 * * *",
147
+ recurring: true,
148
+ }],
149
+ });
150
+ expect(dryRun).toMatchObject({
151
+ created: 0,
152
+ existing: 0,
153
+ skipped: 1,
154
+ failed: 0,
155
+ items: [{
156
+ missionId: "paused-report",
157
+ scheduleId: "legacy-mission:paused-report",
158
+ status: "skipped",
159
+ code: "DRY_RUN",
160
+ }],
161
+ });
162
+ await expect(state.service.get("legacy-mission:paused-report"))
163
+ .rejects.toMatchObject({ code: "NOT_FOUND" });
164
+ const migrated = await migrateLegacyMissionSchedules({
165
+ service: state.service,
166
+ now: NOW,
167
+ missions: [{
168
+ id: "paused-report",
169
+ status: "paused",
170
+ schedule: "0 9 * * *",
171
+ recurring: true,
172
+ }],
173
+ });
174
+ expect(migrated.created).toBe(1);
175
+ await expect(state.service.get("legacy-mission:paused-report"))
176
+ .resolves.toMatchObject({ status: "paused" });
177
+ });
178
+ it("refuses to guess recurrence for ambiguous legacy mission states", async () => {
179
+ const state = harness();
180
+ const result = await migrateLegacyMissionSchedules({
181
+ service: state.service,
182
+ now: NOW,
183
+ missions: [{
184
+ id: "paused-report",
185
+ status: "paused",
186
+ schedule: "0 9 * * *",
187
+ }],
188
+ });
189
+ expect(result).toMatchObject({
190
+ scanned: 1,
191
+ eligible: 1,
192
+ created: 0,
193
+ failed: 1,
194
+ items: [{
195
+ missionId: "paused-report",
196
+ scheduleId: "legacy-mission:paused-report",
197
+ status: "failed",
198
+ code: "AMBIGUOUS_RECURRENCE",
199
+ message: "Legacy mission recurrence cannot be inferred safely",
200
+ }],
201
+ });
202
+ expect(state.driver.register).not.toHaveBeenCalled();
203
+ });
204
+ it("skips unscheduled and terminal missions without invoking the driver", async () => {
205
+ const state = harness();
206
+ const result = await migrateLegacyMissionSchedules({
207
+ service: state.service,
208
+ now: NOW,
209
+ missions: [
210
+ { id: "no-schedule", status: "draft" },
211
+ { id: "draft", status: "draft", schedule: "0 9 * * *" },
212
+ { id: "completed", status: "completed", schedule: "0 9 * * *" },
213
+ { id: "cancelled", status: "cancelled", schedule: "0 9 * * *" },
214
+ ],
215
+ });
216
+ expect(result).toMatchObject({
217
+ scanned: 4,
218
+ eligible: 0,
219
+ created: 0,
220
+ existing: 0,
221
+ skipped: 4,
222
+ failed: 0,
223
+ });
224
+ expect(result.items.map((item) => item.code)).toEqual([
225
+ "NO_SCHEDULE",
226
+ "INACTIVE_MISSION",
227
+ "INACTIVE_MISSION",
228
+ "INACTIVE_MISSION",
229
+ ]);
230
+ expect(state.driver.register).not.toHaveBeenCalled();
231
+ });
232
+ it("reports malformed records without aborting the remaining batch or leaking payloads", async () => {
233
+ const state = harness();
234
+ const result = await migrateLegacyMissionSchedules({
235
+ service: state.service,
236
+ now: NOW,
237
+ missions: [
238
+ null,
239
+ {
240
+ id: "bad-expression",
241
+ status: "scheduled",
242
+ schedule: "super-secret-invalid-expression",
243
+ data: "private mission content",
244
+ },
245
+ {
246
+ id: "good",
247
+ status: "recurring",
248
+ schedule: "0 9 * * *",
249
+ },
250
+ ],
251
+ });
252
+ expect(result).toMatchObject({
253
+ scanned: 3,
254
+ eligible: 2,
255
+ created: 1,
256
+ existing: 0,
257
+ skipped: 0,
258
+ failed: 2,
259
+ });
260
+ expect(result.items).toEqual([
261
+ {
262
+ missionId: "<invalid>",
263
+ status: "failed",
264
+ code: "INVALID_MISSION",
265
+ message: "Legacy mission record is invalid",
266
+ },
267
+ {
268
+ missionId: "bad-expression",
269
+ scheduleId: "legacy-mission:bad-expression",
270
+ status: "failed",
271
+ code: "INVALID_LEGACY_SCHEDULE",
272
+ message: "Legacy mission schedule is invalid",
273
+ },
274
+ {
275
+ missionId: "good",
276
+ scheduleId: "legacy-mission:good",
277
+ status: "created",
278
+ code: "CREATED",
279
+ },
280
+ ]);
281
+ const serialized = JSON.stringify(result);
282
+ expect(serialized).not.toContain("super-secret-invalid-expression");
283
+ expect(serialized).not.toContain("private mission content");
284
+ });
285
+ it("does not overwrite deterministic-id collisions", async () => {
286
+ const state = harness();
287
+ await state.service.create({
288
+ id: "legacy-mission:mission-1",
289
+ timing: {
290
+ kind: "cron",
291
+ expression: "30 12 * * *",
292
+ timezone: "UTC",
293
+ },
294
+ invocation: {
295
+ surface: "agent",
296
+ agentName: "other-agent",
297
+ input: { prompt: "Keep this schedule" },
298
+ },
299
+ });
300
+ const result = await migrateLegacyMissionSchedules({
301
+ service: state.service,
302
+ now: NOW,
303
+ missions: [{
304
+ id: "mission-1",
305
+ status: "recurring",
306
+ schedule: "0 9 * * *",
307
+ }],
308
+ });
309
+ expect(result).toMatchObject({
310
+ scanned: 1,
311
+ eligible: 1,
312
+ created: 0,
313
+ existing: 0,
314
+ skipped: 0,
315
+ failed: 1,
316
+ items: [{
317
+ missionId: "mission-1",
318
+ scheduleId: "legacy-mission:mission-1",
319
+ status: "failed",
320
+ code: "ID_CONFLICT",
321
+ message: "Schedule id is already used by a different definition",
322
+ }],
323
+ });
324
+ await expect(state.service.get("legacy-mission:mission-1"))
325
+ .resolves.toMatchObject({
326
+ invocation: {
327
+ surface: "agent",
328
+ agentName: "other-agent",
329
+ },
330
+ });
331
+ });
332
+ it("reports definition drift instead of silently accepting stale migrated state", async () => {
333
+ const state = harness();
334
+ await migrateLegacyMissionSchedules({
335
+ service: state.service,
336
+ now: NOW,
337
+ missions: [{
338
+ id: "mission-1",
339
+ status: "recurring",
340
+ schedule: "0 9 * * *",
341
+ }],
342
+ });
343
+ const result = await migrateLegacyMissionSchedules({
344
+ service: state.service,
345
+ now: NOW,
346
+ missions: [{
347
+ id: "mission-1",
348
+ status: "recurring",
349
+ schedule: "30 10 * * *",
350
+ }],
351
+ });
352
+ expect(result).toMatchObject({
353
+ created: 0,
354
+ existing: 0,
355
+ failed: 1,
356
+ items: [{
357
+ missionId: "mission-1",
358
+ scheduleId: "legacy-mission:mission-1",
359
+ status: "failed",
360
+ code: "DEFINITION_CONFLICT",
361
+ message: "Migrated schedule differs from the legacy definition",
362
+ }],
363
+ });
364
+ await expect(state.service.get("legacy-mission:mission-1"))
365
+ .resolves.toMatchObject({
366
+ timing: { expression: "0 9 * * *" },
367
+ });
368
+ });
369
+ it("isolates schedule-store read failures and continues the batch", async () => {
370
+ const state = harness();
371
+ const originalGet = state.service.get.bind(state.service);
372
+ vi.spyOn(state.service, "get").mockImplementation(async (id) => {
373
+ if (id === "legacy-mission:unreadable") {
374
+ throw new Error("database password appeared in provider failure");
375
+ }
376
+ return originalGet(id);
377
+ });
378
+ const result = await migrateLegacyMissionSchedules({
379
+ service: state.service,
380
+ now: NOW,
381
+ missions: [
382
+ {
383
+ id: "unreadable",
384
+ status: "recurring",
385
+ schedule: "0 9 * * *",
386
+ },
387
+ {
388
+ id: "good",
389
+ status: "recurring",
390
+ schedule: "0 10 * * *",
391
+ },
392
+ ],
393
+ });
394
+ expect(result).toMatchObject({
395
+ scanned: 2,
396
+ eligible: 2,
397
+ created: 1,
398
+ failed: 1,
399
+ items: [
400
+ {
401
+ missionId: "unreadable",
402
+ scheduleId: "legacy-mission:unreadable",
403
+ status: "failed",
404
+ code: "READ_FAILED",
405
+ message: "Existing schedule could not be inspected",
406
+ },
407
+ {
408
+ missionId: "good",
409
+ scheduleId: "legacy-mission:good",
410
+ status: "created",
411
+ code: "CREATED",
412
+ },
413
+ ],
414
+ });
415
+ expect(JSON.stringify(result)).not.toContain("database password");
416
+ });
417
+ it("accepts async mission sources and normalizes identifiers", async () => {
418
+ const state = harness();
419
+ async function* missions() {
420
+ yield {
421
+ id: " mission-1 ",
422
+ status: "recurring",
423
+ schedule: "0 9 * * *",
424
+ };
425
+ await Promise.resolve();
426
+ yield {
427
+ id: "mission-2",
428
+ status: "scheduled",
429
+ schedule: "2026-07-29T10:00:00Z",
430
+ };
431
+ }
432
+ const result = await migrateLegacyMissionSchedules({
433
+ service: state.service,
434
+ now: NOW,
435
+ missions: missions(),
436
+ });
437
+ expect(result.created).toBe(2);
438
+ expect(result.items.map((item) => item.scheduleId)).toEqual([
439
+ "legacy-mission:mission-1",
440
+ "legacy-mission:mission-2",
441
+ ]);
442
+ });
443
+ it("handles create races as idempotent success only for the same legacy mission", async () => {
444
+ const state = harness();
445
+ const originalCreate = state.service.create.bind(state.service);
446
+ const get = vi.spyOn(state.service, "get")
447
+ .mockRejectedValueOnce(new ScheduleNotFoundError("Schedule", "legacy-mission:mission-1"));
448
+ const create = vi.spyOn(state.service, "create")
449
+ .mockImplementationOnce(async (input) => {
450
+ get.mockRestore();
451
+ await originalCreate(input);
452
+ throw new ScheduleConflictError("race");
453
+ });
454
+ const result = await migrateLegacyMissionSchedules({
455
+ service: state.service,
456
+ now: NOW,
457
+ missions: [{
458
+ id: "mission-1",
459
+ status: "recurring",
460
+ schedule: "0 9 * * *",
461
+ }],
462
+ });
463
+ expect(result).toMatchObject({
464
+ created: 0,
465
+ existing: 1,
466
+ failed: 0,
467
+ });
468
+ create.mockRestore();
469
+ });
470
+ });
471
+ //# sourceMappingURL=schedules-migration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules-migration.test.js","sourceRoot":"","sources":["../../src/services/schedules-migration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type CreateScheduleInput, type Schedule, type ScheduleDriver, type ScheduleFilter, type ScheduleMutationOptions, type ScheduleRun, type ScheduleRunFilter, type ScheduleStore, type UpdateScheduleInput } from "@polpo-ai/core/scheduling";
2
+ export type ScheduleServiceErrorCode = "INVALID_REQUEST" | "INVALID_STATE" | "NOT_FOUND";
3
+ export declare class ScheduleServiceError extends Error {
4
+ readonly code: ScheduleServiceErrorCode;
5
+ readonly retryable: boolean;
6
+ constructor(code: ScheduleServiceErrorCode, message: string, retryable: boolean, options?: ErrorOptions);
7
+ }
8
+ export interface ScheduleServiceOptions {
9
+ store: ScheduleStore;
10
+ driver: ScheduleDriver;
11
+ now?: () => Date | string;
12
+ onRunCreated?: (run: ScheduleRun) => void | Promise<void>;
13
+ }
14
+ export interface ManualScheduleTriggerInput {
15
+ idempotencyKey: string;
16
+ }
17
+ /**
18
+ * Host-neutral application service for schedule lifecycle and durable runs.
19
+ *
20
+ * Provider registration failures are persisted on the Schedule instead of
21
+ * rolling back local truth. Reconciliation can then repair external state.
22
+ */
23
+ export declare class ScheduleService {
24
+ private readonly store;
25
+ private readonly driver;
26
+ private readonly nowProvider;
27
+ private readonly onRunCreated?;
28
+ constructor(options: ScheduleServiceOptions);
29
+ list(filter?: ScheduleFilter): Promise<Schedule[]>;
30
+ get(id: string): Promise<Schedule>;
31
+ create(input: CreateScheduleInput): Promise<Schedule>;
32
+ update(id: string, patch: UpdateScheduleInput, options?: ScheduleMutationOptions): Promise<Schedule>;
33
+ pause(id: string, options?: ScheduleMutationOptions): Promise<Schedule>;
34
+ resume(id: string, options?: ScheduleMutationOptions): Promise<Schedule>;
35
+ delete(id: string, options?: ScheduleMutationOptions): Promise<Schedule>;
36
+ listRuns(scheduleId: string, filter?: Omit<ScheduleRunFilter, "scheduleId">): Promise<ScheduleRun[]>;
37
+ trigger(scheduleId: string, input: ManualScheduleTriggerInput): Promise<ScheduleRun>;
38
+ private registerDriver;
39
+ private applyDriverLifecycle;
40
+ private now;
41
+ }
42
+ //# sourceMappingURL=schedules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/services/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,wBAAwB,GAChC,iBAAiB,GACjB,eAAe,GACf,WAAW,CAAC;AAEhB,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,IAAI,EAAE,wBAAwB;IAEvC,QAAQ,CAAC,SAAS,EAAE,OAAO;gBAFlB,IAAI,EAAE,wBAAwB,EACvC,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE,YAAY;CAKzB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAyC;gBAE3D,OAAO,EAAE,sBAAsB;IAS3C,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI5C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAOlC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoBrD,MAAM,CACV,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,mBAAmB,EAC1B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,QAAQ,CAAC;IAqCd,KAAK,CACT,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,QAAQ,CAAC;IASd,MAAM,CACV,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,QAAQ,CAAC;IASd,MAAM,CACV,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,QAAQ,CAAC;IAQd,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAM,GACjD,OAAO,CAAC,WAAW,EAAE,CAAC;IAKnB,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,WAAW,CAAC;YA6BT,cAAc;YAgBd,oBAAoB;IAmClC,OAAO,CAAC,GAAG;CAWZ"}