@mono-agent/slack-adapter 0.4.0 → 0.5.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.d.ts CHANGED
@@ -1,4 +1,29 @@
1
- import type { FieldGroup, RedactedSecretValue, SettingsJson } from "@mono-agent/settings";
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
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,iBAAiB,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,QAAQ,CAAC,kBAAkB,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,MAAM,2BAA2B,GACnC,yBAAyB,GACzB,gBAAgB,CAAC;AAErB,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;gBAG/C,IAAI,EAAE,2BAA2B,EACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,8BAAmC;CAO/C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,EAAE,UAiE5B,CAAC;AAcH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAwD7B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,GACzB,0BAA0B,CAW5B"}
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 { defineFieldGroup, layerJsonOntoEnv, readBoolean, readCsv, readJsonSection, readRequired, readSettingsJson, redactedSecret, } from "@mono-agent/settings";
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
- const section = readJsonSection(json, "slack");
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
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
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, SlackAdapterConfigError, slackFieldGroup, } from "./config.js";
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
@@ -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,uBAAuB,EACvB,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,kBAAkB,EAClB,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,aAAa,CAAC"}
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, SlackAdapterConfigError, slackFieldGroup, } from "./config.js";
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":"AAmBA,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;AAetB,OAAO,EACL,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,EACL,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAOpB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,GAChB,MAAM,aAAa,CAAC"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"message-stream.d.ts","sourceRoot":"","sources":["../src/message-stream.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"message-stream.js","sourceRoot":"","sources":["../src/message-stream.ts"],"names":[],"mappings":"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"}
@@ -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