@a1hvdy/cc-openclaw 0.26.5 → 0.26.6

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 (444) hide show
  1. package/dist/src/channels/adapter.js +0 -1
  2. package/dist/src/channels/telegram-mirror/askuser.js +0 -1
  3. package/dist/src/channels/telegram-mirror/burst-accumulator.js +0 -1
  4. package/dist/src/channels/telegram-mirror/callback-mapping.js +0 -1
  5. package/dist/src/channels/telegram-mirror/card-renderer.js +63 -21
  6. package/dist/src/channels/telegram-mirror/card-state.js +0 -1
  7. package/dist/src/channels/telegram-mirror/commands.js +0 -1
  8. package/dist/src/channels/telegram-mirror/compose-buffer.js +0 -1
  9. package/dist/src/channels/telegram-mirror/cost-views.js +0 -1
  10. package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.js +0 -1
  11. package/dist/src/channels/telegram-mirror/failure/gateway-down.js +0 -1
  12. package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.js +0 -1
  13. package/dist/src/channels/telegram-mirror/failure/index.js +0 -1
  14. package/dist/src/channels/telegram-mirror/failure/model-5xx.js +0 -1
  15. package/dist/src/channels/telegram-mirror/failure/network-blip.js +0 -1
  16. package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.js +0 -1
  17. package/dist/src/channels/telegram-mirror/failure/rate-limit.js +0 -1
  18. package/dist/src/channels/telegram-mirror/failure/returning-after-24h.js +0 -1
  19. package/dist/src/channels/telegram-mirror/failure/types.js +0 -1
  20. package/dist/src/channels/telegram-mirror/inbound-handler.js +0 -1
  21. package/dist/src/channels/telegram-mirror/index.js +0 -1
  22. package/dist/src/channels/telegram-mirror/plan-attachment.js +0 -1
  23. package/dist/src/channels/telegram-mirror/quota-reader.js +0 -1
  24. package/dist/src/channels/telegram-mirror/sessions-keyboard.js +0 -1
  25. package/dist/src/channels/telegram-mirror/soak-log.js +0 -1
  26. package/dist/src/channels/telegram-mirror/state-machine.js +21 -2
  27. package/dist/src/channels/telegram-mirror/status-line.js +0 -1
  28. package/dist/src/channels/telegram-mirror/sync-commands.js +0 -1
  29. package/dist/src/channels/telegram-mirror/threshold-watcher.js +0 -1
  30. package/dist/src/channels/telegram-mirror/turn-bridge.js +21 -2
  31. package/dist/src/cli/checks/bridge-wiring.js +0 -1
  32. package/dist/src/cli/checks/config-schema.js +0 -1
  33. package/dist/src/cli/checks/critical-openclaw-json-keys.js +0 -1
  34. package/dist/src/cli/checks/install-path.js +0 -1
  35. package/dist/src/cli/checks/patch-scaffold.js +0 -1
  36. package/dist/src/cli/doctor.js +0 -1
  37. package/dist/src/cli/index.js +0 -1
  38. package/dist/src/cli/migrate.js +0 -1
  39. package/dist/src/command-router/cc-handler.js +0 -1
  40. package/dist/src/command-router/index.js +0 -1
  41. package/dist/src/command-router/launch-policy.js +0 -1
  42. package/dist/src/command-router/resume-policy.js +0 -1
  43. package/dist/src/command-router/turn-formatter.js +0 -1
  44. package/dist/src/config/drift-detector.js +0 -1
  45. package/dist/src/config/loader.js +0 -1
  46. package/dist/src/config/schema.js +0 -1
  47. package/dist/src/constants.js +0 -1
  48. package/dist/src/council/build-agent-prompt.js +0 -1
  49. package/dist/src/council/cleanup-worktrees.js +0 -1
  50. package/dist/src/council/consensus.js +0 -1
  51. package/dist/src/council/council.js +0 -1
  52. package/dist/src/council/index.js +0 -1
  53. package/dist/src/council/system-prompt.js +0 -1
  54. package/dist/src/council/write-worktree-claude-md.js +0 -1
  55. package/dist/src/engines/base-oneshot-session.js +0 -1
  56. package/dist/src/engines/heartbeat-guard.js +0 -1
  57. package/dist/src/engines/index.js +0 -1
  58. package/dist/src/engines/persistent-codex-session.js +0 -1
  59. package/dist/src/engines/persistent-cursor-session.js +0 -1
  60. package/dist/src/engines/persistent-custom-session.js +0 -1
  61. package/dist/src/engines/persistent-gemini-session.js +0 -1
  62. package/dist/src/engines/persistent-session.js +30 -1
  63. package/dist/src/engines/resolve-bin.js +0 -1
  64. package/dist/src/engines/subprocess-pool.js +0 -1
  65. package/dist/src/health/handler.js +0 -1
  66. package/dist/src/health/index.js +0 -1
  67. package/dist/src/health/metrics.js +0 -1
  68. package/dist/src/index.js +0 -1
  69. package/dist/src/lib/auto-recovery.js +0 -1
  70. package/dist/src/lib/cache-parity.js +0 -1
  71. package/dist/src/lib/circuit-breaker.js +0 -1
  72. package/dist/src/lib/config-service.js +0 -1
  73. package/dist/src/lib/config.js +0 -1
  74. package/dist/src/lib/cost-rollup.js +0 -1
  75. package/dist/src/lib/debounce.js +0 -1
  76. package/dist/src/lib/debug-tap.js +0 -1
  77. package/dist/src/lib/domain-error.js +0 -1
  78. package/dist/src/lib/drift-detector.js +0 -1
  79. package/dist/src/lib/env-overrides.js +0 -1
  80. package/dist/src/lib/error-formatter.js +0 -1
  81. package/dist/src/lib/error-renderer.js +0 -1
  82. package/dist/src/lib/heartbeat-config.js +0 -1
  83. package/dist/src/lib/heartbeat-workaround.js +0 -1
  84. package/dist/src/lib/http-agent.js +0 -1
  85. package/dist/src/lib/index.js +0 -1
  86. package/dist/src/lib/json-array.js +0 -1
  87. package/dist/src/lib/markdown-to-mdv2.js +0 -1
  88. package/dist/src/lib/markdown-v2.js +0 -1
  89. package/dist/src/lib/perf/async-compact.js +0 -1
  90. package/dist/src/lib/perf/direct-sdk.js +0 -1
  91. package/dist/src/lib/perf/haiku-route.js +0 -1
  92. package/dist/src/lib/perf/predictive-continuation.js +0 -1
  93. package/dist/src/lib/perf/read-batch.js +0 -1
  94. package/dist/src/lib/perf/skill-list-collapse.js +0 -1
  95. package/dist/src/lib/perf/speculative-bubble.js +0 -1
  96. package/dist/src/lib/perf/typing-prefetch.js +0 -1
  97. package/dist/src/lib/register-guard.js +0 -1
  98. package/dist/src/lib/req-shape-log.js +0 -1
  99. package/dist/src/lib/safe-upstream-probes.js +0 -1
  100. package/dist/src/lib/session-registry.js +0 -1
  101. package/dist/src/lib/spawn-async.js +0 -1
  102. package/dist/src/lib/stale-pid-files.js +0 -1
  103. package/dist/src/lib/status-tee-reader.js +0 -1
  104. package/dist/src/lib/sysprompt-strip.js +0 -1
  105. package/dist/src/lib/telegram-bot-api.js +0 -1
  106. package/dist/src/lib/telemetry.js +0 -1
  107. package/dist/src/lib/test-mode.js +0 -1
  108. package/dist/src/lib/trajectory.js +0 -1
  109. package/dist/src/lib/vendor-paths.js +0 -1
  110. package/dist/src/lifecycle/boot.js +0 -1
  111. package/dist/src/lifecycle/patch-manifest.js +0 -1
  112. package/dist/src/lifecycle/phase-import-upstream.js +0 -1
  113. package/dist/src/lifecycle/phase-install-patches.js +0 -1
  114. package/dist/src/lifecycle/phase-schedule-jobs.js +0 -1
  115. package/dist/src/lifecycle/phase-start-server.js +0 -1
  116. package/dist/src/lifecycle/phase-validate-config.js +0 -1
  117. package/dist/src/lifecycle/phase-validate-upstream.js +0 -1
  118. package/dist/src/lifecycle/phase-wire-handlers.js +0 -1
  119. package/dist/src/lifecycle/safe-restart.js +0 -1
  120. package/dist/src/logger.js +0 -1
  121. package/dist/src/mcp/bridge.js +0 -1
  122. package/dist/src/mcp/index.js +0 -1
  123. package/dist/src/models.js +0 -1
  124. package/dist/src/observability/event-bus.js +0 -1
  125. package/dist/src/observability/get-event-bus.js +0 -1
  126. package/dist/src/observability/observability-service.js +0 -1
  127. package/dist/src/observability/perf-telemetry.js +0 -1
  128. package/dist/src/observability/subscribers/metrics.js +0 -1
  129. package/dist/src/observability/subscribers/session-capture.js +0 -1
  130. package/dist/src/openai-compat/bridges/allowlist.js +0 -1
  131. package/dist/src/openai-compat/bridges/factory.js +0 -1
  132. package/dist/src/openai-compat/bridges/media-bridge.js +0 -1
  133. package/dist/src/openai-compat/bridges/openclaw-api-shim.js +0 -1
  134. package/dist/src/openai-compat/bridges/openclaw-native-tools.js +0 -1
  135. package/dist/src/openai-compat/bridges/openclaw-tool-registry.js +0 -1
  136. package/dist/src/openai-compat/bridges/tts-media-bridge.js +0 -1
  137. package/dist/src/openai-compat/cli-stream-parser.js +0 -1
  138. package/dist/src/openai-compat/index.js +0 -1
  139. package/dist/src/openai-compat/message-extractor.js +0 -1
  140. package/dist/src/openai-compat/mode-flags.js +0 -1
  141. package/dist/src/openai-compat/non-streaming-handler.js +4 -2
  142. package/dist/src/openai-compat/openai-chunk-types.js +0 -1
  143. package/dist/src/openai-compat/openai-compat.js +0 -1
  144. package/dist/src/openai-compat/openai-types.js +0 -1
  145. package/dist/src/openai-compat/parse-route-body.js +0 -1
  146. package/dist/src/openai-compat/prompts.js +0 -1
  147. package/dist/src/openai-compat/response-formatter.js +0 -1
  148. package/dist/src/openai-compat/session-key-resolver.js +0 -1
  149. package/dist/src/openai-compat/skill-resolver.js +0 -1
  150. package/dist/src/openai-compat/sse-translator.js +0 -1
  151. package/dist/src/openai-compat/status-reporter.js +0 -1
  152. package/dist/src/openai-compat/streaming-handler.js +6 -2
  153. package/dist/src/openai-compat/tool-calls-parser.js +0 -1
  154. package/dist/src/openai-compat/tool-results-serializer.js +0 -1
  155. package/dist/src/openai-compat/tts-rule.js +0 -1
  156. package/dist/src/openai-compat/voice-recovery.js +0 -1
  157. package/dist/src/patches/cache-parity-registry.js +0 -1
  158. package/dist/src/patches/claude-md-injection.js +0 -1
  159. package/dist/src/patches/cwd-redirect.js +0 -1
  160. package/dist/src/patches/embedded-server-route.js +0 -1
  161. package/dist/src/patches/pricing-overrides.js +0 -1
  162. package/dist/src/patches/resume-registry-restore.js +0 -1
  163. package/dist/src/patches/session-pid-tracking.js +0 -1
  164. package/dist/src/patches/sysprompt-strip.js +0 -1
  165. package/dist/src/patches/tools-restoration.js +0 -1
  166. package/dist/src/persistence/migration-v0.js +0 -1
  167. package/dist/src/persistence/session-registry.js +0 -1
  168. package/dist/src/persistence/snapshot.js +0 -1
  169. package/dist/src/persistence/wal.js +0 -1
  170. package/dist/src/proxy/anthropic-adapter.js +0 -1
  171. package/dist/src/proxy/handler.js +0 -1
  172. package/dist/src/proxy/index.js +0 -1
  173. package/dist/src/proxy/schema-cleaner.js +0 -1
  174. package/dist/src/proxy/thought-cache.js +0 -1
  175. package/dist/src/session/embedded-server.js +0 -1
  176. package/dist/src/session/inbox-manager.js +0 -1
  177. package/dist/src/session/index.js +0 -1
  178. package/dist/src/session/persisted-sessions.js +0 -1
  179. package/dist/src/session/session-manager.js +0 -1
  180. package/dist/src/session/watchdogs.js +0 -1
  181. package/dist/src/session-bootstrap/boot-self-heal.js +0 -1
  182. package/dist/src/session-bootstrap/cwd-patch.js +0 -1
  183. package/dist/src/session-bootstrap/index.js +0 -1
  184. package/dist/src/session-bootstrap/resume-registry.js +0 -1
  185. package/dist/src/session-bootstrap/session-hygiene.js +0 -1
  186. package/dist/src/session-bootstrap/sysprompt-strip.js +0 -1
  187. package/dist/src/session-bootstrap/think-conflict-resolver.js +0 -1
  188. package/dist/src/types/index.js +0 -1
  189. package/dist/src/types/route.js +0 -1
  190. package/dist/src/types/runtime-config.js +0 -1
  191. package/dist/src/types/session.js +0 -1
  192. package/dist/src/types/sse.js +0 -1
  193. package/dist/src/types/tool-bridge.js +0 -1
  194. package/dist/src/types/upstream.js +0 -1
  195. package/dist/src/types.js +0 -1
  196. package/dist/src/validation.js +0 -1
  197. package/package.json +1 -1
  198. package/dist/src/channels/adapter.js.map +0 -1
  199. package/dist/src/channels/telegram/card-renderer.d.ts +0 -80
  200. package/dist/src/channels/telegram/card-renderer.js +0 -169
  201. package/dist/src/channels/telegram/card-renderer.js.map +0 -1
  202. package/dist/src/channels/telegram/completion-summary.d.ts +0 -21
  203. package/dist/src/channels/telegram/completion-summary.js +0 -218
  204. package/dist/src/channels/telegram/completion-summary.js.map +0 -1
  205. package/dist/src/channels/telegram/edit-cadence.d.ts +0 -37
  206. package/dist/src/channels/telegram/edit-cadence.js +0 -50
  207. package/dist/src/channels/telegram/edit-cadence.js.map +0 -1
  208. package/dist/src/channels/telegram/error-renderer.d.ts +0 -29
  209. package/dist/src/channels/telegram/error-renderer.js +0 -133
  210. package/dist/src/channels/telegram/error-renderer.js.map +0 -1
  211. package/dist/src/channels/telegram/event-reducer.d.ts +0 -33
  212. package/dist/src/channels/telegram/event-reducer.js +0 -647
  213. package/dist/src/channels/telegram/event-reducer.js.map +0 -1
  214. package/dist/src/channels/telegram/format-helpers.d.ts +0 -20
  215. package/dist/src/channels/telegram/format-helpers.js +0 -34
  216. package/dist/src/channels/telegram/format-helpers.js.map +0 -1
  217. package/dist/src/channels/telegram/index.d.ts +0 -13
  218. package/dist/src/channels/telegram/index.js +0 -14
  219. package/dist/src/channels/telegram/index.js.map +0 -1
  220. package/dist/src/channels/telegram/injector.d.ts +0 -53
  221. package/dist/src/channels/telegram/injector.js +0 -271
  222. package/dist/src/channels/telegram/injector.js.map +0 -1
  223. package/dist/src/channels/telegram/insight-formatter.d.ts +0 -36
  224. package/dist/src/channels/telegram/insight-formatter.js +0 -36
  225. package/dist/src/channels/telegram/insight-formatter.js.map +0 -1
  226. package/dist/src/channels/telegram/live-card.d.ts +0 -185
  227. package/dist/src/channels/telegram/live-card.js +0 -868
  228. package/dist/src/channels/telegram/live-card.js.map +0 -1
  229. package/dist/src/channels/telegram/logger.d.ts +0 -10
  230. package/dist/src/channels/telegram/logger.js +0 -13
  231. package/dist/src/channels/telegram/logger.js.map +0 -1
  232. package/dist/src/channels/telegram/result-preview.d.ts +0 -12
  233. package/dist/src/channels/telegram/result-preview.js +0 -48
  234. package/dist/src/channels/telegram/result-preview.js.map +0 -1
  235. package/dist/src/channels/telegram/speculative-bubble.d.ts +0 -33
  236. package/dist/src/channels/telegram/speculative-bubble.js +0 -42
  237. package/dist/src/channels/telegram/speculative-bubble.js.map +0 -1
  238. package/dist/src/channels/telegram/state-machine.d.ts +0 -22
  239. package/dist/src/channels/telegram/state-machine.js +0 -72
  240. package/dist/src/channels/telegram/state-machine.js.map +0 -1
  241. package/dist/src/channels/telegram/throttle-controller.d.ts +0 -88
  242. package/dist/src/channels/telegram/throttle-controller.js +0 -203
  243. package/dist/src/channels/telegram/throttle-controller.js.map +0 -1
  244. package/dist/src/channels/telegram/tool-tracker.d.ts +0 -149
  245. package/dist/src/channels/telegram/tool-tracker.js +0 -578
  246. package/dist/src/channels/telegram/tool-tracker.js.map +0 -1
  247. package/dist/src/channels/telegram-mirror/askuser.js.map +0 -1
  248. package/dist/src/channels/telegram-mirror/burst-accumulator.js.map +0 -1
  249. package/dist/src/channels/telegram-mirror/callback-mapping.js.map +0 -1
  250. package/dist/src/channels/telegram-mirror/card-renderer.js.map +0 -1
  251. package/dist/src/channels/telegram-mirror/card-state.js.map +0 -1
  252. package/dist/src/channels/telegram-mirror/commands.js.map +0 -1
  253. package/dist/src/channels/telegram-mirror/compose-buffer.js.map +0 -1
  254. package/dist/src/channels/telegram-mirror/cost-views.js.map +0 -1
  255. package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.js.map +0 -1
  256. package/dist/src/channels/telegram-mirror/failure/gateway-down.js.map +0 -1
  257. package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.js.map +0 -1
  258. package/dist/src/channels/telegram-mirror/failure/index.js.map +0 -1
  259. package/dist/src/channels/telegram-mirror/failure/model-5xx.js.map +0 -1
  260. package/dist/src/channels/telegram-mirror/failure/network-blip.js.map +0 -1
  261. package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.js.map +0 -1
  262. package/dist/src/channels/telegram-mirror/failure/rate-limit.js.map +0 -1
  263. package/dist/src/channels/telegram-mirror/failure/returning-after-24h.js.map +0 -1
  264. package/dist/src/channels/telegram-mirror/failure/types.js.map +0 -1
  265. package/dist/src/channels/telegram-mirror/inbound-handler.js.map +0 -1
  266. package/dist/src/channels/telegram-mirror/index.js.map +0 -1
  267. package/dist/src/channels/telegram-mirror/plan-attachment.js.map +0 -1
  268. package/dist/src/channels/telegram-mirror/quota-reader.js.map +0 -1
  269. package/dist/src/channels/telegram-mirror/sessions-keyboard.js.map +0 -1
  270. package/dist/src/channels/telegram-mirror/soak-log.js.map +0 -1
  271. package/dist/src/channels/telegram-mirror/state-machine.js.map +0 -1
  272. package/dist/src/channels/telegram-mirror/status-line.js.map +0 -1
  273. package/dist/src/channels/telegram-mirror/sync-commands.js.map +0 -1
  274. package/dist/src/channels/telegram-mirror/threshold-watcher.js.map +0 -1
  275. package/dist/src/channels/telegram-mirror/turn-bridge.js.map +0 -1
  276. package/dist/src/cli/checks/bridge-wiring.js.map +0 -1
  277. package/dist/src/cli/checks/config-schema.js.map +0 -1
  278. package/dist/src/cli/checks/critical-openclaw-json-keys.js.map +0 -1
  279. package/dist/src/cli/checks/install-path.js.map +0 -1
  280. package/dist/src/cli/checks/patch-scaffold.js.map +0 -1
  281. package/dist/src/cli/doctor.js.map +0 -1
  282. package/dist/src/cli/index.js.map +0 -1
  283. package/dist/src/cli/migrate.js.map +0 -1
  284. package/dist/src/command-router/cc-handler.js.map +0 -1
  285. package/dist/src/command-router/index.js.map +0 -1
  286. package/dist/src/command-router/launch-policy.js.map +0 -1
  287. package/dist/src/command-router/resume-policy.js.map +0 -1
  288. package/dist/src/command-router/turn-formatter.js.map +0 -1
  289. package/dist/src/config/drift-detector.js.map +0 -1
  290. package/dist/src/config/loader.js.map +0 -1
  291. package/dist/src/config/schema.js.map +0 -1
  292. package/dist/src/constants.js.map +0 -1
  293. package/dist/src/council/build-agent-prompt.js.map +0 -1
  294. package/dist/src/council/cleanup-worktrees.js.map +0 -1
  295. package/dist/src/council/consensus.js.map +0 -1
  296. package/dist/src/council/council.js.map +0 -1
  297. package/dist/src/council/index.js.map +0 -1
  298. package/dist/src/council/system-prompt.js.map +0 -1
  299. package/dist/src/council/write-worktree-claude-md.js.map +0 -1
  300. package/dist/src/engines/base-oneshot-session.js.map +0 -1
  301. package/dist/src/engines/heartbeat-guard.js.map +0 -1
  302. package/dist/src/engines/index.js.map +0 -1
  303. package/dist/src/engines/persistent-codex-session.js.map +0 -1
  304. package/dist/src/engines/persistent-cursor-session.js.map +0 -1
  305. package/dist/src/engines/persistent-custom-session.js.map +0 -1
  306. package/dist/src/engines/persistent-gemini-session.js.map +0 -1
  307. package/dist/src/engines/persistent-session.js.map +0 -1
  308. package/dist/src/engines/resolve-bin.js.map +0 -1
  309. package/dist/src/engines/subprocess-pool.js.map +0 -1
  310. package/dist/src/health/handler.js.map +0 -1
  311. package/dist/src/health/index.js.map +0 -1
  312. package/dist/src/health/metrics.js.map +0 -1
  313. package/dist/src/index.js.map +0 -1
  314. package/dist/src/lib/auto-recovery.js.map +0 -1
  315. package/dist/src/lib/cache-parity.js.map +0 -1
  316. package/dist/src/lib/circuit-breaker.js.map +0 -1
  317. package/dist/src/lib/config-service.js.map +0 -1
  318. package/dist/src/lib/config.js.map +0 -1
  319. package/dist/src/lib/cost-rollup.js.map +0 -1
  320. package/dist/src/lib/debounce.js.map +0 -1
  321. package/dist/src/lib/debug-tap.js.map +0 -1
  322. package/dist/src/lib/domain-error.js.map +0 -1
  323. package/dist/src/lib/drift-detector.js.map +0 -1
  324. package/dist/src/lib/env-overrides.js.map +0 -1
  325. package/dist/src/lib/error-formatter.js.map +0 -1
  326. package/dist/src/lib/error-renderer.js.map +0 -1
  327. package/dist/src/lib/heartbeat-config.js.map +0 -1
  328. package/dist/src/lib/heartbeat-workaround.js.map +0 -1
  329. package/dist/src/lib/http-agent.js.map +0 -1
  330. package/dist/src/lib/index.js.map +0 -1
  331. package/dist/src/lib/json-array.js.map +0 -1
  332. package/dist/src/lib/markdown-to-mdv2.js.map +0 -1
  333. package/dist/src/lib/markdown-v2.js.map +0 -1
  334. package/dist/src/lib/perf/async-compact.js.map +0 -1
  335. package/dist/src/lib/perf/direct-sdk.js.map +0 -1
  336. package/dist/src/lib/perf/haiku-route.js.map +0 -1
  337. package/dist/src/lib/perf/predictive-continuation.js.map +0 -1
  338. package/dist/src/lib/perf/read-batch.js.map +0 -1
  339. package/dist/src/lib/perf/skill-list-collapse.js.map +0 -1
  340. package/dist/src/lib/perf/speculative-bubble.js.map +0 -1
  341. package/dist/src/lib/perf/typing-prefetch.js.map +0 -1
  342. package/dist/src/lib/register-guard.js.map +0 -1
  343. package/dist/src/lib/req-shape-log.js.map +0 -1
  344. package/dist/src/lib/safe-upstream-probes.js.map +0 -1
  345. package/dist/src/lib/session-registry.js.map +0 -1
  346. package/dist/src/lib/spawn-async.js.map +0 -1
  347. package/dist/src/lib/stale-pid-files.js.map +0 -1
  348. package/dist/src/lib/status-tee-reader.js.map +0 -1
  349. package/dist/src/lib/sysprompt-strip.js.map +0 -1
  350. package/dist/src/lib/telegram-bot-api.js.map +0 -1
  351. package/dist/src/lib/telemetry.js.map +0 -1
  352. package/dist/src/lib/test-mode.js.map +0 -1
  353. package/dist/src/lib/trajectory.js.map +0 -1
  354. package/dist/src/lib/vendor-paths.js.map +0 -1
  355. package/dist/src/lifecycle/boot.js.map +0 -1
  356. package/dist/src/lifecycle/patch-manifest.js.map +0 -1
  357. package/dist/src/lifecycle/phase-import-upstream.js.map +0 -1
  358. package/dist/src/lifecycle/phase-install-patches.js.map +0 -1
  359. package/dist/src/lifecycle/phase-schedule-jobs.js.map +0 -1
  360. package/dist/src/lifecycle/phase-start-server.js.map +0 -1
  361. package/dist/src/lifecycle/phase-validate-config.js.map +0 -1
  362. package/dist/src/lifecycle/phase-validate-upstream.js.map +0 -1
  363. package/dist/src/lifecycle/phase-wire-handlers.js.map +0 -1
  364. package/dist/src/lifecycle/safe-restart.js.map +0 -1
  365. package/dist/src/logger.js.map +0 -1
  366. package/dist/src/mcp/bridge.js.map +0 -1
  367. package/dist/src/mcp/index.js.map +0 -1
  368. package/dist/src/models.js.map +0 -1
  369. package/dist/src/observability/event-bus.js.map +0 -1
  370. package/dist/src/observability/get-event-bus.js.map +0 -1
  371. package/dist/src/observability/observability-service.js.map +0 -1
  372. package/dist/src/observability/perf-telemetry.js.map +0 -1
  373. package/dist/src/observability/subscribers/metrics.js.map +0 -1
  374. package/dist/src/observability/subscribers/session-capture.js.map +0 -1
  375. package/dist/src/openai-compat/bridges/allowlist.js.map +0 -1
  376. package/dist/src/openai-compat/bridges/factory.js.map +0 -1
  377. package/dist/src/openai-compat/bridges/media-bridge.js.map +0 -1
  378. package/dist/src/openai-compat/bridges/openclaw-api-shim.js.map +0 -1
  379. package/dist/src/openai-compat/bridges/openclaw-native-tools.js.map +0 -1
  380. package/dist/src/openai-compat/bridges/openclaw-tool-registry.js.map +0 -1
  381. package/dist/src/openai-compat/bridges/tts-media-bridge.js.map +0 -1
  382. package/dist/src/openai-compat/cli-stream-parser.js.map +0 -1
  383. package/dist/src/openai-compat/index.js.map +0 -1
  384. package/dist/src/openai-compat/message-extractor.js.map +0 -1
  385. package/dist/src/openai-compat/mode-flags.js.map +0 -1
  386. package/dist/src/openai-compat/non-streaming-handler.js.map +0 -1
  387. package/dist/src/openai-compat/openai-chunk-types.js.map +0 -1
  388. package/dist/src/openai-compat/openai-compat.js.map +0 -1
  389. package/dist/src/openai-compat/openai-types.js.map +0 -1
  390. package/dist/src/openai-compat/parse-route-body.js.map +0 -1
  391. package/dist/src/openai-compat/prompts.js.map +0 -1
  392. package/dist/src/openai-compat/response-formatter.js.map +0 -1
  393. package/dist/src/openai-compat/session-key-resolver.js.map +0 -1
  394. package/dist/src/openai-compat/skill-resolver.js.map +0 -1
  395. package/dist/src/openai-compat/sse-translator.js.map +0 -1
  396. package/dist/src/openai-compat/status-reporter.js.map +0 -1
  397. package/dist/src/openai-compat/streaming-handler.js.map +0 -1
  398. package/dist/src/openai-compat/tool-calls-parser.js.map +0 -1
  399. package/dist/src/openai-compat/tool-results-serializer.js.map +0 -1
  400. package/dist/src/openai-compat/tts-rule.js.map +0 -1
  401. package/dist/src/openai-compat/voice-recovery.js.map +0 -1
  402. package/dist/src/patches/cache-parity-registry.js.map +0 -1
  403. package/dist/src/patches/claude-md-injection.js.map +0 -1
  404. package/dist/src/patches/cwd-redirect.js.map +0 -1
  405. package/dist/src/patches/embedded-server-route.js.map +0 -1
  406. package/dist/src/patches/pricing-overrides.js.map +0 -1
  407. package/dist/src/patches/resume-registry-restore.js.map +0 -1
  408. package/dist/src/patches/session-pid-tracking.js.map +0 -1
  409. package/dist/src/patches/sysprompt-strip.js.map +0 -1
  410. package/dist/src/patches/sysprompt-strip.spec.d.ts +0 -33
  411. package/dist/src/patches/sysprompt-strip.spec.js +0 -53
  412. package/dist/src/patches/sysprompt-strip.spec.js.map +0 -1
  413. package/dist/src/patches/tools-restoration.js.map +0 -1
  414. package/dist/src/persistence/migration-v0.js.map +0 -1
  415. package/dist/src/persistence/session-registry.js.map +0 -1
  416. package/dist/src/persistence/snapshot.js.map +0 -1
  417. package/dist/src/persistence/wal.js.map +0 -1
  418. package/dist/src/proxy/anthropic-adapter.js.map +0 -1
  419. package/dist/src/proxy/handler.js.map +0 -1
  420. package/dist/src/proxy/index.js.map +0 -1
  421. package/dist/src/proxy/schema-cleaner.js.map +0 -1
  422. package/dist/src/proxy/thought-cache.js.map +0 -1
  423. package/dist/src/session/embedded-server.js.map +0 -1
  424. package/dist/src/session/inbox-manager.js.map +0 -1
  425. package/dist/src/session/index.js.map +0 -1
  426. package/dist/src/session/persisted-sessions.js.map +0 -1
  427. package/dist/src/session/session-manager.js.map +0 -1
  428. package/dist/src/session/watchdogs.js.map +0 -1
  429. package/dist/src/session-bootstrap/boot-self-heal.js.map +0 -1
  430. package/dist/src/session-bootstrap/cwd-patch.js.map +0 -1
  431. package/dist/src/session-bootstrap/index.js.map +0 -1
  432. package/dist/src/session-bootstrap/resume-registry.js.map +0 -1
  433. package/dist/src/session-bootstrap/session-hygiene.js.map +0 -1
  434. package/dist/src/session-bootstrap/sysprompt-strip.js.map +0 -1
  435. package/dist/src/session-bootstrap/think-conflict-resolver.js.map +0 -1
  436. package/dist/src/types/index.js.map +0 -1
  437. package/dist/src/types/route.js.map +0 -1
  438. package/dist/src/types/runtime-config.js.map +0 -1
  439. package/dist/src/types/session.js.map +0 -1
  440. package/dist/src/types/sse.js.map +0 -1
  441. package/dist/src/types/tool-bridge.js.map +0 -1
  442. package/dist/src/types/upstream.js.map +0 -1
  443. package/dist/src/types.js.map +0 -1
  444. package/dist/src/validation.js.map +0 -1
