@herdctl/core 0.0.2 → 0.2.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.
- package/LICENSE +21 -0
- package/dist/config/__tests__/agent.test.js +30 -0
- package/dist/config/__tests__/agent.test.js.map +1 -1
- package/dist/config/__tests__/merge.test.js +1 -1
- package/dist/config/__tests__/merge.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 +1005 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +87 -4
- package/dist/config/schema.js.map +1 -1
- package/dist/fleet-manager/__tests__/coverage.test.js +6 -2
- package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/integration.test.js +5 -0
- package/dist/fleet-manager/__tests__/integration.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/job-control.test.js +13 -14
- package/dist/fleet-manager/__tests__/job-control.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/reload.test.js +13 -3
- package/dist/fleet-manager/__tests__/reload.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/status-queries.test.js +6 -0
- package/dist/fleet-manager/__tests__/status-queries.test.js.map +1 -1
- package/dist/fleet-manager/__tests__/trigger.test.js +10 -2
- package/dist/fleet-manager/__tests__/trigger.test.js.map +1 -1
- package/dist/fleet-manager/config-reload.d.ts +1 -1
- package/dist/fleet-manager/config-reload.js +1 -1
- package/dist/fleet-manager/fleet-manager.d.ts +1 -0
- package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.js +1 -0
- package/dist/fleet-manager/fleet-manager.js.map +1 -1
- package/dist/fleet-manager/job-control.d.ts +41 -0
- package/dist/fleet-manager/job-control.d.ts.map +1 -1
- package/dist/fleet-manager/job-control.js +243 -20
- package/dist/fleet-manager/job-control.js.map +1 -1
- package/dist/fleet-manager/schedule-executor.d.ts +20 -0
- package/dist/fleet-manager/schedule-executor.d.ts.map +1 -1
- package/dist/fleet-manager/schedule-executor.js +113 -3
- package/dist/fleet-manager/schedule-executor.js.map +1 -1
- package/dist/fleet-manager/types.d.ts +18 -0
- package/dist/fleet-manager/types.d.ts.map +1 -1
- package/dist/hooks/__tests__/discord-runner.test.d.ts +5 -0
- package/dist/hooks/__tests__/discord-runner.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/discord-runner.test.js +606 -0
- package/dist/hooks/__tests__/discord-runner.test.js.map +1 -0
- package/dist/hooks/__tests__/hook-executor.test.d.ts +5 -0
- package/dist/hooks/__tests__/hook-executor.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/hook-executor.test.js +443 -0
- package/dist/hooks/__tests__/hook-executor.test.js.map +1 -0
- package/dist/hooks/__tests__/shell-runner.test.d.ts +5 -0
- package/dist/hooks/__tests__/shell-runner.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/shell-runner.test.js +201 -0
- package/dist/hooks/__tests__/shell-runner.test.js.map +1 -0
- package/dist/hooks/__tests__/webhook-runner.test.d.ts +5 -0
- package/dist/hooks/__tests__/webhook-runner.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/webhook-runner.test.js +453 -0
- package/dist/hooks/__tests__/webhook-runner.test.js.map +1 -0
- package/dist/hooks/hook-executor.d.ts +129 -0
- package/dist/hooks/hook-executor.d.ts.map +1 -0
- package/dist/hooks/hook-executor.js +195 -0
- package/dist/hooks/hook-executor.js.map +1 -0
- package/dist/hooks/index.d.ts +15 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +18 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/runners/discord.d.ts +66 -0
- package/dist/hooks/runners/discord.d.ts.map +1 -0
- package/dist/hooks/runners/discord.js +294 -0
- package/dist/hooks/runners/discord.js.map +1 -0
- package/dist/hooks/runners/shell.d.ts +71 -0
- package/dist/hooks/runners/shell.d.ts.map +1 -0
- package/dist/hooks/runners/shell.js +177 -0
- package/dist/hooks/runners/shell.js.map +1 -0
- package/dist/hooks/runners/webhook.d.ts +66 -0
- package/dist/hooks/runners/webhook.d.ts.map +1 -0
- package/dist/hooks/runners/webhook.js +163 -0
- package/dist/hooks/runners/webhook.js.map +1 -0
- package/dist/hooks/types.d.ts +196 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +12 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/runner/__tests__/sdk-adapter.test.js +4 -3
- package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -1
- package/dist/runner/message-processor.d.ts +5 -1
- package/dist/runner/message-processor.d.ts.map +1 -1
- package/dist/runner/message-processor.js +238 -18
- package/dist/runner/message-processor.js.map +1 -1
- package/dist/runner/sdk-adapter.d.ts.map +1 -1
- package/dist/runner/sdk-adapter.js +8 -1
- package/dist/runner/sdk-adapter.js.map +1 -1
- package/dist/runner/types.d.ts +23 -2
- package/dist/runner/types.d.ts.map +1 -1
- package/dist/scheduler/scheduler.d.ts.map +1 -1
- package/dist/scheduler/scheduler.js +9 -0
- package/dist/scheduler/scheduler.js.map +1 -1
- package/dist/state/schemas/job-metadata.d.ts +4 -4
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-runner.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/webhook-runner.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook Executor
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the execution of hooks after job completion.
|
|
5
|
+
* Handles sequencing, error handling, and event filtering.
|
|
6
|
+
*/
|
|
7
|
+
import type { HookContext, HookResult } from "./types.js";
|
|
8
|
+
import type { AgentHooksInput } from "../config/schema.js";
|
|
9
|
+
/**
|
|
10
|
+
* Logger interface for HookExecutor
|
|
11
|
+
*/
|
|
12
|
+
export interface HookExecutorLogger {
|
|
13
|
+
debug: (message: string) => void;
|
|
14
|
+
info: (message: string) => void;
|
|
15
|
+
warn: (message: string) => void;
|
|
16
|
+
error: (message: string) => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Options for HookExecutor
|
|
20
|
+
*/
|
|
21
|
+
export interface HookExecutorOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Logger for hook execution
|
|
24
|
+
*/
|
|
25
|
+
logger?: HookExecutorLogger;
|
|
26
|
+
/**
|
|
27
|
+
* Working directory for shell hooks
|
|
28
|
+
*/
|
|
29
|
+
cwd?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Additional environment variables for hooks
|
|
32
|
+
*/
|
|
33
|
+
env?: Record<string, string>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Result of executing all hooks for an event
|
|
37
|
+
*/
|
|
38
|
+
export interface HookExecutionResult {
|
|
39
|
+
/**
|
|
40
|
+
* Whether all hooks executed successfully
|
|
41
|
+
*/
|
|
42
|
+
success: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Total number of hooks executed
|
|
45
|
+
*/
|
|
46
|
+
totalHooks: number;
|
|
47
|
+
/**
|
|
48
|
+
* Number of hooks that succeeded
|
|
49
|
+
*/
|
|
50
|
+
successfulHooks: number;
|
|
51
|
+
/**
|
|
52
|
+
* Number of hooks that failed
|
|
53
|
+
*/
|
|
54
|
+
failedHooks: number;
|
|
55
|
+
/**
|
|
56
|
+
* Number of hooks that were skipped (filtered by on_events)
|
|
57
|
+
*/
|
|
58
|
+
skippedHooks: number;
|
|
59
|
+
/**
|
|
60
|
+
* Total duration of all hook executions in milliseconds
|
|
61
|
+
*/
|
|
62
|
+
totalDurationMs: number;
|
|
63
|
+
/**
|
|
64
|
+
* Individual hook results
|
|
65
|
+
*/
|
|
66
|
+
results: HookResult[];
|
|
67
|
+
/**
|
|
68
|
+
* Whether hook execution should fail the job
|
|
69
|
+
* (true if any hook with continue_on_error=false failed)
|
|
70
|
+
*/
|
|
71
|
+
shouldFailJob: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* HookExecutor orchestrates the execution of hooks
|
|
75
|
+
*
|
|
76
|
+
* It:
|
|
77
|
+
* - Executes hooks sequentially in order defined
|
|
78
|
+
* - Filters hooks by event type (on_events)
|
|
79
|
+
* - Handles errors based on continue_on_error setting
|
|
80
|
+
* - Collects and returns results from all hooks
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const executor = new HookExecutor({ logger: console });
|
|
85
|
+
*
|
|
86
|
+
* const result = await executor.executeHooks(
|
|
87
|
+
* agentHooksConfig,
|
|
88
|
+
* hookContext,
|
|
89
|
+
* 'after_run'
|
|
90
|
+
* );
|
|
91
|
+
*
|
|
92
|
+
* if (!result.success) {
|
|
93
|
+
* console.log(`${result.failedHooks} of ${result.totalHooks} hooks failed`);
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare class HookExecutor {
|
|
98
|
+
private logger;
|
|
99
|
+
private shellRunner;
|
|
100
|
+
private webhookRunner;
|
|
101
|
+
private discordRunner;
|
|
102
|
+
constructor(options?: HookExecutorOptions);
|
|
103
|
+
/**
|
|
104
|
+
* Execute hooks for a given hook list (after_run or on_error)
|
|
105
|
+
*
|
|
106
|
+
* @param hooksConfig - Agent hooks configuration (accepts input types with optional fields)
|
|
107
|
+
* @param context - Hook context with job information
|
|
108
|
+
* @param hookList - Which hook list to execute ('after_run' or 'on_error')
|
|
109
|
+
* @returns Promise resolving to the execution result
|
|
110
|
+
*/
|
|
111
|
+
executeHooks(hooksConfig: AgentHooksInput | undefined, context: HookContext, hookList: "after_run" | "on_error"): Promise<HookExecutionResult>;
|
|
112
|
+
/**
|
|
113
|
+
* Execute a single hook
|
|
114
|
+
*/
|
|
115
|
+
private executeHook;
|
|
116
|
+
/**
|
|
117
|
+
* Check if a hook should execute for a given event and context
|
|
118
|
+
*/
|
|
119
|
+
private shouldExecuteHook;
|
|
120
|
+
/**
|
|
121
|
+
* Get a value from an object using dot-notation path
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* getPathValue({ metadata: { shouldNotify: true } }, "metadata.shouldNotify") // true
|
|
125
|
+
* getPathValue({ result: { success: true } }, "result.success") // true
|
|
126
|
+
*/
|
|
127
|
+
private getPathValue;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=hook-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-executor.d.ts","sourceRoot":"","sources":["../../src/hooks/hook-executor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EAQX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK3D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,OAAO,EAAE,UAAU,EAAE,CAAC;IAEtB;;;OAGG;IACH,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,aAAa,CAAoB;gBAE7B,OAAO,GAAE,mBAAwB;IA0B7C;;;;;;;OAOG;IACG,YAAY,CAChB,WAAW,EAAE,eAAe,GAAG,SAAS,EACxC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,WAAW,GAAG,UAAU,GACjC,OAAO,CAAC,mBAAmB,CAAC;IAiF/B;;OAEG;YACW,WAAW;IAwBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;CAgBrB"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook Executor
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the execution of hooks after job completion.
|
|
5
|
+
* Handles sequencing, error handling, and event filtering.
|
|
6
|
+
*/
|
|
7
|
+
import { ShellHookRunner } from "./runners/shell.js";
|
|
8
|
+
import { WebhookHookRunner } from "./runners/webhook.js";
|
|
9
|
+
import { DiscordHookRunner } from "./runners/discord.js";
|
|
10
|
+
/**
|
|
11
|
+
* HookExecutor orchestrates the execution of hooks
|
|
12
|
+
*
|
|
13
|
+
* It:
|
|
14
|
+
* - Executes hooks sequentially in order defined
|
|
15
|
+
* - Filters hooks by event type (on_events)
|
|
16
|
+
* - Handles errors based on continue_on_error setting
|
|
17
|
+
* - Collects and returns results from all hooks
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const executor = new HookExecutor({ logger: console });
|
|
22
|
+
*
|
|
23
|
+
* const result = await executor.executeHooks(
|
|
24
|
+
* agentHooksConfig,
|
|
25
|
+
* hookContext,
|
|
26
|
+
* 'after_run'
|
|
27
|
+
* );
|
|
28
|
+
*
|
|
29
|
+
* if (!result.success) {
|
|
30
|
+
* console.log(`${result.failedHooks} of ${result.totalHooks} hooks failed`);
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export class HookExecutor {
|
|
35
|
+
logger;
|
|
36
|
+
shellRunner;
|
|
37
|
+
webhookRunner;
|
|
38
|
+
discordRunner;
|
|
39
|
+
constructor(options = {}) {
|
|
40
|
+
this.logger = options.logger ?? {
|
|
41
|
+
debug: () => { },
|
|
42
|
+
info: () => { },
|
|
43
|
+
warn: () => { },
|
|
44
|
+
error: () => { },
|
|
45
|
+
};
|
|
46
|
+
// Create shell runner with same logger and options
|
|
47
|
+
this.shellRunner = new ShellHookRunner({
|
|
48
|
+
logger: this.logger,
|
|
49
|
+
cwd: options.cwd,
|
|
50
|
+
env: options.env,
|
|
51
|
+
});
|
|
52
|
+
// Create webhook runner with same logger
|
|
53
|
+
this.webhookRunner = new WebhookHookRunner({
|
|
54
|
+
logger: this.logger,
|
|
55
|
+
});
|
|
56
|
+
// Create discord runner with same logger
|
|
57
|
+
this.discordRunner = new DiscordHookRunner({
|
|
58
|
+
logger: this.logger,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Execute hooks for a given hook list (after_run or on_error)
|
|
63
|
+
*
|
|
64
|
+
* @param hooksConfig - Agent hooks configuration (accepts input types with optional fields)
|
|
65
|
+
* @param context - Hook context with job information
|
|
66
|
+
* @param hookList - Which hook list to execute ('after_run' or 'on_error')
|
|
67
|
+
* @returns Promise resolving to the execution result
|
|
68
|
+
*/
|
|
69
|
+
async executeHooks(hooksConfig, context, hookList) {
|
|
70
|
+
const startTime = Date.now();
|
|
71
|
+
const hooks = hooksConfig?.[hookList] ?? [];
|
|
72
|
+
if (hooks.length === 0) {
|
|
73
|
+
return {
|
|
74
|
+
success: true,
|
|
75
|
+
totalHooks: 0,
|
|
76
|
+
successfulHooks: 0,
|
|
77
|
+
failedHooks: 0,
|
|
78
|
+
skippedHooks: 0,
|
|
79
|
+
totalDurationMs: 0,
|
|
80
|
+
results: [],
|
|
81
|
+
shouldFailJob: false,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
this.logger.info(`Executing ${hooks.length} ${hookList} hook(s) for event: ${context.event}`);
|
|
85
|
+
const results = [];
|
|
86
|
+
let successfulHooks = 0;
|
|
87
|
+
let failedHooks = 0;
|
|
88
|
+
let skippedHooks = 0;
|
|
89
|
+
let shouldFailJob = false;
|
|
90
|
+
// Execute hooks sequentially
|
|
91
|
+
for (const hookConfig of hooks) {
|
|
92
|
+
// Check if this hook should run (on_events filter and when condition)
|
|
93
|
+
if (!this.shouldExecuteHook(hookConfig, context)) {
|
|
94
|
+
skippedHooks++;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
// Execute the hook
|
|
98
|
+
const result = await this.executeHook(hookConfig, context);
|
|
99
|
+
results.push(result);
|
|
100
|
+
if (result.success) {
|
|
101
|
+
successfulHooks++;
|
|
102
|
+
// Log hook output if present (for shell hooks)
|
|
103
|
+
if (result.output) {
|
|
104
|
+
this.logger.info(`Hook output:\n${result.output}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
failedHooks++;
|
|
109
|
+
this.logger.warn(`${hookConfig.type} hook failed: ${result.error}`);
|
|
110
|
+
// Check if we should fail the job
|
|
111
|
+
if (hookConfig.continue_on_error === false) {
|
|
112
|
+
shouldFailJob = true;
|
|
113
|
+
this.logger.error(`Hook failure will cause job to fail (continue_on_error: false)`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const totalDurationMs = Date.now() - startTime;
|
|
118
|
+
this.logger.info(`Hook execution complete: ${successfulHooks} succeeded, ` +
|
|
119
|
+
`${failedHooks} failed, ${skippedHooks} skipped ` +
|
|
120
|
+
`(${totalDurationMs}ms)`);
|
|
121
|
+
return {
|
|
122
|
+
success: failedHooks === 0,
|
|
123
|
+
totalHooks: hooks.length,
|
|
124
|
+
successfulHooks,
|
|
125
|
+
failedHooks,
|
|
126
|
+
skippedHooks,
|
|
127
|
+
totalDurationMs,
|
|
128
|
+
results,
|
|
129
|
+
shouldFailJob,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Execute a single hook
|
|
134
|
+
*/
|
|
135
|
+
async executeHook(config, context) {
|
|
136
|
+
switch (config.type) {
|
|
137
|
+
case "shell":
|
|
138
|
+
return this.shellRunner.execute(config, context);
|
|
139
|
+
case "webhook":
|
|
140
|
+
return this.webhookRunner.execute(config, context);
|
|
141
|
+
case "discord":
|
|
142
|
+
return this.discordRunner.execute(config, context);
|
|
143
|
+
default:
|
|
144
|
+
return {
|
|
145
|
+
success: false,
|
|
146
|
+
hookType: "shell",
|
|
147
|
+
durationMs: 0,
|
|
148
|
+
error: `Unknown hook type: ${config.type}`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Check if a hook should execute for a given event and context
|
|
154
|
+
*/
|
|
155
|
+
shouldExecuteHook(config, context) {
|
|
156
|
+
const event = context.event;
|
|
157
|
+
// Check on_events filter first
|
|
158
|
+
if (config.on_events && config.on_events.length > 0) {
|
|
159
|
+
if (!config.on_events.includes(event)) {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// Check `when` condition (dot-notation path to boolean in context)
|
|
164
|
+
if (config.when) {
|
|
165
|
+
const value = this.getPathValue(context, config.when);
|
|
166
|
+
if (!value) {
|
|
167
|
+
this.logger.debug(`Skipping ${config.type} hook: condition "${config.when}" is falsy (value: ${JSON.stringify(value)})`);
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Get a value from an object using dot-notation path
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* getPathValue({ metadata: { shouldNotify: true } }, "metadata.shouldNotify") // true
|
|
178
|
+
* getPathValue({ result: { success: true } }, "result.success") // true
|
|
179
|
+
*/
|
|
180
|
+
getPathValue(obj, path) {
|
|
181
|
+
const parts = path.split(".");
|
|
182
|
+
let current = obj;
|
|
183
|
+
for (const part of parts) {
|
|
184
|
+
if (current === null || current === undefined) {
|
|
185
|
+
return undefined;
|
|
186
|
+
}
|
|
187
|
+
if (typeof current !== "object") {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
current = current[part];
|
|
191
|
+
}
|
|
192
|
+
return current;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=hook-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-executor.js","sourceRoot":"","sources":["../../src/hooks/hook-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Hooks Module
|
|
3
|
+
*
|
|
4
|
+
* Provides a config-driven execution hooks system for running
|
|
5
|
+
* arbitrary code at agent lifecycle points (after job completion,
|
|
6
|
+
* on error, etc.).
|
|
7
|
+
*
|
|
8
|
+
* @module hooks
|
|
9
|
+
*/
|
|
10
|
+
export type { HookContext, HookResult, BaseHookConfig, AgentHooksConfig, HookRunner, ShellHookConfigInput, WebhookHookConfigInput, DiscordHookConfigInput, HookConfigInput, } from "./types.js";
|
|
11
|
+
export { HookExecutor, type HookExecutorOptions, type HookExecutorLogger, type HookExecutionResult, } from "./hook-executor.js";
|
|
12
|
+
export { ShellHookRunner, type ShellHookRunnerOptions, type ShellHookRunnerLogger, } from "./runners/shell.js";
|
|
13
|
+
export { WebhookHookRunner, type WebhookHookRunnerOptions, type WebhookHookRunnerLogger, } from "./runners/webhook.js";
|
|
14
|
+
export { DiscordHookRunner, type DiscordHookRunnerOptions, type DiscordHookRunnerLogger, } from "./runners/discord.js";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,YAAY,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EAEV,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Execution Hooks Module
|
|
3
|
+
*
|
|
4
|
+
* Provides a config-driven execution hooks system for running
|
|
5
|
+
* arbitrary code at agent lifecycle points (after job completion,
|
|
6
|
+
* on error, etc.).
|
|
7
|
+
*
|
|
8
|
+
* @module hooks
|
|
9
|
+
*/
|
|
10
|
+
// Hook Executor
|
|
11
|
+
export { HookExecutor, } from "./hook-executor.js";
|
|
12
|
+
// Shell Hook Runner
|
|
13
|
+
export { ShellHookRunner, } from "./runners/shell.js";
|
|
14
|
+
// Webhook Hook Runner
|
|
15
|
+
export { WebhookHookRunner, } from "./runners/webhook.js";
|
|
16
|
+
// Discord Hook Runner
|
|
17
|
+
export { DiscordHookRunner, } from "./runners/discord.js";
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAkBH,gBAAgB;AAChB,OAAO,EACL,YAAY,GAIb,MAAM,oBAAoB,CAAC;AAE5B,oBAAoB;AACpB,OAAO,EACL,eAAe,GAGhB,MAAM,oBAAoB,CAAC;AAE5B,sBAAsB;AACtB,OAAO,EACL,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discord Hook Runner
|
|
3
|
+
*
|
|
4
|
+
* Posts job notifications to a Discord channel using embeds.
|
|
5
|
+
* Used for team visibility into fleet activity.
|
|
6
|
+
*/
|
|
7
|
+
import type { HookContext, HookResult, DiscordHookConfigInput } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Logger interface for DiscordHookRunner
|
|
10
|
+
*/
|
|
11
|
+
export interface DiscordHookRunnerLogger {
|
|
12
|
+
debug: (message: string) => void;
|
|
13
|
+
info: (message: string) => void;
|
|
14
|
+
warn: (message: string) => void;
|
|
15
|
+
error: (message: string) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options for DiscordHookRunner
|
|
19
|
+
*/
|
|
20
|
+
export interface DiscordHookRunnerOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Logger for hook execution output
|
|
23
|
+
*/
|
|
24
|
+
logger?: DiscordHookRunnerLogger;
|
|
25
|
+
/**
|
|
26
|
+
* Custom fetch implementation (for testing)
|
|
27
|
+
*/
|
|
28
|
+
fetch?: typeof globalThis.fetch;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* DiscordHookRunner posts job notifications to a Discord channel
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const runner = new DiscordHookRunner({ logger: console });
|
|
36
|
+
*
|
|
37
|
+
* const result = await runner.execute(
|
|
38
|
+
* {
|
|
39
|
+
* type: 'discord',
|
|
40
|
+
* channel_id: '1234567890',
|
|
41
|
+
* bot_token_env: 'DISCORD_BOT_TOKEN'
|
|
42
|
+
* },
|
|
43
|
+
* hookContext
|
|
44
|
+
* );
|
|
45
|
+
*
|
|
46
|
+
* if (result.success) {
|
|
47
|
+
* console.log('Discord notification sent');
|
|
48
|
+
* } else {
|
|
49
|
+
* console.error('Discord notification failed:', result.error);
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare class DiscordHookRunner {
|
|
54
|
+
private logger;
|
|
55
|
+
private fetchFn;
|
|
56
|
+
constructor(options?: DiscordHookRunnerOptions);
|
|
57
|
+
/**
|
|
58
|
+
* Execute a Discord hook with the given context
|
|
59
|
+
*
|
|
60
|
+
* @param config - Discord hook configuration (accepts input type with optional fields)
|
|
61
|
+
* @param context - Hook context to send in the notification
|
|
62
|
+
* @returns Promise resolving to the hook result
|
|
63
|
+
*/
|
|
64
|
+
execute(config: DiscordHookConfigInput, context: HookContext): Promise<HookResult>;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=discord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../../src/hooks/runners/discord.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAsBnF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IAEjC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAkJD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAA0B;gBAE7B,OAAO,GAAE,wBAA6B;IAUlD;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAkIzF"}
|