@herdctl/core 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +571 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +67 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/fleet-manager/__tests__/slack-manager.test.d.ts +11 -0
- package/dist/fleet-manager/__tests__/slack-manager.test.d.ts.map +1 -0
- package/dist/fleet-manager/__tests__/slack-manager.test.js +1022 -0
- package/dist/fleet-manager/__tests__/slack-manager.test.js.map +1 -0
- package/dist/fleet-manager/context.d.ts +4 -0
- package/dist/fleet-manager/context.d.ts.map +1 -1
- package/dist/fleet-manager/event-types.d.ts +113 -0
- package/dist/fleet-manager/event-types.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.d.ts +3 -0
- package/dist/fleet-manager/fleet-manager.d.ts.map +1 -1
- package/dist/fleet-manager/fleet-manager.js +10 -0
- package/dist/fleet-manager/fleet-manager.js.map +1 -1
- package/dist/fleet-manager/job-control.d.ts.map +1 -1
- package/dist/fleet-manager/job-control.js +5 -2
- package/dist/fleet-manager/job-control.js.map +1 -1
- package/dist/fleet-manager/slack-manager.d.ts +158 -0
- package/dist/fleet-manager/slack-manager.d.ts.map +1 -0
- package/dist/fleet-manager/slack-manager.js +570 -0
- package/dist/fleet-manager/slack-manager.js.map +1 -0
- package/dist/fleet-manager/status-queries.d.ts +2 -1
- package/dist/fleet-manager/status-queries.d.ts.map +1 -1
- package/dist/fleet-manager/status-queries.js +42 -3
- package/dist/fleet-manager/status-queries.js.map +1 -1
- package/dist/fleet-manager/types.d.ts +43 -3
- package/dist/fleet-manager/types.d.ts.map +1 -1
- package/dist/hooks/__tests__/slack-runner.test.d.ts +5 -0
- package/dist/hooks/__tests__/slack-runner.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/slack-runner.test.js +307 -0
- package/dist/hooks/__tests__/slack-runner.test.js.map +1 -0
- package/dist/hooks/hook-executor.d.ts +1 -0
- package/dist/hooks/hook-executor.d.ts.map +1 -1
- package/dist/hooks/hook-executor.js +8 -0
- package/dist/hooks/hook-executor.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/runners/slack.d.ts +62 -0
- package/dist/hooks/runners/slack.d.ts.map +1 -0
- package/dist/hooks/runners/slack.js +329 -0
- package/dist/hooks/runners/slack.js.map +1 -0
- package/dist/hooks/types.d.ts +4 -4
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/runner/__tests__/file-sender-mcp.test.d.ts +2 -0
- package/dist/runner/__tests__/file-sender-mcp.test.d.ts.map +1 -0
- package/dist/runner/__tests__/file-sender-mcp.test.js +177 -0
- package/dist/runner/__tests__/file-sender-mcp.test.js.map +1 -0
- package/dist/runner/__tests__/job-executor.test.js +12 -12
- package/dist/runner/__tests__/job-executor.test.js.map +1 -1
- package/dist/runner/file-sender-mcp.d.ts +69 -0
- package/dist/runner/file-sender-mcp.d.ts.map +1 -0
- package/dist/runner/file-sender-mcp.js +145 -0
- package/dist/runner/file-sender-mcp.js.map +1 -0
- package/dist/runner/index.d.ts +1 -0
- package/dist/runner/index.d.ts.map +1 -1
- package/dist/runner/index.js +2 -0
- package/dist/runner/index.js.map +1 -1
- package/dist/runner/job-executor.d.ts.map +1 -1
- package/dist/runner/job-executor.js +35 -5
- package/dist/runner/job-executor.js.map +1 -1
- package/dist/runner/runtime/__tests__/docker-security.test.js +12 -12
- package/dist/runner/runtime/__tests__/docker-security.test.js.map +1 -1
- package/dist/runner/runtime/__tests__/mcp-http-bridge.test.d.ts +2 -0
- package/dist/runner/runtime/__tests__/mcp-http-bridge.test.d.ts.map +1 -0
- package/dist/runner/runtime/__tests__/mcp-http-bridge.test.js +191 -0
- package/dist/runner/runtime/__tests__/mcp-http-bridge.test.js.map +1 -0
- package/dist/runner/runtime/container-manager.d.ts +5 -1
- package/dist/runner/runtime/container-manager.d.ts.map +1 -1
- package/dist/runner/runtime/container-manager.js +115 -5
- package/dist/runner/runtime/container-manager.js.map +1 -1
- package/dist/runner/runtime/container-runner.d.ts +2 -0
- package/dist/runner/runtime/container-runner.d.ts.map +1 -1
- package/dist/runner/runtime/container-runner.js +121 -74
- package/dist/runner/runtime/container-runner.js.map +1 -1
- package/dist/runner/runtime/index.d.ts +1 -0
- package/dist/runner/runtime/index.d.ts.map +1 -1
- package/dist/runner/runtime/index.js +2 -0
- package/dist/runner/runtime/index.js.map +1 -1
- package/dist/runner/runtime/interface.d.ts +2 -0
- package/dist/runner/runtime/interface.d.ts.map +1 -1
- package/dist/runner/runtime/mcp-http-bridge.d.ts +39 -0
- package/dist/runner/runtime/mcp-http-bridge.d.ts.map +1 -0
- package/dist/runner/runtime/mcp-http-bridge.js +205 -0
- package/dist/runner/runtime/mcp-http-bridge.js.map +1 -0
- package/dist/runner/runtime/sdk-runtime.d.ts.map +1 -1
- package/dist/runner/runtime/sdk-runtime.js +74 -1
- package/dist/runner/runtime/sdk-runtime.js.map +1 -1
- package/dist/runner/types.d.ts +44 -0
- package/dist/runner/types.d.ts.map +1 -1
- package/dist/state/index.d.ts +1 -1
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +1 -1
- package/dist/state/index.js.map +1 -1
- package/dist/state/session-validation.d.ts +8 -0
- package/dist/state/session-validation.d.ts.map +1 -1
- package/dist/state/session-validation.js +36 -0
- package/dist/state/session-validation.js.map +1 -1
- package/package.json +1 -9
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack Manager Module
|
|
3
|
+
*
|
|
4
|
+
* Manages a single Slack connector shared across agents that have `chat.slack` configured.
|
|
5
|
+
* This module is responsible for:
|
|
6
|
+
* - Creating ONE SlackConnector instance for the workspace
|
|
7
|
+
* - Building channel→agent routing from agent configs
|
|
8
|
+
* - Managing connector lifecycle (start/stop)
|
|
9
|
+
*
|
|
10
|
+
* Key difference from Discord:
|
|
11
|
+
* - DiscordManager has Map<string, IDiscordConnector> (N connectors, one per agent)
|
|
12
|
+
* - SlackManager has one connector + Map<string, string> (channel→agent routing)
|
|
13
|
+
*
|
|
14
|
+
* Note: This module dynamically imports @herdctl/slack at runtime to avoid
|
|
15
|
+
* a hard dependency. The @herdctl/core package can be used without Slack support.
|
|
16
|
+
*
|
|
17
|
+
* @module slack-manager
|
|
18
|
+
*/
|
|
19
|
+
import type { FleetManagerContext } from "./context.js";
|
|
20
|
+
/**
|
|
21
|
+
* Slack connection status (mirrors @herdctl/slack types)
|
|
22
|
+
*/
|
|
23
|
+
export type SlackConnectionStatus = "disconnected" | "connecting" | "connected" | "reconnecting" | "disconnecting" | "error";
|
|
24
|
+
/**
|
|
25
|
+
* Slack connector state (mirrors @herdctl/slack types)
|
|
26
|
+
*/
|
|
27
|
+
export interface SlackConnectorState {
|
|
28
|
+
status: SlackConnectionStatus;
|
|
29
|
+
connectedAt: string | null;
|
|
30
|
+
disconnectedAt: string | null;
|
|
31
|
+
reconnectAttempts: number;
|
|
32
|
+
lastError: string | null;
|
|
33
|
+
botUser: {
|
|
34
|
+
id: string;
|
|
35
|
+
username: string;
|
|
36
|
+
} | null;
|
|
37
|
+
messageStats: {
|
|
38
|
+
received: number;
|
|
39
|
+
sent: number;
|
|
40
|
+
ignored: number;
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Message event payload from SlackConnector
|
|
45
|
+
*/
|
|
46
|
+
export interface SlackMessageEvent {
|
|
47
|
+
agentName: string;
|
|
48
|
+
prompt: string;
|
|
49
|
+
metadata: {
|
|
50
|
+
channelId: string;
|
|
51
|
+
messageTs: string;
|
|
52
|
+
userId: string;
|
|
53
|
+
wasMentioned: boolean;
|
|
54
|
+
};
|
|
55
|
+
reply: (content: string) => Promise<void>;
|
|
56
|
+
startProcessingIndicator: () => () => void;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Error event payload from SlackConnector
|
|
60
|
+
*
|
|
61
|
+
* Note: No agentName — the connector is shared across agents.
|
|
62
|
+
*/
|
|
63
|
+
export interface SlackErrorEvent {
|
|
64
|
+
error: Error;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Minimal interface for a Slack connector
|
|
68
|
+
*/
|
|
69
|
+
interface ISlackConnector {
|
|
70
|
+
connect(): Promise<void>;
|
|
71
|
+
disconnect(): Promise<void>;
|
|
72
|
+
isConnected(): boolean;
|
|
73
|
+
getState(): SlackConnectorState;
|
|
74
|
+
uploadFile(params: {
|
|
75
|
+
channelId: string;
|
|
76
|
+
fileBuffer: Buffer;
|
|
77
|
+
filename: string;
|
|
78
|
+
message?: string;
|
|
79
|
+
}): Promise<{
|
|
80
|
+
fileId: string;
|
|
81
|
+
}>;
|
|
82
|
+
on(event: "message", listener: (payload: SlackMessageEvent) => void): this;
|
|
83
|
+
on(event: "error", listener: (payload: SlackErrorEvent) => void): this;
|
|
84
|
+
on(event: "ready", listener: (payload: {
|
|
85
|
+
botUser: {
|
|
86
|
+
id: string;
|
|
87
|
+
username: string;
|
|
88
|
+
};
|
|
89
|
+
}) => void): this;
|
|
90
|
+
on(event: "disconnect", listener: (payload: {
|
|
91
|
+
reason: string;
|
|
92
|
+
}) => void): this;
|
|
93
|
+
on(event: string, listener: (...args: unknown[]) => void): this;
|
|
94
|
+
off(event: string, listener: (...args: unknown[]) => void): this;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* SlackManager handles Slack connections for agents
|
|
98
|
+
*
|
|
99
|
+
* Unlike DiscordManager which creates N connectors (one per agent),
|
|
100
|
+
* SlackManager creates ONE connector shared across all Slack-enabled agents,
|
|
101
|
+
* with channel→agent routing.
|
|
102
|
+
*/
|
|
103
|
+
export declare class SlackManager {
|
|
104
|
+
private ctx;
|
|
105
|
+
private connector;
|
|
106
|
+
private sessionManagers;
|
|
107
|
+
private channelAgentMap;
|
|
108
|
+
private channelConfigs;
|
|
109
|
+
private initialized;
|
|
110
|
+
constructor(ctx: FleetManagerContext);
|
|
111
|
+
/**
|
|
112
|
+
* Initialize the Slack connector for all configured agents
|
|
113
|
+
*/
|
|
114
|
+
initialize(): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Connect the Slack connector and subscribe to events
|
|
117
|
+
*/
|
|
118
|
+
start(): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Disconnect the Slack connector gracefully
|
|
121
|
+
*/
|
|
122
|
+
stop(): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Get the connector (if any)
|
|
125
|
+
*/
|
|
126
|
+
getConnector(): ISlackConnector | null;
|
|
127
|
+
/**
|
|
128
|
+
* Check if the connector is connected
|
|
129
|
+
*/
|
|
130
|
+
isConnected(): boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Get the state of the connector
|
|
133
|
+
*/
|
|
134
|
+
getState(): SlackConnectorState | null;
|
|
135
|
+
/**
|
|
136
|
+
* Get the channel→agent routing map
|
|
137
|
+
*/
|
|
138
|
+
getChannelAgentMap(): Map<string, string>;
|
|
139
|
+
/**
|
|
140
|
+
* Check if a specific agent has Slack configured
|
|
141
|
+
*/
|
|
142
|
+
hasAgent(agentName: string): boolean;
|
|
143
|
+
private handleMessage;
|
|
144
|
+
/**
|
|
145
|
+
* Extract text content from an SDK message
|
|
146
|
+
*/
|
|
147
|
+
private extractMessageContent;
|
|
148
|
+
/**
|
|
149
|
+
* Handle errors from the Slack connector
|
|
150
|
+
*/
|
|
151
|
+
private handleError;
|
|
152
|
+
private static readonly MAX_MESSAGE_LENGTH;
|
|
153
|
+
formatErrorMessage(error: Error): string;
|
|
154
|
+
splitResponse(text: string): string[];
|
|
155
|
+
private findNaturalBreak;
|
|
156
|
+
}
|
|
157
|
+
export {};
|
|
158
|
+
//# sourceMappingURL=slack-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-manager.d.ts","sourceRoot":"","sources":["../../src/fleet-manager/slack-manager.ts"],"names":[],"mappings":"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"}
|