ask-slack-mcp-server 2.0.0 → 2.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/server.js CHANGED
@@ -42,10 +42,18 @@ const httpServer = http.createServer(async (req, res) => {
42
42
  sendJson(res, 400, { error: "Missing required field: question" });
43
43
  return;
44
44
  }
45
+ // Build the question text
45
46
  const fullMessage = body.context
46
47
  ? `*Context:* ${body.context}\n\n*Question:* ${body.question}`
47
48
  : `*Question:* ${body.question}`;
48
- const answer = await sendQuestionAndWait(fullMessage, body.slack_user_id);
49
+ // Map options to SlackQuestionOption[]
50
+ const slackOptions = body.options && body.options.length > 0
51
+ ? body.options.map((o) => ({
52
+ label: o.label,
53
+ description: o.description,
54
+ }))
55
+ : undefined;
56
+ const answer = await sendQuestionAndWait(fullMessage, body.slack_user_id, slackOptions, body.multi_select);
49
57
  sendJson(res, 200, { answer });
50
58
  }
51
59
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/slack.d.ts CHANGED
@@ -1,3 +1,7 @@
1
+ export interface SlackQuestionOption {
2
+ label: string;
3
+ description?: string;
4
+ }
1
5
  export declare function startBoltApp(): Promise<void>;
2
6
  export declare function stopBoltApp(): Promise<void>;
3
- export declare function sendQuestionAndWait(question: string, slackUserId?: string): Promise<string>;
7
+ export declare function sendQuestionAndWait(question: string, slackUserId?: string, options?: SlackQuestionOption[], multiSelect?: boolean): Promise<string>;
package/dist/slack.js CHANGED
@@ -2,7 +2,6 @@ import { WebClient } from "@slack/web-api";
2
2
  import { App } from "@slack/bolt";
3
3
  const TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
4
4
  const STARTUP_DELAY_MS = 6000; // Wait for stale Slack connections to expire
5
- // Map: channelId -> resolver of pending Promise
6
5
  const pendingQuestions = new Map();
7
6
  const web = new WebClient(process.env.SLACK_BOT_TOKEN);
