@a1hvdy/cc-openclaw 0.10.4 → 0.11.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 (275) hide show
  1. package/dist/src/channels/telegram/card-renderer.d.ts +63 -0
  2. package/dist/src/channels/telegram/card-renderer.js +149 -0
  3. package/dist/src/channels/telegram/card-renderer.js.map +1 -0
  4. package/dist/src/channels/telegram/insight-formatter.d.ts +36 -0
  5. package/dist/src/channels/telegram/insight-formatter.js +36 -0
  6. package/dist/src/channels/telegram/insight-formatter.js.map +1 -0
  7. package/dist/src/channels/telegram/live-card.d.ts +7 -90
  8. package/dist/src/channels/telegram/live-card.js +22 -265
  9. package/dist/src/channels/telegram/live-card.js.map +1 -1
  10. package/dist/src/channels/telegram/logger.d.ts +10 -0
  11. package/dist/src/channels/telegram/logger.js +13 -0
  12. package/dist/src/channels/telegram/logger.js.map +1 -0
  13. package/dist/src/channels/telegram/throttle-controller.d.ts +54 -0
  14. package/dist/src/channels/telegram/throttle-controller.js +132 -0
  15. package/dist/src/channels/telegram/throttle-controller.js.map +1 -0
  16. package/dist/src/channels/telegram/tool-tracker.js +3 -14
  17. package/dist/src/channels/telegram/tool-tracker.js.map +1 -1
  18. package/dist/src/cli/doctor.d.ts +24 -0
  19. package/dist/src/cli/doctor.js +194 -0
  20. package/dist/src/cli/doctor.js.map +1 -0
  21. package/dist/src/cli/index.d.ts +8 -0
  22. package/dist/src/cli/index.js +39 -0
  23. package/dist/src/cli/index.js.map +1 -0
  24. package/dist/src/command-router/cc-handler.js +35 -709
  25. package/dist/src/command-router/cc-handler.js.map +1 -1
  26. package/dist/src/command-router/launch-policy.d.ts +93 -0
  27. package/dist/src/command-router/launch-policy.js +323 -0
  28. package/dist/src/command-router/launch-policy.js.map +1 -0
  29. package/dist/src/command-router/resume-policy.d.ts +18 -0
  30. package/dist/src/command-router/resume-policy.js +236 -0
  31. package/dist/src/command-router/resume-policy.js.map +1 -0
  32. package/dist/src/command-router/turn-formatter.d.ts +19 -0
  33. package/dist/src/command-router/turn-formatter.js +144 -0
  34. package/dist/src/command-router/turn-formatter.js.map +1 -0
  35. package/dist/src/openai-compat/bridges/allowlist.d.ts +10 -0
  36. package/dist/src/openai-compat/bridges/allowlist.js +17 -0
  37. package/dist/src/openai-compat/bridges/allowlist.js.map +1 -0
  38. package/dist/src/openai-compat/bridges/factory.d.ts +30 -0
  39. package/dist/src/openai-compat/bridges/factory.js +84 -0
  40. package/dist/src/openai-compat/bridges/factory.js.map +1 -0
  41. package/dist/src/openai-compat/bridges/media-bridge.d.ts +34 -0
  42. package/dist/src/openai-compat/bridges/media-bridge.js +20 -0
  43. package/dist/src/openai-compat/bridges/media-bridge.js.map +1 -0
  44. package/dist/src/openai-compat/bridges/openclaw-native-tools.d.ts +61 -0
  45. package/dist/src/openai-compat/bridges/openclaw-native-tools.js +171 -0
  46. package/dist/src/openai-compat/bridges/openclaw-native-tools.js.map +1 -0
  47. package/dist/src/openai-compat/bridges/openclaw-tool-registry.d.ts +26 -0
  48. package/dist/src/openai-compat/bridges/openclaw-tool-registry.js +38 -0
  49. package/dist/src/openai-compat/bridges/openclaw-tool-registry.js.map +1 -0
  50. package/dist/src/openai-compat/bridges/tts-media-bridge.d.ts +19 -0
  51. package/dist/src/openai-compat/bridges/tts-media-bridge.js +59 -0
  52. package/dist/src/openai-compat/bridges/tts-media-bridge.js.map +1 -0
  53. package/dist/src/openai-compat/openai-compat.js.map +1 -1
  54. package/dist/src/types/tool-bridge.d.ts +2 -1
  55. package/dist/src/types/tool-bridge.js +1 -0
  56. package/dist/src/types/tool-bridge.js.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/scripts/bench/ab-harness.d.ts +0 -58
  59. package/dist/scripts/bench/ab-harness.d.ts.map +0 -1
  60. package/dist/scripts/bench/ab-harness.js +0 -78
  61. package/dist/scripts/bench/ab-harness.js.map +0 -1
  62. package/dist/src/channels/adapter.d.ts.map +0 -1
  63. package/dist/src/channels/telegram/completion-summary.d.ts.map +0 -1
  64. package/dist/src/channels/telegram/error-renderer.d.ts.map +0 -1
  65. package/dist/src/channels/telegram/event-reducer.d.ts.map +0 -1
  66. package/dist/src/channels/telegram/index.d.ts.map +0 -1
  67. package/dist/src/channels/telegram/injector.d.ts.map +0 -1
  68. package/dist/src/channels/telegram/live-card.d.ts.map +0 -1
  69. package/dist/src/channels/telegram/state-machine.d.ts.map +0 -1
  70. package/dist/src/channels/telegram/tool-tracker.d.ts.map +0 -1
  71. package/dist/src/command-router/cc-handler.d.ts.map +0 -1
  72. package/dist/src/command-router/index.d.ts.map +0 -1
  73. package/dist/src/constants.d.ts.map +0 -1
  74. package/dist/src/council/consensus.d.ts.map +0 -1
  75. package/dist/src/council/council.d.ts.map +0 -1
  76. package/dist/src/council/index.d.ts.map +0 -1
  77. package/dist/src/engines/base-oneshot-session.d.ts.map +0 -1
  78. package/dist/src/engines/index.d.ts.map +0 -1
  79. package/dist/src/engines/persistent-codex-session.d.ts.map +0 -1
  80. package/dist/src/engines/persistent-cursor-session.d.ts.map +0 -1
  81. package/dist/src/engines/persistent-custom-session.d.ts.map +0 -1
  82. package/dist/src/engines/persistent-gemini-session.d.ts.map +0 -1
  83. package/dist/src/engines/persistent-session.d.ts.map +0 -1
  84. package/dist/src/health/handler.d.ts.map +0 -1
  85. package/dist/src/health/index.d.ts.map +0 -1
  86. package/dist/src/index.d.ts.map +0 -1
  87. package/dist/src/lib/auto-recovery.d.ts.map +0 -1
  88. package/dist/src/lib/cache-parity.d.ts.map +0 -1
  89. package/dist/src/lib/circuit-breaker.d.ts.map +0 -1
  90. package/dist/src/lib/config.d.ts.map +0 -1
  91. package/dist/src/lib/drift-detector.d.ts.map +0 -1
  92. package/dist/src/lib/error-formatter.d.ts.map +0 -1
  93. package/dist/src/lib/heartbeat-workaround.d.ts.map +0 -1
  94. package/dist/src/lib/index.d.ts.map +0 -1
  95. package/dist/src/lib/register-guard.d.ts.map +0 -1
  96. package/dist/src/lib/route-flag.d.ts +0 -49
  97. package/dist/src/lib/route-flag.d.ts.map +0 -1
  98. package/dist/src/lib/route-flag.js +0 -52
  99. package/dist/src/lib/route-flag.js.map +0 -1
  100. package/dist/src/lib/sysprompt-strip.d.ts.map +0 -1
  101. package/dist/src/lib/telemetry.d.ts.map +0 -1
  102. package/dist/src/lib/test-mode.d.ts.map +0 -1
  103. package/dist/src/lib/vendor-paths.d.ts.map +0 -1
  104. package/dist/src/logger.d.ts.map +0 -1
  105. package/dist/src/mcp/bridge.d.ts.map +0 -1
  106. package/dist/src/mcp/index.d.ts.map +0 -1
  107. package/dist/src/models.d.ts.map +0 -1
  108. package/dist/src/openai-compat/cli-stream-parser.d.ts.map +0 -1
  109. package/dist/src/openai-compat/index.d.ts.map +0 -1
  110. package/dist/src/openai-compat/openai-compat.d.ts.map +0 -1
  111. package/dist/src/openai-compat/skill-resolver.d.ts.map +0 -1
  112. package/dist/src/openai-compat/sse-translator.d.ts.map +0 -1
  113. package/dist/src/proxy/anthropic-adapter.d.ts.map +0 -1
  114. package/dist/src/proxy/handler.d.ts.map +0 -1
  115. package/dist/src/proxy/index.d.ts.map +0 -1
  116. package/dist/src/proxy/schema-cleaner.d.ts.map +0 -1
  117. package/dist/src/proxy/thought-cache.d.ts.map +0 -1
  118. package/dist/src/session/embedded-server.d.ts.map +0 -1
  119. package/dist/src/session/inbox-manager.d.ts.map +0 -1
  120. package/dist/src/session/index.d.ts.map +0 -1
  121. package/dist/src/session/session-manager.d.ts.map +0 -1
  122. package/dist/src/session-bootstrap/cwd-patch.d.ts.map +0 -1
  123. package/dist/src/session-bootstrap/index.d.ts.map +0 -1
  124. package/dist/src/session-bootstrap/sysprompt-strip.d.ts.map +0 -1
  125. package/dist/src/session-bootstrap/think-conflict-resolver.d.ts.map +0 -1
  126. package/dist/src/types.d.ts.map +0 -1
  127. package/dist/src/validation.d.ts.map +0 -1
  128. package/dist/tests/_helpers/subprocess-mock.d.ts +0 -35
  129. package/dist/tests/_helpers/subprocess-mock.d.ts.map +0 -1
  130. package/dist/tests/_helpers/subprocess-mock.js +0 -136
  131. package/dist/tests/_helpers/subprocess-mock.js.map +0 -1
  132. package/dist/tests/auto-recovery.test.d.ts +0 -2
  133. package/dist/tests/auto-recovery.test.d.ts.map +0 -1
  134. package/dist/tests/auto-recovery.test.js +0 -185
  135. package/dist/tests/auto-recovery.test.js.map +0 -1
  136. package/dist/tests/bench-harness.test.d.ts +0 -2
  137. package/dist/tests/bench-harness.test.d.ts.map +0 -1
  138. package/dist/tests/bench-harness.test.js +0 -21
  139. package/dist/tests/bench-harness.test.js.map +0 -1
  140. package/dist/tests/cache-parity.test.d.ts +0 -2
  141. package/dist/tests/cache-parity.test.d.ts.map +0 -1
  142. package/dist/tests/cache-parity.test.js +0 -401
  143. package/dist/tests/cache-parity.test.js.map +0 -1
  144. package/dist/tests/command-router.test.d.ts +0 -2
  145. package/dist/tests/command-router.test.d.ts.map +0 -1
  146. package/dist/tests/command-router.test.js +0 -60
  147. package/dist/tests/command-router.test.js.map +0 -1
  148. package/dist/tests/council.test.d.ts +0 -2
  149. package/dist/tests/council.test.d.ts.map +0 -1
  150. package/dist/tests/council.test.js +0 -20
  151. package/dist/tests/council.test.js.map +0 -1
  152. package/dist/tests/drift-detector.test.d.ts +0 -2
  153. package/dist/tests/drift-detector.test.d.ts.map +0 -1
  154. package/dist/tests/drift-detector.test.js +0 -268
  155. package/dist/tests/drift-detector.test.js.map +0 -1
  156. package/dist/tests/eager-bootstrap-gating.test.d.ts +0 -9
  157. package/dist/tests/eager-bootstrap-gating.test.d.ts.map +0 -1
  158. package/dist/tests/eager-bootstrap-gating.test.js +0 -97
  159. package/dist/tests/eager-bootstrap-gating.test.js.map +0 -1
  160. package/dist/tests/engines.test.d.ts +0 -2
  161. package/dist/tests/engines.test.d.ts.map +0 -1
  162. package/dist/tests/engines.test.js +0 -8
  163. package/dist/tests/engines.test.js.map +0 -1
  164. package/dist/tests/error-formatter.test.d.ts +0 -2
  165. package/dist/tests/error-formatter.test.d.ts.map +0 -1
  166. package/dist/tests/error-formatter.test.js +0 -220
  167. package/dist/tests/error-formatter.test.js.map +0 -1
  168. package/dist/tests/health.test.d.ts +0 -2
  169. package/dist/tests/health.test.d.ts.map +0 -1
  170. package/dist/tests/health.test.js +0 -110
  171. package/dist/tests/health.test.js.map +0 -1
  172. package/dist/tests/heartbeat-workaround.test.d.ts +0 -2
  173. package/dist/tests/heartbeat-workaround.test.d.ts.map +0 -1
  174. package/dist/tests/heartbeat-workaround.test.js +0 -90
  175. package/dist/tests/heartbeat-workaround.test.js.map +0 -1
  176. package/dist/tests/index.test.d.ts +0 -2
  177. package/dist/tests/index.test.d.ts.map +0 -1
  178. package/dist/tests/index.test.js +0 -7
  179. package/dist/tests/index.test.js.map +0 -1
  180. package/dist/tests/lib-sysprompt-strip.test.d.ts +0 -2
  181. package/dist/tests/lib-sysprompt-strip.test.d.ts.map +0 -1
  182. package/dist/tests/lib-sysprompt-strip.test.js +0 -145
  183. package/dist/tests/lib-sysprompt-strip.test.js.map +0 -1
  184. package/dist/tests/listener-activation.test.d.ts +0 -2
  185. package/dist/tests/listener-activation.test.d.ts.map +0 -1
  186. package/dist/tests/listener-activation.test.js +0 -87
  187. package/dist/tests/listener-activation.test.js.map +0 -1
  188. package/dist/tests/mcp-bridge.test.d.ts +0 -2
  189. package/dist/tests/mcp-bridge.test.d.ts.map +0 -1
  190. package/dist/tests/mcp-bridge.test.js +0 -137
  191. package/dist/tests/mcp-bridge.test.js.map +0 -1
  192. package/dist/tests/openai-compat.test.d.ts +0 -2
  193. package/dist/tests/openai-compat.test.d.ts.map +0 -1
  194. package/dist/tests/openai-compat.test.js +0 -8
  195. package/dist/tests/openai-compat.test.js.map +0 -1
  196. package/dist/tests/proxy-heartbeat-integration.test.d.ts +0 -15
  197. package/dist/tests/proxy-heartbeat-integration.test.d.ts.map +0 -1
  198. package/dist/tests/proxy-heartbeat-integration.test.js +0 -122
  199. package/dist/tests/proxy-heartbeat-integration.test.js.map +0 -1
  200. package/dist/tests/proxy.test.d.ts +0 -2
  201. package/dist/tests/proxy.test.d.ts.map +0 -1
  202. package/dist/tests/proxy.test.js +0 -8
  203. package/dist/tests/proxy.test.js.map +0 -1
  204. package/dist/tests/register-guard-stacking.test.d.ts +0 -2
  205. package/dist/tests/register-guard-stacking.test.d.ts.map +0 -1
  206. package/dist/tests/register-guard-stacking.test.js +0 -61
  207. package/dist/tests/register-guard-stacking.test.js.map +0 -1
  208. package/dist/tests/register-guard.test.d.ts +0 -2
  209. package/dist/tests/register-guard.test.d.ts.map +0 -1
  210. package/dist/tests/register-guard.test.js +0 -129
  211. package/dist/tests/register-guard.test.js.map +0 -1
  212. package/dist/tests/route-flag-rollback.test.d.ts +0 -2
  213. package/dist/tests/route-flag-rollback.test.d.ts.map +0 -1
  214. package/dist/tests/route-flag-rollback.test.js +0 -70
  215. package/dist/tests/route-flag-rollback.test.js.map +0 -1
  216. package/dist/tests/route-flag.test.d.ts +0 -2
  217. package/dist/tests/route-flag.test.d.ts.map +0 -1
  218. package/dist/tests/route-flag.test.js +0 -101
  219. package/dist/tests/route-flag.test.js.map +0 -1
  220. package/dist/tests/session-bootstrap.test.d.ts +0 -2
  221. package/dist/tests/session-bootstrap.test.d.ts.map +0 -1
  222. package/dist/tests/session-bootstrap.test.js +0 -183
  223. package/dist/tests/session-bootstrap.test.js.map +0 -1
  224. package/dist/tests/session.test.d.ts +0 -2
  225. package/dist/tests/session.test.d.ts.map +0 -1
  226. package/dist/tests/session.test.js +0 -17
  227. package/dist/tests/session.test.js.map +0 -1
  228. package/dist/tests/state-machine.test.d.ts +0 -2
  229. package/dist/tests/state-machine.test.d.ts.map +0 -1
  230. package/dist/tests/state-machine.test.js +0 -133
  231. package/dist/tests/state-machine.test.js.map +0 -1
  232. package/dist/tests/streaming/cli-stream-parser.test.d.ts +0 -2
  233. package/dist/tests/streaming/cli-stream-parser.test.d.ts.map +0 -1
  234. package/dist/tests/streaming/cli-stream-parser.test.js +0 -233
  235. package/dist/tests/streaming/cli-stream-parser.test.js.map +0 -1
  236. package/dist/tests/streaming/feature-flag.test.d.ts +0 -14
  237. package/dist/tests/streaming/feature-flag.test.d.ts.map +0 -1
  238. package/dist/tests/streaming/feature-flag.test.js +0 -163
  239. package/dist/tests/streaming/feature-flag.test.js.map +0 -1
  240. package/dist/tests/streaming/no-tools-prompt.test.d.ts +0 -17
  241. package/dist/tests/streaming/no-tools-prompt.test.d.ts.map +0 -1
  242. package/dist/tests/streaming/no-tools-prompt.test.js +0 -229
  243. package/dist/tests/streaming/no-tools-prompt.test.js.map +0 -1
  244. package/dist/tests/streaming/skill-plus-tools.test.d.ts +0 -14
  245. package/dist/tests/streaming/skill-plus-tools.test.d.ts.map +0 -1
  246. package/dist/tests/streaming/skill-plus-tools.test.js +0 -234
  247. package/dist/tests/streaming/skill-plus-tools.test.js.map +0 -1
  248. package/dist/tests/streaming/sse-translator.test.d.ts +0 -2
  249. package/dist/tests/streaming/sse-translator.test.d.ts.map +0 -1
  250. package/dist/tests/streaming/sse-translator.test.js +0 -227
  251. package/dist/tests/streaming/sse-translator.test.js.map +0 -1
  252. package/dist/tests/streaming/tool-result-roundtrip.test.d.ts +0 -11
  253. package/dist/tests/streaming/tool-result-roundtrip.test.d.ts.map +0 -1
  254. package/dist/tests/streaming/tool-result-roundtrip.test.js +0 -215
  255. package/dist/tests/streaming/tool-result-roundtrip.test.js.map +0 -1
  256. package/dist/tests/streaming/tool-use-translation.test.d.ts +0 -10
  257. package/dist/tests/streaming/tool-use-translation.test.d.ts.map +0 -1
  258. package/dist/tests/streaming/tool-use-translation.test.js +0 -251
  259. package/dist/tests/streaming/tool-use-translation.test.js.map +0 -1
  260. package/dist/tests/telegram-bridge.test.d.ts +0 -2
  261. package/dist/tests/telegram-bridge.test.d.ts.map +0 -1
  262. package/dist/tests/telegram-bridge.test.js +0 -17
  263. package/dist/tests/telegram-bridge.test.js.map +0 -1
  264. package/dist/tests/telegram-injector.test.d.ts +0 -2
  265. package/dist/tests/telegram-injector.test.d.ts.map +0 -1
  266. package/dist/tests/telegram-injector.test.js +0 -74
  267. package/dist/tests/telegram-injector.test.js.map +0 -1
  268. package/dist/tests/telemetry.test.d.ts +0 -2
  269. package/dist/tests/telemetry.test.d.ts.map +0 -1
  270. package/dist/tests/telemetry.test.js +0 -405
  271. package/dist/tests/telemetry.test.js.map +0 -1
  272. package/dist/tests/test-mode.test.d.ts +0 -2
  273. package/dist/tests/test-mode.test.d.ts.map +0 -1
  274. package/dist/tests/test-mode.test.js +0 -39
  275. package/dist/tests/test-mode.test.js.map +0 -1
