@herdctl/core 1.3.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.
Files changed (181) hide show
  1. package/dist/config/__tests__/agent.test.js +12 -12
  2. package/dist/config/__tests__/agent.test.js.map +1 -1
  3. package/dist/config/__tests__/loader.test.js +201 -4
  4. package/dist/config/__tests__/loader.test.js.map +1 -1
  5. package/dist/config/__tests__/merge.test.js +29 -4
  6. package/dist/config/__tests__/merge.test.js.map +1 -1
  7. package/dist/config/__tests__/parser.test.js +13 -13
  8. package/dist/config/__tests__/parser.test.js.map +1 -1
  9. package/dist/config/__tests__/schema.test.js +10 -10
  10. package/dist/config/__tests__/schema.test.js.map +1 -1
  11. package/dist/config/index.d.ts +1 -1
  12. package/dist/config/index.d.ts.map +1 -1
  13. package/dist/config/index.js +2 -2
  14. package/dist/config/index.js.map +1 -1
  15. package/dist/config/loader.d.ts.map +1 -1
  16. package/dist/config/loader.js +71 -0
  17. package/dist/config/loader.js.map +1 -1
  18. package/dist/config/merge.d.ts +4 -1
  19. package/dist/config/merge.d.ts.map +1 -1
  20. package/dist/config/merge.js +16 -0
  21. package/dist/config/merge.js.map +1 -1
  22. package/dist/config/schema.d.ts +906 -89
  23. package/dist/config/schema.d.ts.map +1 -1
  24. package/dist/config/schema.js +109 -7
  25. package/dist/config/schema.js.map +1 -1
  26. package/dist/fleet-manager/__tests__/coverage.test.js +25 -24
  27. package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -1
  28. package/dist/fleet-manager/__tests__/discord-manager.test.js +9 -2
  29. package/dist/fleet-manager/__tests__/discord-manager.test.js.map +1 -1
  30. package/dist/fleet-manager/__tests__/integration.test.js +27 -0
  31. package/dist/fleet-manager/__tests__/integration.test.js.map +1 -1
  32. package/dist/fleet-manager/__tests__/job-control.test.js +66 -0
  33. package/dist/fleet-manager/__tests__/job-control.test.js.map +1 -1
  34. package/dist/fleet-manager/__tests__/status-queries.test.js +12 -11
  35. package/dist/fleet-manager/__tests__/status-queries.test.js.map +1 -1
  36. package/dist/fleet-manager/config-reload.js +9 -9
  37. package/dist/fleet-manager/config-reload.js.map +1 -1
  38. package/dist/fleet-manager/discord-manager.d.ts.map +1 -1
  39. package/dist/fleet-manager/discord-manager.js +27 -4
  40. package/dist/fleet-manager/discord-manager.js.map +1 -1
  41. package/dist/fleet-manager/fleet-manager.d.ts +11 -0
  42. package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
  43. package/dist/fleet-manager/fleet-manager.js +27 -0
  44. package/dist/fleet-manager/fleet-manager.js.map +1 -1
  45. package/dist/fleet-manager/job-control.d.ts +1 -1
  46. package/dist/fleet-manager/job-control.d.ts.map +1 -1
  47. package/dist/fleet-manager/job-control.js +36 -14
  48. package/dist/fleet-manager/job-control.js.map +1 -1
  49. package/dist/fleet-manager/schedule-executor.d.ts +1 -1
  50. package/dist/fleet-manager/schedule-executor.d.ts.map +1 -1
  51. package/dist/fleet-manager/schedule-executor.js +11 -14
  52. package/dist/fleet-manager/schedule-executor.js.map +1 -1
  53. package/dist/fleet-manager/status-queries.js +7 -7
  54. package/dist/fleet-manager/status-queries.js.map +1 -1
  55. package/dist/fleet-manager/types.d.ts +10 -2
  56. package/dist/fleet-manager/types.d.ts.map +1 -1
  57. package/dist/fleet-manager/working-directory-helper.d.ts +29 -0
  58. package/dist/fleet-manager/working-directory-helper.d.ts.map +1 -0
  59. package/dist/fleet-manager/working-directory-helper.js +36 -0
  60. package/dist/fleet-manager/working-directory-helper.js.map +1 -0
  61. package/dist/index.d.ts +2 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +4 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/runner/__tests__/job-executor.test.js +449 -118
  66. package/dist/runner/__tests__/job-executor.test.js.map +1 -1
  67. package/dist/runner/__tests__/sdk-adapter.test.js +147 -23
  68. package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -1
  69. package/dist/runner/index.d.ts +2 -0
  70. package/dist/runner/index.d.ts.map +1 -1
  71. package/dist/runner/index.js +1 -0
  72. package/dist/runner/index.js.map +1 -1
  73. package/dist/runner/job-executor.d.ts +12 -8
  74. package/dist/runner/job-executor.d.ts.map +1 -1
  75. package/dist/runner/job-executor.js +257 -126
  76. package/dist/runner/job-executor.js.map +1 -1
  77. package/dist/runner/runtime/__tests__/cli-session-path.test.d.ts +2 -0
  78. package/dist/runner/runtime/__tests__/cli-session-path.test.d.ts.map +1 -0
  79. package/dist/runner/runtime/__tests__/cli-session-path.test.js +150 -0
  80. package/dist/runner/runtime/__tests__/cli-session-path.test.js.map +1 -0
  81. package/dist/runner/runtime/__tests__/docker-config.test.d.ts +2 -0
  82. package/dist/runner/runtime/__tests__/docker-config.test.d.ts.map +1 -0
  83. package/dist/runner/runtime/__tests__/docker-config.test.js +352 -0
  84. package/dist/runner/runtime/__tests__/docker-config.test.js.map +1 -0
  85. package/dist/runner/runtime/__tests__/docker-security.test.d.ts +2 -0
  86. package/dist/runner/runtime/__tests__/docker-security.test.d.ts.map +1 -0
  87. package/dist/runner/runtime/__tests__/docker-security.test.js +384 -0
  88. package/dist/runner/runtime/__tests__/docker-security.test.js.map +1 -0
  89. package/dist/runner/runtime/__tests__/factory.test.d.ts +2 -0
  90. package/dist/runner/runtime/__tests__/factory.test.d.ts.map +1 -0
  91. package/dist/runner/runtime/__tests__/factory.test.js +149 -0
  92. package/dist/runner/runtime/__tests__/factory.test.js.map +1 -0
  93. package/dist/runner/runtime/__tests__/integration.test.d.ts +2 -0
  94. package/dist/runner/runtime/__tests__/integration.test.d.ts.map +1 -0
  95. package/dist/runner/runtime/__tests__/integration.test.js +274 -0
  96. package/dist/runner/runtime/__tests__/integration.test.js.map +1 -0
  97. package/dist/runner/runtime/cli-runtime.d.ts +107 -0
  98. package/dist/runner/runtime/cli-runtime.d.ts.map +1 -0
  99. package/dist/runner/runtime/cli-runtime.js +335 -0
  100. package/dist/runner/runtime/cli-runtime.js.map +1 -0
  101. package/dist/runner/runtime/cli-session-path.d.ts +108 -0
  102. package/dist/runner/runtime/cli-session-path.d.ts.map +1 -0
  103. package/dist/runner/runtime/cli-session-path.js +173 -0
  104. package/dist/runner/runtime/cli-session-path.js.map +1 -0
  105. package/dist/runner/runtime/cli-session-watcher.d.ts +55 -0
  106. package/dist/runner/runtime/cli-session-watcher.d.ts.map +1 -0
  107. package/dist/runner/runtime/cli-session-watcher.js +187 -0
  108. package/dist/runner/runtime/cli-session-watcher.js.map +1 -0
  109. package/dist/runner/runtime/container-manager.d.ts +76 -0
  110. package/dist/runner/runtime/container-manager.d.ts.map +1 -0
  111. package/dist/runner/runtime/container-manager.js +229 -0
  112. package/dist/runner/runtime/container-manager.js.map +1 -0
  113. package/dist/runner/runtime/container-runner.d.ts +62 -0
  114. package/dist/runner/runtime/container-runner.d.ts.map +1 -0
  115. package/dist/runner/runtime/container-runner.js +235 -0
  116. package/dist/runner/runtime/container-runner.js.map +1 -0
  117. package/dist/runner/runtime/docker-config.d.ts +100 -0
  118. package/dist/runner/runtime/docker-config.d.ts.map +1 -0
  119. package/dist/runner/runtime/docker-config.js +98 -0
  120. package/dist/runner/runtime/docker-config.js.map +1 -0
  121. package/dist/runner/runtime/factory.d.ts +63 -0
  122. package/dist/runner/runtime/factory.d.ts.map +1 -0
  123. package/dist/runner/runtime/factory.js +68 -0
  124. package/dist/runner/runtime/factory.js.map +1 -0
  125. package/dist/runner/runtime/index.d.ts +20 -0
  126. package/dist/runner/runtime/index.d.ts.map +1 -0
  127. package/dist/runner/runtime/index.js +21 -0
  128. package/dist/runner/runtime/index.js.map +1 -0
  129. package/dist/runner/runtime/interface.d.ts +59 -0
  130. package/dist/runner/runtime/interface.d.ts.map +1 -0
  131. package/dist/runner/runtime/interface.js +12 -0
  132. package/dist/runner/runtime/interface.js.map +1 -0
  133. package/dist/runner/runtime/sdk-runtime.d.ts +46 -0
  134. package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -0
  135. package/dist/runner/runtime/sdk-runtime.js +63 -0
  136. package/dist/runner/runtime/sdk-runtime.js.map +1 -0
  137. package/dist/runner/sdk-adapter.d.ts +4 -0
  138. package/dist/runner/sdk-adapter.d.ts.map +1 -1
  139. package/dist/runner/sdk-adapter.js +35 -16
  140. package/dist/runner/sdk-adapter.js.map +1 -1
  141. package/dist/runner/types.d.ts +12 -6
  142. package/dist/runner/types.d.ts.map +1 -1
  143. package/dist/scheduler/__tests__/schedule-runner.test.js +61 -50
  144. package/dist/scheduler/__tests__/schedule-runner.test.js.map +1 -1
  145. package/dist/scheduler/schedule-runner.d.ts +1 -4
  146. package/dist/scheduler/schedule-runner.d.ts.map +1 -1
  147. package/dist/scheduler/schedule-runner.js +40 -8
  148. package/dist/scheduler/schedule-runner.js.map +1 -1
  149. package/dist/state/__tests__/session-schema.test.js +4 -0
  150. package/dist/state/__tests__/session-schema.test.js.map +1 -1
  151. package/dist/state/__tests__/session-validation.test.d.ts +2 -0
  152. package/dist/state/__tests__/session-validation.test.d.ts.map +1 -0
  153. package/dist/state/__tests__/session-validation.test.js +446 -0
  154. package/dist/state/__tests__/session-validation.test.js.map +1 -0
  155. package/dist/state/__tests__/session.test.js +68 -0
  156. package/dist/state/__tests__/session.test.js.map +1 -1
  157. package/dist/state/__tests__/working-directory-validation.test.d.ts +5 -0
  158. package/dist/state/__tests__/working-directory-validation.test.d.ts.map +1 -0
  159. package/dist/state/__tests__/working-directory-validation.test.js +101 -0
  160. package/dist/state/__tests__/working-directory-validation.test.js.map +1 -0
  161. package/dist/state/index.d.ts +2 -0
  162. package/dist/state/index.d.ts.map +1 -1
  163. package/dist/state/index.js +4 -0
  164. package/dist/state/index.js.map +1 -1
  165. package/dist/state/schemas/session-info.d.ts +32 -0
  166. package/dist/state/schemas/session-info.d.ts.map +1 -1
  167. package/dist/state/schemas/session-info.js +22 -0
  168. package/dist/state/schemas/session-info.js.map +1 -1
  169. package/dist/state/session-validation.d.ts +202 -0
  170. package/dist/state/session-validation.d.ts.map +1 -0
  171. package/dist/state/session-validation.js +407 -0
  172. package/dist/state/session-validation.js.map +1 -0
  173. package/dist/state/session.d.ts +23 -3
  174. package/dist/state/session.d.ts.map +1 -1
  175. package/dist/state/session.js +41 -6
  176. package/dist/state/session.js.map +1 -1
  177. package/dist/state/working-directory-validation.d.ts +52 -0
  178. package/dist/state/working-directory-validation.d.ts.map +1 -0
  179. package/dist/state/working-directory-validation.js +81 -0
  180. package/dist/state/working-directory-validation.js.map +1 -0
  181. package/package.json +7 -2
