@a1hvdy/cc-openclaw 0.26.5 → 0.27.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 (448) hide show
  1. package/dist/src/channels/adapter.js +0 -1
  2. package/dist/src/channels/telegram-mirror/askuser.js +21 -8
  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 +113 -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.d.ts +12 -2
  27. package/dist/src/channels/telegram-mirror/state-machine.js +36 -2
  28. package/dist/src/channels/telegram-mirror/status-line.js +0 -1
  29. package/dist/src/channels/telegram-mirror/sync-commands.js +0 -1
  30. package/dist/src/channels/telegram-mirror/threshold-watcher.js +0 -1
  31. package/dist/src/channels/telegram-mirror/turn-bridge.d.ts +17 -0
  32. package/dist/src/channels/telegram-mirror/turn-bridge.js +70 -2
  33. package/dist/src/cli/checks/bridge-wiring.js +0 -1
  34. package/dist/src/cli/checks/config-schema.js +0 -1
  35. package/dist/src/cli/checks/critical-openclaw-json-keys.js +0 -1
  36. package/dist/src/cli/checks/install-path.js +0 -1
  37. package/dist/src/cli/checks/patch-scaffold.js +0 -1
  38. package/dist/src/cli/doctor.js +0 -1
  39. package/dist/src/cli/index.js +0 -1
  40. package/dist/src/cli/migrate.js +0 -1
  41. package/dist/src/command-router/cc-handler.js +0 -1
  42. package/dist/src/command-router/index.js +0 -1
  43. package/dist/src/command-router/launch-policy.js +0 -1
  44. package/dist/src/command-router/resume-policy.js +0 -1
  45. package/dist/src/command-router/turn-formatter.js +0 -1
  46. package/dist/src/config/drift-detector.js +0 -1
  47. package/dist/src/config/loader.js +0 -1
  48. package/dist/src/config/schema.js +0 -1
  49. package/dist/src/constants.js +0 -1
  50. package/dist/src/council/build-agent-prompt.js +0 -1
  51. package/dist/src/council/cleanup-worktrees.js +0 -1
  52. package/dist/src/council/consensus.js +0 -1
  53. package/dist/src/council/council.js +0 -1
  54. package/dist/src/council/index.js +0 -1
  55. package/dist/src/council/system-prompt.js +0 -1
  56. package/dist/src/council/write-worktree-claude-md.js +0 -1
  57. package/dist/src/engines/base-oneshot-session.js +0 -1
  58. package/dist/src/engines/heartbeat-guard.js +0 -1
  59. package/dist/src/engines/index.js +0 -1
  60. package/dist/src/engines/persistent-codex-session.js +0 -1
  61. package/dist/src/engines/persistent-cursor-session.js +0 -1
  62. package/dist/src/engines/persistent-custom-session.js +0 -1
  63. package/dist/src/engines/persistent-gemini-session.js +0 -1
  64. package/dist/src/engines/persistent-session.js +30 -1
  65. package/dist/src/engines/resolve-bin.js +0 -1
  66. package/dist/src/engines/subprocess-pool.js +0 -1
  67. package/dist/src/health/handler.js +0 -1
  68. package/dist/src/health/index.js +0 -1
  69. package/dist/src/health/metrics.js +0 -1
  70. package/dist/src/index.js +0 -1
  71. package/dist/src/lib/auto-recovery.js +0 -1
  72. package/dist/src/lib/cache-parity.js +0 -1
  73. package/dist/src/lib/circuit-breaker.js +0 -1
  74. package/dist/src/lib/config-service.js +0 -1
  75. package/dist/src/lib/config.js +0 -1
  76. package/dist/src/lib/cost-rollup.js +0 -1
  77. package/dist/src/lib/debounce.js +0 -1
  78. package/dist/src/lib/debug-tap.js +0 -1
  79. package/dist/src/lib/domain-error.js +0 -1
  80. package/dist/src/lib/drift-detector.js +0 -1
  81. package/dist/src/lib/env-overrides.js +0 -1
  82. package/dist/src/lib/error-formatter.js +0 -1
  83. package/dist/src/lib/error-renderer.js +0 -1
  84. package/dist/src/lib/heartbeat-config.js +0 -1
  85. package/dist/src/lib/heartbeat-workaround.js +0 -1
  86. package/dist/src/lib/html-render.d.ts +43 -0
  87. package/dist/src/lib/html-render.js +110 -0
  88. package/dist/src/lib/http-agent.js +0 -1
  89. package/dist/src/lib/index.js +0 -1
  90. package/dist/src/lib/json-array.js +0 -1
  91. package/dist/src/lib/markdown-to-mdv2.js +0 -1
  92. package/dist/src/lib/markdown-v2.js +0 -1
  93. package/dist/src/lib/perf/async-compact.js +0 -1
  94. package/dist/src/lib/perf/direct-sdk.js +0 -1
  95. package/dist/src/lib/perf/haiku-route.js +0 -1
  96. package/dist/src/lib/perf/predictive-continuation.js +0 -1
  97. package/dist/src/lib/perf/read-batch.js +0 -1
  98. package/dist/src/lib/perf/skill-list-collapse.js +0 -1
  99. package/dist/src/lib/perf/speculative-bubble.js +0 -1
  100. package/dist/src/lib/perf/typing-prefetch.js +0 -1
  101. package/dist/src/lib/register-guard.js +0 -1
  102. package/dist/src/lib/req-shape-log.js +0 -1
  103. package/dist/src/lib/safe-upstream-probes.js +0 -1
  104. package/dist/src/lib/session-registry.js +0 -1
  105. package/dist/src/lib/spawn-async.js +0 -1
  106. package/dist/src/lib/stale-pid-files.js +0 -1
  107. package/dist/src/lib/status-tee-reader.js +0 -1
  108. package/dist/src/lib/sysprompt-strip.js +0 -1
  109. package/dist/src/lib/telegram-bot-api.js +2 -3
  110. package/dist/src/lib/telemetry.js +0 -1
  111. package/dist/src/lib/test-mode.js +0 -1
  112. package/dist/src/lib/trajectory.js +0 -1
  113. package/dist/src/lib/vendor-paths.js +0 -1
  114. package/dist/src/lifecycle/boot.js +0 -1
  115. package/dist/src/lifecycle/patch-manifest.js +0 -1
  116. package/dist/src/lifecycle/phase-import-upstream.js +0 -1
  117. package/dist/src/lifecycle/phase-install-patches.js +0 -1
  118. package/dist/src/lifecycle/phase-schedule-jobs.js +0 -1
  119. package/dist/src/lifecycle/phase-start-server.js +0 -1
  120. package/dist/src/lifecycle/phase-validate-config.js +0 -1
  121. package/dist/src/lifecycle/phase-validate-upstream.js +0 -1
  122. package/dist/src/lifecycle/phase-wire-handlers.js +0 -1
  123. package/dist/src/lifecycle/safe-restart.js +0 -1
  124. package/dist/src/logger.js +0 -1
  125. package/dist/src/mcp/bridge.js +0 -1
  126. package/dist/src/mcp/index.js +0 -1
  127. package/dist/src/models.js +0 -1
  128. package/dist/src/observability/event-bus.js +0 -1
  129. package/dist/src/observability/get-event-bus.js +0 -1
  130. package/dist/src/observability/observability-service.js +0 -1
  131. package/dist/src/observability/perf-telemetry.js +0 -1
  132. package/dist/src/observability/subscribers/metrics.js +0 -1
  133. package/dist/src/observability/subscribers/session-capture.js +0 -1
  134. package/dist/src/openai-compat/bridges/allowlist.js +0 -1
  135. package/dist/src/openai-compat/bridges/factory.js +0 -1
  136. package/dist/src/openai-compat/bridges/media-bridge.js +0 -1
  137. package/dist/src/openai-compat/bridges/openclaw-api-shim.js +0 -1
  138. package/dist/src/openai-compat/bridges/openclaw-native-tools.js +0 -1
  139. package/dist/src/openai-compat/bridges/openclaw-tool-registry.js +0 -1
  140. package/dist/src/openai-compat/bridges/tts-media-bridge.js +0 -1
  141. package/dist/src/openai-compat/cli-stream-parser.js +0 -1
  142. package/dist/src/openai-compat/index.js +0 -1
  143. package/dist/src/openai-compat/message-extractor.js +0 -1
  144. package/dist/src/openai-compat/mode-flags.js +0 -1
  145. package/dist/src/openai-compat/non-streaming-handler.js +13 -3
  146. package/dist/src/openai-compat/openai-chunk-types.js +0 -1
  147. package/dist/src/openai-compat/openai-compat.js +0 -1
  148. package/dist/src/openai-compat/openai-types.js +0 -1
  149. package/dist/src/openai-compat/parse-route-body.js +0 -1
  150. package/dist/src/openai-compat/prompts.js +0 -1
  151. package/dist/src/openai-compat/response-formatter.js +0 -1
  152. package/dist/src/openai-compat/session-key-resolver.js +0 -1
  153. package/dist/src/openai-compat/skill-resolver.js +0 -1
  154. package/dist/src/openai-compat/sse-translator.js +0 -1
  155. package/dist/src/openai-compat/status-reporter.js +0 -1
  156. package/dist/src/openai-compat/streaming-handler.js +16 -3
  157. package/dist/src/openai-compat/tool-calls-parser.js +0 -1
  158. package/dist/src/openai-compat/tool-results-serializer.js +0 -1
  159. package/dist/src/openai-compat/tts-rule.js +0 -1
  160. package/dist/src/openai-compat/voice-recovery.js +0 -1
  161. package/dist/src/patches/cache-parity-registry.js +0 -1
  162. package/dist/src/patches/claude-md-injection.js +0 -1
  163. package/dist/src/patches/cwd-redirect.js +0 -1
  164. package/dist/src/patches/embedded-server-route.js +0 -1
  165. package/dist/src/patches/pricing-overrides.js +0 -1
  166. package/dist/src/patches/resume-registry-restore.js +0 -1
  167. package/dist/src/patches/session-pid-tracking.js +0 -1
  168. package/dist/src/patches/sysprompt-strip.js +0 -1
  169. package/dist/src/patches/tools-restoration.js +0 -1
  170. package/dist/src/persistence/migration-v0.js +0 -1
  171. package/dist/src/persistence/session-registry.js +0 -1
  172. package/dist/src/persistence/snapshot.js +0 -1
  173. package/dist/src/persistence/wal.js +0 -1
  174. package/dist/src/proxy/anthropic-adapter.js +0 -1
  175. package/dist/src/proxy/handler.js +0 -1
  176. package/dist/src/proxy/index.js +0 -1
  177. package/dist/src/proxy/schema-cleaner.js +0 -1
  178. package/dist/src/proxy/thought-cache.js +0 -1
  179. package/dist/src/session/embedded-server.js +0 -1
  180. package/dist/src/session/inbox-manager.js +0 -1
  181. package/dist/src/session/index.js +0 -1
  182. package/dist/src/session/persisted-sessions.js +0 -1
  183. package/dist/src/session/session-manager.js +0 -1
  184. package/dist/src/session/watchdogs.js +0 -1
  185. package/dist/src/session-bootstrap/boot-self-heal.js +0 -1
  186. package/dist/src/session-bootstrap/cwd-patch.js +0 -1
  187. package/dist/src/session-bootstrap/index.js +0 -1
  188. package/dist/src/session-bootstrap/resume-registry.js +0 -1
  189. package/dist/src/session-bootstrap/session-hygiene.js +0 -1
  190. package/dist/src/session-bootstrap/sysprompt-strip.js +0 -1
  191. package/dist/src/session-bootstrap/think-conflict-resolver.js +0 -1
  192. package/dist/src/types/index.js +0 -1
  193. package/dist/src/types/route.js +0 -1
  194. package/dist/src/types/runtime-config.js +0 -1
  195. package/dist/src/types/session.js +0 -1
  196. package/dist/src/types/sse.js +0 -1
  197. package/dist/src/types/tool-bridge.js +0 -1
  198. package/dist/src/types/upstream.js +0 -1
  199. package/dist/src/types.js +0 -1
  200. package/dist/src/validation.js +0 -1
  201. package/package.json +1 -1
  202. package/dist/src/channels/adapter.js.map +0 -1
  203. package/dist/src/channels/telegram/card-renderer.d.ts +0 -80
  204. package/dist/src/channels/telegram/card-renderer.js +0 -169
  205. package/dist/src/channels/telegram/card-renderer.js.map +0 -1
  206. package/dist/src/channels/telegram/completion-summary.d.ts +0 -21
  207. package/dist/src/channels/telegram/completion-summary.js +0 -218
  208. package/dist/src/channels/telegram/completion-summary.js.map +0 -1
  209. package/dist/src/channels/telegram/edit-cadence.d.ts +0 -37
  210. package/dist/src/channels/telegram/edit-cadence.js +0 -50
  211. package/dist/src/channels/telegram/edit-cadence.js.map +0 -1
  212. package/dist/src/channels/telegram/error-renderer.d.ts +0 -29
  213. package/dist/src/channels/telegram/error-renderer.js +0 -133
  214. package/dist/src/channels/telegram/error-renderer.js.map +0 -1
  215. package/dist/src/channels/telegram/event-reducer.d.ts +0 -33
  216. package/dist/src/channels/telegram/event-reducer.js +0 -647
  217. package/dist/src/channels/telegram/event-reducer.js.map +0 -1
  218. package/dist/src/channels/telegram/format-helpers.d.ts +0 -20
  219. package/dist/src/channels/telegram/format-helpers.js +0 -34
  220. package/dist/src/channels/telegram/format-helpers.js.map +0 -1
  221. package/dist/src/channels/telegram/index.d.ts +0 -13
  222. package/dist/src/channels/telegram/index.js +0 -14
  223. package/dist/src/channels/telegram/index.js.map +0 -1
  224. package/dist/src/channels/telegram/injector.d.ts +0 -53
  225. package/dist/src/channels/telegram/injector.js +0 -271
  226. package/dist/src/channels/telegram/injector.js.map +0 -1
  227. package/dist/src/channels/telegram/insight-formatter.d.ts +0 -36
  228. package/dist/src/channels/telegram/insight-formatter.js +0 -36
  229. package/dist/src/channels/telegram/insight-formatter.js.map +0 -1
  230. package/dist/src/channels/telegram/live-card.d.ts +0 -185
  231. package/dist/src/channels/telegram/live-card.js +0 -868
  232. package/dist/src/channels/telegram/live-card.js.map +0 -1
  233. package/dist/src/channels/telegram/logger.d.ts +0 -10
  234. package/dist/src/channels/telegram/logger.js +0 -13
  235. package/dist/src/channels/telegram/logger.js.map +0 -1
  236. package/dist/src/channels/telegram/result-preview.d.ts +0 -12
  237. package/dist/src/channels/telegram/result-preview.js +0 -48
  238. package/dist/src/channels/telegram/result-preview.js.map +0 -1
  239. package/dist/src/channels/telegram/speculative-bubble.d.ts +0 -33
  240. package/dist/src/channels/telegram/speculative-bubble.js +0 -42
  241. package/dist/src/channels/telegram/speculative-bubble.js.map +0 -1
  242. package/dist/src/channels/telegram/state-machine.d.ts +0 -22
  243. package/dist/src/channels/telegram/state-machine.js +0 -72
  244. package/dist/src/channels/telegram/state-machine.js.map +0 -1
  245. package/dist/src/channels/telegram/throttle-controller.d.ts +0 -88
  246. package/dist/src/channels/telegram/throttle-controller.js +0 -203
  247. package/dist/src/channels/telegram/throttle-controller.js.map +0 -1
  248. package/dist/src/channels/telegram/tool-tracker.d.ts +0 -149
  249. package/dist/src/channels/telegram/tool-tracker.js +0 -578
  250. package/dist/src/channels/telegram/tool-tracker.js.map +0 -1
  251. package/dist/src/channels/telegram-mirror/askuser.js.map +0 -1
  252. package/dist/src/channels/telegram-mirror/burst-accumulator.js.map +0 -1
  253. package/dist/src/channels/telegram-mirror/callback-mapping.js.map +0 -1
  254. package/dist/src/channels/telegram-mirror/card-renderer.js.map +0 -1
  255. package/dist/src/channels/telegram-mirror/card-state.js.map +0 -1
  256. package/dist/src/channels/telegram-mirror/commands.js.map +0 -1
  257. package/dist/src/channels/telegram-mirror/compose-buffer.js.map +0 -1
  258. package/dist/src/channels/telegram-mirror/cost-views.js.map +0 -1
  259. package/dist/src/channels/telegram-mirror/failure/callback-data-overflow.js.map +0 -1
  260. package/dist/src/channels/telegram-mirror/failure/gateway-down.js.map +0 -1
  261. package/dist/src/channels/telegram-mirror/failure/in-flight-conflict.js.map +0 -1
  262. package/dist/src/channels/telegram-mirror/failure/index.js.map +0 -1
  263. package/dist/src/channels/telegram-mirror/failure/model-5xx.js.map +0 -1
  264. package/dist/src/channels/telegram-mirror/failure/network-blip.js.map +0 -1
  265. package/dist/src/channels/telegram-mirror/failure/pool-exhausted-fallback.js.map +0 -1
  266. package/dist/src/channels/telegram-mirror/failure/rate-limit.js.map +0 -1
  267. package/dist/src/channels/telegram-mirror/failure/returning-after-24h.js.map +0 -1
  268. package/dist/src/channels/telegram-mirror/failure/types.js.map +0 -1
  269. package/dist/src/channels/telegram-mirror/inbound-handler.js.map +0 -1
  270. package/dist/src/channels/telegram-mirror/index.js.map +0 -1
  271. package/dist/src/channels/telegram-mirror/plan-attachment.js.map +0 -1
  272. package/dist/src/channels/telegram-mirror/quota-reader.js.map +0 -1
  273. package/dist/src/channels/telegram-mirror/sessions-keyboard.js.map +0 -1
  274. package/dist/src/channels/telegram-mirror/soak-log.js.map +0 -1
  275. package/dist/src/channels/telegram-mirror/state-machine.js.map +0 -1
  276. package/dist/src/channels/telegram-mirror/status-line.js.map +0 -1
  277. package/dist/src/channels/telegram-mirror/sync-commands.js.map +0 -1
  278. package/dist/src/channels/telegram-mirror/threshold-watcher.js.map +0 -1
  279. package/dist/src/channels/telegram-mirror/turn-bridge.js.map +0 -1
  280. package/dist/src/cli/checks/bridge-wiring.js.map +0 -1
  281. package/dist/src/cli/checks/config-schema.js.map +0 -1
  282. package/dist/src/cli/checks/critical-openclaw-json-keys.js.map +0 -1
  283. package/dist/src/cli/checks/install-path.js.map +0 -1
  284. package/dist/src/cli/checks/patch-scaffold.js.map +0 -1
  285. package/dist/src/cli/doctor.js.map +0 -1
  286. package/dist/src/cli/index.js.map +0 -1
  287. package/dist/src/cli/migrate.js.map +0 -1
  288. package/dist/src/command-router/cc-handler.js.map +0 -1
  289. package/dist/src/command-router/index.js.map +0 -1
  290. package/dist/src/command-router/launch-policy.js.map +0 -1
  291. package/dist/src/command-router/resume-policy.js.map +0 -1
  292. package/dist/src/command-router/turn-formatter.js.map +0 -1
  293. package/dist/src/config/drift-detector.js.map +0 -1
  294. package/dist/src/config/loader.js.map +0 -1
  295. package/dist/src/config/schema.js.map +0 -1
  296. package/dist/src/constants.js.map +0 -1
  297. package/dist/src/council/build-agent-prompt.js.map +0 -1
  298. package/dist/src/council/cleanup-worktrees.js.map +0 -1
  299. package/dist/src/council/consensus.js.map +0 -1
  300. package/dist/src/council/council.js.map +0 -1
  301. package/dist/src/council/index.js.map +0 -1
  302. package/dist/src/council/system-prompt.js.map +0 -1
  303. package/dist/src/council/write-worktree-claude-md.js.map +0 -1
  304. package/dist/src/engines/base-oneshot-session.js.map +0 -1
  305. package/dist/src/engines/heartbeat-guard.js.map +0 -1
  306. package/dist/src/engines/index.js.map +0 -1
  307. package/dist/src/engines/persistent-codex-session.js.map +0 -1
  308. package/dist/src/engines/persistent-cursor-session.js.map +0 -1
  309. package/dist/src/engines/persistent-custom-session.js.map +0 -1
  310. package/dist/src/engines/persistent-gemini-session.js.map +0 -1
  311. package/dist/src/engines/persistent-session.js.map +0 -1
  312. package/dist/src/engines/resolve-bin.js.map +0 -1
  313. package/dist/src/engines/subprocess-pool.js.map +0 -1
  314. package/dist/src/health/handler.js.map +0 -1
  315. package/dist/src/health/index.js.map +0 -1
  316. package/dist/src/health/metrics.js.map +0 -1
  317. package/dist/src/index.js.map +0 -1
  318. package/dist/src/lib/auto-recovery.js.map +0 -1
  319. package/dist/src/lib/cache-parity.js.map +0 -1
  320. package/dist/src/lib/circuit-breaker.js.map +0 -1
  321. package/dist/src/lib/config-service.js.map +0 -1
  322. package/dist/src/lib/config.js.map +0 -1
  323. package/dist/src/lib/cost-rollup.js.map +0 -1
  324. package/dist/src/lib/debounce.js.map +0 -1
  325. package/dist/src/lib/debug-tap.js.map +0 -1
  326. package/dist/src/lib/domain-error.js.map +0 -1
  327. package/dist/src/lib/drift-detector.js.map +0 -1
  328. package/dist/src/lib/env-overrides.js.map +0 -1
  329. package/dist/src/lib/error-formatter.js.map +0 -1
  330. package/dist/src/lib/error-renderer.js.map +0 -1
  331. package/dist/src/lib/heartbeat-config.js.map +0 -1
  332. package/dist/src/lib/heartbeat-workaround.js.map +0 -1
  333. package/dist/src/lib/http-agent.js.map +0 -1
  334. package/dist/src/lib/index.js.map +0 -1
  335. package/dist/src/lib/json-array.js.map +0 -1
  336. package/dist/src/lib/markdown-to-mdv2.js.map +0 -1
  337. package/dist/src/lib/markdown-v2.js.map +0 -1
  338. package/dist/src/lib/perf/async-compact.js.map +0 -1
  339. package/dist/src/lib/perf/direct-sdk.js.map +0 -1
  340. package/dist/src/lib/perf/haiku-route.js.map +0 -1
  341. package/dist/src/lib/perf/predictive-continuation.js.map +0 -1
  342. package/dist/src/lib/perf/read-batch.js.map +0 -1
  343. package/dist/src/lib/perf/skill-list-collapse.js.map +0 -1
  344. package/dist/src/lib/perf/speculative-bubble.js.map +0 -1
  345. package/dist/src/lib/perf/typing-prefetch.js.map +0 -1
  346. package/dist/src/lib/register-guard.js.map +0 -1
  347. package/dist/src/lib/req-shape-log.js.map +0 -1
  348. package/dist/src/lib/safe-upstream-probes.js.map +0 -1
  349. package/dist/src/lib/session-registry.js.map +0 -1
  350. package/dist/src/lib/spawn-async.js.map +0 -1
  351. package/dist/src/lib/stale-pid-files.js.map +0 -1
  352. package/dist/src/lib/status-tee-reader.js.map +0 -1
  353. package/dist/src/lib/sysprompt-strip.js.map +0 -1
  354. package/dist/src/lib/telegram-bot-api.js.map +0 -1
  355. package/dist/src/lib/telemetry.js.map +0 -1
  356. package/dist/src/lib/test-mode.js.map +0 -1
  357. package/dist/src/lib/trajectory.js.map +0 -1
  358. package/dist/src/lib/vendor-paths.js.map +0 -1
  359. package/dist/src/lifecycle/boot.js.map +0 -1
  360. package/dist/src/lifecycle/patch-manifest.js.map +0 -1
  361. package/dist/src/lifecycle/phase-import-upstream.js.map +0 -1
  362. package/dist/src/lifecycle/phase-install-patches.js.map +0 -1
  363. package/dist/src/lifecycle/phase-schedule-jobs.js.map +0 -1
  364. package/dist/src/lifecycle/phase-start-server.js.map +0 -1
  365. package/dist/src/lifecycle/phase-validate-config.js.map +0 -1
  366. package/dist/src/lifecycle/phase-validate-upstream.js.map +0 -1
  367. package/dist/src/lifecycle/phase-wire-handlers.js.map +0 -1
  368. package/dist/src/lifecycle/safe-restart.js.map +0 -1
  369. package/dist/src/logger.js.map +0 -1
  370. package/dist/src/mcp/bridge.js.map +0 -1
  371. package/dist/src/mcp/index.js.map +0 -1
  372. package/dist/src/models.js.map +0 -1
  373. package/dist/src/observability/event-bus.js.map +0 -1
  374. package/dist/src/observability/get-event-bus.js.map +0 -1
  375. package/dist/src/observability/observability-service.js.map +0 -1
  376. package/dist/src/observability/perf-telemetry.js.map +0 -1
  377. package/dist/src/observability/subscribers/metrics.js.map +0 -1
  378. package/dist/src/observability/subscribers/session-capture.js.map +0 -1
  379. package/dist/src/openai-compat/bridges/allowlist.js.map +0 -1
  380. package/dist/src/openai-compat/bridges/factory.js.map +0 -1
  381. package/dist/src/openai-compat/bridges/media-bridge.js.map +0 -1
  382. package/dist/src/openai-compat/bridges/openclaw-api-shim.js.map +0 -1
  383. package/dist/src/openai-compat/bridges/openclaw-native-tools.js.map +0 -1
  384. package/dist/src/openai-compat/bridges/openclaw-tool-registry.js.map +0 -1
  385. package/dist/src/openai-compat/bridges/tts-media-bridge.js.map +0 -1
  386. package/dist/src/openai-compat/cli-stream-parser.js.map +0 -1
  387. package/dist/src/openai-compat/index.js.map +0 -1
  388. package/dist/src/openai-compat/message-extractor.js.map +0 -1
  389. package/dist/src/openai-compat/mode-flags.js.map +0 -1
  390. package/dist/src/openai-compat/non-streaming-handler.js.map +0 -1
  391. package/dist/src/openai-compat/openai-chunk-types.js.map +0 -1
  392. package/dist/src/openai-compat/openai-compat.js.map +0 -1
  393. package/dist/src/openai-compat/openai-types.js.map +0 -1
  394. package/dist/src/openai-compat/parse-route-body.js.map +0 -1
  395. package/dist/src/openai-compat/prompts.js.map +0 -1
  396. package/dist/src/openai-compat/response-formatter.js.map +0 -1
  397. package/dist/src/openai-compat/session-key-resolver.js.map +0 -1
  398. package/dist/src/openai-compat/skill-resolver.js.map +0 -1
  399. package/dist/src/openai-compat/sse-translator.js.map +0 -1
  400. package/dist/src/openai-compat/status-reporter.js.map +0 -1
  401. package/dist/src/openai-compat/streaming-handler.js.map +0 -1
  402. package/dist/src/openai-compat/tool-calls-parser.js.map +0 -1
  403. package/dist/src/openai-compat/tool-results-serializer.js.map +0 -1
  404. package/dist/src/openai-compat/tts-rule.js.map +0 -1
  405. package/dist/src/openai-compat/voice-recovery.js.map +0 -1
  406. package/dist/src/patches/cache-parity-registry.js.map +0 -1
  407. package/dist/src/patches/claude-md-injection.js.map +0 -1
  408. package/dist/src/patches/cwd-redirect.js.map +0 -1
  409. package/dist/src/patches/embedded-server-route.js.map +0 -1
  410. package/dist/src/patches/pricing-overrides.js.map +0 -1
  411. package/dist/src/patches/resume-registry-restore.js.map +0 -1
  412. package/dist/src/patches/session-pid-tracking.js.map +0 -1
  413. package/dist/src/patches/sysprompt-strip.js.map +0 -1
  414. package/dist/src/patches/sysprompt-strip.spec.d.ts +0 -33
  415. package/dist/src/patches/sysprompt-strip.spec.js +0 -53
  416. package/dist/src/patches/sysprompt-strip.spec.js.map +0 -1
  417. package/dist/src/patches/tools-restoration.js.map +0 -1
  418. package/dist/src/persistence/migration-v0.js.map +0 -1
  419. package/dist/src/persistence/session-registry.js.map +0 -1
  420. package/dist/src/persistence/snapshot.js.map +0 -1
  421. package/dist/src/persistence/wal.js.map +0 -1
  422. package/dist/src/proxy/anthropic-adapter.js.map +0 -1
  423. package/dist/src/proxy/handler.js.map +0 -1
  424. package/dist/src/proxy/index.js.map +0 -1
  425. package/dist/src/proxy/schema-cleaner.js.map +0 -1
  426. package/dist/src/proxy/thought-cache.js.map +0 -1
  427. package/dist/src/session/embedded-server.js.map +0 -1
  428. package/dist/src/session/inbox-manager.js.map +0 -1
  429. package/dist/src/session/index.js.map +0 -1
  430. package/dist/src/session/persisted-sessions.js.map +0 -1
  431. package/dist/src/session/session-manager.js.map +0 -1
  432. package/dist/src/session/watchdogs.js.map +0 -1
  433. package/dist/src/session-bootstrap/boot-self-heal.js.map +0 -1
  434. package/dist/src/session-bootstrap/cwd-patch.js.map +0 -1
  435. package/dist/src/session-bootstrap/index.js.map +0 -1
  436. package/dist/src/session-bootstrap/resume-registry.js.map +0 -1
  437. package/dist/src/session-bootstrap/session-hygiene.js.map +0 -1
  438. package/dist/src/session-bootstrap/sysprompt-strip.js.map +0 -1
  439. package/dist/src/session-bootstrap/think-conflict-resolver.js.map +0 -1
  440. package/dist/src/types/index.js.map +0 -1
  441. package/dist/src/types/route.js.map +0 -1
  442. package/dist/src/types/runtime-config.js.map +0 -1
  443. package/dist/src/types/session.js.map +0 -1
  444. package/dist/src/types/sse.js.map +0 -1
  445. package/dist/src/types/tool-bridge.js.map +0 -1
  446. package/dist/src/types/upstream.js.map +0 -1
  447. package/dist/src/types.js.map +0 -1
  448. package/dist/src/validation.js.map +0 -1