@@ -572,8 +572,13 @@ slashCommand) {
572
572
  // v0.26.2 M2 — push the real context-window % onto the card before the
573
573
  // final repaint (getStatus has it after the turn completes). Best-effort.
574
574
  try {
575
+ // v0.26.5 final-only: contextPercent is structurally 0 during the live
576
+ // turn (lastTurnContextTokens is only populated by the CLI `result` event
577
+ // at turn end). Set it ONLY when it's a real positive value — otherwise
578
+ // the card showed a misleading "ctx ░░░░░░░░ 0%". When it's 0/absent the
579
+ // meter row is omitted entirely (renderMeters gates on a present number).
575
580
  const cp = manager.getStatus(sessionName)?.stats?.contextPercent;
576
- if (typeof cp === 'number')
581
+ if (typeof cp === 'number' && cp > 0)
577
582
  mirrorSetCardMeta({ contextPercent: cp });
578
583
  }
579
584
  catch {
@@ -593,4 +598,3 @@ slashCommand) {
593
598
  res.end();
594
599
  }
595
600
  }
596
- //# sourceMappingURL=streaming-handler.js.map
@@ -90,4 +90,3 @@ export function parseToolCallsFromText(text) {
90
90
  const cleaned = text ? stripToolResultTags(text) : null;
91
91
  return { textContent: cleaned || null, toolCalls: [] };
92
92
  }
