@herdctl/core 0.0.1 → 0.1.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 (284) hide show
  1. package/dist/config/__tests__/agent.test.js +61 -13
  2. package/dist/config/__tests__/agent.test.js.map +1 -1
  3. package/dist/config/__tests__/merge.test.js +10 -3
  4. package/dist/config/__tests__/merge.test.js.map +1 -1
  5. package/dist/config/__tests__/schema.test.js +350 -1
  6. package/dist/config/__tests__/schema.test.js.map +1 -1
  7. package/dist/config/index.d.ts +1 -1
  8. package/dist/config/index.d.ts.map +1 -1
  9. package/dist/config/index.js +3 -1
  10. package/dist/config/index.js.map +1 -1
  11. package/dist/config/schema.d.ts +841 -27
  12. package/dist/config/schema.d.ts.map +1 -1
  13. package/dist/config/schema.js +129 -10
  14. package/dist/config/schema.js.map +1 -1
  15. package/dist/fleet-manager/__tests__/coverage.test.js +14 -331
  16. package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -1
  17. package/dist/fleet-manager/__tests__/errors.test.js +1 -49
  18. package/dist/fleet-manager/__tests__/errors.test.js.map +1 -1
  19. package/dist/fleet-manager/__tests__/integration.test.js +114 -0
  20. package/dist/fleet-manager/__tests__/integration.test.js.map +1 -1
  21. package/dist/fleet-manager/__tests__/job-control.test.js +13 -14
  22. package/dist/fleet-manager/__tests__/job-control.test.js.map +1 -1
  23. package/dist/fleet-manager/__tests__/reload.test.js +12 -2
  24. package/dist/fleet-manager/__tests__/reload.test.js.map +1 -1
  25. package/dist/fleet-manager/__tests__/status-queries.test.js +6 -0
  26. package/dist/fleet-manager/__tests__/status-queries.test.js.map +1 -1
  27. package/dist/fleet-manager/__tests__/trigger.test.js +10 -2
  28. package/dist/fleet-manager/__tests__/trigger.test.js.map +1 -1
  29. package/dist/fleet-manager/config-reload.d.ts +164 -0
  30. package/dist/fleet-manager/config-reload.d.ts.map +1 -0
  31. package/dist/fleet-manager/config-reload.js +445 -0
  32. package/dist/fleet-manager/config-reload.js.map +1 -0
  33. package/dist/fleet-manager/context.d.ts +76 -0
  34. package/dist/fleet-manager/context.d.ts.map +1 -0
  35. package/dist/fleet-manager/context.js +11 -0
  36. package/dist/fleet-manager/context.js.map +1 -0
  37. package/dist/fleet-manager/errors.d.ts +0 -25
  38. package/dist/fleet-manager/errors.d.ts.map +1 -1
  39. package/dist/fleet-manager/errors.js +0 -38
  40. package/dist/fleet-manager/errors.js.map +1 -1
  41. package/dist/fleet-manager/event-emitters.d.ts +123 -0
  42. package/dist/fleet-manager/event-emitters.d.ts.map +1 -0
  43. package/dist/fleet-manager/event-emitters.js +136 -0
  44. package/dist/fleet-manager/event-emitters.js.map +1 -0
  45. package/dist/fleet-manager/event-types.d.ts +0 -15
  46. package/dist/fleet-manager/event-types.d.ts.map +1 -1
  47. package/dist/fleet-manager/fleet-manager.d.ts +40 -653
  48. package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
  49. package/dist/fleet-manager/fleet-manager.js +95 -1720
  50. package/dist/fleet-manager/fleet-manager.js.map +1 -1
  51. package/dist/fleet-manager/index.d.ts +13 -2
  52. package/dist/fleet-manager/index.d.ts.map +1 -1
  53. package/dist/fleet-manager/index.js +19 -6
  54. package/dist/fleet-manager/index.js.map +1 -1
  55. package/dist/fleet-manager/job-control.d.ts +67 -0
  56. package/dist/fleet-manager/job-control.d.ts.map +1 -0
  57. package/dist/fleet-manager/job-control.js +333 -0
  58. package/dist/fleet-manager/job-control.js.map +1 -0
  59. package/dist/fleet-manager/log-streaming.d.ts +171 -0
  60. package/dist/fleet-manager/log-streaming.d.ts.map +1 -0
  61. package/dist/fleet-manager/log-streaming.js +503 -0
  62. package/dist/fleet-manager/log-streaming.js.map +1 -0
  63. package/dist/fleet-manager/schedule-executor.d.ts +63 -0
  64. package/dist/fleet-manager/schedule-executor.d.ts.map +1 -0
  65. package/dist/fleet-manager/schedule-executor.js +209 -0
  66. package/dist/fleet-manager/schedule-executor.js.map +1 -0
  67. package/dist/fleet-manager/schedule-management.d.ts +71 -0
  68. package/dist/fleet-manager/schedule-management.d.ts.map +1 -0
  69. package/dist/fleet-manager/schedule-management.js +171 -0
  70. package/dist/fleet-manager/schedule-management.js.map +1 -0
  71. package/dist/fleet-manager/status-queries.d.ts +105 -0
  72. package/dist/fleet-manager/status-queries.d.ts.map +1 -0
  73. package/dist/fleet-manager/status-queries.js +247 -0
  74. package/dist/fleet-manager/status-queries.js.map +1 -0
  75. package/dist/fleet-manager/types.d.ts +0 -39
  76. package/dist/fleet-manager/types.d.ts.map +1 -1
  77. package/dist/runner/__tests__/job-executor.test.js +206 -1
  78. package/dist/runner/__tests__/job-executor.test.js.map +1 -1
  79. package/dist/runner/job-executor.d.ts +9 -0
  80. package/dist/runner/job-executor.d.ts.map +1 -1
  81. package/dist/runner/job-executor.js +78 -4
  82. package/dist/runner/job-executor.js.map +1 -1
  83. package/dist/runner/message-processor.d.ts.map +1 -1
  84. package/dist/runner/message-processor.js +53 -0
  85. package/dist/runner/message-processor.js.map +1 -1
  86. package/dist/runner/types.d.ts +3 -1
  87. package/dist/runner/types.d.ts.map +1 -1
  88. package/dist/scheduler/__tests__/cron.test.d.ts +2 -0
  89. package/dist/scheduler/__tests__/cron.test.d.ts.map +1 -0
  90. package/dist/scheduler/__tests__/cron.test.js +867 -0
  91. package/dist/scheduler/__tests__/cron.test.js.map +1 -0
  92. package/dist/scheduler/__tests__/scheduler.test.js +164 -5
  93. package/dist/scheduler/__tests__/scheduler.test.js.map +1 -1
  94. package/dist/scheduler/cron.d.ts +126 -0
  95. package/dist/scheduler/cron.d.ts.map +1 -0
  96. package/dist/scheduler/cron.js +390 -0
  97. package/dist/scheduler/cron.js.map +1 -0
  98. package/dist/scheduler/errors.d.ts +81 -1
  99. package/dist/scheduler/errors.d.ts.map +1 -1
  100. package/dist/scheduler/errors.js +81 -6
  101. package/dist/scheduler/errors.js.map +1 -1
  102. package/dist/scheduler/index.d.ts +1 -0
  103. package/dist/scheduler/index.d.ts.map +1 -1
  104. package/dist/scheduler/index.js +2 -0
  105. package/dist/scheduler/index.js.map +1 -1
  106. package/dist/scheduler/schedule-runner.d.ts +2 -2
  107. package/dist/scheduler/schedule-runner.d.ts.map +1 -1
  108. package/dist/scheduler/schedule-runner.js +20 -8
  109. package/dist/scheduler/schedule-runner.js.map +1 -1
  110. package/dist/scheduler/scheduler.d.ts +4 -4
  111. package/dist/scheduler/scheduler.d.ts.map +1 -1
  112. package/dist/scheduler/scheduler.js +95 -20
  113. package/dist/scheduler/scheduler.js.map +1 -1
  114. package/dist/scheduler/types.d.ts +1 -1
  115. package/dist/scheduler/types.d.ts.map +1 -1
  116. package/dist/state/schemas/job-metadata.d.ts +2 -2
  117. package/package.json +33 -8
  118. package/.turbo/turbo-build.log +0 -4
  119. package/.turbo/turbo-test.log +0 -219
  120. package/.turbo/turbo-typecheck.log +0 -4
  121. package/coverage/base.css +0 -224
  122. package/coverage/block-navigation.js +0 -87
  123. package/coverage/coverage-final.json +0 -51
  124. package/coverage/favicon.png +0 -0
  125. package/coverage/index.html +0 -251
  126. package/coverage/prettify.css +0 -1
  127. package/coverage/prettify.js +0 -2
  128. package/coverage/sort-arrow-sprite.png +0 -0
  129. package/coverage/sorter.js +0 -210
  130. package/coverage/src/config/index.html +0 -191
  131. package/coverage/src/config/index.ts.html +0 -442
  132. package/coverage/src/config/interpolate.ts.html +0 -652
  133. package/coverage/src/config/loader.ts.html +0 -1501
  134. package/coverage/src/config/merge.ts.html +0 -823
  135. package/coverage/src/config/parser.ts.html +0 -1213
  136. package/coverage/src/config/schema.ts.html +0 -1123
  137. package/coverage/src/fleet-manager/errors.ts.html +0 -2326
  138. package/coverage/src/fleet-manager/event-types.ts.html +0 -1219
  139. package/coverage/src/fleet-manager/fleet-manager.ts.html +0 -7030
  140. package/coverage/src/fleet-manager/index.html +0 -206
  141. package/coverage/src/fleet-manager/index.ts.html +0 -469
  142. package/coverage/src/fleet-manager/job-manager.ts.html +0 -2074
  143. package/coverage/src/fleet-manager/job-queue.ts.html +0 -2479
  144. package/coverage/src/fleet-manager/types.ts.html +0 -2602
  145. package/coverage/src/index.html +0 -116
  146. package/coverage/src/index.ts.html +0 -181
  147. package/coverage/src/runner/errors.ts.html +0 -1006
  148. package/coverage/src/runner/index.html +0 -191
  149. package/coverage/src/runner/index.ts.html +0 -256
  150. package/coverage/src/runner/job-executor.ts.html +0 -1429
  151. package/coverage/src/runner/message-processor.ts.html +0 -1150
  152. package/coverage/src/runner/sdk-adapter.ts.html +0 -658
  153. package/coverage/src/runner/types.ts.html +0 -559
  154. package/coverage/src/scheduler/errors.ts.html +0 -388
  155. package/coverage/src/scheduler/index.html +0 -206
  156. package/coverage/src/scheduler/index.ts.html +0 -244
  157. package/coverage/src/scheduler/interval.ts.html +0 -652
  158. package/coverage/src/scheduler/schedule-runner.ts.html +0 -1411
  159. package/coverage/src/scheduler/schedule-state.ts.html +0 -718
  160. package/coverage/src/scheduler/scheduler.ts.html +0 -1795
  161. package/coverage/src/scheduler/types.ts.html +0 -733
  162. package/coverage/src/state/directory.ts.html +0 -736
  163. package/coverage/src/state/errors.ts.html +0 -376
  164. package/coverage/src/state/fleet-state.ts.html +0 -937
  165. package/coverage/src/state/index.html +0 -221
  166. package/coverage/src/state/index.ts.html +0 -322
  167. package/coverage/src/state/job-metadata.ts.html +0 -1420
  168. package/coverage/src/state/job-output.ts.html +0 -1033
  169. package/coverage/src/state/schemas/fleet-state.ts.html +0 -445
  170. package/coverage/src/state/schemas/index.html +0 -176
  171. package/coverage/src/state/schemas/index.ts.html +0 -286
  172. package/coverage/src/state/schemas/job-metadata.ts.html +0 -628
  173. package/coverage/src/state/schemas/job-output.ts.html +0 -616
  174. package/coverage/src/state/schemas/session-info.ts.html +0 -361
  175. package/coverage/src/state/session.ts.html +0 -844
  176. package/coverage/src/state/types.ts.html +0 -262
  177. package/coverage/src/state/utils/atomic.ts.html +0 -748
  178. package/coverage/src/state/utils/index.html +0 -146
  179. package/coverage/src/state/utils/index.ts.html +0 -103
  180. package/coverage/src/state/utils/reads.ts.html +0 -1621
  181. package/coverage/src/work-sources/adapters/github.ts.html +0 -3583
  182. package/coverage/src/work-sources/adapters/index.html +0 -131
  183. package/coverage/src/work-sources/adapters/index.ts.html +0 -277
  184. package/coverage/src/work-sources/errors.ts.html +0 -298
  185. package/coverage/src/work-sources/index.html +0 -176
  186. package/coverage/src/work-sources/index.ts.html +0 -529
  187. package/coverage/src/work-sources/manager.ts.html +0 -1324
  188. package/coverage/src/work-sources/registry.ts.html +0 -619
  189. package/coverage/src/work-sources/types.ts.html +0 -568
  190. package/dist/fleet-manager/__tests__/event-helpers.test.d.ts +0 -7
  191. package/dist/fleet-manager/__tests__/event-helpers.test.d.ts.map +0 -1
  192. package/dist/fleet-manager/__tests__/event-helpers.test.js +0 -368
  193. package/dist/fleet-manager/__tests__/event-helpers.test.js.map +0 -1
  194. package/src/config/__tests__/agent.test.ts +0 -864
  195. package/src/config/__tests__/interpolate.test.ts +0 -644
  196. package/src/config/__tests__/loader.test.ts +0 -784
  197. package/src/config/__tests__/merge.test.ts +0 -751
  198. package/src/config/__tests__/parser.test.ts +0 -533
  199. package/src/config/__tests__/schema.test.ts +0 -873
  200. package/src/config/index.ts +0 -119
  201. package/src/config/interpolate.ts +0 -189
  202. package/src/config/loader.ts +0 -472
  203. package/src/config/merge.ts +0 -246
  204. package/src/config/parser.ts +0 -376
  205. package/src/config/schema.ts +0 -346
  206. package/src/fleet-manager/__tests__/coverage.test.ts +0 -2869
  207. package/src/fleet-manager/__tests__/errors.test.ts +0 -660
  208. package/src/fleet-manager/__tests__/event-helpers.test.ts +0 -448
  209. package/src/fleet-manager/__tests__/integration.test.ts +0 -1209
  210. package/src/fleet-manager/__tests__/job-control.test.ts +0 -283
  211. package/src/fleet-manager/__tests__/job-manager.test.ts +0 -869
  212. package/src/fleet-manager/__tests__/job-queue.test.ts +0 -401
  213. package/src/fleet-manager/__tests__/reload.test.ts +0 -751
  214. package/src/fleet-manager/__tests__/status-queries.test.ts +0 -595
  215. package/src/fleet-manager/__tests__/trigger.test.ts +0 -601
  216. package/src/fleet-manager/errors.ts +0 -747
  217. package/src/fleet-manager/event-types.ts +0 -378
  218. package/src/fleet-manager/fleet-manager.ts +0 -2315
  219. package/src/fleet-manager/index.ts +0 -128
  220. package/src/fleet-manager/job-manager.ts +0 -663
  221. package/src/fleet-manager/job-queue.ts +0 -798
  222. package/src/fleet-manager/types.ts +0 -839
  223. package/src/index.ts +0 -32
  224. package/src/runner/__tests__/errors.test.ts +0 -382
  225. package/src/runner/__tests__/job-executor.test.ts +0 -1708
  226. package/src/runner/__tests__/message-processor.test.ts +0 -960
  227. package/src/runner/__tests__/sdk-adapter.test.ts +0 -626
  228. package/src/runner/errors.ts +0 -307
  229. package/src/runner/index.ts +0 -57
  230. package/src/runner/job-executor.ts +0 -448
  231. package/src/runner/message-processor.ts +0 -355
  232. package/src/runner/sdk-adapter.ts +0 -191
  233. package/src/runner/types.ts +0 -158
  234. package/src/scheduler/__tests__/errors.test.ts +0 -159
  235. package/src/scheduler/__tests__/interval.test.ts +0 -515
  236. package/src/scheduler/__tests__/schedule-runner.test.ts +0 -798
  237. package/src/scheduler/__tests__/schedule-state.test.ts +0 -671
  238. package/src/scheduler/__tests__/scheduler.test.ts +0 -1280
  239. package/src/scheduler/errors.ts +0 -101
  240. package/src/scheduler/index.ts +0 -53
  241. package/src/scheduler/interval.ts +0 -189
  242. package/src/scheduler/schedule-runner.ts +0 -442
  243. package/src/scheduler/schedule-state.ts +0 -211
  244. package/src/scheduler/scheduler.ts +0 -570
  245. package/src/scheduler/types.ts +0 -216
  246. package/src/state/__tests__/directory.test.ts +0 -595
  247. package/src/state/__tests__/fleet-state.test.ts +0 -868
  248. package/src/state/__tests__/job-metadata-schema.test.ts +0 -414
  249. package/src/state/__tests__/job-metadata.test.ts +0 -831
  250. package/src/state/__tests__/job-output.test.ts +0 -856
  251. package/src/state/__tests__/session-schema.test.ts +0 -378
  252. package/src/state/__tests__/session.test.ts +0 -604
  253. package/src/state/directory.ts +0 -217
  254. package/src/state/errors.ts +0 -97
  255. package/src/state/fleet-state.ts +0 -284
  256. package/src/state/index.ts +0 -79
  257. package/src/state/job-metadata.ts +0 -445
  258. package/src/state/job-output.ts +0 -316
  259. package/src/state/schemas/__tests__/job-output.test.ts +0 -338
  260. package/src/state/schemas/fleet-state.ts +0 -120
  261. package/src/state/schemas/index.ts +0 -67
  262. package/src/state/schemas/job-metadata.ts +0 -181
  263. package/src/state/schemas/job-output.ts +0 -177
  264. package/src/state/schemas/session-info.ts +0 -92
  265. package/src/state/session.ts +0 -253
  266. package/src/state/types.ts +0 -59
  267. package/src/state/utils/__tests__/atomic.test.ts +0 -723
  268. package/src/state/utils/__tests__/reads.test.ts +0 -1071
  269. package/src/state/utils/atomic.ts +0 -221
  270. package/src/state/utils/index.ts +0 -6
  271. package/src/state/utils/reads.ts +0 -512
  272. package/src/work-sources/__tests__/github.test.ts +0 -1800
  273. package/src/work-sources/__tests__/manager.test.ts +0 -529
  274. package/src/work-sources/__tests__/registry.test.ts +0 -477
  275. package/src/work-sources/__tests__/types.test.ts +0 -479
  276. package/src/work-sources/adapters/github.ts +0 -1166
  277. package/src/work-sources/adapters/index.ts +0 -64
  278. package/src/work-sources/errors.ts +0 -71
  279. package/src/work-sources/index.ts +0 -148
  280. package/src/work-sources/manager.ts +0 -413
  281. package/src/work-sources/registry.ts +0 -178
  282. package/src/work-sources/types.ts +0 -161
  283. package/tsconfig.json +0 -9
  284. package/vitest.config.ts +0 -19