@@ -0,0 +1,132 @@
1
+ /**
2
+ * throttle-controller — Telegram message queue + dedup primitives.
3
+ *
4
+ * Extracted from live-card.ts (Step 3 of Phase 5 v0.11.0 decomposition,
5
+ * PRPs/phase5-live-card-split.md).
6
+ *
7
+ * Owns:
8
+ * - TelegramMessageQueue: per-session promise-chain serialiser for card
9
+ * edits and standalone message sends.
10
+ * - Shared cross-handler dedup window: `markDispatchedToTelegram` /
11
+ * `wasDispatchedToTelegram`, used to bridge the cc-openclaw patched
12
+ * SessionManager.send path and the gateway's native ACP message_sending
13
+ * path (both can fire for the same agent reply, producing the doubled-
14
+ * greeting bug observed on /new).
15
+ * - `_inputFingerprint` for tool-tracker / state-machine input dedup.
16
+ *
17
+ * Imports kept narrow: card-renderer (sendTg, editTg), logger (_logger),
18
+ * node:crypto. No coupling to tool-tracker or live-card.
19
+ */
20
+ import { createHash } from 'node:crypto';
21
+ import { sendTg, editTg } from './card-renderer.js';
22
+ import { _logger } from './logger.js';
23
+ const PLUGIN_TAG = '[cc-openclaw/telegram/throttle-controller]';
24
+ // ── Shared cross-handler dedup ───────────────────────────────────────────
25
+ //
26
+ // Keyed on chatId (NOT sessionName) because the upstream double-call uses
27
+ // two different session names for the same Telegram-chat output. The
28
+ // chatId is the stable invariant identifying "where this message is going"
29
+ // regardless of which session generated it.
30
+ export const _sendMessageDedup = new Map();
31
+ export const DEDUP_WINDOW_MS = 3000;
32
+ export function _hashPayload(message) {
33
+ let payload;
34
+ try {
35
+ payload = typeof message === 'string' ? message : JSON.stringify(message);
36
+ }
37
+ catch {
38
+ payload = String(message);
39
+ }
40
+ // 12-char sha1 prefix is collision-safe within a 2s window for our payload sizes
41
+ return createHash('sha1').update(payload.slice(0, 4096)).digest('hex').slice(0, 12);
42
+ }
43
+ export function markDispatchedToTelegram(chatId, payload) {
44
+ if (!chatId)
45
+ return;
46
+ const hash = _hashPayload(payload);
47
+ _sendMessageDedup.set(chatId, { hash, expiresAt: Date.now() + DEDUP_WINDOW_MS });
48
+ }
49
+ export function wasDispatchedToTelegram(chatId, payload) {
50
+ if (!chatId)
51
+ return false;
52
+ const existing = _sendMessageDedup.get(chatId);
53
+ if (!existing)
54
+ return false;
55
+ if (existing.expiresAt <= Date.now()) {
56
+ _sendMessageDedup.delete(chatId);
57
+ return false;
58
+ }
59
+ return existing.hash === _hashPayload(payload);
60
+ }
61
+ // ── Per-session Telegram message queue ────────────────────────────────────
62
+ export class TelegramMessageQueue {
63
+ chatId;
64
+ threadId;
65
+ cardMessageId;
66
+ _replyToMessageId;
67
+ /**
68
+ * Sticky flag — set true the first time `sendMessage()` is called for this
69
+ * queue instance. Lets the fast-turn fallback in `applyPatch()` detect that
70
+ * a new message was already dispatched by the pipeline's `onNewMessage`
71
+ * callback and avoid double-firing. Bug context: 2026-04-29 doubled-greeting
72
+ * on `/new` was caused by both the pipeline AND the fallback emitting the
73
+ * same model output as separate Telegram messages.
74
+ */
75
+ messageSent;
76
+ _cardChain;
77
+ _msgChain;
78
+ constructor(chatId, threadId, existingCardMessageId, replyToMessageId) {
79
+ this.chatId = chatId;
80
+ this.threadId = threadId;
81
+ this._replyToMessageId = replyToMessageId || null;
82
+ this.cardMessageId = existingCardMessageId || null;
83
+ this.messageSent = false;
84
+ this._cardChain = Promise.resolve();
85
+ this._msgChain = Promise.resolve();
86
+ }
87
+ /** Send or edit the session card. */
88
+ updateCard(text, replyMarkup) {
89
+ this._cardChain = this._cardChain.then(async () => {
90
+ if (this.cardMessageId) {
91
+ await editTg(this.chatId, this.cardMessageId, text, replyMarkup);
92
+ }
93
+ else {
94
+ const res = await sendTg(this.chatId, text, this.threadId, replyMarkup, this._replyToMessageId);
95
+ if (res.ok && res.result?.message_id) {
96
+ this.cardMessageId = res.result.message_id;
97
+ this._replyToMessageId = null;
98
+ }
99
+ }
100
+ }).catch(e => _logger.error(`${PLUGIN_TAG} card update error: ${e.message}`));
101
+ }
102
+ /** Send a standalone message (error alert, completion summary). */
103
+ sendMessage(text) {
104
+ this.messageSent = true;
105
+ this._msgChain = this._msgChain.then(async () => {
106
+ await sendTg(this.chatId, text, this.threadId);
107
+ }).catch(e => _logger.error(`${PLUGIN_TAG} message send error: ${e.message}`));
108
+ }
109
+ }
110
+ export function _inputFingerprint(input) {
111
+ if (!input || typeof input !== 'object')
112
+ return { size: 0, sig: '' };
113
+ const inp = input;
114
+ const size = (Object.keys(inp).length +
115
+ (inp.command?.length || 0) +
116
+ (inp.new_string?.length || 0) +
117
+ (inp.old_string?.length || 0) +
118
+ (inp.content?.length || 0) +
119
+ (inp.pattern?.length || 0) +
120
+ (inp.query?.length || 0) +
121
+ (inp.prompt?.length || 0));
122
+ const fp = (s) => s ? `${s.slice(0, 16)}\x02${s.slice(-16)}` : '';
123
+ const sig = fp(inp.command) + '\x01' +
124
+ fp(inp.old_string) + '\x01' +
125
+ fp(inp.new_string) + '\x01' +
126
+ fp(inp.content) + '\x01' +
127
+ fp(inp.pattern) + '\x01' +
128
+ fp(inp.query) + '\x01' +
129
+ fp(inp.prompt);
130
+ return { size, sig };
131
+ }
132
+ //# sourceMappingURL=throttle-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle-controller.js","sourceRoot":"","sources":["../../../../src/channels/telegram/throttle-controller.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  import { createRequire } from 'node:module';
12
12
  import { defaultRegisterGuard } from '../../lib/register-guard.js';
