@clappstore/connect 0.7.14 → 0.7.16

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.
@@ -0,0 +1,489 @@
1
+ import { existsSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { homedir } from "node:os";
4
+ import { exec } from "node:child_process";
5
+ import { promisify } from "node:util";
6
+ const execAsync = promisify(exec);
7
+ export class SlackHandler {
8
+ stateDir;
9
+ store;
10
+ configPath;
11
+ constructor(options) {
12
+ this.stateDir = options.stateDir;
13
+ this.store = options.store;
14
+ this.configPath = resolve(homedir(), ".openclaw", "openclaw.json");
15
+ }
16
+ handleIntent = (intent) => {
17
+ if (!intent.intent.startsWith("slack."))
18
+ return false;
19
+ switch (intent.intent) {
20
+ case "slack.init":
21
+ this.init();
22
+ return true;
23
+ case "slack.addAccount":
24
+ this.addAccount();
25
+ return true;
26
+ case "slack.editAccount":
27
+ this.editAccount(intent.payload.accountId);
28
+ return true;
29
+ case "slack.cancelEdit":
30
+ this.cancelEdit();
31
+ return true;
32
+ case "slack.saveAccount":
33
+ this.saveAccount(intent.payload);
34
+ return true;
35
+ case "slack.deleteAccount":
36
+ this.deleteAccount(intent.payload.accountId);
37
+ return true;
38
+ case "slack.testAccount":
39
+ this.testAccount(intent.payload.accountId);
40
+ return true;
41
+ case "slack.setDmPolicy":
42
+ this.setDmPolicy(intent.payload.policy);
43
+ return true;
44
+ case "slack.setGroupPolicy":
45
+ this.setGroupPolicy(intent.payload.policy);
46
+ return true;
47
+ case "slack.saveChannel":
48
+ this.saveChannel(intent.payload);
49
+ return true;
50
+ case "slack.removeChannel":
51
+ this.removeChannel(intent.payload.channelId);
52
+ return true;
53
+ case "slack.setReplyMode":
54
+ this.setReplyMode(intent.payload.mode);
55
+ return true;
56
+ case "slack.setStreaming":
57
+ this.setStreaming(intent.payload.mode);
58
+ return true;
59
+ case "slack.toggleAction":
60
+ this.toggleAction(intent.payload.group, intent.payload.enabled);
61
+ return true;
62
+ case "slack.setSlashCommand":
63
+ this.setSlashCommand(intent.payload);
64
+ return true;
65
+ case "slack.approvePairing":
66
+ this.approvePairing(intent.payload.code);
67
+ return true;
68
+ case "slack.rejectPairing":
69
+ this.rejectPairing(intent.payload.code);
70
+ return true;
71
+ case "slack.refreshStatus":
72
+ this.refreshStatus();
73
+ return true;
74
+ default:
75
+ return false;
76
+ }
77
+ };
78
+ init() {
79
+ this.refreshState();
80
+ }
81
+ async refreshState() {
82
+ try {
83
+ const config = this.loadConfig();
84
+ const slackConfig = config.channels?.slack || {};
85
+ const accounts = [];
86
+ // Load default account
87
+ if (slackConfig.botToken) {
88
+ accounts.push({
89
+ id: "default",
90
+ mode: slackConfig.mode || "socket",
91
+ enabled: slackConfig.enabled !== false,
92
+ botToken: this.maskToken(slackConfig.botToken),
93
+ appToken: slackConfig.appToken ? this.maskToken(slackConfig.appToken) : undefined,
94
+ signingSecret: slackConfig.signingSecret ? this.maskToken(slackConfig.signingSecret) : undefined,
95
+ webhookPath: slackConfig.webhookPath,
96
+ });
97
+ }
98
+ // Load named accounts
99
+ if (slackConfig.accounts) {
100
+ for (const [id, acc] of Object.entries(slackConfig.accounts)) {
101
+ if (typeof acc === "object" && acc !== null) {
102
+ accounts.push({
103
+ id,
104
+ mode: acc.mode || "socket",
105
+ enabled: acc.enabled !== false,
106
+ botToken: this.maskToken(acc.botToken),
107
+ appToken: acc.appToken ? this.maskToken(acc.appToken) : undefined,
108
+ signingSecret: acc.signingSecret ? this.maskToken(acc.signingSecret) : undefined,
109
+ webhookPath: acc.webhookPath,
110
+ });
111
+ }
112
+ }
113
+ }
114
+ const channels = [];
115
+ if (slackConfig.channels) {
116
+ for (const [id, ch] of Object.entries(slackConfig.channels)) {
117
+ if (typeof ch === "object" && ch !== null) {
118
+ channels.push({
119
+ id,
120
+ name: ch.name,
121
+ requireMention: ch.requireMention,
122
+ users: ch.users,
123
+ skills: ch.skills,
124
+ });
125
+ }
126
+ }
127
+ }
128
+ const state = {
129
+ accounts,
130
+ dmPolicy: slackConfig.dmPolicy || "pairing",
131
+ groupPolicy: slackConfig.groupPolicy || "allowlist",
132
+ channels,
133
+ streaming: slackConfig.streaming || "partial",
134
+ replyToMode: slackConfig.replyToMode || "off",
135
+ actions: slackConfig.actions || {},
136
+ slashCommand: slackConfig.slashCommand || { enabled: false, name: "openclaw" },
137
+ status: { connected: false, accounts: [] },
138
+ pairings: [],
139
+ loading: false,
140
+ showAccountEditor: false,
141
+ editingAccount: null,
142
+ saving: false,
143
+ saveError: undefined,
144
+ };
145
+ // Try to get status
146
+ try {
147
+ const statusResult = await execAsync("openclaw channels status --json", { timeout: 5000 });
148
+ const statusData = JSON.parse(statusResult.stdout);
149
+ if (statusData.slack) {
150
+ state.status = statusData.slack;
151
+ }
152
+ }
153
+ catch {
154
+ // Ignore status errors
155
+ }
156
+ // Try to get pairings
157
+ try {
158
+ const pairingsResult = await execAsync("openclaw pairing list slack --json", { timeout: 5000 });
159
+ const pairingsData = JSON.parse(pairingsResult.stdout);
160
+ state.pairings = pairingsData.pending || [];
161
+ }
162
+ catch {
163
+ // Ignore pairing errors
164
+ }
165
+ this.pushState(state);
166
+ }
167
+ catch (err) {
168
+ this.pushError(err.message);
169
+ }
170
+ }
171
+ addAccount() {
172
+ const state = this.getCurrentState();
173
+ state.showAccountEditor = true;
174
+ state.editingAccount = null;
175
+ state.saving = false;
176
+ state.saveError = undefined;
177
+ this.pushState(state);
178
+ }
179
+ editAccount(accountId) {
180
+ const state = this.getCurrentState();
181
+ const account = state.accounts.find((a) => a.id === accountId);
182
+ state.showAccountEditor = true;
183
+ state.editingAccount = account || null;
184
+ state.saving = false;
185
+ state.saveError = undefined;
186
+ this.pushState(state);
187
+ }
188
+ cancelEdit() {
189
+ const state = this.getCurrentState();
190
+ state.showAccountEditor = false;
191
+ state.editingAccount = null;
192
+ state.saving = false;
193
+ state.saveError = undefined;
194
+ this.pushState(state);
195
+ }
196
+ async saveAccount(payload) {
197
+ // Set saving state
198
+ const state = this.getCurrentState();
199
+ state.saving = true;
200
+ state.saveError = undefined;
201
+ this.pushState(state);
202
+ try {
203
+ const accountId = payload.accountId;
204
+ const mode = payload.mode;
205
+ const botToken = payload.botToken;
206
+ const appToken = payload.appToken;
207
+ const signingSecret = payload.signingSecret;
208
+ const webhookPath = payload.webhookPath;
209
+ // Validate token format
210
+ if (!botToken.startsWith("xoxb-")) {
211
+ throw new Error("Bot token must start with xoxb-");
212
+ }
213
+ if (mode === "socket" && appToken && !appToken.startsWith("xapp-")) {
214
+ throw new Error("App token must start with xapp-");
215
+ }
216
+ // Test Slack connection
217
+ await this.testSlackConnection(botToken);
218
+ const configUpdates = [];
219
+ if (accountId === "default") {
220
+ configUpdates.push(`channels.slack.enabled=true`);
221
+ configUpdates.push(`channels.slack.mode=${mode}`);
222
+ configUpdates.push(`channels.slack.botToken=${botToken}`);
223
+ if (appToken)
224
+ configUpdates.push(`channels.slack.appToken=${appToken}`);
225
+ if (signingSecret)
226
+ configUpdates.push(`channels.slack.signingSecret=${signingSecret}`);
227
+ if (webhookPath)
228
+ configUpdates.push(`channels.slack.webhookPath=${webhookPath}`);
229
+ }
230
+ else {
231
+ configUpdates.push(`channels.slack.accounts.${accountId}.enabled=true`);
232
+ configUpdates.push(`channels.slack.accounts.${accountId}.mode=${mode}`);
233
+ configUpdates.push(`channels.slack.accounts.${accountId}.botToken=${botToken}`);
234
+ if (appToken)
235
+ configUpdates.push(`channels.slack.accounts.${accountId}.appToken=${appToken}`);
236
+ if (signingSecret)
237
+ configUpdates.push(`channels.slack.accounts.${accountId}.signingSecret=${signingSecret}`);
238
+ if (webhookPath)
239
+ configUpdates.push(`channels.slack.accounts.${accountId}.webhookPath=${webhookPath}`);
240
+ }
241
+ // Apply config changes
242
+ for (const update of configUpdates) {
243
+ await execAsync(`openclaw config set ${update}`);
244
+ }
245
+ // Wait for gateway to restart and connect
246
+ console.log("[slack] Waiting for Slack connection...");
247
+ await this.waitForConnection(10000); // 10 second timeout
248
+ // Success - close editor and refresh
249
+ const successState = this.getCurrentState();
250
+ successState.saving = false;
251
+ successState.showAccountEditor = false;
252
+ successState.editingAccount = null;
253
+ successState.saveError = undefined;
254
+ this.pushState(successState);
255
+ setTimeout(() => this.refreshState(), 500);
256
+ }
257
+ catch (err) {
258
+ // Error - keep editor open and show error
259
+ const errorState = this.getCurrentState();
260
+ errorState.saving = false;
261
+ errorState.saveError = err.message;
262
+ this.pushState(errorState);
263
+ }
264
+ }
265
+ async testSlackConnection(botToken) {
266
+ try {
267
+ // Use Slack's auth.test API to validate token
268
+ const https = await import("node:https");
269
+ return new Promise((resolve, reject) => {
270
+ const req = https.request({
271
+ hostname: "slack.com",
272
+ path: "/api/auth.test",
273
+ method: "POST",
274
+ headers: {
275
+ "Authorization": `Bearer ${botToken}`,
276
+ "Content-Type": "application/json",
277
+ },
278
+ }, (res) => {
279
+ let data = "";
280
+ res.on("data", (chunk) => (data += chunk));
281
+ res.on("end", () => {
282
+ try {
283
+ const result = JSON.parse(data);
284
+ if (result.ok) {
285
+ console.log(`[slack] Token validated: ${result.team} (${result.user})`);
286
+ resolve();
287
+ }
288
+ else {
289
+ reject(new Error(`Slack API error: ${result.error || "Unknown error"}`));
290
+ }
291
+ }
292
+ catch (err) {
293
+ reject(new Error("Failed to parse Slack API response"));
294
+ }
295
+ });
296
+ });
297
+ req.on("error", (err) => reject(new Error(`Connection failed: ${err.message}`)));
298
+ req.end();
299
+ });
300
+ }
301
+ catch (err) {
302
+ throw new Error(`Token validation failed: ${err.message}`);
303
+ }
304
+ }
305
+ async waitForConnection(timeoutMs) {
306
+ const startTime = Date.now();
307
+ while (Date.now() - startTime < timeoutMs) {
308
+ try {
309
+ const result = await execAsync("openclaw channels status --json", { timeout: 2000 });
310
+ const status = JSON.parse(result.stdout);
311
+ if (status.slack && status.slack.connected) {
312
+ console.log("[slack] Connection established");
313
+ return;
314
+ }
315
+ }
316
+ catch {
317
+ // Ignore errors during polling
318
+ }
319
+ await new Promise((resolve) => setTimeout(resolve, 1000));
320
+ }
321
+ console.warn("[slack] Connection timeout - config saved but connection not confirmed");
322
+ }
323
+ deleteAccount(accountId) {
324
+ try {
325
+ if (accountId === "default") {
326
+ execAsync("openclaw config delete channels.slack.botToken").catch(console.error);
327
+ execAsync("openclaw config delete channels.slack.appToken").catch(console.error);
328
+ execAsync("openclaw config delete channels.slack.signingSecret").catch(console.error);
329
+ }
330
+ else {
331
+ execAsync(`openclaw config delete channels.slack.accounts.${accountId}`).catch(console.error);
332
+ }
333
+ setTimeout(() => this.refreshState(), 500);
334
+ }
335
+ catch (err) {
336
+ this.pushError(err.message);
337
+ }
338
+ }
339
+ testAccount(accountId) {
340
+ // TODO: Implement Slack API test call
341
+ console.log(`[slack] Testing account: ${accountId}`);
342
+ }
343
+ setDmPolicy(policy) {
344
+ execAsync(`openclaw config set channels.slack.dmPolicy=${policy}`)
345
+ .then(() => setTimeout(() => this.refreshState(), 500))
346
+ .catch((err) => this.pushError(err.message));
347
+ }
348
+ setGroupPolicy(policy) {
349
+ execAsync(`openclaw config set channels.slack.groupPolicy=${policy}`)
350
+ .then(() => setTimeout(() => this.refreshState(), 500))
351
+ .catch((err) => this.pushError(err.message));
352
+ }
353
+ saveChannel(payload) {
354
+ try {
355
+ const channelId = payload.channelId;
356
+ const configUpdates = [];
357
+ if (payload.requireMention !== undefined) {
358
+ configUpdates.push(`channels.slack.channels.${channelId}.requireMention=${payload.requireMention}`);
359
+ }
360
+ if (Array.isArray(payload.users)) {
361
+ configUpdates.push(`channels.slack.channels.${channelId}.users=${JSON.stringify(payload.users)}`);
362
+ }
363
+ if (Array.isArray(payload.skills)) {
364
+ configUpdates.push(`channels.slack.channels.${channelId}.skills=${JSON.stringify(payload.skills)}`);
365
+ }
366
+ for (const update of configUpdates) {
367
+ execAsync(`openclaw config set ${update}`).catch(console.error);
368
+ }
369
+ setTimeout(() => this.refreshState(), 500);
370
+ }
371
+ catch (err) {
372
+ this.pushError(err.message);
373
+ }
374
+ }
375
+ removeChannel(channelId) {
376
+ execAsync(`openclaw config delete channels.slack.channels.${channelId}`)
377
+ .then(() => setTimeout(() => this.refreshState(), 500))
378
+ .catch((err) => this.pushError(err.message));
379
+ }
380
+ setReplyMode(mode) {
381
+ execAsync(`openclaw config set channels.slack.replyToMode=${mode}`)
382
+ .then(() => setTimeout(() => this.refreshState(), 500))
383
+ .catch((err) => this.pushError(err.message));
384
+ }
385
+ setStreaming(mode) {
386
+ execAsync(`openclaw config set channels.slack.streaming=${mode}`)
387
+ .then(() => setTimeout(() => this.refreshState(), 500))
388
+ .catch((err) => this.pushError(err.message));
389
+ }
390
+ toggleAction(group, enabled) {
391
+ execAsync(`openclaw config set channels.slack.actions.${group}=${enabled}`)
392
+ .then(() => setTimeout(() => this.refreshState(), 500))
393
+ .catch((err) => this.pushError(err.message));
394
+ }
395
+ setSlashCommand(payload) {
396
+ const enabled = payload.enabled;
397
+ const name = payload.name;
398
+ const updates = [];
399
+ updates.push(`channels.slack.slashCommand.enabled=${enabled}`);
400
+ if (name)
401
+ updates.push(`channels.slack.slashCommand.name=${name}`);
402
+ for (const update of updates) {
403
+ execAsync(`openclaw config set ${update}`).catch(console.error);
404
+ }
405
+ setTimeout(() => this.refreshState(), 500);
406
+ }
407
+ approvePairing(code) {
408
+ execAsync(`openclaw pairing approve slack ${code}`)
409
+ .then(() => setTimeout(() => this.refreshState(), 500))
410
+ .catch((err) => this.pushError(err.message));
411
+ }
412
+ rejectPairing(code) {
413
+ execAsync(`openclaw pairing reject slack ${code}`)
414
+ .then(() => setTimeout(() => this.refreshState(), 500))
415
+ .catch((err) => this.pushError(err.message));
416
+ }
417
+ refreshStatus() {
418
+ this.refreshState();
419
+ }
420
+ loadConfig() {
421
+ if (!existsSync(this.configPath))
422
+ return {};
423
+ try {
424
+ return JSON.parse(readFileSync(this.configPath, "utf-8"));
425
+ }
426
+ catch {
427
+ return {};
428
+ }
429
+ }
430
+ maskToken(token) {
431
+ if (!token)
432
+ return "";
433
+ if (token.length <= 8)
434
+ return "***";
435
+ return token.slice(0, 4) + "***" + token.slice(-4);
436
+ }
437
+ pushState(slackState) {
438
+ const state = {
439
+ version: Date.now(),
440
+ timestamp: new Date().toISOString(),
441
+ state: {
442
+ slack: slackState,
443
+ },
444
+ };
445
+ const statePath = resolve(this.stateDir, "slack.json");
446
+ writeFileSync(statePath, JSON.stringify(state, null, 2), "utf-8");
447
+ this.store.setState("slack", state);
448
+ }
449
+ pushError(error) {
450
+ console.error(`[slack] ${error}`);
451
+ const state = this.getCurrentState();
452
+ state.error = error;
453
+ state.loading = false;
454
+ this.pushState(state);
455
+ }
456
+ getCurrentState() {
457
+ const statePath = resolve(this.stateDir, "slack.json");
458
+ if (existsSync(statePath)) {
459
+ try {
460
+ const parsed = JSON.parse(readFileSync(statePath, "utf-8"));
461
+ return parsed.state?.slack || this.getDefaultState();
462
+ }
463
+ catch {
464
+ return this.getDefaultState();
465
+ }
466
+ }
467
+ return this.getDefaultState();
468
+ }
469
+ getDefaultState() {
470
+ return {
471
+ accounts: [],
472
+ dmPolicy: "pairing",
473
+ groupPolicy: "allowlist",
474
+ channels: [],
475
+ streaming: "partial",
476
+ replyToMode: "off",
477
+ actions: {},
478
+ slashCommand: { enabled: false, name: "openclaw" },
479
+ status: { connected: false, accounts: [] },
480
+ pairings: [],
481
+ loading: false,
482
+ showAccountEditor: false,
483
+ editingAccount: null,
484
+ saving: false,
485
+ saveError: undefined,
486
+ };
487
+ }
488
+ }
489
+ //# sourceMappingURL=slack-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack-handler.js","sourceRoot":"","sources":["../src/slack-handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clappstore/connect",
3
- "version": "0.7.14",
3
+ "version": "0.7.16",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "clapps-connect": "./dist/index.js"