@@ -3,6 +3,7 @@ import { mkdir, rm, realpath } from "node:fs/promises";
3
3
  import { join } from "node:path";
4
4
  import { tmpdir } from "node:os";
5
5
  import { runSchedule, buildSchedulePrompt, } from "../schedule-runner.js";
6
+ import { RuntimeFactory } from "../../runner/index.js";
6
7
  import { readFleetState } from "../../state/fleet-state.js";
7
8
  // Helper to create a temp directory
8
9
  async function createTempDir() {
@@ -71,9 +72,15 @@ function createTestWorkItem(overrides) {
71
72
  ...overrides,
72
73
  };
73
74
  }
74
- // Helper to create a mock SDK query function
75
- function createMockSDKQuery(messages = []) {
76
- return async function* mockQuery() {
75
+ // Helper to create a mock runtime
76
+ function createMockRuntime(handler) {
77
+ return {
78
+ execute: handler,
79
+ };
80
+ }
81
+ // Helper to setup RuntimeFactory mock with messages
82
+ function setupRuntimeFactoryMock(messages = []) {
83
+ const mockRuntime = createMockRuntime(async function* (options) {
77
84
  // Emit init message with session_id
78
85
  yield {
79
86
  type: "system",
@@ -89,7 +96,13 @@ function createMockSDKQuery(messages = []) {
89
96
  type: "assistant",
90
97
  content: "Task completed successfully",
91
98
  };
92
- };
99
+ });
100
+ vi.spyOn(RuntimeFactory, 'create').mockReturnValue(mockRuntime);
101
+ }
102
+ // Helper to setup RuntimeFactory mock with custom handler
103
+ function setupRuntimeFactoryMockWithHandler(handler) {
104
+ const mockRuntime = createMockRuntime(handler);
105
+ vi.spyOn(RuntimeFactory, 'create').mockReturnValue(mockRuntime);
93
106
  }
94
107
  // Helper to create a mock work source manager
95
108
  function createMockWorkSourceManager(nextWorkResult) {
@@ -179,19 +192,20 @@ describe("runSchedule", () => {
179
192
  });
180
193
  afterEach(async () => {
181
194
  await rm(tempDir, { recursive: true, force: true });
195
+ vi.restoreAllMocks();
182
196
  });
183
197
  describe("basic execution", () => {
184
198
  it("executes a schedule successfully", async () => {
185
199
  const agent = createTestAgent("test-agent");
186
200
  const schedule = createTestSchedule({ prompt: "Do the thing" });
187
- const sdkQuery = createMockSDKQuery();
201
+ // Setup RuntimeFactory mock
202
+ setupRuntimeFactoryMock();
188
203
  const result = await runSchedule({
189
204
  agent,
190
205
  scheduleName: "hourly",
191
206
  schedule,
192
207
  scheduleState: createTestScheduleState(),
193
208
  stateDir: tempDir,
194
- sdkQuery,
195
209
  logger: mockLogger,
196
210
  });
197
211
  expect(result.success).toBe(true);
@@ -205,20 +219,20 @@ describe("runSchedule", () => {
205
219
  const schedule = createTestSchedule();
206
220
  // Track state during execution
207
221
  let stateWhileRunning;
208
- const sdkQuery = async function* () {
222
+ // Setup RuntimeFactory mock with custom handler
223
+ setupRuntimeFactoryMockWithHandler(async function* (options) {
209
224
  // Read state during execution
210
225
  const fleetState = await readFleetState(join(tempDir, "state.yaml"));
211
226
  stateWhileRunning = fleetState.agents["test-agent"]?.schedules?.hourly;
212
227
  yield { type: "system", subtype: "init", session_id: "test" };
213
228
  yield { type: "assistant", content: "Done" };
214
- };
229
+ });
215
230
  await runSchedule({
216
231
  agent,
217
232
  scheduleName: "hourly",
218
233
  schedule,
219
234
  scheduleState: createTestScheduleState(),
220
235
  stateDir: tempDir,
221
- sdkQuery,
222
236
  logger: mockLogger,
223
237
  });
224
238
  expect(stateWhileRunning?.status).toBe("running");
@@ -226,7 +240,8 @@ describe("runSchedule", () => {
226
240
  it("updates schedule state with last_run_at after completion", async () => {
227
241
  const agent = createTestAgent("test-agent");
228
242
  const schedule = createTestSchedule({ interval: "1h" });
229
- const sdkQuery = createMockSDKQuery();
243
+ // Setup RuntimeFactory mock
244
+ setupRuntimeFactoryMock();
230
245
  const beforeRun = new Date();
231
246
  await runSchedule({
232
247
  agent,
@@ -234,7 +249,6 @@ describe("runSchedule", () => {
234
249
  schedule,
235
250
  scheduleState: createTestScheduleState(),
236
251
  stateDir: tempDir,
237
- sdkQuery,
238
252
  logger: mockLogger,
239
253
  });
240
254
  const fleetState = await readFleetState(join(tempDir, "state.yaml"));
@@ -246,14 +260,14 @@ describe("runSchedule", () => {
246
260
  it("calculates next_run_at based on interval", async () => {
247
261
  const agent = createTestAgent("test-agent");
248
262
  const schedule = createTestSchedule({ interval: "1h" });
249
- const sdkQuery = createMockSDKQuery();
263
+ // Setup RuntimeFactory mock
264
+ setupRuntimeFactoryMock();
250
265
  await runSchedule({
251
266
  agent,
252
267
  scheduleName: "hourly",
253
268
  schedule,
254
269
  scheduleState: createTestScheduleState(),
255
270
  stateDir: tempDir,
256
- sdkQuery,
257
271
  logger: mockLogger,
258
272
  });
259
273
  const fleetState = await readFleetState(join(tempDir, "state.yaml"));
@@ -272,14 +286,14 @@ describe("runSchedule", () => {
272
286
  const schedule = createTestSchedule();
273
287
  // We can't easily inspect what was passed to the executor,
274
288
  // but we can verify the job was created correctly by checking logs
275
- const sdkQuery = createMockSDKQuery();
289
+ // Setup RuntimeFactory mock
290
+ setupRuntimeFactoryMock();
276
291
  const result = await runSchedule({
277
292
  agent,
278
293
  scheduleName: "my-schedule",
279
294
  schedule,
280
295
  scheduleState: createTestScheduleState(),
281
296
  stateDir: tempDir,
282
- sdkQuery,
283
297
  logger: mockLogger,
284
298
  });
285
299
  expect(result.success).toBe(true);
@@ -299,14 +313,14 @@ describe("runSchedule", () => {
299
313
  claimed: true,
300
314
  claimResult: { success: true, workItem },
301
315
  });
302
- const sdkQuery = createMockSDKQuery();
316
+ // Setup RuntimeFactory mock
317
+ setupRuntimeFactoryMock();
303
318
  const result = await runSchedule({
304
319
  agent,
305
320
  scheduleName: "hourly",
306
321
  schedule,
307
322
  scheduleState: createTestScheduleState(),
308
323
  stateDir: tempDir,
309
- sdkQuery,
310
324
  workSourceManager,
311
325
  logger: mockLogger,
312
326
  });
@@ -326,14 +340,14 @@ describe("runSchedule", () => {
326
340
  claimed: true,
327
341
  claimResult: { success: true, workItem },
328
342
  });
329
- const sdkQuery = createMockSDKQuery();
343
+ // Setup RuntimeFactory mock
344
+ setupRuntimeFactoryMock();
330
345
  await runSchedule({
331
346
  agent,
332
347
  scheduleName: "hourly",
333
348
  schedule,
334
349
  scheduleState: createTestScheduleState(),
335
350
  stateDir: tempDir,
336
- sdkQuery,
337
351
  workSourceManager,
338
352
  logger: mockLogger,
339
353
  });
@@ -352,18 +366,17 @@ describe("runSchedule", () => {
352
366
  claimed: true,
353
367
  claimResult: { success: true, workItem },
354
368
  });
355
- // Create SDK query that produces an error
356
- const sdkQuery = async function* () {
369
+ // Setup RuntimeFactory mock with error handler
370
+ setupRuntimeFactoryMockWithHandler(async function* (options) {
357
371
  yield { type: "system", subtype: "init", session_id: "test" };
358
372
  yield { type: "error", message: "API error", code: "API_ERROR" };
359
- };
373
+ });
360
374
  await runSchedule({
361
375
  agent,
362
376
  scheduleName: "hourly",
363
377
  schedule,
364
378
  scheduleState: createTestScheduleState(),
365
379
  stateDir: tempDir,
366
- sdkQuery,
367
380
  workSourceManager,
368
381
  logger: mockLogger,
369
382
  });
@@ -379,14 +392,14 @@ describe("runSchedule", () => {
379
392
  item: null,
380
393
  claimed: false,
381
394
  });
382
- const sdkQuery = createMockSDKQuery();
395
+ // Setup RuntimeFactory mock
396
+ setupRuntimeFactoryMock();
383
397
  const result = await runSchedule({
384
398
  agent,
385
399
  scheduleName: "hourly",
386
400
  schedule,
387
401
  scheduleState: createTestScheduleState(),
388
402
  stateDir: tempDir,
389
- sdkQuery,
390
403
  workSourceManager,
391
404
  logger: mockLogger,
392
405
  });
@@ -407,14 +420,14 @@ describe("runSchedule", () => {
407
420
  claimed: false,
408
421
  claimResult: { success: false, reason: "already_claimed" },
409
422
  });
410
- const sdkQuery = createMockSDKQuery();
423
+ // Setup RuntimeFactory mock
424
+ setupRuntimeFactoryMock();
411
425
  const result = await runSchedule({
412
426
  agent,
413
427
  scheduleName: "hourly",
414
428
  schedule,
415
429
  scheduleState: createTestScheduleState(),
416
430
  stateDir: tempDir,
417
- sdkQuery,
418
431
  workSourceManager,
419
432
  logger: mockLogger,
420
433
  });
@@ -429,14 +442,14 @@ describe("runSchedule", () => {
429
442
  prompt: "Test",
430
443
  work_source: { type: "github", repo: "org/repo" },
431
444
  });
432
- const sdkQuery = createMockSDKQuery();
445
+ // Setup RuntimeFactory mock
446
+ setupRuntimeFactoryMock();
433
447
  const result = await runSchedule({
434
448
  agent,
435
449
  scheduleName: "hourly",
436
450
  schedule,
437
451
  scheduleState: createTestScheduleState(),
438
452
  stateDir: tempDir,
439
- sdkQuery,
440
453
  // No workSourceManager provided
441
454
  logger: mockLogger,
442
455
  });
@@ -456,17 +469,16 @@ describe("runSchedule", () => {
456
469
  claimed: true,
457
470
  claimResult: { success: true, workItem },
458
471
  });
459
- // Create SDK query that throws - JobExecutor catches this and returns failed result
460
- const sdkQuery = async function* () {
472
+ // Setup RuntimeFactory mock that throws - JobExecutor catches this and returns failed result
473
+ setupRuntimeFactoryMockWithHandler(async function* (options) {
461
474
  throw new Error("Unexpected SDK failure");
462
- };
475
+ });
463
476
  const result = await runSchedule({
464
477
  agent,
465
478
  scheduleName: "hourly",
466
479
  schedule,
467
480
  scheduleState: createTestScheduleState(),
468
481
  stateDir: tempDir,
469
- sdkQuery,
470
482
  workSourceManager,
471
483
  logger: mockLogger,
472
484
  });
@@ -480,17 +492,16 @@ describe("runSchedule", () => {
480
492
  it("records error in schedule state on SDK failure", async () => {
481
493
  const agent = createTestAgent("test-agent");
482
494
  const schedule = createTestSchedule();
483
- // Create SDK query that throws - JobExecutor catches this
484
- const sdkQuery = async function* () {
495
+ // Setup RuntimeFactory mock that throws - JobExecutor catches this
496
+ setupRuntimeFactoryMockWithHandler(async function* (options) {
485
497
  throw new Error("Execution failed");
486
- };
498
+ });
487
499
  const result = await runSchedule({
488
500
  agent,
489
501
  scheduleName: "hourly",
490
502
  schedule,
491
503
  scheduleState: createTestScheduleState(),
492
504
  stateDir: tempDir,
493
- sdkQuery,
494
505
  logger: mockLogger,
495
506
  });
496
507
  expect(result.success).toBe(false);
@@ -503,16 +514,16 @@ describe("runSchedule", () => {
503
514
  it("still calculates next_run_at on SDK failure", async () => {
504
515
  const agent = createTestAgent("test-agent");
505
516
  const schedule = createTestSchedule({ interval: "30m" });
506
- const sdkQuery = async function* () {
517
+ // Setup RuntimeFactory mock that throws
518
+ setupRuntimeFactoryMockWithHandler(async function* (options) {
507
519
  throw new Error("Execution failed");
508
- };
520
+ });
509
521
  const result = await runSchedule({
510
522
  agent,
511
523
  scheduleName: "hourly",
512
524
  schedule,
513
525
  scheduleState: createTestScheduleState(),
514
526
  stateDir: tempDir,
515
- sdkQuery,
516
527
  logger: mockLogger,
517
528
  });
518
529
  expect(result.success).toBe(false);
@@ -534,14 +545,14 @@ describe("runSchedule", () => {
534
545
  });
535
546
  // Make reportOutcome throw
536
547
  workSourceManager.reportOutcome.mockRejectedValue(new Error("Report failed"));
537
- const sdkQuery = createMockSDKQuery();
548
+ // Setup RuntimeFactory mock
549
+ setupRuntimeFactoryMock();
538
550
  const result = await runSchedule({
539
551
  agent,
540
552
  scheduleName: "hourly",
541
553
  schedule,
542
554
  scheduleState: createTestScheduleState(),
543
555
  stateDir: tempDir,
544
- sdkQuery,
545
556
  workSourceManager,
546
557
  logger: mockLogger,
547
558
  });
@@ -554,14 +565,14 @@ describe("runSchedule", () => {
554
565
  it("logs schedule start", async () => {
555
566
  const agent = createTestAgent("my-agent");
556
567
  const schedule = createTestSchedule();
557
- const sdkQuery = createMockSDKQuery();
568
+ // Setup RuntimeFactory mock
569
+ setupRuntimeFactoryMock();
558
570
  await runSchedule({
559
571
  agent,
560
572
  scheduleName: "my-schedule",
561
573
  schedule,
562
574
  scheduleState: createTestScheduleState(),
563
575
  stateDir: tempDir,
564
- sdkQuery,
565
576
  logger: mockLogger,
566
577
  });
567
578
  expect(mockLogger.infos.some((m) => m.includes("Running") && m.includes("my-agent/my-schedule"))).toBe(true);
@@ -569,14 +580,14 @@ describe("runSchedule", () => {
569
580
  it("logs schedule completion", async () => {
570
581
  const agent = createTestAgent("my-agent");
571
582
  const schedule = createTestSchedule();
572
- const sdkQuery = createMockSDKQuery();
583
+ // Setup RuntimeFactory mock
584
+ setupRuntimeFactoryMock();
573
585
  await runSchedule({
574
586
  agent,
575
587
  scheduleName: "my-schedule",
576
588
  schedule,
577
589
  scheduleState: createTestScheduleState(),
578
590
  stateDir: tempDir,
579
- sdkQuery,
580
591
  logger: mockLogger,
581
592
  });
582
593
  expect(mockLogger.infos.some((m) => m.includes("Completed") && m.includes("my-agent/my-schedule"))).toBe(true);
@@ -592,14 +603,14 @@ describe("runSchedule", () => {
592
603
  claimed: true,
593
604
  claimResult: { success: true, workItem },
594
605
  });
595
- const sdkQuery = createMockSDKQuery();
606
+ // Setup RuntimeFactory mock
607
+ setupRuntimeFactoryMock();
596
608
  await runSchedule({
597
609
  agent,
598
610
  scheduleName: "hourly",
599
611
  schedule,
600
612
  scheduleState: createTestScheduleState(),
601
613
  stateDir: tempDir,
602
- sdkQuery,
603
614
  workSourceManager,
604
615
  logger: mockLogger,
605
616
  });
@@ -616,14 +627,14 @@ describe("runSchedule", () => {
616
627
  claimed: true,
617
628
  claimResult: { success: true, workItem },
618
629
  });
619
- const sdkQuery = createMockSDKQuery();
630
+ // Setup RuntimeFactory mock
631
+ setupRuntimeFactoryMock();
620
632
  await runSchedule({
621
633
  agent,
622
634
  scheduleName: "hourly",
623
635
  schedule,
624
636
  scheduleState: createTestScheduleState(),
625
637
  stateDir: tempDir,
626
- sdkQuery,
627
638
  workSourceManager,
628
639
  logger: mockLogger,
629
640
  });
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-runner.test.js","sourceRoot":"","sources":["../../../src/scheduler/__tests__/schedule-runner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,EAAE,EACF,MAAM,EACN,UAAU,EACV,SAAS,EACT,EAAE,GACH,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,WAAW,EACX,mBAAmB,GAGpB,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,oCAAoC;AACpC,KAAK,UAAU,aAAa;IAC1B,MAAM,OAAO,GAAG,IAAI,CAClB,MAAM,EAAE,EACR,gCAAgC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACpF,CAAC;IACF,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,iCAAiC;AACjC,SAAS,gBAAgB;IAMvB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9C,IAAI,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;QACjD,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,gCAAgC;AAChC,SAAS,eAAe,CACtB,IAAY,EACZ,SAAkC;IAElC,OAAO;QACL,IAAI;QACJ,UAAU,EAAE,cAAc,IAAI,OAAO;QACrC,GAAG,SAAS;KACI,CAAC;AACrB,CAAC;AAED,mCAAmC;AACnC,SAAS,kBAAkB,CAAC,SAA6B;IACvD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,qBAAqB;QAC7B,GAAG,SAAS;KACD,CAAC;AAChB,CAAC;AAED,yCAAyC;AACzC,SAAS,uBAAuB,CAAC,SAAkC;IACjE,OAAO;QACL,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,IAAI;QAChB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,SAAS,kBAAkB,CAAC,SAA6B;IACvD,OAAO;QACL,EAAE,EAAE,YAAY;QAChB,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,EAAE;QACZ,GAAG,EAAE,wCAAwC;QAC7C,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QACjC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;QACjC,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,6CAA6C;AAC7C,SAAS,kBAAkB,CACzB,WAAyB,EAAE;IAE3B,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS;QAC9B,oCAAoC;QACpC,MAAM;YACJ,IAAI,EAAE,QAAiB;YACvB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,kBAAkB;SAC/B,CAAC;QAEF,6BAA6B;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,CAAC;QAChB,CAAC;QAED,sBAAsB;QACtB,MAAM;YACJ,IAAI,EAAE,WAAoB;YAC1B,OAAO,EAAE,6BAA6B;SACvC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,8CAA8C;AAC9C,SAAS,2BAA2B,CAClC,cAAsC;IAMtC,MAAM,oBAAoB,GAAoC,EAAE,CAAC;IACjE,MAAM,kBAAkB,GAAkD,EAAE,CAAC;IAC7E,MAAM,oBAAoB,GAA+C,EAAE,CAAC;IAE5E,OAAO;QACL,oBAAoB;QACpB,kBAAkB;QAClB,oBAAoB;QACpB,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACrC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,OAAO,cAAc,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1D,CAAC,CAAC;QACF,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC5C,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC;QACF,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YAC/C,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC,CAAC;QACF,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;QACnC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;KACpB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEvD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;YACjE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;YACtE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,KAAK,EAAE,iBAAiB;gBACxB,WAAW,EAAE,sBAAsB;aACpC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEvD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAChC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,GAAG,EAAE,wCAAwC;aAC9C,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEvD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iDAAiD,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEvD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,OAAe,CAAC;IACpB,IAAI,UAA+C,CAAC;IAEpD,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;QAChC,wDAAwD;QACxD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,UAAU,GAAG,gBAAgB,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,+BAA+B;YAC/B,IAAI,iBAA4C,CAAC;YAEjD,MAAM,QAAQ,GAAqB,KAAK,SAAS,CAAC;gBAChD,8BAA8B;gBAC9B,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrE,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;gBAEvE,MAAM,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;gBACvE,MAAM,EAAE,IAAI,EAAE,WAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YACxD,CAAC,CAAC;YAEF,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YAE7B,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACrE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;YAEzE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,IAAI,CAAC,aAAc,CAAC,WAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,sBAAsB,CAC5E,SAAS,CAAC,OAAO,EAAE,CACpB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACrE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;YAEzE,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAEjD,mDAAmD;YACnD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,aAAc,CAAC,WAAY,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAE5C,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,2DAA2D;YAC3D,mEAAmE;YACnE,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,aAAa;gBAC3B,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,MAAM,EAAE,gBAAgB;gBACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;YAEH,0CAA0C;YAC1C,MAAM,QAAQ,GAAqB,KAAK,SAAS,CAAC;gBAChD,MAAM,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;gBACvE,MAAM,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YAC5E,CAAC,CAAC;YAEF,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,qDAAqD;YACrD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;YACxC,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,2CAA2C;YAC3C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,gCAAgC;gBAChC,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;YAEH,oFAAoF;YACpF,MAAM,QAAQ,GAAqB,KAAK,SAAS,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,2DAA2D;YAC3D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAEnC,mDAAmD;YACnD,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,0DAA0D;YAC1D,MAAM,QAAQ,GAAqB,KAAK,SAAS,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACrE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;YAEzE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,+DAA+D;YAC/D,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAqB,KAAK,SAAS,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACrE,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC;YAEzE,2CAA2C;YAC3C,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;YAEH,2BAA2B;YAC1B,iBAAiB,CAAC,aAA0C,CAAC,iBAAiB,CAC7E,IAAI,KAAK,CAAC,eAAe,CAAC,CAC3B,CAAC;YAEF,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAC/B,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,+BAA+B;YAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YACnC,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,aAAa;gBAC3B,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CACJ,UAAU,CAAC,KAAK,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CACnE,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,aAAa;gBAC3B,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CACJ,UAAU,CAAC,KAAK,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CACrE,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YACpC,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACjE,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CACJ,UAAU,CAAC,KAAK,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAC7D,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACtC,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAC;gBAClC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAW;aAC3D,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;gBACpD,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;YAEtC,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,YAAY,EAAE,QAAQ;gBACtB,QAAQ;gBACR,aAAa,EAAE,uBAAuB,EAAE;gBACxC,QAAQ,EAAE,OAAO;gBACjB,QAAQ;gBACR,iBAAiB;gBACjB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,MAAM,CACJ,UAAU,CAAC,KAAK,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CACjE,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"schedule-runner.test.js","sourceRoot":"","sources":["../../../src/scheduler/__tests__/schedule-runner.test.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import type { ResolvedAgent, Schedule } from "../config/index.js";
11
11
  import type { ScheduleState } from "../state/schemas/fleet-state.js";
12
- import type { RunnerResult, SDKQueryFunction } from "../runner/index.js";
12
+ import type { RunnerResult } from "../runner/index.js";
13
13
  import type { WorkSourceManager, WorkItem } from "../work-sources/index.js";
14
14
  import { type JobExecutorOptions } from "../runner/index.js";
15
15
  /**
@@ -48,8 +48,6 @@ export interface RunScheduleOptions {
48
48
  scheduleState: ScheduleState;
49
49
  /** Path to the state directory (e.g., .herdctl) */
50
50
  stateDir: string;
51
- /** The SDK query function for agent execution */
52
- sdkQuery: SDKQueryFunction;
53
51
  /** Optional work source manager for fetching work items */
54
52
  workSourceManager?: WorkSourceManager;
55
53
  /** Optional logger */
@@ -117,7 +115,6 @@ export declare function buildSchedulePrompt(schedule: Schedule, workItem?: WorkI
117
115
  * schedule: { type: 'interval', interval: '1h', prompt: 'Check status' },
118
116
  * scheduleState: { status: 'idle', last_run_at: null },
119
117
  * stateDir: '.herdctl',
120
- * sdkQuery: query,
121
118
  * });
122
119
  *
123
120
  * console.log(`Job ${result.jobId} completed: ${result.success}`);
@@ -1 +1 @@
1
- {"version":3,"file":"schedule-runner.d.ts","sourceRoot":"","sources":["../../src/scheduler/schedule-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EAGT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAY1E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,WAAW,EAAE,UAAU,GAAG,MAAM,CAAC;IACjC,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,sBAAsB;IACtB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,oCAAoC;IACpC,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,gDAAgD;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oDAAoD;IACpD,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CAoBR;AAuCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CA6K5B"}
1
+ {"version":3,"file":"schedule-runner.d.ts","sourceRoot":"","sources":["../../src/scheduler/schedule-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACV,iBAAiB,EACjB,QAAQ,EAGT,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAa1F;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,WAAW,EAAE,UAAU,GAAG,MAAM,CAAC;IACjC,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,sBAAsB;IACtB,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,oCAAoC;IACpC,eAAe,CAAC,EAAE,kBAAkB,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,gDAAgD;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,oDAAoD;IACpD,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,CAAC,EAAE,QAAQ,GAClB,MAAM,CAoBR;AAuCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAgN5B"}
@@ -7,7 +7,9 @@
7
7
  * 3. Invoking the JobExecutor to run the agent
8
8
  * 4. Updating schedule state and reporting outcomes
9
9
  */
10
- import { JobExecutor } from "../runner/index.js";
10
+ import { join } from "node:path";
11
+ import { JobExecutor, RuntimeFactory } from "../runner/index.js";
12
+ import { getSessionInfo } from "../state/index.js";
11
13
  import { updateScheduleState, } from "./schedule-state.js";
12
14
  import { calculateNextTrigger } from "./interval.js";
13
15
  import { calculateNextCronTrigger } from "./cron.js";
@@ -118,7 +120,6 @@ function formatWorkItem(workItem) {
118
120
  * schedule: { type: 'interval', interval: '1h', prompt: 'Check status' },
119
121
  * scheduleState: { status: 'idle', last_run_at: null },
120
122
  * stateDir: '.herdctl',
121
- * sdkQuery: query,
122
123
  * });
123
124
  *
124
125
  * console.log(`Job ${result.jobId} completed: ${result.success}`);
@@ -147,7 +148,7 @@ function formatWorkItem(workItem) {
147
148
  * ```
148
149
  */
149
150
  export async function runSchedule(options) {
150
- const { agent, scheduleName, schedule, stateDir, sdkQuery, workSourceManager, logger = defaultLogger, executorOptions, } = options;
151
+ const { agent, scheduleName, schedule, stateDir, workSourceManager, logger = defaultLogger, executorOptions, } = options;
151
152
  const stateLogger = { warn: logger.warn };
152
153
  logger.info(`Running schedule ${agent.name}/${scheduleName}`);
153
154
  // Step 1: Update schedule state to 'running'
@@ -189,16 +190,47 @@ export async function runSchedule(options) {
189
190
  triggerMetadata.workItemId = workItem.id;
190
191
  triggerMetadata.workItemTitle = workItem.title;
191
192
  }
192
- // Step 5: Execute the agent via JobExecutor
193
- const executor = new JobExecutor(sdkQuery, executorOptions);
193
+ // Step 5: Get existing session for conversation continuity
194
+ // This prevents unexpected logouts by resuming the agent's session
195
+ // Session expiry is validated using the agent's session.timeout config (default: 24h)
196
+ // By default, sessions are resumed unless explicitly disabled via resume_session: false
197
+ let sessionId;
198
+ if (schedule.resume_session !== false) {
199
+ try {
200
+ const sessionsDir = join(stateDir, "sessions");
201
+ // Use session timeout config for expiry validation to prevent resuming stale sessions
202
+ // Default to 24h if not configured - this prevents unexpected logouts from expired server-side sessions
203
+ const sessionTimeout = agent.session?.timeout ?? "24h";
204
+ const existingSession = await getSessionInfo(sessionsDir, agent.name, {
205
+ timeout: sessionTimeout,
206
+ logger,
207
+ runtime: agent.runtime ?? "sdk",
208
+ });
209
+ if (existingSession?.session_id) {
210
+ sessionId = existingSession.session_id;
211
+ logger.debug(`Found valid session for ${agent.name}: ${sessionId}`);
212
+ }
213
+ else {
214
+ logger.debug(`No valid session for ${agent.name} (expired or not found), starting fresh`);
215
+ }
216
+ }
217
+ catch (error) {
218
+ logger.warn(`Failed to get session info for ${agent.name}: ${error.message}`);
219
+ // Continue without resume - session failure shouldn't block execution
220
+ }
221
+ }
222
+ // Step 6: Execute the agent via JobExecutor
223
+ const runtime = RuntimeFactory.create(agent, { stateDir });
224
+ const executor = new JobExecutor(runtime, executorOptions);
194
225
  const runnerResult = await executor.execute({
195
226
  agent,
196
227
  prompt,
197
228
  stateDir,
198
229
  triggerType: "schedule",
199
230
  schedule: scheduleName,
231
+ resume: sessionId,
200
232
  });
201
- // Step 6: Report outcome to work source if we processed a work item
233
+ // Step 7: Report outcome to work source if we processed a work item
202
234
  if (workItem && workSourceManager) {
203
235
  const workResult = buildWorkResult(runnerResult);
204
236
  try {
@@ -212,9 +244,9 @@ export async function runSchedule(options) {
212
244
  // Don't fail the overall run if reporting fails
213
245
  }
214
246
  }
215
- // Step 7: Calculate next trigger time based on schedule type
247
+ // Step 8: Calculate next trigger time based on schedule type
216
248
  const nextTrigger = calculateNextScheduleTrigger(schedule);
217
- // Step 8: Update schedule state with success
249
+ // Step 9: Update schedule state with success
218
250
  await updateScheduleState(stateDir, agent.name, scheduleName, {
219
251
  status: "idle",
220
252
  next_run_at: nextTrigger?.toISOString() ?? null,