@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.
- package/dist/config/__tests__/agent.test.js +12 -12
- package/dist/config/__tests__/agent.test.js.map +1 -1
- package/dist/config/__tests__/loader.test.js +201 -4
- package/dist/config/__tests__/loader.test.js.map +1 -1
- package/dist/config/__tests__/merge.test.js +29 -4
- package/dist/config/__tests__/merge.test.js.map +1 -1
- package/dist/config/__tests__/parser.test.js +13 -13
- package/dist/config/__tests__/parser.test.js.map +1 -1
- package/dist/config/__tests__/schema.test.js +10 -10
- package/dist/config/__tests__/schema.test.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -2
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +71 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/merge.d.ts +4 -1
- package/dist/config/merge.d.ts.map +1 -1
- package/dist/config/merge.js +16 -0
- package/dist/config/merge.js.map +1 -1
- package/dist/config/schema.d.ts +906 -89
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +109 -7
- package/dist/config/schema.js.map +1 -1
- package/dist/fleet-manager/__tests__/coverage.test.js +25 -24
- package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/discord-manager.test.js +9 -2
- package/dist/fleet-manager/__tests__/discord-manager.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/integration.test.js +27 -0
- package/dist/fleet-manager/__tests__/integration.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/job-control.test.js +66 -0
- package/dist/fleet-manager/__tests__/job-control.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/status-queries.test.js +12 -11
- package/dist/fleet-manager/__tests__/status-queries.test.js.map +1 -1
- package/dist/fleet-manager/config-reload.js +9 -9
- package/dist/fleet-manager/config-reload.js.map +1 -1
- package/dist/fleet-manager/discord-manager.d.ts.map +1 -1
- package/dist/fleet-manager/discord-manager.js +27 -4
- package/dist/fleet-manager/discord-manager.js.map +1 -1
- package/dist/fleet-manager/fleet-manager.d.ts +11 -0
- package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.js +27 -0
- package/dist/fleet-manager/fleet-manager.js.map +1 -1
- package/dist/fleet-manager/job-control.d.ts +1 -1
- package/dist/fleet-manager/job-control.d.ts.map +1 -1
- package/dist/fleet-manager/job-control.js +36 -14
- package/dist/fleet-manager/job-control.js.map +1 -1
- package/dist/fleet-manager/schedule-executor.d.ts +1 -1
- package/dist/fleet-manager/schedule-executor.d.ts.map +1 -1
- package/dist/fleet-manager/schedule-executor.js +11 -14
- package/dist/fleet-manager/schedule-executor.js.map +1 -1
- package/dist/fleet-manager/status-queries.js +7 -7
- package/dist/fleet-manager/status-queries.js.map +1 -1
- package/dist/fleet-manager/types.d.ts +10 -2
- package/dist/fleet-manager/types.d.ts.map +1 -1
- package/dist/fleet-manager/working-directory-helper.d.ts +29 -0
- package/dist/fleet-manager/working-directory-helper.d.ts.map +1 -0
- package/dist/fleet-manager/working-directory-helper.js +36 -0
- package/dist/fleet-manager/working-directory-helper.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/runner/__tests__/job-executor.test.js +449 -118
- package/dist/runner/__tests__/job-executor.test.js.map +1 -1
- package/dist/runner/__tests__/sdk-adapter.test.js +147 -23
- package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -1
- package/dist/runner/index.d.ts +2 -0
- package/dist/runner/index.d.ts.map +1 -1
- package/dist/runner/index.js +1 -0
- package/dist/runner/index.js.map +1 -1
- package/dist/runner/job-executor.d.ts +12 -8
- package/dist/runner/job-executor.d.ts.map +1 -1
- package/dist/runner/job-executor.js +257 -126
- package/dist/runner/job-executor.js.map +1 -1
- package/dist/runner/runtime/__tests__/cli-session-path.test.d.ts +2 -0
- package/dist/runner/runtime/__tests__/cli-session-path.test.d.ts.map +1 -0
- package/dist/runner/runtime/__tests__/cli-session-path.test.js +150 -0
- package/dist/runner/runtime/__tests__/cli-session-path.test.js.map +1 -0
- package/dist/runner/runtime/__tests__/docker-config.test.d.ts +2 -0
- package/dist/runner/runtime/__tests__/docker-config.test.d.ts.map +1 -0
- package/dist/runner/runtime/__tests__/docker-config.test.js +352 -0
- package/dist/runner/runtime/__tests__/docker-config.test.js.map +1 -0
- package/dist/runner/runtime/__tests__/docker-security.test.d.ts +2 -0
- package/dist/runner/runtime/__tests__/docker-security.test.d.ts.map +1 -0
- package/dist/runner/runtime/__tests__/docker-security.test.js +384 -0
- package/dist/runner/runtime/__tests__/docker-security.test.js.map +1 -0
- package/dist/runner/runtime/__tests__/factory.test.d.ts +2 -0
- package/dist/runner/runtime/__tests__/factory.test.d.ts.map +1 -0
- package/dist/runner/runtime/__tests__/factory.test.js +149 -0
- package/dist/runner/runtime/__tests__/factory.test.js.map +1 -0
- package/dist/runner/runtime/__tests__/integration.test.d.ts +2 -0
- package/dist/runner/runtime/__tests__/integration.test.d.ts.map +1 -0
- package/dist/runner/runtime/__tests__/integration.test.js +274 -0
- package/dist/runner/runtime/__tests__/integration.test.js.map +1 -0
- package/dist/runner/runtime/cli-runtime.d.ts +107 -0
- package/dist/runner/runtime/cli-runtime.d.ts.map +1 -0
- package/dist/runner/runtime/cli-runtime.js +335 -0
- package/dist/runner/runtime/cli-runtime.js.map +1 -0
- package/dist/runner/runtime/cli-session-path.d.ts +108 -0
- package/dist/runner/runtime/cli-session-path.d.ts.map +1 -0
- package/dist/runner/runtime/cli-session-path.js +173 -0
- package/dist/runner/runtime/cli-session-path.js.map +1 -0
- package/dist/runner/runtime/cli-session-watcher.d.ts +55 -0
- package/dist/runner/runtime/cli-session-watcher.d.ts.map +1 -0
- package/dist/runner/runtime/cli-session-watcher.js +187 -0
- package/dist/runner/runtime/cli-session-watcher.js.map +1 -0
- package/dist/runner/runtime/container-manager.d.ts +76 -0
- package/dist/runner/runtime/container-manager.d.ts.map +1 -0
- package/dist/runner/runtime/container-manager.js +229 -0
- package/dist/runner/runtime/container-manager.js.map +1 -0
- package/dist/runner/runtime/container-runner.d.ts +62 -0
- package/dist/runner/runtime/container-runner.d.ts.map +1 -0
- package/dist/runner/runtime/container-runner.js +235 -0
- package/dist/runner/runtime/container-runner.js.map +1 -0
- package/dist/runner/runtime/docker-config.d.ts +100 -0
- package/dist/runner/runtime/docker-config.d.ts.map +1 -0
- package/dist/runner/runtime/docker-config.js +98 -0
- package/dist/runner/runtime/docker-config.js.map +1 -0
- package/dist/runner/runtime/factory.d.ts +63 -0
- package/dist/runner/runtime/factory.d.ts.map +1 -0
- package/dist/runner/runtime/factory.js +68 -0
- package/dist/runner/runtime/factory.js.map +1 -0
- package/dist/runner/runtime/index.d.ts +20 -0
- package/dist/runner/runtime/index.d.ts.map +1 -0
- package/dist/runner/runtime/index.js +21 -0
- package/dist/runner/runtime/index.js.map +1 -0
- package/dist/runner/runtime/interface.d.ts +59 -0
- package/dist/runner/runtime/interface.d.ts.map +1 -0
- package/dist/runner/runtime/interface.js +12 -0
- package/dist/runner/runtime/interface.js.map +1 -0
- package/dist/runner/runtime/sdk-runtime.d.ts +46 -0
- package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -0
- package/dist/runner/runtime/sdk-runtime.js +63 -0
- package/dist/runner/runtime/sdk-runtime.js.map +1 -0
- package/dist/runner/sdk-adapter.d.ts +4 -0
- package/dist/runner/sdk-adapter.d.ts.map +1 -1
- package/dist/runner/sdk-adapter.js +35 -16
- package/dist/runner/sdk-adapter.js.map +1 -1
- package/dist/runner/types.d.ts +12 -6
- package/dist/runner/types.d.ts.map +1 -1
- package/dist/scheduler/__tests__/schedule-runner.test.js +61 -50
- package/dist/scheduler/__tests__/schedule-runner.test.js.map +1 -1
- package/dist/scheduler/schedule-runner.d.ts +1 -4
- package/dist/scheduler/schedule-runner.d.ts.map +1 -1
- package/dist/scheduler/schedule-runner.js +40 -8
- package/dist/scheduler/schedule-runner.js.map +1 -1
- package/dist/state/__tests__/session-schema.test.js +4 -0
- package/dist/state/__tests__/session-schema.test.js.map +1 -1
- package/dist/state/__tests__/session-validation.test.d.ts +2 -0
- package/dist/state/__tests__/session-validation.test.d.ts.map +1 -0
- package/dist/state/__tests__/session-validation.test.js +446 -0
- package/dist/state/__tests__/session-validation.test.js.map +1 -0
- package/dist/state/__tests__/session.test.js +68 -0
- package/dist/state/__tests__/session.test.js.map +1 -1
- package/dist/state/__tests__/working-directory-validation.test.d.ts +5 -0
- package/dist/state/__tests__/working-directory-validation.test.d.ts.map +1 -0
- package/dist/state/__tests__/working-directory-validation.test.js +101 -0
- package/dist/state/__tests__/working-directory-validation.test.js.map +1 -0
- package/dist/state/index.d.ts +2 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +4 -0
- package/dist/state/index.js.map +1 -1
- package/dist/state/schemas/session-info.d.ts +32 -0
- package/dist/state/schemas/session-info.d.ts.map +1 -1
- package/dist/state/schemas/session-info.js +22 -0
- package/dist/state/schemas/session-info.js.map +1 -1
- package/dist/state/session-validation.d.ts +202 -0
- package/dist/state/session-validation.d.ts.map +1 -0
- package/dist/state/session-validation.js +407 -0
- package/dist/state/session-validation.js.map +1 -0
- package/dist/state/session.d.ts +23 -3
- package/dist/state/session.d.ts.map +1 -1
- package/dist/state/session.js +41 -6
- package/dist/state/session.js.map +1 -1
- package/dist/state/working-directory-validation.d.ts +52 -0
- package/dist/state/working-directory-validation.d.ts.map +1 -0
- package/dist/state/working-directory-validation.js +81 -0
- package/dist/state/working-directory-validation.js.map +1 -0
- 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
|
|
75
|
-
function
|
|
76
|
-
return
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
356
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
460
|
-
|
|
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
|
-
//
|
|
484
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"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"}
|
|
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
|
|
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,
|
|
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 {
|
|
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,
|
|
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:
|
|
193
|
-
|
|
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
|
|
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
|
|
247
|
+
// Step 8: Calculate next trigger time based on schedule type
|
|
216
248
|
const nextTrigger = calculateNextScheduleTrigger(schedule);
|
|
217
|
-
// Step
|
|
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,
|