8
7
  const boltApp = new App({
@@ -11,7 +10,99 @@ const boltApp = new App({
11
10
  socketMode: true,
12
11
  appToken: process.env.SLACK_APP_TOKEN,
13
12
  });
14
- // Listener: when user replies in DM
13
+ // --- Helpers ---
14
+ function resolvePending(channelId, answer) {
15
+ const pending = pendingQuestions.get(channelId);
16
+ if (!pending)
17
+ return false;
18
+ console.error("[Bolt] Resolving pending question for channel:", channelId, "with:", answer);
19
+ pending.resolve(answer);
20
+ pendingQuestions.delete(channelId);
21
+ return true;
22
+ }
23
+ function formatSelected(labels) {
24
+ return `Selected: ${labels.join(", ")}`;
25
+ }
26
+ function tryParseNumberedReply(text, options) {
27
+ const trimmed = text.trim();
28
+ const parts = trimmed.split(/[\s,]+/);
29
+ const numbers = parts.map((s) => parseInt(s, 10));
30
+ if (parts.length === 0)
31
+ return null;
32
+ if (numbers.some((n) => isNaN(n)))
33
+ return null;
34
+ if (numbers.some((n) => n < 1 || n > options.length))
35
+ return null;
36
+ const selectedLabels = numbers.map((n) => options[n - 1].label);
37
+ return formatSelected(selectedLabels);
38
+ }
39
+ // --- Block Kit message builder ---
40
+ function buildOptionsBlocks(questionText, options, multiSelect) {
41
+ const blocks = [];
42
+ // Question text
43
+ blocks.push({
44
+ type: "section",
45
+ text: { type: "mrkdwn", text: questionText },
46
+ });
47
+ // Numbered list for reference + text reply fallback
48
+ const numberedList = options
49
+ .map((o, i) => `${i + 1}. ${o.label}${o.description ? ` — _${o.description}_` : ""}`)
50
+ .join("\n");
51
+ blocks.push({
52
+ type: "section",
53
+ text: { type: "mrkdwn", text: numberedList },
54
+ });
55
+ if (multiSelect) {
56
+ // Checkboxes + Submit button
57
+ blocks.push({
58
+ type: "actions",
59
+ block_id: "ask_slack_options",
60
+ elements: [
61
+ {
62
+ type: "checkboxes",
63
+ action_id: "ask_slack_checkboxes",
64
+ options: options.map((o) => ({
65
+ text: {
66
+ type: "mrkdwn",
67
+ text: `*${o.label}*${o.description ? `\n${o.description}` : ""}`,
68
+ },
69
+ value: o.label,
70
+ })),
71
+ },
72
+ {
73
+ type: "button",
74
+ action_id: "ask_slack_submit",
75
+ text: { type: "plain_text", text: "✅ Submit" },
76
+ style: "primary",
77
+ },
78
+ ],
79
+ });
80
+ }
81
+ else {
82
+ // Individual buttons for single select
83
+ blocks.push({
84
+ type: "actions",
85
+ block_id: "ask_slack_options",
86
+ elements: options.map((o, i) => ({
87
+ type: "button",
88
+ action_id: `ask_slack_btn_${i}`,
89
+ text: { type: "plain_text", text: o.label },
90
+ value: o.label,
91
+ })),
92
+ });
93
+ }
94
+ // Help text
95
+ const helpText = multiSelect
96
+ ? '_You can also reply with option numbers, e.g. "1, 3"_'
97
+ : '_You can also reply with the option number, e.g. "1"_';
98
+ blocks.push({
99
+ type: "context",
100
+ elements: [{ type: "mrkdwn", text: helpText }],
101
+ });
102
+ return blocks;
103
+ }
104
+ // --- Bolt listeners ---
105
+ // Text reply in DM
15
106
  boltApp.message(async ({ message }) => {
16
107
  const msg = message;
17
108
  console.error("[Bolt] Received message:", {
@@ -22,28 +113,67 @@ boltApp.message(async ({ message }) => {
22
113
  text: msg.text,
23
114
  pendingKeys: [...pendingQuestions.keys()],
24
115
  });
25
- // Ignore bot messages (including own)
26
116
  if (msg.bot_id || msg.subtype === "bot_message") {
27
117
  console.error("[Bolt] Ignoring bot message, skipping.");
28
118
  return;
29
119
  }
30
- // Ignore other subtypes (e.g. message_changed)
31
120
  if (msg.subtype !== undefined) {
32
121
  console.error("[Bolt] Ignoring message subtype:", msg.subtype);
33
122
  return;
34
123
  }
35
- const resolver = pendingQuestions.get(msg.channel);
36
- if (resolver && msg.text) {
37
- console.error("[Bolt] Resolver found for channel:", msg.channel, "— resolving with answer.");
38
- resolver(msg.text);
39
- pendingQuestions.delete(msg.channel);
40
- }
41
- else {
124
+ const pending = pendingQuestions.get(msg.channel);
125
+ if (!pending || !msg.text) {
42
126
  console.error("[Bolt] No pending question for channel:", msg.channel);
127
+ return;
128
+ }
129
+ let answer = msg.text;
130
+ // If options exist, try to parse numbered reply (e.g. "1, 3")
131
+ if (pending.options && pending.options.length > 0) {
132
+ const parsed = tryParseNumberedReply(msg.text, pending.options);
133
+ if (parsed) {
134
+ answer = parsed;
135
+ }
136
+ // Otherwise pass through as freeform text
137
+ }
138
+ resolvePending(msg.channel, answer);
139
+ });
140
+ // Single-select button click
141
+ boltApp.action(/^ask_slack_btn_\d+$/, async ({ body, ack }) => {
142
+ await ack();
143
+ const blockBody = body;
144
+ const channelId = blockBody.channel?.id;
145
+ if (!channelId)
146
+ return;
147
+ const action = blockBody.actions[0];
148
+ const selectedLabel = action.type === "button" ? action.value : "";
149
+ if (selectedLabel) {
150
+ console.error("[Bolt] Button clicked:", selectedLabel, "in channel:", channelId);
151
+ resolvePending(channelId, formatSelected([selectedLabel]));
43
152
  }
44
153
  });
154
+ // Checkbox toggle — just acknowledge, wait for Submit
155
+ boltApp.action("ask_slack_checkboxes", async ({ ack }) => {
156
+ await ack();
157
+ });
158
+ // Submit button for multi-select checkboxes
159
+ boltApp.action("ask_slack_submit", async ({ body, ack }) => {
160
+ await ack();
161
+ const blockBody = body;
162
+ const channelId = blockBody.channel?.id;
163
+ if (!channelId)
164
+ return;
165
+ const stateValues = blockBody.state?.values;
166
+ const checkboxState = stateValues?.["ask_slack_options"]?.["ask_slack_checkboxes"];
167
+ const selectedLabels = checkboxState?.selected_options?.map((opt) => opt.value) ?? [];
168
+ if (selectedLabels.length === 0) {
169
+ console.error("[Bolt] Submit clicked but no options selected");
170
+ return;
171
+ }
172
+ console.error("[Bolt] Submit — selected:", selectedLabels, "in channel:", channelId);
173
+ resolvePending(channelId, formatSelected(selectedLabels));
174
+ });
175
+ // --- Exported functions ---
45
176
  export async function startBoltApp() {
46
- // Wait for stale Slack connections to expire (prevents event splitting)
47
177
  console.error(`[Bolt] Waiting ${STARTUP_DELAY_MS / 1000}s for stale connections to expire...`);
48
178
  await new Promise((r) => setTimeout(r, STARTUP_DELAY_MS));
49
179
  await boltApp.start();
@@ -53,7 +183,7 @@ export async function stopBoltApp() {
53
183
  await boltApp.stop();
54
184
  console.error("[Bolt] Socket Mode app stopped.");
55
185
  }
56
- export async function sendQuestionAndWait(question, slackUserId) {
186
+ export async function sendQuestionAndWait(question, slackUserId, options, multiSelect) {
57
187
  const userId = slackUserId ?? process.env.SLACK_USER_ID;
58
188
  if (!userId) {
59
189
  throw new Error("Missing slack_user_id parameter and SLACK_USER_ID environment variable");
@@ -61,13 +191,26 @@ export async function sendQuestionAndWait(question, slackUserId) {
61
191
  // Open DM channel with user
62
192
  const dmResult = await web.conversations.open({ users: userId });
63
193
  const channelId = dmResult.channel.id;
64
- // Send message
65
- await web.chat.postMessage({
66
- channel: channelId,
67
- text: question,
68
- mrkdwn: true,
69
- });
70
- // Wait for response (Promise with timeout)
194
+ // Build and send message
195
+ const hasOptions = options && options.length > 0;
196
+ if (hasOptions) {
197
+ const blocks = buildOptionsBlocks(question, options, multiSelect ?? false);
198
+ await web.chat.postMessage({
199
+ channel: channelId,
200
+ text: question, // fallback for notifications
201
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
202
+ blocks: blocks,
203
+ mrkdwn: true,
204
+ });
205
+ }
206
+ else {
207
+ await web.chat.postMessage({
208
+ channel: channelId,
209
+ text: question,
210
+ mrkdwn: true,
211
+ });
212
+ }
213
+ // Wait for response (text reply or interactive action)
71
214
  console.error(`[Slack] Waiting for reply in channel ${channelId} (timeout: ${TIMEOUT_MS / 1000}s)`);
72
215
  return new Promise((resolve, reject) => {
73
216
  const timer = setTimeout(() => {
@@ -75,9 +218,13 @@ export async function sendQuestionAndWait(question, slackUserId) {
75
218
  pendingQuestions.delete(channelId);
76
219
  reject(new Error("Timeout — user did not respond within 5 minutes"));
77
220
  }, TIMEOUT_MS);
78
- pendingQuestions.set(channelId, (answer) => {
79
- clearTimeout(timer);
80
- resolve(answer);
221
+ pendingQuestions.set(channelId, {
222
+ resolve: (answer) => {
223
+ clearTimeout(timer);
224
+ resolve(answer);
225
+ },
226
+ options: hasOptions ? options : undefined,
227
+ multiSelect,
81
228
  });
82
229
  });
83
230
  }
package/dist/slack.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ask-slack-mcp-server",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "HTTP API server for ask-slack-mcp — Slack bridge for human-in-the-loop",
5
5
  "type": "module",
6
6
  "main": "dist/server.js",