@monotykamary/localterm-server 1.17.2 → 1.18.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.
Files changed (53) hide show
  1. package/dist/automation-scheduler.d.ts.map +1 -1
  2. package/dist/automation-scheduler.js +8 -2
  3. package/dist/automation-scheduler.js.map +1 -1
  4. package/dist/automation-store.d.ts +5 -2
  5. package/dist/automation-store.d.ts.map +1 -1
  6. package/dist/automation-store.js +125 -13
  7. package/dist/automation-store.js.map +1 -1
  8. package/dist/cdp/cdp-client.d.ts +59 -0
  9. package/dist/cdp/cdp-client.d.ts.map +1 -0
  10. package/dist/cdp/cdp-client.js +207 -0
  11. package/dist/cdp/cdp-client.js.map +1 -0
  12. package/dist/cdp/detect-chromium.d.ts +38 -0
  13. package/dist/cdp/detect-chromium.d.ts.map +1 -0
  14. package/dist/cdp/detect-chromium.js +97 -0
  15. package/dist/cdp/detect-chromium.js.map +1 -0
  16. package/dist/cdp/open-background-tab.d.ts +33 -0
  17. package/dist/cdp/open-background-tab.d.ts.map +1 -0
  18. package/dist/cdp/open-background-tab.js +98 -0
  19. package/dist/cdp/open-background-tab.js.map +1 -0
  20. package/dist/constants.d.ts +8 -1
  21. package/dist/constants.d.ts.map +1 -1
  22. package/dist/constants.js +26 -1
  23. package/dist/constants.js.map +1 -1
  24. package/dist/heartbeat-store.d.ts +7 -0
  25. package/dist/heartbeat-store.d.ts.map +1 -0
  26. package/dist/heartbeat-store.js +45 -0
  27. package/dist/heartbeat-store.js.map +1 -0
  28. package/dist/index.d.ts +6 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +155 -21
  31. package/dist/index.js.map +1 -1
  32. package/dist/protocol.d.ts +4 -3
  33. package/dist/protocol.d.ts.map +1 -1
  34. package/dist/protocol.js +3 -2
  35. package/dist/protocol.js.map +1 -1
  36. package/dist/schemas.d.ts +626 -16
  37. package/dist/schemas.d.ts.map +1 -1
  38. package/dist/schemas.js +179 -14
  39. package/dist/schemas.js.map +1 -1
  40. package/dist/types.d.ts +8 -1
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/utils/compile-schedule.d.ts +6 -0
  43. package/dist/utils/compile-schedule.d.ts.map +1 -0
  44. package/dist/utils/compile-schedule.js +173 -0
  45. package/dist/utils/compile-schedule.js.map +1 -0
  46. package/dist/utils/compute-next-automation-run-at.d.ts.map +1 -1
  47. package/dist/utils/compute-next-automation-run-at.js +14 -3
  48. package/dist/utils/compute-next-automation-run-at.js.map +1 -1
  49. package/dist/utils/reconcile-downtime.d.ts +3 -0
  50. package/dist/utils/reconcile-downtime.d.ts.map +1 -0
  51. package/dist/utils/reconcile-downtime.js +25 -0
  52. package/dist/utils/reconcile-downtime.js.map +1 -0
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,YAAY;;;kBAKd,CAAC;AAmBZ,eAAO,MAAM,2BAA2B;;;;;;;;;4BAGtC,CAAC;AAuDH,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;kBAQtB,CAAC;AASZ,eAAO,MAAM,6BAA6B;;;;;;EAMxC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;kBAOzB,CAAC;AAcZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;kBAAqC,CAAC;AAEnE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;kBAE7B,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;kBAKvB,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;;kBAQ7B,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;;kBAQ7B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;kBAE/B,CAAC;AASZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAUtC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;kBAanB,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;kBAKvB,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,eAAO,MAAM,YAAY;;;kBAKd,CAAC;AAmBZ,eAAO,MAAM,2BAA2B;;;;;;;;;4BAGtC,CAAC;AAuDH,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;kBAQtB,CAAC;AAiCZ,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA0DnC,CAAC;AAKH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAG9B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;4BAQnC,CAAC;AAIH,eAAO,MAAM,yBAAyB;;;EAAiC,CAAC;AAExE,eAAO,MAAM,yBAAyB;;;;;;;EAOpC,CAAC;AAGH,eAAO,MAAM,6BAA6B;;;;;;;EAA4B,CAAC;AAEvE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;kBAgB3B,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;;;;;;;;;;;kBAOzB,CAAC;AAmBZ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA2C,CAAC;AAIzE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAO7B,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAKvB,CAAC;AAYZ,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;kBAYpB,CAAC;AAEZ,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;kBAKzB,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAS7B,CAAC;AAEZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAS7B,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;kBAE5B,CAAC;AAEZ,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE/B,CAAC;AASZ,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAUtC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;kBAanB,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;kBAKvB,CAAC"}
package/dist/schemas.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { AUTOMATIONS_FILE_VERSION, MAX_AUTOMATION_COMMAND_LENGTH, MAX_AUTOMATION_NAME_LENGTH, MAX_COLS, MAX_CRON_EXPRESSION_LENGTH, MAX_FOREGROUND_LENGTH, MAX_INPUT_BYTES, MAX_NOTIFICATION_LENGTH, MAX_OUTPUT_BYTES, MAX_ROWS, MAX_TITLE_LENGTH, } from "./constants.js";
2
+ import { AUTOMATION_RUN_HISTORY_CAP, AUTOMATION_RUN_LIMIT_MAX, AUTOMATIONS_FILE_VERSION, MAX_AUTOMATION_COMMAND_LENGTH, MAX_AUTOMATION_NAME_LENGTH, MAX_AUTOMATION_TIMES_PER_DAY, MAX_COLS, MAX_CRON_EXPRESSION_LENGTH, MAX_FOREGROUND_LENGTH, MAX_INPUT_BYTES, MAX_NOTIFICATION_LENGTH, MAX_OUTPUT_BYTES, MAX_ROWS, MAX_TITLE_LENGTH, } from "./constants.js";
3
3
  export const healthSchema = z