@@ -0,0 +1,445 @@
1
+ /**
2
+ * Config Reload Module
3
+ *
4
+ * Centralizes all configuration reload logic for FleetManager.
5
+ * Provides methods to reload configuration and compute changes between versions.
6
+ *
7
+ * @module config-reload
8
+ */
9
+ import { InvalidStateError } from "./errors.js";
10
+ // =============================================================================
11
+ // ConfigReload Class
12
+ // =============================================================================
13
+ /**
14
+ * ConfigReload provides configuration reload operations for the FleetManager.
15
+ *
16
+ * This class encapsulates the logic for hot-reloading configuration
17
+ * using the FleetManagerContext pattern.
18
+ */
19
+ export class ConfigReload {
20
+ ctx;
21
+ loadConfiguration;
22
+ setConfig;
23
+ constructor(ctx, loadConfiguration, setConfig) {
24
+ this.ctx = ctx;
25
+ this.loadConfiguration = loadConfiguration;
26
+ this.setConfig = setConfig;
27
+ }
28
+ /**
29
+ * Reload configuration without restarting the fleet
30
+ *
31
+ * This method provides hot configuration reload capability:
32
+ * 1. Loads and validates the new configuration
33
+ * 2. If validation fails, keeps the old configuration (fails gracefully)
34
+ * 3. Running jobs continue with their original configuration
35
+ * 4. New jobs will use the new configuration
36
+ * 5. Updates the scheduler with new agent definitions and schedules
37
+ * 6. Emits a 'config:reloaded' event with a list of changes
38
+ *
39
+ * @returns The reload result with change details
40
+ * @throws {InvalidStateError} If the fleet manager is not initialized
41
+ * @throws {ConfigurationError} If the new configuration is invalid
42
+ */
43
+ async reload() {
44
+ const logger = this.ctx.getLogger();
45
+ const status = this.ctx.getStatus();
46
+ const scheduler = this.ctx.getScheduler();
47
+ // Validate state - must be at least initialized
48
+ if (status === "uninitialized") {
49
+ throw new InvalidStateError("reload", status, ["initialized", "starting", "running", "stopping", "stopped"]);
50
+ }
51
+ logger.info("Reloading configuration...");
52
+ // Store old config for comparison
53
+ const oldConfig = this.ctx.getConfig();
54
+ // Try to load new configuration
55
+ let newConfig;
56
+ try {
57
+ newConfig = await this.loadConfiguration();
58
+ }
59
+ catch (error) {
60
+ // Log the error but don't update config - fail gracefully
61
+ logger.error(`Failed to reload configuration: ${error instanceof Error ? error.message : String(error)}`);
62
+ logger.info("Keeping existing configuration");
63
+ // Re-throw so caller knows reload failed
64
+ throw error;
65
+ }
66
+ // Compute changes between old and new config
67
+ const changes = computeConfigChanges(oldConfig, newConfig);
68
+ // Update the stored configuration
69
+ this.setConfig(newConfig);
70
+ // Update the scheduler with new agents (if scheduler exists and is running)
71
+ if (scheduler) {
72
+ scheduler.setAgents(newConfig.agents);
73
+ logger.debug(`Updated scheduler with ${newConfig.agents.length} agents`);
74
+ }
75
+ const timestamp = new Date().toISOString();
76
+ // Build the reload payload
77
+ const payload = {
78
+ agentCount: newConfig.agents.length,
79
+ agentNames: newConfig.agents.map((a) => a.name),
80
+ configPath: newConfig.configPath,
81
+ changes,
82
+ timestamp,
83
+ };
84
+ // Emit the config:reloaded event
85
+ this.ctx.emit("config:reloaded", payload);
86
+ logger.info(`Configuration reloaded: ${newConfig.agents.length} agents, ${changes.length} changes`);
87
+ return payload;
88
+ }
89
+ }
90
+ // =============================================================================
91
+ // Config Change Computation
92
+ // =============================================================================
93
+ /**
94
+ * Compute the list of changes between old and new configuration
95
+ *
96
+ * Compares two configuration versions and produces a detailed list of
97
+ * what changed. Changes are categorized by type (added, removed, modified)
98
+ * and category (agent, schedule).
99
+ *
100
+ * @param oldConfig - Previous configuration (null for first load)
101
+ * @param newConfig - New configuration to compare against
102
+ * @returns Array of ConfigChange objects describing all changes
103
+ */
104
+ export function computeConfigChanges(oldConfig, newConfig) {
105
+ const changes = [];
106
+ const oldAgents = oldConfig?.agents ?? [];
107
+ const newAgents = newConfig.agents;
108
+ const oldAgentNames = new Set(oldAgents.map((a) => a.name));
109
+ const newAgentNames = new Set(newAgents.map((a) => a.name));
110
+ // Find added agents
111
+ for (const agent of newAgents) {
112
+ if (!oldAgentNames.has(agent.name)) {
113
+ changes.push({
114
+ type: "added",
115
+ category: "agent",
116
+ name: agent.name,
117
+ details: agent.description,
118
+ });
119
+ // Also add all schedules for new agents
120
+ if (agent.schedules) {
121
+ for (const scheduleName of Object.keys(agent.schedules)) {
122
+ changes.push({
123
+ type: "added",
124
+ category: "schedule",
125
+ name: `${agent.name}/${scheduleName}`,
126
+ });
127
+ }
128
+ }
129
+ }
130
+ }
131
+ // Find removed agents
132
+ for (const agent of oldAgents) {
133
+ if (!newAgentNames.has(agent.name)) {
134
+ changes.push({
135
+ type: "removed",
136
+ category: "agent",
137
+ name: agent.name,
138
+ });
139
+ // Also mark all schedules as removed
140
+ if (agent.schedules) {
141
+ for (const scheduleName of Object.keys(agent.schedules)) {
142
+ changes.push({
143
+ type: "removed",
144
+ category: "schedule",
145
+ name: `${agent.name}/${scheduleName}`,
146
+ });
147
+ }
148
+ }
149
+ }
150
+ }
151
+ // Find modified agents and schedules
152
+ for (const newAgent of newAgents) {
153
+ const oldAgent = oldAgents.find((a) => a.name === newAgent.name);
154
+ if (!oldAgent) {
155
+ continue; // Already handled as "added"
156
+ }
157
+ // Check for agent-level modifications
158
+ const agentModified = getAgentModifications(oldAgent, newAgent);
159
+ if (agentModified) {
160
+ changes.push({
161
+ type: "modified",
162
+ category: "agent",
163
+ name: newAgent.name,
164
+ details: agentModified,
165
+ });
166
+ }
167
+ // Check for schedule changes
168
+ const scheduleChanges = computeScheduleChanges(oldAgent, newAgent);
169
+ changes.push(...scheduleChanges);
170
+ }
171
+ return changes;
172
+ }
173
+ /**
174
+ * Compute schedule changes between old and new agent configurations
175
+ *
176
+ * @param oldAgent - Previous agent configuration
177
+ * @param newAgent - New agent configuration
178
+ * @returns Array of ConfigChange objects for schedule changes
179
+ */
180
+ export function computeScheduleChanges(oldAgent, newAgent) {
181
+ const changes = [];
182
+ const oldScheduleNames = new Set(oldAgent.schedules ? Object.keys(oldAgent.schedules) : []);
183
+ const newScheduleNames = new Set(newAgent.schedules ? Object.keys(newAgent.schedules) : []);
184
+ // Added schedules
185
+ for (const scheduleName of newScheduleNames) {
186
+ if (!oldScheduleNames.has(scheduleName)) {
187
+ changes.push({
188
+ type: "added",
189
+ category: "schedule",
190
+ name: `${newAgent.name}/${scheduleName}`,
191
+ });
192
+ }
193
+ }
194
+ // Removed schedules
195
+ for (const scheduleName of oldScheduleNames) {
196
+ if (!newScheduleNames.has(scheduleName)) {
197
+ changes.push({
198
+ type: "removed",
199
+ category: "schedule",
200
+ name: `${newAgent.name}/${scheduleName}`,
201
+ });
202
+ }
203
+ }
204
+ // Modified schedules
205
+ for (const scheduleName of newScheduleNames) {
206
+ if (oldScheduleNames.has(scheduleName)) {
207
+ const oldSchedule = oldAgent.schedules[scheduleName];
208
+ const newSchedule = newAgent.schedules[scheduleName];
209
+ if (isScheduleModified(oldSchedule, newSchedule)) {
210
+ changes.push({
211
+ type: "modified",
212
+ category: "schedule",
213
+ name: `${newAgent.name}/${scheduleName}`,
214
+ details: getScheduleModificationDetails(oldSchedule, newSchedule),
215
+ });
216
+ }
217
+ }
218
+ }
219
+ return changes;
220
+ }
221
+ // =============================================================================
222
+ // Agent Diff Helpers
223
+ // =============================================================================
224
+ /**
225
+ * Check if an agent configuration has been modified
226
+ *
227
+ * Returns a description of what changed, or null if not modified.
228
+ *
229
+ * @param oldAgent - Previous agent configuration
230
+ * @param newAgent - New agent configuration
231
+ * @returns Description of modifications, or null if unchanged
232
+ */
233
+ export function getAgentModifications(oldAgent, newAgent) {
234
+ const modifications = [];
235
+ // Check key properties
236
+ if (oldAgent.description !== newAgent.description) {
237
+ modifications.push("description");
238
+ }
239
+ if (oldAgent.model !== newAgent.model) {
240
+ modifications.push("model");
241
+ }
242
+ if (oldAgent.max_turns !== newAgent.max_turns) {
243
+ modifications.push("max_turns");
244
+ }
245
+ if (oldAgent.system_prompt !== newAgent.system_prompt) {
246
+ modifications.push("system_prompt");
247
+ }
248
+ // Check workspace
249
+ const oldWorkspace = typeof oldAgent.workspace === "string"
250
+ ? oldAgent.workspace
251
+ : oldAgent.workspace?.root;
252
+ const newWorkspace = typeof newAgent.workspace === "string"
253
+ ? newAgent.workspace
254
+ : newAgent.workspace?.root;
255
+ if (oldWorkspace !== newWorkspace) {
256
+ modifications.push("workspace");
257
+ }
258
+ // Check instances
259
+ const oldMaxConcurrent = oldAgent.instances?.max_concurrent ?? 1;
260
+ const newMaxConcurrent = newAgent.instances?.max_concurrent ?? 1;
261
+ if (oldMaxConcurrent !== newMaxConcurrent) {
262
+ modifications.push("max_concurrent");
263
+ }
264
+ return modifications.length > 0 ? modifications.join(", ") : null;
265
+ }
266
+ /**
267
+ * Check if an agent has been modified (boolean version)
268
+ *
269
+ * @param oldAgent - Previous agent configuration
270
+ * @param newAgent - New agent configuration
271
+ * @returns True if the agent has been modified
272
+ */
273
+ export function isAgentModified(oldAgent, newAgent) {
274
+ return getAgentModifications(oldAgent, newAgent) !== null;
275
+ }
276
+ // =============================================================================
277
+ // Schedule Diff Helpers
278
+ // =============================================================================
279
+ /**
280
+ * Check if a schedule configuration has been modified
281
+ *
282
+ * @param oldSchedule - Previous schedule configuration
283
+ * @param newSchedule - New schedule configuration
284
+ * @returns True if the schedule has been modified
285
+ */
286
+ export function isScheduleModified(oldSchedule, newSchedule) {
287
+ return (oldSchedule.type !== newSchedule.type ||
288
+ oldSchedule.interval !== newSchedule.interval ||
289
+ oldSchedule.expression !== newSchedule.expression ||
290
+ oldSchedule.prompt !== newSchedule.prompt);
291
+ }
292
+ /**
293
+ * Get a description of what changed in a schedule
294
+ *
295
+ * @param oldSchedule - Previous schedule configuration
296
+ * @param newSchedule - New schedule configuration
297
+ * @returns Human-readable description of the changes
298
+ */
299
+ export function getScheduleModificationDetails(oldSchedule, newSchedule) {
300
+ const details = [];
301
+ if (oldSchedule.type !== newSchedule.type) {
302
+ details.push(`type: ${oldSchedule.type} → ${newSchedule.type}`);
303
+ }
304
+ if (oldSchedule.interval !== newSchedule.interval) {
305
+ details.push(`interval: ${oldSchedule.interval ?? "none"} → ${newSchedule.interval ?? "none"}`);
306
+ }
307
+ if (oldSchedule.expression !== newSchedule.expression) {
308
+ details.push(`expression: ${oldSchedule.expression ?? "none"} → ${newSchedule.expression ?? "none"}`);
309
+ }
310
+ if (oldSchedule.prompt !== newSchedule.prompt) {
311
+ details.push("prompt changed");
312
+ }
313
+ return details.join("; ");
314
+ }
315
+ // =============================================================================
316
+ // Utility Functions
317
+ // =============================================================================
318
+ /**
319
+ * Get a summary of configuration changes
320
+ *
321
+ * Provides a human-readable summary of the changes.
322
+ *
323
+ * @param changes - Array of ConfigChange objects
324
+ * @returns Summary string describing the changes
325
+ */
326
+ export function getChangesSummary(changes) {
327
+ const counts = {
328
+ agentsAdded: 0,
329
+ agentsRemoved: 0,
330
+ agentsModified: 0,
331
+ schedulesAdded: 0,
332
+ schedulesRemoved: 0,
333
+ schedulesModified: 0,
334
+ };
335
+ for (const change of changes) {
336
+ if (change.category === "agent") {
337
+ if (change.type === "added")
338
+ counts.agentsAdded++;
339
+ else if (change.type === "removed")
340
+ counts.agentsRemoved++;
341
+ else if (change.type === "modified")
342
+ counts.agentsModified++;
343
+ }
344
+ else if (change.category === "schedule") {
345
+ if (change.type === "added")
346
+ counts.schedulesAdded++;
347
+ else if (change.type === "removed")
348
+ counts.schedulesRemoved++;
349
+ else if (change.type === "modified")
350
+ counts.schedulesModified++;
351
+ }
352
+ }
353
+ const parts = [];
354
+ if (counts.agentsAdded > 0) {
355
+ parts.push(`${counts.agentsAdded} agent${counts.agentsAdded > 1 ? "s" : ""} added`);
356
+ }
357
+ if (counts.agentsRemoved > 0) {
358
+ parts.push(`${counts.agentsRemoved} agent${counts.agentsRemoved > 1 ? "s" : ""} removed`);
359
+ }
360
+ if (counts.agentsModified > 0) {
361
+ parts.push(`${counts.agentsModified} agent${counts.agentsModified > 1 ? "s" : ""} modified`);
362
+ }
363
+ if (counts.schedulesAdded > 0) {
364
+ parts.push(`${counts.schedulesAdded} schedule${counts.schedulesAdded > 1 ? "s" : ""} added`);
365
+ }
366
+ if (counts.schedulesRemoved > 0) {
367
+ parts.push(`${counts.schedulesRemoved} schedule${counts.schedulesRemoved > 1 ? "s" : ""} removed`);
368
+ }
369
+ if (counts.schedulesModified > 0) {
370
+ parts.push(`${counts.schedulesModified} schedule${counts.schedulesModified > 1 ? "s" : ""} modified`);
371
+ }
372
+ return parts.length > 0 ? parts.join(", ") : "no changes";
373
+ }
374
+ /**
375
+ * Filter changes by category
376
+ *
377
+ * @param changes - Array of ConfigChange objects
378
+ * @param category - Category to filter by ("agent" or "schedule")
379
+ * @returns Filtered array of ConfigChange objects
380
+ */
381
+ export function filterChangesByCategory(changes, category) {
382
+ return changes.filter((c) => c.category === category);
383
+ }
384
+ /**
385
+ * Filter changes by type
386
+ *
387
+ * @param changes - Array of ConfigChange objects
388
+ * @param type - Type to filter by ("added", "removed", or "modified")
389
+ * @returns Filtered array of ConfigChange objects
390
+ */
391
+ export function filterChangesByType(changes, type) {
392
+ return changes.filter((c) => c.type === type);
393
+ }
394
+ /**
395
+ * Check if there are any agent changes
396
+ *
397
+ * @param changes - Array of ConfigChange objects
398
+ * @returns True if any agent changes exist
399
+ */
400
+ export function hasAgentChanges(changes) {
401
+ return changes.some((c) => c.category === "agent");
402
+ }
403
+ /**
404
+ * Check if there are any schedule changes
405
+ *
406
+ * @param changes - Array of ConfigChange objects
407
+ * @returns True if any schedule changes exist
408
+ */
409
+ export function hasScheduleChanges(changes) {
410
+ return changes.some((c) => c.category === "schedule");
411
+ }
412
+ /**
413
+ * Get names of added agents
414
+ *
415
+ * @param changes - Array of ConfigChange objects
416
+ * @returns Array of added agent names
417
+ */
418
+ export function getAddedAgentNames(changes) {
419
+ return changes
420
+ .filter((c) => c.category === "agent" && c.type === "added")
421
+ .map((c) => c.name);
422
+ }
423
+ /**
424
+ * Get names of removed agents
425
+ *
426
+ * @param changes - Array of ConfigChange objects
427
+ * @returns Array of removed agent names
428
+ */
429
+ export function getRemovedAgentNames(changes) {
430
+ return changes
431
+ .filter((c) => c.category === "agent" && c.type === "removed")
432
+ .map((c) => c.name);
433
+ }
434
+ /**
435
+ * Get names of modified agents
436
+ *
437
+ * @param changes - Array of ConfigChange objects
438
+ * @returns Array of modified agent names
439
+ */
440
+ export function getModifiedAgentNames(changes) {
441
+ return changes
442
+ .filter((c) => c.category === "agent" && c.type === "modified")
443
+ .map((c) => c.name);
444
+ }
445
+ //# sourceMappingURL=config-reload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-reload.js","sourceRoot":"","sources":["../../src/fleet-manager/config-reload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * FleetManager Context Module
3
+ *
4
+ * Provides a shared context interface that modules use to access FleetManager state.
5
+ * This enables a cleaner composition pattern where modules receive the context once
6
+ * at construction time rather than building dependency objects for each call.
7
+ *
8
+ * @module context
9
+ */
10
+ import type { EventEmitter } from "node:events";
11
+ import type { ResolvedConfig } from "../config/index.js";
12
+ import type { StateDirectory } from "../state/index.js";
13
+ import type { Scheduler } from "../scheduler/index.js";
14
+ import type { FleetManagerLogger, FleetManagerStatus } from "./types.js";
15
+ /**
16
+ * Context interface for FleetManager modules
17
+ *
18
+ * FleetManager implements this interface and passes itself to composed modules.
19
+ * Modules can access current state through these getters without needing
20
+ * individual dependency objects for each method call.
21
+ */
22
+ export interface FleetManagerContext {
23
+ /**
24
+ * Get the current configuration (null if not initialized)
25
+ */
26
+ getConfig(): ResolvedConfig | null;
27
+ /**
28
+ * Get the state directory path
29
+ */
30
+ getStateDir(): string;
31
+ /**
32
+ * Get the state directory info (null if not initialized)
33
+ */
34
+ getStateDirInfo(): StateDirectory | null;
35
+ /**
36
+ * Get the logger instance
37
+ */
38
+ getLogger(): FleetManagerLogger;
39
+ /**
40
+ * Get the scheduler instance (null if not initialized)
41
+ */
42
+ getScheduler(): Scheduler | null;
43
+ /**
44
+ * Get the current fleet manager status
45
+ */
46
+ getStatus(): FleetManagerStatus;
47
+ /**
48
+ * Get timing information: when initialized
49
+ */
50
+ getInitializedAt(): string | null;
51
+ /**
52
+ * Get timing information: when started
53
+ */
54
+ getStartedAt(): string | null;
55
+ /**
56
+ * Get timing information: when stopped
57
+ */
58
+ getStoppedAt(): string | null;
59
+ /**
60
+ * Get the last error message
61
+ */
62
+ getLastError(): string | null;
63
+ /**
64
+ * Get the check interval in milliseconds
65
+ */
66
+ getCheckInterval(): number;
67
+ /**
68
+ * Emit an event
69
+ */
70
+ emit(event: string, ...args: unknown[]): boolean;
71
+ /**
72
+ * Get the event emitter (for subscribing to events in modules)
73
+ */
74
+ getEmitter(): EventEmitter;
75
+ }
76
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/fleet-manager/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,SAAS,IAAI,cAAc,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC;IAEtB;;OAEG;IACH,eAAe,IAAI,cAAc,GAAG,IAAI,CAAC;IAEzC;;OAEG;IACH,SAAS,IAAI,kBAAkB,CAAC;IAEhC;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,SAAS,IAAI,kBAAkB,CAAC;IAEhC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAE9B;;OAEG;IACH,gBAAgB,IAAI,MAAM,CAAC;IAE3B;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEjD;;OAEG;IACH,UAAU,IAAI,YAAY,CAAC;CAC5B"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * FleetManager Context Module
3
+ *
4
+ * Provides a shared context interface that modules use to access FleetManager state.
5
+ * This enables a cleaner composition pattern where modules receive the context once
6
+ * at construction time rather than building dependency objects for each call.
7
+ *
8
+ * @module context
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/fleet-manager/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -218,18 +218,6 @@ export declare class InvalidStateError extends FleetManagerError {
218
218
  cause?: Error;
219
219
  });