93
- //# sourceMappingURL=tool-calls-parser.js.map
@@ -53,4 +53,3 @@ export function serializeToolResultsAsBlocks(messages) {
53
53
  content: typeof m.content === 'string' ? m.content : JSON.stringify(m.content),
54
54
  }));
55
55
  }
56
- //# sourceMappingURL=tool-results-serializer.js.map
@@ -55,4 +55,3 @@ export const TTS_RULE = [
55
55
  '',
56
56
  '=== END VOICE DELIVERY RULE ===',
57
57
  ].join('\n');
58
- //# sourceMappingURL=tts-rule.js.map
@@ -227,4 +227,3 @@ export function applyVoiceRecovery(userPrompt, replyText, maxSpokenChars = DEFAU
227
227
  }
228
228
  return { text: translated, recovered: false, via: 'none' };
229
229
  }
230
- //# sourceMappingURL=voice-recovery.js.map
@@ -211,4 +211,3 @@ export class CacheParityRecovery {
211
211
  this._restartCycle = 0;
212
212
  }
213
213
  }
214
- //# sourceMappingURL=cache-parity-registry.js.map
@@ -43,4 +43,3 @@ export const claudeMdInjectionSpec = {
43
43
  // Phase E#3 — restore original startSession sysprompt lookup.
44
44
  },