@@ -8,4 +8,3 @@ export { isCacheParityEnabled, hashPrompt, recordAttachment, readRegistry, REGIS
8
8
  export { selectEngine, isCcOpenclawEnabled, captureSessionRoute, ACTIVE_FLAG_ENV, ROUTE_FLAG_ENV, } from './config-service.js';
9
9
  export { isTestMode, TEST_MODE_ENV, _setTestModeForTests } from './test-mode.js';
10
10
  export { getAggressiveStripEnabled, getCacheParityEnabled, getLogLevel, isLogLevelDebug, } from './config.js';
11
- //# sourceMappingURL=index.js.map
@@ -20,4 +20,3 @@ export function readJSONArraySafe(filePath) {
20
20
  return null;
21
21
  }
22
22
  }
23
- //# sourceMappingURL=json-array.js.map
@@ -138,4 +138,3 @@ export function markdownToMdv2(input) {
138
138
  text = text.replace(/\x00LINK(\d+)\x00/g, (_m, idx) => links[Number(idx)]);
139
139
  return text;
140
140
  }
141
- //# sourceMappingURL=markdown-to-mdv2.js.map
@@ -34,4 +34,3 @@ export function escapeMarkdownV2(text) {
34
34
  return '';
35
35
  return String(text).replace(MARKDOWNV2_SPECIAL_CHARS, '\\$&');
36
36
  }
