@herdctl/core 5.10.1 → 5.12.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 (60) hide show
  1. package/dist/fleet-manager/__tests__/agent-management.test.d.ts +9 -0
  2. package/dist/fleet-manager/__tests__/agent-management.test.d.ts.map +1 -0
  3. package/dist/fleet-manager/__tests__/agent-management.test.js +358 -0
  4. package/dist/fleet-manager/__tests__/agent-management.test.js.map +1 -0
  5. package/dist/fleet-manager/__tests__/errors.test.js +40 -2
  6. package/dist/fleet-manager/__tests__/errors.test.js.map +1 -1
  7. package/dist/fleet-manager/__tests__/session-control.test.d.ts +14 -0
  8. package/dist/fleet-manager/__tests__/session-control.test.d.ts.map +1 -0
  9. package/dist/fleet-manager/__tests__/session-control.test.js +292 -0
  10. package/dist/fleet-manager/__tests__/session-control.test.js.map +1 -0
  11. package/dist/fleet-manager/__tests__/trigger.test.js +137 -2
  12. package/dist/fleet-manager/__tests__/trigger.test.js.map +1 -1
  13. package/dist/fleet-manager/agent-management.d.ts +107 -0
  14. package/dist/fleet-manager/agent-management.d.ts.map +1 -0
  15. package/dist/fleet-manager/agent-management.js +237 -0
  16. package/dist/fleet-manager/agent-management.js.map +1 -0
  17. package/dist/fleet-manager/errors.d.ts +30 -0
  18. package/dist/fleet-manager/errors.d.ts.map +1 -1
  19. package/dist/fleet-manager/errors.js +40 -0
  20. package/dist/fleet-manager/errors.js.map +1 -1
  21. package/dist/fleet-manager/fleet-manager.d.ts +166 -2
  22. package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
  23. package/dist/fleet-manager/fleet-manager.js +289 -2
  24. package/dist/fleet-manager/fleet-manager.js.map +1 -1
  25. package/dist/fleet-manager/index.d.ts +1 -0
  26. package/dist/fleet-manager/index.d.ts.map +1 -1
  27. package/dist/fleet-manager/index.js +2 -0
  28. package/dist/fleet-manager/index.js.map +1 -1
  29. package/dist/fleet-manager/job-control.d.ts.map +1 -1
  30. package/dist/fleet-manager/job-control.js +54 -9
  31. package/dist/fleet-manager/job-control.js.map +1 -1
  32. package/dist/fleet-manager/types.d.ts +28 -0
  33. package/dist/fleet-manager/types.d.ts.map +1 -1
  34. package/dist/runner/index.d.ts +1 -1
  35. package/dist/runner/index.d.ts.map +1 -1
  36. package/dist/runner/index.js +1 -1
  37. package/dist/runner/index.js.map +1 -1
  38. package/dist/runner/runtime/__tests__/cli-runtime.test.js +35 -0
  39. package/dist/runner/runtime/__tests__/cli-runtime.test.js.map +1 -1
  40. package/dist/runner/runtime/__tests__/cli-session-path.test.js +63 -6
  41. package/dist/runner/runtime/__tests__/cli-session-path.test.js.map +1 -1
  42. package/dist/runner/runtime/__tests__/docker-security.test.js +39 -0
  43. package/dist/runner/runtime/__tests__/docker-security.test.js.map +1 -1
  44. package/dist/runner/runtime/cli-session-path.d.ts +18 -6
  45. package/dist/runner/runtime/cli-session-path.d.ts.map +1 -1
  46. package/dist/runner/runtime/cli-session-path.js +48 -8
  47. package/dist/runner/runtime/cli-session-path.js.map +1 -1
  48. package/dist/runner/runtime/index.d.ts +1 -0
  49. package/dist/runner/runtime/index.d.ts.map +1 -1
  50. package/dist/runner/runtime/index.js +5 -0
  51. package/dist/runner/runtime/index.js.map +1 -1
  52. package/dist/scheduler/errors.d.ts +1 -0
  53. package/dist/scheduler/errors.d.ts.map +1 -1
  54. package/dist/state/__tests__/session-discovery.test.js +172 -6
  55. package/dist/state/__tests__/session-discovery.test.js.map +1 -1
  56. package/dist/state/session-discovery.d.ts +45 -0
  57. package/dist/state/session-discovery.d.ts.map +1 -1
  58. package/dist/state/session-discovery.js +78 -4
  59. package/dist/state/session-discovery.js.map +1 -1
  60. package/package.json +1 -1
