@herdctl/core 0.0.1 → 0.0.2

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 (275) hide show
  1. package/dist/config/__tests__/agent.test.js +31 -13
  2. package/dist/config/__tests__/agent.test.js.map +1 -1
  3. package/dist/config/__tests__/merge.test.js +9 -2
  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 +828 -24
  12. package/dist/config/schema.d.ts.map +1 -1
  13. package/dist/config/schema.js +118 -6
  14. package/dist/config/schema.js.map +1 -1
  15. package/dist/fleet-manager/__tests__/coverage.test.js +11 -332
  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 +109 -0
  20. package/dist/fleet-manager/__tests__/integration.test.js.map +1 -1
  21. package/dist/fleet-manager/__tests__/reload.test.js +1 -1
  22. package/dist/fleet-manager/__tests__/reload.test.js.map +1 -1
  23. package/dist/fleet-manager/config-reload.d.ts +164 -0
  24. package/dist/fleet-manager/config-reload.d.ts.map +1 -0
  25. package/dist/fleet-manager/config-reload.js +445 -0
  26. package/dist/fleet-manager/config-reload.js.map +1 -0
  27. package/dist/fleet-manager/context.d.ts +76 -0
  28. package/dist/fleet-manager/context.d.ts.map +1 -0
  29. package/dist/fleet-manager/context.js +11 -0
  30. package/dist/fleet-manager/context.js.map +1 -0
  31. package/dist/fleet-manager/errors.d.ts +0 -25
  32. package/dist/fleet-manager/errors.d.ts.map +1 -1
  33. package/dist/fleet-manager/errors.js +0 -38
  34. package/dist/fleet-manager/errors.js.map +1 -1
  35. package/dist/fleet-manager/event-emitters.d.ts +123 -0
  36. package/dist/fleet-manager/event-emitters.d.ts.map +1 -0
  37. package/dist/fleet-manager/event-emitters.js +136 -0
  38. package/dist/fleet-manager/event-emitters.js.map +1 -0
  39. package/dist/fleet-manager/event-types.d.ts +0 -15
  40. package/dist/fleet-manager/event-types.d.ts.map +1 -1
  41. package/dist/fleet-manager/fleet-manager.d.ts +40 -653
  42. package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
  43. package/dist/fleet-manager/fleet-manager.js +95 -1720
  44. package/dist/fleet-manager/fleet-manager.js.map +1 -1
  45. package/dist/fleet-manager/index.d.ts +13 -2
  46. package/dist/fleet-manager/index.d.ts.map +1 -1
  47. package/dist/fleet-manager/index.js +19 -6
  48. package/dist/fleet-manager/index.js.map +1 -1
  49. package/dist/fleet-manager/job-control.d.ts +64 -0
  50. package/dist/fleet-manager/job-control.d.ts.map +1 -0
  51. package/dist/fleet-manager/job-control.js +296 -0
  52. package/dist/fleet-manager/job-control.js.map +1 -0
  53. package/dist/fleet-manager/log-streaming.d.ts +171 -0
  54. package/dist/fleet-manager/log-streaming.d.ts.map +1 -0
  55. package/dist/fleet-manager/log-streaming.js +503 -0
  56. package/dist/fleet-manager/log-streaming.js.map +1 -0
  57. package/dist/fleet-manager/schedule-executor.d.ts +63 -0
  58. package/dist/fleet-manager/schedule-executor.d.ts.map +1 -0
  59. package/dist/fleet-manager/schedule-executor.js +209 -0
  60. package/dist/fleet-manager/schedule-executor.js.map +1 -0
  61. package/dist/fleet-manager/schedule-management.d.ts +71 -0
  62. package/dist/fleet-manager/schedule-management.d.ts.map +1 -0
  63. package/dist/fleet-manager/schedule-management.js +171 -0
  64. package/dist/fleet-manager/schedule-management.js.map +1 -0
  65. package/dist/fleet-manager/status-queries.d.ts +105 -0
  66. package/dist/fleet-manager/status-queries.d.ts.map +1 -0
  67. package/dist/fleet-manager/status-queries.js +247 -0
  68. package/dist/fleet-manager/status-queries.js.map +1 -0
  69. package/dist/fleet-manager/types.d.ts +0 -39
  70. package/dist/fleet-manager/types.d.ts.map +1 -1
  71. package/dist/runner/__tests__/job-executor.test.js +206 -1
  72. package/dist/runner/__tests__/job-executor.test.js.map +1 -1
  73. package/dist/runner/job-executor.d.ts +9 -0
  74. package/dist/runner/job-executor.d.ts.map +1 -1
  75. package/dist/runner/job-executor.js +78 -4
  76. package/dist/runner/job-executor.js.map +1 -1
  77. package/dist/runner/types.d.ts +2 -0
  78. package/dist/runner/types.d.ts.map +1 -1
  79. package/dist/scheduler/__tests__/cron.test.d.ts +2 -0
  80. package/dist/scheduler/__tests__/cron.test.d.ts.map +1 -0
  81. package/dist/scheduler/__tests__/cron.test.js +867 -0
  82. package/dist/scheduler/__tests__/cron.test.js.map +1 -0
  83. package/dist/scheduler/__tests__/scheduler.test.js +164 -5
  84. package/dist/scheduler/__tests__/scheduler.test.js.map +1 -1
  85. package/dist/scheduler/cron.d.ts +126 -0
  86. package/dist/scheduler/cron.d.ts.map +1 -0
  87. package/dist/scheduler/cron.js +390 -0
  88. package/dist/scheduler/cron.js.map +1 -0
  89. package/dist/scheduler/errors.d.ts +81 -1
  90. package/dist/scheduler/errors.d.ts.map +1 -1
  91. package/dist/scheduler/errors.js +81 -6
  92. package/dist/scheduler/errors.js.map +1 -1
  93. package/dist/scheduler/index.d.ts +1 -0
  94. package/dist/scheduler/index.d.ts.map +1 -1
  95. package/dist/scheduler/index.js +2 -0
  96. package/dist/scheduler/index.js.map +1 -1
  97. package/dist/scheduler/schedule-runner.d.ts +2 -2
  98. package/dist/scheduler/schedule-runner.d.ts.map +1 -1
  99. package/dist/scheduler/schedule-runner.js +20 -8
  100. package/dist/scheduler/schedule-runner.js.map +1 -1
  101. package/dist/scheduler/scheduler.d.ts +4 -4
  102. package/dist/scheduler/scheduler.d.ts.map +1 -1
  103. package/dist/scheduler/scheduler.js +86 -20
  104. package/dist/scheduler/scheduler.js.map +1 -1
  105. package/dist/scheduler/types.d.ts +1 -1
  106. package/dist/scheduler/types.d.ts.map +1 -1
  107. package/dist/state/schemas/job-metadata.d.ts +2 -2
  108. package/package.json +33 -8
  109. package/.turbo/turbo-build.log +0 -4
  110. package/.turbo/turbo-test.log +0 -219
  111. package/.turbo/turbo-typecheck.log +0 -4
  112. package/coverage/base.css +0 -224
  113. package/coverage/block-navigation.js +0 -87
  114. package/coverage/coverage-final.json +0 -51
  115. package/coverage/favicon.png +0 -0
  116. package/coverage/index.html +0 -251
  117. package/coverage/prettify.css +0 -1
  118. package/coverage/prettify.js +0 -2
  119. package/coverage/sort-arrow-sprite.png +0 -0
  120. package/coverage/sorter.js +0 -210
  121. package/coverage/src/config/index.html +0 -191
  122. package/coverage/src/config/index.ts.html +0 -442
  123. package/coverage/src/config/interpolate.ts.html +0 -652
  124. package/coverage/src/config/loader.ts.html +0 -1501
  125. package/coverage/src/config/merge.ts.html +0 -823
  126. package/coverage/src/config/parser.ts.html +0 -1213
  127. package/coverage/src/config/schema.ts.html +0 -1123
  128. package/coverage/src/fleet-manager/errors.ts.html +0 -2326
  129. package/coverage/src/fleet-manager/event-types.ts.html +0 -1219
  130. package/coverage/src/fleet-manager/fleet-manager.ts.html +0 -7030
  131. package/coverage/src/fleet-manager/index.html +0 -206
  132. package/coverage/src/fleet-manager/index.ts.html +0 -469
  133. package/coverage/src/fleet-manager/job-manager.ts.html +0 -2074
  134. package/coverage/src/fleet-manager/job-queue.ts.html +0 -2479
  135. package/coverage/src/fleet-manager/types.ts.html +0 -2602
  136. package/coverage/src/index.html +0 -116
  137. package/coverage/src/index.ts.html +0 -181
  138. package/coverage/src/runner/errors.ts.html +0 -1006
  139. package/coverage/src/runner/index.html +0 -191
  140. package/coverage/src/runner/index.ts.html +0 -256
  141. package/coverage/src/runner/job-executor.ts.html +0 -1429
  142. package/coverage/src/runner/message-processor.ts.html +0 -1150
  143. package/coverage/src/runner/sdk-adapter.ts.html +0 -658
  144. package/coverage/src/runner/types.ts.html +0 -559
  145. package/coverage/src/scheduler/errors.ts.html +0 -388
  146. package/coverage/src/scheduler/index.html +0 -206
  147. package/coverage/src/scheduler/index.ts.html +0 -244
  148. package/coverage/src/scheduler/interval.ts.html +0 -652
  149. package/coverage/src/scheduler/schedule-runner.ts.html +0 -1411
  150. package/coverage/src/scheduler/schedule-state.ts.html +0 -718
  151. package/coverage/src/scheduler/scheduler.ts.html +0 -1795
  152. package/coverage/src/scheduler/types.ts.html +0 -733
  153. package/coverage/src/state/directory.ts.html +0 -736
  154. package/coverage/src/state/errors.ts.html +0 -376
  155. package/coverage/src/state/fleet-state.ts.html +0 -937
  156. package/coverage/src/state/index.html +0 -221
  157. package/coverage/src/state/index.ts.html +0 -322
  158. package/coverage/src/state/job-metadata.ts.html +0 -1420
  159. package/coverage/src/state/job-output.ts.html +0 -1033
  160. package/coverage/src/state/schemas/fleet-state.ts.html +0 -445
  161. package/coverage/src/state/schemas/index.html +0 -176
  162. package/coverage/src/state/schemas/index.ts.html +0 -286
  163. package/coverage/src/state/schemas/job-metadata.ts.html +0 -628
  164. package/coverage/src/state/schemas/job-output.ts.html +0 -616
  165. package/coverage/src/state/schemas/session-info.ts.html +0 -361
  166. package/coverage/src/state/session.ts.html +0 -844
  167. package/coverage/src/state/types.ts.html +0 -262
  168. package/coverage/src/state/utils/atomic.ts.html +0 -748
  169. package/coverage/src/state/utils/index.html +0 -146
  170. package/coverage/src/state/utils/index.ts.html +0 -103
  171. package/coverage/src/state/utils/reads.ts.html +0 -1621
  172. package/coverage/src/work-sources/adapters/github.ts.html +0 -3583
  173. package/coverage/src/work-sources/adapters/index.html +0 -131
  174. package/coverage/src/work-sources/adapters/index.ts.html +0 -277
  175. package/coverage/src/work-sources/errors.ts.html +0 -298
  176. package/coverage/src/work-sources/index.html +0 -176
  177. package/coverage/src/work-sources/index.ts.html +0 -529
  178. package/coverage/src/work-sources/manager.ts.html +0 -1324
  179. package/coverage/src/work-sources/registry.ts.html +0 -619
  180. package/coverage/src/work-sources/types.ts.html +0 -568
  181. package/dist/fleet-manager/__tests__/event-helpers.test.d.ts +0 -7
  182. package/dist/fleet-manager/__tests__/event-helpers.test.d.ts.map +0 -1
  183. package/dist/fleet-manager/__tests__/event-helpers.test.js +0 -368
  184. package/dist/fleet-manager/__tests__/event-helpers.test.js.map +0 -1
  185. package/src/config/__tests__/agent.test.ts +0 -864
  186. package/src/config/__tests__/interpolate.test.ts +0 -644
  187. package/src/config/__tests__/loader.test.ts +0 -784
  188. package/src/config/__tests__/merge.test.ts +0 -751
  189. package/src/config/__tests__/parser.test.ts +0 -533
  190. package/src/config/__tests__/schema.test.ts +0 -873
  191. package/src/config/index.ts +0 -119
  192. package/src/config/interpolate.ts +0 -189
  193. package/src/config/loader.ts +0 -472
  194. package/src/config/merge.ts +0 -246
  195. package/src/config/parser.ts +0 -376
  196. package/src/config/schema.ts +0 -346
  197. package/src/fleet-manager/__tests__/coverage.test.ts +0 -2869
  198. package/src/fleet-manager/__tests__/errors.test.ts +0 -660
  199. package/src/fleet-manager/__tests__/event-helpers.test.ts +0 -448
  200. package/src/fleet-manager/__tests__/integration.test.ts +0 -1209
  201. package/src/fleet-manager/__tests__/job-control.test.ts +0 -283
  202. package/src/fleet-manager/__tests__/job-manager.test.ts +0 -869
  203. package/src/fleet-manager/__tests__/job-queue.test.ts +0 -401
  204. package/src/fleet-manager/__tests__/reload.test.ts +0 -751
  205. package/src/fleet-manager/__tests__/status-queries.test.ts +0 -595
  206. package/src/fleet-manager/__tests__/trigger.test.ts +0 -601
  207. package/src/fleet-manager/errors.ts +0 -747
  208. package/src/fleet-manager/event-types.ts +0 -378
  209. package/src/fleet-manager/fleet-manager.ts +0 -2315
  210. package/src/fleet-manager/index.ts +0 -128
  211. package/src/fleet-manager/job-manager.ts +0 -663
  212. package/src/fleet-manager/job-queue.ts +0 -798
  213. package/src/fleet-manager/types.ts +0 -839
  214. package/src/index.ts +0 -32
  215. package/src/runner/__tests__/errors.test.ts +0 -382
  216. package/src/runner/__tests__/job-executor.test.ts +0 -1708
  217. package/src/runner/__tests__/message-processor.test.ts +0 -960
  218. package/src/runner/__tests__/sdk-adapter.test.ts +0 -626
  219. package/src/runner/errors.ts +0 -307
  220. package/src/runner/index.ts +0 -57
  221. package/src/runner/job-executor.ts +0 -448
  222. package/src/runner/message-processor.ts +0 -355
  223. package/src/runner/sdk-adapter.ts +0 -191
  224. package/src/runner/types.ts +0 -158
  225. package/src/scheduler/__tests__/errors.test.ts +0 -159
  226. package/src/scheduler/__tests__/interval.test.ts +0 -515
  227. package/src/scheduler/__tests__/schedule-runner.test.ts +0 -798
  228. package/src/scheduler/__tests__/schedule-state.test.ts +0 -671
  229. package/src/scheduler/__tests__/scheduler.test.ts +0 -1280
  230. package/src/scheduler/errors.ts +0 -101
  231. package/src/scheduler/index.ts +0 -53
  232. package/src/scheduler/interval.ts +0 -189
  233. package/src/scheduler/schedule-runner.ts +0 -442
  234. package/src/scheduler/schedule-state.ts +0 -211
  235. package/src/scheduler/scheduler.ts +0 -570
  236. package/src/scheduler/types.ts +0 -216
  237. package/src/state/__tests__/directory.test.ts +0 -595
  238. package/src/state/__tests__/fleet-state.test.ts +0 -868
  239. package/src/state/__tests__/job-metadata-schema.test.ts +0 -414
  240. package/src/state/__tests__/job-metadata.test.ts +0 -831
  241. package/src/state/__tests__/job-output.test.ts +0 -856
  242. package/src/state/__tests__/session-schema.test.ts +0 -378
  243. package/src/state/__tests__/session.test.ts +0 -604
  244. package/src/state/directory.ts +0 -217
  245. package/src/state/errors.ts +0 -97
  246. package/src/state/fleet-state.ts +0 -284
  247. package/src/state/index.ts +0 -79
  248. package/src/state/job-metadata.ts +0 -445
  249. package/src/state/job-output.ts +0 -316
  250. package/src/state/schemas/__tests__/job-output.test.ts +0 -338
  251. package/src/state/schemas/fleet-state.ts +0 -120
  252. package/src/state/schemas/index.ts +0 -67
  253. package/src/state/schemas/job-metadata.ts +0 -181
  254. package/src/state/schemas/job-output.ts +0 -177
  255. package/src/state/schemas/session-info.ts +0 -92
  256. package/src/state/session.ts +0 -253
  257. package/src/state/types.ts +0 -59
  258. package/src/state/utils/__tests__/atomic.test.ts +0 -723
  259. package/src/state/utils/__tests__/reads.test.ts +0 -1071
  260. package/src/state/utils/atomic.ts +0 -221
  261. package/src/state/utils/index.ts +0 -6
  262. package/src/state/utils/reads.ts +0 -512
  263. package/src/work-sources/__tests__/github.test.ts +0 -1800
  264. package/src/work-sources/__tests__/manager.test.ts +0 -529
  265. package/src/work-sources/__tests__/registry.test.ts +0 -477
  266. package/src/work-sources/__tests__/types.test.ts +0 -479
  267. package/src/work-sources/adapters/github.ts +0 -1166
  268. package/src/work-sources/adapters/index.ts +0 -64
  269. package/src/work-sources/errors.ts +0 -71
  270. package/src/work-sources/index.ts +0 -148
  271. package/src/work-sources/manager.ts +0 -413
  272. package/src/work-sources/registry.ts +0 -178
  273. package/src/work-sources/types.ts +0 -161
  274. package/tsconfig.json +0 -9
  275. 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 {FleetManagerConfigError} 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":"AAAA;;;;;GAKG;AAMH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;CAwBxB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAC/B,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAMrE;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,2CAA2C;IAC3C,SAAgB,IAAI,EAAE,qBAAqB,CAAC;gBAG1C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,qBAAqB,CAAA;KAAE;CAO5D;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,qDAAqD;IACrD,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpC,yCAAyC;IACzC,SAAgB,gBAAgB,EAAE,eAAe,EAAE,CAAC;gBAGlD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;QACrC,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;IAkBH;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAqB3B;;OAEG;IACH,mBAAmB,IAAI,OAAO;CAG/B;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,+CAA+C;IAC/C,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,wEAAwE;IACxE,SAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;gBAGzC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;IAezD,OAAO,CAAC,MAAM,CAAC,YAAY;CAc5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;IACrD,2CAA2C;IAC3C,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAQvD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,mEAAmE;IACnE,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,kDAAkD;IAClD,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC,2EAA2E;IAC3E,SAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;gBAG5C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;IAiB5D,OAAO,CAAC,MAAM,CAAC,YAAY;CAe5B;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,6CAA6C;IAC7C,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC,uDAAuD;IACvD,SAAgB,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEjD,uCAAuC;IACvC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAGhC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,EAChC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAkB9B;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAEzD,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE;IAMlC;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,GAAG,MAAM,EAAE,CAErC;CACF;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,2DAA2D;IAC3D,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,wDAAwD;IACxD,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,yDAAyD;IACzD,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAG5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;IAe7B;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAMD;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,iBAAiB;IAC5D,qCAAqC;IACrC,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAGlC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAS9B;AAMD;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,+BAA+B;IAC/B,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAQ3E;AAMD;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,iBAAiB;IAC9D,qCAAqC;IACrC,SAAgB,QAAQ,EAAE,OAAO,CAAC;gBAGhC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;IAU/C;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;IACnD,8CAA8C;IAC9C,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,yCAAyC;IACzC,SAAgB,MAAM,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;gBAG9E,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,EAC/D,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAiBhD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,qDAAqD;IACrD,SAAgB,aAAa,EAAE,MAAM,CAAC;IAEtC,iCAAiC;IACjC,SAAgB,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;gBAGrF,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,EACtE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAiBhD;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAE7B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAE7B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,qBAAqB,CAEhC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iBAAiB,CAE5B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,qBAAqB,CAEhC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE"}
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
  /**