@herdctl/core 1.3.1 → 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 (176) 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/runner/__tests__/job-executor.test.js +449 -118
  62. package/dist/runner/__tests__/job-executor.test.js.map +1 -1
  63. package/dist/runner/__tests__/sdk-adapter.test.js +137 -2
  64. package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -1
  65. package/dist/runner/index.d.ts +2 -0
  66. package/dist/runner/index.d.ts.map +1 -1
  67. package/dist/runner/index.js +1 -0
  68. package/dist/runner/index.js.map +1 -1
  69. package/dist/runner/job-executor.d.ts +12 -8
  70. package/dist/runner/job-executor.d.ts.map +1 -1
  71. package/dist/runner/job-executor.js +257 -132
  72. package/dist/runner/job-executor.js.map +1 -1
  73. package/dist/runner/runtime/__tests__/cli-session-path.test.d.ts +2 -0
  74. package/dist/runner/runtime/__tests__/cli-session-path.test.d.ts.map +1 -0
  75. package/dist/runner/runtime/__tests__/cli-session-path.test.js +150 -0
  76. package/dist/runner/runtime/__tests__/cli-session-path.test.js.map +1 -0
  77. package/dist/runner/runtime/__tests__/docker-config.test.d.ts +2 -0
  78. package/dist/runner/runtime/__tests__/docker-config.test.d.ts.map +1 -0
  79. package/dist/runner/runtime/__tests__/docker-config.test.js +352 -0
  80. package/dist/runner/runtime/__tests__/docker-config.test.js.map +1 -0
  81. package/dist/runner/runtime/__tests__/docker-security.test.d.ts +2 -0
  82. package/dist/runner/runtime/__tests__/docker-security.test.d.ts.map +1 -0
  83. package/dist/runner/runtime/__tests__/docker-security.test.js +384 -0
  84. package/dist/runner/runtime/__tests__/docker-security.test.js.map +1 -0
  85. package/dist/runner/runtime/__tests__/factory.test.d.ts +2 -0
  86. package/dist/runner/runtime/__tests__/factory.test.d.ts.map +1 -0
  87. package/dist/runner/runtime/__tests__/factory.test.js +149 -0
  88. package/dist/runner/runtime/__tests__/factory.test.js.map +1 -0
  89. package/dist/runner/runtime/__tests__/integration.test.d.ts +2 -0
  90. package/dist/runner/runtime/__tests__/integration.test.d.ts.map +1 -0
  91. package/dist/runner/runtime/__tests__/integration.test.js +274 -0
  92. package/dist/runner/runtime/__tests__/integration.test.js.map +1 -0
  93. package/dist/runner/runtime/cli-runtime.d.ts +107 -0
  94. package/dist/runner/runtime/cli-runtime.d.ts.map +1 -0
  95. package/dist/runner/runtime/cli-runtime.js +335 -0
  96. package/dist/runner/runtime/cli-runtime.js.map +1 -0
  97. package/dist/runner/runtime/cli-session-path.d.ts +108 -0
  98. package/dist/runner/runtime/cli-session-path.d.ts.map +1 -0
  99. package/dist/runner/runtime/cli-session-path.js +173 -0
  100. package/dist/runner/runtime/cli-session-path.js.map +1 -0
  101. package/dist/runner/runtime/cli-session-watcher.d.ts +55 -0
  102. package/dist/runner/runtime/cli-session-watcher.d.ts.map +1 -0
  103. package/dist/runner/runtime/cli-session-watcher.js +187 -0
  104. package/dist/runner/runtime/cli-session-watcher.js.map +1 -0
  105. package/dist/runner/runtime/container-manager.d.ts +76 -0
  106. package/dist/runner/runtime/container-manager.d.ts.map +1 -0
  107. package/dist/runner/runtime/container-manager.js +229 -0
  108. package/dist/runner/runtime/container-manager.js.map +1 -0
  109. package/dist/runner/runtime/container-runner.d.ts +62 -0
  110. package/dist/runner/runtime/container-runner.d.ts.map +1 -0
  111. package/dist/runner/runtime/container-runner.js +235 -0
  112. package/dist/runner/runtime/container-runner.js.map +1 -0
  113. package/dist/runner/runtime/docker-config.d.ts +100 -0
  114. package/dist/runner/runtime/docker-config.d.ts.map +1 -0
  115. package/dist/runner/runtime/docker-config.js +98 -0
  116. package/dist/runner/runtime/docker-config.js.map +1 -0
  117. package/dist/runner/runtime/factory.d.ts +63 -0
  118. package/dist/runner/runtime/factory.d.ts.map +1 -0
  119. package/dist/runner/runtime/factory.js +68 -0
  120. package/dist/runner/runtime/factory.js.map +1 -0
  121. package/dist/runner/runtime/index.d.ts +20 -0
  122. package/dist/runner/runtime/index.d.ts.map +1 -0
  123. package/dist/runner/runtime/index.js +21 -0
  124. package/dist/runner/runtime/index.js.map +1 -0
  125. package/dist/runner/runtime/interface.d.ts +59 -0
  126. package/dist/runner/runtime/interface.d.ts.map +1 -0
  127. package/dist/runner/runtime/interface.js +12 -0
  128. package/dist/runner/runtime/interface.js.map +1 -0
  129. package/dist/runner/runtime/sdk-runtime.d.ts +46 -0
  130. package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -0
  131. package/dist/runner/runtime/sdk-runtime.js +63 -0
  132. package/dist/runner/runtime/sdk-runtime.js.map +1 -0
  133. package/dist/runner/sdk-adapter.d.ts.map +1 -1
  134. package/dist/runner/sdk-adapter.js +28 -10
  135. package/dist/runner/sdk-adapter.js.map +1 -1
  136. package/dist/runner/types.d.ts +5 -1
  137. package/dist/runner/types.d.ts.map +1 -1
  138. package/dist/scheduler/__tests__/schedule-runner.test.js +61 -50
  139. package/dist/scheduler/__tests__/schedule-runner.test.js.map +1 -1
  140. package/dist/scheduler/schedule-runner.d.ts +1 -4
  141. package/dist/scheduler/schedule-runner.d.ts.map +1 -1
  142. package/dist/scheduler/schedule-runner.js +40 -8
  143. package/dist/scheduler/schedule-runner.js.map +1 -1
  144. package/dist/state/__tests__/session-schema.test.js +4 -0
  145. package/dist/state/__tests__/session-schema.test.js.map +1 -1
  146. package/dist/state/__tests__/session-validation.test.d.ts +2 -0
  147. package/dist/state/__tests__/session-validation.test.d.ts.map +1 -0
  148. package/dist/state/__tests__/session-validation.test.js +446 -0
  149. package/dist/state/__tests__/session-validation.test.js.map +1 -0
  150. package/dist/state/__tests__/session.test.js +68 -0
  151. package/dist/state/__tests__/session.test.js.map +1 -1
  152. package/dist/state/__tests__/working-directory-validation.test.d.ts +5 -0
  153. package/dist/state/__tests__/working-directory-validation.test.d.ts.map +1 -0
  154. package/dist/state/__tests__/working-directory-validation.test.js +101 -0
  155. package/dist/state/__tests__/working-directory-validation.test.js.map +1 -0
  156. package/dist/state/index.d.ts +2 -0
  157. package/dist/state/index.d.ts.map +1 -1
  158. package/dist/state/index.js +4 -0
  159. package/dist/state/index.js.map +1 -1
  160. package/dist/state/schemas/session-info.d.ts +32 -0
  161. package/dist/state/schemas/session-info.d.ts.map +1 -1
  162. package/dist/state/schemas/session-info.js +22 -0
  163. package/dist/state/schemas/session-info.js.map +1 -1
  164. package/dist/state/session-validation.d.ts +202 -0
  165. package/dist/state/session-validation.d.ts.map +1 -0
  166. package/dist/state/session-validation.js +407 -0
  167. package/dist/state/session-validation.js.map +1 -0
  168. package/dist/state/session.d.ts +23 -3
  169. package/dist/state/session.d.ts.map +1 -1
  170. package/dist/state/session.js +41 -6
  171. package/dist/state/session.js.map +1 -1
  172. package/dist/state/working-directory-validation.d.ts +52 -0
  173. package/dist/state/working-directory-validation.d.ts.map +1 -0
  174. package/dist/state/working-directory-validation.js +81 -0
  175. package/dist/state/working-directory-validation.js.map +1 -0
  176. package/package.json +7 -2
