@herdctl/core 5.9.0 → 5.10.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 (37) hide show
  1. package/dist/config/__tests__/schema.test.js +48 -0
  2. package/dist/config/__tests__/schema.test.js.map +1 -1
  3. package/dist/config/index.d.ts +1 -1
  4. package/dist/config/index.d.ts.map +1 -1
  5. package/dist/config/index.js +2 -2
  6. package/dist/config/index.js.map +1 -1
  7. package/dist/config/merge.d.ts +2 -1
  8. package/dist/config/merge.d.ts.map +1 -1
  9. package/dist/config/merge.js +5 -0
  10. package/dist/config/merge.js.map +1 -1
  11. package/dist/config/schema.d.ts +858 -13
  12. package/dist/config/schema.d.ts.map +1 -1
  13. package/dist/config/schema.js +116 -1
  14. package/dist/config/schema.js.map +1 -1
  15. package/dist/fleet-manager/job-control.d.ts.map +1 -1
  16. package/dist/fleet-manager/job-control.js +2 -0
  17. package/dist/fleet-manager/job-control.js.map +1 -1
  18. package/dist/fleet-manager/types.d.ts +14 -0
  19. package/dist/fleet-manager/types.d.ts.map +1 -1
  20. package/dist/runner/job-executor.d.ts.map +1 -1
  21. package/dist/runner/job-executor.js +1 -0
  22. package/dist/runner/job-executor.js.map +1 -1
  23. package/dist/runner/runtime/__tests__/cli-runtime.test.d.ts +2 -0
  24. package/dist/runner/runtime/__tests__/cli-runtime.test.d.ts.map +1 -0
  25. package/dist/runner/runtime/__tests__/cli-runtime.test.js +82 -0
  26. package/dist/runner/runtime/__tests__/cli-runtime.test.js.map +1 -0
  27. package/dist/runner/runtime/cli-runtime.d.ts.map +1 -1
  28. package/dist/runner/runtime/cli-runtime.js +171 -4
  29. package/dist/runner/runtime/cli-runtime.js.map +1 -1
  30. package/dist/runner/runtime/interface.d.ts +3 -1
  31. package/dist/runner/runtime/interface.d.ts.map +1 -1
  32. package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -1
  33. package/dist/runner/runtime/sdk-runtime.js +20 -0
  34. package/dist/runner/runtime/sdk-runtime.js.map +1 -1
  35. package/dist/runner/types.d.ts +3 -1
  36. package/dist/runner/types.d.ts.map +1 -1
  37. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli-runtime.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-runtime.test.d.ts","sourceRoot":"","sources":["../../../../src/runner/runtime/__tests__/cli-runtime.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import { EventEmitter } from "node:events";