4
4
  .object({
5
5
  ok: z.boolean(),
@@ -94,13 +94,133 @@ const gitDiffSummaryMessageSchema = z
94
94
  summary: gitDiffSummarySchema,
95
95
  })
96
96
  .strict();
97
- export const automationLastRunStatusSchema = z.enum([
98
- "launched",
99
- "running",
100
- "completed",
101
- "failed",
102
- "missed",
97
+ // ----------------------------------------------------------------------------
98
+ // Automations (file format v2).
99
+ //
100
+ // A v2 automation stores a STRUCTURED schedule (friendly presets + a raw-cron
101
+ // escape hatch) instead of a bare cron string, a run-count limit + lifecycle,
102
+ // and a capped run-history array. The cron engine stays the single timing
103
+ // authority: every schedule kind compiles to one (or, for "timesOfDay",
104
+ // several) 5-field cron strings via utils/compile-schedule.ts, computed on the
105
+ // fly — no derived cron is persisted. The wire shape re-derives `cron` and the
106
+ // legacy `lastRun` for back-compat.
107
+ // ----------------------------------------------------------------------------
108
+ // Bounds mirror cron-expression.ts exactly (minute 0-59, hour 0-23, Vixie
109
+ // day-of-week 0=Sun..6=Sat, day-of-month 1-31).
110
+ const scheduleMinuteSchema = z.number().int().min(0).max(59);
111
+ const scheduleHourSchema = z.number().int().min(0).max(23);
112
+ const scheduleDayOfWeekSchema = z.number().int().min(0).max(6);
113
+ const scheduleDayOfMonthSchema = z.number().int().min(1).max(31);
114
+ const scheduleStepMinutesSchema = z.number().int().min(1).max(59);
115
+ const scheduleStepHoursSchema = z.number().int().min(1).max(23);
116
+ const scheduleTimeOfDaySchema = z
117
+ .object({ hour: scheduleHourSchema, minute: scheduleMinuteSchema })
118
+ .strict();
119
+ export const automationScheduleSchema = z.discriminatedUnion("kind", [
120
+ // "<minute> * * * *"
121
+ z.object({ kind: z.literal("hourly"), minute: scheduleMinuteSchema }).strict(),
122
+ // "<minute> <hour> * * *"
123
+ z
124
+ .object({ kind: z.literal("daily"), hour: scheduleHourSchema, minute: scheduleMinuteSchema })
125
+ .strict(),
126
+ // Multiple times a day -> one cron per distinct time.
127
+ z
128
+ .object({
129
+ kind: z.literal("timesOfDay"),
130
+ times: z.array(scheduleTimeOfDaySchema).min(1).max(MAX_AUTOMATION_TIMES_PER_DAY),
131
+ })
132
+ .strict(),
133
+ // Weekdays/weekends -> "<minute> <hour> * * 1-5" / "<minute> <hour> * * 0,6"
134
+ z
135
+ .object({
136
+ kind: z.literal("weekdaysPreset"),
137
+ preset: z.enum(["weekdays", "weekends"]),
138
+ hour: scheduleHourSchema,
139
+ minute: scheduleMinuteSchema,
140
+ })
141
+ .strict(),
142
+ // Specific weekdays -> "<minute> <hour> * * <sorted dow list>"
143
+ z
144
+ .object({
145
+ kind: z.literal("weekly"),
146
+ daysOfWeek: z.array(scheduleDayOfWeekSchema).min(1).max(7),
147
+ hour: scheduleHourSchema,
148
+ minute: scheduleMinuteSchema,
149
+ })
150
+ .strict(),
151
+ // Specific days of month -> "<minute> <hour> <sorted dom list> * *"
152
+ z
153
+ .object({
154
+ kind: z.literal("monthly"),
155
+ daysOfMonth: z.array(scheduleDayOfMonthSchema).min(1).max(31),
156
+ hour: scheduleHourSchema,
157
+ minute: scheduleMinuteSchema,
158
+ })
159
+ .strict(),
160
+ // "*/<step> * * * *"
161
+ z.object({ kind: z.literal("everyNMinutes"), step: scheduleStepMinutesSchema }).strict(),
162
+ // "<minute> */<step> * * *"
163
+ z
164
+ .object({
165
+ kind: z.literal("everyNHours"),
166
+ step: scheduleStepHoursSchema,
167
+ minute: scheduleMinuteSchema,
168
+ })
169
+ .strict(),
170
+ // Advanced escape hatch — raw 5-field cron, validated at the route layer.
171
+ z
172
+ .object({
173
+ kind: z.literal("cron"),
174
+ expression: z.string().min(1).max(MAX_CRON_EXPRESSION_LENGTH),
175
+ })
176
+ .strict(),
177
+ ]);
178
+ // Create/update accept either the structured schedule or a legacy bare cron
179
+ // string (coerced to {kind:"cron"} at the store) so existing curl/skill
180
+ // consumers keep working.
181
+ export const scheduleInputSchema = z.union([
182
+ automationScheduleSchema,
183
+ z.string().min(1).max(MAX_CRON_EXPRESSION_LENGTH),
184
+ ]);
185
+ export const automationRunLimitSchema = z.discriminatedUnion("kind", [
186
+ z.object({ kind: z.literal("forever") }).strict(),
187
+ z
188
+ .object({
189
+ kind: z.literal("count"),
190
+ max: z.number().int().min(1).max(AUTOMATION_RUN_LIMIT_MAX),
191
+ })
192
+ .strict(),
103
193
  ]);
194
+ // "finished" = a count limit has been reached. Terminal and orthogonal to
195
+ // `enabled`; cleared only by POST /:id/reset.
196
+ export const automationLifecycleSchema = z.enum(["active", "finished"]);
197
+ export const automationRunStatusSchema = z.enum([
198
+ "launched", // tab open requested, awaiting a WS claim
199
+ "running", // a tab claimed the run and the command is executing
200
+ "completed", // command finished with exit code 0
201
+ "failed", // command finished with a non-zero exit code
202
+ "missed", // launched but no tab claimed it before it expired (daemon WAS alive)
203
+ "skipped", // scheduled occurrence inside a daemon-downtime window; never launched
204
+ ]);
205
+ // Retained for the derived wire `lastRun`; status widened to include "skipped".
206
+ export const automationLastRunStatusSchema = automationRunStatusSchema;
207
+ export const automationRunRecordSchema = z
208
+ .object({
209
+ runId: z.string().min(1),
210
+ // The intended minute boundary (ms). Equals startedAt for manual runs;
211
+ // stable identity/sort key.
212
+ scheduledFor: z.number().int().nonnegative(),
213
+ // Launch-attempt time; null for a "skipped" (never-launched) run.
214
+ startedAt: z.number().int().nonnegative().nullable(),
215
+ // Terminal time; null while launched/running.
216
+ finishedAt: z.number().int().nonnegative().nullable(),
217
+ status: automationRunStatusSchema,
218
+ exitCode: z.number().int().nullable(),
219
+ trigger: z.enum(["schedule", "manual"]),
220
+ // false for manual + skipped; true for scheduled launches.
221
+ countsTowardLimit: z.boolean(),
222
+ })
223
+ .strict();
104
224
  export const automationLastRunSchema = z
105
225
  .object({
106
226
  runId: z.string().min(1),
@@ -109,20 +229,32 @@ export const automationLastRunSchema = z
109
229
  exitCode: z.number().int().nullable(),
110
230
  })
111
231
  .strict();
112
- const automationShape = {
232
+ // Stored shape (automations.json v2). No derived fields (cron/lastRun/nextRunAt
233
+ // live only on the wire).
234
+ const automationStoredShape = {
113
235
  id: z.string().min(1),
114
236
  name: z.string().min(1).max(MAX_AUTOMATION_NAME_LENGTH),
115
- schedule: z.string().min(1).max(MAX_CRON_EXPRESSION_LENGTH),
237
+ schedule: automationScheduleSchema,
116
238
  cwd: z.string().min(1),
117
239
  command: z.string().min(1).max(MAX_AUTOMATION_COMMAND_LENGTH),
118
240
  enabled: z.boolean(),
241
+ limit: automationRunLimitSchema,
242
+ runCount: z.number().int().nonnegative(),
243
+ lifecycle: automationLifecycleSchema,
244
+ runs: z.array(automationRunRecordSchema).max(AUTOMATION_RUN_HISTORY_CAP),
119
245
  createdAt: z.number().int().nonnegative(),
120
246
  updatedAt: z.number().int().nonnegative(),
121
- lastRun: automationLastRunSchema.nullable(),
122
247
  };
123
- export const automationSchema = z.object(automationShape).strict();
248
+ export const automationSchema = z.object(automationStoredShape).strict();
249
+ // Wire shape: stored fields + derived nextRunAt, cron (first compiled cron,
250
+ // for display/back-compat), and lastRun (projection of runs[0]).
124
251
  export const automationWithNextRunSchema = z
125
- .object({ ...automationShape, nextRunAt: z.number().int().nullable() })
252
+ .object({
253
+ ...automationStoredShape,
254
+ nextRunAt: z.number().int().nullable(),
255
+ cron: z.string().min(1),
256
+ lastRun: automationLastRunSchema.nullable(),
257
+ })
126
258
  .strict();
127
259
  export const automationsFileSchema = z
128
260
  .object({
@@ -130,24 +262,57 @@ export const automationsFileSchema = z
130
262
  automations: z.array(automationSchema),
131
263
  })
132
264
  .strict();
133
- export const createAutomationInputSchema = z
265
+ // Frozen v1 file shape — read only by the v1->v2 migrator in automation-store.
266
+ const automationV1LastRunSchema = z
267
+ .object({
268
+ runId: z.string().min(1),
269
+ at: z.number().int().nonnegative(),
270
+ status: z.enum(["launched", "running", "completed", "failed", "missed"]),
271
+ exitCode: z.number().int().nullable(),
272
+ })
273
+ .strict();
274
+ export const automationV1Schema = z
134
275
  .object({
276
+ id: z.string().min(1),
135
277
  name: z.string().min(1).max(MAX_AUTOMATION_NAME_LENGTH),
136
278
  schedule: z.string().min(1).max(MAX_CRON_EXPRESSION_LENGTH),
137
279
  cwd: z.string().min(1),
138
280
  command: z.string().min(1).max(MAX_AUTOMATION_COMMAND_LENGTH),
281
+ enabled: z.boolean(),
282
+ createdAt: z.number().int().nonnegative(),
283
+ updatedAt: z.number().int().nonnegative(),
284
+ lastRun: automationV1LastRunSchema.nullable(),
285
+ })
286
+ .strict();
287
+ export const automationsFileV1Schema = z
288
+ .object({
289
+ version: z.literal(1),
290
+ automations: z.array(automationV1Schema),
291
+ })
292
+ .strict();
293
+ export const createAutomationInputSchema = z
294
+ .object({
295
+ name: z.string().min(1).max(MAX_AUTOMATION_NAME_LENGTH),
296
+ schedule: scheduleInputSchema,
297
+ cwd: z.string().min(1),
298
+ command: z.string().min(1).max(MAX_AUTOMATION_COMMAND_LENGTH),
139
299
  enabled: z.boolean().optional(),
300
+ limit: automationRunLimitSchema.optional(),
140
301
  })
141
302
  .strict();
142
303
  export const updateAutomationInputSchema = z
143
304
  .object({
144
305
  name: z.string().min(1).max(MAX_AUTOMATION_NAME_LENGTH).optional(),
145
- schedule: z.string().min(1).max(MAX_CRON_EXPRESSION_LENGTH).optional(),
306
+ schedule: scheduleInputSchema.optional(),
146
307
  cwd: z.string().min(1).optional(),
147
308
  command: z.string().min(1).max(MAX_AUTOMATION_COMMAND_LENGTH).optional(),
148
309
  enabled: z.boolean().optional(),
310
+ limit: automationRunLimitSchema.optional(),
149
311
  })
150
312
  .strict();
313
+ export const resetAutomationInputSchema = z
314
+ .object({ clearHistory: z.boolean().optional() })
315
+ .strict();
151
316
  export const automationsListResponseSchema = z
152
317
  .object({ automations: z.array(automationWithNextRunSchema) })
153
318
  .strict();
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,0BAA0B,EAC1B,4BAA4B,EAC5B,QAAQ,EACR,0BAA0B,EAC1B,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,kBAAkB,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACvD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACtE,kBAAkB;IAClB,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC;CACvC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,iBAAiB,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,kBAAkB,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,oBAAoB,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACnC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC;CACxC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACvB,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAC1D,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,yBAAyB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC;CACrD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5C,UAAU;IACV,OAAO;IACP,SAAS;IACT,SAAS;IACT,WAAW;CACZ,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,2BAA2B,GAAG,CAAC;KAClC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACnC,OAAO,EAAE,oBAAoB;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,+EAA+E;AAC/E,gCAAgC;AAChC,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,wEAAwE;AACxE,+EAA+E;AAC/E,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E,0EAA0E;AAC1E,gDAAgD;AAChD,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7D,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3D,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjE,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClE,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,MAAM,uBAAuB,GAAG,CAAC;KAC9B,MAAM,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;KAClE,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACnE,qBAAqB;IACrB,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC9E,0BAA0B;IAC1B,CAAC;SACE,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;SAC5F,MAAM,EAAE;IACX,sDAAsD;IACtD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC;KACjF,CAAC;SACD,MAAM,EAAE;IACX,6EAA6E;IAC7E,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACjC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACxC,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,oBAAoB;KAC7B,CAAC;SACD,MAAM,EAAE;IACX,+DAA+D;IAC/D,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,oBAAoB;KAC7B,CAAC;SACD,MAAM,EAAE;IACX,oEAAoE;IACpE,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,oBAAoB;KAC7B,CAAC;SACD,MAAM,EAAE;IACX,qBAAqB;IACrB,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE;IACxF,4BAA4B;IAC5B,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;QAC9B,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,oBAAoB;KAC7B,CAAC;SACD,MAAM,EAAE;IACX,0EAA0E;IAC1E,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;KAC9D,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAEH,4EAA4E;AAC5E,wEAAwE;AACxE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC;IACzC,wBAAwB;IACxB,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACnE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;IACjD,CAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC;KAC3D,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAEH,0EAA0E;AAC1E,8CAA8C;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAExE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,UAAU,EAAE,0CAA0C;IACtD,SAAS,EAAE,qDAAqD;IAChE,WAAW,EAAE,oCAAoC;IACjD,QAAQ,EAAE,6CAA6C;IACvD,QAAQ,EAAE,sEAAsE;IAChF,SAAS,EAAE,uEAAuE;CACnF,CAAC,CAAC;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;AAEvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,uEAAuE;IACvE,4BAA4B;IAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC5C,kEAAkE;IAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACpD,8CAA8C;IAC9C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACrD,MAAM,EAAE,yBAAyB;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvC,2DAA2D;IAC3D,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE;CAC/B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAClC,MAAM,EAAE,6BAA6B;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,gFAAgF;AAChF,0BAA0B;AAC1B,MAAM,qBAAqB,GAAG;IAC5B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACvD,QAAQ,EAAE,wBAAwB;IAClC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACxC,SAAS,EAAE,yBAAyB;IACpC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,MAAM,EAAE,CAAC;AAEzE,4EAA4E;AAC5E,iEAAiE;AACjE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,GAAG,qBAAqB;IACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,uBAAuB,CAAC,QAAQ,EAAE;CAC5C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACvC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,+EAA+E;AAC/E,MAAM,yBAAyB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAC3D,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,OAAO,EAAE,yBAAyB,CAAC,QAAQ,EAAE;CAC9C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC;KACrC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;CACzC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACvD,QAAQ,EAAE,mBAAmB;IAC7B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC;KACzC,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;IAClE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,QAAQ,EAAE;IACxE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,wBAAwB,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;KAChD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC;KAC3C,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,CAAC;KAC7D,MAAM,EAAE,CAAC;AAEZ,MAAM,wBAAwB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;CAClD,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACtE,mBAAmB;IACnB,iBAAiB;IACjB,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,uBAAuB;IACvB,yBAAyB;IACzB,2BAA2B;IAC3B,wBAAwB;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,MAAM,EAAE,uBAAuB;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,uEAAuE;IACvE,mEAAmE;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;CAC1B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;CAClC,CAAC;KACD,MAAM,EAAE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { z } from "zod";
2
- import type { automationLastRunSchema, automationLastRunStatusSchema, automationSchema, automationWithNextRunSchema, clientToServerMessageSchema, createAutomationInputSchema, gitDiffFileSchema, gitDiffFileStatusSchema, gitDiffResponseSchema, gitDiffSummarySchema, serverToClientMessageSchema, updateAutomationInputSchema } from "./schemas.js";
2
+ import type { automationLastRunSchema, automationLastRunStatusSchema, automationLifecycleSchema, automationRunLimitSchema, automationRunRecordSchema, automationRunStatusSchema, automationScheduleSchema, automationSchema, automationV1Schema, automationWithNextRunSchema, clientToServerMessageSchema, createAutomationInputSchema, gitDiffFileSchema, gitDiffFileStatusSchema, gitDiffResponseSchema, gitDiffSummarySchema, resetAutomationInputSchema, serverToClientMessageSchema, updateAutomationInputSchema } from "./schemas.js";
3
3
  export interface SpawnPtyInput {
4
4
  cols?: number;
5
5
  rows?: number;
@@ -19,10 +19,17 @@ export type ClientToServerMessage = z.infer<typeof clientToServerMessageSchema>;
19
19
  export type ServerToClientMessage = z.infer<typeof serverToClientMessageSchema>;
20
20
  export type AutomationLastRunStatus = z.infer<typeof automationLastRunStatusSchema>;
21
21
  export type AutomationLastRun = z.infer<typeof automationLastRunSchema>;
22
+ export type AutomationSchedule = z.infer<typeof automationScheduleSchema>;
23
+ export type AutomationRunLimit = z.infer<typeof automationRunLimitSchema>;
24
+ export type AutomationLifecycle = z.infer<typeof automationLifecycleSchema>;
25
+ export type AutomationRunStatus = z.infer<typeof automationRunStatusSchema>;
26
+ export type AutomationRunRecord = z.infer<typeof automationRunRecordSchema>;
22
27
  export type Automation = z.infer<typeof automationSchema>;
28
+ export type AutomationV1 = z.infer<typeof automationV1Schema>;
23
29
  export type AutomationWithNextRun = z.infer<typeof automationWithNextRunSchema>;
24
30
  export type CreateAutomationInput = z.infer<typeof createAutomationInputSchema>;
25
31
  export type UpdateAutomationInput = z.infer<typeof updateAutomationInputSchema>;
32
+ export type ResetAutomationInput = z.infer<typeof resetAutomationInputSchema>;
26
33
  export type GitDiffFileStatus = z.infer<typeof gitDiffFileStatusSchema>;
27
34
  export type GitDiffSummary = z.infer<typeof gitDiffSummarySchema>;
28
35
  export type GitDiffFile = z.infer<typeof gitDiffFileSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,gBAAgB,EAChB,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { AutomationSchedule } from "../types.js";
2
+ export declare const compileScheduleAll: (schedule: AutomationSchedule) => string[];
3
+ export declare const compileSchedule: (schedule: AutomationSchedule) => string;
4
+ export declare const recognizePreset: (expression: string) => AutomationSchedule | null;
5
+ export declare const normalizeScheduleInput: (input: AutomationSchedule | string) => AutomationSchedule;
6
+ //# sourceMappingURL=compile-schedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-schedule.d.ts","sourceRoot":"","sources":["../../src/utils/compile-schedule.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAYtD,eAAO,MAAM,kBAAkB,GAAI,UAAU,kBAAkB,KAAG,MAAM,EA6CvE,CAAC;AAIF,eAAO,MAAM,eAAe,GAAI,UAAU,kBAAkB,KAAG,MAC9B,CAAC;AAuFlC,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,KAAG,kBAAkB,GAAG,IAWzE,CAAC;AAKF,eAAO,MAAM,sBAAsB,GAAI,OAAO,kBAAkB,GAAG,MAAM,KAAG,kBAI3E,CAAC"}
@@ -0,0 +1,173 @@
1
+ // The cron engine is the single timing authority. Every structured schedule
2
+ // kind compiles here to one — or, for "timesOfDay", several — 5-field cron
3
+ // strings that the scheduler and next-run util parse directly. Nothing derived
4
+ // is persisted; this runs on the fly.
5
+ //
6
+ // recognizePreset() goes the other way (a raw cron string -> a friendly preset)
7
+ // and is the v1->v2 migration's and the bare-string API's only path to friendly
8
+ // labels. It is provably lossless: a candidate preset is accepted ONLY if it
9
+ // recompiles to a cron whose parse is set-equal to the original. Any divergence
10
+ // (or an unparseable string) falls back to {kind:"cron"} byte-for-byte, so the
11
+ // firing schedule never changes.
12
+ import { parseCronExpression } from "../cron-expression.js";
13
+ const WEEKDAYS_CRON_DOW = "1-5";
14
+ const WEEKENDS_CRON_DOW = "0,6";
15
+ const MINUTE_FIELD_MAX = 59;
16
+ const HOUR_FIELD_MAX = 23;
17
+ const MONTH_FIELD_SIZE = 12;
18
+ const HOUR_FIELD_SIZE = 24;
19
+ const sortUnique = (values) => [...new Set(values)].sort((a, b) => a - b);
20
+ export const compileScheduleAll = (schedule) => {
21
+ switch (schedule.kind) {
22
+ case "hourly":
23
+ return [`${schedule.minute} * * * *`];
24
+ case "daily":
25
+ return [`${schedule.minute} ${schedule.hour} * * *`];
26
+ case "timesOfDay": {
27
+ const ordered = [...schedule.times].sort((a, b) => a.hour * 60 + a.minute - (b.hour * 60 + b.minute));
28
+ const seen = new Set();
29
+ const crons = [];
30
+ for (const time of ordered) {
31
+ const key = time.hour * 60 + time.minute;
32
+ if (seen.has(key))
33
+ continue;
34
+ seen.add(key);
35
+ crons.push(`${time.minute} ${time.hour} * * *`);
36
+ }
37
+ return crons;
38
+ }
39
+ case "weekdaysPreset":
40
+ return [
41
+ `${schedule.minute} ${schedule.hour} * * ${schedule.preset === "weekdays" ? WEEKDAYS_CRON_DOW : WEEKENDS_CRON_DOW}`,
42
+ ];
43
+ case "weekly":
44
+ return [
45
+ `${schedule.minute} ${schedule.hour} * * ${sortUnique(schedule.daysOfWeek).join(",")}`,
46
+ ];
47
+ case "monthly":
48
+ return [
49
+ `${schedule.minute} ${schedule.hour} ${sortUnique(schedule.daysOfMonth).join(",")} * *`,
50
+ ];
51
+ case "everyNMinutes":
52
+ return [`*/${schedule.step} * * * *`];
53
+ case "everyNHours":
54
+ return [`${schedule.minute} */${schedule.step} * * *`];
55
+ case "cron":
56
+ return [schedule.expression.trim()];
57
+ default: {
58
+ const exhaustive = schedule;
59
+ return exhaustive;
60
+ }
61
+ }
62
+ };
63
+ // The canonical cron for display/back-compat. For "timesOfDay" it is the
64
+ // earliest time's cron; the scheduler always reads compileScheduleAll().
65
+ export const compileSchedule = (schedule) => compileScheduleAll(schedule)[0];
66
+ const numericSetEqual = (a, b) => {
67
+ if (a.size !== b.size)
68
+ return false;
69
+ for (const value of a) {
70
+ if (!b.has(value))
71
+ return false;
72
+ }
73
+ return true;
74
+ };
75
+ const parsedCronEqual = (a, b) => numericSetEqual(a.minutes, b.minutes) &&
76
+ numericSetEqual(a.hours, b.hours) &&
77
+ numericSetEqual(a.daysOfMonth, b.daysOfMonth) &&
78
+ numericSetEqual(a.months, b.months) &&
79
+ numericSetEqual(a.daysOfWeek, b.daysOfWeek) &&
80
+ a.isDayOfMonthRestricted === b.isDayOfMonthRestricted &&
81
+ a.isDayOfWeekRestricted === b.isDayOfWeekRestricted;
82
+ // A set is a "*/step" expansion iff it is exactly {0, step, 2*step, …} over
83
+ // [0, max]. Returns the step, or null when the set is irregular.
84
+ const detectStep = (values, max) => {
85
+ const sorted = [...values].sort((a, b) => a - b);
86
+ if (sorted.length < 2 || sorted[0] !== 0)
87
+ return null;
88
+ const step = sorted[1];
89
+ if (step < 1)
90
+ return null;
91
+ const expected = [];
92
+ for (let value = 0; value <= max; value += step)
93
+ expected.push(value);
94
+ if (expected.length !== sorted.length)
95
+ return null;
96
+ return expected.every((value, index) => value === sorted[index]) ? step : null;
97
+ };
98
+ const recognizeCandidate = (parsed) => {
99
+ // Every preset keeps the month field wildcard; a restricted month stays cron.
100
+ if (parsed.months.size !== MONTH_FIELD_SIZE)
101
+ return null;
102
+ const domWild = !parsed.isDayOfMonthRestricted;
103
+ const dowWild = !parsed.isDayOfWeekRestricted;
104
+ const hoursFull = parsed.hours.size === HOUR_FIELD_SIZE;
105
+ // Multi-minute is only "every N minutes" (every hour, all day fields wild).
106
+ if (parsed.minutes.size > 1) {
107
+ if (!hoursFull || !domWild || !dowWild)
108
+ return null;
109
+ const step = detectStep(parsed.minutes, MINUTE_FIELD_MAX);
110
+ return step === null ? null : { kind: "everyNMinutes", step };
111
+ }
112
+ const minute = [...parsed.minutes][0];
113
+ // "every N hours": single minute, hours are a */step, all day fields wild.
114
+ if (!hoursFull && parsed.hours.size > 1) {
115
+ if (!domWild || !dowWild)
116
+ return null;
117
+ const step = detectStep(parsed.hours, HOUR_FIELD_MAX);
118
+ return step === null ? null : { kind: "everyNHours", step, minute };
119
+ }
120
+ // Hourly: single minute, every hour, all day fields wild.
121
+ if (hoursFull) {
122
+ if (!domWild || !dowWild)
123
+ return null;
124
+ return { kind: "hourly", minute };
125
+ }
126
+ // Single specific hour from here on.
127
+ if (parsed.hours.size !== 1)
128
+ return null;
129
+ const hour = [...parsed.hours][0];
130
+ if (domWild && dowWild)
131
+ return { kind: "daily", hour, minute };
132
+ if (domWild && !dowWild) {
133
+ const days = [...parsed.daysOfWeek].filter((day) => day >= 0 && day <= 6).sort((a, b) => a - b);
134
+ if (days.length === 5 && days.every((day, index) => day === index + 1)) {
135
+ return { kind: "weekdaysPreset", preset: "weekdays", hour, minute };
136
+ }
137
+ if (days.length === 2 && days[0] === 0 && days[1] === 6) {
138
+ return { kind: "weekdaysPreset", preset: "weekends", hour, minute };
139
+ }
140
+ return days.length > 0 ? { kind: "weekly", daysOfWeek: days, hour, minute } : null;
141
+ }
142
+ if (!domWild && dowWild) {
143
+ const days = [...parsed.daysOfMonth].sort((a, b) => a - b);
144
+ return days.length > 0 ? { kind: "monthly", daysOfMonth: days, hour, minute } : null;
145
+ }
146
+ // Both day fields restricted -> Vixie OR semantics; no preset, stay cron.
147
+ return null;
148
+ };
149
+ export const recognizePreset = (expression) => {
150
+ const parsed = parseCronExpression(expression);
151
+ if (!parsed)
152
+ return null;
153
+ const candidate = recognizeCandidate(parsed);
154
+ if (!candidate)
155
+ return null;
156
+ // Parse-equality safety net: only single-cron candidates are recognized, so
157
+ // the recompiled cron must re-parse set-equal to the original.
158
+ const compiled = compileScheduleAll(candidate);
159
+ if (compiled.length !== 1)
160
+ return null;
161
+ const recompiled = parseCronExpression(compiled[0]);
162
+ return recompiled && parsedCronEqual(parsed, recompiled) ? candidate : null;
163
+ };
164
+ // Create/update/migration entry point: a bare cron string becomes a recognized
165
+ // preset (or {kind:"cron"}); a structured schedule is kept verbatim (an explicit
166
+ // {kind:"cron"} stays advanced — the caller chose the escape hatch).
167
+ export const normalizeScheduleInput = (input) => {
168
+ if (typeof input !== "string")
169
+ return input;
170
+ const trimmed = input.trim();
171
+ return recognizePreset(trimmed) ?? { kind: "cron", expression: trimmed };
172
+ };
173
+ //# sourceMappingURL=compile-schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-schedule.js","sourceRoot":"","sources":["../../src/utils/compile-schedule.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compute-next-automation-run-at.d.ts","sourceRoot":"","sources":["../../src/utils/compute-next-automation-run-at.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,eAAO,MAAM,0BAA0B,GAAI,YAAY,UAAU,EAAE,MAAM,IAAI,KAAG,MAAM,GAAG,IAKxF,CAAC"}
1
+ {"version":3,"file":"compute-next-automation-run-at.d.ts","sourceRoot":"","sources":["../../src/utils/compute-next-automation-run-at.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,eAAO,MAAM,0BAA0B,GAAI,YAAY,UAAU,EAAE,MAAM,IAAI,KAAG,MAAM,GAAG,IAaxF,CAAC"}
@@ -1,10 +1,21 @@
1
1
  import { nextCronOccurrence, parseCronExpression } from "../cron-expression.js";
2
+ import { compileScheduleAll } from "./compile-schedule.js";
2
3
  export const computeNextAutomationRunAt = (automation, from) => {
3
4
  if (!automation.enabled)
4
5
  return null;
5
- const parsed = parseCronExpression(automation.schedule);
6
- if (!parsed)
6
+ if (automation.lifecycle === "finished")
7
7
  return null;
8
- return nextCronOccurrence(parsed, from)?.getTime() ?? null;
8
+ // The earliest next occurrence across every compiled cron (timesOfDay yields
9
+ // several); skip any expression that fails to parse.
10
+ const candidates = [];
11
+ for (const expression of compileScheduleAll(automation.schedule)) {
12
+ const parsed = parseCronExpression(expression);
13
+ if (!parsed)
14
+ continue;
15
+ const next = nextCronOccurrence(parsed, from);
16
+ if (next)
17
+ candidates.push(next.getTime());
18
+ }
19
+ return candidates.length > 0 ? Math.min(...candidates) : null;
9
20
  };
10
21
  //# sourceMappingURL=compute-next-automation-run-at.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compute-next-automation-run-at.js","sourceRoot":"","sources":["../../src/utils/compute-next-automation-run-at.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGhF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAsB,EAAE,IAAU,EAAiB,EAAE;IAC9F,IAAI,CAAC,UAAU,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC;AAC7D,CAAC,CAAC"}
1
+ {"version":3,"file":"compute-next-automation-run-at.js","sourceRoot":"","sources":["../../src/utils/compute-next-automation-run-at.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAsB,EAAE,IAAU,EAAiB,EAAE;IAC9F,IAAI,CAAC,UAAU,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,UAAU,CAAC,SAAS,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACrD,6EAA6E;IAC7E,qDAAqD;IACrD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Automation } from "../types.js";
2
+ export declare const enumerateMissedOccurrences: (automation: Automation, lastAliveAt: number, now: number) => number[];
3
+ //# sourceMappingURL=reconcile-downtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile-downtime.d.ts","sourceRoot":"","sources":["../../src/utils/reconcile-downtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAO9C,eAAO,MAAM,0BAA0B,GACrC,YAAY,UAAU,EACtB,aAAa,MAAM,EACnB,KAAK,MAAM,KACV,MAAM,EAeR,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { AUTOMATION_DOWNTIME_RECONCILE_CAP, AUTOMATION_RECONCILE_LOOKBACK_MS, } from "../constants.js";
2
+ import { nextCronOccurrence, parseCronExpression } from "../cron-expression.js";
3
+ import { compileScheduleAll } from "./compile-schedule.js";
4
+ // The most-recent missed scheduled occurrences (epoch-ms) in the downtime
5
+ // window (lastAliveAt, now). Enumeration starts no earlier than a fixed
6
+ // lookback so a frequent schedule can't walk forever after a long outage; only
7
+ // the most-recent AUTOMATION_DOWNTIME_RECONCILE_CAP are kept regardless.
8
+ export const enumerateMissedOccurrences = (automation, lastAliveAt, now) => {
9
+ const effectiveFrom = Math.max(lastAliveAt, now - AUTOMATION_RECONCILE_LOOKBACK_MS);
10
+ const fromDate = new Date(effectiveFrom);
11
+ const collected = [];
12
+ for (const expression of compileScheduleAll(automation.schedule)) {
13
+ const parsed = parseCronExpression(expression);
14
+ if (!parsed)
15
+ continue;
16
+ let cursor = nextCronOccurrence(parsed, fromDate);
17
+ while (cursor && cursor.getTime() < now) {
18
+ collected.push(cursor.getTime());
19
+ cursor = nextCronOccurrence(parsed, cursor);
20
+ }
21
+ }
22
+ const unique = [...new Set(collected)].sort((a, b) => a - b);
23
+ return unique.slice(-AUTOMATION_DOWNTIME_RECONCILE_CAP);
24
+ };
25
+ //# sourceMappingURL=reconcile-downtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconcile-downtime.js","sourceRoot":"","sources":["../../src/utils/reconcile-downtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,0EAA0E;AAC1E,wEAAwE;AACxE,+EAA+E;AAC/E,yEAAyE;AACzE,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,UAAsB,EACtB,WAAmB,EACnB,GAAW,EACD,EAAE;IACZ,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,gCAAgC,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACjC,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC,CAAC;AAC1D,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monotykamary/localterm-server",
3
- "version": "1.17.2",
3
+ "version": "1.18.0",
4
4
  "description": "PTY-backed HTTP/WebSocket server that powers localterm, built on Hono + node-pty.",
5
5
  "keywords": [
6
6
  "hono",