@@ -7,6 +7,7 @@
7
7
  * - Updating job status and metadata on completion
8
8
  */
9
9
  import type { RunnerOptionsWithCallbacks, RunnerResult, SDKMessage } from "./types.js";
10
+ import type { RuntimeInterface } from "./runtime/index.js";
10
11
  /**
11
12
  * Logger interface for job executor
12
13
  */
@@ -24,6 +25,7 @@ export interface JobExecutorOptions {
24
25
  }
25
26
  /**
26
27
  * SDK query function type (for dependency injection)
28
+ * @deprecated Use RuntimeInterface instead. This type is kept for test compatibility.
27
29
  */
28
30
  export type SDKQueryFunction = (params: {
29
31
  prompt: string;
@@ -41,7 +43,8 @@ export type SDKQueryFunction = (params: {
41
43
  *
42
44
  * @example
43
45
  * ```typescript
44
- * const executor = new JobExecutor(sdkQuery);
46
+ * const runtime = RuntimeFactory.create(agent);
47
+ * const executor = new JobExecutor(runtime);
45
48
  *
46
49
  * const result = await executor.execute({
47
50
  * agent: resolvedAgent,
@@ -54,15 +57,15 @@ export type SDKQueryFunction = (params: {
54
57
  * ```
55
58
  */
56
59
  export declare class JobExecutor {
57
- private sdkQuery;
60
+ private runtime;
58
61
  private logger;
59
62
  /**
60
63
  * Create a new job executor
61
64
  *
62
- * @param sdkQuery - The SDK query function to use for agent execution
65
+ * @param runtime - The runtime interface to use for agent execution
63
66
  * @param options - Optional configuration
64
67
  */
65
- constructor(sdkQuery: SDKQueryFunction, options?: JobExecutorOptions);
68
+ constructor(runtime: RuntimeInterface, options?: JobExecutorOptions);
66
69
  /**
67
70
  * Execute an agent and stream output to job log
68
71
  *
@@ -87,21 +90,22 @@ export declare class JobExecutor {
87
90
  * a single execution. For multiple executions, prefer creating a
88
91
  * JobExecutor instance directly.
89
92
  *
90
- * @param sdkQuery - The SDK query function
93
+ * @param runtime - The runtime interface
91
94
  * @param options - Runner options including agent config and prompt
92
95
  * @param executorOptions - Optional executor configuration
93
96
  * @returns Result of the execution
94
97
  *
95
98
  * @example
96
99
  * ```typescript
97
- * import { query } from "@anthropic-ai/claude-agent-sdk";
100
+ * import { RuntimeFactory } from "@herdctl/core";
98
101
  *
99
- * const result = await executeJob(query, {
102
+ * const runtime = RuntimeFactory.create(agent);
103
+ * const result = await executeJob(runtime, {
100
104
  * agent: resolvedAgent,
101
105
  * prompt: "Fix the bug",
102
106
  * stateDir: "/path/to/.herdctl",
103
107
  * });
104
108
  * ```
105
109
  */
106
- export declare function executeJob(sdkQuery: SDKQueryFunction, options: RunnerOptionsWithCallbacks, executorOptions?: JobExecutorOptions): Promise<RunnerResult>;
110
+ export declare function executeJob(runtime: RuntimeInterface, options: RunnerOptionsWithCallbacks, executorOptions?: JobExecutorOptions): Promise<RunnerResult>;
107
111
  //# sourceMappingURL=job-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-executor.d.ts","sourceRoot":"","sources":["../../src/runner/job-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAEV,0BAA0B,EAC1B,YAAY,EAEZ,UAAU,EACX,MAAM,YAAY,CAAC;AAgCpB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC;AAgBhC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAoB;IAElC;;;;;OAKG;gBACS,QAAQ,EAAE,gBAAgB,EAAE,OAAO,GAAE,kBAAuB;IAKxE;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,YAAY,CAAC;IA8TzE;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;CAsD5B;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,0BAA0B,EACnC,eAAe,GAAE,kBAAuB,GACvC,OAAO,CAAC,YAAY,CAAC,CAGvB"}
1
+ {"version":3,"file":"job-executor.d.ts","sourceRoot":"","sources":["../../src/runner/job-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAEV,0BAA0B,EAC1B,YAAY,EAEZ,UAAU,EACX,MAAM,YAAY,CAAC;AAUpB,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,oBAAoB,CAAC;AA0BlF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qCAAqC;IACrC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC;AAgBhC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,MAAM,CAAoB;IAElC;;;;;OAKG;gBACS,OAAO,EAAE,gBAAgB,EAAE,OAAO,GAAE,kBAAuB;IAKvE;;;;;OAKG;IACG,OAAO,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,YAAY,CAAC;IAudzE;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;CAsD5B;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,0BAA0B,EACnC,eAAe,GAAE,kBAAuB,GACvC,OAAO,CAAC,YAAY,CAAC,CAGvB"}
@@ -9,9 +9,9 @@
9
9
  import { join } from "node:path";
10
10
  import { mkdir, appendFile } from "node:fs/promises";
11
11
  import { SDKInitializationError, SDKStreamingError, MalformedResponseError, wrapError, classifyError, buildErrorMessage, } from "./errors.js";
12
- import { toSDKOptions } from "./sdk-adapter.js";
13
12
  import { processSDKMessage, isTerminalMessage, extractSummary, } from "./message-processor.js";
14
- import { createJob, updateJob, appendJobOutput, getJobOutputPath, updateSessionInfo, getSessionInfo, } from "../state/index.js";
13
+ import { createJob, updateJob, appendJobOutput, getJobOutputPath, updateSessionInfo, getSessionInfo, clearSession, isSessionExpiredError, validateWorkingDirectory, validateRuntimeContext, } from "../state/index.js";
14
+ import { resolveWorkingDirectory } from "../fleet-manager/working-directory-helper.js";
15
15
  // =============================================================================
16
16
  // Default Logger
17
17
  // =============================================================================
@@ -34,7 +34,8 @@ const defaultLogger = {
34
34
  *
35
35
  * @example
36
36
  * ```typescript
37
- * const executor = new JobExecutor(sdkQuery);
37
+ * const runtime = RuntimeFactory.create(agent);
38
+ * const executor = new JobExecutor(runtime);
38
39
  *
39
40
  * const result = await executor.execute({
40
41
  * agent: resolvedAgent,
@@ -47,16 +48,16 @@ const defaultLogger = {
47
48
  * ```
48
49
  */
49
50
  export class JobExecutor {
50
- sdkQuery;
51
+ runtime;
51
52
  logger;
52
53
  /**
53
54
  * Create a new job executor
54
55
  *
55
- * @param sdkQuery - The SDK query function to use for agent execution
56
+ * @param runtime - The runtime interface to use for agent execution
56
57
  * @param options - Optional configuration
57
58
  */
58
- constructor(sdkQuery, options = {}) {
59
- this.sdkQuery = sdkQuery;
59
+ constructor(runtime, options = {}) {
60
+ this.runtime = runtime;
60
61
  this.logger = options.logger ?? defaultLogger;
61
62
  }
62
63
  /**
@@ -117,145 +118,261 @@ export class JobExecutor {
117
118
  this.logger.warn(`Failed to update job status to running: ${error.message}`);
118
119
  // Continue execution - job was created
119
120
  }
120
- // Step 4: Build SDK options
121
- const sdkOptions = toSDKOptions(agent, {
122
- resume: options.resume,
123
- fork: options.fork ? true : undefined,
124
- });
125
- // DEBUG: Log SDK options to help diagnose system prompt issues
126
- const promptType = typeof sdkOptions.systemPrompt === "string" ? "custom" : "preset";
127
- this.logger.info?.(`SDK options for job ${job.id}: settingSources=${JSON.stringify(sdkOptions.settingSources)}, systemPrompt.type=${promptType}, cwd=${sdkOptions.cwd ?? "(not set)"}`);
128
- if (typeof sdkOptions.systemPrompt === "string") {
129
- this.logger.info?.(`SDK systemPrompt content (first 100 chars): ${sdkOptions.systemPrompt.substring(0, 100)}`);
130
- }
131
- // Step 5: Execute agent and stream output
132
- try {
133
- let messages;
134
- // Catch SDK initialization errors (e.g., missing API key)
135
- try {
136
- messages = this.sdkQuery({
137
- prompt,
138
- options: sdkOptions,
139
- });
140
- }
141
- catch (initError) {
142
- // Wrap initialization errors with context
143
- throw new SDKInitializationError(buildErrorMessage(initError.message, {
144
- jobId: job.id,
145
- agentName: agent.name,
146
- }), {
147
- jobId: job.id,
148
- agentName: agent.name,
149
- cause: initError,
150
- });
151
- }
152
- for await (const sdkMessage of messages) {
153
- messagesReceived++;
154
- // Process the message safely (handles malformed responses)
155
- let processed;
156
- try {
157
- processed = processSDKMessage(sdkMessage);
158
- }
159
- catch (processError) {
160
- // Log but don't crash on malformed messages
161
- this.logger.warn(`Malformed SDK message received: ${processError.message}`);
162
- // Write a warning to job output
121
+ // Step 3.5: Validate session if resuming
122
+ // This prevents unexpected logouts by checking session expiration before attempting resume
123
+ // Pass timeout to getSessionInfo so expired sessions are automatically cleared (consistent with schedule-runner.ts)
124
+ let effectiveResume;
125
+ if (options.resume) {
126
+ const sessionsDir = join(stateDir, "sessions");
127
+ // Default to 24h if not configured - prevents unexpected logouts from expired server-side sessions
128
+ const sessionTimeout = agent.session?.timeout ?? "24h";
129
+ const existingSession = await getSessionInfo(sessionsDir, agent.name, {
130
+ timeout: sessionTimeout,
131
+ logger: this.logger,
132
+ runtime: agent.runtime ?? "sdk", // Pass runtime for correct validation
133
+ });
134
+ if (existingSession?.session_id) {
135
+ // Validate that the working directory hasn't changed since the session was created
136
+ // If it changed, Claude Code will look for the session file in the wrong directory
137
+ const currentWorkingDirectory = resolveWorkingDirectory(agent);
138
+ const wdValidation = validateWorkingDirectory(existingSession, currentWorkingDirectory);
139
+ if (!wdValidation.valid) {
140
+ this.logger.warn(`${wdValidation.message} - clearing stale session ${existingSession.session_id}`);
163
141
  try {
164
- await appendJobOutput(jobsDir, job.id, {
165
- type: "error",
166
- message: `Malformed SDK message: ${processError.message}`,
167
- code: "MALFORMED_MESSAGE",
168
- });
142
+ await clearSession(sessionsDir, agent.name);
169
143
  }
170
- catch {
171
- // Ignore output write failures for malformed message warnings
144
+ catch (clearError) {
145
+ this.logger.warn(`Failed to clear stale session: ${clearError.message}`);
172
146
  }
173
- // Continue processing other messages
174
- continue;
147
+ // Continue without resume - working directory changed
148
+ effectiveResume = undefined;
175
149
  }
176
- // Write to job output immediately (no buffering)
150
+ else {
151
+ // Validate that the runtime context hasn't changed since the session was created
152
+ // Sessions are tied to specific runtime configurations (SDK vs CLI, Docker vs native)
153
+ const currentRuntimeType = agent.runtime ?? "sdk";
154
+ const currentDockerEnabled = agent.docker?.enabled ?? false;
155
+ const runtimeValidation = validateRuntimeContext(existingSession, currentRuntimeType, currentDockerEnabled);
156
+ if (!runtimeValidation.valid) {
157
+ this.logger.warn(`${runtimeValidation.message} - clearing stale session ${existingSession.session_id}`);
158
+ try {
159
+ await clearSession(sessionsDir, agent.name);
160
+ }
161
+ catch (clearError) {
162
+ this.logger.warn(`Failed to clear stale session: ${clearError.message}`);
163
+ }
164
+ // Continue without resume - runtime context changed
165
+ effectiveResume = undefined;
166
+ }
167
+ else {
168
+ // Use the actual session ID from the stored session, not the original options.resume value
169
+ // This ensures we always use the correct session ID stored on disk
170
+ effectiveResume = existingSession.session_id;
171
+ this.logger.info?.(`Found valid session for ${agent.name}: ${effectiveResume}, will attempt to resume`);
172
+ // Update last_used_at NOW to prevent session from expiring during long-running jobs
173
+ // This fixes the authentication bug where sessions could expire mid-execution
174
+ try {
175
+ await updateSessionInfo(sessionsDir, agent.name, {
176
+ session_id: existingSession.session_id,
177
+ job_count: existingSession.job_count,
178
+ mode: existingSession.mode,
179
+ working_directory: currentWorkingDirectory,
180
+ runtime_type: agent.runtime ?? "sdk",
181
+ docker_enabled: agent.docker?.enabled ?? false,
182
+ });
183
+ this.logger.info?.(`Refreshed session timestamp for ${agent.name} before execution`);
184
+ }
185
+ catch (updateError) {
186
+ this.logger.warn(`Failed to refresh session timestamp: ${updateError.message}`);
187
+ // Continue anyway - the session is still valid for now
188
+ }
189
+ }
190
+ }
191
+ }
192
+ else {
193
+ this.logger.info?.(`No valid session for ${agent.name} (expired or not found), starting fresh`);
194
+ // Write info to job output
177
195
  try {
178
- await appendJobOutput(jobsDir, job.id, processed.output);
196
+ await appendJobOutput(jobsDir, job.id, {
197
+ type: "system",
198
+ content: `No valid session found (expired or missing). Starting fresh session.`,
199
+ });
179
200
  }
180
- catch (outputError) {
181
- this.logger.warn(`Failed to write job output: ${outputError.message}`);
182
- // Continue processing - don't fail execution due to logging issues
201
+ catch {
202
+ // Ignore output write failures
203
+ }
204
+ // Don't resume - start fresh (effectiveResume stays undefined)
205
+ }
206
+ }
207
+ // Step 4: Execute agent and stream output
208
+ // Track whether we've already retried after a session expiration
209
+ let retriedAfterSessionExpiry = false;
210
+ const executeWithRetry = async (resumeSessionId) => {
211
+ try {
212
+ let messages;
213
+ // Catch runtime initialization errors
214
+ try {
215
+ messages = this.runtime.execute({
216
+ prompt,
217
+ agent: options.agent,
218
+ resume: resumeSessionId,
219
+ fork: options.fork ? true : undefined,
220
+ abortController: options.abortController,
221
+ });
222
+ }
223
+ catch (initError) {
224
+ // Wrap initialization errors with context
225
+ throw new SDKInitializationError(buildErrorMessage(initError.message, {
226
+ jobId: job.id,
227
+ agentName: agent.name,
228
+ }), {
229
+ jobId: job.id,
230
+ agentName: agent.name,
231
+ cause: initError,
232
+ });
183
233
  }
184
- // Also write to output.log file if outputToFile is enabled
185
- if (outputLogPath) {
234
+ for await (const sdkMessage of messages) {
235
+ messagesReceived++;
236
+ // Process the message safely (handles malformed responses)
237
+ let processed;
186
238
  try {
187
- const logLine = this.formatOutputLogLine(processed.output);
188
- if (logLine) {
189
- await appendFile(outputLogPath, logLine + "\n", "utf-8");
239
+ processed = processSDKMessage(sdkMessage);
240
+ }
241
+ catch (processError) {
242
+ // Log but don't crash on malformed messages
243
+ this.logger.warn(`Malformed SDK message received: ${processError.message}`);
244
+ // Write a warning to job output
245
+ try {
246
+ await appendJobOutput(jobsDir, job.id, {
247
+ type: "error",
248
+ message: `Malformed SDK message: ${processError.message}`,
249
+ code: "MALFORMED_MESSAGE",
250
+ });
251
+ }
252
+ catch {
253
+ // Ignore output write failures for malformed message warnings
190
254
  }
255
+ // Continue processing other messages
256
+ continue;
191
257
  }
192
- catch (fileError) {
193
- this.logger.warn(`Failed to write to output log file: ${fileError.message}`);
194
- // Continue processing - file logging is optional
258
+ // Write to job output immediately (no buffering)
259
+ try {
260
+ await appendJobOutput(jobsDir, job.id, processed.output);
261
+ }
262
+ catch (outputError) {
263
+ this.logger.warn(`Failed to write job output: ${outputError.message}`);
264
+ // Continue processing - don't fail execution due to logging issues
265
+ }
266
+ // Also write to output.log file if outputToFile is enabled
267
+ if (outputLogPath) {
268
+ try {
269
+ const logLine = this.formatOutputLogLine(processed.output);
270
+ if (logLine) {
271
+ await appendFile(outputLogPath, logLine + "\n", "utf-8");
272
+ }
273
+ }
274
+ catch (fileError) {
275
+ this.logger.warn(`Failed to write to output log file: ${fileError.message}`);
276
+ // Continue processing - file logging is optional
277
+ }
278
+ }
279
+ // Log error messages to console immediately
280
+ if (processed.output.type === "error") {
281
+ this.logger.error(`Job ${job.id} error: ${processed.output.message}`);
282
+ }
283
+ // Extract session ID if present
284
+ if (processed.sessionId) {
285
+ sessionId = processed.sessionId;
286
+ }
287
+ // Extract summary if present
288
+ const messageSummary = extractSummary(sdkMessage);
289
+ if (messageSummary) {
290
+ summary = messageSummary;
291
+ }
292
+ // Call user's onMessage callback if provided
293
+ if (onMessage) {
294
+ try {
295
+ await onMessage(sdkMessage);
296
+ }
297
+ catch (callbackError) {
298
+ this.logger.warn(`onMessage callback error: ${callbackError.message}`);
299
+ }
300
+ }
301
+ // Check for terminal messages
302
+ if (isTerminalMessage(sdkMessage)) {
303
+ if (sdkMessage.type === "error") {
304
+ const errorMessage = sdkMessage.message ?? "Agent execution failed";
305
+ lastError = new SDKStreamingError(buildErrorMessage(errorMessage, {
306
+ jobId: job.id,
307
+ agentName: agent.name,
308
+ }), {
309
+ jobId: job.id,
310
+ agentName: agent.name,
311
+ code: sdkMessage.code,
312
+ messagesReceived,
313
+ });
314
+ }
315
+ break;
195
316
  }
196
317
  }
197
- // Extract session ID if present
198
- if (processed.sessionId) {
199
- sessionId = processed.sessionId;
200
- }
201
- // Extract summary if present
202
- const messageSummary = extractSummary(sdkMessage);
203
- if (messageSummary) {
204
- summary = messageSummary;
205
- }
206
- // Call user's onMessage callback if provided
207
- if (onMessage) {
318
+ }
319
+ catch (error) {
320
+ // Check if this is a session expiration error from the SDK
321
+ // This can happen if the server-side session expired even though local validation passed
322
+ if (isSessionExpiredError(error) && resumeSessionId && !retriedAfterSessionExpiry) {
323
+ this.logger.warn(`Session expired on server for ${agent.name}. Clearing session and retrying with fresh session.`);
324
+ // Clear the expired session
208
325
  try {
209
- await onMessage(sdkMessage);
326
+ const sessionsDir = join(stateDir, "sessions");
327
+ await clearSession(sessionsDir, agent.name);
328
+ this.logger.info?.(`Cleared expired session for ${agent.name}`);
210
329
  }
211
- catch (callbackError) {
212
- this.logger.warn(`onMessage callback error: ${callbackError.message}`);
330
+ catch (clearError) {
331
+ this.logger.warn(`Failed to clear expired session: ${clearError.message}`);
213
332
  }
214
- }
215
- // Check for terminal messages
216
- if (isTerminalMessage(sdkMessage)) {
217
- if (sdkMessage.type === "error") {
218
- const errorMessage = sdkMessage.message ?? "Agent execution failed";
219
- lastError = new SDKStreamingError(buildErrorMessage(errorMessage, {
220
- jobId: job.id,
221
- agentName: agent.name,
222
- }), {
223
- jobId: job.id,
224
- agentName: agent.name,
225
- code: sdkMessage.code,
226
- messagesReceived,
333
+ // Write info to job output about the retry
334
+ try {
335
+ await appendJobOutput(jobsDir, job.id, {
336
+ type: "system",
337
+ content: `Session expired on server. Retrying with fresh session.`,
227
338
  });
228
339
  }
229
- break;
340
+ catch {
341
+ // Ignore output write failures
342
+ }
343
+ // Retry with a fresh session (no resume)
344
+ retriedAfterSessionExpiry = true;
345
+ messagesReceived = 0; // Reset for fresh session
346
+ await executeWithRetry(undefined);
347
+ return;
230
348
  }
231
- }
232
- }
233
- catch (error) {
234
- // Wrap the error with context if not already a RunnerError
235
- lastError = wrapError(error, {
236
- jobId: job.id,
237
- agentName: agent.name,
238
- phase: messagesReceived === 0 ? "init" : "streaming",
239
- });
240
- // Add messages received count for streaming errors
241
- if (lastError instanceof SDKStreamingError && messagesReceived > 0) {
242
- lastError.messagesReceived = messagesReceived;
243
- }
244
- // Log the error with context
245
- this.logger.error(`${lastError.name}: ${lastError.message}`);
246
- // Write error to job output with full context
247
- try {
248
- await appendJobOutput(jobsDir, job.id, {
249
- type: "error",
250
- message: lastError.message,
251
- code: lastError.code ?? lastError.cause?.code,
252
- stack: lastError.stack,
349
+ // Wrap the error with context if not already a RunnerError
350
+ lastError = wrapError(error, {
351
+ jobId: job.id,
352
+ agentName: agent.name,
353
+ phase: messagesReceived === 0 ? "init" : "streaming",
253
354
  });
355
+ // Add messages received count for streaming errors
356
+ if (lastError instanceof SDKStreamingError && messagesReceived > 0) {
357
+ lastError.messagesReceived = messagesReceived;
358
+ }
359
+ // Log the error with context
360
+ this.logger.error(`${lastError.name}: ${lastError.message}`);
361
+ // Write error to job output with full context
362
+ try {
363
+ await appendJobOutput(jobsDir, job.id, {
364
+ type: "error",
365
+ message: lastError.message,
366
+ code: lastError.code ?? lastError.cause?.code,
367
+ stack: lastError.stack,
368
+ });
369
+ }
370
+ catch (outputError) {
371
+ this.logger.warn(`Failed to write error to job output: ${outputError.message}`);
372
+ }
254
373
  }
255
- catch (outputError) {
256
- this.logger.warn(`Failed to write error to job output: ${outputError.message}`);
257
- }
258
- }
374
+ };
375
+ await executeWithRetry(effectiveResume);
259
376
  // Build error details for programmatic access
260
377
  if (lastError) {
261
378
  errorDetails = {
@@ -306,11 +423,18 @@ export class JobExecutor {
306
423
  try {
307
424
  const sessionsDir = join(stateDir, "sessions");
308
425
  // Get existing session to determine if updating or creating
309
- const existingSession = await getSessionInfo(sessionsDir, agent.name);
426
+ const existingSession = await getSessionInfo(sessionsDir, agent.name, {
427
+ runtime: agent.runtime ?? "sdk",
428
+ });
429
+ // Store the current working directory with the session
430
+ const currentWorkingDirectory = resolveWorkingDirectory(agent);
310
431
  await updateSessionInfo(sessionsDir, agent.name, {
311
432
  session_id: sessionId,
312
433
  job_count: (existingSession?.job_count ?? 0) + 1,
313
434
  mode: existingSession?.mode ?? "autonomous",
435
+ working_directory: currentWorkingDirectory,
436
+ runtime_type: agent.runtime ?? "sdk",
437
+ docker_enabled: agent.docker?.enabled ?? false,
314
438
  });
315
439
  this.logger.info?.(`Persisted session ${sessionId} for agent ${agent.name}`);
316
440
  }
@@ -390,24 +514,25 @@ export class JobExecutor {
390
514
  * a single execution. For multiple executions, prefer creating a
391
515
  * JobExecutor instance directly.
392
516
  *
393
- * @param sdkQuery - The SDK query function
517
+ * @param runtime - The runtime interface
394
518
  * @param options - Runner options including agent config and prompt
395
519
  * @param executorOptions - Optional executor configuration
396
520
  * @returns Result of the execution
397
521
  *
398
522
  * @example
399
523
  * ```typescript
400
- * import { query } from "@anthropic-ai/claude-agent-sdk";
524
+ * import { RuntimeFactory } from "@herdctl/core";
401
525
  *
402
- * const result = await executeJob(query, {
526
+ * const runtime = RuntimeFactory.create(agent);
527
+ * const result = await executeJob(runtime, {
403
528
  * agent: resolvedAgent,
404
529
  * prompt: "Fix the bug",
405
530
  * stateDir: "/path/to/.herdctl",
406
531
  * });
407
532
  * ```
408
533
  */
409
- export async function executeJob(sdkQuery, options, executorOptions = {}) {
410
- const executor = new JobExecutor(sdkQuery, executorOptions);
534
+ export async function executeJob(runtime, options, executorOptions = {}) {
535
+ const executor = new JobExecutor(runtime, executorOptions);
411
536
  return executor.execute(options);
412
537
  }
413
538
  //# sourceMappingURL=job-executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"job-executor.js","sourceRoot":"","sources":["../../src/runner/job-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-executor.js","sourceRoot":"","sources":["../../src/runner/job-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli-session-path.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-session-path.test.d.ts","sourceRoot":"","sources":["../../../../src/runner/runtime/__tests__/cli-session-path.test.ts"],"names":[],"mappings":""}