@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.
- package/dist/config/__tests__/agent.test.js +31 -13
- package/dist/config/__tests__/agent.test.js.map +1 -1
- package/dist/config/__tests__/merge.test.js +9 -2
- package/dist/config/__tests__/merge.test.js.map +1 -1
- package/dist/config/__tests__/schema.test.js +350 -1
- package/dist/config/__tests__/schema.test.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/schema.d.ts +828 -24
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +118 -6
- package/dist/config/schema.js.map +1 -1
- package/dist/fleet-manager/__tests__/coverage.test.js +11 -332
- package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/errors.test.js +1 -49
- package/dist/fleet-manager/__tests__/errors.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/integration.test.js +109 -0
- package/dist/fleet-manager/__tests__/integration.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/reload.test.js +1 -1
- package/dist/fleet-manager/__tests__/reload.test.js.map +1 -1
- package/dist/fleet-manager/config-reload.d.ts +164 -0
- package/dist/fleet-manager/config-reload.d.ts.map +1 -0
- package/dist/fleet-manager/config-reload.js +445 -0
- package/dist/fleet-manager/config-reload.js.map +1 -0
- package/dist/fleet-manager/context.d.ts +76 -0
- package/dist/fleet-manager/context.d.ts.map +1 -0
- package/dist/fleet-manager/context.js +11 -0
- package/dist/fleet-manager/context.js.map +1 -0
- package/dist/fleet-manager/errors.d.ts +0 -25
- package/dist/fleet-manager/errors.d.ts.map +1 -1
- package/dist/fleet-manager/errors.js +0 -38
- package/dist/fleet-manager/errors.js.map +1 -1
- package/dist/fleet-manager/event-emitters.d.ts +123 -0
- package/dist/fleet-manager/event-emitters.d.ts.map +1 -0
- package/dist/fleet-manager/event-emitters.js +136 -0
- package/dist/fleet-manager/event-emitters.js.map +1 -0
- package/dist/fleet-manager/event-types.d.ts +0 -15
- package/dist/fleet-manager/event-types.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.d.ts +40 -653
- package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.js +95 -1720
- package/dist/fleet-manager/fleet-manager.js.map +1 -1
- package/dist/fleet-manager/index.d.ts +13 -2
- package/dist/fleet-manager/index.d.ts.map +1 -1
- package/dist/fleet-manager/index.js +19 -6
- package/dist/fleet-manager/index.js.map +1 -1
- package/dist/fleet-manager/job-control.d.ts +64 -0
- package/dist/fleet-manager/job-control.d.ts.map +1 -0
- package/dist/fleet-manager/job-control.js +296 -0
- package/dist/fleet-manager/job-control.js.map +1 -0
- package/dist/fleet-manager/log-streaming.d.ts +171 -0
- package/dist/fleet-manager/log-streaming.d.ts.map +1 -0
- package/dist/fleet-manager/log-streaming.js +503 -0
- package/dist/fleet-manager/log-streaming.js.map +1 -0
- package/dist/fleet-manager/schedule-executor.d.ts +63 -0
- package/dist/fleet-manager/schedule-executor.d.ts.map +1 -0
- package/dist/fleet-manager/schedule-executor.js +209 -0
- package/dist/fleet-manager/schedule-executor.js.map +1 -0
- package/dist/fleet-manager/schedule-management.d.ts +71 -0
- package/dist/fleet-manager/schedule-management.d.ts.map +1 -0
- package/dist/fleet-manager/schedule-management.js +171 -0
- package/dist/fleet-manager/schedule-management.js.map +1 -0
- package/dist/fleet-manager/status-queries.d.ts +105 -0
- package/dist/fleet-manager/status-queries.d.ts.map +1 -0
- package/dist/fleet-manager/status-queries.js +247 -0
- package/dist/fleet-manager/status-queries.js.map +1 -0
- package/dist/fleet-manager/types.d.ts +0 -39
- package/dist/fleet-manager/types.d.ts.map +1 -1
- package/dist/runner/__tests__/job-executor.test.js +206 -1
- package/dist/runner/__tests__/job-executor.test.js.map +1 -1
- package/dist/runner/job-executor.d.ts +9 -0
- package/dist/runner/job-executor.d.ts.map +1 -1
- package/dist/runner/job-executor.js +78 -4
- package/dist/runner/job-executor.js.map +1 -1
- package/dist/runner/types.d.ts +2 -0
- package/dist/runner/types.d.ts.map +1 -1
- package/dist/scheduler/__tests__/cron.test.d.ts +2 -0
- package/dist/scheduler/__tests__/cron.test.d.ts.map +1 -0
- package/dist/scheduler/__tests__/cron.test.js +867 -0
- package/dist/scheduler/__tests__/cron.test.js.map +1 -0
- package/dist/scheduler/__tests__/scheduler.test.js +164 -5
- package/dist/scheduler/__tests__/scheduler.test.js.map +1 -1
- package/dist/scheduler/cron.d.ts +126 -0
- package/dist/scheduler/cron.d.ts.map +1 -0
- package/dist/scheduler/cron.js +390 -0
- package/dist/scheduler/cron.js.map +1 -0
- package/dist/scheduler/errors.d.ts +81 -1
- package/dist/scheduler/errors.d.ts.map +1 -1
- package/dist/scheduler/errors.js +81 -6
- package/dist/scheduler/errors.js.map +1 -1
- package/dist/scheduler/index.d.ts +1 -0
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +2 -0
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/schedule-runner.d.ts +2 -2
- package/dist/scheduler/schedule-runner.d.ts.map +1 -1
- package/dist/scheduler/schedule-runner.js +20 -8
- package/dist/scheduler/schedule-runner.js.map +1 -1
- package/dist/scheduler/scheduler.d.ts +4 -4
- package/dist/scheduler/scheduler.d.ts.map +1 -1
- package/dist/scheduler/scheduler.js +86 -20
- package/dist/scheduler/scheduler.js.map +1 -1
- package/dist/scheduler/types.d.ts +1 -1
- package/dist/scheduler/types.d.ts.map +1 -1
- package/dist/state/schemas/job-metadata.d.ts +2 -2
- package/package.json +33 -8
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-test.log +0 -219
- package/.turbo/turbo-typecheck.log +0 -4
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/coverage-final.json +0 -51
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -251
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/src/config/index.html +0 -191
- package/coverage/src/config/index.ts.html +0 -442
- package/coverage/src/config/interpolate.ts.html +0 -652
- package/coverage/src/config/loader.ts.html +0 -1501
- package/coverage/src/config/merge.ts.html +0 -823
- package/coverage/src/config/parser.ts.html +0 -1213
- package/coverage/src/config/schema.ts.html +0 -1123
- package/coverage/src/fleet-manager/errors.ts.html +0 -2326
- package/coverage/src/fleet-manager/event-types.ts.html +0 -1219
- package/coverage/src/fleet-manager/fleet-manager.ts.html +0 -7030
- package/coverage/src/fleet-manager/index.html +0 -206
- package/coverage/src/fleet-manager/index.ts.html +0 -469
- package/coverage/src/fleet-manager/job-manager.ts.html +0 -2074
- package/coverage/src/fleet-manager/job-queue.ts.html +0 -2479
- package/coverage/src/fleet-manager/types.ts.html +0 -2602
- package/coverage/src/index.html +0 -116
- package/coverage/src/index.ts.html +0 -181
- package/coverage/src/runner/errors.ts.html +0 -1006
- package/coverage/src/runner/index.html +0 -191
- package/coverage/src/runner/index.ts.html +0 -256
- package/coverage/src/runner/job-executor.ts.html +0 -1429
- package/coverage/src/runner/message-processor.ts.html +0 -1150
- package/coverage/src/runner/sdk-adapter.ts.html +0 -658
- package/coverage/src/runner/types.ts.html +0 -559
- package/coverage/src/scheduler/errors.ts.html +0 -388
- package/coverage/src/scheduler/index.html +0 -206
- package/coverage/src/scheduler/index.ts.html +0 -244
- package/coverage/src/scheduler/interval.ts.html +0 -652
- package/coverage/src/scheduler/schedule-runner.ts.html +0 -1411
- package/coverage/src/scheduler/schedule-state.ts.html +0 -718
- package/coverage/src/scheduler/scheduler.ts.html +0 -1795
- package/coverage/src/scheduler/types.ts.html +0 -733
- package/coverage/src/state/directory.ts.html +0 -736
- package/coverage/src/state/errors.ts.html +0 -376
- package/coverage/src/state/fleet-state.ts.html +0 -937
- package/coverage/src/state/index.html +0 -221
- package/coverage/src/state/index.ts.html +0 -322
- package/coverage/src/state/job-metadata.ts.html +0 -1420
- package/coverage/src/state/job-output.ts.html +0 -1033
- package/coverage/src/state/schemas/fleet-state.ts.html +0 -445
- package/coverage/src/state/schemas/index.html +0 -176
- package/coverage/src/state/schemas/index.ts.html +0 -286
- package/coverage/src/state/schemas/job-metadata.ts.html +0 -628
- package/coverage/src/state/schemas/job-output.ts.html +0 -616
- package/coverage/src/state/schemas/session-info.ts.html +0 -361
- package/coverage/src/state/session.ts.html +0 -844
- package/coverage/src/state/types.ts.html +0 -262
- package/coverage/src/state/utils/atomic.ts.html +0 -748
- package/coverage/src/state/utils/index.html +0 -146
- package/coverage/src/state/utils/index.ts.html +0 -103
- package/coverage/src/state/utils/reads.ts.html +0 -1621
- package/coverage/src/work-sources/adapters/github.ts.html +0 -3583
- package/coverage/src/work-sources/adapters/index.html +0 -131
- package/coverage/src/work-sources/adapters/index.ts.html +0 -277
- package/coverage/src/work-sources/errors.ts.html +0 -298
- package/coverage/src/work-sources/index.html +0 -176
- package/coverage/src/work-sources/index.ts.html +0 -529
- package/coverage/src/work-sources/manager.ts.html +0 -1324
- package/coverage/src/work-sources/registry.ts.html +0 -619
- package/coverage/src/work-sources/types.ts.html +0 -568
- package/dist/fleet-manager/__tests__/event-helpers.test.d.ts +0 -7
- package/dist/fleet-manager/__tests__/event-helpers.test.d.ts.map +0 -1
- package/dist/fleet-manager/__tests__/event-helpers.test.js +0 -368
- package/dist/fleet-manager/__tests__/event-helpers.test.js.map +0 -1
- package/src/config/__tests__/agent.test.ts +0 -864
- package/src/config/__tests__/interpolate.test.ts +0 -644
- package/src/config/__tests__/loader.test.ts +0 -784
- package/src/config/__tests__/merge.test.ts +0 -751
- package/src/config/__tests__/parser.test.ts +0 -533
- package/src/config/__tests__/schema.test.ts +0 -873
- package/src/config/index.ts +0 -119
- package/src/config/interpolate.ts +0 -189
- package/src/config/loader.ts +0 -472
- package/src/config/merge.ts +0 -246
- package/src/config/parser.ts +0 -376
- package/src/config/schema.ts +0 -346
- package/src/fleet-manager/__tests__/coverage.test.ts +0 -2869
- package/src/fleet-manager/__tests__/errors.test.ts +0 -660
- package/src/fleet-manager/__tests__/event-helpers.test.ts +0 -448
- package/src/fleet-manager/__tests__/integration.test.ts +0 -1209
- package/src/fleet-manager/__tests__/job-control.test.ts +0 -283
- package/src/fleet-manager/__tests__/job-manager.test.ts +0 -869
- package/src/fleet-manager/__tests__/job-queue.test.ts +0 -401
- package/src/fleet-manager/__tests__/reload.test.ts +0 -751
- package/src/fleet-manager/__tests__/status-queries.test.ts +0 -595
- package/src/fleet-manager/__tests__/trigger.test.ts +0 -601
- package/src/fleet-manager/errors.ts +0 -747
- package/src/fleet-manager/event-types.ts +0 -378
- package/src/fleet-manager/fleet-manager.ts +0 -2315
- package/src/fleet-manager/index.ts +0 -128
- package/src/fleet-manager/job-manager.ts +0 -663
- package/src/fleet-manager/job-queue.ts +0 -798
- package/src/fleet-manager/types.ts +0 -839
- package/src/index.ts +0 -32
- package/src/runner/__tests__/errors.test.ts +0 -382
- package/src/runner/__tests__/job-executor.test.ts +0 -1708
- package/src/runner/__tests__/message-processor.test.ts +0 -960
- package/src/runner/__tests__/sdk-adapter.test.ts +0 -626
- package/src/runner/errors.ts +0 -307
- package/src/runner/index.ts +0 -57
- package/src/runner/job-executor.ts +0 -448
- package/src/runner/message-processor.ts +0 -355
- package/src/runner/sdk-adapter.ts +0 -191
- package/src/runner/types.ts +0 -158
- package/src/scheduler/__tests__/errors.test.ts +0 -159
- package/src/scheduler/__tests__/interval.test.ts +0 -515
- package/src/scheduler/__tests__/schedule-runner.test.ts +0 -798
- package/src/scheduler/__tests__/schedule-state.test.ts +0 -671
- package/src/scheduler/__tests__/scheduler.test.ts +0 -1280
- package/src/scheduler/errors.ts +0 -101
- package/src/scheduler/index.ts +0 -53
- package/src/scheduler/interval.ts +0 -189
- package/src/scheduler/schedule-runner.ts +0 -442
- package/src/scheduler/schedule-state.ts +0 -211
- package/src/scheduler/scheduler.ts +0 -570
- package/src/scheduler/types.ts +0 -216
- package/src/state/__tests__/directory.test.ts +0 -595
- package/src/state/__tests__/fleet-state.test.ts +0 -868
- package/src/state/__tests__/job-metadata-schema.test.ts +0 -414
- package/src/state/__tests__/job-metadata.test.ts +0 -831
- package/src/state/__tests__/job-output.test.ts +0 -856
- package/src/state/__tests__/session-schema.test.ts +0 -378
- package/src/state/__tests__/session.test.ts +0 -604
- package/src/state/directory.ts +0 -217
- package/src/state/errors.ts +0 -97
- package/src/state/fleet-state.ts +0 -284
- package/src/state/index.ts +0 -79
- package/src/state/job-metadata.ts +0 -445
- package/src/state/job-output.ts +0 -316
- package/src/state/schemas/__tests__/job-output.test.ts +0 -338
- package/src/state/schemas/fleet-state.ts +0 -120
- package/src/state/schemas/index.ts +0 -67
- package/src/state/schemas/job-metadata.ts +0 -181
- package/src/state/schemas/job-output.ts +0 -177
- package/src/state/schemas/session-info.ts +0 -92
- package/src/state/session.ts +0 -253
- package/src/state/types.ts +0 -59
- package/src/state/utils/__tests__/atomic.test.ts +0 -723
- package/src/state/utils/__tests__/reads.test.ts +0 -1071
- package/src/state/utils/atomic.ts +0 -221
- package/src/state/utils/index.ts +0 -6
- package/src/state/utils/reads.ts +0 -512
- package/src/work-sources/__tests__/github.test.ts +0 -1800
- package/src/work-sources/__tests__/manager.test.ts +0 -529
- package/src/work-sources/__tests__/registry.test.ts +0 -477
- package/src/work-sources/__tests__/types.test.ts +0 -479
- package/src/work-sources/adapters/github.ts +0 -1166
- package/src/work-sources/adapters/index.ts +0 -64
- package/src/work-sources/errors.ts +0 -71
- package/src/work-sources/index.ts +0 -148
- package/src/work-sources/manager.ts +0 -413
- package/src/work-sources/registry.ts +0 -178
- package/src/work-sources/types.ts +0 -161
- package/tsconfig.json +0 -9
- 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":"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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
|
/**
|