@a1hvdy/cc-openclaw 0.24.0 → 0.25.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.
Files changed (96) hide show
  1. package/dist/src/channels/telegram-mirror/burst-accumulator.d.ts +96 -0
  2. package/dist/src/channels/telegram-mirror/burst-accumulator.js +130 -0
  3. package/dist/src/channels/telegram-mirror/burst-accumulator.js.map +1 -0
  4. package/dist/src/channels/telegram-mirror/callback-mapping.d.ts +61 -0
  5. package/dist/src/channels/telegram-mirror/callback-mapping.js +99 -0
  6. package/dist/src/channels/telegram-mirror/callback-mapping.js.map +1 -0
  7. package/dist/src/channels/telegram-mirror/card-renderer.d.ts +74 -0
  8. package/dist/src/channels/telegram-mirror/card-renderer.js +131 -0
  9. package/dist/src/channels/telegram-mirror/card-renderer.js.map +1 -0
  10. package/dist/src/channels/telegram-mirror/commands.d.ts +142 -0
  11. package/dist/src/channels/telegram-mirror/commands.js +389 -0
  12. package/dist/src/channels/telegram-mirror/commands.js.map +1 -0
  13. package/dist/src/channels/telegram-mirror/compose-buffer.d.ts +71 -0
  14. package/dist/src/channels/telegram-mirror/compose-buffer.js +110 -0
  15. package/dist/src/channels/telegram-mirror/compose-buffer.js.map +1 -0
  16. package/dist/src/channels/telegram-mirror/cost-views.d.ts +58 -0
  17. package/dist/src/channels/telegram-mirror/cost-views.js +121 -0
  18. package/dist/src/channels/telegram-mirror/cost-views.js.map +1 -0
  19. package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.d.ts +21 -0
  20. package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.js +30 -0
  21. package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.js.map +1 -0
  22. package/dist/src/channels/telegram-mirror/failure/gateway-down.d.ts +15 -0
  23. package/dist/src/channels/telegram-mirror/failure/gateway-down.js +27 -0
  24. package/dist/src/channels/telegram-mirror/failure/gateway-down.js.map +1 -0
  25. package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.d.ts +15 -0
  26. package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.js +27 -0
  27. package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.js.map +1 -0
  28. package/dist/src/channels/telegram-mirror/failure/index.d.ts +23 -0
  29. package/dist/src/channels/telegram-mirror/failure/index.js +35 -0
  30. package/dist/src/channels/telegram-mirror/failure/index.js.map +1 -0
  31. package/dist/src/channels/telegram-mirror/failure/model-5xx.d.ts +16 -0
  32. package/dist/src/channels/telegram-mirror/failure/model-5xx.js +24 -0
  33. package/dist/src/channels/telegram-mirror/failure/model-5xx.js.map +1 -0
  34. package/dist/src/channels/telegram-mirror/failure/network-blip.d.ts +17 -0
  35. package/dist/src/channels/telegram-mirror/failure/network-blip.js +25 -0
  36. package/dist/src/channels/telegram-mirror/failure/network-blip.js.map +1 -0
  37. package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.d.ts +15 -0
  38. package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.js +24 -0
  39. package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.js.map +1 -0
  40. package/dist/src/channels/telegram-mirror/failure/rate-limit.d.ts +16 -0
  41. package/dist/src/channels/telegram-mirror/failure/rate-limit.js +26 -0
  42. package/dist/src/channels/telegram-mirror/failure/rate-limit.js.map +1 -0
  43. package/dist/src/channels/telegram-mirror/failure/returning-after-24h.d.ts +14 -0
  44. package/dist/src/channels/telegram-mirror/failure/returning-after-24h.js +33 -0
  45. package/dist/src/channels/telegram-mirror/failure/returning-after-24h.js.map +1 -0
  46. package/dist/src/channels/telegram-mirror/failure/types.d.ts +30 -0
  47. package/dist/src/channels/telegram-mirror/failure/types.js +9 -0
  48. package/dist/src/channels/telegram-mirror/failure/types.js.map +1 -0
  49. package/dist/src/channels/telegram-mirror/inbound-handler.d.ts +52 -0
  50. package/dist/src/channels/telegram-mirror/inbound-handler.js +115 -0
  51. package/dist/src/channels/telegram-mirror/inbound-handler.js.map +1 -0
  52. package/dist/src/channels/telegram-mirror/index.d.ts +30 -0
  53. package/dist/src/channels/telegram-mirror/index.js +49 -0
  54. package/dist/src/channels/telegram-mirror/index.js.map +1 -0
  55. package/dist/src/channels/telegram-mirror/plan-attachment.d.ts +120 -0
  56. package/dist/src/channels/telegram-mirror/plan-attachment.js +138 -0
  57. package/dist/src/channels/telegram-mirror/plan-attachment.js.map +1 -0
  58. package/dist/src/channels/telegram-mirror/quota-reader.d.ts +41 -0
  59. package/dist/src/channels/telegram-mirror/quota-reader.js +29 -0
  60. package/dist/src/channels/telegram-mirror/quota-reader.js.map +1 -0
  61. package/dist/src/channels/telegram-mirror/sessions-keyboard.d.ts +84 -0
  62. package/dist/src/channels/telegram-mirror/sessions-keyboard.js +113 -0
  63. package/dist/src/channels/telegram-mirror/sessions-keyboard.js.map +1 -0
  64. package/dist/src/channels/telegram-mirror/soak-log.d.ts +98 -0
  65. package/dist/src/channels/telegram-mirror/soak-log.js +136 -0
  66. package/dist/src/channels/telegram-mirror/soak-log.js.map +1 -0
  67. package/dist/src/channels/telegram-mirror/state-machine.d.ts +102 -0
  68. package/dist/src/channels/telegram-mirror/state-machine.js +117 -0
  69. package/dist/src/channels/telegram-mirror/state-machine.js.map +1 -0
  70. package/dist/src/channels/telegram-mirror/sync-commands.d.ts +63 -0
  71. package/dist/src/channels/telegram-mirror/sync-commands.js +51 -0
  72. package/dist/src/channels/telegram-mirror/sync-commands.js.map +1 -0
  73. package/dist/src/channels/telegram-mirror/threshold-watcher.d.ts +54 -0
  74. package/dist/src/channels/telegram-mirror/threshold-watcher.js +77 -0
  75. package/dist/src/channels/telegram-mirror/threshold-watcher.js.map +1 -0
  76. package/dist/src/command-router/cc-handler.js +1 -1
  77. package/dist/src/command-router/cc-handler.js.map +1 -1
  78. package/dist/src/index.js +12 -8
  79. package/dist/src/index.js.map +1 -1
  80. package/dist/src/lib/auto-recovery.js +1 -1
  81. package/dist/src/lib/auto-recovery.js.map +1 -1
  82. package/dist/src/lib/drift-detector.js +1 -1
  83. package/dist/src/lib/drift-detector.js.map +1 -1
  84. package/dist/src/lib/error-renderer.d.ts +23 -0
  85. package/dist/src/lib/error-renderer.js +106 -0
  86. package/dist/src/lib/error-renderer.js.map +1 -0
  87. package/dist/src/lib/perf/speculative-bubble.d.ts +27 -0
  88. package/dist/src/lib/perf/speculative-bubble.js +36 -0
  89. package/dist/src/lib/perf/speculative-bubble.js.map +1 -0
  90. package/dist/src/lib/session-registry.d.ts +66 -0
  91. package/dist/src/lib/session-registry.js +188 -0
  92. package/dist/src/lib/session-registry.js.map +1 -0
  93. package/dist/src/lib/telegram-bot-api.d.ts +100 -0
  94. package/dist/src/lib/telegram-bot-api.js +204 -0
  95. package/dist/src/lib/telegram-bot-api.js.map +1 -0
  96. package/package.json +1 -1