13
13
  import { isSavvyLiveCardEnabled } from '../../lib/config.js';
14
+ import { extractInsightTip } from './insight-formatter.js';
14
15
  import { TelegramMessageQueue, telegramApi, delegatedCardStore, _logger, VERBOSITY_STORE, } from './live-card.js';
15
16
  const __require = createRequire(import.meta.url);
16
17
  // ── Constants ─────────────────────────────────────────────────────────────
@@ -497,13 +498,7 @@ export function register(api) {
497
498
  entry.state.setResultPreview(preview);
498
499
  if (entry._tipsEngine) {
499
500
  const st = entry.state.getState();
500
- const toolSummary = {};
501
- for (const t of st.activityLog) {
502
- const key = t === 'exec' ? 'execute' : t;
503
- toolSummary[key] = (toolSummary[key] || 0) + 1;
504
- }
505
- const tip = entry._tipsEngine.getTip({ ...st, toolSummary, elapsedSec: Math.round(st.elapsedMs / 1000) });
506
- entry.state.setTip(tip);
501
+ entry.state.setTip(extractInsightTip(st, entry._tipsEngine));
507
502
  }
508
503
  if (entry.state.stalled) {
509
504
  entry.state.clearStall();
@@ -557,13 +552,7 @@ export function register(api) {
557
552
  // current/next render instead of waiting for the next tool turn.
558
553
  if (entry._tipsEngine) {
559
554
  const st = entry.state.getState();
560
- const toolSummary = {};
561
- for (const t of st.activityLog) {
562
- const key = t === 'exec' ? 'execute' : t;
563
- toolSummary[key] = (toolSummary[key] || 0) + 1;
564
- }
565
- const tip = entry._tipsEngine.getTip({ ...st, toolSummary, elapsedSec: Math.round(st.elapsedMs / 1000) });
566
- entry.state.setTip(tip);
555
+ entry.state.setTip(extractInsightTip(st, entry._tipsEngine));
567
556
  }
568
557
  if (entry._initialSent) {
569
558
  const cardText = _renderSavvyCard(entry.state.getState());
@@ -1 +1 @@
1
- {"version":3,"file":"tool-tracker.js","sourceRoot":"","sources":["../../../../src/channels/telegram/tool-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-tracker.js","sourceRoot":"","sources":["../../../../src/channels/telegram/tool-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `cc-openclaw doctor` — Phase 5 Bridge Plane skeleton (v0.11.0).
3
+ *
4
+ * Checks shipped in this plane:
5
+ * 1. check_install_path — resolves which of the 3 known openclaw extension
6
+ * paths cc-openclaw was loaded from; compares installed version to this
7
+ * binary's built version.
8
+ * 2. check_bridge_wiring — soft-imports the bridge factory and asserts the
9
+ * 4 expected bridge mode exports exist. Soft-fails with `pending` when
10
+ * the factory file has not yet shipped (bridge coder is parallel).
11
+ *
12
+ * Future planes add checks via the exported `ALL_CHECKS` registry.
13
+ */
14
+ import { Command } from 'commander';
15
+ type CheckStatus = 'pass' | 'fail' | 'pending';
16
+ interface CheckResult {
17
+ id: string;
18
+ status: CheckStatus;
19
+ detail: Record<string, unknown>;
20
+ }
21
+ export declare function checkInstallPath(selfVersion?: string): CheckResult;
22
+ export declare function checkBridgeWiring(): Promise<CheckResult>;
23
+ export declare function createDoctorCommand(): Command;
24
+ export {};
@@ -0,0 +1,194 @@
1
+ /**
2
+ * `cc-openclaw doctor` — Phase 5 Bridge Plane skeleton (v0.11.0).
3
+ *
4
+ * Checks shipped in this plane:
5
+ * 1. check_install_path — resolves which of the 3 known openclaw extension
6
+ * paths cc-openclaw was loaded from; compares installed version to this
7
+ * binary's built version.
8
+ * 2. check_bridge_wiring — soft-imports the bridge factory and asserts the
9
+ * 4 expected bridge mode exports exist. Soft-fails with `pending` when
10
+ * the factory file has not yet shipped (bridge coder is parallel).
11
+ *
12
+ * Future planes add checks via the exported `ALL_CHECKS` registry.
13
+ */
14
+ import { Command } from 'commander';
15
+ import { existsSync, readFileSync } from 'fs';
16
+ import { homedir } from 'os';
17
+ import { join, dirname } from 'path';
18
+ import { fileURLToPath } from 'url';
19
+ // Locate package.json by walking up from this file's directory until we find it.
20
+ // Works in both runtime (dist/src/cli/) and vitest (src/cli/) contexts.
21
+ function findProjectRoot(startDir) {
22
+ let dir = startDir;
23
+ for (let i = 0; i < 10; i++) {
24
+ if (existsSync(join(dir, 'package.json')))
25
+ return dir;
26
+ const parent = dirname(dir);
27
+ if (parent === dir)
28
+ break;
29
+ dir = parent;
30
+ }
31
+ throw new Error('cc-openclaw: could not locate project root package.json');
32
+ }
33
+ // Resolved lazily-at-import with a fallback so a mocked fs (vitest) or an
34
+ // unreachable path doesn't crash the entire module load. SELF_VERSION is
35
+ // display-only; an 'unknown' fallback is acceptable for the doctor surface.
36
+ let SELF_VERSION;
37
+ try {
38
+ const _thisDir = dirname(fileURLToPath(import.meta.url));
39
+ const _projectRoot = findProjectRoot(_thisDir);
40
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
41
+ const selfPkg = JSON.parse(readFileSync(join(_projectRoot, 'package.json'), 'utf8'));
42
+ SELF_VERSION = String(selfPkg.version ?? 'unknown');
43
+ }
44
+ catch {
45
+ SELF_VERSION = 'unknown';
46
+ }
47
+ // ── Install-path candidates ──────────────────────────────────────────────────
48
+ const INSTALL_CANDIDATES = [
49
+ join(homedir(), '.npm-global/lib/node_modules/openclaw/dist/extensions/cc-openclaw'),
50
+ '/usr/local/lib/node_modules/openclaw/dist/extensions/cc-openclaw',
51
+ join(homedir(), '.openclaw/extensions/cc-openclaw'),
52
+ ];
53
+ // ── Check 1: install path resolution ────────────────────────────────────────
54
+ export function checkInstallPath(selfVersion = SELF_VERSION) {
55
+ const id = 'check_install_path';
56
+ for (const candidate of INSTALL_CANDIDATES) {
57
+ const pkgPath = join(candidate, 'package.json');
58
+ if (!existsSync(pkgPath))
59
+ continue;
60
+ let installedVersion;
61
+ try {
62
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
63
+ const installedPkg = JSON.parse(readFileSync(pkgPath, 'utf8'));
64
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
65
+ installedVersion = String(installedPkg.version ?? 'unknown');
66
+ }
67
+ catch {
68
+ return {
69
+ id,
70
+ status: 'fail',
71
+ detail: {
72
+ path: candidate,
73
+ candidatesSearched: INSTALL_CANDIDATES,
74
+ error: 'could not parse package.json at resolved path',
75
+ },
76
+ };
77
+ }
78
+ const mismatch = installedVersion !== selfVersion;
79
+ return {
80
+ id,
81
+ status: mismatch ? 'fail' : 'pass',
82
+ detail: {
83
+ path: candidate,
84
+ candidatesSearched: INSTALL_CANDIDATES,
85
+ version: installedVersion,
86
+ selfVersion: selfVersion,
87
+ mismatch,
88
+ },
89
+ };
90
+ }
91
+ return {
92
+ id,
93
+ status: 'fail',
94
+ detail: {
95
+ candidatesSearched: INSTALL_CANDIDATES,
96
+ error: 'cc-openclaw not found in any known openclaw extension path',
97
+ },
98
+ };
99
+ }
100
+ // ── Check 2: bridge wiring detection ────────────────────────────────────────
101
+ const EXPECTED_BRIDGE_MODES = ['Embedded', 'PerMessage', 'NativeStream', 'OpenClawNative'];
102
+ export async function checkBridgeWiring() {
103
+ const id = 'check_bridge_wiring';
104
+ let factory;
105
+ try {
106
+ // Dynamic import — soft-fail if the file doesn't exist yet.
107
+ // The bridge coder is working on this in parallel; pending is correct.
108
+ // The specifier is intentionally held in a variable so tsc does not
109
+ // attempt static resolution of the not-yet-created module.
110
+ factory = (await import('../openai-compat/bridges/factory.js'));
111
+ }
112
+ catch (err) {
113
+ const matchesNotFound = (e) => e instanceof Error &&
114
+ ('code' in e
115
+ ? e.code === 'ERR_MODULE_NOT_FOUND'
116
+ : e.message.includes('Cannot find module') ||
117
+ e.message.includes('ERR_MODULE_NOT_FOUND'));
118
+ const isNotFound = matchesNotFound(err) || matchesNotFound(err.cause);
119
+ if (isNotFound) {
120
+ return {
121
+ id,
122
+ status: 'pending',
123
+ detail: { reason: 'bridge module not yet shipped' },
124
+ };
125
+ }
126
+ return {
127
+ id,
128
+ status: 'fail',
129
+ detail: { error: err instanceof Error ? err.message : String(err) },
130
+ };
131
+ }
132
+ const missingBridges = EXPECTED_BRIDGE_MODES.filter((mode) => !(mode in factory));
133
+ return {
134
+ id,
135
+ status: missingBridges.length === 0 ? 'pass' : 'fail',
136
+ detail: {
137
+ bridges: EXPECTED_BRIDGE_MODES.filter((m) => m in factory),
138
+ missingBridges,
139
+ },
140
+ };
141
+ }
142
+ // ── Output helpers ───────────────────────────────────────────────────────────
143
+ function symbol(status) {
144
+ if (status === 'pass')
145
+ return '✔'; // ✔
146
+ if (status === 'pending')
147
+ return '○'; // ○
148
+ return '✘'; // ✘
149
+ }
150
+ function formatDetail(detail) {
151
+ const lines = [];
152
+ for (const [k, v] of Object.entries(detail)) {
153
+ if (Array.isArray(v)) {
154
+ lines.push(` ${k}: [${v.join(', ')}]`);
155
+ }
156
+ else {
157
+ lines.push(` ${k}: ${String(v)}`);
158
+ }
159
+ }
160
+ return lines.join('\n');
161
+ }
162
+ // ── Command factory ──────────────────────────────────────────────────────────
163
+ export function createDoctorCommand() {
164
+ const cmd = new Command('doctor');
165
+ cmd
166
+ .description('diagnose cc-openclaw install-path, bridge wiring, and plugin health')
167
+ .option('--json', 'emit results as a single JSON line')
168
+ .action(async (opts) => {
169
+ const results = [];
170
+ results.push(checkInstallPath());
171
+ results.push(await checkBridgeWiring());
172
+ const passed = results.filter((r) => r.status === 'pass').length;
173
+ const pending = results.filter((r) => r.status === 'pending').length;
174
+ const failed = results.filter((r) => r.status === 'fail').length;
175
+ const total = results.length;
176
+ const exitCode = failed > 0 ? 1 : 0;
177
+ if (opts.json) {
178
+ process.stdout.write(JSON.stringify({ checks: results, passed, pending, failed, total, exitCode }) + '\n');
179
+ }
180
+ else {
181
+ for (let i = 0; i < results.length; i++) {
182
+ const r = results[i];
183
+ const statusLabel = r.status === 'pending' ? 'pending' : r.status;
184
+ process.stdout.write(`${symbol(r.status)} check ${i + 1} (${r.id}): ${statusLabel}\n`);
185
+ process.stdout.write(formatDetail(r.detail) + '\n');
186
+ }
187
+ const pendingNote = pending > 0 ? ` (${pending} pending)` : '';
188
+ process.stdout.write(`\nResult: ${passed}/${total} checks passed${pendingNote}\n`);
189
+ }
190
+ process.exit(exitCode);
191
+ });
192
+ return cmd;
193
+ }
194
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * cc-openclaw CLI entry point.
4
+ *
5
+ * Registers the `cc-openclaw` binary with a `doctor` subcommand.
6
+ * Future planes add: patch-status (v0.12), registry (v0.13), lifecycle (v0.14).
7
+ */
8
+ export {};
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * cc-openclaw CLI entry point.
4
+ *
5
+ * Registers the `cc-openclaw` binary with a `doctor` subcommand.
6
+ * Future planes add: patch-status (v0.12), registry (v0.13), lifecycle (v0.14).
7
+ */
8
+ import { Command } from 'commander';
9
+ import { createDoctorCommand } from './doctor.js';
10
+ import { existsSync, readFileSync } from 'fs';
11
+ import { dirname, join } from 'path';
12
+ import { fileURLToPath } from 'url';
13
+ function findProjectRoot(startDir) {
14
+ let dir = startDir;
15
+ for (let i = 0; i < 10; i++) {
16
+ if (existsSync(join(dir, 'package.json')))
17
+ return dir;
18
+ const parent = dirname(dir);
19
+ if (parent === dir)
20
+ break;
21
+ dir = parent;
22
+ }
23
+ throw new Error('cc-openclaw: could not locate project root package.json');
24
+ }
25
+ const _root = findProjectRoot(dirname(fileURLToPath(import.meta.url)));
26
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
27
+ const pkg = JSON.parse(readFileSync(join(_root, 'package.json'), 'utf8'));
28
+ const program = new Command();
29
+ program
30
+ .name('cc-openclaw')
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
32
+ .version(String(pkg.version), '-v, --version', 'print version and exit')
33
+ .description('A1xAI cc-openclaw plugin diagnostics');
34
+ program.addCommand(createDoctorCommand());
35
+ program.parseAsync(process.argv).catch((err) => {
36
+ console.error('cc-openclaw: fatal error', err);
37
+ process.exit(1);
38
+ });
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,mEAAmE;AACnE,MAAM,GAAG,GAAyB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAEhG,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,aAAa,CAAC;IACpB,sEAAsE;KACrE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,wBAAwB,CAAC;KACvE,WAAW,CAAC,sCAAsC,CAAC,CAAC;AAEvD,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtD,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}