2
+ import { beforeEach, describe, expect, it, vi } from "vitest";
3
+ const watchMessages = [];
4
+ const flushMessages = [];
5
+ vi.mock("../cli-session-path.js", () => ({
6
+ getCliSessionDir: vi.fn(() => "/tmp/sessions"),
7
+ getCliSessionFile: vi.fn(() => "/tmp/sessions/session-1.jsonl"),
8
+ waitForNewSessionFile: vi.fn(async () => "/tmp/sessions/session-1.jsonl"),
9
+ }));
10
+ vi.mock("../cli-session-watcher.js", () => ({
11
+ CLISessionWatcher: class {
12
+ constructor(_path) { }
13
+ async initialize() { }
14
+ async *watch() {
15
+ for (const message of watchMessages) {
16
+ yield message;
17
+ }
18
+ }
19
+ async flushRemainingMessages() {
20
+ return [...flushMessages];
21
+ }
22
+ stop() { }
23
+ },
24
+ }));
25
+ import { CLIRuntime } from "../cli-runtime.js";
26
+ function makeSubprocess(exitCode = 0) {
27
+ const promise = Promise.resolve({ exitCode });
28
+ promise.pid = 1234;
29
+ promise.stdout = new EventEmitter();
30
+ promise.stderr = new EventEmitter();
31
+ promise.kill = vi.fn();
32
+ return promise;
33
+ }
34
+ describe("CLIRuntime synthetic result aggregation", () => {
35
+ beforeEach(() => {
36
+ watchMessages.length = 0;
37
+ flushMessages.length = 0;
38
+ });
39
+ it("deduplicates assistant snapshots when aggregating turns and usage", async () => {
40
+ watchMessages.push({
41
+ type: "assistant",
42
+ message: {
43
+ id: "msg-1",
44
+ stop_reason: null,
45
+ usage: { input_tokens: 100, output_tokens: 25 },
46
+ content: [{ type: "text", text: "partial" }],
47
+ },
48
+ }, {
49
+ type: "assistant",
50
+ message: {
51
+ id: "msg-1",
52
+ stop_reason: "end_turn",
53
+ usage: { input_tokens: 100, output_tokens: 25 },
54
+ content: [{ type: "text", text: "final one" }],
55
+ },
56
+ }, {
57
+ type: "assistant",
58
+ message: {
59
+ id: "msg-2",
60
+ stop_reason: "end_turn",
61
+ usage: { input_tokens: 10, output_tokens: 5 },
62
+ content: [{ type: "text", text: "final two" }],
63
+ },
64
+ });
65
+ const runtime = new CLIRuntime({
66
+ processSpawner: (() => makeSubprocess()),
67
+ });
68
+ const messages = [];
69
+ for await (const message of runtime.execute({
70
+ prompt: "Hello",
71
+ agent: { name: "test-agent", configPath: "/tmp/agent.yaml" },
72
+ })) {
73
+ messages.push(message);
74
+ }
75
+ const result = messages.find((m) => m.type === "result");
76
+ expect(result).toBeDefined();
77
+ expect(result?.num_turns).toBe(2);
78
+ expect(result?.usage?.input_tokens).toBe(110);
79
+ expect(result?.usage?.output_tokens).toBe(30);
80
+ });
81
+ });
82
+ //# sourceMappingURL=cli-runtime.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-runtime.test.js","sourceRoot":"","sources":["../../../../src/runner/runtime/__tests__/cli-runtime.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-runtime.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/cli-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAI9E;;;;;;;;;;;;;GAaG;AACH,KAAK,cAAc,GAAG,CACpB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,KACjB,UAAU,CAAC;AAEhB;;GAEG;AACH,UAAU,iBAAiB;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAW,YAAW,gBAAgB;IACjD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAC,CAAS;gBAExB,OAAO,CAAC,EAAE,iBAAiB;IAavC;;;;;;;;;;;;;;;;;;OAkBG;IACI,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC;CA4R1E"}
1
+ {"version":3,"file":"cli-runtime.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/cli-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAK9E;;;;;;;;;;;;;GAaG;AACH,KAAK,cAAc,GAAG,CACpB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,KACjB,UAAU,CAAC;AAEhB;;GAEG;AACH,UAAU,iBAAiB;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,UAAW,YAAW,gBAAgB;IACjD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,kBAAkB,CAAC,CAAS;gBAExB,OAAO,CAAC,EAAE,iBAAiB;IAavC;;;;;;;;;;;;;;;;;;OAkBG;IACI,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC;CAge1E"}
@@ -18,6 +18,7 @@ import { createLogger } from "../../utils/logger.js";
18
18
  import { transformMcpServers } from "../sdk-adapter.js";
19
19
  import { getCliSessionDir, getCliSessionFile, waitForNewSessionFile } from "./cli-session-path.js";
20
20
  import { CLISessionWatcher } from "./cli-session-watcher.js";
21
+ import { startMcpHttpBridge } from "./mcp-http-bridge.js";
21
22
  const logger = createLogger("CLIRuntime");