220
220
  }
221
- /**
222
- * Error thrown when the fleet manager is not in the correct state for an operation
223
- *
224
- * @deprecated Use InvalidStateError instead. This class is kept for backwards compatibility.
225
- */
226
- export declare class FleetManagerStateError extends InvalidStateError {
227
- constructor(operation: string, currentState: string, requiredState: string | string[]);
228
- /**
229
- * Alias for expectedState for backwards compatibility
230
- */
231
- get requiredState(): string | string[];
232
- }
233
221
  /**
234
222
  * Error thrown when an operation would exceed concurrency limits
235
223
  *
@@ -266,19 +254,6 @@ export declare class ConcurrencyLimitError extends FleetManagerError {
266
254
  */
267
255
  isAtLimit(): boolean;
268
256
  }
269
- /**
270
- * Error thrown when configuration loading fails
271
- *
272
- * @deprecated Use ConfigurationError instead for new code.
273
- * This class is kept for backwards compatibility.
274
- */
275
- export declare class FleetManagerConfigError extends FleetManagerError {
276
- /** The path that was being loaded */
277
- readonly configPath?: string;
278
- constructor(message: string, configPath?: string, options?: {
279
- cause?: Error;
280
- });
281
- }
282
257
  /**
283
258
  * Error thrown when state directory initialization fails
284
259
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/fleet-manager/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/fleet-manager/errors.ts"],"names":[],"mappings":"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"}
@@ -292,23 +292,6 @@ export class InvalidStateError extends FleetManagerError {
292
292
  this.expectedState = expectedState;
293
293
  }
294
294
  }
295
- /**
296
- * Error thrown when the fleet manager is not in the correct state for an operation
297
- *
298
- * @deprecated Use InvalidStateError instead. This class is kept for backwards compatibility.
299
- */
300
- export class FleetManagerStateError extends InvalidStateError {
301
- constructor(operation, currentState, requiredState) {
302
- super(operation, currentState, requiredState);
303
- this.name = "FleetManagerStateError";
304
- }
305
- /**
306
- * Alias for expectedState for backwards compatibility
307
- */
308
- get requiredState() {
309
- return this.expectedState;
310
- }
311
- }
312
295
  // =============================================================================
313
296
  // Operational Errors
314
297
  // =============================================================================
@@ -358,27 +341,6 @@ export class ConcurrencyLimitError extends FleetManagerError {
358
341
  }
359
342
  }
360
343
  // =============================================================================
361
- // Configuration Loading Errors (kept for backwards compatibility)
362
- // =============================================================================
363
- /**
364
- * Error thrown when configuration loading fails
365
- *
366
- * @deprecated Use ConfigurationError instead for new code.
367
- * This class is kept for backwards compatibility.
368
- */
369
- export class FleetManagerConfigError extends FleetManagerError {
370
- /** The path that was being loaded */
371
- configPath;
372
- constructor(message, configPath, options) {
373
- super(message, {
374
- cause: options?.cause,
375
- code: FleetManagerErrorCode.CONFIG_LOAD_ERROR,
376
- });
377
- this.name = "FleetManagerConfigError";
378
- this.configPath = configPath;
379
- }
380
- }
381
- // =============================================================================
382
344
  // State Directory Errors
383
345
  // =============================================================================
384
346
  /**