37
- //# sourceMappingURL=markdown-v2.js.map
@@ -39,4 +39,3 @@ export function scheduleAsyncCompaction(sessionKey, compactFn) {
39
39
  export function _resetAsyncCompactForTests() {
40
40
  inFlight.clear();
41
41
  }
42
- //# sourceMappingURL=async-compact.js.map
@@ -55,4 +55,3 @@ export function probeDirectSdkAvailability() {
55
55
  export function _resetDirectSdkProbeForTests() {
56
56
  cachedProbe = null;
57
57
  }
58
- //# sourceMappingURL=direct-sdk.js.map
@@ -46,4 +46,3 @@ export function classifyForHaikuRoute(prompt) {
46
46
  }
47
47
  return { routeToHaiku: false, reason: 'no_match' };
48
48
  }
49
- //# sourceMappingURL=haiku-route.js.map
@@ -34,4 +34,3 @@ export function isPredictiveContinuation(text) {
34
34
  }
35
35
  return { isContinuation: false, matched: '' };
36
36
  }
37
- //# sourceMappingURL=predictive-continuation.js.map
@@ -45,4 +45,3 @@ export async function batchReadPaths(paths) {
45
45
  const errorCount = entries.filter((e) => e.error !== null).length;
46
46
  return { enabled: true, entries, totalBytes, errorCount };
47
47
  }