22
23
  /**
23
24
  * CLI runtime implementation
@@ -94,10 +95,16 @@ export class CLIRuntime {
94
95
  if (options.agent.model) {
95
96
  args.push("--model", options.agent.model);
96
97
  }
97
- // Add system prompt if specified
98
- if (options.agent.system_prompt) {
98
+ // Add system prompt if specified, with optional append for chat platforms
99
+ if (options.agent.system_prompt && options.systemPromptAppend) {
100
+ args.push("--system-prompt", options.agent.system_prompt + "\n\n" + options.systemPromptAppend);
101
+ }
102
+ else if (options.agent.system_prompt) {
99
103
  args.push("--system-prompt", options.agent.system_prompt);
100
104
  }
105
+ else if (options.systemPromptAppend) {
106
+ args.push("--system-prompt", options.systemPromptAppend);
107
+ }
101
108
  // Add allowed tools if specified (direct passthrough to CLI)
102
109
  // Note: --allowedTools accepts "comma or space-separated" but space-separated consumes
103
110
  // all following args, so we must use comma-separated
@@ -118,11 +125,81 @@ export class CLIRuntime {
118
125
  }
119
126
  // Add MCP servers if specified
120
127
  // Transform agent config format to SDK format and serialize to JSON
128
+ // Claude CLI expects: {"mcpServers": { ... }} (same shape as .mcp.json)
121
129
  if (options.agent.mcp_servers && Object.keys(options.agent.mcp_servers).length > 0) {
122
130
  const mcpServers = transformMcpServers(options.agent.mcp_servers);
123
- const mcpConfig = JSON.stringify(mcpServers);
131
+ const mcpConfig = JSON.stringify({ mcpServers });
124
132
  args.push("--mcp-config", mcpConfig);
125
133
  }
134
+ // Track env mutation so we can restore it (see CLAUDE_CODE_STREAM_CLOSE_TIMEOUT below)
135
+ let savedStreamCloseTimeout = null; // null = not mutated
136
+ // Start HTTP bridges for injected MCP servers (e.g., file sender)
137
+ // Same pattern as container-runner: expose in-process handlers via HTTP,
138
+ // then pass as HTTP-type MCP servers in --mcp-config
139
+ const bridges = [];
140
+ if (options.injectedMcpServers && Object.keys(options.injectedMcpServers).length > 0) {
141
+ for (const [name, def] of Object.entries(options.injectedMcpServers)) {
142
+ let bridge;
143
+ try {
144
+ bridge = await startMcpHttpBridge(def);
145
+ }
146
+ catch (bridgeError) {
147
+ // Clean up any bridges that started successfully before this failure
148
+ for (const b of bridges) {
149
+ try {
150
+ await b.close();
151
+ }
152
+ catch {
153
+ // best-effort cleanup
154
+ }
155
+ }
156
+ bridges.length = 0;
157
+ throw bridgeError;
158
+ }
159
+ bridges.push(bridge);
160
+ // Build or extend the --mcp-config to include this HTTP server
161
+ // Find existing --mcp-config arg index to merge with it
162
+ const mcpConfigIdx = args.indexOf("--mcp-config");
163
+ let mcpConfig;
164
+ if (mcpConfigIdx !== -1 && mcpConfigIdx + 1 < args.length) {
165
+ // Parse existing config and add the bridge
166
+ mcpConfig = JSON.parse(args[mcpConfigIdx + 1]);
167
+ }
168
+ else {
169
+ mcpConfig = { mcpServers: {} };
170
+ }
171
+ mcpConfig.mcpServers[name] = {
172
+ type: "http",
173
+ url: `http://127.0.0.1:${bridge.port}/mcp`,
174
+ };
175
+ const configJson = JSON.stringify(mcpConfig);
176
+ if (mcpConfigIdx !== -1) {
177
+ args[mcpConfigIdx + 1] = configJson;
178
+ }
179
+ else {
180
+ args.push("--mcp-config", configJson);
181
+ }
182
+ logger.debug(`Started MCP HTTP bridge for '${name}' on port ${bridge.port}`);
183
+ }
184
+ // Auto-add injected MCP tool patterns to allowedTools.
185
+ // Only needed when the agent has an explicit allowlist — without one, all tools
186
+ // (including injected MCP tools) are allowed by default.
187
+ const allowedToolsIdx = args.indexOf("--allowedTools");
188
+ if (allowedToolsIdx !== -1 && allowedToolsIdx + 1 < args.length) {
189
+ const existing = args[allowedToolsIdx + 1];
190
+ const injectedPatterns = Object.keys(options.injectedMcpServers).map((name) => `mcp__${name}__*`);
191
+ args[allowedToolsIdx + 1] = [existing, ...injectedPatterns].join(",");
192
+ }
193
+ // File uploads via MCP tools can take longer than the default 60s timeout.
194
+ // Save the original value so we can restore it in `finally` to avoid leaking
195
+ // state across concurrent jobs.
196
+ if (options.injectedMcpServers["herdctl-file-sender"]) {
197
+ if (!process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT) {
198
+ savedStreamCloseTimeout = undefined; // marker: was not set
199
+ process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT = "120000";
200
+ }
201
+ }
202
+ }
126
203
  // Add session options
127
204
  if (options.resume) {
128
205
  args.push("--resume", options.resume);
@@ -138,6 +215,47 @@ export class CLIRuntime {
138
215
  let subprocess;
139
216
  let watcher;
140
217
  let hasError = false;
218
+ // Track usage stats across all assistant turns for synthetic result message
219
+ let totalInputTokens = 0;
220
+ let totalOutputTokens = 0;
221
+ let numTurns = 0;
222
+ let lastAssistantText = "";
223
+ const seenAssistantMessageIds = new Set();
224
+ // Helper to accumulate usage from each assistant message
225
+ const trackAssistantUsage = (message) => {
226
+ if (message.type !== "assistant") {
227
+ return;
228
+ }
229
+ const assistantMeta = message;
230
+ const stopReason = assistantMeta.message?.stop_reason;
231
+ // Ignore intermediate assistant snapshots.
232
+ if (stopReason === null) {
233
+ return;
234
+ }
235
+ // Claude CLI can emit duplicate finalized snapshots for the same message id.
236
+ const messageId = assistantMeta.message?.id;
237
+ if (typeof messageId === "string" && messageId.length > 0) {
238
+ if (seenAssistantMessageIds.has(messageId)) {
239
+ return;
240
+ }
241
+ seenAssistantMessageIds.add(messageId);
242
+ }
243
+ numTurns++;
244
+ const msg = message;
245
+ const usage = msg.message?.usage;
246
+ if (usage) {
247
+ totalInputTokens += usage.input_tokens ?? 0;
248
+ totalOutputTokens += usage.output_tokens ?? 0;
249
+ }
250
+ // Capture last text content for result fallback
251
+ const content = msg.message?.content;
252
+ if (Array.isArray(content)) {
253
+ const textParts = content.filter((b) => b.type === "text" && b.text).map((b) => b.text);
254
+ if (textParts.length > 0) {
255
+ lastAssistantText = textParts.join("");
256
+ }
257
+ }
258
+ };
141
259
  try {
142
260
  // Determine working directory root for cwd
143
261
  const working_directory = options.agent.working_directory;
@@ -199,7 +317,7 @@ export class CLIRuntime {
199
317
  // When starting new session, wait for a NEW file created after process start
200
318
  logger.debug("Waiting for new session file...");
201
319
  sessionFilePath = await waitForNewSessionFile(sessionDir, processStartTime, {
202
- timeoutMs: 15000, // Increase timeout to 15 seconds for debugging
320
+ timeoutMs: 60000, // Allow up to 60s for MCP servers to initialize
203
321
  pollIntervalMs: 200,
204
322
  });
205
323
  logger.debug(`New session, watching newly created file: ${sessionFilePath}`);
@@ -246,9 +364,14 @@ export class CLIRuntime {
246
364
  };
247
365
  logger.debug("Yielded synthetic system message with session ID");
248
366
  // Stream messages from the watcher as they arrive
367
+ let gotResultMessage = false;
249
368
  for await (const message of watcher.watch()) {
250
369
  logger.debug(`Received message type: ${message.type}`);
251
370
  yield message;
371
+ // Track assistant turn usage for synthetic result message
372
+ if (message.type === "assistant") {
373
+ trackAssistantUsage(message);
374
+ }
252
375
  // Track errors
253
376
  if (message.type === "error") {
254
377
  hasError = true;
@@ -256,6 +379,7 @@ export class CLIRuntime {
256
379
  // If this is a result message, we're done
257
380
  if (message.type === "result") {
258
381
  logger.debug("Got result message, stopping");
382
+ gotResultMessage = true;
259
383
  break;
260
384
  }
261
385
  }
@@ -274,10 +398,17 @@ export class CLIRuntime {
274
398
  for (const message of remainingMessages) {
275
399
  logger.debug(`Yielding remaining message type: ${message.type}`);
276
400
  yield message;
401
+ // Track assistant turn usage for synthetic result message
402
+ if (message.type === "assistant") {
403
+ trackAssistantUsage(message);
404
+ }
277
405
  // Track errors
278
406
  if (message.type === "error") {
279
407
  hasError = true;
280
408
  }
409
+ if (message.type === "result") {
410
+ gotResultMessage = true;
411
+ }
281
412
  }
282
413
  // If process failed and we didn't yield an error message, create one
283
414
  if (exitCode !== 0 && !hasError) {
@@ -287,6 +418,24 @@ export class CLIRuntime {
287
418
  code: `EXIT_${exitCode}`,
288
419
  };
289
420
  }
421
+ // Synthesize a result message for CLI runtime
422
+ // The Claude CLI doesn't emit "result" messages like the SDK does,
423
+ // so we aggregate usage stats from assistant turns and emit one.
424
+ if (!gotResultMessage) {
425
+ const durationMs = Date.now() - processStartTime;
426
+ logger.debug(`Emitting synthetic result: ${numTurns} turns, ${totalInputTokens}+${totalOutputTokens} tokens, ${durationMs}ms`);
427
+ yield {
428
+ type: "result",
429
+ result: lastAssistantText || "",
430
+ is_error: hasError,
431
+ duration_ms: durationMs,
432
+ num_turns: numTurns,
433
+ usage: {
434
+ input_tokens: totalInputTokens,
435
+ output_tokens: totalOutputTokens,
436
+ },
437
+ };
438
+ }
290
439
  }
291
440
  catch (error) {
292
441
  // Handle process errors
@@ -321,6 +470,24 @@ export class CLIRuntime {
321
470
  finally {
322
471
  // Cleanup
323
472
  watcher?.stop();
473
+ // Restore process.env if we mutated it
474
+ if (savedStreamCloseTimeout !== null) {
475
+ if (savedStreamCloseTimeout === undefined) {
476
+ delete process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT;
477
+ }
478
+ else {
479
+ process.env.CLAUDE_CODE_STREAM_CLOSE_TIMEOUT = savedStreamCloseTimeout;
480
+ }
481
+ }
482
+ // Close HTTP bridges for injected MCP servers
483
+ for (const bridge of bridges) {
484
+ try {
485
+ await bridge.close();
486
+ }
487
+ catch (err) {
488
+ logger.error(`Failed to close MCP HTTP bridge: ${err}`);
489
+ }
490
+ }
324
491
  }
325
492
  }
326
493
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cli-runtime.js","sourceRoot":"","sources":["../../../src/runner/runtime/cli-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-runtime.js","sourceRoot":"","sources":["../../../src/runner/runtime/cli-runtime.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,10 @@ export interface RuntimeExecuteOptions {
24
24
  fork?: boolean;
25
25
  /** AbortController for cancellation support */
