ccpoke 1.3.1 → 1.4.1
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 +30 -14
- package/README.md +30 -14
- package/dist/channel/telegram/telegram-channel.js +7 -11
- package/dist/channel/telegram/telegram-channel.js.map +1 -1
- package/dist/commands/setup.d.ts +2 -1
- package/dist/commands/setup.js +82 -40
- package/dist/commands/setup.js.map +1 -1
- package/dist/i18n/locales/en.js +9 -4
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/vi.js +9 -4
- package/dist/i18n/locales/vi.js.map +1 -1
- package/dist/i18n/locales/zh.js +9 -4
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/types.d.ts +9 -4
- package/dist/index.js +18 -6
- package/dist/index.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +1 -0
- package/dist/utils/constants.js.map +1 -1
- package/package.json +5 -3
package/README.en.md
CHANGED
|
@@ -34,23 +34,23 @@ Claude Code completes response
|
|
|
34
34
|
## Requirements
|
|
35
35
|
|
|
36
36
|
- **Node.js** ≥ 18
|
|
37
|
-
- **pnpm** (or npm/yarn)
|
|
38
37
|
- **Telegram Bot Token** — create from [@BotFather](https://t.me/BotFather)
|
|
39
|
-
- **Telegram User ID** — get from [@userinfobot](https://t.me/userinfobot)
|
|
40
38
|
|
|
41
39
|
## Getting Started
|
|
42
40
|
|
|
43
|
-
### Option 1:
|
|
41
|
+
### Option 1: npx (recommended — zero install)
|
|
44
42
|
|
|
45
43
|
```bash
|
|
46
|
-
|
|
47
|
-
ccpoke setup
|
|
44
|
+
npx ccpoke
|
|
48
45
|
```
|
|
49
46
|
|
|
50
|
-
|
|
47
|
+
First run → auto setup → start bot. One command, that's it.
|
|
48
|
+
|
|
49
|
+
### Option 2: Global install (daily use, faster startup)
|
|
51
50
|
|
|
52
51
|
```bash
|
|
53
|
-
|
|
52
|
+
npm i -g ccpoke
|
|
53
|
+
ccpoke
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
### Option 3: Clone repo (for development)
|
|
@@ -59,7 +59,7 @@ npx ccpoke setup
|
|
|
59
59
|
git clone https://github.com/palooza-kaida/ccpoke.git
|
|
60
60
|
cd ccpoke
|
|
61
61
|
pnpm install
|
|
62
|
-
pnpm
|
|
62
|
+
pnpm dev
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
The setup wizard will guide you step by step:
|
|
@@ -67,11 +67,27 @@ The setup wizard will guide you step by step:
|
|
|
67
67
|
```
|
|
68
68
|
┌ 🤖 ccpoke setup
|
|
69
69
|
│
|
|
70
|
+
◇ Language
|
|
71
|
+
│ English
|
|
72
|
+
│
|
|
70
73
|
◇ Telegram Bot Token
|
|
71
74
|
│ your-bot-token
|
|
72
75
|
│
|
|
73
|
-
◇
|
|
74
|
-
│
|
|
76
|
+
◇ ✓ Bot: @your_bot
|
|
77
|
+
│
|
|
78
|
+
◇ Scan QR or open link to connect:
|
|
79
|
+
│ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
80
|
+
│ █ ▄▄▄▄▄ █▄▄████▀ ▄██▄▄█ ▄▄▄▄▄ █
|
|
81
|
+
│ █ █ █ █ ▀█ ▄▄▄▄▀▀▄▀ █ █ █ █
|
|
82
|
+
│ █ █▄▄▄█ █▄ ▄▄▀▄▀██▄ ▄█ █▄▄▄█ █
|
|
83
|
+
│ █▄▄▄▄▄▄▄█▄▀▄▀▄▀ █▄▀▄█▄█▄▄▄▄▄▄▄█
|
|
84
|
+
│ ...
|
|
85
|
+
│ █▄▄▄▄▄▄▄█▄███▄█▄███▄▄▄▄███▄█▄██
|
|
86
|
+
│ https://t.me/your_bot?start=setup
|
|
87
|
+
│
|
|
88
|
+
◇ Waiting for you to send /start to the bot...
|
|
89
|
+
│
|
|
90
|
+
◆ ✓ Connected! User ID: 123456789
|
|
75
91
|
│
|
|
76
92
|
◆ Config saved
|
|
77
93
|
◆ Hook installed → ~/.claude/settings.json
|
|
@@ -102,12 +118,12 @@ Then run `ccpoke setup` to install the hook and register your chat ID.
|
|
|
102
118
|
### Start the bot
|
|
103
119
|
|
|
104
120
|
```bash
|
|
105
|
-
#
|
|
106
|
-
ccpoke
|
|
107
|
-
|
|
108
|
-
# Or npx
|
|
121
|
+
# npx (zero install)
|
|
109
122
|
npx ccpoke
|
|
110
123
|
|
|
124
|
+
# Or global install
|
|
125
|
+
ccpoke
|
|
126
|
+
|
|
111
127
|
# Or local dev
|
|
112
128
|
pnpm dev
|
|
113
129
|
```
|
package/README.md
CHANGED
|
@@ -34,23 +34,23 @@ Claude Code xong response
|
|
|
34
34
|
## Yêu cầu
|
|
35
35
|
|
|
36
36
|
- **Node.js** ≥ 18
|
|
37
|
-
- **pnpm** (hoặc npm/yarn)
|
|
38
37
|
- **Telegram Bot Token** — tạo từ [@BotFather](https://t.me/BotFather)
|
|
39
|
-
- **Telegram User ID** — lấy từ [@userinfobot](https://t.me/userinfobot)
|
|
40
38
|
|
|
41
39
|
## Bắt đầu
|
|
42
40
|
|
|
43
|
-
### Cách 1:
|
|
41
|
+
### Cách 1: npx (khuyến nghị — zero install)
|
|
44
42
|
|
|
45
43
|
```bash
|
|
46
|
-
|
|
47
|
-
ccpoke setup
|
|
44
|
+
npx ccpoke
|
|
48
45
|
```
|
|
49
46
|
|
|
50
|
-
|
|
47
|
+
Lần đầu chạy → tự động setup → start bot. Một lệnh duy nhất.
|
|
48
|
+
|
|
49
|
+
### Cách 2: Global install (dùng hàng ngày, khởi động nhanh hơn)
|
|
51
50
|
|
|
52
51
|
```bash
|
|
53
|
-
|
|
52
|
+
npm i -g ccpoke
|
|
53
|
+
ccpoke
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
### Cách 3: Clone repo (cho development)
|
|
@@ -59,7 +59,7 @@ npx ccpoke setup
|
|
|
59
59
|
git clone https://github.com/palooza-kaida/ccpoke.git
|
|
60
60
|
cd ccpoke
|
|
61
61
|
pnpm install
|
|
62
|
-
pnpm
|
|
62
|
+
pnpm dev
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Setup wizard sẽ hướng dẫn từng bước:
|
|
@@ -67,11 +67,27 @@ Setup wizard sẽ hướng dẫn từng bước:
|
|
|
67
67
|
```
|
|
68
68
|
┌ 🤖 ccpoke setup
|
|
69
69
|
│
|
|
70
|
+
◇ Language
|
|
71
|
+
│ English
|
|
72
|
+
│
|
|
70
73
|
◇ Telegram Bot Token
|
|
71
74
|
│ your-bot-token
|
|
72
75
|
│
|
|
73
|
-
◇
|
|
74
|
-
│
|
|
76
|
+
◇ ✓ Bot: @your_bot
|
|
77
|
+
│
|
|
78
|
+
◇ Scan QR or open link to connect:
|
|
79
|
+
│ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
80
|
+
│ █ ▄▄▄▄▄ █▄▄████▀ ▄██▄▄█ ▄▄▄▄▄ █
|
|
81
|
+
│ █ █ █ █ ▀█ ▄▄▄▄▀▀▄▀ █ █ █ █
|
|
82
|
+
│ █ █▄▄▄█ █▄ ▄▄▀▄▀██▄ ▄█ █▄▄▄█ █
|
|
83
|
+
│ █▄▄▄▄▄▄▄█▄▀▄▀▄▀ █▄▀▄█▄█▄▄▄▄▄▄▄█
|
|
84
|
+
│ ...
|
|
85
|
+
│ █▄▄▄▄▄▄▄█▄███▄█▄███▄▄▄▄███▄█▄██
|
|
86
|
+
│ https://t.me/your_bot?start=setup
|
|
87
|
+
│
|
|
88
|
+
◇ Waiting for you to send /start to the bot...
|
|
89
|
+
│
|
|
90
|
+
◆ ✓ Connected! User ID: 123456789
|
|
75
91
|
│
|
|
76
92
|
◆ Config saved
|
|
77
93
|
◆ Hook installed → ~/.claude/settings.json
|
|
@@ -102,12 +118,12 @@ Sau đó chạy `ccpoke setup` để cài hook và đăng ký chat ID.
|
|
|
102
118
|
### Khởi động bot
|
|
103
119
|
|
|
104
120
|
```bash
|
|
105
|
-
#
|
|
106
|
-
ccpoke
|
|
107
|
-
|
|
108
|
-
# Hoặc npx
|
|
121
|
+
# npx (zero install)
|
|
109
122
|
npx ccpoke
|
|
110
123
|
|
|
124
|
+
# Hoặc global install
|
|
125
|
+
ccpoke
|
|
126
|
+
|
|
111
127
|
# Hoặc local dev
|
|
112
128
|
pnpm dev
|
|
113
129
|
```
|
|
@@ -90,7 +90,7 @@ export class TelegramChannel {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
registerHandlers() {
|
|
93
|
-
this.bot.
|
|
93
|
+
this.bot.onText(/\/start(?:\s|$)/, (msg) => {
|
|
94
94
|
if (!ConfigManager.isOwner(this.cfg, msg.from?.id ?? 0)) {
|
|
95
95
|
log(t("bot.unauthorizedUser", {
|
|
96
96
|
userId: msg.from?.id ?? 0,
|
|
@@ -98,18 +98,14 @@ export class TelegramChannel {
|
|
|
98
98
|
}));
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (this.chatId === msg.chat.id) {
|
|
104
|
-
this.bot.sendMessage(msg.chat.id, t("bot.alreadyConnected"));
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
this.chatId = msg.chat.id;
|
|
108
|
-
ConfigManager.saveChatState({ chat_id: this.chatId });
|
|
109
|
-
log(t("bot.registeredChatId", { chatId: msg.chat.id }));
|
|
110
|
-
this.bot.sendMessage(msg.chat.id, t("bot.ready"), { parse_mode: "MarkdownV2" });
|
|
101
|
+
if (this.chatId === msg.chat.id) {
|
|
102
|
+
this.bot.sendMessage(msg.chat.id, t("bot.alreadyConnected"));
|
|
111
103
|
return;
|
|
112
104
|
}
|
|
105
|
+
this.chatId = msg.chat.id;
|
|
106
|
+
ConfigManager.saveChatState({ chat_id: this.chatId });
|
|
107
|
+
log(t("bot.registeredChatId", { chatId: msg.chat.id }));
|
|
108
|
+
this.bot.sendMessage(msg.chat.id, t("bot.ready"), { parse_mode: "MarkdownV2" });
|
|
113
109
|
});
|
|
114
110
|
}
|
|
115
111
|
registerPollingErrorHandler() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telegram-channel.js","sourceRoot":"","sources":["../../../src/channel/telegram/telegram-channel.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"telegram-channel.js","sourceRoot":"","sources":["../../../src/channel/telegram/telegram-channel.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { type Config } from "../config-manager.js";
|
|
2
|
+
export declare function runSetup(): Promise<Config>;
|
package/dist/commands/setup.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as p from "@clack/prompts";
|
|
2
|
+
import TelegramBot from "node-telegram-bot-api";
|
|
3
|
+
import qrcode from "qrcode-terminal";
|
|
2
4
|
import { ConfigManager } from "../config-manager.js";
|
|
3
5
|
import { HookInstaller } from "../hook/hook-installer.js";
|
|
4
6
|
import { detectCliPrefix } from "../utils/install-detection.js";
|
|
5
7
|
import { t, setLocale, SUPPORTED_LOCALES, LOCALE_LABELS } from "../i18n/index.js";
|
|
6
|
-
import { DEFAULT_HOOK_PORT } from "../utils/constants.js";
|
|
8
|
+
import { DEFAULT_HOOK_PORT, SETUP_WAIT_TIMEOUT_MS } from "../utils/constants.js";
|
|
7
9
|
export async function runSetup() {
|
|
8
10
|
p.intro(t("setup.intro"));
|
|
9
11
|
let existing = null;
|
|
@@ -11,17 +13,20 @@ export async function runSetup() {
|
|
|
11
13
|
existing = ConfigManager.load();
|
|
12
14
|
}
|
|
13
15
|
catch {
|
|
14
|
-
// first-time setup
|
|
16
|
+
// first-time setup
|
|
15
17
|
}
|
|
16
18
|
const locale = await promptLanguage(existing);
|
|
17
19
|
setLocale(locale);
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
+
const token = await promptToken(existing);
|
|
21
|
+
const botUsername = await verifyToken(token);
|
|
22
|
+
const userId = await waitForUserStart(token, botUsername);
|
|
23
|
+
const config = buildConfig(token, userId, existing, locale);
|
|
20
24
|
saveConfig(config);
|
|
21
25
|
installHook(config);
|
|
22
|
-
registerChatId(
|
|
26
|
+
registerChatId(userId);
|
|
23
27
|
const startCommand = detectCliPrefix();
|
|
24
28
|
p.outro(t("setup.complete", { command: startCommand }));
|
|
29
|
+
return config;
|
|
25
30
|
}
|
|
26
31
|
async function promptLanguage(existing) {
|
|
27
32
|
const result = await p.select({
|
|
@@ -38,45 +43,82 @@ async function promptLanguage(existing) {
|
|
|
38
43
|
}
|
|
39
44
|
return result;
|
|
40
45
|
}
|
|
41
|
-
async function
|
|
42
|
-
const result = await p.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return t("setup.tokenInvalidFormat");
|
|
52
|
-
},
|
|
53
|
-
}),
|
|
54
|
-
userId: () => p.text({
|
|
55
|
-
message: t("setup.userIdMessage"),
|
|
56
|
-
placeholder: t("setup.userIdPlaceholder"),
|
|
57
|
-
initialValue: existing?.user_id?.toString() ?? "",
|
|
58
|
-
validate(value) {
|
|
59
|
-
if (!value || !value.trim())
|
|
60
|
-
return t("setup.userIdRequired");
|
|
61
|
-
if (isNaN(parseInt(value, 10)))
|
|
62
|
-
return t("setup.userIdMustBeNumber");
|
|
63
|
-
},
|
|
64
|
-
}),
|
|
65
|
-
}, {
|
|
66
|
-
onCancel: () => {
|
|
67
|
-
p.cancel(t("setup.cancelled"));
|
|
68
|
-
process.exit(0);
|
|
46
|
+
async function promptToken(existing) {
|
|
47
|
+
const result = await p.text({
|
|
48
|
+
message: t("setup.tokenMessage"),
|
|
49
|
+
placeholder: t("setup.tokenPlaceholder"),
|
|
50
|
+
initialValue: existing?.telegram_bot_token ?? "",
|
|
51
|
+
validate(value) {
|
|
52
|
+
if (!value || !value.trim())
|
|
53
|
+
return t("setup.tokenRequired");
|
|
54
|
+
if (!value.includes(":"))
|
|
55
|
+
return t("setup.tokenInvalidFormat");
|
|
69
56
|
},
|
|
70
57
|
});
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
58
|
+
if (p.isCancel(result)) {
|
|
59
|
+
p.cancel(t("setup.cancelled"));
|
|
60
|
+
process.exit(0);
|
|
61
|
+
}
|
|
62
|
+
return result.trim();
|
|
63
|
+
}
|
|
64
|
+
async function verifyToken(token) {
|
|
65
|
+
const spinner = p.spinner();
|
|
66
|
+
spinner.start(t("setup.verifyingToken"));
|
|
67
|
+
try {
|
|
68
|
+
const bot = new TelegramBot(token);
|
|
69
|
+
const me = await bot.getMe();
|
|
70
|
+
spinner.stop(t("setup.botVerified", { username: me.username ?? "unknown" }));
|
|
71
|
+
return me.username ?? "unknown";
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
spinner.stop(t("setup.tokenVerifyFailed"));
|
|
75
|
+
throw new Error(t("setup.tokenVerifyFailed"));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async function waitForUserStart(token, botUsername) {
|
|
79
|
+
const deepLink = `https://t.me/${botUsername}?start=setup`;
|
|
80
|
+
p.log.step(t("setup.scanOrClick"));
|
|
81
|
+
const qrString = await new Promise((resolve) => {
|
|
82
|
+
qrcode.generate(deepLink, { small: true }, (code) => {
|
|
83
|
+
resolve(code);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
const indentedQr = qrString
|
|
87
|
+
.split("\n")
|
|
88
|
+
.filter((line) => line.trim())
|
|
89
|
+
.map((line) => `│ ${line}`)
|
|
90
|
+
.join("\n");
|
|
91
|
+
process.stdout.write(`${indentedQr}\n│\n│ ${deepLink}\n`);
|
|
92
|
+
p.log.step(t("setup.waitingForStart"));
|
|
93
|
+
const bot = new TelegramBot(token, { polling: true });
|
|
94
|
+
try {
|
|
95
|
+
const userId = await new Promise((resolve, reject) => {
|
|
96
|
+
const timeout = setTimeout(() => {
|
|
97
|
+
bot.stopPolling();
|
|
98
|
+
reject(new Error(t("setup.waitingTimeout", { seconds: SETUP_WAIT_TIMEOUT_MS / 1000 })));
|
|
99
|
+
}, SETUP_WAIT_TIMEOUT_MS);
|
|
100
|
+
bot.onText(/\/start(?:\s|$)/, (msg) => {
|
|
101
|
+
clearTimeout(timeout);
|
|
102
|
+
bot
|
|
103
|
+
.sendMessage(msg.chat.id, t("setup.userDetected", { userId: msg.from.id }))
|
|
104
|
+
.finally(() => {
|
|
105
|
+
bot.stopPolling();
|
|
106
|
+
resolve(msg.from.id);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
p.log.success(t("setup.userDetected", { userId }));
|
|
111
|
+
return userId;
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
bot.stopPolling();
|
|
115
|
+
throw err;
|
|
116
|
+
}
|
|
75
117
|
}
|
|
76
|
-
function buildConfig(
|
|
118
|
+
function buildConfig(token, userId, existing, locale) {
|
|
77
119
|
return {
|
|
78
|
-
telegram_bot_token:
|
|
79
|
-
user_id:
|
|
120
|
+
telegram_bot_token: token,
|
|
121
|
+
user_id: userId,
|
|
80
122
|
hook_port: existing?.hook_port || DEFAULT_HOOK_PORT,
|
|
81
123
|
hook_secret: existing?.hook_secret || ConfigManager.generateSecret(),
|
|
82
124
|
locale,
|
|
@@ -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,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAe,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/locales/en.js
CHANGED
|
@@ -22,6 +22,8 @@ export const en = {
|
|
|
22
22
|
open: "Open",
|
|
23
23
|
sendFailed: "send failed, falling back",
|
|
24
24
|
sendFallbackFailed: "fallback also failed",
|
|
25
|
+
firstTimeSetup: "no config found — starting setup wizard...",
|
|
26
|
+
globalInstallTip: "💡 Tip: run 'npm i -g ccpoke' for faster startup",
|
|
25
27
|
},
|
|
26
28
|
setup: {
|
|
27
29
|
intro: "🤖 ccpoke setup",
|
|
@@ -29,10 +31,13 @@ export const en = {
|
|
|
29
31
|
tokenPlaceholder: "Get from @BotFather → /newbot",
|
|
30
32
|
tokenRequired: "Bot token is required",
|
|
31
33
|
tokenInvalidFormat: "Invalid format (expected: 123456:ABC-xxx)",
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
verifyingToken: "Verifying token...",
|
|
35
|
+
botVerified: "✓ Bot: @{username}",
|
|
36
|
+
scanOrClick: "Scan QR or open link to connect:",
|
|
37
|
+
waitingForStart: "Waiting for you to send /start to the bot...",
|
|
38
|
+
userDetected: "✓ Connected! User ID: {userId}",
|
|
39
|
+
tokenVerifyFailed: "Invalid bot token — could not reach Telegram API",
|
|
40
|
+
waitingTimeout: "Timed out waiting for /start ({seconds}s). Try again.",
|
|
36
41
|
cancelled: "Setup cancelled.",
|
|
37
42
|
configSaved: "Config saved",
|
|
38
43
|
hookInstalled: "Hook installed → ~/.claude/settings.json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/i18n/locales/en.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAoB;IACjC,GAAG,EAAE;QACH,OAAO,EAAE,6BAA6B;QACtC,YAAY,EAAE,kBAAkB;QAChC,eAAe,EAAE,sBAAsB;QACvC,kBAAkB,EAAE,qBAAqB;QACzC,sBAAsB,EAAE,6BAA6B;QACrD,oBAAoB,EAAE,iCAAiC;QACvD,gBAAgB,EAAE,gCAAgC;QAClD,QAAQ,EAAE,+DAA+D;QACzE,kBAAkB,EAAE,6BAA6B;QACjD,gBAAgB,EAAE,6BAA6B;QAC/C,gBAAgB,EAAE,yCAAyC;QAC3D,KAAK,EACH,mGAAmG;QACrG,gBAAgB,EAAE,0DAA0D;QAC5E,cAAc,EAAE,8CAA8C;QAC9D,kBAAkB,EAAE,2BAA2B;QAC/C,QAAQ,EAAE;YACR,KAAK,EAAE,0BAA0B;SAClC;QACD,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,2BAA2B;QACvC,kBAAkB,EAAE,sBAAsB;
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/i18n/locales/en.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/locales/vi.js
CHANGED
|
@@ -22,6 +22,8 @@ export const vi = {
|
|
|
22
22
|
open: "Mở",
|
|
23
23
|
sendFailed: "gửi thất bại, dùng fallback",
|
|
24
24
|
sendFallbackFailed: "fallback cũng thất bại",
|
|
25
|
+
firstTimeSetup: "chưa có config — bắt đầu setup...",
|
|
26
|
+
globalInstallTip: "💡 Tip: chạy 'npm i -g ccpoke' để khởi động nhanh hơn",
|
|
25
27
|
},
|
|
26
28
|
setup: {
|
|
27
29
|
intro: "🤖 ccpoke setup",
|
|
@@ -29,10 +31,13 @@ export const vi = {
|
|
|
29
31
|
tokenPlaceholder: "Lấy từ @BotFather → /newbot",
|
|
30
32
|
tokenRequired: "Bot token là bắt buộc",
|
|
31
33
|
tokenInvalidFormat: "Sai định dạng (cần: 123456:ABC-xxx)",
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
verifyingToken: "Đang xác thực token...",
|
|
35
|
+
botVerified: "✓ Bot: @{username}",
|
|
36
|
+
scanOrClick: "Quét QR hoặc mở link để kết nối:",
|
|
37
|
+
waitingForStart: "Đang chờ bạn gửi /start cho bot...",
|
|
38
|
+
userDetected: "✓ Đã kết nối! User ID: {userId}",
|
|
39
|
+
tokenVerifyFailed: "Token không hợp lệ — không thể kết nối Telegram API",
|
|
40
|
+
waitingTimeout: "Hết thời gian chờ /start ({seconds}s). Vui lòng thử lại.",
|
|
36
41
|
cancelled: "Đã hủy setup.",
|
|
37
42
|
configSaved: "Đã lưu config",
|
|
38
43
|
hookInstalled: "Đã cài hook → ~/.claude/settings.json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vi.js","sourceRoot":"","sources":["../../../src/i18n/locales/vi.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAoB;IACjC,GAAG,EAAE;QACH,OAAO,EAAE,kCAAkC;QAC3C,YAAY,EAAE,aAAa;QAC3B,eAAe,EAAE,2BAA2B;QAC5C,kBAAkB,EAAE,qBAAqB;QACzC,sBAAsB,EAAE,2BAA2B;QACnD,oBAAoB,EAAE,iCAAiC;QACvD,gBAAgB,EAAE,8BAA8B;QAChD,QAAQ,EAAE,+DAA+D;QACzE,kBAAkB,EAAE,2BAA2B;QAC/C,gBAAgB,EAAE,6BAA6B;QAC/C,gBAAgB,EAAE,2CAA2C;QAC7D,KAAK,EACH,8FAA8F;QAChG,gBAAgB,EAAE,2DAA2D;QAC7E,cAAc,EAAE,uDAAuD;QACvE,kBAAkB,EAAE,2BAA2B;QAC/C,QAAQ,EAAE;YACR,KAAK,EAAE,0BAA0B;SAClC;QACD,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,6BAA6B;QACzC,kBAAkB,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"vi.js","sourceRoot":"","sources":["../../../src/i18n/locales/vi.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/locales/zh.js
CHANGED
|
@@ -22,6 +22,8 @@ export const zh = {
|
|
|
22
22
|
open: "打开",
|
|
23
23
|
sendFailed: "发送失败,使用备用方式",
|
|
24
24
|
sendFallbackFailed: "备用方式也失败",
|
|
25
|
+
firstTimeSetup: "未找到配置 — 正在启动设置向导...",
|
|
26
|
+
globalInstallTip: "💡 提示: 运行 'npm i -g ccpoke' 可加快启动速度",
|
|
25
27
|
},
|
|
26
28
|
setup: {
|
|
27
29
|
intro: "🤖 ccpoke 设置",
|
|
@@ -29,10 +31,13 @@ export const zh = {
|
|
|
29
31
|
tokenPlaceholder: "从 @BotFather → /newbot 获取",
|
|
30
32
|
tokenRequired: "Bot token 为必填项",
|
|
31
33
|
tokenInvalidFormat: "格式无效 (需要: 123456:ABC-xxx)",
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
verifyingToken: "正在验证 token...",
|
|
35
|
+
botVerified: "✓ Bot: @{username}",
|
|
36
|
+
scanOrClick: "扫描二维码或打开链接以连接:",
|
|
37
|
+
waitingForStart: "等待您向机器人发送 /start...",
|
|
38
|
+
userDetected: "✓ 已连接!用户 ID: {userId}",
|
|
39
|
+
tokenVerifyFailed: "无效的 bot token — 无法连接 Telegram API",
|
|
40
|
+
waitingTimeout: "等待 /start 超时 ({seconds}s)。请重试。",
|
|
36
41
|
cancelled: "设置已取消。",
|
|
37
42
|
configSaved: "配置已保存",
|
|
38
43
|
hookInstalled: "Hook 已安装 → ~/.claude/settings.json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zh.js","sourceRoot":"","sources":["../../../src/i18n/locales/zh.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,EAAE,GAAoB;IACjC,GAAG,EAAE;QACH,OAAO,EAAE,sBAAsB;QAC/B,YAAY,EAAE,SAAS;QACvB,eAAe,EAAE,kBAAkB;QACnC,kBAAkB,EAAE,OAAO;QAC3B,sBAAsB,EAAE,QAAQ;QAChC,oBAAoB,EAAE,YAAY;QAClC,gBAAgB,EAAE,UAAU;QAC5B,QAAQ,EAAE,2CAA2C;QACrD,kBAAkB,EAAE,QAAQ;QAC5B,gBAAgB,EAAE,kBAAkB;QACpC,gBAAgB,EAAE,6BAA6B;QAC/C,KAAK,EAAE,kDAAkD;QACzD,gBAAgB,EAAE,yBAAyB;QAC3C,cAAc,EAAE,8BAA8B;QAC9C,kBAAkB,EAAE,kBAAkB;QACtC,QAAQ,EAAE;YACR,KAAK,EAAE,YAAY;SACpB;QACD,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,aAAa;QACzB,kBAAkB,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"zh.js","sourceRoot":"","sources":["../../../src/i18n/locales/zh.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n/types.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export interface TranslationKeys {
|
|
|
22
22
|
open: string;
|
|
23
23
|
sendFailed: string;
|
|
24
24
|
sendFallbackFailed: string;
|
|
25
|
+
firstTimeSetup: string;
|
|
26
|
+
globalInstallTip: string;
|
|
25
27
|
};
|
|
26
28
|
setup: {
|
|
27
29
|
intro: string;
|
|
@@ -29,10 +31,13 @@ export interface TranslationKeys {
|
|
|
29
31
|
tokenPlaceholder: string;
|
|
30
32
|
tokenRequired: string;
|
|
31
33
|
tokenInvalidFormat: string;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
verifyingToken: string;
|
|
35
|
+
botVerified: string;
|
|
36
|
+
scanOrClick: string;
|
|
37
|
+
waitingForStart: string;
|
|
38
|
+
userDetected: string;
|
|
39
|
+
tokenVerifyFailed: string;
|
|
40
|
+
waitingTimeout: string;
|
|
36
41
|
cancelled: string;
|
|
37
42
|
configSaved: string;
|
|
38
43
|
hookInstalled: string;
|
package/dist/index.js
CHANGED
|
@@ -7,10 +7,11 @@ import { runSetup } from "./commands/setup.js";
|
|
|
7
7
|
import { runUpdate } from "./commands/update.js";
|
|
8
8
|
import { runUninstall } from "./commands/uninstall.js";
|
|
9
9
|
import { runHelp } from "./commands/help.js";
|
|
10
|
-
import { CliCommand } from "./utils/constants.js";
|
|
10
|
+
import { CliCommand, InstallMethod } from "./utils/constants.js";
|
|
11
11
|
import { t } from "./i18n/index.js";
|
|
12
12
|
import { TunnelManager } from "./utils/tunnel.js";
|
|
13
13
|
import { log, logError } from "./utils/log.js";
|
|
14
|
+
import { detectInstallMethod } from "./utils/install-detection.js";
|
|
14
15
|
const args = process.argv.slice(2);
|
|
15
16
|
if (args.length > 0) {
|
|
16
17
|
handleSubcommand(args);
|
|
@@ -18,15 +19,23 @@ if (args.length > 0) {
|
|
|
18
19
|
else {
|
|
19
20
|
startBot();
|
|
20
21
|
}
|
|
21
|
-
async function
|
|
22
|
-
let cfg;
|
|
22
|
+
async function loadOrSetupConfig() {
|
|
23
23
|
try {
|
|
24
|
-
|
|
24
|
+
return ConfigManager.load();
|
|
25
25
|
}
|
|
26
26
|
catch {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
log(t("bot.firstTimeSetup"));
|
|
28
|
+
try {
|
|
29
|
+
return await runSetup();
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
logError(t("common.setupFailed"), err);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
29
35
|
}
|
|
36
|
+
}
|
|
37
|
+
async function startBot() {
|
|
38
|
+
const cfg = await loadOrSetupConfig();
|
|
30
39
|
const hookServer = new HookServer(cfg.hook_port, cfg.hook_secret);
|
|
31
40
|
hookServer.start();
|
|
32
41
|
log(`ccpoke: ${t("bot.started", { port: cfg.hook_port })}`);
|
|
@@ -43,6 +52,9 @@ async function startBot() {
|
|
|
43
52
|
const handler = new HookHandler(channel, cfg.hook_port, tunnelManager);
|
|
44
53
|
hookServer.setHandler(handler);
|
|
45
54
|
await channel.initialize();
|
|
55
|
+
if (detectInstallMethod() === InstallMethod.Npx) {
|
|
56
|
+
log(t("bot.globalInstallTip"));
|
|
57
|
+
}
|
|
46
58
|
const shutdown = async () => {
|
|
47
59
|
log(t("bot.shuttingDown"));
|
|
48
60
|
tunnelManager.stop();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ export declare const ApiRoute: {
|
|
|
34
34
|
};
|
|
35
35
|
export declare const DEFAULT_HOOK_PORT = 9377;
|
|
36
36
|
export declare const TUNNEL_TIMEOUT_MS = 30000;
|
|
37
|
+
export declare const SETUP_WAIT_TIMEOUT_MS = 120000;
|
|
37
38
|
export declare const TRANSCRIPT_SETTLE_DELAY_MS = 500;
|
|
38
39
|
export declare const MAX_STORED_RESPONSES = 100;
|
|
39
40
|
export declare const RESPONSE_EXPIRE_MS: number;
|
package/dist/utils/constants.js
CHANGED
|
@@ -30,6 +30,7 @@ export const ApiRoute = {
|
|
|
30
30
|
};
|
|
31
31
|
export const DEFAULT_HOOK_PORT = 9377;
|
|
32
32
|
export const TUNNEL_TIMEOUT_MS = 30_000;
|
|
33
|
+
export const SETUP_WAIT_TIMEOUT_MS = 120_000;
|
|
33
34
|
export const TRANSCRIPT_SETTLE_DELAY_MS = 500;
|
|
34
35
|
export const MAX_STORED_RESPONSES = 100;
|
|
35
36
|
export const RESPONSE_EXPIRE_MS = 24 * 60 * 60 * 1000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC;AAIX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,WAAW;IACrB,GAAG,EAAE,KAAK;CACF,CAAC;AAIX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,IAAI;CACP,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;CACF,CAAC;AAIX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,oBAAoB;IAClC,MAAM,EAAE,SAAS;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACtD,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,wCAAwC,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC;AAIX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,WAAW;IACrB,GAAG,EAAE,KAAK;CACF,CAAC;AAIX,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,IAAI;CACP,CAAC;AAIX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;CACF,CAAC;AAIX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,oBAAoB;IAClC,MAAM,EAAE,SAAS;CACT,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAC7C,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACtD,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAG,wCAAwC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccpoke",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.4.1",
|
|
4
|
+
"description": "Your AI agent pokes you when it's done — zero-config, one command: npx ccpoke",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": {
|
|
@@ -67,13 +67,15 @@
|
|
|
67
67
|
"@clack/prompts": "^1.0.1",
|
|
68
68
|
"cloudflared": "^0.7.1",
|
|
69
69
|
"express": "^5.0.1",
|
|
70
|
-
"node-telegram-bot-api": "^0.66.0"
|
|
70
|
+
"node-telegram-bot-api": "^0.66.0",
|
|
71
|
+
"qrcode-terminal": "^0.12.0"
|
|
71
72
|
},
|
|
72
73
|
"devDependencies": {
|
|
73
74
|
"@eslint/js": "^10.0.1",
|
|
74
75
|
"@types/express": "^5.0.0",
|
|
75
76
|
"@types/node": "^22.13.4",
|
|
76
77
|
"@types/node-telegram-bot-api": "^0.64.8",
|
|
78
|
+
"@types/qrcode-terminal": "^0.12.2",
|
|
77
79
|
"eslint": "^10.0.0",
|
|
78
80
|
"eslint-config-prettier": "^10.1.8",
|
|
79
81
|
"eslint-plugin-prettier": "^5.5.5",
|