claude-telegram-mirror 0.1.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 +331 -0
- package/dist/bot/commands.d.ts +41 -0
- package/dist/bot/commands.d.ts.map +1 -0
- package/dist/bot/commands.js +231 -0
- package/dist/bot/commands.js.map +1 -0
- package/dist/bot/formatting.d.ts +62 -0
- package/dist/bot/formatting.d.ts.map +1 -0
- package/dist/bot/formatting.js +295 -0
- package/dist/bot/formatting.js.map +1 -0
- package/dist/bot/telegram.d.ts +93 -0
- package/dist/bot/telegram.d.ts.map +1 -0
- package/dist/bot/telegram.js +378 -0
- package/dist/bot/telegram.js.map +1 -0
- package/dist/bot/types.d.ts +28 -0
- package/dist/bot/types.d.ts.map +1 -0
- package/dist/bot/types.js +5 -0
- package/dist/bot/types.js.map +1 -0
- package/dist/bridge/daemon.d.ts +93 -0
- package/dist/bridge/daemon.d.ts.map +1 -0
- package/dist/bridge/daemon.js +626 -0
- package/dist/bridge/daemon.js.map +1 -0
- package/dist/bridge/index.d.ts +10 -0
- package/dist/bridge/index.d.ts.map +1 -0
- package/dist/bridge/index.js +9 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/injector.d.ts +97 -0
- package/dist/bridge/injector.d.ts.map +1 -0
- package/dist/bridge/injector.js +289 -0
- package/dist/bridge/injector.js.map +1 -0
- package/dist/bridge/session.d.ts +108 -0
- package/dist/bridge/session.d.ts.map +1 -0
- package/dist/bridge/session.js +381 -0
- package/dist/bridge/session.js.map +1 -0
- package/dist/bridge/socket.d.ts +97 -0
- package/dist/bridge/socket.d.ts.map +1 -0
- package/dist/bridge/socket.js +436 -0
- package/dist/bridge/socket.js.map +1 -0
- package/dist/bridge/types.d.ts +38 -0
- package/dist/bridge/types.d.ts.map +1 -0
- package/dist/bridge/types.js +5 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +332 -0
- package/dist/cli.js.map +1 -0
- package/dist/hooks/handler.d.ts +94 -0
- package/dist/hooks/handler.d.ts.map +1 -0
- package/dist/hooks/handler.js +431 -0
- package/dist/hooks/handler.js.map +1 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/installer.d.ts +46 -0
- package/dist/hooks/installer.d.ts.map +1 -0
- package/dist/hooks/installer.js +317 -0
- package/dist/hooks/installer.js.map +1 -0
- package/dist/hooks/types.d.ts +88 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +6 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/service/doctor.d.ts +10 -0
- package/dist/service/doctor.d.ts.map +1 -0
- package/dist/service/doctor.js +424 -0
- package/dist/service/doctor.js.map +1 -0
- package/dist/service/manager.d.ts +48 -0
- package/dist/service/manager.d.ts.map +1 -0
- package/dist/service/manager.js +584 -0
- package/dist/service/manager.js.map +1 -0
- package/dist/service/setup.d.ts +10 -0
- package/dist/service/setup.d.ts.map +1 -0
- package/dist/service/setup.js +266 -0
- package/dist/service/setup.js.map +1 -0
- package/dist/utils/chunker.d.ts +24 -0
- package/dist/utils/chunker.d.ts.map +1 -0
- package/dist/utils/chunker.js +123 -0
- package/dist/utils/chunker.js.map +1 -0
- package/dist/utils/config.d.ts +48 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +154 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +28 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +88 -0
- package/postinstall.cjs +76 -0
- package/scripts/claude-wrapper.sh +122 -0
- package/scripts/doctor.sh +433 -0
- package/scripts/get-chat-id.sh +64 -0
- package/scripts/global-hooks.sh +39 -0
- package/scripts/install.sh +831 -0
- package/scripts/start-daemon.sh +49 -0
- package/scripts/telegram-hook.sh +449 -0
- package/scripts/uninstall.sh +261 -0
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook Installer
|
|
3
|
+
* Installs Claude Code hooks for Telegram mirror integration
|
|
4
|
+
*/
|
|
5
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync } from 'fs';
|
|
6
|
+
import { join, dirname } from 'path';
|
|
7
|
+
import { homedir } from 'os';
|
|
8
|
+
import { execSync } from 'child_process';
|
|
9
|
+
import logger from '../utils/logger.js';
|
|
10
|
+
/**
|
|
11
|
+
* Claude Code settings paths
|
|
12
|
+
*/
|
|
13
|
+
const CLAUDE_CONFIG_DIR = join(homedir(), '.claude');
|
|
14
|
+
const CLAUDE_SETTINGS_FILE = join(CLAUDE_CONFIG_DIR, 'settings.json');
|
|
15
|
+
const HOOK_SCRIPT_NAME = 'telegram-hook.sh';
|
|
16
|
+
/**
|
|
17
|
+
* Get the path to the hook script
|
|
18
|
+
* Priority order:
|
|
19
|
+
* 1. Standard user install (~/.local/share/claude-telegram-mirror/scripts/)
|
|
20
|
+
* 2. npm global install
|
|
21
|
+
* 3. Local development (relative to this file)
|
|
22
|
+
* 4. Legacy /opt/ path (for backward compatibility)
|
|
23
|
+
*/
|
|
24
|
+
function getHookScriptPath() {
|
|
25
|
+
// 1. Check standard user install path FIRST (from install.sh)
|
|
26
|
+
const userInstallPath = join(homedir(), '.local', 'share', 'claude-telegram-mirror', 'scripts', HOOK_SCRIPT_NAME);
|
|
27
|
+
if (existsSync(userInstallPath)) {
|
|
28
|
+
return userInstallPath;
|
|
29
|
+
}
|
|
30
|
+
// 2. Check if installed globally via npm
|
|
31
|
+
try {
|
|
32
|
+
const globalPath = execSync('npm root -g', { encoding: 'utf8' }).trim();
|
|
33
|
+
const globalScript = join(globalPath, 'claude-telegram-mirror', 'scripts', HOOK_SCRIPT_NAME);
|
|
34
|
+
if (existsSync(globalScript)) {
|
|
35
|
+
return globalScript;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Not installed globally
|
|
40
|
+
}
|
|
41
|
+
// 3. Check local development path (relative to compiled dist/hooks/installer.js)
|
|
42
|
+
const localScript = join(dirname(dirname(dirname(import.meta.url.replace('file://', '')))), 'scripts', HOOK_SCRIPT_NAME);
|
|
43
|
+
if (existsSync(localScript)) {
|
|
44
|
+
return localScript;
|
|
45
|
+
}
|
|
46
|
+
// 4. Fallback: legacy /opt/ path for backward compatibility
|
|
47
|
+
const legacyPath = '/opt/claude-mobile/packages/claude-telegram-mirror/scripts/telegram-hook.sh';
|
|
48
|
+
if (existsSync(legacyPath)) {
|
|
49
|
+
return legacyPath;
|
|
50
|
+
}
|
|
51
|
+
throw new Error('Hook script not found. Please reinstall claude-telegram-mirror.');
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Load Claude settings
|
|
55
|
+
*/
|
|
56
|
+
function loadSettings(settingsPath = CLAUDE_SETTINGS_FILE) {
|
|
57
|
+
if (!existsSync(settingsPath)) {
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
try {
|
|
61
|
+
const content = readFileSync(settingsPath, 'utf8');
|
|
62
|
+
return JSON.parse(content);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
logger.warn('Failed to parse Claude settings, starting fresh', { error, path: settingsPath });
|
|
66
|
+
return {};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Save Claude settings
|
|
71
|
+
*/
|
|
72
|
+
function saveSettings(settings, settingsPath = CLAUDE_SETTINGS_FILE, configDir = CLAUDE_CONFIG_DIR) {
|
|
73
|
+
// Ensure directory exists
|
|
74
|
+
if (!existsSync(configDir)) {
|
|
75
|
+
mkdirSync(configDir, { recursive: true });
|
|
76
|
+
}
|
|
77
|
+
writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create hook configuration with required matcher wrapper
|
|
81
|
+
* Claude Code requires: { matcher: "", hooks: [{ type, command }] }
|
|
82
|
+
*/
|
|
83
|
+
function createHookEntry(scriptPath) {
|
|
84
|
+
return {
|
|
85
|
+
matcher: '',
|
|
86
|
+
hooks: [
|
|
87
|
+
{
|
|
88
|
+
type: 'command',
|
|
89
|
+
command: scriptPath
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if hook is already installed (handles both old and new format)
|
|
96
|
+
*/
|
|
97
|
+
function isHookInstalled(hooks, scriptPath) {
|
|
98
|
+
if (!hooks)
|
|
99
|
+
return false;
|
|
100
|
+
return hooks.some(h => {
|
|
101
|
+
// New format: { matcher, hooks: [...] }
|
|
102
|
+
if ('hooks' in h && Array.isArray(h.hooks)) {
|
|
103
|
+
return h.hooks.some(hh => hh.command?.includes('telegram-hook'));
|
|
104
|
+
}
|
|
105
|
+
// Old format: { type, command }
|
|
106
|
+
if ('command' in h) {
|
|
107
|
+
return h.command === scriptPath || h.command.includes('telegram-hook');
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Install Telegram hooks
|
|
114
|
+
*/
|
|
115
|
+
export function installHooks(options = {}) {
|
|
116
|
+
const installed = [];
|
|
117
|
+
const skipped = [];
|
|
118
|
+
// Determine which settings file to use
|
|
119
|
+
let settingsPath = CLAUDE_SETTINGS_FILE;
|
|
120
|
+
let configDir = CLAUDE_CONFIG_DIR;
|
|
121
|
+
if (options.project) {
|
|
122
|
+
// Use current directory's .claude/settings.json
|
|
123
|
+
const projectSettings = join(process.cwd(), '.claude', 'settings.json');
|
|
124
|
+
const projectConfigDir = join(process.cwd(), '.claude');
|
|
125
|
+
if (!existsSync(projectConfigDir)) {
|
|
126
|
+
return {
|
|
127
|
+
success: false,
|
|
128
|
+
installed,
|
|
129
|
+
skipped,
|
|
130
|
+
settingsPath: projectSettings,
|
|
131
|
+
error: `No .claude directory found in ${process.cwd()}. Run from a Claude project directory.`
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
settingsPath = projectSettings;
|
|
135
|
+
configDir = projectConfigDir;
|
|
136
|
+
logger.info('Installing to project settings', { path: settingsPath });
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
const scriptPath = getHookScriptPath();
|
|
140
|
+
logger.info('Found hook script', { path: scriptPath });
|
|
141
|
+
// Ensure script is executable
|
|
142
|
+
chmodSync(scriptPath, 0o755);
|
|
143
|
+
const settings = loadSettings(settingsPath);
|
|
144
|
+
// Initialize hooks object if needed
|
|
145
|
+
if (!settings.hooks) {
|
|
146
|
+
settings.hooks = {};
|
|
147
|
+
}
|
|
148
|
+
// Hook types to install (fewer for project - just the essentials)
|
|
149
|
+
const hookTypes = options.project
|
|
150
|
+
? ['Notification', 'Stop', 'UserPromptSubmit', 'PreCompact']
|
|
151
|
+
: ['PreToolUse', 'PostToolUse', 'Notification', 'Stop', 'UserPromptSubmit', 'PreCompact'];
|
|
152
|
+
for (const hookType of hookTypes) {
|
|
153
|
+
const existingHooks = settings.hooks[hookType];
|
|
154
|
+
if (!options.force && isHookInstalled(existingHooks, scriptPath)) {
|
|
155
|
+
skipped.push(hookType);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
// Handle array format
|
|
159
|
+
if (Array.isArray(existingHooks)) {
|
|
160
|
+
// Remove old telegram hooks if present (handles both formats)
|
|
161
|
+
const filteredHooks = existingHooks.filter(h => {
|
|
162
|
+
if ('hooks' in h && Array.isArray(h.hooks)) {
|
|
163
|
+
return !h.hooks.some(hh => hh.command?.includes('telegram-hook'));
|
|
164
|
+
}
|
|
165
|
+
if ('command' in h) {
|
|
166
|
+
return !h.command?.includes('telegram-hook');
|
|
167
|
+
}
|
|
168
|
+
return true;
|
|
169
|
+
});
|
|
170
|
+
// Add new hook at the beginning (runs first) - use correct format
|
|
171
|
+
filteredHooks.unshift(createHookEntry(scriptPath));
|
|
172
|
+
settings.hooks[hookType] = filteredHooks;
|
|
173
|
+
installed.push(hookType);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
// No existing hooks, create new array with correct format
|
|
177
|
+
settings.hooks[hookType] = [createHookEntry(scriptPath)];
|
|
178
|
+
installed.push(hookType);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
saveSettings(settings, settingsPath, configDir);
|
|
182
|
+
logger.info('Hooks installed', { installed, skipped, settingsPath });
|
|
183
|
+
return { success: true, installed, skipped, settingsPath };
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
187
|
+
logger.error('Failed to install hooks', { error: errorMessage });
|
|
188
|
+
return { success: false, installed, skipped, settingsPath, error: errorMessage };
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Uninstall Telegram hooks
|
|
193
|
+
*/
|
|
194
|
+
export function uninstallHooks() {
|
|
195
|
+
const removed = [];
|
|
196
|
+
try {
|
|
197
|
+
const settings = loadSettings();
|
|
198
|
+
if (!settings.hooks) {
|
|
199
|
+
return { success: true, removed };
|
|
200
|
+
}
|
|
201
|
+
for (const hookType of Object.keys(settings.hooks)) {
|
|
202
|
+
const hooks = settings.hooks[hookType];
|
|
203
|
+
if (!hooks)
|
|
204
|
+
continue;
|
|
205
|
+
const filteredHooks = hooks.filter(h => {
|
|
206
|
+
// New format: { matcher, hooks: [...] }
|
|
207
|
+
if ('hooks' in h && Array.isArray(h.hooks)) {
|
|
208
|
+
return !h.hooks.some(hh => hh.command?.includes('telegram-hook'));
|
|
209
|
+
}
|
|
210
|
+
// Old format: { type, command }
|
|
211
|
+
if ('command' in h) {
|
|
212
|
+
return !h.command?.includes('telegram-hook');
|
|
213
|
+
}
|
|
214
|
+
return true;
|
|
215
|
+
});
|
|
216
|
+
if (filteredHooks.length < hooks.length) {
|
|
217
|
+
removed.push(hookType);
|
|
218
|
+
}
|
|
219
|
+
if (filteredHooks.length === 0) {
|
|
220
|
+
delete settings.hooks[hookType];
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
settings.hooks[hookType] = filteredHooks;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// Remove empty hooks object
|
|
227
|
+
if (Object.keys(settings.hooks).length === 0) {
|
|
228
|
+
delete settings.hooks;
|
|
229
|
+
}
|
|
230
|
+
saveSettings(settings);
|
|
231
|
+
logger.info('Hooks uninstalled', { removed });
|
|
232
|
+
return { success: true, removed };
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
236
|
+
logger.error('Failed to uninstall hooks', { error: errorMessage });
|
|
237
|
+
return { success: false, removed, error: errorMessage };
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Check hook installation status
|
|
242
|
+
*/
|
|
243
|
+
export function checkHookStatus() {
|
|
244
|
+
try {
|
|
245
|
+
const settings = loadSettings();
|
|
246
|
+
const hooks = [];
|
|
247
|
+
if (settings.hooks) {
|
|
248
|
+
for (const [hookType, hookConfigs] of Object.entries(settings.hooks)) {
|
|
249
|
+
const configs = hookConfigs;
|
|
250
|
+
if (configs?.some(h => {
|
|
251
|
+
// New format: { matcher, hooks: [...] }
|
|
252
|
+
if ('hooks' in h && Array.isArray(h.hooks)) {
|
|
253
|
+
return h.hooks.some(hh => hh.command?.includes('telegram-hook'));
|
|
254
|
+
}
|
|
255
|
+
// Old format: { type, command }
|
|
256
|
+
if ('command' in h) {
|
|
257
|
+
return h.command?.includes('telegram-hook');
|
|
258
|
+
}
|
|
259
|
+
return false;
|
|
260
|
+
})) {
|
|
261
|
+
hooks.push(hookType);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
let scriptPath;
|
|
266
|
+
try {
|
|
267
|
+
scriptPath = getHookScriptPath();
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// Script not found
|
|
271
|
+
}
|
|
272
|
+
return {
|
|
273
|
+
installed: hooks.length > 0,
|
|
274
|
+
hooks,
|
|
275
|
+
scriptPath
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
280
|
+
return {
|
|
281
|
+
installed: false,
|
|
282
|
+
hooks: [],
|
|
283
|
+
error: errorMessage
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Print hook status
|
|
289
|
+
*/
|
|
290
|
+
export function printHookStatus() {
|
|
291
|
+
const status = checkHookStatus();
|
|
292
|
+
console.log('\n📌 Claude Code Telegram Hook Status\n');
|
|
293
|
+
if (status.error) {
|
|
294
|
+
console.log(`❌ Error: ${status.error}\n`);
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
if (status.installed) {
|
|
298
|
+
console.log('✅ Hooks installed\n');
|
|
299
|
+
console.log('Active hooks:');
|
|
300
|
+
status.hooks.forEach(hook => {
|
|
301
|
+
console.log(` • ${hook}`);
|
|
302
|
+
});
|
|
303
|
+
console.log(`\nScript: ${status.scriptPath || 'Not found'}`);
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
console.log('❌ Hooks not installed\n');
|
|
307
|
+
console.log('Run: claude-telegram-mirror install-hooks');
|
|
308
|
+
}
|
|
309
|
+
console.log('');
|
|
310
|
+
}
|
|
311
|
+
export default {
|
|
312
|
+
installHooks,
|
|
313
|
+
uninstallHooks,
|
|
314
|
+
checkHookStatus,
|
|
315
|
+
printHookStatus
|
|
316
|
+
};
|
|
317
|
+
//# sourceMappingURL=installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/hooks/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code Hook Types
|
|
3
|
+
* Type definitions for hook events
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Hook event types that Claude Code sends
|
|
7
|
+
*/
|
|
8
|
+
export type HookEventType = 'Stop' | 'SubagentStop' | 'PreToolUse' | 'PostToolUse' | 'Notification' | 'UserPromptSubmit';
|
|
9
|
+
/**
|
|
10
|
+
* Base hook event structure
|
|
11
|
+
*/
|
|
12
|
+
export interface HookEvent {
|
|
13
|
+
type: HookEventType;
|
|
14
|
+
session_id: string;
|
|
15
|
+
timestamp: string;
|
|
16
|
+
hook_id?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Stop hook - Called when the main agent stops
|
|
20
|
+
*/
|
|
21
|
+
export interface StopHookEvent extends HookEvent {
|
|
22
|
+
type: 'Stop';
|
|
23
|
+
stop_hook_active: boolean;
|
|
24
|
+
transcript_summary?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* SubagentStop hook - Called when a subagent (Task tool) stops
|
|
28
|
+
*/
|
|
29
|
+
export interface SubagentStopHookEvent extends HookEvent {
|
|
30
|
+
type: 'SubagentStop';
|
|
31
|
+
subagent_id: string;
|
|
32
|
+
result?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* PreToolUse hook - Called before a tool is executed
|
|
36
|
+
*/
|
|
37
|
+
export interface PreToolUseHookEvent extends HookEvent {
|
|
38
|
+
type: 'PreToolUse';
|
|
39
|
+
tool_name: string;
|
|
40
|
+
tool_input: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* PostToolUse hook - Called after a tool is executed
|
|
44
|
+
*/
|
|
45
|
+
export interface PostToolUseHookEvent extends HookEvent {
|
|
46
|
+
type: 'PostToolUse';
|
|
47
|
+
tool_name: string;
|
|
48
|
+
tool_input: Record<string, unknown>;
|
|
49
|
+
tool_output?: string;
|
|
50
|
+
tool_error?: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Notification hook - Called for status notifications
|
|
54
|
+
*/
|
|
55
|
+
export interface NotificationHookEvent extends HookEvent {
|
|
56
|
+
type: 'Notification';
|
|
57
|
+
message: string;
|
|
58
|
+
level: 'info' | 'warning' | 'error';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* UserPromptSubmit hook - Called when user submits a prompt
|
|
62
|
+
*/
|
|
63
|
+
export interface UserPromptSubmitHookEvent extends HookEvent {
|
|
64
|
+
type: 'UserPromptSubmit';
|
|
65
|
+
prompt: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Union type for all hook events
|
|
69
|
+
*/
|
|
70
|
+
export type AnyHookEvent = StopHookEvent | SubagentStopHookEvent | PreToolUseHookEvent | PostToolUseHookEvent | NotificationHookEvent | UserPromptSubmitHookEvent;
|
|
71
|
+
/**
|
|
72
|
+
* Hook handler configuration
|
|
73
|
+
*/
|
|
74
|
+
export interface HookHandlerConfig {
|
|
75
|
+
socketPath: string;
|
|
76
|
+
sessionId?: string;
|
|
77
|
+
verbose?: boolean;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Hook result for PreToolUse (can block/modify)
|
|
81
|
+
*/
|
|
82
|
+
export interface HookResult {
|
|
83
|
+
decision?: 'approve' | 'reject' | 'block';
|
|
84
|
+
reason?: string;
|
|
85
|
+
modified_input?: Record<string, unknown>;
|
|
86
|
+
}
|
|
87
|
+
export default AnyHookEvent;
|
|
88
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,cAAc,GACd,YAAY,GACZ,aAAa,GACb,cAAc,GACd,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,SAAS;IAC1D,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,aAAa,GACb,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,yBAAyB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Telegram Mirror
|
|
3
|
+
* Bidirectional Telegram integration for Claude Code CLI
|
|
4
|
+
*/
|
|
5
|
+
export { TelegramBot } from './bot/telegram.js';
|
|
6
|
+
export { registerCommands, registerApprovalHandlers } from './bot/commands.js';
|
|
7
|
+
export { formatAgentResponse, formatToolExecution } from './bot/formatting.js';
|
|
8
|
+
export { chunkMessage, needsChunking, estimateChunks } from './utils/chunker.js';
|
|
9
|
+
export { BridgeDaemon } from './bridge/daemon.js';
|
|
10
|
+
export { SessionManager } from './bridge/session.js';
|
|
11
|
+
export { SocketServer, SocketClient, DEFAULT_SOCKET_PATH } from './bridge/socket.js';
|
|
12
|
+
export { InputInjector, createInjector } from './bridge/injector.js';
|
|
13
|
+
export { HookHandler, installHooks, uninstallHooks, checkHookStatus } from './hooks/index.js';
|
|
14
|
+
export { loadConfig, validateConfig } from './utils/config.js';
|
|
15
|
+
export type { TelegramMirrorConfig } from './utils/config.js';
|
|
16
|
+
export type { BridgeMessage, Session, PendingApproval } from './bridge/types.js';
|
|
17
|
+
export type { SendOptions, InlineButton } from './bot/types.js';
|
|
18
|
+
export type { AnyHookEvent, HookEventType } from './hooks/types.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGjF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG9F,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjF,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Telegram Mirror
|
|
3
|
+
* Bidirectional Telegram integration for Claude Code CLI
|
|
4
|
+
*/
|
|
5
|
+
// Bot exports
|
|
6
|
+
export { TelegramBot } from './bot/telegram.js';
|
|
7
|
+
export { registerCommands, registerApprovalHandlers } from './bot/commands.js';
|
|
8
|
+
export { formatAgentResponse, formatToolExecution } from './bot/formatting.js';
|
|
9
|
+
// Utils exports
|
|
10
|
+
export { chunkMessage, needsChunking, estimateChunks } from './utils/chunker.js';
|
|
11
|
+
// Bridge exports
|
|
12
|
+
export { BridgeDaemon } from './bridge/daemon.js';
|
|
13
|
+
export { SessionManager } from './bridge/session.js';
|
|
14
|
+
export { SocketServer, SocketClient, DEFAULT_SOCKET_PATH } from './bridge/socket.js';
|
|
15
|
+
export { InputInjector, createInjector } from './bridge/injector.js';
|
|
16
|
+
// Hook exports
|
|
17
|
+
export { HookHandler, installHooks, uninstallHooks, checkHookStatus } from './hooks/index.js';
|
|
18
|
+
// Config exports
|
|
19
|
+
export { loadConfig, validateConfig } from './utils/config.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEjF,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErE,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE9F,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor Command - Diagnostic tool for troubleshooting
|
|
3
|
+
* Checks all components and reports issues
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Run all diagnostic checks
|
|
7
|
+
*/
|
|
8
|
+
export declare function runDoctor(): Promise<void>;
|
|
9
|
+
export default runDoctor;
|
|
10
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/service/doctor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgYH;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAgG/C;AAED,eAAe,SAAS,CAAC"}
|