48
- //# sourceMappingURL=read-batch.js.map
@@ -32,4 +32,3 @@ export function collapseSkillList(sysprompt) {
32
32
  });
33
33
  return { content, changed, bytesRemoved };
34
34
  }
35
- //# sourceMappingURL=skill-list-collapse.js.map
@@ -33,4 +33,3 @@ export async function emitSpeculativeThinking(opts) {
33
33
  return null;
34
34
  }
35
35
  }
36
- //# sourceMappingURL=speculative-bubble.js.map
@@ -51,4 +51,3 @@ export function _resetTypingPrefetchForTests() {
51
51
  lastWarmupAt.clear();
52
52
  warmupFn = null;
53
53
  }
54
- //# sourceMappingURL=typing-prefetch.js.map
@@ -91,4 +91,3 @@ export const defaultRegisterGuard = createRegisterGuard();
91
91
  export function registerOnce(id, api, body) {
92
92
  defaultRegisterGuard.guard(id, api, body);
93
93
  }
94
- //# sourceMappingURL=register-guard.js.map
@@ -103,4 +103,3 @@ export function logReqShape(request, sessionName) {
103
103
  /* swallow — diagnostics must never break production */
104
104
  }
105
105
  }
106
- //# sourceMappingURL=req-shape-log.js.map
@@ -39,4 +39,3 @@ export function probeOpenclawJsonReachable() {
39
39
  const json = safeReadOpenclawJson();
40
40
  return typeof json === 'object' && json !== null;
41
41
  }