@@ -0,0 +1,100 @@
1
+ /**
2
+ * src/lib/telegram-bot-api.ts — v0.25.0 M16 extracted HTTP layer.
3
+ *
4
+ * Pre-M16 the Telegram Bot API helpers lived inside the legacy live-card +
5
+ * card-renderer modules. M16 deletes those modules, but a handful of lib/
6
+ * utilities (error-renderer.ts, perf/speculative-bubble.ts) still need to
7
+ * dispatch Telegram messages. This file is the migrated, slim HTTP layer:
8
+ * • telegramApi(method, params) — generic POST to api.telegram.org
9
+ * • sendTg(chatId, text, ...) — sendMessage with MarkdownV2 + plain
10
+ * text fallback (preserves v0.20.1
11
+ * content-punctuation fix).
12
+ * • editTg(chatId, msgId, text…) — editMessageText with same fallback +
13
+ * 429 retry handling.
14
+ * • BOT_TOKEN exported as a mutable getter (mutated via setBotToken /
15
+ * initBotTokenFromConfig at boot).
16
+ *
17
+ * Token sourcing on boot (initBotTokenFromConfig):
18
+ * 1. api.config.channels.telegram.accounts[defaultAccount].botToken
19
+ * 2. ~/.openclaw/openclaw.json → same JSON path
20
+ * 3. fallthrough: BOT_TOKEN stays '' and renderer/sendTg return false.
21
+ *
22
+ * The mirror channel's register() (M0..M14 + M15-cutover-default) calls
23
+ * initBotTokenFromConfig(api) at boot — the same shape the legacy live-card
24
+ * used to do.
25
+ */
26
+ export declare const OPENCLAW_CONFIG_PATH: string;
27
+ /**
28
+ * Mutable getter for the current bot token. Callers should treat it as
29
+ * read-only at runtime; use setBotToken / initBotTokenFromConfig to mutate.
30
+ */
31
+ export declare function getBotToken(): string;
32
+ /**
33
+ * Imperative setter — for tests + explicit init paths. Returns the
34
+ * previous value so test cleanup can restore.
35
+ */
36
+ export declare function setBotToken(token: string): string;
37
+ /**
38
+ * Back-compat alias — legacy code did `import { BOT_TOKEN } from ...`. We
39
+ * preserve the binding via a frozen wrapper that always reflects the
40
+ * current token. Existing read-sites get the current value; existing
41
+ * write-sites (none expected — legacy only wrote via setBotToken under
42
+ * a different name) would need migration.
43
+ *
44
+ * Using a getter-backed object also lets `if (!BOT_TOKEN)` work
45
+ * idiomatically; the property is read on every access.
46
+ */
47
+ export declare const BOT_TOKEN: {
48
+ readonly value: string;
49
+ };
50
+ /**
51
+ * Boot-time initialiser. Reads the configured Telegram bot token from
52
+ * either api.config.channels.telegram.accounts or ~/.openclaw/openclaw.json.
53
+ * Returns true when a token was loaded.
54
+ */
55
+ export interface BotConfigSource {
56
+ config?: {
57
+ channels?: {
58
+ telegram?: {
59
+ defaultAccount?: string;
60
+ accounts?: Record<string, {
61
+ botToken?: string;
62
+ }>;
63
+ };
64
+ };
65
+ };
66
+ logger?: {
67
+ info: (msg: string) => void;
68
+ warn: (msg: string) => void;
69
+ };
70
+ }
71
+ export declare function initBotTokenFromConfig(api?: BotConfigSource): boolean;
72
+ export interface TelegramApiResponse {
73
+ ok: boolean;
74
+ result?: {
75
+ message_id?: number;
76
+ };
77
+ error_code?: number;
78
+ description?: string;
79
+ parameters?: {
80
+ retry_after?: number;
81
+ };
82
+ }
83
+ /**
84
+ * Low-level POST to api.telegram.org. Resolves with the parsed JSON
85
+ * response, or {ok:false} on JSON parse failure / network error
86
+ * (rejection is the caller's signal for a truly unreachable endpoint).
87
+ */
88
+ export declare function telegramApi(method: string, params: Record<string, unknown>): Promise<TelegramApiResponse>;
89
+ /**
90
+ * sendMessage with MarkdownV2 first + plain-text fallback. The fallback
91
+ * is the v0.20.1 fix: prior implementation stripped punctuation on
92
+ * MarkdownV2 parse errors; current behaviour retries with parse_mode
93
+ * omitted so all content survives.
94
+ */
95
+ export declare function sendTg(chatId: string | number, text: string, threadId?: string | number, replyMarkup?: unknown, replyToMessageId?: number | null): Promise<TelegramApiResponse>;
96
+ /**
97
+ * editMessageText with MarkdownV2-first + 429 retry-after handling +
98
+ * plain-text fallback.
99
+ */
100
+ export declare function editTg(chatId: string | number, messageId: number, text: string, replyMarkup?: unknown): Promise<TelegramApiResponse>;
@@ -0,0 +1,204 @@
1
+ /**
2
+ * src/lib/telegram-bot-api.ts — v0.25.0 M16 extracted HTTP layer.
3
+ *
4
+ * Pre-M16 the Telegram Bot API helpers lived inside the legacy live-card +
5
+ * card-renderer modules. M16 deletes those modules, but a handful of lib/
6
+ * utilities (error-renderer.ts, perf/speculative-bubble.ts) still need to
7
+ * dispatch Telegram messages. This file is the migrated, slim HTTP layer:
8
+ * • telegramApi(method, params) — generic POST to api.telegram.org
9
+ * • sendTg(chatId, text, ...) — sendMessage with MarkdownV2 + plain
10
+ * text fallback (preserves v0.20.1
11
+ * content-punctuation fix).
12
+ * • editTg(chatId, msgId, text…) — editMessageText with same fallback +
13
+ * 429 retry handling.
14
+ * • BOT_TOKEN exported as a mutable getter (mutated via setBotToken /
15
+ * initBotTokenFromConfig at boot).
16
+ *
17
+ * Token sourcing on boot (initBotTokenFromConfig):
18
+ * 1. api.config.channels.telegram.accounts[defaultAccount].botToken
19
+ * 2. ~/.openclaw/openclaw.json → same JSON path
20
+ * 3. fallthrough: BOT_TOKEN stays '' and renderer/sendTg return false.
21
+ *
22
+ * The mirror channel's register() (M0..M14 + M15-cutover-default) calls
23
+ * initBotTokenFromConfig(api) at boot — the same shape the legacy live-card
24
+ * used to do.
25
+ */
26
+ import { request as httpsRequest } from 'node:https';
27
+ import { readFileSync } from 'node:fs';
28
+ import { homedir } from 'node:os';
29
+ import { join } from 'node:path';
30
+ export const OPENCLAW_CONFIG_PATH = join(homedir(), '.openclaw', 'openclaw.json');
31
+ const PLUGIN_TAG = '[cc-openclaw/telegram-bot-api]';
32
+ // ─── Bot token state ───────────────────────────────────────────────────────
33
+ let _botToken = '';
34
+ /**
35
+ * Mutable getter for the current bot token. Callers should treat it as
36
+ * read-only at runtime; use setBotToken / initBotTokenFromConfig to mutate.
37
+ */
38
+ export function getBotToken() {
39
+ return _botToken;
40
+ }
41
+ /**
42
+ * Imperative setter — for tests + explicit init paths. Returns the
43
+ * previous value so test cleanup can restore.
44
+ */
45
+ export function setBotToken(token) {
46
+ const prev = _botToken;
47
+ _botToken = token;
48
+ return prev;
49
+ }
50
+ /**
51
+ * Back-compat alias — legacy code did `import { BOT_TOKEN } from ...`. We
52
+ * preserve the binding via a frozen wrapper that always reflects the
53
+ * current token. Existing read-sites get the current value; existing
54
+ * write-sites (none expected — legacy only wrote via setBotToken under
55
+ * a different name) would need migration.
56
+ *
57
+ * Using a getter-backed object also lets `if (!BOT_TOKEN)` work
58
+ * idiomatically; the property is read on every access.
59
+ */
60
+ export const BOT_TOKEN = Object.freeze({
61
+ get value() {
62
+ return _botToken;
63
+ },
64
+ });
65
+ export function initBotTokenFromConfig(api) {
66
+ const logger = api?.logger;
67
+ // 1. api.config.channels.telegram path
68
+ try {
69
+ const tg = api?.config?.channels?.telegram;
70
+ if (tg?.accounts) {
71
+ const key = tg.defaultAccount ?? 'default';
72
+ const token = tg.accounts[key]?.botToken;
73
+ if (token) {
74
+ _botToken = token;
75
+ logger?.info(`${PLUGIN_TAG} bot token loaded from api.config`);
76
+ return true;
77
+ }
78
+ }
79
+ }
80
+ catch {
81
+ /* fall through to file path */
82
+ }
83
+ // 2. ~/.openclaw/openclaw.json
84
+ try {
85
+ const raw = readFileSync(OPENCLAW_CONFIG_PATH, 'utf8');
86
+ const parsed = JSON.parse(raw);
87
+ const tg = parsed.channels?.telegram;
88
+ if (tg?.accounts) {
89
+ const key = tg.defaultAccount ?? 'default';
90
+ const token = tg.accounts[key]?.botToken;
91
+ if (token) {
92
+ _botToken = token;
93
+ logger?.info(`${PLUGIN_TAG} bot token loaded from ${OPENCLAW_CONFIG_PATH}`);
94
+ return true;
95
+ }
96
+ }
97
+ }
98
+ catch (err) {
99
+ logger?.warn(`${PLUGIN_TAG} config-file fallback failed: ${err instanceof Error ? err.message : String(err)}`);
100
+ }
101
+ return false;
102
+ }
103
+ /**
104
+ * Low-level POST to api.telegram.org. Resolves with the parsed JSON
105
+ * response, or {ok:false} on JSON parse failure / network error
106
+ * (rejection is the caller's signal for a truly unreachable endpoint).
107
+ */
108
+ export function telegramApi(method, params) {
109
+ return new Promise((resolve, reject) => {
110
+ const body = JSON.stringify(params);
111
+ const options = {
112
+ hostname: 'api.telegram.org',
113
+ path: `/bot${_botToken}/${method}`,
114
+ method: 'POST',
115
+ headers: {
116
+ 'Content-Type': 'application/json',
117
+ 'Content-Length': Buffer.byteLength(body),
118
+ },
119
+ };
120
+ const req = httpsRequest(options, (res) => {
121
+ let data = '';
122
+ res.on('data', (chunk) => (data += chunk));
123
+ res.on('end', () => {
124
+ try {
125
+ resolve(JSON.parse(data));
126
+ }
127
+ catch {
128
+ resolve({ ok: false, description: 'JSON parse error' });
129
+ }
130
+ });
131
+ });
132
+ req.on('error', (err) => reject(err));
133
+ req.setTimeout(10_000, () => {
134
+ req.destroy(new Error('Telegram API timeout'));
135
+ });
136
+ req.write(body);
137
+ req.end();
138
+ });
139
+ }
140
+ /**
141
+ * sendMessage with MarkdownV2 first + plain-text fallback. The fallback
142
+ * is the v0.20.1 fix: prior implementation stripped punctuation on
143
+ * MarkdownV2 parse errors; current behaviour retries with parse_mode
144
+ * omitted so all content survives.
145
+ */
146
+ export async function sendTg(chatId, text, threadId, replyMarkup, replyToMessageId) {
147
+ try {
148
+ const base = { chat_id: chatId, disable_web_page_preview: true };
149
+ if (threadId)
150
+ base.message_thread_id = Number(threadId);
151
+ if (replyMarkup)
152
+ base.reply_markup = replyMarkup;
153
+ if (replyToMessageId)
154
+ base.reply_to_message_id = Number(replyToMessageId);
155
+ const res = await telegramApi('sendMessage', { ...base, text, parse_mode: 'MarkdownV2' });
156
+ if (res.ok)
157
+ return res;
158
+ return telegramApi('sendMessage', { ...base, text: text || 'Session update' });
159
+ }
160
+ catch {
161
+ return { ok: false };
162
+ }
163
+ }
164
+ /**
165
+ * editMessageText with MarkdownV2-first + 429 retry-after handling +
166
+ * plain-text fallback.
167
+ */
168
+ export async function editTg(chatId, messageId, text, replyMarkup) {
169
+ try {
170
+ const params = {
171
+ chat_id: chatId,
172
+ message_id: messageId,
173
+ text,
174
+ parse_mode: 'MarkdownV2',
175
+ disable_web_page_preview: true,
176
+ };
177
+ if (replyMarkup)
178
+ params.reply_markup = replyMarkup;
179
+ const res = await telegramApi('editMessageText', params);
180
+ if (!res.ok && (res.error_code === 429 || res.description?.includes('Too Many Requests'))) {
181
+ const retryAfterSec = res.parameters?.retry_after || 5;
182
+ const waitMs = Math.min(retryAfterSec * 1000, 30_000);
183
+ await new Promise((r) => setTimeout(r, waitMs));
184
+ const retry = await telegramApi('editMessageText', params);
185
+ if (retry.ok)
186
+ return retry;
187
+ }
188
+ if (res.ok)
189
+ return res;
190
+ const fallback = {
191
+ chat_id: chatId,
192
+ message_id: messageId,
193
+ text: text || 'Session update',
194
+ disable_web_page_preview: true,
195
+ };
196
+ if (replyMarkup)
197
+ fallback.reply_markup = replyMarkup;
198
+ return telegramApi('editMessageText', fallback);
199
+ }
200
+ catch {
201
+ return { ok: false };
202
+ }
203
+ }
204
+ //# sourceMappingURL=telegram-bot-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telegram-bot-api.js","sourceRoot":"","sources":["../../../src/lib/telegram-bot-api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a1hvdy/cc-openclaw",
3
- "version": "0.24.0",
3
+ "version": "0.25.1",
4
4
  "description": "A1xAI's Anthropic CLI bridge plugin for OpenClaw",
5
5
  "author": "@a1cy",
6
6
  "license": "MIT",