45
45
  };
46
- //# sourceMappingURL=claude-md-injection.js.map
@@ -48,4 +48,3 @@ export const cwdRedirectSpec = {
48
48
  // Phase E#3 — restore original SessionManager.startSession cwd lookup.
49
49
  },
50
50
  };
51
- //# sourceMappingURL=cwd-redirect.js.map
@@ -61,4 +61,3 @@ export const embeddedServerRouteSpec = {
61
61
  // EmbeddedServer.prototype.route reference saved at install time.
62
62
  },
63
63
  };
64
- //# sourceMappingURL=embedded-server-route.js.map
@@ -52,4 +52,3 @@ export const pricingOverridesSpec = {
52
52
  // Phase E#3 — restore original pricing surface.
53
53
  },
54
54
  };
55
- //# sourceMappingURL=pricing-overrides.js.map
@@ -45,4 +45,3 @@ export const resumeRegistryRestoreSpec = {
45
45
  // Phase E#3 — restore original SessionManager state lifecycle.
46
46
  },
47
47
  };
48
- //# sourceMappingURL=resume-registry-restore.js.map
@@ -42,4 +42,3 @@ export const sessionPidTrackingSpec = {
42
42
  // Phase E#3 — restore original PID lifecycle.
43
43
  },
44
44
  };