42
- //# sourceMappingURL=safe-upstream-probes.js.map
@@ -185,4 +185,3 @@ export function _resetForTests() {
185
185
  cache = undefined;
186
186
  cachedFor = undefined;
187
187
  }
188
- //# sourceMappingURL=session-registry.js.map
@@ -44,4 +44,3 @@ export function spawnAsync(cmd, args, opts = {}) {
44
44
  });
45
45
  });
46
46
  }
47
- //# sourceMappingURL=spawn-async.js.map
@@ -37,4 +37,3 @@ export function cleanStalePidFiles(dir, ext = '.json') {
37
37
  }
38
38
  catch { /* directory doesn't exist — nothing to clean */ }
39
39
  }
40
- //# sourceMappingURL=stale-pid-files.js.map
@@ -79,4 +79,3 @@ export function formatQuotaLine(snapshot) {
79
79
  const resetIn = Math.max(0, Math.floor((w.resetsAt * 1000 - Date.now()) / 86_400_000));
80
80
  return `Plan: ${pct}% ${emoji} (resets in ${resetIn}d)`;
81
81
  }
82
- //# sourceMappingURL=status-tee-reader.js.map
@@ -72,4 +72,3 @@ export function stripSysprompt(content, opts = {}) {
72
72
  const changed = stripped !== original;
73
73
  return { content: stripped, changed, aggressiveStripped };
74
74
  }
