@mono-agent/slack-adapter 0.4.0 → 0.4.1
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/README.md +1 -1
- package/dist/adapter.d.ts +194 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +416 -7
- package/dist/adapter.js.map +1 -1
- package/dist/config.d.ts +58 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +213 -78
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/message-stream.d.ts +11 -0
- package/dist/message-stream.d.ts.map +1 -1
- package/dist/message-stream.js +6 -0
- package/dist/message-stream.js.map +1 -1
- package/dist/slack-client.d.ts +2 -1
- package/dist/slack-client.d.ts.map +1 -1
- package/dist/slack-client.js +3 -0
- package/dist/slack-client.js.map +1 -1
- package/dist/socket-mode-runner.d.ts +110 -1
- package/dist/socket-mode-runner.d.ts.map +1 -1
- package/dist/socket-mode-runner.js +287 -22
- package/dist/socket-mode-runner.js.map +1 -1
- package/dist/start.d.ts +26 -3
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +46 -0
- package/dist/start.js.map +1 -1
- package/dist/types.d.ts +93 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -3
package/dist/config.d.ts
CHANGED
|
@@ -1,4 +1,29 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { JsonEnvFieldSpec, RedactedSecretValue, SettingsJson } from "@mono-agent/agent-contracts";
|
|
2
|
+
/** A Slack shortcut binding: invoking `callbackId` runs `prompt` as a turn. */
|
|
3
|
+
export interface SlackShortcutConfig {
|
|
4
|
+
readonly callbackId: string;
|
|
5
|
+
readonly prompt: string;
|
|
6
|
+
/** Destination channel for the reply. Required for global shortcuts (no source channel). */
|
|
7
|
+
readonly channelId?: string;
|
|
8
|
+
/** Optional message posted instantly on invocation, before the run (e.g. "🔄 Syncing…"). */
|
|
9
|
+
readonly ackText?: string;
|
|
10
|
+
}
|
|
11
|
+
/** An App Home tab button: clicking it runs `prompt`; `label` is the button text. */
|
|
12
|
+
export interface SlackHomeButtonConfig {
|
|
13
|
+
readonly actionId: string;
|
|
14
|
+
readonly label: string;
|
|
15
|
+
readonly prompt: string;
|
|
16
|
+
/** Destination channel for the reply (the Home tab has none of its own). */
|
|
17
|
+
readonly channelId?: string;
|
|
18
|
+
/** Optional message posted instantly on click, before the run. */
|
|
19
|
+
readonly ackText?: string;
|
|
20
|
+
}
|
|
21
|
+
/** App Home tab config: whether to publish it, an optional header, and its buttons. */
|
|
22
|
+
export interface SlackHomeTabConfig {
|
|
23
|
+
readonly enabled: boolean;
|
|
24
|
+
readonly headerText?: string;
|
|
25
|
+
readonly buttons: readonly SlackHomeButtonConfig[];
|
|
26
|
+
}
|
|
2
27
|
export interface SlackAdapterConfig {
|
|
3
28
|
readonly enabled: boolean;
|
|
4
29
|
readonly botToken: string;
|
|
@@ -8,6 +33,17 @@ export interface SlackAdapterConfig {
|
|
|
8
33
|
readonly botUserIds: readonly string[];
|
|
9
34
|
readonly mentionTextAliases: readonly string[];
|
|
10
35
|
readonly stripMentionText: boolean;
|
|
36
|
+
/** Shortcut bindings, read from the `slack.shortcuts` JSON array. */
|
|
37
|
+
readonly shortcuts: readonly SlackShortcutConfig[];
|
|
38
|
+
/** App Home tab config, read from the `slack.homeTab` JSON object. */
|
|
39
|
+
readonly homeTab: SlackHomeTabConfig;
|
|
40
|
+
readonly heartbeatIntervalMs?: number;
|
|
41
|
+
readonly heartbeatTimeoutMs?: number;
|
|
42
|
+
readonly reconnectInitialBackoffMs?: number;
|
|
43
|
+
readonly reconnectMaxBackoffMs?: number;
|
|
44
|
+
readonly reconnectStabilityMs?: number;
|
|
45
|
+
readonly reconnectStartupGraceMs?: number;
|
|
46
|
+
readonly drainDeadlineMs?: number;
|
|
11
47
|
}
|
|
12
48
|
export interface RedactedSlackAdapterConfig {
|
|
13
49
|
readonly enabled: boolean;
|
|
@@ -24,6 +60,20 @@ export interface RedactedSlackAdapterConfig {
|
|
|
24
60
|
readonly count: number;
|
|
25
61
|
};
|
|
26
62
|
readonly stripMentionText: boolean;
|
|
63
|
+
readonly shortcuts: {
|
|
64
|
+
readonly count: number;
|
|
65
|
+
};
|
|
66
|
+
readonly homeTab: {
|
|
67
|
+
readonly enabled: boolean;
|
|
68
|
+
readonly buttonCount: number;
|
|
69
|
+
};
|
|
70
|
+
readonly heartbeatIntervalMs?: number;
|
|
71
|
+
readonly heartbeatTimeoutMs?: number;
|
|
72
|
+
readonly reconnectInitialBackoffMs?: number;
|
|
73
|
+
readonly reconnectMaxBackoffMs?: number;
|
|
74
|
+
readonly reconnectStabilityMs?: number;
|
|
75
|
+
readonly reconnectStartupGraceMs?: number;
|
|
76
|
+
readonly drainDeadlineMs?: number;
|
|
27
77
|
}
|
|
28
78
|
export type SlackAdapterConfigErrorCode = "missing_required_config" | "invalid_config";
|
|
29
79
|
export interface SlackAdapterConfigErrorDetails {
|
|
@@ -42,7 +92,13 @@ export interface LoadSlackAdapterConfigInput {
|
|
|
42
92
|
readonly json?: SettingsJson;
|
|
43
93
|
readonly jsonPath?: string;
|
|
44
94
|
}
|
|
45
|
-
export declare const slackFieldGroup: FieldGroup;
|
|
46
95
|
export declare function loadSlackAdapterConfig(input: LoadSlackAdapterConfigInput): Promise<SlackAdapterConfig>;
|
|
47
96
|
export declare function redactSlackAdapterConfig(config: SlackAdapterConfig): RedactedSlackAdapterConfig;
|
|
97
|
+
/**
|
|
98
|
+
* The `slack` section's field registry: the single source of truth both the
|
|
99
|
+
* JSON→env layering below and the app's config provenance view derive from.
|
|
100
|
+
* Covers every env-mappable field (JSON-only structures like `shortcuts` and
|
|
101
|
+
* `homeButtons` are read straight from JSON).
|
|
102
|
+
*/
|
|
103
|
+
export declare const SLACK_CONFIG_FIELDS: readonly JsonEnvFieldSpec[];
|
|
48
104
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fieldSpecMappings, layerJsonOntoEnv, normalizeOptionalString, readBoolean, readCsv, readInteger, readJsonSection, readRequired, readSettingsJson, redactedSecret, } from "@mono-agent/agent-contracts";
|
|
2
2
|
export class SlackAdapterConfigError extends Error {
|
|
3
3
|
code;
|
|
4
4
|
details;
|
|
@@ -9,77 +9,15 @@ export class SlackAdapterConfigError extends Error {
|
|
|
9
9
|
this.details = { ...details, code };
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
export const slackFieldGroup = defineFieldGroup({
|
|
13
|
-
id: "slack",
|
|
14
|
-
label: "Slack",
|
|
15
|
-
description: "Optional Slack Socket Mode adapter configuration. Tokens are write-only.",
|
|
16
|
-
fields: [
|
|
17
|
-
{
|
|
18
|
-
id: "slack.enabled",
|
|
19
|
-
label: "Enable Slack",
|
|
20
|
-
description: "Start the Slack adapter with the app. Off by default.",
|
|
21
|
-
kind: "switch",
|
|
22
|
-
path: ["slack", "enabled"],
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: "slack.botToken",
|
|
26
|
-
label: "Bot token",
|
|
27
|
-
description: "Slack bot token used for chat.postMessage and chat.update.",
|
|
28
|
-
kind: "secret",
|
|
29
|
-
path: ["slack", "botToken"],
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
id: "slack.appToken",
|
|
33
|
-
label: "App token",
|
|
34
|
-
description: "Slack app-level token with connections:write for Socket Mode.",
|
|
35
|
-
kind: "secret",
|
|
36
|
-
path: ["slack", "appToken"],
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: "slack.allowedChannelIds",
|
|
40
|
-
label: "Allowed channel IDs",
|
|
41
|
-
description: "Comma-separated Slack channel or DM IDs the adapter may respond to.",
|
|
42
|
-
kind: "csv",
|
|
43
|
-
placeholder: "D123456, C123456",
|
|
44
|
-
path: ["slack", "allowedChannelIds"],
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id: "slack.allowAllChannels",
|
|
48
|
-
label: "Allow all channels",
|
|
49
|
-
description: "Explicitly permit every channel delivered to the app.",
|
|
50
|
-
kind: "switch",
|
|
51
|
-
path: ["slack", "allowAllChannels"],
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
id: "slack.botUserIds",
|
|
55
|
-
label: "Bot user IDs",
|
|
56
|
-
description: "Comma-separated Slack user IDs that should count as this bot.",
|
|
57
|
-
kind: "csv",
|
|
58
|
-
placeholder: "U123456",
|
|
59
|
-
path: ["slack", "botUserIds"],
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
id: "slack.mentionTextAliases",
|
|
63
|
-
label: "Mention aliases",
|
|
64
|
-
description: "Comma-separated mention text aliases to strip before runtime calls.",
|
|
65
|
-
kind: "csv",
|
|
66
|
-
placeholder: "@agent, Assistant",
|
|
67
|
-
path: ["slack", "mentionTextAliases"],
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
id: "slack.stripMentionText",
|
|
71
|
-
label: "Strip mention text",
|
|
72
|
-
description: "Remove configured bot mentions and aliases before sending text to the responder.",
|
|
73
|
-
kind: "switch",
|
|
74
|
-
path: ["slack", "stripMentionText"],
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
});
|
|
78
12
|
const missingConfig = (message, details) => new SlackAdapterConfigError("missing_required_config", message, details);
|
|
79
13
|
const invalidConfig = (message, details) => new SlackAdapterConfigError("invalid_config", message, details);
|
|
80
14
|
export async function loadSlackAdapterConfig(input) {
|
|
81
15
|
const json = input.json ?? (input.jsonPath === undefined ? {} : (await readSettingsJson(input.jsonPath)).json);
|
|
82
16
|
const env = layerSlackJsonOntoEnv(json, input.env);
|
|
17
|
+
// Shortcut bindings and the Home tab are structured config, so they are read
|
|
18
|
+
// straight from the JSON section rather than via env layering.
|
|
19
|
+
const shortcuts = readSlackShortcuts(json);
|
|
20
|
+
const homeTab = readSlackHomeTab(json);
|
|
83
21
|
const enabled = readBoolean(env.MONO_AGENT_SLACK_ENABLED, "MONO_AGENT_SLACK_ENABLED", false, invalidConfig);
|
|
84
22
|
const allowedChannelIds = readCsv(env.MONO_AGENT_SLACK_ALLOWED_CHANNEL_IDS);
|
|
85
23
|
const allowAllChannels = readBoolean(env.MONO_AGENT_SLACK_ALLOW_ALL_CHANNELS, "MONO_AGENT_SLACK_ALLOW_ALL_CHANNELS", false, invalidConfig);
|
|
@@ -99,6 +37,8 @@ export async function loadSlackAdapterConfig(input) {
|
|
|
99
37
|
botUserIds,
|
|
100
38
|
mentionTextAliases,
|
|
101
39
|
stripMentionText,
|
|
40
|
+
shortcuts,
|
|
41
|
+
homeTab,
|
|
102
42
|
};
|
|
103
43
|
}
|
|
104
44
|
const botToken = readRequired(env.MONO_AGENT_SLACK_BOT_TOKEN, "MONO_AGENT_SLACK_BOT_TOKEN", missingConfig);
|
|
@@ -115,8 +55,186 @@ export async function loadSlackAdapterConfig(input) {
|
|
|
115
55
|
botUserIds,
|
|
116
56
|
mentionTextAliases,
|
|
117
57
|
stripMentionText,
|
|
58
|
+
shortcuts,
|
|
59
|
+
homeTab,
|
|
60
|
+
...readSlackSocketTuning(env),
|
|
118
61
|
};
|
|
119
62
|
}
|
|
63
|
+
/** Field name → env var for the optional integer Socket Mode resilience knobs. */
|
|
64
|
+
const SLACK_SOCKET_TUNING_ENV = [
|
|
65
|
+
["heartbeatIntervalMs", "MONO_AGENT_SLACK_HEARTBEAT_INTERVAL_MS"],
|
|
66
|
+
["heartbeatTimeoutMs", "MONO_AGENT_SLACK_HEARTBEAT_TIMEOUT_MS"],
|
|
67
|
+
["reconnectInitialBackoffMs", "MONO_AGENT_SLACK_RECONNECT_INITIAL_BACKOFF_MS"],
|
|
68
|
+
["reconnectMaxBackoffMs", "MONO_AGENT_SLACK_RECONNECT_MAX_BACKOFF_MS"],
|
|
69
|
+
["reconnectStabilityMs", "MONO_AGENT_SLACK_RECONNECT_STABILITY_MS"],
|
|
70
|
+
["reconnectStartupGraceMs", "MONO_AGENT_SLACK_RECONNECT_STARTUP_GRACE_MS"],
|
|
71
|
+
["drainDeadlineMs", "MONO_AGENT_SLACK_DRAIN_DEADLINE_MS"],
|
|
72
|
+
];
|
|
73
|
+
/**
|
|
74
|
+
* Read the optional integer Socket Mode resilience knobs. Each is omitted (not 0) when
|
|
75
|
+
* unset so the runner falls back to its own default; an invalid value is a hard error.
|
|
76
|
+
*/
|
|
77
|
+
function readSlackSocketTuning(env) {
|
|
78
|
+
const tuning = {};
|
|
79
|
+
for (const [key, name] of SLACK_SOCKET_TUNING_ENV) {
|
|
80
|
+
const raw = normalizeOptionalString(env[name]);
|
|
81
|
+
if (raw === undefined) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
tuning[key] = readInteger(raw, name, 0, invalidConfig, { min: 0, max: 3_600_000 });
|
|
85
|
+
}
|
|
86
|
+
return tuning;
|
|
87
|
+
}
|
|
88
|
+
/** Copy only the set Socket Mode tuning fields from a loaded config (for redaction/forwarding). */
|
|
89
|
+
function extractSlackSocketTuning(config) {
|
|
90
|
+
const tuning = {};
|
|
91
|
+
for (const [key] of SLACK_SOCKET_TUNING_ENV) {
|
|
92
|
+
const value = config[key];
|
|
93
|
+
if (value !== undefined) {
|
|
94
|
+
tuning[key] = value;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return tuning;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Read `slack.shortcuts` (shortcut bindings) straight from the JSON config
|
|
101
|
+
* section. Absent → none; a non-array or a malformed entry is a hard config
|
|
102
|
+
* error so a typo surfaces loudly instead of silently dropping a shortcut.
|
|
103
|
+
*/
|
|
104
|
+
function readSlackShortcuts(json) {
|
|
105
|
+
const section = readJsonSection(json, "slack");
|
|
106
|
+
const raw = section.shortcuts;
|
|
107
|
+
if (raw === undefined) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
if (!Array.isArray(raw)) {
|
|
111
|
+
throw invalidConfig("slack.shortcuts must be an array of { callbackId, prompt } objects.");
|
|
112
|
+
}
|
|
113
|
+
const shortcuts = raw.map((entry, index) => normalizeShortcutConfig(entry, index));
|
|
114
|
+
assertUniqueIds(shortcuts.map((shortcut) => shortcut.callbackId), "slack.shortcuts callbackId");
|
|
115
|
+
return shortcuts;
|
|
116
|
+
}
|
|
117
|
+
function normalizeShortcutConfig(entry, index) {
|
|
118
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
119
|
+
throw invalidConfig("slack.shortcuts entries must be objects.", { index });
|
|
120
|
+
}
|
|
121
|
+
const record = entry;
|
|
122
|
+
const callbackId = record.callbackId;
|
|
123
|
+
const prompt = record.prompt;
|
|
124
|
+
const channelId = record.channelId;
|
|
125
|
+
const ackText = record.ackText;
|
|
126
|
+
if (typeof callbackId !== "string" || callbackId.trim().length === 0) {
|
|
127
|
+
throw invalidConfig("slack.shortcuts entries require a non-empty callbackId.", { index });
|
|
128
|
+
}
|
|
129
|
+
if (typeof prompt !== "string" || prompt.trim().length === 0) {
|
|
130
|
+
throw invalidConfig("slack.shortcuts entries require a non-empty prompt.", { index });
|
|
131
|
+
}
|
|
132
|
+
if (channelId !== undefined && (typeof channelId !== "string" || channelId.trim().length === 0)) {
|
|
133
|
+
throw invalidConfig("slack.shortcuts channelId must be a non-empty string when set.", { index });
|
|
134
|
+
}
|
|
135
|
+
if (ackText !== undefined && (typeof ackText !== "string" || ackText.trim().length === 0)) {
|
|
136
|
+
throw invalidConfig("slack.shortcuts ackText must be a non-empty string when set.", { index });
|
|
137
|
+
}
|
|
138
|
+
const config = {
|
|
139
|
+
callbackId,
|
|
140
|
+
prompt,
|
|
141
|
+
};
|
|
142
|
+
if (channelId !== undefined) {
|
|
143
|
+
config.channelId = channelId;
|
|
144
|
+
}
|
|
145
|
+
if (ackText !== undefined) {
|
|
146
|
+
config.ackText = ackText;
|
|
147
|
+
}
|
|
148
|
+
return config;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Read `slack.homeTab` (App Home tab config) from the JSON section. Absent →
|
|
152
|
+
* disabled with no buttons; a malformed shape or button is a hard config error.
|
|
153
|
+
*/
|
|
154
|
+
function readSlackHomeTab(json) {
|
|
155
|
+
const section = readJsonSection(json, "slack");
|
|
156
|
+
const raw = section.homeTab;
|
|
157
|
+
if (raw === undefined) {
|
|
158
|
+
return { enabled: false, buttons: [] };
|
|
159
|
+
}
|
|
160
|
+
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
161
|
+
throw invalidConfig("slack.homeTab must be an object.");
|
|
162
|
+
}
|
|
163
|
+
const record = raw;
|
|
164
|
+
const enabled = record.enabled === true;
|
|
165
|
+
const headerText = record.headerText;
|
|
166
|
+
if (headerText !== undefined && (typeof headerText !== "string" || headerText.trim().length === 0)) {
|
|
167
|
+
throw invalidConfig("slack.homeTab.headerText must be a non-empty string when set.");
|
|
168
|
+
}
|
|
169
|
+
const rawButtons = record.buttons;
|
|
170
|
+
if (rawButtons !== undefined && !Array.isArray(rawButtons)) {
|
|
171
|
+
throw invalidConfig("slack.homeTab.buttons must be an array of button objects.");
|
|
172
|
+
}
|
|
173
|
+
const buttons = (rawButtons ?? []).map((entry, index) => normalizeHomeButtonConfig(entry, index));
|
|
174
|
+
assertUniqueIds(buttons.map((button) => button.actionId), "slack.homeTab.buttons actionId");
|
|
175
|
+
// An enabled Home tab with neither buttons nor a header would publish an empty
|
|
176
|
+
// view, which Slack's views.publish rejects (1–100 blocks) on every open.
|
|
177
|
+
if (enabled && buttons.length === 0 && headerText === undefined) {
|
|
178
|
+
throw invalidConfig("slack.homeTab is enabled but has no buttons and no headerText to render.");
|
|
179
|
+
}
|
|
180
|
+
const config = {
|
|
181
|
+
enabled,
|
|
182
|
+
buttons,
|
|
183
|
+
};
|
|
184
|
+
if (headerText !== undefined) {
|
|
185
|
+
config.headerText = headerText;
|
|
186
|
+
}
|
|
187
|
+
return config;
|
|
188
|
+
}
|
|
189
|
+
/** Reject duplicate ids (case-insensitive) so a copy-paste typo surfaces loudly at load. */
|
|
190
|
+
function assertUniqueIds(ids, label) {
|
|
191
|
+
const seen = new Set();
|
|
192
|
+
for (const id of ids) {
|
|
193
|
+
const key = id.trim().toLowerCase();
|
|
194
|
+
if (seen.has(key)) {
|
|
195
|
+
throw invalidConfig(`${label} must be unique; "${id}" is declared more than once.`);
|
|
196
|
+
}
|
|
197
|
+
seen.add(key);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function normalizeHomeButtonConfig(entry, index) {
|
|
201
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
202
|
+
throw invalidConfig("slack.homeTab.buttons entries must be objects.", { index });
|
|
203
|
+
}
|
|
204
|
+
const record = entry;
|
|
205
|
+
const actionId = record.actionId;
|
|
206
|
+
const label = record.label;
|
|
207
|
+
const prompt = record.prompt;
|
|
208
|
+
const channelId = record.channelId;
|
|
209
|
+
const ackText = record.ackText;
|
|
210
|
+
if (typeof actionId !== "string" || actionId.trim().length === 0) {
|
|
211
|
+
throw invalidConfig("slack.homeTab.buttons entries require a non-empty actionId.", { index });
|
|
212
|
+
}
|
|
213
|
+
if (typeof label !== "string" || label.trim().length === 0) {
|
|
214
|
+
throw invalidConfig("slack.homeTab.buttons entries require a non-empty label.", { index });
|
|
215
|
+
}
|
|
216
|
+
if (typeof prompt !== "string" || prompt.trim().length === 0) {
|
|
217
|
+
throw invalidConfig("slack.homeTab.buttons entries require a non-empty prompt.", { index });
|
|
218
|
+
}
|
|
219
|
+
if (channelId !== undefined && (typeof channelId !== "string" || channelId.trim().length === 0)) {
|
|
220
|
+
throw invalidConfig("slack.homeTab.buttons channelId must be a non-empty string when set.", { index });
|
|
221
|
+
}
|
|
222
|
+
if (ackText !== undefined && (typeof ackText !== "string" || ackText.trim().length === 0)) {
|
|
223
|
+
throw invalidConfig("slack.homeTab.buttons ackText must be a non-empty string when set.", { index });
|
|
224
|
+
}
|
|
225
|
+
const config = {
|
|
226
|
+
actionId,
|
|
227
|
+
label,
|
|
228
|
+
prompt,
|
|
229
|
+
};
|
|
230
|
+
if (channelId !== undefined) {
|
|
231
|
+
config.channelId = channelId;
|
|
232
|
+
}
|
|
233
|
+
if (ackText !== undefined) {
|
|
234
|
+
config.ackText = ackText;
|
|
235
|
+
}
|
|
236
|
+
return config;
|
|
237
|
+
}
|
|
120
238
|
export function redactSlackAdapterConfig(config) {
|
|
121
239
|
return {
|
|
122
240
|
enabled: config.enabled,
|
|
@@ -127,19 +245,36 @@ export function redactSlackAdapterConfig(config) {
|
|
|
127
245
|
botUserIds: { count: config.botUserIds.length },
|
|
128
246
|
mentionTextAliases: { count: config.mentionTextAliases.length },
|
|
129
247
|
stripMentionText: config.stripMentionText,
|
|
248
|
+
shortcuts: { count: config.shortcuts.length },
|
|
249
|
+
homeTab: { enabled: config.homeTab.enabled, buttonCount: config.homeTab.buttons.length },
|
|
250
|
+
// Plain (non-secret) tuning values, only the ones the operator actually set.
|
|
251
|
+
...extractSlackSocketTuning(config),
|
|
130
252
|
};
|
|
131
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* The `slack` section's field registry: the single source of truth both the
|
|
256
|
+
* JSON→env layering below and the app's config provenance view derive from.
|
|
257
|
+
* Covers every env-mappable field (JSON-only structures like `shortcuts` and
|
|
258
|
+
* `homeButtons` are read straight from JSON).
|
|
259
|
+
*/
|
|
260
|
+
export const SLACK_CONFIG_FIELDS = [
|
|
261
|
+
{ id: "slack.enabled", env: "MONO_AGENT_SLACK_ENABLED", kind: "boolean", fromJson: (s) => s.enabled },
|
|
262
|
+
{ id: "slack.botToken", env: "MONO_AGENT_SLACK_BOT_TOKEN", secret: true, fromJson: (s) => s.botToken },
|
|
263
|
+
{ id: "slack.appToken", env: "MONO_AGENT_SLACK_APP_TOKEN", secret: true, fromJson: (s) => s.appToken },
|
|
264
|
+
{ id: "slack.allowedChannelIds", env: "MONO_AGENT_SLACK_ALLOWED_CHANNEL_IDS", kind: "csv", fromJson: (s) => s.allowedChannelIds },
|
|
265
|
+
{ id: "slack.allowAllChannels", env: "MONO_AGENT_SLACK_ALLOW_ALL_CHANNELS", kind: "boolean", fromJson: (s) => s.allowAllChannels },
|
|
266
|
+
{ id: "slack.botUserIds", env: "MONO_AGENT_SLACK_BOT_USER_IDS", kind: "csv", fromJson: (s) => s.botUserIds },
|
|
267
|
+
{ id: "slack.mentionTextAliases", env: "MONO_AGENT_SLACK_MENTION_TEXT_ALIASES", kind: "csv", fromJson: (s) => s.mentionTextAliases },
|
|
268
|
+
{ id: "slack.stripMentionText", env: "MONO_AGENT_SLACK_STRIP_MENTION_TEXT", kind: "boolean", fromJson: (s) => s.stripMentionText },
|
|
269
|
+
{ id: "slack.heartbeatIntervalMs", env: "MONO_AGENT_SLACK_HEARTBEAT_INTERVAL_MS", kind: "integer", fromJson: (s) => s.heartbeatIntervalMs },
|
|
270
|
+
{ id: "slack.heartbeatTimeoutMs", env: "MONO_AGENT_SLACK_HEARTBEAT_TIMEOUT_MS", kind: "integer", fromJson: (s) => s.heartbeatTimeoutMs },
|
|
271
|
+
{ id: "slack.reconnectInitialBackoffMs", env: "MONO_AGENT_SLACK_RECONNECT_INITIAL_BACKOFF_MS", kind: "integer", fromJson: (s) => s.reconnectInitialBackoffMs },
|
|
272
|
+
{ id: "slack.reconnectMaxBackoffMs", env: "MONO_AGENT_SLACK_RECONNECT_MAX_BACKOFF_MS", kind: "integer", fromJson: (s) => s.reconnectMaxBackoffMs },
|
|
273
|
+
{ id: "slack.reconnectStabilityMs", env: "MONO_AGENT_SLACK_RECONNECT_STABILITY_MS", kind: "integer", fromJson: (s) => s.reconnectStabilityMs },
|
|
274
|
+
{ id: "slack.reconnectStartupGraceMs", env: "MONO_AGENT_SLACK_RECONNECT_STARTUP_GRACE_MS", kind: "integer", fromJson: (s) => s.reconnectStartupGraceMs },
|
|
275
|
+
{ id: "slack.drainDeadlineMs", env: "MONO_AGENT_SLACK_DRAIN_DEADLINE_MS", kind: "integer", fromJson: (s) => s.drainDeadlineMs },
|
|
276
|
+
];
|
|
132
277
|
function layerSlackJsonOntoEnv(json, env) {
|
|
133
|
-
|
|
134
|
-
return layerJsonOntoEnv(env, [
|
|
135
|
-
{ env: "MONO_AGENT_SLACK_ENABLED", value: section.enabled, kind: "boolean" },
|
|
136
|
-
{ env: "MONO_AGENT_SLACK_BOT_TOKEN", value: section.botToken },
|
|
137
|
-
{ env: "MONO_AGENT_SLACK_APP_TOKEN", value: section.appToken },
|
|
138
|
-
{ env: "MONO_AGENT_SLACK_ALLOWED_CHANNEL_IDS", value: section.allowedChannelIds, kind: "csv" },
|
|
139
|
-
{ env: "MONO_AGENT_SLACK_ALLOW_ALL_CHANNELS", value: section.allowAllChannels, kind: "boolean" },
|
|
140
|
-
{ env: "MONO_AGENT_SLACK_BOT_USER_IDS", value: section.botUserIds, kind: "csv" },
|
|
141
|
-
{ env: "MONO_AGENT_SLACK_MENTION_TEXT_ALIASES", value: section.mentionTextAliases, kind: "csv" },
|
|
142
|
-
{ env: "MONO_AGENT_SLACK_STRIP_MENTION_TEXT", value: section.stripMentionText, kind: "boolean" },
|
|
143
|
-
]);
|
|
278
|
+
return layerJsonOntoEnv(env, fieldSpecMappings(readJsonSection(json, "slack"), SLACK_CONFIG_FIELDS));
|
|
144
279
|
}
|
|
145
280
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAwC9B,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,IAAI,CAA8B;IAClC,OAAO,CAAiC;IAEjD,YACE,IAAiC,EACjC,OAAe,EACf,UAA0C,EAAE;QAE5C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AAQD,MAAM,CAAC,MAAM,eAAe,GAAe,gBAAgB,CAAC;IAC1D,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,0EAA0E;IACvF,MAAM,EAAE;QACN;YACE,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,uDAAuD;YACpE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;SAC3B;QACD;YACE,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,4DAA4D;YACzE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;SAC5B;QACD;YACE,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,+DAA+D;YAC5E,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;SAC5B;QACD;YACE,EAAE,EAAE,yBAAyB;YAC7B,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAE,qEAAqE;YAClF,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC;SACrC;QACD;YACE,EAAE,EAAE,wBAAwB;YAC5B,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,uDAAuD;YACpE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC;SACpC;QACD;YACE,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,+DAA+D;YAC5E,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;SAC9B;QACD;YACE,EAAE,EAAE,0BAA0B;YAC9B,KAAK,EAAE,iBAAiB;YACxB,WAAW,EAAE,qEAAqE;YAClF,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,mBAAmB;YAChC,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC;SACtC;QACD;YACE,EAAE,EAAE,wBAAwB;YAC5B,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,kFAAkF;YAC/F,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,OAAO,EAAE,kBAAkB,CAAC;SACpC;KACF;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CACpB,OAAe,EACf,OAAiC,EACR,EAAE,CAC3B,IAAI,uBAAuB,CAAC,yBAAyB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE3E,MAAM,aAAa,GAAG,CACpB,OAAe,EACf,OAAiC,EACR,EAAE,CAC3B,IAAI,uBAAuB,CAAC,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkC;IAElC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/G,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,wBAAwB,EAAE,0BAA0B,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAC5G,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,WAAW,CAClC,GAAG,CAAC,mCAAmC,EACvC,qCAAqC,EACrC,KAAK,EACL,aAAa,CACd,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAG,WAAW,CAClC,GAAG,CAAC,mCAAmC,EACvC,qCAAqC,EACrC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EACtD,aAAa,CACd,CAAC;IAEF,+EAA+E;IAC/E,8EAA8E;IAC9E,qEAAqE;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,iBAAiB;YACjB,gBAAgB;YAChB,UAAU;YACV,kBAAkB;YAClB,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,0BAA0B,EAAE,4BAA4B,EAAE,aAAa,CAAC,CAAC;IAC3G,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,0BAA0B,EAAE,4BAA4B,EAAE,aAAa,CAAC,CAAC;IAE3G,IAAI,CAAC,gBAAgB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,CACjB,0GAA0G,EAC1G,EAAE,GAAG,EAAE,sCAAsC,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,QAAQ;QACR,QAAQ;QACR,iBAAiB;QACjB,gBAAgB;QAChB,UAAU;QACV,kBAAkB;QAClB,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAA0B;IAE1B,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE;QAC7D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE;QAC/C,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC/D,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAkB,EAClB,GAAuC;IAEvC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,gBAAgB,CAAC,GAAG,EAAE;QAC3B,EAAE,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5E,EAAE,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC9D,EAAE,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC9D,EAAE,GAAG,EAAE,sCAAsC,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE;QAC9F,EAAE,GAAG,EAAE,qCAAqC,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;QAChG,EAAE,GAAG,EAAE,+BAA+B,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;QAChF,EAAE,GAAG,EAAE,uCAAuC,EAAE,KAAK,EAAE,OAAO,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE;QAChG,EAAE,GAAG,EAAE,qCAAqC,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;KACjG,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export type { SlackAppsConnectionsOpenResult, SlackAuthTestResult, SlackChannelId, SlackChatPostMessageParams, SlackChatPostMessageResult, SlackChatUpdateParams, SlackChatUpdateResult, SlackDownloadFileParams, SlackEventBase, SlackEventCallback, SlackFile, SlackMessageTs, SlackRequestOptions, SlackSocketModeEnvelope, SlackUserId, SlackWebApi, } from "./types.js";
|
|
1
|
+
export type { SlackAppsConnectionsOpenResult, SlackAuthTestResult, SlackChannelId, SlackChatPostMessageParams, SlackChatPostMessageResult, SlackChatUpdateParams, SlackChatUpdateResult, SlackDownloadFileParams, SlackEventBase, SlackEventCallback, SlackFile, SlackMessageTs, SlackRequestOptions, SlackShortcutPayload, SlackBlockAction, SlackBlockActionsPayload, SlackInteractivityPayload, SlackSocketModeEnvelope, SlackUserId, SlackViewsPublishParams, SlackWebApi, } from "./types.js";
|
|
2
2
|
export { SlackApiError, SlackWebApiClient, } from "./slack-client.js";
|
|
3
3
|
export type { SlackApiErrorDetails, SlackApiErrorKind, SlackWebApiClientOptions, } from "./slack-client.js";
|
|
4
4
|
export { SlackDeliveryError, SlackMessageStream, classifySlackError, } from "./message-stream.js";
|
|
5
5
|
export type { AgentMessageStream, SlackMessageStreamLogger, SlackMessageStreamOptions, SlackSendOutcome, } from "./message-stream.js";
|
|
6
6
|
export { SlackAdapter, } from "./adapter.js";
|
|
7
|
-
export type { AgentRequest, AgentResponder, AgentResponse, SlackAdapterLogger, SlackAdapterMessages, SlackAdapterOptions, SlackAdapterStreamOptions, SlackAttachmentOptions, SlackEventHandlingResult, SlackEventIgnoredReason, SlackRequestMetadata, SlackTriggerKind, } from "./adapter.js";
|
|
7
|
+
export type { AgentRequest, AgentResponder, AgentResponse, SlackAdapterLogger, SlackAdapterMessages, SlackAdapterOptions, SlackAdapterStreamOptions, SlackAttachmentOptions, SlackEventHandlingResult, SlackEventIgnoredReason, SlackHomeButton, SlackHomeTabOptions, SlackInteractionHandlingResult, SlackNotifyResult, SlackRequestMetadata, SlackShortcutBinding, SlackTriggerKind, } from "./adapter.js";
|
|
8
8
|
export { SlackSocketModeRunner, } from "./socket-mode-runner.js";
|
|
9
|
-
export type { SlackEventCallbackHandler, SlackSocketModeRunnerBackoffOptions, SlackSocketModeRunnerLogger, SlackSocketModeRunnerOptions, SlackSocketModeRunnerStartOptions, SlackWebSocketFactory, SlackWebSocketLike, } from "./socket-mode-runner.js";
|
|
9
|
+
export type { SlackEventCallbackHandler, SlackInteractionHandler, SlackSocketModeRunnerBackoffOptions, SlackSocketModeRunnerHeartbeatOptions, SlackSocketModeRunnerLogger, SlackSocketModeRunnerOptions, SlackSocketModeRunnerStartOptions, SlackWebSocketFactory, SlackWebSocketLike, } from "./socket-mode-runner.js";
|
|
10
10
|
export { startSlackAdapter, } from "./start.js";
|
|
11
11
|
export type { SlackAdapterStartLogger, SlackAdapterStartOptions, SlackAdapterStartResult, SlackApiFactoryInput, } from "./start.js";
|
|
12
|
-
export { loadSlackAdapterConfig, redactSlackAdapterConfig,
|
|
13
|
-
export type { LoadSlackAdapterConfigInput, RedactedSlackAdapterConfig, SlackAdapterConfig, SlackAdapterConfigErrorCode, SlackAdapterConfigErrorDetails, } from "./config.js";
|
|
12
|
+
export { loadSlackAdapterConfig, redactSlackAdapterConfig, SLACK_CONFIG_FIELDS, SlackAdapterConfigError, } from "./config.js";
|
|
13
|
+
export type { LoadSlackAdapterConfigInput, RedactedSlackAdapterConfig, SlackAdapterConfig, SlackAdapterConfigErrorCode, SlackAdapterConfigErrorDetails, SlackHomeButtonConfig, SlackHomeTabConfig, SlackShortcutConfig, } from "./config.js";
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,8BAA8B,EAC9B,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,yBAAyB,EACzB,mCAAmC,EACnC,2BAA2B,EAC3B,4BAA4B,EAC5B,iCAAiC,EACjC,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,8BAA8B,EAC9B,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,WAAW,EACX,uBAAuB,EACvB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,8BAA8B,EAC9B,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,yBAAyB,EACzB,uBAAuB,EACvB,mCAAmC,EACnC,qCAAqC,EACrC,2BAA2B,EAC3B,4BAA4B,EAC5B,iCAAiC,EACjC,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,2BAA2B,EAC3B,8BAA8B,EAC9B,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,5 +3,5 @@ export { SlackDeliveryError, SlackMessageStream, classifySlackError, } from "./m
|
|
|
3
3
|
export { SlackAdapter, } from "./adapter.js";
|
|
4
4
|
export { SlackSocketModeRunner, } from "./socket-mode-runner.js";
|
|
5
5
|
export { startSlackAdapter, } from "./start.js";
|
|
6
|
-
export { loadSlackAdapterConfig, redactSlackAdapterConfig,
|
|
6
|
+
export { loadSlackAdapterConfig, redactSlackAdapterConfig, SLACK_CONFIG_FIELDS, SlackAdapterConfigError, } from "./config.js";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAwBA,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,YAAY,GACb,MAAM,cAAc,CAAC;AAoBtB,OAAO,EACL,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAYjC,OAAO,EACL,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAOpB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,aAAa,CAAC"}
|
package/dist/message-stream.d.ts
CHANGED
|
@@ -39,7 +39,18 @@ export interface SlackMessageStreamOptions {
|
|
|
39
39
|
/** Aborts in-flight retry waits (e.g. on /cancel). */
|
|
40
40
|
abortSignal?: AbortSignal;
|
|
41
41
|
logger?: SlackMessageStreamLogger;
|
|
42
|
+
/**
|
|
43
|
+
* Notified with each message this stream posts. Used to link a posted message
|
|
44
|
+
* back to the conversation that produced it, so a later in-thread reply can
|
|
45
|
+
* resume that conversation (see `posted-message-index` in agent-app).
|
|
46
|
+
*/
|
|
47
|
+
onPosted?: SlackPostedMessageListener;
|
|
42
48
|
}
|
|
49
|
+
/** Notified with the channel + ts of a message a stream posted. */
|
|
50
|
+
export type SlackPostedMessageListener = (ref: {
|
|
51
|
+
ts: SlackMessageTs;
|
|
52
|
+
channel: SlackChannelId;
|
|
53
|
+
}) => void;
|
|
43
54
|
/**
|
|
44
55
|
* Raised only when a *final* delivery cannot reach Slack after retries and the
|
|
45
56
|
* last-resort fresh post. The AI request itself already succeeded, so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-stream.d.ts","sourceRoot":"","sources":["../src/message-stream.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,IAAI,sBAAsB,EAC5C,gBAAgB,EAIhB,4BAA4B,EAC7B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,WAAW,CAAC;IACjB,SAAS,EAAE,cAAc,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,CAAC,EAAE,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"message-stream.d.ts","sourceRoot":"","sources":["../src/message-stream.ts"],"names":[],"mappings":"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"}
|
package/dist/message-stream.js
CHANGED
|
@@ -37,6 +37,7 @@ class SlackChannelTransport {
|
|
|
37
37
|
threadTs;
|
|
38
38
|
reactToTs;
|
|
39
39
|
assistantStatusText;
|
|
40
|
+
onPosted;
|
|
40
41
|
reacted = false;
|
|
41
42
|
assistantStatusUnavailable = false;
|
|
42
43
|
constructor(options) {
|
|
@@ -46,6 +47,7 @@ class SlackChannelTransport {
|
|
|
46
47
|
this.reactToTs = options.reactToTs;
|
|
47
48
|
this.assistantStatusText = options.assistantStatusText;
|
|
48
49
|
this.maxMessageChars = options.maxMessageChars;
|
|
50
|
+
this.onPosted = options.onPosted;
|
|
49
51
|
}
|
|
50
52
|
async indicateActivity() {
|
|
51
53
|
// Prefer Slack's official assistant-thread status ("App is <status>"), which
|
|
@@ -79,6 +81,9 @@ class SlackChannelTransport {
|
|
|
79
81
|
}
|
|
80
82
|
async post(text, options) {
|
|
81
83
|
const sent = await this.api.chatPostMessage(this.withThread({ channel: this.channelId, text, mrkdwn: options.markdown }));
|
|
84
|
+
// Use `sent` (typed SlackChatPostMessageResult) rather than the transport-agnostic
|
|
85
|
+
// MessageRef, whose `channel` widens to `unknown`.
|
|
86
|
+
this.onPosted?.({ ts: sent.ts, channel: sent.channel });
|
|
82
87
|
return slackMessageRef(sent);
|
|
83
88
|
}
|
|
84
89
|
async edit(ref, text, options) {
|
|
@@ -123,6 +128,7 @@ export class SlackMessageStream {
|
|
|
123
128
|
...(options.reactToTs === undefined ? {} : { reactToTs: options.reactToTs }),
|
|
124
129
|
assistantStatusText: options.assistantStatusText ?? DEFAULT_ASSISTANT_STATUS_TEXT,
|
|
125
130
|
maxMessageChars,
|
|
131
|
+
...(options.onPosted === undefined ? {} : { onPosted: options.onPosted }),
|
|
126
132
|
});
|
|
127
133
|
this.inner = new ResilientMessageStream({
|
|
128
134
|
transport,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-stream.js","sourceRoot":"","sources":["../src/message-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AAUrC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"message-stream.js","sourceRoot":"","sources":["../src/message-stream.ts"],"names":[],"mappings":"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"}
|
package/dist/slack-client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SlackAppsConnectionsOpenResult, SlackAuthTestResult, SlackChatPostMessageParams, SlackChatPostMessageResult, SlackChatUpdateParams, SlackChatUpdateResult, SlackDownloadFileParams, SlackReactionsAddParams, SlackRequestOptions, SlackSetAssistantStatusParams, SlackWebApi } from "./types.js";
|
|
1
|
+
import type { SlackAppsConnectionsOpenResult, SlackAuthTestResult, SlackChatPostMessageParams, SlackChatPostMessageResult, SlackChatUpdateParams, SlackChatUpdateResult, SlackDownloadFileParams, SlackReactionsAddParams, SlackRequestOptions, SlackSetAssistantStatusParams, SlackViewsPublishParams, SlackWebApi } from "./types.js";
|
|
2
2
|
export type SlackApiErrorKind = "http" | "slack" | "malformed" | "network" | "aborted";
|
|
3
3
|
export interface SlackApiErrorDetails {
|
|
4
4
|
kind: SlackApiErrorKind;
|
|
@@ -50,6 +50,7 @@ export declare class SlackWebApiClient implements SlackWebApi {
|
|
|
50
50
|
chatUpdate(params: SlackChatUpdateParams, options?: SlackRequestOptions): Promise<SlackChatUpdateResult>;
|
|
51
51
|
reactionsAdd(params: SlackReactionsAddParams, options?: SlackRequestOptions): Promise<void>;
|
|
52
52
|
setAssistantStatus(params: SlackSetAssistantStatusParams, options?: SlackRequestOptions): Promise<void>;
|
|
53
|
+
viewsPublish(params: SlackViewsPublishParams, options?: SlackRequestOptions): Promise<void>;
|
|
53
54
|
/**
|
|
54
55
|
* Download a private Slack file. Slack serves `url_private` only with an
|
|
55
56
|
* `Authorization: Bearer <bot token>` header. The download is bounded by the
|