ccpoke 1.5.4 → 1.6.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/README.en.md +1 -1
- package/README.md +1 -1
- package/dist/agent/agent-handler.d.ts +6 -2
- package/dist/agent/agent-handler.js +17 -3
- package/dist/agent/agent-handler.js.map +1 -1
- package/dist/agent/agent-registry.js.map +1 -1
- package/dist/agent/chat-session-resolver.d.ts +4 -0
- package/dist/agent/chat-session-resolver.js +2 -0
- package/dist/agent/chat-session-resolver.js.map +1 -0
- package/dist/agent/claude-code/claude-code-installer.d.ts +8 -2
- package/dist/agent/claude-code/claude-code-installer.js +112 -28
- package/dist/agent/claude-code/claude-code-installer.js.map +1 -1
- package/dist/agent/claude-code/claude-code-parser.js.map +1 -1
- package/dist/agent/claude-code/claude-code-provider.d.ts +5 -1
- package/dist/agent/claude-code/claude-code-provider.js +22 -9
- package/dist/agent/claude-code/claude-code-provider.js.map +1 -1
- package/dist/agent/cursor/cursor-installer.js +3 -3
- package/dist/agent/cursor/cursor-installer.js.map +1 -1
- package/dist/agent/cursor/cursor-parser.js +1 -1
- package/dist/agent/cursor/cursor-parser.js.map +1 -1
- package/dist/agent/cursor/cursor-provider.d.ts +5 -1
- package/dist/agent/cursor/cursor-provider.js +12 -9
- package/dist/agent/cursor/cursor-provider.js.map +1 -1
- package/dist/agent/cursor/cursor-state-reader.js +3 -3
- package/dist/agent/cursor/cursor-state-reader.js.map +1 -1
- package/dist/agent/types.d.ts +7 -0
- package/dist/channel/chat-types.d.ts +19 -0
- package/dist/channel/chat-types.js +2 -0
- package/dist/channel/chat-types.js.map +1 -0
- package/dist/channel/telegram/pending-reply-store.d.ts +15 -0
- package/dist/channel/telegram/pending-reply-store.js +54 -0
- package/dist/channel/telegram/pending-reply-store.js.map +1 -0
- package/dist/channel/telegram/telegram-channel.d.ts +8 -2
- package/dist/channel/telegram/telegram-channel.js +81 -6
- package/dist/channel/telegram/telegram-channel.js.map +1 -1
- package/dist/channel/telegram/telegram-sender.d.ts +1 -1
- package/dist/channel/telegram/telegram-sender.js +20 -11
- package/dist/channel/telegram/telegram-sender.js.map +1 -1
- package/dist/channel/types.d.ts +1 -0
- package/dist/commands/help.js +1 -1
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/setup.js +4 -3
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/uninstall.js +3 -3
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.js +4 -4
- package/dist/commands/update.js.map +1 -1
- package/dist/config-manager.js +16 -7
- package/dist/config-manager.js.map +1 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/locales/en.js +26 -0
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/vi.js +26 -0
- package/dist/i18n/locales/vi.js.map +1 -1
- package/dist/i18n/locales/zh.js +26 -0
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/types.d.ts +26 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +71 -13
- package/dist/index.js.map +1 -1
- package/dist/server/api-server.d.ts +3 -0
- package/dist/server/api-server.js +32 -5
- package/dist/server/api-server.js.map +1 -1
- package/dist/tmux/session-map.d.ts +38 -0
- package/dist/tmux/session-map.js +137 -0
- package/dist/tmux/session-map.js.map +1 -0
- package/dist/tmux/session-state.d.ts +22 -0
- package/dist/tmux/session-state.js +46 -0
- package/dist/tmux/session-state.js.map +1 -0
- package/dist/tmux/tmux-bridge.d.ts +9 -0
- package/dist/tmux/tmux-bridge.js +93 -0
- package/dist/tmux/tmux-bridge.js.map +1 -0
- package/dist/tmux/tmux-scanner.d.ts +22 -0
- package/dist/tmux/tmux-scanner.js +133 -0
- package/dist/tmux/tmux-scanner.js.map +1 -0
- package/dist/tmux/tmux-session-resolver.d.ts +14 -0
- package/dist/tmux/tmux-session-resolver.js +61 -0
- package/dist/tmux/tmux-session-resolver.js.map +1 -0
- package/dist/utils/constants.d.ts +1 -11
- package/dist/utils/constants.js +1 -11
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/git-collector.js +2 -1
- package/dist/utils/git-collector.js.map +1 -1
- package/dist/utils/install-detection.js +3 -2
- package/dist/utils/install-detection.js.map +1 -1
- package/dist/utils/paths.d.ts +1 -0
- package/dist/utils/paths.js +3 -2
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/response-store.js +5 -3
- package/dist/utils/response-store.js.map +1 -1
- package/dist/utils/tunnel.js +1 -1
- package/dist/utils/tunnel.js.map +1 -1
- package/dist/utils/version-check.js +5 -3
- package/dist/utils/version-check.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Database from "better-sqlite3";
|
|
2
|
-
import { join } from "node:path";
|
|
3
|
-
import { homedir } from "node:os";
|
|
4
1
|
import { existsSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import Database from "better-sqlite3";
|
|
5
5
|
const EMPTY_COMPOSER_DATA = {
|
|
6
6
|
durationMs: 0,
|
|
7
7
|
model: "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-state-reader.js","sourceRoot":"","sources":["../../../src/agent/cursor/cursor-state-reader.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cursor-state-reader.js","sourceRoot":"","sources":["../../../src/agent/cursor/cursor-state-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,MAAM,mBAAmB,GAAuB;IAC9C,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,SAAS,oBAAoB;IAC3B,MAAM,IAAI,GACR,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC3B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,CAAC;QAC7D,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,QAAQ,CAAC;YAC3C,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE7C,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,cAAc,GAAG;;;;;;;CAOtB,CAAC;AAQF,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACrD,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAEpD,IAAI,EAAE,GAA6B,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,cAAc,EAAE,CAE9D,CAAC;QAEd,IAAI,CAAC,GAAG;YAAE,OAAO,mBAAmB,CAAC;QAErC,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,OAAO;YACL,UAAU;YACV,KAAK,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE;SAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAmB,CAAC;IAC7B,CAAC;YAAS,CAAC;QACT,EAAE,EAAE,KAAK,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/agent/types.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export interface AgentProvider {
|
|
|
15
15
|
installHook(port: number, secret: string): void;
|
|
16
16
|
uninstallHook(): void;
|
|
17
17
|
parseEvent(raw: unknown): AgentEventResult;
|
|
18
|
+
verifyIntegrity(): {
|
|
19
|
+
complete: boolean;
|
|
20
|
+
missing: string[];
|
|
21
|
+
};
|
|
18
22
|
}
|
|
19
23
|
export interface AgentEventResult {
|
|
20
24
|
projectName: string;
|
|
@@ -24,4 +28,7 @@ export interface AgentEventResult {
|
|
|
24
28
|
inputTokens: number;
|
|
25
29
|
outputTokens: number;
|
|
26
30
|
model: string;
|
|
31
|
+
agentSessionId?: string;
|
|
32
|
+
cwd?: string;
|
|
33
|
+
tmuxTarget?: string;
|
|
27
34
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ChatInjector {
|
|
2
|
+
injectMessage(sessionId: string, text: string): {
|
|
3
|
+
sent: true;
|
|
4
|
+
} | {
|
|
5
|
+
queued: true;
|
|
6
|
+
position: number;
|
|
7
|
+
} | {
|
|
8
|
+
desktopActive: true;
|
|
9
|
+
} | {
|
|
10
|
+
sessionNotFound: true;
|
|
11
|
+
} | {
|
|
12
|
+
tmuxDead: true;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface ChatSessionLookup {
|
|
16
|
+
getBySessionId(sessionId: string): {
|
|
17
|
+
project: string;
|
|
18
|
+
} | undefined;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-types.js","sourceRoot":"","sources":["../../src/channel/chat-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface PendingReply {
|
|
2
|
+
sessionId: string;
|
|
3
|
+
project: string;
|
|
4
|
+
createdAt: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class PendingReplyStore {
|
|
7
|
+
private pending;
|
|
8
|
+
private timers;
|
|
9
|
+
set(chatId: number, messageId: number, sessionId: string, project: string): void;
|
|
10
|
+
get(chatId: number, messageId: number): PendingReply | undefined;
|
|
11
|
+
delete(chatId: number, messageId: number): void;
|
|
12
|
+
destroy(): void;
|
|
13
|
+
private static key;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const EXPIRE_MS = 10 * 60 * 1000;
|
|
2
|
+
export class PendingReplyStore {
|
|
3
|
+
pending = new Map();
|
|
4
|
+
timers = new Map();
|
|
5
|
+
set(chatId, messageId, sessionId, project) {
|
|
6
|
+
const key = PendingReplyStore.key(chatId, messageId);
|
|
7
|
+
const existing = this.timers.get(key);
|
|
8
|
+
if (existing)
|
|
9
|
+
clearTimeout(existing);
|
|
10
|
+
this.pending.set(key, {
|
|
11
|
+
sessionId,
|
|
12
|
+
project,
|
|
13
|
+
createdAt: Date.now(),
|
|
14
|
+
});
|
|
15
|
+
const timer = setTimeout(() => {
|
|
16
|
+
this.pending.delete(key);
|
|
17
|
+
this.timers.delete(key);
|
|
18
|
+
}, EXPIRE_MS);
|
|
19
|
+
this.timers.set(key, timer);
|
|
20
|
+
}
|
|
21
|
+
get(chatId, messageId) {
|
|
22
|
+
const key = PendingReplyStore.key(chatId, messageId);
|
|
23
|
+
const entry = this.pending.get(key);
|
|
24
|
+
if (!entry)
|
|
25
|
+
return undefined;
|
|
26
|
+
if (Date.now() - entry.createdAt > EXPIRE_MS) {
|
|
27
|
+
this.pending.delete(key);
|
|
28
|
+
const timer = this.timers.get(key);
|
|
29
|
+
if (timer)
|
|
30
|
+
clearTimeout(timer);
|
|
31
|
+
this.timers.delete(key);
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
return entry;
|
|
35
|
+
}
|
|
36
|
+
delete(chatId, messageId) {
|
|
37
|
+
const key = PendingReplyStore.key(chatId, messageId);
|
|
38
|
+
this.pending.delete(key);
|
|
39
|
+
const timer = this.timers.get(key);
|
|
40
|
+
if (timer)
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
this.timers.delete(key);
|
|
43
|
+
}
|
|
44
|
+
destroy() {
|
|
45
|
+
for (const timer of this.timers.values())
|
|
46
|
+
clearTimeout(timer);
|
|
47
|
+
this.timers.clear();
|
|
48
|
+
this.pending.clear();
|
|
49
|
+
}
|
|
50
|
+
static key(chatId, messageId) {
|
|
51
|
+
return `${chatId}:${messageId}`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=pending-reply-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-reply-store.js","sourceRoot":"","sources":["../../../src/channel/telegram/pending-reply-store.ts"],"names":[],"mappings":"AAMA,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjC,MAAM,OAAO,iBAAiB;IACpB,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC1C,MAAM,GAAG,IAAI,GAAG,EAAyC,CAAC;IAElE,GAAG,CAAC,MAAc,EAAE,SAAiB,EAAE,SAAiB,EAAE,OAAe;QACvE,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,QAAQ;YAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACpB,SAAS;YACT,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,MAAc,EAAE,SAAiB;QACnC,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,SAAiB;QACtC,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,GAAG,CAAC,MAAc,EAAE,SAAiB;QAClD,OAAO,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Config } from "../../config-manager.js";
|
|
2
|
+
import type { SessionMap } from "../../tmux/session-map.js";
|
|
3
|
+
import type { SessionStateManager } from "../../tmux/session-state.js";
|
|
2
4
|
import type { NotificationChannel, NotificationData } from "../types.js";
|
|
3
5
|
export declare class TelegramChannel implements NotificationChannel {
|
|
4
6
|
private bot;
|
|
5
7
|
private cfg;
|
|
6
8
|
private chatId;
|
|
7
9
|
private isDisconnected;
|
|
8
|
-
|
|
10
|
+
private pendingReplyStore;
|
|
11
|
+
private sessionMap;
|
|
12
|
+
private stateManager;
|
|
13
|
+
constructor(cfg: Config, sessionMap?: SessionMap, stateManager?: SessionStateManager);
|
|
9
14
|
initialize(): Promise<void>;
|
|
10
15
|
shutdown(): Promise<void>;
|
|
11
16
|
sendNotification(data: NotificationData, responseUrl?: string): Promise<void>;
|
|
@@ -13,5 +18,6 @@ export declare class TelegramChannel implements NotificationChannel {
|
|
|
13
18
|
private registerCommands;
|
|
14
19
|
private registerMenuButton;
|
|
15
20
|
private registerHandlers;
|
|
21
|
+
private registerChatHandlers;
|
|
16
22
|
private registerPollingErrorHandler;
|
|
17
23
|
}
|
|
@@ -1,21 +1,28 @@
|
|
|
1
1
|
import TelegramBot from "node-telegram-bot-api";
|
|
2
2
|
import { ConfigManager } from "../../config-manager.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getTranslations, t } from "../../i18n/index.js";
|
|
4
4
|
import { MINI_APP_BASE_URL } from "../../utils/constants.js";
|
|
5
|
-
import { formatModelName, formatDuration, formatTokenCount } from "../../utils/stats-format.js";
|
|
6
|
-
import { extractProseSnippet } from "../../utils/markdown.js";
|
|
7
|
-
import { t, getTranslations } from "../../i18n/index.js";
|
|
8
5
|
import { log, logError, logWarn } from "../../utils/log.js";
|
|
6
|
+
import { extractProseSnippet } from "../../utils/markdown.js";
|
|
7
|
+
import { formatDuration, formatModelName, formatTokenCount } from "../../utils/stats-format.js";
|
|
8
|
+
import { PendingReplyStore } from "./pending-reply-store.js";
|
|
9
|
+
import { sendTelegramMessage } from "./telegram-sender.js";
|
|
9
10
|
export class TelegramChannel {
|
|
10
11
|
bot;
|
|
11
12
|
cfg;
|
|
12
13
|
chatId = null;
|
|
13
14
|
isDisconnected = false;
|
|
14
|
-
|
|
15
|
+
pendingReplyStore = new PendingReplyStore();
|
|
16
|
+
sessionMap;
|
|
17
|
+
stateManager;
|
|
18
|
+
constructor(cfg, sessionMap, stateManager) {
|
|
15
19
|
this.cfg = cfg;
|
|
20
|
+
this.sessionMap = sessionMap ?? null;
|
|
21
|
+
this.stateManager = stateManager ?? null;
|
|
16
22
|
this.bot = new TelegramBot(cfg.telegram_bot_token, { polling: false });
|
|
17
23
|
this.chatId = ConfigManager.loadChatState().chat_id;
|
|
18
24
|
this.registerHandlers();
|
|
25
|
+
this.registerChatHandlers();
|
|
19
26
|
this.registerPollingErrorHandler();
|
|
20
27
|
}
|
|
21
28
|
async initialize() {
|
|
@@ -25,6 +32,7 @@ export class TelegramChannel {
|
|
|
25
32
|
log(t("bot.telegramStarted"));
|
|
26
33
|
}
|
|
27
34
|
async shutdown() {
|
|
35
|
+
this.pendingReplyStore.destroy();
|
|
28
36
|
this.bot.stopPolling();
|
|
29
37
|
}
|
|
30
38
|
async sendNotification(data, responseUrl) {
|
|
@@ -34,7 +42,7 @@ export class TelegramChannel {
|
|
|
34
42
|
}
|
|
35
43
|
const text = this.formatNotification(data);
|
|
36
44
|
try {
|
|
37
|
-
await sendTelegramMessage(this.bot, this.chatId, text, responseUrl);
|
|
45
|
+
await sendTelegramMessage(this.bot, this.chatId, text, responseUrl, data.sessionId);
|
|
38
46
|
}
|
|
39
47
|
catch (err) {
|
|
40
48
|
logError(t("bot.notificationFailed"), err);
|
|
@@ -115,6 +123,73 @@ export class TelegramChannel {
|
|
|
115
123
|
this.bot.sendMessage(msg.chat.id, t("bot.ready"), { parse_mode: "MarkdownV2" });
|
|
116
124
|
});
|
|
117
125
|
}
|
|
126
|
+
registerChatHandlers() {
|
|
127
|
+
this.bot.on("callback_query", async (query) => {
|
|
128
|
+
if (!query.data?.startsWith("chat:"))
|
|
129
|
+
return;
|
|
130
|
+
if (!ConfigManager.isOwner(this.cfg, query.from.id))
|
|
131
|
+
return;
|
|
132
|
+
const sessionId = query.data.slice(5);
|
|
133
|
+
if (!this.sessionMap) {
|
|
134
|
+
await this.bot.answerCallbackQuery(query.id, { text: t("chat.sessionExpired") });
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const session = this.sessionMap.getBySessionId(sessionId);
|
|
138
|
+
if (!session) {
|
|
139
|
+
await this.bot.answerCallbackQuery(query.id, { text: t("chat.sessionExpired") });
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (!query.message) {
|
|
143
|
+
await this.bot.answerCallbackQuery(query.id);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const sent = await this.bot.sendMessage(query.message.chat.id, `💬 *${escapeMarkdownV2(session.project)}*\n${escapeMarkdownV2(t("chat.replyHint"))}`, {
|
|
147
|
+
parse_mode: "MarkdownV2",
|
|
148
|
+
reply_to_message_id: query.message.message_id,
|
|
149
|
+
reply_markup: {
|
|
150
|
+
force_reply: true,
|
|
151
|
+
input_field_placeholder: `${session.project} → Claude`,
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
this.pendingReplyStore.set(query.message.chat.id, sent.message_id, sessionId, session.project);
|
|
155
|
+
await this.bot.answerCallbackQuery(query.id);
|
|
156
|
+
});
|
|
157
|
+
this.bot.on("message", async (msg) => {
|
|
158
|
+
if (!msg.reply_to_message)
|
|
159
|
+
return;
|
|
160
|
+
if (!msg.text)
|
|
161
|
+
return;
|
|
162
|
+
if (!ConfigManager.isOwner(this.cfg, msg.from?.id ?? 0))
|
|
163
|
+
return;
|
|
164
|
+
const pending = this.pendingReplyStore.get(msg.chat.id, msg.reply_to_message.message_id);
|
|
165
|
+
if (!pending)
|
|
166
|
+
return;
|
|
167
|
+
this.pendingReplyStore.delete(msg.chat.id, msg.reply_to_message.message_id);
|
|
168
|
+
if (!this.stateManager) {
|
|
169
|
+
await this.bot.sendMessage(msg.chat.id, t("chat.sessionNotFound"));
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const result = this.stateManager.injectMessage(pending.sessionId, msg.text);
|
|
173
|
+
if ("sent" in result) {
|
|
174
|
+
await this.bot.sendMessage(msg.chat.id, t("chat.sent", { project: pending.project }));
|
|
175
|
+
}
|
|
176
|
+
else if ("empty" in result) {
|
|
177
|
+
// Silently ignore empty messages — nothing to send
|
|
178
|
+
}
|
|
179
|
+
else if ("busy" in result) {
|
|
180
|
+
await this.bot.sendMessage(msg.chat.id, t("chat.busy"));
|
|
181
|
+
}
|
|
182
|
+
else if ("desktopActive" in result) {
|
|
183
|
+
await this.bot.sendMessage(msg.chat.id, t("chat.desktopActive"));
|
|
184
|
+
}
|
|
185
|
+
else if ("sessionNotFound" in result) {
|
|
186
|
+
await this.bot.sendMessage(msg.chat.id, t("chat.sessionNotFound"));
|
|
187
|
+
}
|
|
188
|
+
else if ("tmuxDead" in result) {
|
|
189
|
+
await this.bot.sendMessage(msg.chat.id, t("chat.tmuxDead"));
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
}
|
|
118
193
|
registerPollingErrorHandler() {
|
|
119
194
|
this.bot.on("polling_error", () => {
|
|
120
195
|
if (!this.isDisconnected) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-channel.js","sourceRoot":"","sources":["../../../src/channel/telegram/telegram-channel.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"telegram-channel.js","sourceRoot":"","sources":["../../../src/channel/telegram/telegram-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import TelegramBot from "node-telegram-bot-api";
|
|
2
|
-
export declare function sendTelegramMessage(bot: TelegramBot, chatId: number, text: string, responseUrl?: string): Promise<void>;
|
|
2
|
+
export declare function sendTelegramMessage(bot: TelegramBot, chatId: number, text: string, responseUrl?: string, sessionId?: string): Promise<void>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import TelegramBot from "node-telegram-bot-api";
|
|
2
2
|
import { t } from "../../i18n/index.js";
|
|
3
3
|
import { logError } from "../../utils/log.js";
|
|
4
|
-
import { SPLIT_LOOKBACK_RANGE } from "../../utils/constants.js";
|
|
5
4
|
const TELEGRAM_MAX_MESSAGE_LENGTH = 4096;
|
|
6
5
|
const PAGINATION_FOOTER_RESERVE = 30;
|
|
7
|
-
|
|
6
|
+
const SPLIT_LOOKBACK_RANGE = 200;
|
|
7
|
+
export async function sendTelegramMessage(bot, chatId, text, responseUrl, sessionId) {
|
|
8
8
|
const pages = splitMessage(text, TELEGRAM_MAX_MESSAGE_LENGTH - PAGINATION_FOOTER_RESERVE);
|
|
9
9
|
for (let i = 0; i < pages.length; i++) {
|
|
10
10
|
let content = pages[i];
|
|
@@ -14,7 +14,7 @@ export async function sendTelegramMessage(bot, chatId, text, responseUrl) {
|
|
|
14
14
|
const isLastPage = i === pages.length - 1;
|
|
15
15
|
const opts = { parse_mode: "MarkdownV2" };
|
|
16
16
|
if (isLastPage && responseUrl) {
|
|
17
|
-
opts.reply_markup = buildResponseReplyMarkup(responseUrl);
|
|
17
|
+
opts.reply_markup = buildResponseReplyMarkup(responseUrl, sessionId);
|
|
18
18
|
}
|
|
19
19
|
try {
|
|
20
20
|
await bot.sendMessage(chatId, content, opts);
|
|
@@ -23,14 +23,19 @@ export async function sendTelegramMessage(bot, chatId, text, responseUrl) {
|
|
|
23
23
|
logError(t("bot.sendFailed"), err);
|
|
24
24
|
const fallbackOpts = {};
|
|
25
25
|
if (isLastPage && responseUrl) {
|
|
26
|
-
fallbackOpts.reply_markup = buildResponseReplyMarkup(responseUrl);
|
|
26
|
+
fallbackOpts.reply_markup = buildResponseReplyMarkup(responseUrl, sessionId);
|
|
27
27
|
}
|
|
28
28
|
try {
|
|
29
29
|
await bot.sendMessage(chatId, pages[i], fallbackOpts);
|
|
30
30
|
}
|
|
31
31
|
catch (err2) {
|
|
32
32
|
logError(t("bot.sendFallbackFailed"), err2);
|
|
33
|
-
|
|
33
|
+
try {
|
|
34
|
+
await bot.sendMessage(chatId, pages[i]);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// final fallback exhausted, message lost
|
|
38
|
+
}
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
}
|
|
@@ -62,11 +67,15 @@ function findSplitPoint(text, maxLen) {
|
|
|
62
67
|
}
|
|
63
68
|
return maxLen;
|
|
64
69
|
}
|
|
65
|
-
function buildResponseReplyMarkup(responseUrl) {
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
? { text:
|
|
69
|
-
: { text:
|
|
70
|
-
|
|
70
|
+
function buildResponseReplyMarkup(responseUrl, sessionId) {
|
|
71
|
+
const viewText = sessionId ? "📖" : t("bot.viewDetails");
|
|
72
|
+
const viewButton = responseUrl.startsWith("https://")
|
|
73
|
+
? { text: viewText, web_app: { url: responseUrl } }
|
|
74
|
+
: { text: viewText, url: responseUrl };
|
|
75
|
+
const buttons = [viewButton];
|
|
76
|
+
if (sessionId) {
|
|
77
|
+
buttons.push({ text: "💬 Chat", callback_data: `chat:${sessionId}` });
|
|
78
|
+
}
|
|
79
|
+
return { inline_keyboard: [buttons] };
|
|
71
80
|
}
|
|
72
81
|
//# sourceMappingURL=telegram-sender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-sender.js","sourceRoot":"","sources":["../../../src/channel/telegram/telegram-sender.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"telegram-sender.js","sourceRoot":"","sources":["../../../src/channel/telegram/telegram-sender.ts"],"names":[],"mappings":"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"}
|
package/dist/channel/types.d.ts
CHANGED
package/dist/commands/help.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
|
-
import { detectCliPrefix } from "../utils/install-detection.js";
|
|
3
2
|
import { t } from "../i18n/index.js";
|
|
3
|
+
import { detectCliPrefix } from "../utils/install-detection.js";
|
|
4
4
|
export function runHelp() {
|
|
5
5
|
const prefix = detectCliPrefix();
|
|
6
6
|
p.intro(t("help.intro"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,MAAM,UAAU,OAAO;IACrB,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAEzB,CAAC,CAAC,GAAG,CAAC,OAAO,CACX;QACE,CAAC,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC;QAC3B,EAAE;QACF,CAAC,CAAC,eAAe,CAAC;QAClB,CAAC,CAAC,cAAc,CAAC;QACjB,CAAC,CAAC,eAAe,CAAC;QAClB,CAAC,CAAC,gBAAgB,CAAC;QACnB,CAAC,CAAC,mBAAmB,CAAC;QACtB,CAAC,CAAC,cAAc,CAAC;KAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IAEF,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
2
|
import TelegramBot from "node-telegram-bot-api";
|
|
3
3
|
import qrcode from "qrcode-terminal";
|
|
4
|
-
import { ConfigManager } from "../config-manager.js";
|
|
5
4
|
import { createDefaultRegistry } from "../agent/agent-registry.js";
|
|
6
5
|
import { AgentName } from "../agent/types.js";
|
|
6
|
+
import { ConfigManager } from "../config-manager.js";
|
|
7
|
+
import { Locale, LOCALE_LABELS, setLocale, SUPPORTED_LOCALES, t } from "../i18n/index.js";
|
|
8
|
+
import { DEFAULT_HOOK_PORT } from "../utils/constants.js";
|
|
7
9
|
import { detectCliPrefix } from "../utils/install-detection.js";
|
|
8
|
-
|
|
9
|
-
import { DEFAULT_HOOK_PORT, SETUP_WAIT_TIMEOUT_MS } from "../utils/constants.js";
|
|
10
|
+
const SETUP_WAIT_TIMEOUT_MS = 120_000;
|
|
10
11
|
export async function runSetup() {
|
|
11
12
|
p.intro(t("setup.intro"));
|
|
12
13
|
let existing = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,MAAM,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as p from "@clack/prompts";
|
|
2
1
|
import { rmSync } from "node:fs";
|
|
2
|
+
import * as p from "@clack/prompts";
|
|
3
3
|
import { createDefaultRegistry } from "../agent/agent-registry.js";
|
|
4
|
-
import { detectInstallMethod } from "../utils/install-detection.js";
|
|
5
|
-
import { InstallMethod } from "../utils/constants.js";
|
|
6
4
|
import { t } from "../i18n/index.js";
|
|
5
|
+
import { InstallMethod } from "../utils/constants.js";
|
|
6
|
+
import { detectInstallMethod } from "../utils/install-detection.js";
|
|
7
7
|
import { paths } from "../utils/paths.js";
|
|
8
8
|
export function runUninstall() {
|
|
9
9
|
p.intro(t("uninstall.intro"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,UAAU,YAAY;IAC1B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE9B,mBAAmB,EAAE,CAAC;IACtB,qBAAqB,EAAE,CAAC;IAExB,sBAAsB,EAAE,CAAC;IAEzB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB;IAC1B,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IAEzC,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC;QACH,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAErC,IAAI,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,MAAM,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC7C,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
|
package/dist/commands/update.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import * as p from "@clack/prompts";
|
|
2
1
|
import { execSync } from "node:child_process";
|
|
3
2
|
import { existsSync } from "node:fs";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import { InstallMethod, PackageManager } from "../utils/constants.js";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import * as p from "@clack/prompts";
|
|
7
5
|
import { t } from "../i18n/index.js";
|
|
6
|
+
import { InstallMethod, PackageManager } from "../utils/constants.js";
|
|
7
|
+
import { detectInstallMethod, getGitRepoRoot } from "../utils/install-detection.js";
|
|
8
8
|
import { getPackageVersion } from "../utils/paths.js";
|
|
9
9
|
export function runUpdate() {
|
|
10
10
|
const method = detectInstallMethod();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|