@@ -0,0 +1,292 @@
1
+ /**
2
+ * Tests for first-class session control on FleetManager:
3
+ * - deleteSession(name, sessionId): removes a session transcript from disk
4
+ * - setSessionName(name, sessionId, customName): sets/clears a custom name
5
+ *
6
+ * These exercise the REAL SessionDiscoveryService + SessionMetadataStore (no
7
+ * mocks) so we verify the transcript file is actually removed, the custom name
8
+ * is persisted, and a subsequent getAgentSessions reflects the new name.
9
+ *
10
+ * `os.homedir()` is mocked to a temp directory so CLI transcripts
11
+ * (~/.claude/projects/<encoded>/<id>.jsonl) land in a controlled location.
12
+ */
13
+ import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
14
+ import { tmpdir } from "node:os";
15
+ import { join } from "node:path";
16
+ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
17
+ // Mock the Claude SDK to prevent real API calls.
18
+ vi.mock("@anthropic-ai/claude-agent-sdk", () => ({
19
+ query: vi.fn(),
20
+ }));
21
+ // Mock os.homedir so CLI session paths resolve under our temp dir. We keep the
22
+ // real module for everything else (tmpdir, etc.).
23
+ let mockHome;
24
+ vi.mock("node:os", async (importOriginal) => {
25
+ const actual = await importOriginal();
26
+ return {
27
+ ...actual,
28
+ default: { ...actual, homedir: () => mockHome },
29
+ homedir: () => mockHome,
30
+ };
31
+ });
32
+ import { createJob, encodePathForCli, getCliSessionFile, SessionMetadataStore, updateJob, } from "../../index.js";
33
+ import { AgentNotFoundError, InvalidStateError } from "../errors.js";
34
+ import { FleetManager } from "../fleet-manager.js";
35
+ const silentLogger = () => ({
36
+ debug: vi.fn(),
37
+ info: vi.fn(),
38
+ warn: vi.fn(),
39
+ error: vi.fn(),
40
+ });
41
+ describe("FleetManager session control (deleteSession / setSessionName)", () => {
42
+ let tempDir;
43
+ let configDir;
44
+ let stateDir;
45
+ let workDir;
46
+ beforeEach(async () => {
47
+ tempDir = await mkdtemp(join(tmpdir(), "fleet-session-ctl-test-"));
48
+ configDir = join(tempDir, "config");
49
+ stateDir = join(tempDir, ".herdctl");
50
+ workDir = join(tempDir, "workspace");
51
+ mockHome = join(tempDir, "home");
52
+ await mkdir(configDir, { recursive: true });
53
+ await mkdir(workDir, { recursive: true });
54
+ await mkdir(mockHome, { recursive: true });
55
+ });
56
+ afterEach(async () => {
57
+ await new Promise((resolve) => setTimeout(resolve, 50));
58
+ await rm(tempDir, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
59
+ });
60
+ async function createConfig(config) {
61
+ const configPath = join(configDir, "herdctl.yaml");
62
+ const yaml = await import("yaml");
63
+ await writeFile(configPath, yaml.stringify(config));
64
+ return configPath;
65
+ }
66
+ async function createAgentConfig(name, config) {
67
+ const agentDir = join(configDir, "agents");
68
+ await mkdir(agentDir, { recursive: true });
69
+ const agentPath = join(agentDir, `${name}.yaml`);
70
+ const yaml = await import("yaml");
71
+ await writeFile(agentPath, yaml.stringify(config));
72
+ return agentPath;
73
+ }
74
+ function createTestManager(configPath) {
75
+ return new FleetManager({
76
+ configPath,
77
+ stateDir,
78
+ checkInterval: 10000,
79
+ logger: silentLogger(),
80
+ });
81
+ }
82
+ /** Create a CLI transcript file for a session under the mocked ~/.claude. */
83
+ async function writeTranscript(wd, sessionId, content = "{}\n") {
84
+ const projDir = join(mockHome, ".claude", "projects", encodePathForCli(wd));
85
+ await mkdir(projDir, { recursive: true });
86
+ await writeFile(join(projDir, `${sessionId}.jsonl`), content);
87
+ }
88
+ async function buildManagerWithAgent(extraAgentConfig = {}) {
89
+ await createAgentConfig("keeper", {
90
+ name: "keeper",
91
+ working_directory: workDir,
92
+ ...extraAgentConfig,
93
+ });
94
+ const configPath = await createConfig({
95
+ version: 1,
96
+ agents: [{ path: "./agents/keeper.yaml" }],
97
+ });
98
+ const manager = createTestManager(configPath);
99
+ await manager.initialize();
100
+ return manager;
101
+ }
102
+ // ===========================================================================
103
+ // deleteSession
104
+ // ===========================================================================
105
+ describe("deleteSession()", () => {
106
+ const sessionId = "11111111-2222-3333-4444-555555555555";
107
+ it("deletes the correct transcript file and returns true", async () => {
108
+ const manager = await buildManagerWithAgent();
109
+ await writeTranscript(workDir, sessionId);
110
+ const sessionFile = getCliSessionFile(workDir, sessionId);
111
+ expect(await readFile(sessionFile, "utf-8")).toBe("{}\n");
112
+ const removed = await manager.deleteSession("keeper", sessionId);
113
+ expect(removed).toBe(true);
114
+ // File should be gone now.
115
+ await expect(readFile(sessionFile, "utf-8")).rejects.toMatchObject({ code: "ENOENT" });
116
+ });
117
+ it("returns false when no transcript exists", async () => {
118
+ const manager = await buildManagerWithAgent();
119
+ // No transcript written.
120
+ const removed = await manager.deleteSession("keeper", sessionId);
121
+ expect(removed).toBe(false);
122
+ });
123
+ it("rejects a path-traversal session id", async () => {
124
+ const manager = await buildManagerWithAgent();
125
+ await expect(manager.deleteSession("keeper", "../../etc/passwd")).rejects.toThrow(/Invalid session ID/);
126
+ });
127
+ it("throws AgentNotFoundError for an unknown agent", async () => {
128
+ const manager = await buildManagerWithAgent();
129
+ await expect(manager.deleteSession("ghost", sessionId)).rejects.toThrow(AgentNotFoundError);
130
+ });
131
+ it("throws InvalidStateError before initialize()", async () => {
132
+ await createAgentConfig("keeper", { name: "keeper", working_directory: workDir });
133
+ const configPath = await createConfig({
134
+ version: 1,
135
+ agents: [{ path: "./agents/keeper.yaml" }],
136
+ });
137
+ const manager = createTestManager(configPath);
138
+ // not initialized
139
+ await expect(manager.deleteSession("keeper", sessionId)).rejects.toThrow(InvalidStateError);
140
+ });
141
+ it("removes the deleted session from a subsequent getAgentSessions listing", async () => {
142
+ const manager = await buildManagerWithAgent();
143
+ await writeTranscript(workDir, sessionId, "{}\n");
144
+ // Attribute the session to the agent via a job record so it surfaces in
145
+ // getAgentSessions (which only returns sessions attributed to the agent).
146
+ const jobsDir = join(stateDir, "jobs");
147
+ const job = await createJob(jobsDir, {
148
+ agent: "keeper",
149
+ trigger_type: "manual",
150
+ prompt: "x",
151
+ });
152
+ await updateJob(jobsDir, job.id, { session_id: sessionId });
153
+ const before = await manager.getAgentSessions("keeper");
154
+ expect(before.map((s) => s.sessionId)).toContain(sessionId);
155
+ const removed = await manager.deleteSession("keeper", sessionId);
156
+ expect(removed).toBe(true);
157
+ const after = await manager.getAgentSessions("keeper");
158
+ expect(after.map((s) => s.sessionId)).not.toContain(sessionId);
159
+ });
160
+ it("uses the docker-sessions location for docker agents", async () => {
161
+ const manager = await buildManagerWithAgent({ docker: { enabled: true } });
162
+ // Docker transcripts live flat in .herdctl/docker-sessions/<id>.jsonl
163
+ const dockerDir = join(stateDir, "docker-sessions");
164
+ await mkdir(dockerDir, { recursive: true });
165
+ await writeFile(join(dockerDir, `${sessionId}.jsonl`), "{}\n");
166
+ const removed = await manager.deleteSession("keeper", sessionId);
167
+ expect(removed).toBe(true);
168
+ await expect(readFile(join(dockerDir, `${sessionId}.jsonl`), "utf-8")).rejects.toMatchObject({
169
+ code: "ENOENT",
170
+ });
171
+ });
172
+ });
173
+ // ===========================================================================
174
+ // setSessionName
175
+ // ===========================================================================
176
+ describe("setSessionName()", () => {
177
+ const sessionId = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
178
+ it("persists a custom name via the metadata store", async () => {
179
+ const manager = await buildManagerWithAgent();
180
+ await manager.setSessionName("keeper", sessionId, "Feature Work");
181
+ // Verify directly via a fresh store reading the same state dir.
182
+ const store = new SessionMetadataStore(stateDir);
183
+ expect(await store.getCustomName("keeper", sessionId)).toBe("Feature Work");
184
+ });
185
+ it("trims whitespace from the custom name", async () => {
186
+ const manager = await buildManagerWithAgent();
187
+ await manager.setSessionName("keeper", sessionId, " Padded ");
188
+ const store = new SessionMetadataStore(stateDir);
189
+ expect(await store.getCustomName("keeper", sessionId)).toBe("Padded");
190
+ });
191
+ it("clears the custom name when passed null", async () => {
192
+ const manager = await buildManagerWithAgent();
193
+ await manager.setSessionName("keeper", sessionId, "Temp");
194
+ await manager.setSessionName("keeper", sessionId, null);
195
+ const store = new SessionMetadataStore(stateDir);
196
+ expect(await store.getCustomName("keeper", sessionId)).toBeUndefined();
197
+ });
198
+ it("clears the custom name when passed an empty/whitespace string", async () => {
199
+ const manager = await buildManagerWithAgent();
200
+ await manager.setSessionName("keeper", sessionId, "Temp");
201
+ await manager.setSessionName("keeper", sessionId, " ");
202
+ const store = new SessionMetadataStore(stateDir);
203
+ expect(await store.getCustomName("keeper", sessionId)).toBeUndefined();
204
+ });
205
+ it("is reflected in a subsequent getAgentSessions listing", async () => {
206
+ const manager = await buildManagerWithAgent();
207
+ await writeTranscript(workDir, sessionId, "{}\n");
208
+ // Attribute the session to the agent.
209
+ const jobsDir = join(stateDir, "jobs");
210
+ const job = await createJob(jobsDir, {
211
+ agent: "keeper",
212
+ trigger_type: "manual",
213
+ prompt: "x",
214
+ });
215
+ await updateJob(jobsDir, job.id, { session_id: sessionId });
216
+ // Prime the discovery cache first so we prove the rename invalidates it.
217
+ const before = await manager.getAgentSessions("keeper");
218
+ const beforeEntry = before.find((s) => s.sessionId === sessionId);
219
+ expect(beforeEntry?.customName).toBeUndefined();
220
+ await manager.setSessionName("keeper", sessionId, "Renamed Session");
221
+ const after = await manager.getAgentSessions("keeper");
222
+ const afterEntry = after.find((s) => s.sessionId === sessionId);
223
+ expect(afterEntry?.customName).toBe("Renamed Session");
224
+ });
225
+ it("throws AgentNotFoundError for an unknown agent", async () => {
226
+ const manager = await buildManagerWithAgent();
227
+ await expect(manager.setSessionName("ghost", sessionId, "x")).rejects.toThrow(AgentNotFoundError);
228
+ });
229
+ it("throws InvalidStateError before initialize()", async () => {
230
+ await createAgentConfig("keeper", { name: "keeper", working_directory: workDir });
231
+ const configPath = await createConfig({
232
+ version: 1,
233
+ agents: [{ path: "./agents/keeper.yaml" }],
234
+ });
235
+ const manager = createTestManager(configPath);
236
+ await expect(manager.setSessionName("keeper", sessionId, "x")).rejects.toThrow(InvalidStateError);
237
+ });
238
+ });
239
+ // ===========================================================================
240
+ // invalidateSessions
241
+ // ===========================================================================
242
+ describe("invalidateSessions()", () => {
243
+ const sessionA = "11111111-1111-1111-1111-111111111111";
244
+ const sessionB = "22222222-2222-2222-2222-222222222222";
245
+ /** Attribute a session to an agent via a job record so it surfaces. */
246
+ async function attribute(sessionId, agent = "keeper") {
247
+ const jobsDir = join(stateDir, "jobs");
248
+ const job = await createJob(jobsDir, { agent, trigger_type: "manual", prompt: "x" });
249
+ await updateJob(jobsDir, job.id, { session_id: sessionId });
250
+ }
251
+ it("forces a rebuild so a new session appears on the next getAgentSessions", async () => {
252
+ const manager = await buildManagerWithAgent();
253
+ await writeTranscript(workDir, sessionA);
254
+ await attribute(sessionA);
255
+ // Prime the discovery cache.
256
+ const before = await manager.getAgentSessions("keeper");
257
+ expect(before.map((s) => s.sessionId)).toEqual([sessionA]);
258
+ // A NEW session transcript appears (plus its attribution).
259
+ await writeTranscript(workDir, sessionB);
260
+ await attribute(sessionB);
261
+ // Force a refresh — the new session must now be listed.
262
+ manager.invalidateSessions("keeper");
263
+ const after = await manager.getAgentSessions("keeper");
264
+ expect(after.map((s) => s.sessionId).sort()).toEqual([sessionA, sessionB]);
265
+ });
266
+ it("returns void (no Promise) and is a no-op when the agent has no working dir", async () => {
267
+ // No working_directory configured for this agent.
268
+ await createAgentConfig("rootless", { name: "rootless" });
269
+ const configPath = await createConfig({
270
+ version: 1,
271
+ agents: [{ path: "./agents/rootless.yaml" }],
272
+ });
273
+ const manager = createTestManager(configPath);
274
+ await manager.initialize();
275
+ expect(manager.invalidateSessions("rootless")).toBeUndefined();
276
+ });
277
+ it("throws AgentNotFoundError for an unknown agent", async () => {
278
+ const manager = await buildManagerWithAgent();
279
+ expect(() => manager.invalidateSessions("ghost")).toThrow(AgentNotFoundError);
280
+ });
281
+ it("throws InvalidStateError before initialize()", async () => {
282
+ await createAgentConfig("keeper", { name: "keeper", working_directory: workDir });
283
+ const configPath = await createConfig({
284
+ version: 1,
285
+ agents: [{ path: "./agents/keeper.yaml" }],
286
+ });
287
+ const manager = createTestManager(configPath);
288
+ expect(() => manager.invalidateSessions("keeper")).toThrow(InvalidStateError);
289
+ });
290
+ });
291
+ });
292
+ //# sourceMappingURL=session-control.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-control.test.js","sourceRoot":"","sources":["../../../src/fleet-manager/__tests__/session-control.test.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,17 @@ vi.mock("@anthropic-ai/claude-agent-sdk", () => ({
14
14
  }));