75
- //# sourceMappingURL=sysprompt-strip.js.map
@@ -152,7 +152,7 @@ export async function sendTg(chatId, text, threadId, replyMarkup, replyToMessage
152
152
  base.reply_markup = replyMarkup;
153
153
  if (replyToMessageId)
154
154
  base.reply_to_message_id = Number(replyToMessageId);
155
- const res = await telegramApi('sendMessage', { ...base, text, parse_mode: 'MarkdownV2' });
155
+ const res = await telegramApi('sendMessage', { ...base, text, parse_mode: 'HTML' });
156
156
  if (res.ok)
157
157
  return res;
158
158
  return telegramApi('sendMessage', { ...base, text: text || 'Session update' });
@@ -171,7 +171,7 @@ export async function editTg(chatId, messageId, text, replyMarkup) {
171
171
  chat_id: chatId,
172
172
  message_id: messageId,
173
173
  text,
174
- parse_mode: 'MarkdownV2',
174
+ parse_mode: 'HTML',
175
175
  disable_web_page_preview: true,
176
176
  };
177
177
  if (replyMarkup)
@@ -201,4 +201,3 @@ export async function editTg(chatId, messageId, text, replyMarkup) {
201
201
  return { ok: false };
202
202
  }
203
203
  }
204
- //# sourceMappingURL=telegram-bot-api.js.map
@@ -70,4 +70,3 @@ export function _restoreDefaultsForTests() {
70
70
  costWriter = defaultCostWriter;
71
71
  registerWriter = defaultRegisterWriter;
72
72
  }
73
- //# sourceMappingURL=telemetry.js.map
@@ -35,4 +35,3 @@ export function _setTestModeForTests(on) {
35
35
  else
36
36
  delete process.env[TEST_MODE_ENV];
37
37
  }
38
- //# sourceMappingURL=test-mode.js.map
@@ -118,4 +118,3 @@ export function _readAllForTests() {
118
118
  const lines = fs.readFileSync(getPath(), 'utf8').trim().split('\n');
119
119
  return lines.filter((l) => l.length > 0).map((l) => JSON.parse(l));
120
120
  }
121
- //# sourceMappingURL=trajectory.js.map
@@ -36,4 +36,3 @@ export const VENDOR_FILES = {
36
36
  embeddedServer: join(VENDOR_DIR, 'session', 'embedded-server.js'),
37
37
  models: join(VENDOR_DIR, 'models.js'),
38
38
  };
39
- //# sourceMappingURL=vendor-paths.js.map
@@ -129,4 +129,3 @@ export class BootPhaseError extends Error {
129
129
  return `Phase "${this.phase}" failed: ${this.cause.message}`;
130
130
  }
131
131
  }
132
- //# sourceMappingURL=boot.js.map
@@ -123,4 +123,3 @@ export class PatchManifest {
123
123
  return this.specs.map((s) => s.id);
124
124
  }
125
125
  }
126
- //# sourceMappingURL=patch-manifest.js.map
@@ -15,4 +15,3 @@ export async function importUpstream() {
15
15
  const ns = await import(specifier);
16
16
  return ns;
17
17
  }
18
- //# sourceMappingURL=phase-import-upstream.js.map
@@ -28,4 +28,3 @@ export async function installPatches(manifest, _upstreamNs) {
28
28
  throw err;
29
29
  }
30
30
  }
31
- //# sourceMappingURL=phase-install-patches.js.map
@@ -12,4 +12,3 @@ export function scheduleJobs(_registry) {
12
12
  // Phase E: wire setInterval for registry.snapshot() + watchdog timers.
13
13
  // Stub — no-op in Phase D.
14
14
  }
15
- //# sourceMappingURL=phase-schedule-jobs.js.map
@@ -8,4 +8,3 @@ export async function startServer(_opts = {}) {
8
8
  // Phase E: instantiate EmbeddedServer / openai-compat HTTP listener here.
9
9
  // Stub — no-op in Phase D.
10
10
  }
11
- //# sourceMappingURL=phase-start-server.js.map
@@ -22,4 +22,3 @@ export function validateConfig() {
22
22
  throw new ConfigInvalid('configuration validation failed (unexpected error)', [String(err)]);
23
23
  }
24
24
  }
25
- //# sourceMappingURL=phase-validate-config.js.map
@@ -13,4 +13,3 @@ export async function validateUpstream(manifest, _upstreamNs) {
13
13
  // for boot.ts wiring symmetry.
14
14
  await manifest.validate();
15
15
  }
16
- //# sourceMappingURL=phase-validate-upstream.js.map
@@ -13,4 +13,3 @@ export function wireHandlers(bus) {
13
13
  const svc = new ObservabilityService();
14
14
  svc.init(bus);
15
15
  }
16
- //# sourceMappingURL=phase-wire-handlers.js.map
@@ -129,4 +129,3 @@ export function parseSessionIdFromArgv(argv = process.argv) {
129
129
  }
130
130
  return undefined;
131
131
  }
132
- //# sourceMappingURL=safe-restart.js.map
@@ -43,4 +43,3 @@ export const nullLogger = {
43
43
  warn: () => { },
44
44
  error: () => { },
45
45
  };
46
- //# sourceMappingURL=logger.js.map
@@ -75,4 +75,3 @@ export function register(api) {
75
75
  }
76
76
  // TODO(P3): per-module reset shims can be removed once all callers use defaultRegisterGuard directly.
77
77
  export function _resetRegisteredForTests() { }