45
- //# sourceMappingURL=session-pid-tracking.js.map
@@ -75,4 +75,3 @@ export const syspromptStripSpec = {
75
75
  // Drift-detection-only mode: no-op uninstall until Phase E#3 wires install.
76
76
  },
77
77
  };
78
- //# sourceMappingURL=sysprompt-strip.js.map
@@ -40,4 +40,3 @@ export const toolsRestorationSpec = {
40
40
  // Phase E#3 — restore original tools forwarding behavior.
41
41
  },
42
42
  };
43
- //# sourceMappingURL=tools-restoration.js.map
@@ -139,4 +139,3 @@ export class MigrationV0 {
139
139
  return map;
140
140
  }
141
141
  }
142
- //# sourceMappingURL=migration-v0.js.map
@@ -55,4 +55,3 @@ export class SessionRegistry {
55
55
  return this.map.values();
56
56
  }
57
57
  }
58
- //# sourceMappingURL=session-registry.js.map
@@ -29,4 +29,3 @@ export class SnapshotWriter {
29
29
  }
30
30
  }
31
31
  }
32
- //# sourceMappingURL=snapshot.js.map
@@ -29,4 +29,3 @@ export class WalWriter {
29
29
  }
30
30
  }
31
31
  }
32
- //# sourceMappingURL=wal.js.map
@@ -389,4 +389,3 @@ export async function* convertStreamOpenAIToAnthropic(stream, originalModel) {
389
389
  function sseEvent(event, data) {
390
390
  return `event: ${event}\ndata: ${JSON.stringify(data)}\n\n`;
391
391
  }
392
- //# sourceMappingURL=anthropic-adapter.js.map
@@ -375,4 +375,3 @@ async function* readSSELines(reader) {
375
375
  if (buffer.trim())
376
376
  yield buffer.trim();
377
377
  }
378
- //# sourceMappingURL=handler.js.map
@@ -2,4 +2,3 @@ export * from './anthropic-adapter.js';
2
2
  export * from './handler.js';
3
3
  export * from './schema-cleaner.js';
4
4
  export * from './thought-cache.js';
5
- //# sourceMappingURL=index.js.map
@@ -31,4 +31,3 @@ export function cleanGeminiSchema(schema) {
31
31
  }
32
32
  return cleaned;
33
33
  }
