@buzzie-ai/slack-claude 0.1.0 → 0.2.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/README.md +1 -0
- package/dist/bot.d.ts +7 -2
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +73 -23
- package/dist/bot.js.map +1 -1
- package/dist/cli.js +8 -15
- package/dist/cli.js.map +1 -1
- package/dist/logger.d.ts +31 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +90 -0
- package/dist/logger.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -130,6 +130,7 @@ await bot.stop();
|
|
|
130
130
|
- **Sessions live in memory.** Restarting the process resets all conversations.
|
|
131
131
|
- **Slack message size cap is 40 000 chars.** Very long Claude replies will be truncated by Slack; chunking isn't done yet.
|
|
132
132
|
- **No streaming yet.** Replies post once Claude finishes the turn. (Open issue: stream-and-edit mode.)
|
|
133
|
+
- **Logging.** Default level is `info`: incoming Slack messages, Claude tool calls, outbound posts, lifecycle events. Run with `--log-level debug` to also see filtered-out events, reaction state, and Bolt internals. `--log-level silent` for cron jobs.
|
|
133
134
|
- **The `claude` CLI must already be logged in.** This bridge does not handle auth.
|
|
134
135
|
|
|
135
136
|
## License
|
package/dist/bot.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { LogLevel } from '@slack/bolt';
|
|
2
1
|
import { type ClaudeSessionOptions } from '@buzzie-ai/claude-inject';
|
|
2
|
+
import { type LogLevel } from './logger';
|
|
3
3
|
export interface SlackClaudeBotOptions {
|
|
4
4
|
/** Slack app-level token (xapp-...). Required for Socket Mode. */
|
|
5
5
|
appToken: string;
|
|
@@ -15,7 +15,11 @@ export interface SlackClaudeBotOptions {
|
|
|
15
15
|
cwd?: string;
|
|
16
16
|
/** Override the system prompt. Convenience for the CLI. */
|
|
17
17
|
systemPrompt?: string;
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Console log level for this bot (`debug` | `info` | `warn` | `error` | `silent`).
|
|
20
|
+
* Defaults to `info`. Bolt's internal logger is kept at WARN regardless to avoid
|
|
21
|
+
* noise; flip to `debug` to see Bolt internals as well.
|
|
22
|
+
*/
|
|
19
23
|
logLevel?: LogLevel;
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
@@ -28,6 +32,7 @@ export declare class SlackClaudeBot {
|
|
|
28
32
|
private readonly app;
|
|
29
33
|
private readonly opts;
|
|
30
34
|
private readonly sessions;
|
|
35
|
+
private readonly log;
|
|
31
36
|
private botUserId;
|
|
32
37
|
private started;
|
|
33
38
|
constructor(opts: SlackClaudeBotOptions);
|
package/dist/bot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bot.d.ts","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACpF,OAAO,EAAU,KAAK,QAAQ,EAAwB,MAAM,UAAU,CAAC;AAIvE,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAOD;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,qBAAqB;IAkBvC,mFAAmF;IAC7E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,4DAA4D;IACtD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B,OAAO,CAAC,gBAAgB;YA8EV,cAAc;IAmG5B,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,SAAS;IAIjB,kFAAkF;IAClF,OAAO,CAAC,SAAS;YASH,YAAY;YAWZ,SAAS;CAexB"}
|
package/dist/bot.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SlackClaudeBot = void 0;
|
|
4
4
|
const bolt_1 = require("@slack/bolt");
|
|
5
5
|
const claude_inject_1 = require("@buzzie-ai/claude-inject");
|
|
6
|
+
const logger_1 = require("./logger");
|
|
6
7
|
const DEFAULT_SYSTEM_PROMPT = 'You are a helpful AI assistant talking to people through Slack. ' +
|
|
7
8
|
'Be concise and clear. Use Slack-flavoured markdown (bold with *one star*, italic with _underscore_, code with `backticks`, code blocks with ```). ' +
|
|
8
9
|
'Do not invent links or @-mentions.';
|
|
@@ -16,6 +17,7 @@ class SlackClaudeBot {
|
|
|
16
17
|
app;
|
|
17
18
|
opts;
|
|
18
19
|
sessions = new Map();
|
|
20
|
+
log;
|
|
19
21
|
botUserId = null;
|
|
20
22
|
started = false;
|
|
21
23
|
constructor(opts) {
|
|
@@ -24,11 +26,14 @@ class SlackClaudeBot {
|
|
|
24
26
|
if (!opts.botToken)
|
|
25
27
|
throw new Error('SlackClaudeBot: botToken is required (xoxb-...)');
|
|
26
28
|
this.opts = opts;
|
|
29
|
+
this.log = new logger_1.Logger(opts.logLevel ?? 'info');
|
|
27
30
|
this.app = new bolt_1.App({
|
|
28
31
|
token: opts.botToken,
|
|
29
32
|
appToken: opts.appToken,
|
|
30
33
|
socketMode: true,
|
|
31
|
-
|
|
34
|
+
// Bolt's INFO is chatty (every event ack, every reconnect). Keep it WARN
|
|
35
|
+
// unless the user asked for debug.
|
|
36
|
+
logLevel: opts.logLevel === 'debug' ? bolt_1.LogLevel.DEBUG : bolt_1.LogLevel.WARN,
|
|
32
37
|
});
|
|
33
38
|
this.registerHandlers();
|
|
34
39
|
}
|
|
@@ -36,22 +41,25 @@ class SlackClaudeBot {
|
|
|
36
41
|
async start() {
|
|
37
42
|
if (this.started)
|
|
38
43
|
return;
|
|
44
|
+
this.log.event('starting Bolt Socket Mode connection…');
|
|
39
45
|
await this.app.start();
|
|
40
46
|
// Resolve the bot's user ID so we can strip self-mentions and ignore our own posts.
|
|
41
47
|
const auth = await this.app.client.auth.test({ token: this.opts.botToken });
|
|
42
48
|
this.botUserId = auth.user_id ?? null;
|
|
43
49
|
this.started = true;
|
|
44
|
-
|
|
50
|
+
this.log.info(`⚡️ slack-claude online as @${auth.user ?? 'unknown'} (${this.botUserId ?? '?'}) in workspace ${auth.team ?? '?'} — listening`);
|
|
45
51
|
}
|
|
46
52
|
/** Disconnect from Slack and close every Claude session. */
|
|
47
53
|
async stop() {
|
|
48
|
-
|
|
54
|
+
this.log.event(`shutting down — closing ${this.sessions.size} Claude session(s)`);
|
|
55
|
+
const closing = Array.from(this.sessions.values()).map((s) => s.close().catch((err) => this.log.error('error closing Claude session', err)));
|
|
49
56
|
this.sessions.clear();
|
|
50
57
|
await Promise.all(closing);
|
|
51
58
|
if (this.started) {
|
|
52
59
|
await this.app.stop();
|
|
53
60
|
this.started = false;
|
|
54
61
|
}
|
|
62
|
+
this.log.event('shutdown complete');
|
|
55
63
|
}
|
|
56
64
|
// ─────────────────────────────────────────────────────────────────────────
|
|
57
65
|
// internals
|
|
@@ -67,11 +75,12 @@ class SlackClaudeBot {
|
|
|
67
75
|
text: event.text ?? '',
|
|
68
76
|
user: event.user,
|
|
69
77
|
channelType: 'channel',
|
|
78
|
+
source: 'mention',
|
|
70
79
|
client,
|
|
71
80
|
});
|
|
72
81
|
}
|
|
73
82
|
catch (err) {
|
|
74
|
-
|
|
83
|
+
this.log.error('app_mention handler crashed', err);
|
|
75
84
|
}
|
|
76
85
|
});
|
|
77
86
|
// Every message event: DMs, threads, channels.
|
|
@@ -79,22 +88,32 @@ class SlackClaudeBot {
|
|
|
79
88
|
this.app.message(async ({ message, client }) => {
|
|
80
89
|
try {
|
|
81
90
|
// Skip non-user messages (edits, joins, our own bot posts, etc.).
|
|
82
|
-
if (message.subtype !== undefined)
|
|
91
|
+
if (message.subtype !== undefined) {
|
|
92
|
+
this.log.debug(`skip message subtype=${message.subtype}`);
|
|
83
93
|
return;
|
|
94
|
+
}
|
|
84
95
|
const m = message;
|
|
85
|
-
if (m.bot_id)
|
|
96
|
+
if (m.bot_id) {
|
|
97
|
+
this.log.debug(`skip message from bot bot_id=${m.bot_id}`);
|
|
86
98
|
return;
|
|
87
|
-
|
|
99
|
+
}
|
|
100
|
+
if (this.botUserId && m.user === this.botUserId) {
|
|
101
|
+
this.log.debug('skip message from self');
|
|
88
102
|
return;
|
|
103
|
+
}
|
|
89
104
|
const isDm = m.channel_type === 'im';
|
|
90
105
|
const inExistingThread = m.thread_ts !== undefined && this.sessions.has(this.threadKey(m.channel, m.thread_ts, false));
|
|
91
106
|
const mentionsBot = this.botUserId !== undefined && this.botUserId !== null && (m.text ?? '').includes(`<@${this.botUserId}>`);
|
|
92
107
|
// Skip messages that app_mention will already handle.
|
|
93
|
-
if (mentionsBot)
|
|
108
|
+
if (mentionsBot) {
|
|
109
|
+
this.log.debug('skip message — will be handled by app_mention');
|
|
94
110
|
return;
|
|
111
|
+
}
|
|
95
112
|
// Outside DMs and existing threads, ignore.
|
|
96
|
-
if (!isDm && !inExistingThread)
|
|
113
|
+
if (!isDm && !inExistingThread) {
|
|
114
|
+
this.log.debug(`skip message — not a DM and no session for thread ${m.channel}:${m.thread_ts ?? '(none)'}`);
|
|
97
115
|
return;
|
|
116
|
+
}
|
|
98
117
|
await this.handleIncoming({
|
|
99
118
|
channel: m.channel,
|
|
100
119
|
ts: m.ts,
|
|
@@ -102,54 +121,62 @@ class SlackClaudeBot {
|
|
|
102
121
|
text: m.text ?? '',
|
|
103
122
|
user: m.user,
|
|
104
123
|
channelType: isDm ? 'im' : 'channel',
|
|
124
|
+
source: isDm ? 'dm' : 'thread',
|
|
105
125
|
client,
|
|
106
126
|
});
|
|
107
127
|
}
|
|
108
128
|
catch (err) {
|
|
109
|
-
|
|
129
|
+
this.log.error('message handler crashed', err);
|
|
110
130
|
}
|
|
111
131
|
});
|
|
112
132
|
this.app.error(async (err) => {
|
|
113
|
-
|
|
133
|
+
this.log.error('Bolt error', err);
|
|
114
134
|
});
|
|
115
135
|
}
|
|
116
136
|
async handleIncoming(args) {
|
|
117
|
-
const { channel, ts, threadTs, text, channelType, client } = args;
|
|
137
|
+
const { channel, ts, threadTs, text, user, channelType, source, client } = args;
|
|
118
138
|
const isDm = channelType === 'im';
|
|
119
139
|
const replyThreadTs = threadTs ?? (isDm ? undefined : ts);
|
|
120
140
|
const sessionKey = this.threadKey(channel, threadTs ?? ts, isDm && !threadTs);
|
|
121
141
|
const cleaned = this.cleanText(text);
|
|
122
142
|
if (!cleaned) {
|
|
123
|
-
|
|
143
|
+
this.log.debug(`empty message after mention strip — ignored (${sessionKey})`);
|
|
124
144
|
return;
|
|
125
145
|
}
|
|
146
|
+
this.log.inbound(`${source} ${user ?? '?'}@${channel} [${sessionKey}]: ${(0, logger_1.preview)(cleaned, 100)}`);
|
|
126
147
|
// 👀 reaction so the user knows we received it.
|
|
127
148
|
let reactionAdded = false;
|
|
128
149
|
try {
|
|
129
150
|
await client.reactions.add({ channel, timestamp: ts, name: 'eyes' });
|
|
130
151
|
reactionAdded = true;
|
|
152
|
+
this.log.debug(`reaction +eyes ${channel}:${ts}`);
|
|
131
153
|
}
|
|
132
|
-
catch {
|
|
133
|
-
|
|
134
|
-
// already reacted. Not worth failing the whole turn.
|
|
154
|
+
catch (err) {
|
|
155
|
+
this.log.debug(`reaction +eyes failed (continuing): ${err instanceof Error ? err.message : err}`);
|
|
135
156
|
}
|
|
136
157
|
let session = this.sessions.get(sessionKey);
|
|
137
158
|
let isNewSession = false;
|
|
138
159
|
if (!session) {
|
|
139
|
-
session = this.createSession();
|
|
160
|
+
session = this.createSession(sessionKey);
|
|
140
161
|
this.sessions.set(sessionKey, session);
|
|
141
162
|
isNewSession = true;
|
|
163
|
+
this.log.event(`session created [${sessionKey}] (active: ${this.sessions.size})`);
|
|
142
164
|
try {
|
|
143
165
|
await session.start();
|
|
144
166
|
}
|
|
145
167
|
catch (err) {
|
|
146
168
|
this.sessions.delete(sessionKey);
|
|
169
|
+
this.log.error(`failed to start Claude session [${sessionKey}]`, err);
|
|
147
170
|
await this.postError(client, channel, replyThreadTs, err);
|
|
148
171
|
if (reactionAdded)
|
|
149
172
|
await this.swapReaction(client, channel, ts, 'eyes', 'x');
|
|
150
173
|
return;
|
|
151
174
|
}
|
|
152
175
|
}
|
|
176
|
+
else {
|
|
177
|
+
this.log.debug(`reusing session [${sessionKey}]`);
|
|
178
|
+
}
|
|
179
|
+
const startedAt = Date.now();
|
|
153
180
|
let reply;
|
|
154
181
|
try {
|
|
155
182
|
reply = await session.send(cleaned);
|
|
@@ -160,12 +187,15 @@ class SlackClaudeBot {
|
|
|
160
187
|
if (isNewSession) {
|
|
161
188
|
this.sessions.delete(sessionKey);
|
|
162
189
|
await session.close().catch(() => { });
|
|
190
|
+
this.log.event(`session [${sessionKey}] dropped after first-send failure`);
|
|
163
191
|
}
|
|
192
|
+
this.log.error(`Claude send() failed [${sessionKey}]`, err);
|
|
164
193
|
await this.postError(client, channel, replyThreadTs, err);
|
|
165
194
|
if (reactionAdded)
|
|
166
195
|
await this.swapReaction(client, channel, ts, 'eyes', 'x');
|
|
167
196
|
return;
|
|
168
197
|
}
|
|
198
|
+
const elapsed = Date.now() - startedAt;
|
|
169
199
|
const text_out = reply.trim() || '_(Claude returned an empty response.)_';
|
|
170
200
|
try {
|
|
171
201
|
await client.chat.postMessage({
|
|
@@ -173,25 +203,46 @@ class SlackClaudeBot {
|
|
|
173
203
|
thread_ts: replyThreadTs,
|
|
174
204
|
text: text_out,
|
|
175
205
|
});
|
|
206
|
+
this.log.outbound(`posted to ${channel} (thread=${replyThreadTs ?? 'top-level'}) ${reply.length}ch in ${(0, logger_1.fmtDuration)(elapsed)}`);
|
|
176
207
|
}
|
|
177
208
|
catch (err) {
|
|
178
|
-
|
|
209
|
+
this.log.error(`chat.postMessage failed [${sessionKey}]`, err);
|
|
179
210
|
}
|
|
180
211
|
finally {
|
|
181
212
|
if (reactionAdded) {
|
|
182
213
|
await client.reactions
|
|
183
214
|
.remove({ channel, timestamp: ts, name: 'eyes' })
|
|
184
|
-
.catch(() => { });
|
|
215
|
+
.catch((err) => this.log.debug(`reaction -eyes failed: ${err instanceof Error ? err.message : err}`));
|
|
185
216
|
}
|
|
186
217
|
}
|
|
187
218
|
}
|
|
188
|
-
createSession() {
|
|
219
|
+
createSession(sessionKey) {
|
|
189
220
|
const co = this.opts.claudeOptions ?? {};
|
|
190
|
-
|
|
221
|
+
const session = new claude_inject_1.ClaudeSession({
|
|
191
222
|
cwd: this.opts.cwd ?? co.cwd ?? process.cwd(),
|
|
192
223
|
systemPrompt: this.opts.systemPrompt ?? co.systemPrompt ?? DEFAULT_SYSTEM_PROMPT,
|
|
193
224
|
...co,
|
|
194
225
|
});
|
|
226
|
+
// Surface what Claude is doing turn-by-turn.
|
|
227
|
+
session.on('tool_use', ({ name, input }) => {
|
|
228
|
+
const inputStr = (0, logger_1.preview)(JSON.stringify(input ?? {}), 120);
|
|
229
|
+
this.log.tool(`[${sessionKey}] ${name} ${inputStr}`);
|
|
230
|
+
});
|
|
231
|
+
session.on('tool_result', ({ isError }) => {
|
|
232
|
+
if (isError)
|
|
233
|
+
this.log.warn(`[${sessionKey}] tool returned error`);
|
|
234
|
+
});
|
|
235
|
+
session.on('result', ({ isError, sessionId }) => {
|
|
236
|
+
if (isError)
|
|
237
|
+
this.log.warn(`[${sessionKey}] turn finished with error (claude session ${sessionId})`);
|
|
238
|
+
else
|
|
239
|
+
this.log.debug(`[${sessionKey}] turn finished (claude session ${sessionId})`);
|
|
240
|
+
});
|
|
241
|
+
session.on('error', (err) => this.log.error(`[${sessionKey}] subprocess error`, err));
|
|
242
|
+
session.on('exit', ({ code }) => {
|
|
243
|
+
this.log.event(`[${sessionKey}] claude subprocess exited (code=${code})`);
|
|
244
|
+
});
|
|
245
|
+
return session;
|
|
195
246
|
}
|
|
196
247
|
threadKey(channel, anchor, isDmRoot) {
|
|
197
248
|
return isDmRoot ? `dm:${channel}` : `${channel}:${anchor}`;
|
|
@@ -211,14 +262,13 @@ class SlackClaudeBot {
|
|
|
211
262
|
}
|
|
212
263
|
async postError(client, channel, thread_ts, err) {
|
|
213
264
|
const msg = err instanceof Error ? err.message : String(err);
|
|
214
|
-
console.error('Claude turn failed:', err);
|
|
215
265
|
await client.chat
|
|
216
266
|
.postMessage({
|
|
217
267
|
channel,
|
|
218
268
|
thread_ts,
|
|
219
269
|
text: `:warning: Claude failed to respond: \`${msg}\``,
|
|
220
270
|
})
|
|
221
|
-
.catch((postErr) =>
|
|
271
|
+
.catch((postErr) => this.log.error('failed to post error message back to Slack', postErr));
|
|
222
272
|
}
|
|
223
273
|
}
|
|
224
274
|
exports.SlackClaudeBot = SlackClaudeBot;
|
package/dist/bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -36,7 +36,6 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
37
|
const fs = __importStar(require("node:fs"));
|
|
38
38
|
const path = __importStar(require("node:path"));
|
|
39
|
-
const bolt_1 = require("@slack/bolt");
|
|
40
39
|
const bot_1 = require("./bot");
|
|
41
40
|
/**
|
|
42
41
|
* Auto-load `.env` from the cwd before reading process.env.
|
|
@@ -105,7 +104,7 @@ Optional:
|
|
|
105
104
|
--dangerously-skip-permissions
|
|
106
105
|
Skip permission prompts in Claude Code
|
|
107
106
|
--tools <spec> "" (none), "default" (all), or "Bash,Edit,Read"
|
|
108
|
-
--log-level <level> debug | info | warn | error (default: info)
|
|
107
|
+
--log-level <level> debug | info | warn | error | silent (default: info)
|
|
109
108
|
-h, --help Show this help
|
|
110
109
|
-v, --version Show version
|
|
111
110
|
|
|
@@ -180,20 +179,14 @@ function parseArgs(argv) {
|
|
|
180
179
|
function resolveLogLevel(s) {
|
|
181
180
|
if (!s)
|
|
182
181
|
return undefined;
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
case 'info':
|
|
187
|
-
return bolt_1.LogLevel.INFO;
|
|
188
|
-
case 'warn':
|
|
189
|
-
case 'warning':
|
|
190
|
-
return bolt_1.LogLevel.WARN;
|
|
191
|
-
case 'error':
|
|
192
|
-
return bolt_1.LogLevel.ERROR;
|
|
193
|
-
default:
|
|
194
|
-
console.error(`Unknown log level: ${s}`);
|
|
195
|
-
process.exit(2);
|
|
182
|
+
const v = s.toLowerCase();
|
|
183
|
+
if (v === 'debug' || v === 'info' || v === 'warn' || v === 'error' || v === 'silent') {
|
|
184
|
+
return v;
|
|
196
185
|
}
|
|
186
|
+
if (v === 'warning')
|
|
187
|
+
return 'warn';
|
|
188
|
+
console.error(`Unknown log level: ${s}`);
|
|
189
|
+
process.exit(2);
|
|
197
190
|
}
|
|
198
191
|
async function main() {
|
|
199
192
|
loadEnvFileIfPresent();
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4CAA8B;AAC9B,gDAAkC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,4CAA8B;AAC9B,gDAAkC;AAElC,+BAAuC;AAGvC;;;;;;;;;GASG;AACH,SAAS,oBAAoB;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IACtF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO;IAEpC,MAAM,MAAM,GAAI,OAA6D,CAAC,WAAW,CAAC;IAC1F,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,GAAG,CAAC;YAAE,SAAS;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG;YAAE,SAAS;QACzC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,IACE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCZ,CAAC,IAAI,EAAE,CAAC;AAcT,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,GAAW,EAAE;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QACF,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,IAAI,CAAC;YACV,KAAK,QAAQ;gBACX,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC;YACV,KAAK,WAAW;gBACd,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,KAAK,aAAa;gBAChB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,aAAa;gBAChB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,OAAO;gBACV,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;gBACjB,MAAM;YACR,KAAK,iBAAiB;gBACpB,GAAG,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC;gBAC1B,MAAM;YACR,KAAK,SAAS;gBACZ,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,mBAAmB;gBACtB,GAAG,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC;gBAC5B,MAAM;YACR,KAAK,gCAAgC;gBACnC,GAAG,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACtC,MAAM;YACR,KAAK,SAAS;gBACZ,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,aAAa;gBAChB,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;gBACtB,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,eAAe,CAAC,CAAqB;IAC5C,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1B,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACrF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACnC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,oBAAoB,EAAE,CAAC;IAEvB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IACD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,+DAA+D;QAC/D,8DAA8D;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAEhE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;QAC5G,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,IAAI,MAAM,CAAC,KAAK;QAAE,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACrD,IAAI,MAAM,CAAC,cAAc;QAAE,aAAa,CAAC,cAAc,GAAG,MAAM,CAAC,cAAgC,CAAC;IAClG,IAAI,MAAM,CAAC,0BAA0B;QAAE,aAAa,CAAC,0BAA0B,GAAG,IAAI,CAAC;IACvF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,aAAa,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAEnE,MAAM,GAAG,GAAG,IAAI,oBAAc,CAAC;QAC7B,QAAQ;QACR,QAAQ;QACR,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,aAAa,EAAE,aAAoB;QACnC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC3C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,kBAAkB,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtD,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;AACnE,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiny structured logger for the bot.
|
|
3
|
+
*
|
|
4
|
+
* Why not pino/winston: this package has exactly two deps for a reason. The
|
|
5
|
+
* volume is low and the shape is fixed — a 30-line console wrapper is plenty.
|
|
6
|
+
*/
|
|
7
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
|
|
8
|
+
export declare class Logger {
|
|
9
|
+
private level;
|
|
10
|
+
constructor(level?: LogLevel);
|
|
11
|
+
setLevel(level: LogLevel): void;
|
|
12
|
+
private should;
|
|
13
|
+
private ts;
|
|
14
|
+
/** Inbound from Slack. */
|
|
15
|
+
inbound(msg: string): void;
|
|
16
|
+
/** Outbound to Slack. */
|
|
17
|
+
outbound(msg: string): void;
|
|
18
|
+
/** Tool call by Claude. */
|
|
19
|
+
tool(msg: string): void;
|
|
20
|
+
/** Internal lifecycle (sessions, startup, shutdown). */
|
|
21
|
+
event(msg: string): void;
|
|
22
|
+
debug(msg: string): void;
|
|
23
|
+
info(msg: string): void;
|
|
24
|
+
warn(msg: string): void;
|
|
25
|
+
error(msg: string, err?: unknown): void;
|
|
26
|
+
}
|
|
27
|
+
/** Truncate a string to `n` chars, suffixing with `…` if cut. Single-line. */
|
|
28
|
+
export declare function preview(s: string, n?: number): string;
|
|
29
|
+
/** Format a duration in ms as `1.23s` or `345ms`. */
|
|
30
|
+
export declare function fmtDuration(ms: number): string;
|
|
31
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAmBtE,qBAAa,MAAM;IACL,OAAO,CAAC,KAAK;gBAAL,KAAK,GAAE,QAAiB;IAE5C,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,EAAE;IAIV,0BAA0B;IAC1B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI1B,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI3B,2BAA2B;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,wDAAwD;IACxD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI;CAKxC;AAED,8EAA8E;AAC9E,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAK,GAAG,MAAM,CAGjD;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9C"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tiny structured logger for the bot.
|
|
4
|
+
*
|
|
5
|
+
* Why not pino/winston: this package has exactly two deps for a reason. The
|
|
6
|
+
* volume is low and the shape is fixed — a 30-line console wrapper is plenty.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.Logger = void 0;
|
|
10
|
+
exports.preview = preview;
|
|
11
|
+
exports.fmtDuration = fmtDuration;
|
|
12
|
+
const LEVELS = {
|
|
13
|
+
debug: 0,
|
|
14
|
+
info: 1,
|
|
15
|
+
warn: 2,
|
|
16
|
+
error: 3,
|
|
17
|
+
silent: 99,
|
|
18
|
+
};
|
|
19
|
+
const COLOR = process.stdout.isTTY && !process.env.NO_COLOR;
|
|
20
|
+
const c = (code, s) => (COLOR ? `\x1b[${code}m${s}\x1b[0m` : s);
|
|
21
|
+
const dim = (s) => c('2', s);
|
|
22
|
+
const cyan = (s) => c('36', s);
|
|
23
|
+
const green = (s) => c('32', s);
|
|
24
|
+
const yellow = (s) => c('33', s);
|
|
25
|
+
const red = (s) => c('31', s);
|
|
26
|
+
const magenta = (s) => c('35', s);
|
|
27
|
+
class Logger {
|
|
28
|
+
level;
|
|
29
|
+
constructor(level = 'info') {
|
|
30
|
+
this.level = level;
|
|
31
|
+
}
|
|
32
|
+
setLevel(level) {
|
|
33
|
+
this.level = level;
|
|
34
|
+
}
|
|
35
|
+
should(l) {
|
|
36
|
+
return LEVELS[l] >= LEVELS[this.level];
|
|
37
|
+
}
|
|
38
|
+
ts() {
|
|
39
|
+
return dim(new Date().toISOString().slice(11, 23));
|
|
40
|
+
}
|
|
41
|
+
/** Inbound from Slack. */
|
|
42
|
+
inbound(msg) {
|
|
43
|
+
if (this.should('info'))
|
|
44
|
+
console.log(`${this.ts()} ${cyan('←')} ${msg}`);
|
|
45
|
+
}
|
|
46
|
+
/** Outbound to Slack. */
|
|
47
|
+
outbound(msg) {
|
|
48
|
+
if (this.should('info'))
|
|
49
|
+
console.log(`${this.ts()} ${green('→')} ${msg}`);
|
|
50
|
+
}
|
|
51
|
+
/** Tool call by Claude. */
|
|
52
|
+
tool(msg) {
|
|
53
|
+
if (this.should('info'))
|
|
54
|
+
console.log(`${this.ts()} ${magenta('🔧')} ${msg}`);
|
|
55
|
+
}
|
|
56
|
+
/** Internal lifecycle (sessions, startup, shutdown). */
|
|
57
|
+
event(msg) {
|
|
58
|
+
if (this.should('info'))
|
|
59
|
+
console.log(`${this.ts()} ${dim('·')} ${msg}`);
|
|
60
|
+
}
|
|
61
|
+
debug(msg) {
|
|
62
|
+
if (this.should('debug'))
|
|
63
|
+
console.log(`${this.ts()} ${dim('debug')} ${dim(msg)}`);
|
|
64
|
+
}
|
|
65
|
+
info(msg) {
|
|
66
|
+
if (this.should('info'))
|
|
67
|
+
console.log(`${this.ts()} ${msg}`);
|
|
68
|
+
}
|
|
69
|
+
warn(msg) {
|
|
70
|
+
if (this.should('warn'))
|
|
71
|
+
console.warn(`${this.ts()} ${yellow('!')} ${msg}`);
|
|
72
|
+
}
|
|
73
|
+
error(msg, err) {
|
|
74
|
+
if (!this.should('error'))
|
|
75
|
+
return;
|
|
76
|
+
const detail = err instanceof Error ? err.stack ?? err.message : err !== undefined ? String(err) : '';
|
|
77
|
+
console.error(`${this.ts()} ${red('✖')} ${msg}${detail ? '\n' + detail : ''}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.Logger = Logger;
|
|
81
|
+
/** Truncate a string to `n` chars, suffixing with `…` if cut. Single-line. */
|
|
82
|
+
function preview(s, n = 80) {
|
|
83
|
+
const oneLine = s.replace(/\s+/g, ' ').trim();
|
|
84
|
+
return oneLine.length > n ? oneLine.slice(0, n - 1) + '…' : oneLine;
|
|
85
|
+
}
|
|
86
|
+
/** Format a duration in ms as `1.23s` or `345ms`. */
|
|
87
|
+
function fmtDuration(ms) {
|
|
88
|
+
return ms >= 1000 ? `${(ms / 1000).toFixed(2)}s` : `${ms}ms`;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buzzie-ai/slack-claude",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Slack bot that bridges a Slack workspace to Claude Code via Socket Mode and @buzzie-ai/claude-inject. Receives Slack messages, forwards them to a persistent Claude Code session per thread, and posts replies back.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|