78
- //# sourceMappingURL=bridge.js.map
@@ -1,2 +1 @@
1
1
  export { McpBridge, register, _resetRegisteredForTests } from './bridge.js';
2
- //# sourceMappingURL=index.js.map
@@ -294,4 +294,3 @@ export function lookupModelStrict(idOrAlias) {
294
294
  throw new Error(`Unknown model: ${idOrAlias}`);
295
295
  return m;
296
296
  }
297
- //# sourceMappingURL=models.js.map
@@ -60,4 +60,3 @@ export class EventBus {
60
60
  return total;
61
61
  }
62
62
  }
63
- //# sourceMappingURL=event-bus.js.map
@@ -31,4 +31,3 @@ export function getEventBus() {
31
31
  export function __resetEventBusForTests() {
32
32
  _instance = null;
33
33
  }
34
- //# sourceMappingURL=get-event-bus.js.map
@@ -21,4 +21,3 @@ export class ObservabilityService {
21
21
  this.metrics.register(bus);
22
22
  }
23
23
  }
24
- //# sourceMappingURL=observability-service.js.map
@@ -76,4 +76,3 @@ export function _setPerfWriterForTests(w) {
76
76
  export function _restorePerfWriterForTests() {
77
77
  writer = defaultWriter;
78
78
  }
79
- //# sourceMappingURL=perf-telemetry.js.map
@@ -18,4 +18,3 @@ export class MetricsSubscriber {
18
18
  });
19
19
  }
20
20
  }
21
- //# sourceMappingURL=metrics.js.map
@@ -22,4 +22,3 @@ export class SessionCaptureSubscriber {
22
22
  });
23
23
  }
24
24
  }
25
- //# sourceMappingURL=session-capture.js.map
@@ -25,4 +25,3 @@ export function isAllowedTool(toolName) {
25
25
  return cfg.config.nativeToolsAllowList.includes(toolName);
26
26
  return OPENCLAW_TOOL_ALLOWLIST.has(toolName);
27
27
  }
28
- //# sourceMappingURL=allowlist.js.map
@@ -81,4 +81,3 @@ export function activeToolMode() {
81
81
  return ToolMode.PerMessage;
82
82
  return ToolMode.Embedded;
83
83
  }
84
- //# sourceMappingURL=factory.js.map
@@ -17,4 +17,3 @@ export class MediaBridgeError extends Error {
17
17
  this.name = 'MediaBridgeError';
18
18
  }
19
19
  }
20
- //# sourceMappingURL=media-bridge.js.map
@@ -42,4 +42,3 @@ export class OpenClawApiShim {
42
42
  return this.api;
43
43
  }
44
44
  }
45
- //# sourceMappingURL=openclaw-api-shim.js.map
@@ -168,4 +168,3 @@ export class OpenClawNativeToolsBridge {
168
168
  }
169
169
  }
170
170
  }
171
- //# sourceMappingURL=openclaw-native-tools.js.map
@@ -35,4 +35,3 @@ const BRIDGE_MAP = new Map([
35
35
  [TTS_TOOL_NAME, new TtsMediaBridge()],
36
36
  ]);
37
37
  const REGISTERED_NAMES = new Set(BRIDGE_MAP.keys());
38
- //# sourceMappingURL=openclaw-tool-registry.js.map
@@ -56,4 +56,3 @@ export class TtsMediaBridge {
56
56
  return { text, delivered: true, via: 'tts-markers' };
57
57
  }
58
58
  }
59
- //# sourceMappingURL=tts-media-bridge.js.map
@@ -192,4 +192,3 @@ export function createCliStreamParser() {
192
192
  },
193
193
  };
194
194
  }
195
- //# sourceMappingURL=cli-stream-parser.js.map
@@ -1,2 +1 @@
1
1
  export * from './openai-compat.js';
2
- //# sourceMappingURL=index.js.map
@@ -162,4 +162,3 @@ export function extractUserMessage(messages, headers) {
162
162
  }
163
163
  return { systemPrompt, userMessage, isNewConversation: false, slashCommand };
164
164
  }
165
- //# sourceMappingURL=message-extractor.js.map
@@ -41,4 +41,3 @@ export function isToolsPerMessageModeEnabled() {
41
41
  export function isToolStreamMode() {
42
42
  return process.env.CC_OPENCLAW_TOOL_STREAM === '1';
43
43
  }
44
- //# sourceMappingURL=mode-flags.js.map
@@ -27,7 +27,7 @@ import { getSurfaceThinkingEnabled, getTtsAutoMode } from '../lib/config.js';
27
27
  import { emit as emitTrajectory, emitTurnTrace } from '../lib/trajectory.js';
28
28
  import { formatError, ERROR_CODES } from '../lib/error-formatter.js';
29
29
  import { applyVoiceRecovery, _logVoiceDebug, detectVoiceIntent, hasTtsMarkers } from './voice-recovery.js';
30
- import { pushToolUse as mirrorPushToolUse, pushToolResult as mirrorPushToolResult, pushAssistantText as mirrorPushAssistantText, finalizeActiveCards as mirrorFinalizeActiveCards, setCardMeta as mirrorSetCardMeta, readQuotaMeta as mirrorReadQuotaMeta, } from '../channels/telegram-mirror/turn-bridge.js';
30
+ import { pushToolUse as mirrorPushToolUse, pushToolResult as mirrorPushToolResult, pushAssistantText as mirrorPushAssistantText, finalizeActiveCards as mirrorFinalizeActiveCards, failActiveCards as mirrorFailActiveCards, classifyFailure, setCardMeta as mirrorSetCardMeta, readQuotaMeta as mirrorReadQuotaMeta, } from '../channels/telegram-mirror/turn-bridge.js';
31
31
  import { cardStateDebug as mirrorCardStateDebug } from '../channels/telegram-mirror/card-state.js';
32
32
  /** Coerce a userMessage (string | UserMessageBlock[]) to a flat string
33
33
  * for voice-intent detection. Tool-result blocks aren't user prompts. */
@@ -201,6 +201,14 @@ slashCommand) {
201
201
  }
202
202
  catch (err) {
203
203
  reportStatus('idle', 'Request failed');
204
+ // v0.27.0 M4 — surface the failure on the Telegram card (❌ <reason>) so a
205
+ // cc-openclaw-side error never leaves the card frozen at "…". Best-effort.
206
+ try {
207
+ await mirrorFailActiveCards(classifyFailure(err));
208
+ }
209
+ catch {
210
+ /* card fail is cosmetic */
211
+ }
204
212
  // v0.4.3: route through formatError for errors_total + trajectory error.
205
213
  formatError(err, { code: ERROR_CODES.SESSION_ERROR, sessionId: sessionName, details: { phase: 'handleNonStreaming' } });
206
214
  res.writeHead(500, { 'Content-Type': 'application/json' });
@@ -235,8 +243,11 @@ slashCommand) {
235
243
  finally {
236
244
  // v0.26.2 M2 — push real context-window % before the final repaint.
237
245
  try {
246
+ // v0.26.5 final-only: see handleStreaming counterpart. Only set a real
247
+ // positive contextPercent; 0/absent omits the ctx meter row instead of
248
+ // rendering a misleading "0%".
238
249
  const cp = manager.getStatus(sessionName)?.stats?.contextPercent;
239
- if (typeof cp === 'number')
250
+ if (typeof cp === 'number' && cp > 0)
240
251
  mirrorSetCardMeta({ contextPercent: cp });
241
252
  }
242
253
  catch {
@@ -252,4 +263,3 @@ slashCommand) {
252
263
  }
253
264
  }
254
265
  }