34
- //# sourceMappingURL=schema-cleaner.js.map
@@ -50,4 +50,3 @@ export function injectThoughtSigs(messages) {
50
50
  export function clearCache() {
51
51
  cache.clear();
52
52
  }
53
- //# sourceMappingURL=thought-cache.js.map
@@ -388,4 +388,3 @@ export class EmbeddedServer {
388
388
  }
389
389
  }
390
390
  }
391
- //# sourceMappingURL=embedded-server.js.map
@@ -108,4 +108,3 @@ export class InboxManager {
108
108
  return false;
109
109
  }
110
110
  }
111
- //# sourceMappingURL=inbox-manager.js.map
@@ -1,4 +1,3 @@
1
1
  export * from './session-manager.js';
2
2
  export * from './inbox-manager.js';
3
3
  export * from './embedded-server.js';
4
- //# sourceMappingURL=index.js.map
@@ -67,4 +67,3 @@ export function savePersistedSessionsAsync(sessions, logger) {
67
67
  });
68
68
  });
69
69
  }
70
- //# sourceMappingURL=persisted-sessions.js.map
@@ -1561,4 +1561,3 @@ export class SessionManager {
1561
1561
  return runawayThresholdModule();
1562
1562
  }
1563
1563
  }
1564
- //# sourceMappingURL=session-manager.js.map
@@ -117,4 +117,3 @@ export function isRunawayLoop(opts) {
117
117
  _trimStaleSpawns(opts.recentSpawns);
118
118
  return opts.recentSpawns.length >= threshold;
119
119
  }
120
- //# sourceMappingURL=watchdogs.js.map
@@ -51,4 +51,3 @@ export function ensureSandboxPermissions(seccompBinaries, logger, tag) {
51
51
  logger.info(`${tag} Sandbox binaries already have execute permissions`);
52
52
  }
53
53
  }
54
- //# sourceMappingURL=boot-self-heal.js.map
@@ -961,4 +961,3 @@ export function register(api) {
961
961
  });
962
962
  }); // end defaultRegisterGuard.guard
963
963
  }
964
- //# sourceMappingURL=cwd-patch.js.map
@@ -1,4 +1,3 @@
1
1
  export { register as registerCwdPatch, ensureStatusRuntimeStubs } from './cwd-patch.js';
2
2
  export { register as registerSyspromptStrip, stripSysprompt } from './sysprompt-strip.js';
3
3
  export { register as registerThinkConflictResolver } from './think-conflict-resolver.js';
4
- //# sourceMappingURL=index.js.map
@@ -55,4 +55,3 @@ export function writeBackupRegistry(entriesArray) {
55
55
  /* mirror is advisory; dist plugin still runs its own debounced save */
56
56
  }
57
57
  }
58
- //# sourceMappingURL=resume-registry.js.map
@@ -38,4 +38,3 @@ export function cleanStaleSessions(manager, logger, tag) {
38
38
  logger.warn(`${tag} Stale cleanup failed: ${e instanceof Error ? e.message : String(e)}`);
39
39
  }
40
40
  }
41
- //# sourceMappingURL=session-hygiene.js.map
@@ -54,4 +54,3 @@ export function register(api) {
54
54
  log.info(`${TAG} before_prompt_build hook registered (strip enabled=${enabled})`);
55
55
  }); // end defaultRegisterGuard.guard
56
56
  }
57
- //# sourceMappingURL=sysprompt-strip.js.map
@@ -231,4 +231,3 @@ export function register(api) {
231
231
  log.info(`${TAG} Hooks registered: /think conflict resolver (before_dispatch + before_prompt_build) + CoS session identity (before_dispatch + before_prompt_build)`);
232
232
  }); // end defaultRegisterGuard.guard
233
233
  }
234
- //# sourceMappingURL=think-conflict-resolver.js.map
@@ -13,4 +13,3 @@ export * from './sse.js';
13
13
  export * from './session.js';
14
14
  export * from './upstream.js';
15
15
  export * from './tool-bridge.js';