26
26
  abortController?: AbortController;
27
- /** MCP servers to inject at runtime (SDK and Docker runtimes) */
27
+ /** MCP servers to inject at runtime (all runtimes: SDK, CLI, Docker) */
28
28
  injectedMcpServers?: Record<string, import("../types.js").InjectedMcpServerDef>;
29
+ /** Text to append to the agent's system prompt for this run */
30
+ systemPromptAppend?: string;
29
31
  }
30
32
  /**
31
33
  * Runtime interface for executing Claude agents
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,KAAK,EAAE,aAAa,CAAC;IAErB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,oBAAoB,CAAC,CAAC;CACjF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;CACpE"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,KAAK,EAAE,aAAa,CAAC;IAErB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,+CAA+C;IAC/C,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAEhF,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;CACpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-runtime.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/sdk-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAwB,UAAU,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA4D9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,UAAW,YAAW,gBAAgB;IACjD;;;;;;;;OAQG;IACI,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC;CAoD1E"}
1
+ {"version":3,"file":"sdk-runtime.d.ts","sourceRoot":"","sources":["../../../src/runner/runtime/sdk-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAwB,UAAU,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA4D9E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,UAAW,YAAW,gBAAgB;IACjD;;;;;;;;OAQG;IACI,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAAC,UAAU,CAAC;CAuE1E"}
@@ -96,6 +96,26 @@ export class SDKRuntime {
96
96
  resume: options.resume,
97
97
  fork: options.fork,
98
98
  });
99
+ // Apply system prompt append if provided (e.g., concise mode for chat platforms)
100
+ if (options.systemPromptAppend) {
101
+ const current = sdkOptions.systemPrompt;
102
+ if (typeof current === "string") {
103
+ sdkOptions.systemPrompt = current + "\n\n" + options.systemPromptAppend;
104
+ }
105
+ else if (current && typeof current === "object" && current.type === "preset") {
106
+ sdkOptions.systemPrompt = {
107
+ ...current,
108
+ append: (current.append ? current.append + "\n\n" : "") + options.systemPromptAppend,
109
+ };
110
+ }
111
+ else {
112
+ sdkOptions.systemPrompt = {
113
+ type: "preset",
114
+ preset: "claude_code",
115
+ append: options.systemPromptAppend,
116
+ };
117
+ }
118
+ }
99
119
  // Convert injected MCP server defs to in-process SDK MCP servers
100
120
  if (options.injectedMcpServers && Object.keys(options.injectedMcpServers).length > 0) {
101
121
  const configServers = sdkOptions.mcpServers ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-runtime.js","sourceRoot":"","sources":["../../../src/runner/runtime/sdk-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-runtime.js","sourceRoot":"","sources":["../../../src/runner/runtime/sdk-runtime.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,10 @@ export interface RunnerOptions {
29
29
  outputToFile?: boolean;
30
30
  /** AbortController for canceling the execution */
31
31
  abortController?: AbortController;
32
- /** MCP servers to inject at runtime (SDK and Docker runtimes) */
32
+ /** MCP servers to inject at runtime (all runtimes: SDK, CLI, Docker) */
33
33
  injectedMcpServers?: Record<string, InjectedMcpServerDef>;
34
+ /** Text to append to the agent's system prompt for this run */
35
+ systemPromptAppend?: string;
34
36
  }
35
37
  /**
36
38
  * SDK message types (as received from Claude Agent SDK)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runner/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runner/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herdctl/core",
3
- "version": "5.9.0",
3
+ "version": "5.10.0",
4
4
  "description": "Core library for herdctl fleet management",
5
5
  "license": "MIT",
6
6
  "type": "module",