255
- //# sourceMappingURL=non-streaming-handler.js.map
@@ -6,4 +6,3 @@
6
6
  * imported by `response-formatter.ts`, `types/route.ts`, `types/sse.ts`.
7
7
  */
8
8
  export {};
9
- //# sourceMappingURL=openai-chunk-types.js.map
@@ -454,4 +454,3 @@ export async function handleChatCompletion(manager, body, headers, res) {
454
454
  // (Cluster B Phase 2 Module G). Re-exported above for backward compat.
455
455
  // handleStreaming moved to streaming-handler.ts
456
456
  // (Cluster B Phase 2 Module H). Re-exported above for backward compat.
457
- //# sourceMappingURL=openai-compat.js.map
@@ -8,4 +8,3 @@
8
8
  * through the godmodule.
9
9
  */
10
10
  export {};
11
- //# sourceMappingURL=openai-types.js.map
@@ -42,4 +42,3 @@ export function parseRouteBody(body) {
42
42
  },
43
43
  };
44
44
  }
45
- //# sourceMappingURL=parse-route-body.js.map
@@ -116,4 +116,3 @@ export function buildSessionSystemPrompt(tools, callerSystemPrompt) {
116
116
  const systemWithTools = `${preamble}\n\n${toolBlock}`;
117
117
  return callerSystemPrompt ? `${systemWithTools}\n\n${callerSystemPrompt}` : systemWithTools;
118
118
  }
119
- //# sourceMappingURL=prompts.js.map
@@ -71,4 +71,3 @@ export function formatCompletionChunk(id, model, delta, finishReason) {
71
71
  choices: [{ index: 0, delta, finish_reason: finishReason }],
72
72
  };
73
73
  }
74
- //# sourceMappingURL=response-formatter.js.map
@@ -75,4 +75,3 @@ export function resolveSessionKey(body, headers) {
75
75
  export function sessionNameFromKey(key) {
76
76
  return `${OPENAI_COMPAT_SESSION_PREFIX}${key}`;
77
77
  }
78
- //# sourceMappingURL=session-key-resolver.js.map
@@ -174,4 +174,3 @@ export function maybeInlineSkill(userText) {
174
174
  : '(no additional input — apply the skill with sensible defaults from above)';
175
175
  return `${systemBlock}${skill.fullText}\n\n---\n\n## User input for /${slash}\n\n${argSection}`;
176
176
  }
177
- //# sourceMappingURL=skill-resolver.js.map
@@ -191,4 +191,3 @@ export function createSseTranslator(params) {
191
191
  },
192
192
  };
193
193
  }
194
- //# sourceMappingURL=sse-translator.js.map
@@ -78,4 +78,3 @@ export function getToolDescription(toolName, toolInput) {
78
78
  return `Using tool: ${toolName}`;
79
79
  }
80
80
  }
81
- //# sourceMappingURL=status-reporter.js.map
@@ -43,7 +43,7 @@ import { emit as emitTrajectory, emitTurnTrace } from '../lib/trajectory.js';
43
43
  import { formatError, ERROR_CODES } from '../lib/error-formatter.js';
44
44
  import { getSurfaceThinkingEnabled, getTtsAutoMode } from '../lib/config.js';
45
45
  import { applyVoiceRecovery, detectVoiceIntent, hasTtsMarkers, _logVoiceDebug } from './voice-recovery.js';
46
- import { pushToolUse as mirrorPushToolUse, pushToolResult as mirrorPushToolResult, pushAssistantText as mirrorPushAssistantText, finalizeActiveCards as mirrorFinalizeActiveCards, setCardMeta as mirrorSetCardMeta, readQuotaMeta as mirrorReadQuotaMeta, } from '../channels/telegram-mirror/turn-bridge.js';
46
+ import { pushToolUse as mirrorPushToolUse, pushToolResult as mirrorPushToolResult, pushAssistantText as mirrorPushAssistantText, finalizeActiveCards as mirrorFinalizeActiveCards, failActiveCards as mirrorFailActiveCards, classifyFailure, setCardMeta as mirrorSetCardMeta, readQuotaMeta as mirrorReadQuotaMeta, } from '../channels/telegram-mirror/turn-bridge.js';
47
47
  import { cardStateDebug as mirrorCardStateDebug } from '../channels/telegram-mirror/card-state.js';
48
48
  import { writePerfEvent } from '../observability/perf-telemetry.js';
49
49
  /** Coerce a userMessage (string | UserMessageBlock[]) to a flat string
@@ -532,6 +532,15 @@ slashCommand) {
532
532
  }
533
533
  catch (err) {
534
534
  reportStatus('idle', 'Request failed');
535
+ // v0.27.0 M4 — surface the failure on the Telegram card (❌ <reason>) so a
536
+ // cc-openclaw-side error never leaves the card frozen at "…" or finalized to
537
+ // a misleading "✓ Done". Best-effort; never mask the original error.
538
+ try {
539
+ await mirrorFailActiveCards(classifyFailure(err));
540
+ }
541
+ catch {
542
+ /* card fail is cosmetic */
543
+ }
535
544
  // v0.4.3: route through formatError for errors_total + trajectory error.
536
545
  formatError(err, { code: ERROR_CODES.SESSION_ERROR, sessionId: sessionName, details: { phase: 'handleStreaming' } });
537
546
  writeSSE(JSON.stringify({ error: { message: err.message, type: 'server_error' } }));
@@ -572,8 +581,13 @@ slashCommand) {
572
581
  // v0.26.2 M2 — push the real context-window % onto the card before the
573
582
  // final repaint (getStatus has it after the turn completes). Best-effort.
574
583
  try {
584
+ // v0.26.5 final-only: contextPercent is structurally 0 during the live
585
+ // turn (lastTurnContextTokens is only populated by the CLI `result` event
586
+ // at turn end). Set it ONLY when it's a real positive value — otherwise
587
+ // the card showed a misleading "ctx ░░░░░░░░ 0%". When it's 0/absent the
588
+ // meter row is omitted entirely (renderMeters gates on a present number).
575
589
  const cp = manager.getStatus(sessionName)?.stats?.contextPercent;
576
- if (typeof cp === 'number')
590
+ if (typeof cp === 'number' && cp > 0)
577
591
  mirrorSetCardMeta({ contextPercent: cp });
578
592
  }
579
593
  catch {
@@ -593,4 +607,3 @@ slashCommand) {
593
607
  res.end();
594
608
  }
595
609
  }
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