16
- //# sourceMappingURL=index.js.map
@@ -9,4 +9,3 @@
9
9
  * NOT consumed yet — Cluster A first commit establishes the vocabulary.
10
10
  */
11
11
  export {};
12
- //# sourceMappingURL=route.js.map
@@ -168,4 +168,3 @@ export class ConfigError extends Error {
168
168
  this.issues = Object.freeze(issues.slice());
169
169
  }
170
170
  }
171
- //# sourceMappingURL=runtime-config.js.map
@@ -17,4 +17,3 @@
17
17
  export const sessionNameFromKey = (key) => `openai-${key}`;
18
18
  export const isOpenAiBridgeName = (name) => name.startsWith('openai-');
19
19
  export const stripOpenAiPrefix = (name) => name.replace(/^openai-/, '');
20
- //# sourceMappingURL=session.js.map
@@ -9,4 +9,3 @@
9
9
  * NOT consumed yet — Cluster A first commit establishes the vocabulary.
10
10
  */
11
11
  export {};
12
- //# sourceMappingURL=sse.js.map
@@ -32,4 +32,3 @@ export var ToolMode;
32
32
  ToolMode["NativeStream"] = "native-stream";
33
33
  ToolMode["OpenClawNative"] = "openclaw-native";
34
34
  })(ToolMode || (ToolMode = {}));
35
- //# sourceMappingURL=tool-bridge.js.map
@@ -142,4 +142,3 @@ export function isClaudeRoutedModel(model) {
142
142
  return false;
143
143
  return model.startsWith('claude-local/') || model.startsWith('cc-openclaw/');
144
144
  }
145
- //# sourceMappingURL=upstream.js.map
package/dist/src/types.js CHANGED
@@ -5,4 +5,3 @@ import { getAliases } from './models.js';
5
5
  export { getModelPricing, overrideModelPricing, _resetPricingOverrides, getModelList, resolveAlias, resolveEngineAndModel, resolveProvider, getContextWindow, isGeminiModel, isClaudeModel, estimateTokens, lookupModelStrict, getAliases, } from './models.js';
6
6
  // Backward compat: MODEL_ALIASES as a static object
7
7
  export const MODEL_ALIASES = getAliases();
8
- //# sourceMappingURL=types.js.map
@@ -101,4 +101,3 @@ export function validateName(name) {
101
101
  }
102
102
  return name;
103
103
  }
104
- //# sourceMappingURL=validation.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a1hvdy/cc-openclaw",
3
- "version": "0.26.5",
3
+ "version": "0.26.6",
4
4
  "description": "A1xAI's Anthropic CLI bridge plugin for OpenClaw",
5
5
  "author": "@a1cy",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAwFH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAc,EAAE,OAAuB;IAC5E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