15
15
  import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
16
16
  import { tmpdir } from "node:os";
17
- import { join } from "node:path";
18
- import { AgentNotFoundError, InvalidStateError, ScheduleNotFoundError } from "../errors.js";
17
+ import { isAbsolute, join, resolve } from "node:path";
18
+ import { query } from "@anthropic-ai/claude-agent-sdk";
19
+ import { AgentNotFoundError, InvalidStateError, InvalidWorkingDirectoryOverrideError, ScheduleNotFoundError, } from "../errors.js";
19
20
  import { FleetManager } from "../fleet-manager.js";
21
+ /** Read the `cwd` passed to the (mocked) SDK query for the most recent trigger. */
22
+ function lastSdkCwd() {
23
+ const mockQuery = vi.mocked(query);
24
+ const lastCall = mockQuery.mock.calls.at(-1);
25
+ const callOptions = lastCall?.[0]?.options;
26
+ return callOptions?.cwd;
27
+ }
20
28
  describe("Manual Agent Triggering (US-5)", () => {
21
29
  let tempDir;
22
30
  let configDir;
@@ -475,5 +483,132 @@ describe("Manual Agent Triggering (US-5)", () => {
475
483
  }));
476
484
  });
477
485
  });
486
+ describe("per-trigger working-directory override", () => {
487
+ it("runs in the override cwd when workingDirectory is provided", async () => {
488
+ // Agent configured with one working_directory...
489
+ await createAgentConfig("wd-agent", {
490
+ name: "wd-agent",
491
+ working_directory: "/configured/dir",
492
+ });
493
+ const configPath = await createConfig({
494
+ version: 1,
495
+ agents: [{ path: "./agents/wd-agent.yaml" }],
496
+ });
497
+ const manager = createTestManager(configPath);
498
+ await manager.initialize();
499
+ // ...but triggered against a different absolute directory.
500
+ const overrideDir = "/override/project";
501
+ const result = await manager.trigger("wd-agent", undefined, {
502
+ workingDirectory: overrideDir,
503
+ });
504
+ expect(result.success).toBe(true);
505
+ // The SDK runtime should have been invoked with the override cwd, not the
506
+ // configured working_directory.
507
+ expect(lastSdkCwd()).toBe(overrideDir);
508
+ });
509
+ it("uses the configured working_directory when override is omitted (unchanged)", async () => {
510
+ await createAgentConfig("wd-default-agent", {
511
+ name: "wd-default-agent",
512
+ working_directory: "/configured/dir",
513
+ });
514
+ const configPath = await createConfig({
515
+ version: 1,
516
+ agents: [{ path: "./agents/wd-default-agent.yaml" }],
517
+ });
518
+ const manager = createTestManager(configPath);
519
+ await manager.initialize();
520
+ await manager.trigger("wd-default-agent");
521
+ // Default behavior: SDK cwd is the configured working_directory.
522
+ expect(lastSdkCwd()).toBe("/configured/dir");
523
+ });
524
+ it("leaves the resolved cwd unchanged for an agent without an explicit working_directory when override is omitted", async () => {
525
+ await createAgentConfig("wd-none-agent", {
526
+ name: "wd-none-agent",
527
+ });
528
+ const configPath = await createConfig({
529
+ version: 1,
530
+ agents: [{ path: "./agents/wd-none-agent.yaml" }],
531
+ });
532
+ const manager = createTestManager(configPath);
533
+ await manager.initialize();
534
+ // Baseline: trigger with no override. The loader resolves a default
535
+ // working_directory (the agent's config dir), which becomes the SDK cwd.
536
+ await manager.trigger("wd-none-agent");
537
+ const baselineCwd = lastSdkCwd();
538
+ // Triggering again with no override must produce the identical cwd —
539
+ // proving the override code path is a no-op when omitted.
540
+ await manager.trigger("wd-none-agent");
541
+ expect(lastSdkCwd()).toBe(baselineCwd);
542
+ });
543
+ it("lets an agent without configured working_directory run against an override", async () => {
544
+ await createAgentConfig("wd-bare-agent", {
545
+ name: "wd-bare-agent",
546
+ });
547
+ const configPath = await createConfig({
548
+ version: 1,
549
+ agents: [{ path: "./agents/wd-bare-agent.yaml" }],
550
+ });
551
+ const manager = createTestManager(configPath);
552
+ await manager.initialize();
553
+ await manager.trigger("wd-bare-agent", undefined, {
554
+ workingDirectory: "/sweeper/target",
555
+ });
556
+ expect(lastSdkCwd()).toBe("/sweeper/target");
557
+ });
558
+ it("resolves a relative override against process.cwd()", async () => {
559
+ await createAgentConfig("wd-rel-agent", {
560
+ name: "wd-rel-agent",
561
+ });
562
+ const configPath = await createConfig({
563
+ version: 1,
564
+ agents: [{ path: "./agents/wd-rel-agent.yaml" }],
565
+ });
566
+ const manager = createTestManager(configPath);
567
+ await manager.initialize();
568
+ await manager.trigger("wd-rel-agent", undefined, {
569
+ workingDirectory: "some/relative/dir",
570
+ });
571
+ const cwd = lastSdkCwd();
572
+ expect(typeof cwd).toBe("string");
573
+ expect(isAbsolute(cwd)).toBe(true);
574
+ expect(cwd).toBe(resolve(process.cwd(), "some/relative/dir"));
575
+ });
576
+ it("rejects an empty-string override", async () => {
577
+ await createAgentConfig("wd-empty-agent", {
578
+ name: "wd-empty-agent",
579
+ });
580
+ const configPath = await createConfig({
581
+ version: 1,
582
+ agents: [{ path: "./agents/wd-empty-agent.yaml" }],
583
+ });
584
+ const manager = createTestManager(configPath);
585
+ await manager.initialize();
586
+ // Typed error (extends FleetManagerError), not a raw Error — per repo
587
+ // guidelines and the CodeRabbit fix.
588
+ await expect(manager.trigger("wd-empty-agent", undefined, { workingDirectory: " " })).rejects.toThrow(InvalidWorkingDirectoryOverrideError);
589
+ await expect(manager.trigger("wd-empty-agent", undefined, { workingDirectory: " " })).rejects.toThrow(/Invalid workingDirectory override/);
590
+ });
591
+ it("the override does not mutate the agent's configured working_directory", async () => {
592
+ await createAgentConfig("wd-immutable-agent", {
593
+ name: "wd-immutable-agent",
594
+ working_directory: "/configured/dir",
595
+ });
596
+ const configPath = await createConfig({
597
+ version: 1,
598
+ agents: [{ path: "./agents/wd-immutable-agent.yaml" }],
599
+ });
600
+ const manager = createTestManager(configPath);
601
+ await manager.initialize();
602
+ // Trigger once with an override, then once without.
603
+ await manager.trigger("wd-immutable-agent", undefined, {
604
+ workingDirectory: "/override/dir",
605
+ });
606
+ expect(lastSdkCwd()).toBe("/override/dir");
607
+ // The second (un-overridden) trigger must fall back to the configured dir,
608
+ // proving the first trigger did not mutate the shared agent config.
609
+ await manager.trigger("wd-immutable-agent");
610
+ expect(lastSdkCwd()).toBe("/configured/dir");
611
+ });
612
+ });
478
613
  });
479
614
  //# sourceMappingURL=trigger.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trigger.test.js","sourceRoot":"","sources":["../../../src/fleet-manager/__tests__/trigger.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trigger.test.js","sourceRoot":"","sources":["../../../src/fleet-manager/__tests__/trigger.test.ts"],"names":[],"mappings":"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"}