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.
Files changed (99) hide show
  1. package/README.md +331 -0
  2. package/dist/bot/commands.d.ts +41 -0
  3. package/dist/bot/commands.d.ts.map +1 -0
  4. package/dist/bot/commands.js +231 -0
  5. package/dist/bot/commands.js.map +1 -0
  6. package/dist/bot/formatting.d.ts +62 -0
  7. package/dist/bot/formatting.d.ts.map +1 -0
  8. package/dist/bot/formatting.js +295 -0
  9. package/dist/bot/formatting.js.map +1 -0
  10. package/dist/bot/telegram.d.ts +93 -0
  11. package/dist/bot/telegram.d.ts.map +1 -0
  12. package/dist/bot/telegram.js +378 -0
  13. package/dist/bot/telegram.js.map +1 -0
  14. package/dist/bot/types.d.ts +28 -0
  15. package/dist/bot/types.d.ts.map +1 -0
  16. package/dist/bot/types.js +5 -0
  17. package/dist/bot/types.js.map +1 -0
  18. package/dist/bridge/daemon.d.ts +93 -0
  19. package/dist/bridge/daemon.d.ts.map +1 -0
  20. package/dist/bridge/daemon.js +626 -0
  21. package/dist/bridge/daemon.js.map +1 -0
  22. package/dist/bridge/index.d.ts +10 -0
  23. package/dist/bridge/index.d.ts.map +1 -0
  24. package/dist/bridge/index.js +9 -0
  25. package/dist/bridge/index.js.map +1 -0
  26. package/dist/bridge/injector.d.ts +97 -0
  27. package/dist/bridge/injector.d.ts.map +1 -0
  28. package/dist/bridge/injector.js +289 -0
  29. package/dist/bridge/injector.js.map +1 -0
  30. package/dist/bridge/session.d.ts +108 -0
  31. package/dist/bridge/session.d.ts.map +1 -0
  32. package/dist/bridge/session.js +381 -0
  33. package/dist/bridge/session.js.map +1 -0
  34. package/dist/bridge/socket.d.ts +97 -0
  35. package/dist/bridge/socket.d.ts.map +1 -0
  36. package/dist/bridge/socket.js +436 -0
  37. package/dist/bridge/socket.js.map +1 -0
  38. package/dist/bridge/types.d.ts +38 -0
  39. package/dist/bridge/types.d.ts.map +1 -0
  40. package/dist/bridge/types.js +5 -0
  41. package/dist/bridge/types.js.map +1 -0
  42. package/dist/cli.d.ts +7 -0
  43. package/dist/cli.d.ts.map +1 -0
  44. package/dist/cli.js +332 -0
  45. package/dist/cli.js.map +1 -0
  46. package/dist/hooks/handler.d.ts +94 -0
  47. package/dist/hooks/handler.d.ts.map +1 -0
  48. package/dist/hooks/handler.js +431 -0
  49. package/dist/hooks/handler.js.map +1 -0
  50. package/dist/hooks/index.d.ts +8 -0
  51. package/dist/hooks/index.d.ts.map +1 -0
  52. package/dist/hooks/index.js +7 -0
  53. package/dist/hooks/index.js.map +1 -0
  54. package/dist/hooks/installer.d.ts +46 -0
  55. package/dist/hooks/installer.d.ts.map +1 -0
  56. package/dist/hooks/installer.js +317 -0
  57. package/dist/hooks/installer.js.map +1 -0
  58. package/dist/hooks/types.d.ts +88 -0
  59. package/dist/hooks/types.d.ts.map +1 -0
  60. package/dist/hooks/types.js +6 -0
  61. package/dist/hooks/types.js.map +1 -0
  62. package/dist/index.d.ts +19 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +20 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/service/doctor.d.ts +10 -0
  67. package/dist/service/doctor.d.ts.map +1 -0
  68. package/dist/service/doctor.js +424 -0
  69. package/dist/service/doctor.js.map +1 -0
  70. package/dist/service/manager.d.ts +48 -0
  71. package/dist/service/manager.d.ts.map +1 -0
  72. package/dist/service/manager.js +584 -0
  73. package/dist/service/manager.js.map +1 -0
  74. package/dist/service/setup.d.ts +10 -0
  75. package/dist/service/setup.d.ts.map +1 -0
  76. package/dist/service/setup.js +266 -0
  77. package/dist/service/setup.js.map +1 -0
  78. package/dist/utils/chunker.d.ts +24 -0
  79. package/dist/utils/chunker.d.ts.map +1 -0
  80. package/dist/utils/chunker.js +123 -0
  81. package/dist/utils/chunker.js.map +1 -0
  82. package/dist/utils/config.d.ts +48 -0
  83. package/dist/utils/config.d.ts.map +1 -0
  84. package/dist/utils/config.js +154 -0
  85. package/dist/utils/config.js.map +1 -0
  86. package/dist/utils/logger.d.ts +7 -0
  87. package/dist/utils/logger.d.ts.map +1 -0
  88. package/dist/utils/logger.js +28 -0
  89. package/dist/utils/logger.js.map +1 -0
  90. package/package.json +88 -0
  91. package/postinstall.cjs +76 -0
  92. package/scripts/claude-wrapper.sh +122 -0
  93. package/scripts/doctor.sh +433 -0
  94. package/scripts/get-chat-id.sh +64 -0
  95. package/scripts/global-hooks.sh +39 -0
  96. package/scripts/install.sh +831 -0
  97. package/scripts/start-daemon.sh +49 -0
  98. package/scripts/telegram-hook.sh +449 -0
  99. 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,6 @@
1
+ /**
2
+ * Claude Code Hook Types
3
+ * Type definitions for hook events
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -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"}