@@ -1,80 +0,0 @@
1
- /**
2
- * telegram/card-renderer.ts
3
- *
4
- * Telegram Bot API HTTP layer + stream-event bridge.
5
- * Extracted from live-card.ts (lines 214–458) per Phase 5 decomposition.
6
- *
7
- * Exports: telegramApi, sendTg, editTg, bridgeEvent, StreamEvent, TranscriptEntry
8
- */
9
- export declare function telegramApi(method: string, params: Record<string, unknown>): Promise<{
10
- ok: boolean;
11
- result?: {
12
- message_id?: number;
13
- };
14
- error_code?: number;
15
- description?: string;
16
- parameters?: {
17
- retry_after?: number;
18
- };
19
- }>;
20
- /** Send a Telegram message. Tries MarkdownV2 first, falls back to plain text.
21
- *
22
- * Fallback v0.20.1: when MarkdownV2 parse fails, retry the SAME text without
23
- * `parse_mode`. Telegram then treats the body as literal plain text — all
24
- * content punctuation survives. The prior implementation stripped
25
- * `[_*[\](){}.!\\]…` from content (regex `/[_*[\]()~`>#+\-=|{}.!\\]/g`),
26
- * which removed periods/hyphens/parens from assistant text and caused the
27
- * "period-touches-cap" / "no paragraph break" symptoms observed in
28
- * Telegram chat bubbles. Plain-text mode preserves all content; the
29
- * trade-off is no markdown rendering on fallback, which is strictly
30
- * better than corrupted content. Callers that want markdown formatting
31
- * must pre-escape via `escapeMarkdownV2` before calling sendTg so the
32
- * first MarkdownV2 attempt succeeds.
33
- */
34
- export declare function sendTg(chatId: string, text: string, threadId?: string, replyMarkup?: unknown, replyToMessageId?: number | null): Promise<{
35
- ok: boolean;
36
- result?: {
37
- message_id?: number;
38
- };
39
- }>;
40
- /** Edit a Telegram message. Tries MarkdownV2 first, falls back to plain text.
41
- *
42
- * Fallback v0.20.1: same change as sendTg — when MarkdownV2 parse fails,
43
- * retry without `parse_mode` rather than stripping content punctuation.
44
- */
45
- export declare function editTg(chatId: string, messageId: number, text: string, replyMarkup?: unknown): Promise<{
46
- ok: boolean;
47
- }>;
48
- export interface StreamEvent {
49
- type: string;
50
- id?: string;
51
- tool_use_id?: string;
52
- parent_tool_use_id?: string;
53
- parentToolUseId?: string;
54
- tool?: {
55
- name?: string;
56
- input?: Record<string, unknown>;
57
- parent_tool_use_id?: string;
58
- };
59
- tool_name?: string;
60
- input?: Record<string, unknown>;
61
- content?: unknown;
62
- output?: unknown;
63
- is_error?: boolean;
64
- error?: unknown;
65
- result?: string;
66
- }
67
- export interface TranscriptEntry {
68
- kind: 'tool_call' | 'tool_result' | 'assistant';
69
- ts: string;
70
- name?: string;
71
- input?: Record<string, unknown>;
72
- toolUseId?: string;
73
- parentToolUseId?: string;
74
- toolName?: string;
75
- content?: unknown;
76
- isError?: boolean;
77
- text?: string;
78
- delta?: boolean;
79
- }
80
- export declare function bridgeEvent(event: StreamEvent): TranscriptEntry | null;
@@ -1,169 +0,0 @@
1
- /**
2
- * telegram/card-renderer.ts
3
- *
4
- * Telegram Bot API HTTP layer + stream-event bridge.
5
- * Extracted from live-card.ts (lines 214–458) per Phase 5 decomposition.
6
- *
7
- * Exports: telegramApi, sendTg, editTg, bridgeEvent, StreamEvent, TranscriptEntry
8
- */
9
- import { request as httpsRequest } from 'node:https';
10
- import { _logger } from './logger.js';
11
- import { BOT_TOKEN } from './live-card.js';
12
- const PLUGIN_TAG = '[cc-openclaw/telegram/live-card]';
13
- // ── Telegram Bot API ──────────────────────────────────────────────────────
14
- export function telegramApi(method, params) {
15
- return new Promise((resolve, reject) => {
16
- const body = JSON.stringify(params);
17
- const options = {
18
- hostname: 'api.telegram.org',
19
- path: `/bot${BOT_TOKEN}/${method}`,
20
- method: 'POST',
21
- headers: {
22
- 'Content-Type': 'application/json',
23
- 'Content-Length': Buffer.byteLength(body),
24
- },
25
- };
26
- const req = httpsRequest(options, (res) => {
27
- let data = '';
28
- res.on('data', (chunk) => (data += chunk));
29
- res.on('end', () => {
30
- try {
31
- resolve(JSON.parse(data));
32
- }
33
- catch {
34
- resolve({ ok: false, description: 'JSON parse error' });
35
- }
36
- });
37
- });
38
- req.on('error', (err) => reject(err));
39
- req.setTimeout(10_000, () => {
40
- req.destroy(new Error('Telegram API timeout'));
41
- });
42
- req.write(body);
43
- req.end();
44
- });
45
- }
46
- /** Send a Telegram message. Tries MarkdownV2 first, falls back to plain text.
47
- *
48
- * Fallback v0.20.1: when MarkdownV2 parse fails, retry the SAME text without
49
- * `parse_mode`. Telegram then treats the body as literal plain text — all
50
- * content punctuation survives. The prior implementation stripped
51
- * `[_*[\](){}.!\\]…` from content (regex `/[_*[\]()~`>#+\-=|{}.!\\]/g`),
52
- * which removed periods/hyphens/parens from assistant text and caused the
53
- * "period-touches-cap" / "no paragraph break" symptoms observed in
54
- * Telegram chat bubbles. Plain-text mode preserves all content; the
55
- * trade-off is no markdown rendering on fallback, which is strictly
56
- * better than corrupted content. Callers that want markdown formatting
57
- * must pre-escape via `escapeMarkdownV2` before calling sendTg so the
58
- * first MarkdownV2 attempt succeeds.
59
- */
60
- export async function sendTg(chatId, text, threadId, replyMarkup, replyToMessageId) {
61
- try {
62
- const base = { chat_id: chatId, disable_web_page_preview: true };
63
- if (threadId)
64
- base.message_thread_id = Number(threadId);
65
- if (replyMarkup)
66
- base.reply_markup = replyMarkup;
67
- if (replyToMessageId)
68
- base.reply_to_message_id = Number(replyToMessageId);
69
- const res = await telegramApi('sendMessage', {
70
- ...base,
71
- text,
72
- parse_mode: 'MarkdownV2',
73
- });
74
- if (res.ok)
75
- return res;
76
- _logger.warn(`${PLUGIN_TAG} sendTg MarkdownV2 failed (${res.error_code || '?'}: ${res.description || ''}) — falling back to plain text`);
77
- return telegramApi('sendMessage', {
78
- ...base,
79
- text: text || 'Session update',
80
- // parse_mode intentionally omitted — Telegram treats as plain text,
81
- // preserving content punctuation that MarkdownV2 would have flagged.
82
- });
83
- }
84
- catch {
85
- return { ok: false };
86
- }
87
- }
88
- /** Edit a Telegram message. Tries MarkdownV2 first, falls back to plain text.
89
- *
90
- * Fallback v0.20.1: same change as sendTg — when MarkdownV2 parse fails,
91
- * retry without `parse_mode` rather than stripping content punctuation.
92
- */
93
- export async function editTg(chatId, messageId, text, replyMarkup) {
94
- try {
95
- const params = {
96
- chat_id: chatId,
97
- message_id: messageId,
98
- text,
99
- parse_mode: 'MarkdownV2',
100
- disable_web_page_preview: true,
101
- };
102
- if (replyMarkup)
103
- params.reply_markup = replyMarkup;
104
- const res = await telegramApi('editMessageText', params);
105
- if (!res.ok && (res.error_code === 429 || res.description?.includes('Too Many Requests'))) {
106
- const retryAfterSec = res.parameters?.retry_after || 5;
107
- const waitMs = Math.min(retryAfterSec * 1000, 30000);
108
- _logger.warn(`${PLUGIN_TAG} editTg 429 — waiting ${waitMs}ms`);
109
- await new Promise(r => setTimeout(r, waitMs));
110
- const retry = await telegramApi('editMessageText', params);
111
- if (retry.ok)
112
- return retry;
113
- }
114
- if (res.ok)
115
- return res;
116
- _logger.warn(`${PLUGIN_TAG} editTg MarkdownV2 failed (${res.error_code || '?'}: ${res.description || ''}) — falling back to plain text`);
117
- const fallback = {
118
- chat_id: chatId,
119
- message_id: messageId,
120
- text: text || 'Session update',
121
- disable_web_page_preview: true,
122
- // parse_mode intentionally omitted — see sendTg comment.
123
- };
124
- if (replyMarkup)
125
- fallback.reply_markup = replyMarkup;
126
- return telegramApi('editMessageText', fallback);
127
- }
128
- catch {
129
- return { ok: false };
130
- }
131
- }
132
- export function bridgeEvent(event) {
133
- const ts = new Date().toISOString();
134
- if (event.type === 'tool_use') {
135
- const parentToolUseId = event.parent_tool_use_id ||
136
- event.tool?.parent_tool_use_id ||
137
- event.parentToolUseId ||
138
- '';
139
- return {
140
- kind: 'tool_call',
141
- ts,
142
- name: event.tool?.name || 'Unknown',
143
- input: event.tool?.input || {},
144
- toolUseId: event.id || event.tool_use_id || '',
145
- parentToolUseId,
146
- };
147
- }
148
- if (event.type === 'tool_result') {
149
- return {
150
- kind: 'tool_result',
151
- ts,
152
- toolUseId: event.tool_use_id || event.id || '',
153
- toolName: event.tool_name || event.tool?.name || undefined,
154
- content: event.content || event.output || '',
155
- isError: Boolean(event.is_error || event.error),
156
- parentToolUseId: event.parent_tool_use_id || event.parentToolUseId || '',
157
- };
158
- }
159
- if (event.type === 'text') {
160
- return {
161
- kind: 'assistant',
162
- ts,
163
- text: event.result || '',
164
- delta: true,
165
- };
166
- }
167
- return null;
168
- }
169
- //# sourceMappingURL=card-renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-renderer.js","sourceRoot":"","sources":["../../../../src/channels/telegram/card-renderer.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * telegram completion-summary — TypeScript port of savvy-claude-code/ux-bridge.js
3
- *
4
- * Handles reply_dispatch finalization for Savvy cards:
5
- * - Marks card done, generates next-steps, renders final state
6
- * - Auto-collapse after delay, TTL-delete collapsed card
7
- * - Completion reactions + auto-pin/unpin error cards
8
- * - Persists card summary to daily JSONL log
9
- * - Updates session history cache
10
- *
11
- * Source lines: 2077–2222 of ux-bridge.js
12
- */
13
- export interface PluginApi {
14
- on(event: string, handler: (...args: unknown[]) => unknown | Promise<unknown>): void;
15
- logger?: Console;
16
- }
17
- /**
18
- * Register the completion-summary plugin hook (reply_dispatch).
19
- * Idempotent — subsequent calls are no-ops.
20
- */
21
- export declare function register(api: PluginApi): void;