@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.
Files changed (101) hide show
  1. package/LICENSE +21 -0
  2. package/dist/config/__tests__/agent.test.js +30 -0
  3. package/dist/config/__tests__/agent.test.js.map +1 -1
  4. package/dist/config/__tests__/merge.test.js +1 -1
  5. package/dist/config/__tests__/merge.test.js.map +1 -1
  6. package/dist/config/index.d.ts +1 -1
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +3 -1
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/config/schema.d.ts +1005 -3
  11. package/dist/config/schema.d.ts.map +1 -1
  12. package/dist/config/schema.js +87 -4
  13. package/dist/config/schema.js.map +1 -1
  14. package/dist/fleet-manager/__tests__/coverage.test.js +6 -2
  15. package/dist/fleet-manager/__tests__/coverage.test.js.map +1 -1
  16. package/dist/fleet-manager/__tests__/integration.test.js +5 -0
  17. package/dist/fleet-manager/__tests__/integration.test.js.map +1 -1
  18. package/dist/fleet-manager/__tests__/job-control.test.js +13 -14
  19. package/dist/fleet-manager/__tests__/job-control.test.js.map +1 -1
  20. package/dist/fleet-manager/__tests__/reload.test.js +13 -3
  21. package/dist/fleet-manager/__tests__/reload.test.js.map +1 -1
  22. package/dist/fleet-manager/__tests__/status-queries.test.js +6 -0
  23. package/dist/fleet-manager/__tests__/status-queries.test.js.map +1 -1
  24. package/dist/fleet-manager/__tests__/trigger.test.js +10 -2
  25. package/dist/fleet-manager/__tests__/trigger.test.js.map +1 -1
  26. package/dist/fleet-manager/config-reload.d.ts +1 -1
  27. package/dist/fleet-manager/config-reload.js +1 -1
  28. package/dist/fleet-manager/fleet-manager.d.ts +1 -0
  29. package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
  30. package/dist/fleet-manager/fleet-manager.js +1 -0
  31. package/dist/fleet-manager/fleet-manager.js.map +1 -1
  32. package/dist/fleet-manager/job-control.d.ts +41 -0
  33. package/dist/fleet-manager/job-control.d.ts.map +1 -1
  34. package/dist/fleet-manager/job-control.js +243 -20
  35. package/dist/fleet-manager/job-control.js.map +1 -1
  36. package/dist/fleet-manager/schedule-executor.d.ts +20 -0
  37. package/dist/fleet-manager/schedule-executor.d.ts.map +1 -1
  38. package/dist/fleet-manager/schedule-executor.js +113 -3
  39. package/dist/fleet-manager/schedule-executor.js.map +1 -1
  40. package/dist/fleet-manager/types.d.ts +18 -0
  41. package/dist/fleet-manager/types.d.ts.map +1 -1
  42. package/dist/hooks/__tests__/discord-runner.test.d.ts +5 -0
  43. package/dist/hooks/__tests__/discord-runner.test.d.ts.map +1 -0
  44. package/dist/hooks/__tests__/discord-runner.test.js +606 -0
  45. package/dist/hooks/__tests__/discord-runner.test.js.map +1 -0
  46. package/dist/hooks/__tests__/hook-executor.test.d.ts +5 -0
  47. package/dist/hooks/__tests__/hook-executor.test.d.ts.map +1 -0
  48. package/dist/hooks/__tests__/hook-executor.test.js +443 -0
  49. package/dist/hooks/__tests__/hook-executor.test.js.map +1 -0
  50. package/dist/hooks/__tests__/shell-runner.test.d.ts +5 -0
  51. package/dist/hooks/__tests__/shell-runner.test.d.ts.map +1 -0
  52. package/dist/hooks/__tests__/shell-runner.test.js +201 -0
  53. package/dist/hooks/__tests__/shell-runner.test.js.map +1 -0
  54. package/dist/hooks/__tests__/webhook-runner.test.d.ts +5 -0
  55. package/dist/hooks/__tests__/webhook-runner.test.d.ts.map +1 -0
  56. package/dist/hooks/__tests__/webhook-runner.test.js +453 -0
  57. package/dist/hooks/__tests__/webhook-runner.test.js.map +1 -0
  58. package/dist/hooks/hook-executor.d.ts +129 -0
  59. package/dist/hooks/hook-executor.d.ts.map +1 -0
  60. package/dist/hooks/hook-executor.js +195 -0
  61. package/dist/hooks/hook-executor.js.map +1 -0
  62. package/dist/hooks/index.d.ts +15 -0
  63. package/dist/hooks/index.d.ts.map +1 -0
  64. package/dist/hooks/index.js +18 -0
  65. package/dist/hooks/index.js.map +1 -0
  66. package/dist/hooks/runners/discord.d.ts +66 -0
  67. package/dist/hooks/runners/discord.d.ts.map +1 -0
  68. package/dist/hooks/runners/discord.js +294 -0
  69. package/dist/hooks/runners/discord.js.map +1 -0
  70. package/dist/hooks/runners/shell.d.ts +71 -0
  71. package/dist/hooks/runners/shell.d.ts.map +1 -0
  72. package/dist/hooks/runners/shell.js +177 -0
  73. package/dist/hooks/runners/shell.js.map +1 -0
  74. package/dist/hooks/runners/webhook.d.ts +66 -0
  75. package/dist/hooks/runners/webhook.d.ts.map +1 -0
  76. package/dist/hooks/runners/webhook.js +163 -0
  77. package/dist/hooks/runners/webhook.js.map +1 -0
  78. package/dist/hooks/types.d.ts +196 -0
  79. package/dist/hooks/types.d.ts.map +1 -0
  80. package/dist/hooks/types.js +12 -0
  81. package/dist/hooks/types.js.map +1 -0
  82. package/dist/index.d.ts +1 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +2 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/runner/__tests__/sdk-adapter.test.js +4 -3
  87. package/dist/runner/__tests__/sdk-adapter.test.js.map +1 -1
  88. package/dist/runner/message-processor.d.ts +5 -1
  89. package/dist/runner/message-processor.d.ts.map +1 -1
  90. package/dist/runner/message-processor.js +238 -18
  91. package/dist/runner/message-processor.js.map +1 -1
  92. package/dist/runner/sdk-adapter.d.ts.map +1 -1
  93. package/dist/runner/sdk-adapter.js +8 -1
  94. package/dist/runner/sdk-adapter.js.map +1 -1
  95. package/dist/runner/types.d.ts +23 -2
  96. package/dist/runner/types.d.ts.map +1 -1
  97. package/dist/scheduler/scheduler.d.ts.map +1 -1
  98. package/dist/scheduler/scheduler.js +9 -0
  99. package/dist/scheduler/scheduler.js.map +1 -1
  100. package/dist/state/schemas/job-metadata.d.ts +4 -4
  101. 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"}