choavis-agent 1.4.0 → 1.4.2
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/.env.example +3 -2
- package/README.md +120 -205
- package/dist/agent/adapters/claude.d.ts +13 -0
- package/dist/agent/adapters/claude.d.ts.map +1 -0
- package/dist/agent/adapters/claude.js +199 -0
- package/dist/agent/adapters/claude.js.map +1 -0
- package/dist/agent/protocol.d.ts +56 -0
- package/dist/agent/protocol.d.ts.map +1 -0
- package/dist/agent/protocol.js +9 -0
- package/dist/agent/protocol.js.map +1 -0
- package/dist/agent/queue.d.ts.map +1 -1
- package/dist/agent/queue.js +4 -2
- package/dist/agent/queue.js.map +1 -1
- package/dist/agent/runner.d.ts +8 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +13 -39
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/session.d.ts +27 -1
- package/dist/agent/session.d.ts.map +1 -1
- package/dist/agent/session.js +79 -3
- package/dist/agent/session.js.map +1 -1
- package/dist/agent/usage.d.ts +8 -5
- package/dist/agent/usage.d.ts.map +1 -1
- package/dist/agent/usage.js +21 -0
- package/dist/agent/usage.js.map +1 -1
- package/dist/approval/server.d.ts +11 -1
- package/dist/approval/server.d.ts.map +1 -1
- package/dist/approval/server.js +46 -4
- package/dist/approval/server.js.map +1 -1
- package/dist/approval/setup.d.ts +5 -0
- package/dist/approval/setup.d.ts.map +1 -1
- package/dist/approval/setup.js +31 -0
- package/dist/approval/setup.js.map +1 -1
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +18 -8
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/onboard.d.ts.map +1 -1
- package/dist/cli/onboard.js +299 -51
- package/dist/cli/onboard.js.map +1 -1
- package/dist/cli.js +10 -5
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -1
- package/dist/config.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/slack/commands/compact.js +2 -2
- package/dist/slack/commands/compact.js.map +1 -1
- package/dist/slack/commands/help.d.ts.map +1 -1
- package/dist/slack/commands/help.js +16 -11
- package/dist/slack/commands/help.js.map +1 -1
- package/dist/slack/commands/index.d.ts.map +1 -1
- package/dist/slack/commands/index.js +26 -0
- package/dist/slack/commands/index.js.map +1 -1
- package/dist/slack/commands/inject.d.ts +3 -0
- package/dist/slack/commands/inject.d.ts.map +1 -0
- package/dist/slack/commands/inject.js +44 -0
- package/dist/slack/commands/inject.js.map +1 -0
- package/dist/slack/commands/memory.js +7 -7
- package/dist/slack/commands/memory.js.map +1 -1
- package/dist/slack/commands/model.d.ts +3 -0
- package/dist/slack/commands/model.d.ts.map +1 -0
- package/dist/slack/commands/model.js +43 -0
- package/dist/slack/commands/model.js.map +1 -0
- package/dist/slack/commands/new.js +1 -1
- package/dist/slack/commands/new.js.map +1 -1
- package/dist/slack/commands/permission.d.ts +3 -0
- package/dist/slack/commands/permission.d.ts.map +1 -0
- package/dist/slack/commands/permission.js +51 -0
- package/dist/slack/commands/permission.js.map +1 -0
- package/dist/slack/commands/project.js +2 -2
- package/dist/slack/commands/project.js.map +1 -1
- package/dist/slack/commands/resume.d.ts +3 -0
- package/dist/slack/commands/resume.d.ts.map +1 -0
- package/dist/slack/commands/resume.js +93 -0
- package/dist/slack/commands/resume.js.map +1 -0
- package/dist/slack/commands/session-info.d.ts +3 -0
- package/dist/slack/commands/session-info.d.ts.map +1 -0
- package/dist/slack/commands/session-info.js +33 -0
- package/dist/slack/commands/session-info.js.map +1 -0
- package/dist/slack/commands/sessions.d.ts +3 -0
- package/dist/slack/commands/sessions.d.ts.map +1 -0
- package/dist/slack/commands/sessions.js +54 -0
- package/dist/slack/commands/sessions.js.map +1 -0
- package/dist/slack/commands/status.d.ts.map +1 -1
- package/dist/slack/commands/status.js +7 -2
- package/dist/slack/commands/status.js.map +1 -1
- package/dist/slack/commands/usage.d.ts +5 -0
- package/dist/slack/commands/usage.d.ts.map +1 -1
- package/dist/slack/commands/usage.js +93 -12
- package/dist/slack/commands/usage.js.map +1 -1
- package/dist/slack/context.d.ts +11 -8
- package/dist/slack/context.d.ts.map +1 -1
- package/dist/slack/context.js +36 -14
- package/dist/slack/context.js.map +1 -1
- package/dist/slack/file-downloader.d.ts +18 -0
- package/dist/slack/file-downloader.d.ts.map +1 -0
- package/dist/slack/file-downloader.js +196 -0
- package/dist/slack/file-downloader.js.map +1 -0
- package/dist/slack/formatter.d.ts +0 -4
- package/dist/slack/formatter.d.ts.map +1 -1
- package/dist/slack/formatter.js +0 -8
- package/dist/slack/formatter.js.map +1 -1
- package/dist/slack/handlers.d.ts +3 -4
- package/dist/slack/handlers.d.ts.map +1 -1
- package/dist/slack/handlers.js +372 -259
- package/dist/slack/handlers.js.map +1 -1
- package/dist/slack/link-resolver.d.ts +24 -0
- package/dist/slack/link-resolver.d.ts.map +1 -0
- package/dist/slack/link-resolver.js +52 -0
- package/dist/slack/link-resolver.js.map +1 -0
- package/dist/slack/middleware.d.ts +17 -0
- package/dist/slack/middleware.d.ts.map +1 -0
- package/dist/slack/middleware.js +73 -0
- package/dist/slack/middleware.js.map +1 -0
- package/dist/slack/slack-retry.d.ts +18 -0
- package/dist/slack/slack-retry.d.ts.map +1 -0
- package/dist/slack/slack-retry.js +71 -0
- package/dist/slack/slack-retry.js.map +1 -0
- package/dist/slack/tool-formatter.d.ts +18 -0
- package/dist/slack/tool-formatter.d.ts.map +1 -0
- package/dist/slack/tool-formatter.js +154 -0
- package/dist/slack/tool-formatter.js.map +1 -0
- package/dist/slack/types.d.ts +22 -0
- package/dist/slack/types.d.ts.map +1 -0
- package/dist/slack/types.js +2 -0
- package/dist/slack/types.js.map +1 -0
- package/package.json +10 -10
- package/scripts/pretool-hook.mjs +0 -0
- package/slack-app-manifest.json +12 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/slack/handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/slack/handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface ResolvedSession {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
workDir?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Slack 메시지/스레드 링크에서 threadTs를 추출.
|
|
7
|
+
*
|
|
8
|
+
* Slack 링크 형식:
|
|
9
|
+
* - 메시지: <https://xxx.slack.com/archives/CHANNEL_ID/pTIMESTAMP>
|
|
10
|
+
* - 스레드: <https://xxx.slack.com/archives/CHANNEL_ID/pTIMESTAMP?thread_ts=THREAD_TS&cid=CID>
|
|
11
|
+
*
|
|
12
|
+
* pTIMESTAMP: 'p' + ts에서 '.' 제거한 값 (예: p1708000001000100 → 1708000001.000100)
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseSlackLink(text: string): {
|
|
15
|
+
channel: string;
|
|
16
|
+
threadTs: string;
|
|
17
|
+
} | null;
|
|
18
|
+
/**
|
|
19
|
+
* 텍스트에서 Slack 링크를 찾아 해당 스레드의 세션을 조회.
|
|
20
|
+
* 세션이 있으면 sessionId와 workDir을 반환.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveSessionFromLink(text: string): ResolvedSession | null;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=link-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-resolver.d.ts","sourceRoot":"","sources":["../../src/slack/link-resolver.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsBzF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAa3E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { getSession, getWorkDir } from '../agent/session.js';
|
|
2
|
+
import { createLogger } from '../utils/logger.js';
|
|
3
|
+
const log = createLogger('link-resolver');
|
|
4
|
+
/**
|
|
5
|
+
* Slack 메시지/스레드 링크에서 threadTs를 추출.
|
|
6
|
+
*
|
|
7
|
+
* Slack 링크 형식:
|
|
8
|
+
* - 메시지: <https://xxx.slack.com/archives/CHANNEL_ID/pTIMESTAMP>
|
|
9
|
+
* - 스레드: <https://xxx.slack.com/archives/CHANNEL_ID/pTIMESTAMP?thread_ts=THREAD_TS&cid=CID>
|
|
10
|
+
*
|
|
11
|
+
* pTIMESTAMP: 'p' + ts에서 '.' 제거한 값 (예: p1708000001000100 → 1708000001.000100)
|
|
12
|
+
*/
|
|
13
|
+
export function parseSlackLink(text) {
|
|
14
|
+
const pattern = /https?:\/\/[^/]+\.slack\.com\/archives\/([A-Z0-9]+)\/p(\d+)(?:\?[^\s>]*)?/;
|
|
15
|
+
const match = text.match(pattern);
|
|
16
|
+
if (!match)
|
|
17
|
+
return null;
|
|
18
|
+
const channel = match[1];
|
|
19
|
+
const rawTs = match[2];
|
|
20
|
+
// thread_ts 파라미터가 있으면 그것을 사용 (스레드 내 메시지 링크)
|
|
21
|
+
const threadTsMatch = text.match(/thread_ts=(\d+\.\d+)/);
|
|
22
|
+
let threadTs;
|
|
23
|
+
if (threadTsMatch) {
|
|
24
|
+
threadTs = threadTsMatch[1];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
// pTIMESTAMP에서 threadTs 복원: 뒤 6자리 앞에 '.' 삽입
|
|
28
|
+
if (rawTs.length <= 6)
|
|
29
|
+
return null;
|
|
30
|
+
threadTs = rawTs.slice(0, rawTs.length - 6) + '.' + rawTs.slice(rawTs.length - 6);
|
|
31
|
+
}
|
|
32
|
+
log.info('Slack 링크 파싱', { channel, threadTs });
|
|
33
|
+
return { channel, threadTs };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 텍스트에서 Slack 링크를 찾아 해당 스레드의 세션을 조회.
|
|
37
|
+
* 세션이 있으면 sessionId와 workDir을 반환.
|
|
38
|
+
*/
|
|
39
|
+
export function resolveSessionFromLink(text) {
|
|
40
|
+
const link = parseSlackLink(text);
|
|
41
|
+
if (!link)
|
|
42
|
+
return null;
|
|
43
|
+
const sessionId = getSession(link.threadTs);
|
|
44
|
+
if (!sessionId) {
|
|
45
|
+
log.info('링크된 스레드에 세션 없음', { threadTs: link.threadTs });
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const workDir = getWorkDir(link.threadTs);
|
|
49
|
+
log.info('링크에서 세션 조회 성공', { threadTs: link.threadTs, sessionId });
|
|
50
|
+
return { sessionId, workDir };
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=link-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-resolver.js","sourceRoot":"","sources":["../../src/slack/link-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;AAO1C;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,2EAA2E,CAAC;IAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvB,4CAA4C;IAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACzD,IAAI,QAAgB,CAAC;IAErB,IAAI,aAAa,EAAE,CAAC;QAClB,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,4CAA4C;QAC5C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAClE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SlackClient } from './types.js';
|
|
2
|
+
export declare const BOOT_TS: number;
|
|
3
|
+
export declare const DEDUP_TTL_MS = 60000;
|
|
4
|
+
export declare const mentionStartedThreads: Map<string, NodeJS.Timeout>;
|
|
5
|
+
export declare function trackMentionThread(threadTs: string): void;
|
|
6
|
+
export declare function getActiveAgentCount(): number;
|
|
7
|
+
export declare function getMaxConcurrent(): number;
|
|
8
|
+
export declare function incrementActiveCount(): void;
|
|
9
|
+
export declare function decrementActiveCount(): void;
|
|
10
|
+
export declare function getActiveKill(threadTs: string): (() => void) | undefined;
|
|
11
|
+
export declare function setActiveKill(threadTs: string, kill: () => void): void;
|
|
12
|
+
export declare function deleteActiveKill(threadTs: string): void;
|
|
13
|
+
export declare function isBootMessage(messageTs: string): boolean;
|
|
14
|
+
export declare function isDuplicate(messageTs: string): boolean;
|
|
15
|
+
export declare function isAllowedUser(userId: string | undefined): boolean;
|
|
16
|
+
export declare function setTypingStatus(client: SlackClient, channel: string, threadTs: string, status: string): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/slack/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,eAAO,MAAM,OAAO,QAAoB,CAAC;AAIzC,eAAO,MAAM,YAAY,QAAS,CAAC;AAInC,eAAO,MAAM,qBAAqB,6BAAmD,CAAC;AAGtF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKzD;AAMD,wBAAgB,mBAAmB,IAAI,MAAM,CAA6B;AAC1E,wBAAgB,gBAAgB,IAAI,MAAM,CAA2B;AACrE,wBAAgB,oBAAoB,IAAI,IAAI,CAAwB;AACpE,wBAAgB,oBAAoB,IAAI,IAAI,CAAwB;AAKpE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAExE;AACD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI,CAEtE;AACD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEvD;AAGD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKtD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQjE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3H"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { createLogger } from '../utils/logger.js';
|
|
2
|
+
import { config } from '../config.js';
|
|
3
|
+
const log = createLogger('middleware');
|
|
4
|
+
// 앱 시작 시각 — 이전 이벤트는 무시 (재시작 시 밀린 이벤트 방지)
|
|
5
|
+
export const BOOT_TS = Date.now() / 1000;
|
|
6
|
+
// 이벤트 중복 처리 방지 (message + app_mention 동시 발생)
|
|
7
|
+
const processedMessages = new Set();
|
|
8
|
+
export const DEDUP_TTL_MS = 60_000;
|
|
9
|
+
// 멘션된 스레드 추적 (후속 메시지는 멘션 없이도 처리)
|
|
10
|
+
// 세션 생성 전 짧은 구간을 커버하는 용도 (세션 저장 후에는 hasThread로 판단)
|
|
11
|
+
export const mentionStartedThreads = new Map();
|
|
12
|
+
const MENTION_TRACK_TTL_MS = 60 * 60 * 1000; // 1시간 (세션이 생기면 불필요)
|
|
13
|
+
export function trackMentionThread(threadTs) {
|
|
14
|
+
const existing = mentionStartedThreads.get(threadTs);
|
|
15
|
+
if (existing)
|
|
16
|
+
clearTimeout(existing);
|
|
17
|
+
const timer = setTimeout(() => mentionStartedThreads.delete(threadTs), MENTION_TRACK_TTL_MS);
|
|
18
|
+
mentionStartedThreads.set(threadTs, timer);
|
|
19
|
+
}
|
|
20
|
+
// 동시 프로세스 제한
|
|
21
|
+
const MAX_CONCURRENT = config.slack.maxConcurrentAgents;
|
|
22
|
+
let activeAgentCount = 0;
|
|
23
|
+
export function getActiveAgentCount() { return activeAgentCount; }
|
|
24
|
+
export function getMaxConcurrent() { return MAX_CONCURRENT; }
|
|
25
|
+
export function incrementActiveCount() { activeAgentCount++; }
|
|
26
|
+
export function decrementActiveCount() { activeAgentCount--; }
|
|
27
|
+
// 실행 중인 에이전트 프로세스의 kill 함수 추적
|
|
28
|
+
const activeKills = new Map();
|
|
29
|
+
export function getActiveKill(threadTs) {
|
|
30
|
+
return activeKills.get(threadTs);
|
|
31
|
+
}
|
|
32
|
+
export function setActiveKill(threadTs, kill) {
|
|
33
|
+
activeKills.set(threadTs, kill);
|
|
34
|
+
}
|
|
35
|
+
export function deleteActiveKill(threadTs) {
|
|
36
|
+
activeKills.delete(threadTs);
|
|
37
|
+
}
|
|
38
|
+
// 메시지 중복 체크 함수
|
|
39
|
+
export function isBootMessage(messageTs) {
|
|
40
|
+
return parseFloat(messageTs) < BOOT_TS;
|
|
41
|
+
}
|
|
42
|
+
export function isDuplicate(messageTs) {
|
|
43
|
+
if (processedMessages.has(messageTs))
|
|
44
|
+
return true;
|
|
45
|
+
processedMessages.add(messageTs);
|
|
46
|
+
setTimeout(() => processedMessages.delete(messageTs), DEDUP_TTL_MS);
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
export function isAllowedUser(userId) {
|
|
50
|
+
const users = config.slack.allowedUsers;
|
|
51
|
+
// null = ALLOWED_SLACK_USERS 미설정 → 전체 거부
|
|
52
|
+
if (users === null)
|
|
53
|
+
return false;
|
|
54
|
+
// 빈 배열 = 설정됐지만 유효 ID 없음 → 전체 거부
|
|
55
|
+
if (users.length === 0)
|
|
56
|
+
return false;
|
|
57
|
+
if (!userId)
|
|
58
|
+
return false;
|
|
59
|
+
return users.includes(userId);
|
|
60
|
+
}
|
|
61
|
+
export async function setTypingStatus(client, channel, threadTs, status) {
|
|
62
|
+
try {
|
|
63
|
+
await client.assistant?.threads?.setStatus?.({
|
|
64
|
+
channel_id: channel,
|
|
65
|
+
thread_ts: threadTs,
|
|
66
|
+
status,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Slack Assistant API 미지원 시 조용히 무시
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/slack/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface RetryOptions {
|
|
2
|
+
maxRetries?: number;
|
|
3
|
+
baseDelayMs?: number;
|
|
4
|
+
maxDelayMs?: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Slack API 호출을 지수 백오프로 재시도하는 래퍼.
|
|
8
|
+
* 네트워크 오류나 rate limit 시 자동 재시도하여 Slack 연결 불안정에도
|
|
9
|
+
* Claude 작업 결과가 유실되지 않도록 함.
|
|
10
|
+
*/
|
|
11
|
+
export declare function withRetry<T>(fn: () => Promise<T>, label: string, options?: RetryOptions): Promise<T>;
|
|
12
|
+
/**
|
|
13
|
+
* Slack API 호출을 시도하되, 실패해도 무시 (best-effort).
|
|
14
|
+
* 리액션 추가/제거 등 실패해도 치명적이지 않은 호출에 사용.
|
|
15
|
+
*/
|
|
16
|
+
export declare function bestEffort<T>(fn: () => Promise<T>, label: string): Promise<T | undefined>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=slack-retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-retry.d.ts","sourceRoot":"","sources":["../../src/slack/slack-retry.ts"],"names":[],"mappings":"AAIA,UAAU,YAAY;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8BD;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,CAAC,CAyBZ;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAOxB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { createLogger } from '../utils/logger.js';
|
|
2
|
+
const log = createLogger('slack-retry');
|
|
3
|
+
const DEFAULT_OPTIONS = {
|
|
4
|
+
maxRetries: 3,
|
|
5
|
+
baseDelayMs: 1000,
|
|
6
|
+
maxDelayMs: 10_000,
|
|
7
|
+
};
|
|
8
|
+
function isRetryableError(err) {
|
|
9
|
+
if (err && typeof err === 'object') {
|
|
10
|
+
const code = err.code;
|
|
11
|
+
// Slack rate limit (429) or network errors
|
|
12
|
+
if (code === 'slack_webapi_platform_error')
|
|
13
|
+
return false; // 잘못된 요청은 재시도 불필요
|
|
14
|
+
if (code === 'slack_webapi_rate_limited')
|
|
15
|
+
return true;
|
|
16
|
+
const message = String(err.message || '');
|
|
17
|
+
if (message.includes('ECONNREFUSED') || message.includes('ETIMEDOUT') ||
|
|
18
|
+
message.includes('ENOTFOUND') || message.includes('socket hang up') ||
|
|
19
|
+
message.includes('network') || message.includes('rate_limited') ||
|
|
20
|
+
message.includes('request_timeout') || message.includes('service_unavailable')) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
function delay(ms) {
|
|
27
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Slack API 호출을 지수 백오프로 재시도하는 래퍼.
|
|
31
|
+
* 네트워크 오류나 rate limit 시 자동 재시도하여 Slack 연결 불안정에도
|
|
32
|
+
* Claude 작업 결과가 유실되지 않도록 함.
|
|
33
|
+
*/
|
|
34
|
+
export async function withRetry(fn, label, options) {
|
|
35
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
36
|
+
for (let attempt = 0; attempt <= opts.maxRetries; attempt++) {
|
|
37
|
+
try {
|
|
38
|
+
return await fn();
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
if (attempt === opts.maxRetries || !isRetryableError(err)) {
|
|
42
|
+
log.error(`${label} 최종 실패`, { attempt, error: String(err) });
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
const retryAfterMs = err.retryAfter
|
|
46
|
+
? err.retryAfter * 1000
|
|
47
|
+
: undefined;
|
|
48
|
+
const jitter = Math.random() * 500;
|
|
49
|
+
const delayMs = retryAfterMs
|
|
50
|
+
?? Math.min(opts.baseDelayMs * 2 ** attempt + jitter, opts.maxDelayMs);
|
|
51
|
+
log.warn(`${label} 재시도 ${attempt + 1}/${opts.maxRetries}`, { delayMs: Math.round(delayMs), error: String(err) });
|
|
52
|
+
await delay(delayMs);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// unreachable, but TypeScript needs it
|
|
56
|
+
throw new Error(`${label}: retry exhausted`);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Slack API 호출을 시도하되, 실패해도 무시 (best-effort).
|
|
60
|
+
* 리액션 추가/제거 등 실패해도 치명적이지 않은 호출에 사용.
|
|
61
|
+
*/
|
|
62
|
+
export async function bestEffort(fn, label) {
|
|
63
|
+
try {
|
|
64
|
+
return await withRetry(fn, label, { maxRetries: 1 });
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
log.warn(`${label} best-effort 실패, 무시`);
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=slack-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-retry.js","sourceRoot":"","sources":["../../src/slack/slack-retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-type별 Slack 포맷팅
|
|
3
|
+
* Claude Code의 tool_use 이벤트를 도구 종류에 따라 다른 형식으로 표시
|
|
4
|
+
*/
|
|
5
|
+
export interface ToolEvent {
|
|
6
|
+
toolName: string;
|
|
7
|
+
toolInput: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 단일 도구 이벤트를 간결한 텍스트로 포맷 (승인 버튼 등에서 사용)
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatToolInline(event: ToolEvent): string;
|
|
13
|
+
/**
|
|
14
|
+
* 도구 사용 이벤트 목록을 Slack mrkdwn 요약으로 변환
|
|
15
|
+
* 최대 maxDisplay개 표시, 나머지는 "+N more" 로 축약
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatToolSummary(events: ToolEvent[], maxDisplay?: number): string;
|
|
18
|
+
//# sourceMappingURL=tool-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-formatter.d.ts","sourceRoot":"","sources":["../../src/slack/tool-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAqHD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAGzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,SAAI,GAAG,MAAM,CAoB7E"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-type별 Slack 포맷팅
|
|
3
|
+
* Claude Code의 tool_use 이벤트를 도구 종류에 따라 다른 형식으로 표시
|
|
4
|
+
*/
|
|
5
|
+
function formatBash(input) {
|
|
6
|
+
const cmd = String(input.command || '').slice(0, 150);
|
|
7
|
+
return {
|
|
8
|
+
icon: ':terminal:',
|
|
9
|
+
label: 'Bash',
|
|
10
|
+
detail: `\`${cmd}\`${String(input.command || '').length > 150 ? '...' : ''}`,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function formatEdit(input) {
|
|
14
|
+
const filePath = String(input.file_path || '');
|
|
15
|
+
const shortPath = filePath.split('/').slice(-2).join('/');
|
|
16
|
+
return {
|
|
17
|
+
icon: ':pencil2:',
|
|
18
|
+
label: 'Edit',
|
|
19
|
+
detail: `\`${shortPath}\``,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function formatWrite(input) {
|
|
23
|
+
const filePath = String(input.file_path || '');
|
|
24
|
+
const shortPath = filePath.split('/').slice(-2).join('/');
|
|
25
|
+
return {
|
|
26
|
+
icon: ':page_facing_up:',
|
|
27
|
+
label: 'Write',
|
|
28
|
+
detail: `\`${shortPath}\``,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function formatRead(input) {
|
|
32
|
+
const filePath = String(input.file_path || '');
|
|
33
|
+
const shortPath = filePath.split('/').slice(-2).join('/');
|
|
34
|
+
return {
|
|
35
|
+
icon: ':mag:',
|
|
36
|
+
label: 'Read',
|
|
37
|
+
detail: `\`${shortPath}\``,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function formatGlob(input) {
|
|
41
|
+
return {
|
|
42
|
+
icon: ':file_folder:',
|
|
43
|
+
label: 'Glob',
|
|
44
|
+
detail: `\`${input.pattern || '*'}\``,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function formatGrep(input) {
|
|
48
|
+
return {
|
|
49
|
+
icon: ':mag_right:',
|
|
50
|
+
label: 'Grep',
|
|
51
|
+
detail: `\`${String(input.pattern || '').slice(0, 80)}\``,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function formatWebSearch(input) {
|
|
55
|
+
return {
|
|
56
|
+
icon: ':globe_with_meridians:',
|
|
57
|
+
label: 'WebSearch',
|
|
58
|
+
detail: `\`${String(input.query || '').slice(0, 80)}\``,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function formatTask(input) {
|
|
62
|
+
const desc = String(input.description || input.prompt || '').slice(0, 80);
|
|
63
|
+
return {
|
|
64
|
+
icon: ':robot_face:',
|
|
65
|
+
label: 'Task',
|
|
66
|
+
detail: desc ? `_${desc}_` : '',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function stringifyValue(val) {
|
|
70
|
+
if (val === null || val === undefined)
|
|
71
|
+
return '';
|
|
72
|
+
if (typeof val === 'string')
|
|
73
|
+
return val;
|
|
74
|
+
if (typeof val === 'number' || typeof val === 'boolean')
|
|
75
|
+
return String(val);
|
|
76
|
+
try {
|
|
77
|
+
return JSON.stringify(val);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return '(...)';
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function formatDefault(toolName, input) {
|
|
84
|
+
const keys = Object.keys(input).slice(0, 2);
|
|
85
|
+
const summary = keys.map(k => `${k}: ${stringifyValue(input[k]).slice(0, 50)}`).join(', ');
|
|
86
|
+
return {
|
|
87
|
+
icon: ':gear:',
|
|
88
|
+
label: toolName,
|
|
89
|
+
detail: summary || '',
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const FORMATTERS = {
|
|
93
|
+
Bash: formatBash,
|
|
94
|
+
Edit: formatEdit,
|
|
95
|
+
Write: formatWrite,
|
|
96
|
+
MultiEdit: formatEdit,
|
|
97
|
+
Read: formatRead,
|
|
98
|
+
Glob: formatGlob,
|
|
99
|
+
Grep: formatGrep,
|
|
100
|
+
WebSearch: formatWebSearch,
|
|
101
|
+
WebFetch: (input) => ({ icon: ':link:', label: 'WebFetch', detail: `\`${String(input.url || '').slice(0, 80)}\`` }),
|
|
102
|
+
Task: formatTask,
|
|
103
|
+
NotebookEdit: (input) => ({ icon: ':notebook:', label: 'NotebookEdit', detail: `\`${String(input.notebook_path || '').split('/').slice(-2).join('/')}\`` }),
|
|
104
|
+
};
|
|
105
|
+
function formatSingleTool(event) {
|
|
106
|
+
const formatter = FORMATTERS[event.toolName];
|
|
107
|
+
if (formatter)
|
|
108
|
+
return formatter(event.toolInput);
|
|
109
|
+
return formatDefault(event.toolName, event.toolInput);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* 단일 도구 이벤트를 간결한 텍스트로 포맷 (승인 버튼 등에서 사용)
|
|
113
|
+
*/
|
|
114
|
+
export function formatToolInline(event) {
|
|
115
|
+
const { label, detail } = formatSingleTool(event);
|
|
116
|
+
return detail ? `${label}: ${detail}` : label;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 도구 사용 이벤트 목록을 Slack mrkdwn 요약으로 변환
|
|
120
|
+
* 최대 maxDisplay개 표시, 나머지는 "+N more" 로 축약
|
|
121
|
+
*/
|
|
122
|
+
export function formatToolSummary(events, maxDisplay = 8) {
|
|
123
|
+
if (events.length === 0)
|
|
124
|
+
return '';
|
|
125
|
+
const lines = [];
|
|
126
|
+
// 같은 도구가 연속으로 쓰이면 그룹핑
|
|
127
|
+
const grouped = groupConsecutiveTools(events);
|
|
128
|
+
const displayItems = grouped.slice(0, maxDisplay);
|
|
129
|
+
for (const item of displayItems) {
|
|
130
|
+
const formatted = formatSingleTool(item.event);
|
|
131
|
+
const countSuffix = item.count > 1 ? ` (x${item.count})` : '';
|
|
132
|
+
lines.push(`${formatted.icon} *${formatted.label}*${countSuffix} ${formatted.detail}`);
|
|
133
|
+
}
|
|
134
|
+
if (grouped.length > maxDisplay) {
|
|
135
|
+
lines.push(`_...+${grouped.length - maxDisplay} more tools_`);
|
|
136
|
+
}
|
|
137
|
+
return `:hammer_and_wrench: *도구 사용 (${events.length}회)*\n${lines.join('\n')}`;
|
|
138
|
+
}
|
|
139
|
+
function groupConsecutiveTools(events) {
|
|
140
|
+
const groups = [];
|
|
141
|
+
for (const event of events) {
|
|
142
|
+
const last = groups[groups.length - 1];
|
|
143
|
+
if (last && last.event.toolName === event.toolName) {
|
|
144
|
+
last.count++;
|
|
145
|
+
// 마지막 이벤트로 업데이트 (가장 최근 것 표시)
|
|
146
|
+
last.event = event;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
groups.push({ event, count: 1 });
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return groups;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=tool-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-formatter.js","sourceRoot":"","sources":["../../src/slack/tool-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type SlackClient = any;
|
|
2
|
+
export interface SlackFileInfo {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
mimetype: string;
|
|
6
|
+
filetype: string;
|
|
7
|
+
size: number;
|
|
8
|
+
url_private: string;
|
|
9
|
+
url_private_download?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface SlackMessage {
|
|
12
|
+
subtype?: string;
|
|
13
|
+
bot_id?: string;
|
|
14
|
+
channel: string;
|
|
15
|
+
channel_type?: string;
|
|
16
|
+
thread_ts?: string;
|
|
17
|
+
ts: string;
|
|
18
|
+
text?: string;
|
|
19
|
+
user?: string;
|
|
20
|
+
files?: SlackFileInfo[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/slack/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/slack/types.ts"],"names":[],"mappings":""}
|