@a1hvdy/cc-openclaw 0.10.4 → 0.12.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 (473) hide show
  1. package/dist/src/channels/telegram/card-renderer.d.ts +63 -0
  2. package/dist/src/channels/telegram/card-renderer.js +149 -0
  3. package/dist/src/channels/telegram/card-renderer.js.map +1 -0
  4. package/dist/src/channels/telegram/event-reducer.js +3 -15
  5. package/dist/src/channels/telegram/event-reducer.js.map +1 -1
  6. package/dist/src/channels/telegram/format-helpers.d.ts +20 -0
  7. package/dist/src/channels/telegram/format-helpers.js +34 -0
  8. package/dist/src/channels/telegram/format-helpers.js.map +1 -0
  9. package/dist/src/channels/telegram/insight-formatter.d.ts +36 -0
  10. package/dist/src/channels/telegram/insight-formatter.js +36 -0
  11. package/dist/src/channels/telegram/insight-formatter.js.map +1 -0
  12. package/dist/src/channels/telegram/live-card.d.ts +7 -90
  13. package/dist/src/channels/telegram/live-card.js +25 -286
  14. package/dist/src/channels/telegram/live-card.js.map +1 -1
  15. package/dist/src/channels/telegram/logger.d.ts +10 -0
  16. package/dist/src/channels/telegram/logger.js +13 -0
  17. package/dist/src/channels/telegram/logger.js.map +1 -0
  18. package/dist/src/channels/telegram/result-preview.d.ts +12 -0
  19. package/dist/src/channels/telegram/result-preview.js +48 -0
  20. package/dist/src/channels/telegram/result-preview.js.map +1 -0
  21. package/dist/src/channels/telegram/throttle-controller.d.ts +54 -0
  22. package/dist/src/channels/telegram/throttle-controller.js +132 -0
  23. package/dist/src/channels/telegram/throttle-controller.js.map +1 -0
  24. package/dist/src/channels/telegram/tool-tracker.d.ts +1 -2
  25. package/dist/src/channels/telegram/tool-tracker.js +9 -51
  26. package/dist/src/channels/telegram/tool-tracker.js.map +1 -1
  27. package/dist/src/cli/checks/bridge-wiring.d.ts +14 -0
  28. package/dist/src/cli/checks/bridge-wiring.js +64 -0
  29. package/dist/src/cli/checks/bridge-wiring.js.map +1 -0
  30. package/dist/src/cli/checks/config-schema.d.ts +11 -0
  31. package/dist/src/cli/checks/config-schema.js +51 -0
  32. package/dist/src/cli/checks/config-schema.js.map +1 -0
  33. package/dist/src/cli/checks/critical-openclaw-json-keys.d.ts +21 -0
  34. package/dist/src/cli/checks/critical-openclaw-json-keys.js +106 -0
  35. package/dist/src/cli/checks/critical-openclaw-json-keys.js.map +1 -0
  36. package/dist/src/cli/checks/install-path.d.ts +11 -0
  37. package/dist/src/cli/checks/install-path.js +89 -0
  38. package/dist/src/cli/checks/install-path.js.map +1 -0
  39. package/dist/src/cli/checks/patch-scaffold.d.ts +17 -0
  40. package/dist/src/cli/checks/patch-scaffold.js +56 -0
  41. package/dist/src/cli/checks/patch-scaffold.js.map +1 -0
  42. package/dist/src/cli/doctor.d.ts +20 -0
  43. package/dist/src/cli/doctor.js +93 -0
  44. package/dist/src/cli/doctor.js.map +1 -0
  45. package/dist/src/cli/index.d.ts +8 -0
  46. package/dist/src/cli/index.js +39 -0
  47. package/dist/src/cli/index.js.map +1 -0
  48. package/dist/src/cli/migrate.d.ts +29 -0
  49. package/dist/src/cli/migrate.js +75 -0
  50. package/dist/src/cli/migrate.js.map +1 -0
  51. package/dist/src/command-router/cc-handler.js +35 -709
  52. package/dist/src/command-router/cc-handler.js.map +1 -1
  53. package/dist/src/command-router/launch-policy.d.ts +93 -0
  54. package/dist/src/command-router/launch-policy.js +323 -0
  55. package/dist/src/command-router/launch-policy.js.map +1 -0
  56. package/dist/src/command-router/resume-policy.d.ts +18 -0
  57. package/dist/src/command-router/resume-policy.js +236 -0
  58. package/dist/src/command-router/resume-policy.js.map +1 -0
  59. package/dist/src/command-router/turn-formatter.d.ts +19 -0
  60. package/dist/src/command-router/turn-formatter.js +144 -0
  61. package/dist/src/command-router/turn-formatter.js.map +1 -0
  62. package/dist/src/config/drift-detector.d.ts +28 -0
  63. package/dist/src/config/drift-detector.js +75 -0
  64. package/dist/src/config/drift-detector.js.map +1 -0
  65. package/dist/src/config/loader.d.ts +8 -0
  66. package/dist/src/config/loader.js +69 -0
  67. package/dist/src/config/loader.js.map +1 -0
  68. package/dist/src/config/schema.d.ts +188 -0
  69. package/dist/src/config/schema.js +98 -0
  70. package/dist/src/config/schema.js.map +1 -0
  71. package/dist/src/council/build-agent-prompt.d.ts +11 -0
  72. package/dist/src/council/build-agent-prompt.js +96 -0
  73. package/dist/src/council/build-agent-prompt.js.map +1 -0
  74. package/dist/src/council/cleanup-worktrees.d.ts +10 -0
  75. package/dist/src/council/cleanup-worktrees.js +22 -0
  76. package/dist/src/council/cleanup-worktrees.js.map +1 -0
  77. package/dist/src/council/council.js +15 -186
  78. package/dist/src/council/council.js.map +1 -1
  79. package/dist/src/council/system-prompt.d.ts +16 -0
  80. package/dist/src/council/system-prompt.js +40 -0
  81. package/dist/src/council/system-prompt.js.map +1 -0
  82. package/dist/src/council/write-worktree-claude-md.d.ts +10 -0
  83. package/dist/src/council/write-worktree-claude-md.js +41 -0
  84. package/dist/src/council/write-worktree-claude-md.js.map +1 -0
  85. package/dist/src/engines/persistent-custom-session.js +3 -8
  86. package/dist/src/engines/persistent-custom-session.js.map +1 -1
  87. package/dist/src/engines/resolve-bin.d.ts +14 -0
  88. package/dist/src/engines/resolve-bin.js +18 -0
  89. package/dist/src/engines/resolve-bin.js.map +1 -0
  90. package/dist/src/lib/config-service.js +8 -0
  91. package/dist/src/lib/config-service.js.map +1 -1
  92. package/dist/src/lib/debounce.d.ts +12 -0
  93. package/dist/src/lib/debounce.js +23 -0
  94. package/dist/src/lib/debounce.js.map +1 -0
  95. package/dist/src/lib/domain-error.d.ts +59 -0
  96. package/dist/src/lib/domain-error.js +79 -0
  97. package/dist/src/lib/domain-error.js.map +1 -0
  98. package/dist/src/lib/json-array.d.ts +10 -0
  99. package/dist/src/lib/json-array.js +23 -0
  100. package/dist/src/lib/json-array.js.map +1 -0
  101. package/dist/src/lib/safe-upstream-probes.d.ts +25 -0
  102. package/dist/src/lib/safe-upstream-probes.js +42 -0
  103. package/dist/src/lib/safe-upstream-probes.js.map +1 -0
  104. package/dist/src/lib/spawn-async.d.ts +18 -0
  105. package/dist/src/lib/spawn-async.js +47 -0
  106. package/dist/src/lib/spawn-async.js.map +1 -0
  107. package/dist/src/lib/stale-pid-files.d.ts +17 -0
  108. package/dist/src/lib/stale-pid-files.js +40 -0
  109. package/dist/src/lib/stale-pid-files.js.map +1 -0
  110. package/dist/src/lifecycle/boot.d.ts +59 -0
  111. package/dist/src/lifecycle/boot.js +132 -0
  112. package/dist/src/lifecycle/boot.js.map +1 -0
  113. package/dist/src/lifecycle/patch-manifest.d.ts +82 -0
  114. package/dist/src/lifecycle/patch-manifest.js +126 -0
  115. package/dist/src/lifecycle/patch-manifest.js.map +1 -0
  116. package/dist/src/lifecycle/phase-import-upstream.d.ts +12 -0
  117. package/dist/src/lifecycle/phase-import-upstream.js +18 -0
  118. package/dist/src/lifecycle/phase-import-upstream.js.map +1 -0
  119. package/dist/src/lifecycle/phase-install-patches.d.ts +12 -0
  120. package/dist/src/lifecycle/phase-install-patches.js +31 -0
  121. package/dist/src/lifecycle/phase-install-patches.js.map +1 -0
  122. package/dist/src/lifecycle/phase-schedule-jobs.d.ts +12 -0
  123. package/dist/src/lifecycle/phase-schedule-jobs.js +15 -0
  124. package/dist/src/lifecycle/phase-schedule-jobs.js.map +1 -0
  125. package/dist/src/lifecycle/phase-start-server.d.ts +11 -0
  126. package/dist/src/lifecycle/phase-start-server.js +11 -0
  127. package/dist/src/lifecycle/phase-start-server.js.map +1 -0
  128. package/dist/src/lifecycle/phase-validate-config.d.ts +9 -0
  129. package/dist/src/lifecycle/phase-validate-config.js +25 -0
  130. package/dist/src/lifecycle/phase-validate-config.js.map +1 -0
  131. package/dist/src/lifecycle/phase-validate-upstream.d.ts +11 -0
  132. package/dist/src/lifecycle/phase-validate-upstream.js +16 -0
  133. package/dist/src/lifecycle/phase-validate-upstream.js.map +1 -0
  134. package/dist/src/lifecycle/phase-wire-handlers.d.ts +12 -0
  135. package/dist/src/lifecycle/phase-wire-handlers.js +16 -0
  136. package/dist/src/lifecycle/phase-wire-handlers.js.map +1 -0
  137. package/dist/src/observability/event-bus.d.ts +65 -0
  138. package/dist/src/observability/event-bus.js +52 -0
  139. package/dist/src/observability/event-bus.js.map +1 -0
  140. package/dist/src/observability/get-event-bus.d.ts +25 -0
  141. package/dist/src/observability/get-event-bus.js +34 -0
  142. package/dist/src/observability/get-event-bus.js.map +1 -0
  143. package/dist/src/observability/observability-service.d.ts +19 -0
  144. package/dist/src/observability/observability-service.js +24 -0
  145. package/dist/src/observability/observability-service.js.map +1 -0
  146. package/dist/src/observability/subscribers/metrics.d.ts +11 -0
  147. package/dist/src/observability/subscribers/metrics.js +21 -0
  148. package/dist/src/observability/subscribers/metrics.js.map +1 -0
  149. package/dist/src/observability/subscribers/session-capture.d.ts +15 -0
  150. package/dist/src/observability/subscribers/session-capture.js +25 -0
  151. package/dist/src/observability/subscribers/session-capture.js.map +1 -0
  152. package/dist/src/openai-compat/bridges/allowlist.d.ts +19 -0
  153. package/dist/src/openai-compat/bridges/allowlist.js +28 -0
  154. package/dist/src/openai-compat/bridges/allowlist.js.map +1 -0
  155. package/dist/src/openai-compat/bridges/factory.d.ts +30 -0
  156. package/dist/src/openai-compat/bridges/factory.js +84 -0
  157. package/dist/src/openai-compat/bridges/factory.js.map +1 -0
  158. package/dist/src/openai-compat/bridges/media-bridge.d.ts +34 -0
  159. package/dist/src/openai-compat/bridges/media-bridge.js +20 -0
  160. package/dist/src/openai-compat/bridges/media-bridge.js.map +1 -0
  161. package/dist/src/openai-compat/bridges/openclaw-api-shim.d.ts +54 -0
  162. package/dist/src/openai-compat/bridges/openclaw-api-shim.js +45 -0
  163. package/dist/src/openai-compat/bridges/openclaw-api-shim.js.map +1 -0
  164. package/dist/src/openai-compat/bridges/openclaw-native-tools.d.ts +61 -0
  165. package/dist/src/openai-compat/bridges/openclaw-native-tools.js +171 -0
  166. package/dist/src/openai-compat/bridges/openclaw-native-tools.js.map +1 -0
  167. package/dist/src/openai-compat/bridges/openclaw-tool-registry.d.ts +26 -0
  168. package/dist/src/openai-compat/bridges/openclaw-tool-registry.js +38 -0
  169. package/dist/src/openai-compat/bridges/openclaw-tool-registry.js.map +1 -0
  170. package/dist/src/openai-compat/bridges/tts-media-bridge.d.ts +19 -0
  171. package/dist/src/openai-compat/bridges/tts-media-bridge.js +59 -0
  172. package/dist/src/openai-compat/bridges/tts-media-bridge.js.map +1 -0
  173. package/dist/src/openai-compat/openai-chunk-types.d.ts +35 -0
  174. package/dist/src/openai-compat/openai-chunk-types.js +9 -0
  175. package/dist/src/openai-compat/openai-chunk-types.js.map +1 -0
  176. package/dist/src/openai-compat/openai-compat.d.ts +2 -90
  177. package/dist/src/openai-compat/openai-compat.js +68 -68
  178. package/dist/src/openai-compat/openai-compat.js.map +1 -1
  179. package/dist/src/openai-compat/openai-types.d.ts +71 -0
  180. package/dist/src/openai-compat/openai-types.js +11 -0
  181. package/dist/src/openai-compat/openai-types.js.map +1 -0
  182. package/dist/src/openai-compat/parse-route-body.d.ts +24 -0
  183. package/dist/src/openai-compat/parse-route-body.js +45 -0
  184. package/dist/src/openai-compat/parse-route-body.js.map +1 -0
  185. package/dist/src/openai-compat/tts-rule.d.ts +20 -0
  186. package/dist/src/openai-compat/tts-rule.js +58 -0
  187. package/dist/src/openai-compat/tts-rule.js.map +1 -0
  188. package/dist/src/openai-compat/voice-recovery.js +0 -1
  189. package/dist/src/openai-compat/voice-recovery.js.map +1 -1
  190. package/dist/src/patches/cache-parity-registry.d.ts +20 -0
  191. package/dist/src/patches/cache-parity-registry.js +64 -0
  192. package/dist/src/patches/cache-parity-registry.js.map +1 -0
  193. package/dist/src/patches/claude-md-injection.d.ts +10 -0
  194. package/dist/src/patches/claude-md-injection.js +46 -0
  195. package/dist/src/patches/claude-md-injection.js.map +1 -0
  196. package/dist/src/patches/cwd-redirect.d.ts +10 -0
  197. package/dist/src/patches/cwd-redirect.js +51 -0
  198. package/dist/src/patches/cwd-redirect.js.map +1 -0
  199. package/dist/src/patches/embedded-server-route.d.ts +23 -0
  200. package/dist/src/patches/embedded-server-route.js +64 -0
  201. package/dist/src/patches/embedded-server-route.js.map +1 -0
  202. package/dist/src/patches/pricing-overrides.d.ts +10 -0
  203. package/dist/src/patches/pricing-overrides.js +55 -0
  204. package/dist/src/patches/pricing-overrides.js.map +1 -0
  205. package/dist/src/patches/resume-registry-restore.d.ts +11 -0
  206. package/dist/src/patches/resume-registry-restore.js +48 -0
  207. package/dist/src/patches/resume-registry-restore.js.map +1 -0
  208. package/dist/src/patches/session-pid-tracking.d.ts +10 -0
  209. package/dist/src/patches/session-pid-tracking.js +45 -0
  210. package/dist/src/patches/session-pid-tracking.js.map +1 -0
  211. package/dist/src/patches/sysprompt-strip.d.ts +46 -0
  212. package/dist/src/patches/sysprompt-strip.js +78 -0
  213. package/dist/src/patches/sysprompt-strip.js.map +1 -0
  214. package/dist/src/patches/sysprompt-strip.spec.d.ts +33 -0
  215. package/dist/src/patches/sysprompt-strip.spec.js +53 -0
  216. package/dist/src/patches/sysprompt-strip.spec.js.map +1 -0
  217. package/dist/src/patches/tools-restoration.d.ts +12 -0
  218. package/dist/src/patches/tools-restoration.js +43 -0
  219. package/dist/src/patches/tools-restoration.js.map +1 -0
  220. package/dist/src/persistence/migration-v0.d.ts +24 -0
  221. package/dist/src/persistence/migration-v0.js +142 -0
  222. package/dist/src/persistence/migration-v0.js.map +1 -0
  223. package/dist/src/persistence/session-registry.d.ts +57 -0
  224. package/dist/src/persistence/session-registry.js +58 -0
  225. package/dist/src/persistence/session-registry.js.map +1 -0
  226. package/dist/src/persistence/snapshot.d.ts +18 -0
  227. package/dist/src/persistence/snapshot.js +32 -0
  228. package/dist/src/persistence/snapshot.js.map +1 -0
  229. package/dist/src/persistence/wal.d.ts +17 -0
  230. package/dist/src/persistence/wal.js +32 -0
  231. package/dist/src/persistence/wal.js.map +1 -0
  232. package/dist/src/session/persisted-sessions.d.ts +26 -0
  233. package/dist/src/session/persisted-sessions.js +70 -0
  234. package/dist/src/session/persisted-sessions.js.map +1 -0
  235. package/dist/src/session/session-manager.d.ts +2 -11
  236. package/dist/src/session/session-manager.js +22 -66
  237. package/dist/src/session/session-manager.js.map +1 -1
  238. package/dist/src/session-bootstrap/boot-self-heal.d.ts +32 -0
  239. package/dist/src/session-bootstrap/boot-self-heal.js +54 -0
  240. package/dist/src/session-bootstrap/boot-self-heal.js.map +1 -0
  241. package/dist/src/session-bootstrap/cwd-patch.js +11 -87
  242. package/dist/src/session-bootstrap/cwd-patch.js.map +1 -1
  243. package/dist/src/session-bootstrap/resume-registry.d.ts +29 -0
  244. package/dist/src/session-bootstrap/resume-registry.js +58 -0
  245. package/dist/src/session-bootstrap/resume-registry.js.map +1 -0
  246. package/dist/src/session-bootstrap/session-hygiene.d.ts +23 -0
  247. package/dist/src/session-bootstrap/session-hygiene.js +41 -0
  248. package/dist/src/session-bootstrap/session-hygiene.js.map +1 -0
  249. package/dist/src/types/runtime-config.d.ts +11 -0
  250. package/dist/src/types/runtime-config.js +9 -0
  251. package/dist/src/types/runtime-config.js.map +1 -1
  252. package/dist/src/types/tool-bridge.d.ts +2 -1
  253. package/dist/src/types/tool-bridge.js +1 -0
  254. package/dist/src/types/tool-bridge.js.map +1 -1
  255. package/package.json +1 -1
  256. package/dist/scripts/bench/ab-harness.d.ts +0 -58
  257. package/dist/scripts/bench/ab-harness.d.ts.map +0 -1
  258. package/dist/scripts/bench/ab-harness.js +0 -78
  259. package/dist/scripts/bench/ab-harness.js.map +0 -1
  260. package/dist/src/channels/adapter.d.ts.map +0 -1
  261. package/dist/src/channels/telegram/completion-summary.d.ts.map +0 -1
  262. package/dist/src/channels/telegram/error-renderer.d.ts.map +0 -1
  263. package/dist/src/channels/telegram/event-reducer.d.ts.map +0 -1
  264. package/dist/src/channels/telegram/index.d.ts.map +0 -1
  265. package/dist/src/channels/telegram/injector.d.ts.map +0 -1
  266. package/dist/src/channels/telegram/live-card.d.ts.map +0 -1
  267. package/dist/src/channels/telegram/state-machine.d.ts.map +0 -1
  268. package/dist/src/channels/telegram/tool-tracker.d.ts.map +0 -1
  269. package/dist/src/command-router/cc-handler.d.ts.map +0 -1
  270. package/dist/src/command-router/index.d.ts.map +0 -1
  271. package/dist/src/constants.d.ts.map +0 -1
  272. package/dist/src/council/consensus.d.ts.map +0 -1
  273. package/dist/src/council/council.d.ts.map +0 -1
  274. package/dist/src/council/index.d.ts.map +0 -1
  275. package/dist/src/engines/base-oneshot-session.d.ts.map +0 -1
  276. package/dist/src/engines/index.d.ts.map +0 -1
  277. package/dist/src/engines/persistent-codex-session.d.ts.map +0 -1
  278. package/dist/src/engines/persistent-cursor-session.d.ts.map +0 -1
  279. package/dist/src/engines/persistent-custom-session.d.ts.map +0 -1
  280. package/dist/src/engines/persistent-gemini-session.d.ts.map +0 -1
  281. package/dist/src/engines/persistent-session.d.ts.map +0 -1
  282. package/dist/src/health/handler.d.ts.map +0 -1
  283. package/dist/src/health/index.d.ts.map +0 -1
  284. package/dist/src/index.d.ts.map +0 -1
  285. package/dist/src/lib/auto-recovery.d.ts.map +0 -1
  286. package/dist/src/lib/cache-parity.d.ts.map +0 -1
  287. package/dist/src/lib/circuit-breaker.d.ts.map +0 -1
  288. package/dist/src/lib/config.d.ts.map +0 -1
  289. package/dist/src/lib/drift-detector.d.ts.map +0 -1
  290. package/dist/src/lib/error-formatter.d.ts.map +0 -1
  291. package/dist/src/lib/heartbeat-workaround.d.ts.map +0 -1
  292. package/dist/src/lib/index.d.ts.map +0 -1
  293. package/dist/src/lib/register-guard.d.ts.map +0 -1
  294. package/dist/src/lib/route-flag.d.ts +0 -49
  295. package/dist/src/lib/route-flag.d.ts.map +0 -1
  296. package/dist/src/lib/route-flag.js +0 -52
  297. package/dist/src/lib/route-flag.js.map +0 -1
  298. package/dist/src/lib/sysprompt-strip.d.ts.map +0 -1
  299. package/dist/src/lib/telemetry.d.ts.map +0 -1
  300. package/dist/src/lib/test-mode.d.ts.map +0 -1
  301. package/dist/src/lib/vendor-paths.d.ts.map +0 -1
  302. package/dist/src/logger.d.ts.map +0 -1
  303. package/dist/src/mcp/bridge.d.ts.map +0 -1
  304. package/dist/src/mcp/index.d.ts.map +0 -1
  305. package/dist/src/models.d.ts.map +0 -1
  306. package/dist/src/openai-compat/cli-stream-parser.d.ts.map +0 -1
  307. package/dist/src/openai-compat/index.d.ts.map +0 -1
  308. package/dist/src/openai-compat/openai-compat.d.ts.map +0 -1
  309. package/dist/src/openai-compat/skill-resolver.d.ts.map +0 -1
  310. package/dist/src/openai-compat/sse-translator.d.ts.map +0 -1
  311. package/dist/src/proxy/anthropic-adapter.d.ts.map +0 -1
  312. package/dist/src/proxy/handler.d.ts.map +0 -1
  313. package/dist/src/proxy/index.d.ts.map +0 -1
  314. package/dist/src/proxy/schema-cleaner.d.ts.map +0 -1
  315. package/dist/src/proxy/thought-cache.d.ts.map +0 -1
  316. package/dist/src/session/embedded-server.d.ts.map +0 -1
  317. package/dist/src/session/inbox-manager.d.ts.map +0 -1
  318. package/dist/src/session/index.d.ts.map +0 -1
  319. package/dist/src/session/session-manager.d.ts.map +0 -1
  320. package/dist/src/session-bootstrap/cwd-patch.d.ts.map +0 -1
  321. package/dist/src/session-bootstrap/index.d.ts.map +0 -1
  322. package/dist/src/session-bootstrap/sysprompt-strip.d.ts.map +0 -1
  323. package/dist/src/session-bootstrap/think-conflict-resolver.d.ts.map +0 -1
  324. package/dist/src/types.d.ts.map +0 -1
  325. package/dist/src/validation.d.ts.map +0 -1
  326. package/dist/tests/_helpers/subprocess-mock.d.ts +0 -35
  327. package/dist/tests/_helpers/subprocess-mock.d.ts.map +0 -1
  328. package/dist/tests/_helpers/subprocess-mock.js +0 -136
  329. package/dist/tests/_helpers/subprocess-mock.js.map +0 -1
  330. package/dist/tests/auto-recovery.test.d.ts +0 -2
  331. package/dist/tests/auto-recovery.test.d.ts.map +0 -1
  332. package/dist/tests/auto-recovery.test.js +0 -185
  333. package/dist/tests/auto-recovery.test.js.map +0 -1
  334. package/dist/tests/bench-harness.test.d.ts +0 -2
  335. package/dist/tests/bench-harness.test.d.ts.map +0 -1
  336. package/dist/tests/bench-harness.test.js +0 -21
  337. package/dist/tests/bench-harness.test.js.map +0 -1
  338. package/dist/tests/cache-parity.test.d.ts +0 -2
  339. package/dist/tests/cache-parity.test.d.ts.map +0 -1
  340. package/dist/tests/cache-parity.test.js +0 -401
  341. package/dist/tests/cache-parity.test.js.map +0 -1
  342. package/dist/tests/command-router.test.d.ts +0 -2
  343. package/dist/tests/command-router.test.d.ts.map +0 -1
  344. package/dist/tests/command-router.test.js +0 -60
  345. package/dist/tests/command-router.test.js.map +0 -1
  346. package/dist/tests/council.test.d.ts +0 -2
  347. package/dist/tests/council.test.d.ts.map +0 -1
  348. package/dist/tests/council.test.js +0 -20
  349. package/dist/tests/council.test.js.map +0 -1
  350. package/dist/tests/drift-detector.test.d.ts +0 -2
  351. package/dist/tests/drift-detector.test.d.ts.map +0 -1
  352. package/dist/tests/drift-detector.test.js +0 -268
  353. package/dist/tests/drift-detector.test.js.map +0 -1
  354. package/dist/tests/eager-bootstrap-gating.test.d.ts +0 -9
  355. package/dist/tests/eager-bootstrap-gating.test.d.ts.map +0 -1
  356. package/dist/tests/eager-bootstrap-gating.test.js +0 -97
  357. package/dist/tests/eager-bootstrap-gating.test.js.map +0 -1
  358. package/dist/tests/engines.test.d.ts +0 -2
  359. package/dist/tests/engines.test.d.ts.map +0 -1
  360. package/dist/tests/engines.test.js +0 -8
  361. package/dist/tests/engines.test.js.map +0 -1
  362. package/dist/tests/error-formatter.test.d.ts +0 -2
  363. package/dist/tests/error-formatter.test.d.ts.map +0 -1
  364. package/dist/tests/error-formatter.test.js +0 -220
  365. package/dist/tests/error-formatter.test.js.map +0 -1
  366. package/dist/tests/health.test.d.ts +0 -2
  367. package/dist/tests/health.test.d.ts.map +0 -1
  368. package/dist/tests/health.test.js +0 -110
  369. package/dist/tests/health.test.js.map +0 -1
  370. package/dist/tests/heartbeat-workaround.test.d.ts +0 -2
  371. package/dist/tests/heartbeat-workaround.test.d.ts.map +0 -1
  372. package/dist/tests/heartbeat-workaround.test.js +0 -90
  373. package/dist/tests/heartbeat-workaround.test.js.map +0 -1
  374. package/dist/tests/index.test.d.ts +0 -2
  375. package/dist/tests/index.test.d.ts.map +0 -1
  376. package/dist/tests/index.test.js +0 -7
  377. package/dist/tests/index.test.js.map +0 -1
  378. package/dist/tests/lib-sysprompt-strip.test.d.ts +0 -2
  379. package/dist/tests/lib-sysprompt-strip.test.d.ts.map +0 -1
  380. package/dist/tests/lib-sysprompt-strip.test.js +0 -145
  381. package/dist/tests/lib-sysprompt-strip.test.js.map +0 -1
  382. package/dist/tests/listener-activation.test.d.ts +0 -2
  383. package/dist/tests/listener-activation.test.d.ts.map +0 -1
  384. package/dist/tests/listener-activation.test.js +0 -87
  385. package/dist/tests/listener-activation.test.js.map +0 -1
  386. package/dist/tests/mcp-bridge.test.d.ts +0 -2
  387. package/dist/tests/mcp-bridge.test.d.ts.map +0 -1
  388. package/dist/tests/mcp-bridge.test.js +0 -137
  389. package/dist/tests/mcp-bridge.test.js.map +0 -1
  390. package/dist/tests/openai-compat.test.d.ts +0 -2
  391. package/dist/tests/openai-compat.test.d.ts.map +0 -1
  392. package/dist/tests/openai-compat.test.js +0 -8
  393. package/dist/tests/openai-compat.test.js.map +0 -1
  394. package/dist/tests/proxy-heartbeat-integration.test.d.ts +0 -15
  395. package/dist/tests/proxy-heartbeat-integration.test.d.ts.map +0 -1
  396. package/dist/tests/proxy-heartbeat-integration.test.js +0 -122
  397. package/dist/tests/proxy-heartbeat-integration.test.js.map +0 -1
  398. package/dist/tests/proxy.test.d.ts +0 -2
  399. package/dist/tests/proxy.test.d.ts.map +0 -1
  400. package/dist/tests/proxy.test.js +0 -8
  401. package/dist/tests/proxy.test.js.map +0 -1
  402. package/dist/tests/register-guard-stacking.test.d.ts +0 -2
  403. package/dist/tests/register-guard-stacking.test.d.ts.map +0 -1
  404. package/dist/tests/register-guard-stacking.test.js +0 -61
  405. package/dist/tests/register-guard-stacking.test.js.map +0 -1
  406. package/dist/tests/register-guard.test.d.ts +0 -2
  407. package/dist/tests/register-guard.test.d.ts.map +0 -1
  408. package/dist/tests/register-guard.test.js +0 -129
  409. package/dist/tests/register-guard.test.js.map +0 -1
  410. package/dist/tests/route-flag-rollback.test.d.ts +0 -2
  411. package/dist/tests/route-flag-rollback.test.d.ts.map +0 -1
  412. package/dist/tests/route-flag-rollback.test.js +0 -70
  413. package/dist/tests/route-flag-rollback.test.js.map +0 -1
  414. package/dist/tests/route-flag.test.d.ts +0 -2
  415. package/dist/tests/route-flag.test.d.ts.map +0 -1
  416. package/dist/tests/route-flag.test.js +0 -101
  417. package/dist/tests/route-flag.test.js.map +0 -1
  418. package/dist/tests/session-bootstrap.test.d.ts +0 -2
  419. package/dist/tests/session-bootstrap.test.d.ts.map +0 -1
  420. package/dist/tests/session-bootstrap.test.js +0 -183
  421. package/dist/tests/session-bootstrap.test.js.map +0 -1
  422. package/dist/tests/session.test.d.ts +0 -2
  423. package/dist/tests/session.test.d.ts.map +0 -1
  424. package/dist/tests/session.test.js +0 -17
  425. package/dist/tests/session.test.js.map +0 -1
  426. package/dist/tests/state-machine.test.d.ts +0 -2
  427. package/dist/tests/state-machine.test.d.ts.map +0 -1
  428. package/dist/tests/state-machine.test.js +0 -133
  429. package/dist/tests/state-machine.test.js.map +0 -1
  430. package/dist/tests/streaming/cli-stream-parser.test.d.ts +0 -2
  431. package/dist/tests/streaming/cli-stream-parser.test.d.ts.map +0 -1
  432. package/dist/tests/streaming/cli-stream-parser.test.js +0 -233
  433. package/dist/tests/streaming/cli-stream-parser.test.js.map +0 -1
  434. package/dist/tests/streaming/feature-flag.test.d.ts +0 -14
  435. package/dist/tests/streaming/feature-flag.test.d.ts.map +0 -1
  436. package/dist/tests/streaming/feature-flag.test.js +0 -163
  437. package/dist/tests/streaming/feature-flag.test.js.map +0 -1
  438. package/dist/tests/streaming/no-tools-prompt.test.d.ts +0 -17
  439. package/dist/tests/streaming/no-tools-prompt.test.d.ts.map +0 -1
  440. package/dist/tests/streaming/no-tools-prompt.test.js +0 -229
  441. package/dist/tests/streaming/no-tools-prompt.test.js.map +0 -1
  442. package/dist/tests/streaming/skill-plus-tools.test.d.ts +0 -14
  443. package/dist/tests/streaming/skill-plus-tools.test.d.ts.map +0 -1
  444. package/dist/tests/streaming/skill-plus-tools.test.js +0 -234
  445. package/dist/tests/streaming/skill-plus-tools.test.js.map +0 -1
  446. package/dist/tests/streaming/sse-translator.test.d.ts +0 -2
  447. package/dist/tests/streaming/sse-translator.test.d.ts.map +0 -1
  448. package/dist/tests/streaming/sse-translator.test.js +0 -227
  449. package/dist/tests/streaming/sse-translator.test.js.map +0 -1
  450. package/dist/tests/streaming/tool-result-roundtrip.test.d.ts +0 -11
  451. package/dist/tests/streaming/tool-result-roundtrip.test.d.ts.map +0 -1
  452. package/dist/tests/streaming/tool-result-roundtrip.test.js +0 -215
  453. package/dist/tests/streaming/tool-result-roundtrip.test.js.map +0 -1
  454. package/dist/tests/streaming/tool-use-translation.test.d.ts +0 -10
  455. package/dist/tests/streaming/tool-use-translation.test.d.ts.map +0 -1
  456. package/dist/tests/streaming/tool-use-translation.test.js +0 -251
  457. package/dist/tests/streaming/tool-use-translation.test.js.map +0 -1
  458. package/dist/tests/telegram-bridge.test.d.ts +0 -2
  459. package/dist/tests/telegram-bridge.test.d.ts.map +0 -1
  460. package/dist/tests/telegram-bridge.test.js +0 -17
  461. package/dist/tests/telegram-bridge.test.js.map +0 -1
  462. package/dist/tests/telegram-injector.test.d.ts +0 -2
  463. package/dist/tests/telegram-injector.test.d.ts.map +0 -1
  464. package/dist/tests/telegram-injector.test.js +0 -74
  465. package/dist/tests/telegram-injector.test.js.map +0 -1
  466. package/dist/tests/telemetry.test.d.ts +0 -2
  467. package/dist/tests/telemetry.test.d.ts.map +0 -1
  468. package/dist/tests/telemetry.test.js +0 -405
  469. package/dist/tests/telemetry.test.js.map +0 -1
  470. package/dist/tests/test-mode.test.d.ts +0 -2
  471. package/dist/tests/test-mode.test.d.ts.map +0 -1
  472. package/dist/tests/test-mode.test.js +0 -39
  473. package/dist/tests/test-mode.test.js.map +0 -1
@@ -0,0 +1,132 @@
1
+ /**
2
+ * throttle-controller — Telegram message queue + dedup primitives.
3
+ *
4
+ * Extracted from live-card.ts (Step 3 of Phase 5 v0.11.0 decomposition,
5
+ * PRPs/phase5-live-card-split.md).
6
+ *
7
+ * Owns:
8
+ * - TelegramMessageQueue: per-session promise-chain serialiser for card
9
+ * edits and standalone message sends.
10
+ * - Shared cross-handler dedup window: `markDispatchedToTelegram` /
11
+ * `wasDispatchedToTelegram`, used to bridge the cc-openclaw patched
12
+ * SessionManager.send path and the gateway's native ACP message_sending
13
+ * path (both can fire for the same agent reply, producing the doubled-
14
+ * greeting bug observed on /new).
15
+ * - `_inputFingerprint` for tool-tracker / state-machine input dedup.
16
+ *
17
+ * Imports kept narrow: card-renderer (sendTg, editTg), logger (_logger),
18
+ * node:crypto. No coupling to tool-tracker or live-card.
19
+ */
20
+ import { createHash } from 'node:crypto';
21
+ import { sendTg, editTg } from './card-renderer.js';
22
+ import { _logger } from './logger.js';
23
+ const PLUGIN_TAG = '[cc-openclaw/telegram/throttle-controller]';
24
+ // ── Shared cross-handler dedup ───────────────────────────────────────────
25
+ //
26
+ // Keyed on chatId (NOT sessionName) because the upstream double-call uses
27
+ // two different session names for the same Telegram-chat output. The
28
+ // chatId is the stable invariant identifying "where this message is going"
29
+ // regardless of which session generated it.
30
+ export const _sendMessageDedup = new Map();
31
+ export const DEDUP_WINDOW_MS = 3000;
32
+ export function _hashPayload(message) {
33
+ let payload;
34
+ try {
35
+ payload = typeof message === 'string' ? message : JSON.stringify(message);
36
+ }
37
+ catch {
38
+ payload = String(message);
39
+ }
40
+ // 12-char sha1 prefix is collision-safe within a 2s window for our payload sizes
41
+ return createHash('sha1').update(payload.slice(0, 4096)).digest('hex').slice(0, 12);
42
+ }
43
+ export function markDispatchedToTelegram(chatId, payload) {
44
+ if (!chatId)
45
+ return;
46
+ const hash = _hashPayload(payload);
47
+ _sendMessageDedup.set(chatId, { hash, expiresAt: Date.now() + DEDUP_WINDOW_MS });
48
+ }
49
+ export function wasDispatchedToTelegram(chatId, payload) {
50
+ if (!chatId)
51
+ return false;
52
+ const existing = _sendMessageDedup.get(chatId);
53
+ if (!existing)
54
+ return false;
55
+ if (existing.expiresAt <= Date.now()) {
56
+ _sendMessageDedup.delete(chatId);
57
+ return false;
58
+ }
59
+ return existing.hash === _hashPayload(payload);
60
+ }
61
+ // ── Per-session Telegram message queue ────────────────────────────────────
62
+ export class TelegramMessageQueue {
63
+ chatId;
64
+ threadId;
65
+ cardMessageId;
66
+ _replyToMessageId;
67
+ /**
68
+ * Sticky flag — set true the first time `sendMessage()` is called for this
69
+ * queue instance. Lets the fast-turn fallback in `applyPatch()` detect that
70
+ * a new message was already dispatched by the pipeline's `onNewMessage`
71
+ * callback and avoid double-firing. Bug context: 2026-04-29 doubled-greeting
72
+ * on `/new` was caused by both the pipeline AND the fallback emitting the
73
+ * same model output as separate Telegram messages.
74
+ */
75
+ messageSent;
76
+ _cardChain;
77
+ _msgChain;
78
+ constructor(chatId, threadId, existingCardMessageId, replyToMessageId) {
79
+ this.chatId = chatId;
80
+ this.threadId = threadId;
81
+ this._replyToMessageId = replyToMessageId || null;
82
+ this.cardMessageId = existingCardMessageId || null;
83
+ this.messageSent = false;
84
+ this._cardChain = Promise.resolve();
85
+ this._msgChain = Promise.resolve();
86
+ }
87
+ /** Send or edit the session card. */
88
+ updateCard(text, replyMarkup) {
89
+ this._cardChain = this._cardChain.then(async () => {
90
+ if (this.cardMessageId) {
91
+ await editTg(this.chatId, this.cardMessageId, text, replyMarkup);
92
+ }
93
+ else {
94
+ const res = await sendTg(this.chatId, text, this.threadId, replyMarkup, this._replyToMessageId);
95
+ if (res.ok && res.result?.message_id) {
96
+ this.cardMessageId = res.result.message_id;
97
+ this._replyToMessageId = null;
98
+ }
99
+ }
100
+ }).catch(e => _logger.error(`${PLUGIN_TAG} card update error: ${e.message}`));
101
+ }
102
+ /** Send a standalone message (error alert, completion summary). */
103
+ sendMessage(text) {
104
+ this.messageSent = true;
105
+ this._msgChain = this._msgChain.then(async () => {
106
+ await sendTg(this.chatId, text, this.threadId);
107
+ }).catch(e => _logger.error(`${PLUGIN_TAG} message send error: ${e.message}`));
108
+ }
109
+ }
110
+ export function _inputFingerprint(input) {
111
+ if (!input || typeof input !== 'object')
112
+ return { size: 0, sig: '' };
113
+ const inp = input;
114
+ const size = (Object.keys(inp).length +
115
+ (inp.command?.length || 0) +
116
+ (inp.new_string?.length || 0) +
117
+ (inp.old_string?.length || 0) +
118
+ (inp.content?.length || 0) +
119
+ (inp.pattern?.length || 0) +
120
+ (inp.query?.length || 0) +
121
+ (inp.prompt?.length || 0));
122
+ const fp = (s) => s ? `${s.slice(0, 16)}\x02${s.slice(-16)}` : '';
123
+ const sig = fp(inp.command) + '\x01' +
124
+ fp(inp.old_string) + '\x01' +
125
+ fp(inp.new_string) + '\x01' +
126
+ fp(inp.content) + '\x01' +
127
+ fp(inp.pattern) + '\x01' +
128
+ fp(inp.query) + '\x01' +
129
+ fp(inp.prompt);
130
+ return { size, sig };
131
+ }
132
+ //# sourceMappingURL=throttle-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle-controller.js","sourceRoot":"","sources":["../../../../src/channels/telegram/throttle-controller.ts"],"names":[],"mappings":"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"}
@@ -125,7 +125,7 @@ export declare function loadLastSession(chatId: string): {
125
125
  ts: number;
126
126
  } | null;
127
127
  /** Extract a one-line result preview from tool output. */
128
- export declare function extractResultPreview(toolName: string, result: unknown, error: unknown): string | null;
128
+ export { extractResultPreview } from './result-preview.js';
129
129
  /** Build Savvy buttons with current verbosity level injected. */
130
130
  export declare function savvyButtons(state: SavvyCardState, sessionKey: string, chatIdOrOpts: unknown): unknown;
131
131
  /** Throttle Savvy card edits — max 1 edit per 2s to avoid Telegram 429s */
@@ -144,4 +144,3 @@ export declare function tryAttachBridge(entry: SavvyCardEntry, sk: string, rende
144
144
  * Idempotent — subsequent calls are no-ops.
145
145
  */
146
146
  export declare function register(api: PluginApi): void;
147
- export {};
@@ -11,6 +11,8 @@
11
11
  import { createRequire } from 'node:module';
12
12
  import { defaultRegisterGuard } from '../../lib/register-guard.js';
13
13
  import { isSavvyLiveCardEnabled } from '../../lib/config.js';
14
+ import { extractInsightTip } from './insight-formatter.js';
15
+ import { extractResultPreview as _extractResultPreviewImpl } from './result-preview.js';
14
16
  import { TelegramMessageQueue, telegramApi, delegatedCardStore, _logger, VERBOSITY_STORE, } from './live-card.js';
15
17
  const __require = createRequire(import.meta.url);
16
18
  // ── Constants ─────────────────────────────────────────────────────────────
@@ -76,42 +78,10 @@ export function loadLastSession(chatId) {
76
78
  return null;
77
79
  }
78
80
  /** Extract a one-line result preview from tool output. */
79
- export function extractResultPreview(toolName, result, error) {
80
- if (error)
81
- return null;
82
- if (!result)
83
- return null;
84
- const text = typeof result === 'string' ? result : String(result);
85
- if (!text || text.length < 2)
86
- return null;
87
- switch (toolName) {
88
- case 'exec': {
89
- const firstLine = text.split('\n').find(l => l.trim()) || '';
90
- return firstLine.length > 60 ? firstLine.slice(0, 57) + '...' : firstLine;
91
- }
92
- case 'web_fetch': {
93
- const statusMatch = text.match(/^(\d{3})/);
94
- if (statusMatch)
95
- return `HTTP ${statusMatch[1]}`;
96
- const sizeKb = (text.length / 1024).toFixed(1);
97
- return `${sizeKb}kb fetched`;
98
- }
99
- case 'read': {
100
- const lineCount = text.split('\n').length;
101
- return `${lineCount} lines`;
102
- }
103
- case 'write':
104
- return 'written';
105
- case 'edit':
106
- return 'edited';
107
- case 'web_search': {
108
- const hits = text.split('\n').filter(l => l.trim()).length;
109
- return `${Math.min(hits, 10)} results`;
110
- }
111
- default:
112
- return null;
113
- }
114
- }
81
+ // `extractResultPreview` extracted to `./result-preview.ts` 2026-05-13
82
+ // pure-function hot-path-adjacent decomposition. Re-exported here so
83
+ // existing callers (live-card.ts, event-reducer.ts) remain unchanged.
84
+ export { extractResultPreview } from './result-preview.js';
115
85
  /** Build Savvy buttons with current verbosity level injected. */
116
86
  export function savvyButtons(state, sessionKey, chatIdOrOpts) {
117
87
  if (!buttonHandlerRef?.buildSavvyButtons)
@@ -492,18 +462,12 @@ export function register(api) {
492
462
  if (!entry)
493
463
  return;
494
464
  entry.state.onToolEnd(ev.toolName ?? '', ev.durationMs ?? null, ev.error ?? null);
495
- const preview = extractResultPreview(ev.toolName ?? '', ev.result, ev.error);
465
+ const preview = _extractResultPreviewImpl(ev.toolName ?? '', ev.result, ev.error);
496
466
  if (preview)
497
467
  entry.state.setResultPreview(preview);
498
468
  if (entry._tipsEngine) {
499
469
  const st = entry.state.getState();
500
- const toolSummary = {};
501
- for (const t of st.activityLog) {
502
- const key = t === 'exec' ? 'execute' : t;
503
- toolSummary[key] = (toolSummary[key] || 0) + 1;
504
- }
505
- const tip = entry._tipsEngine.getTip({ ...st, toolSummary, elapsedSec: Math.round(st.elapsedMs / 1000) });
506
- entry.state.setTip(tip);
470
+ entry.state.setTip(extractInsightTip(st, entry._tipsEngine));
507
471
  }
508
472
  if (entry.state.stalled) {
509
473
  entry.state.clearStall();
@@ -557,13 +521,7 @@ export function register(api) {
557
521
  // current/next render instead of waiting for the next tool turn.
558
522
  if (entry._tipsEngine) {
559
523
  const st = entry.state.getState();
560
- const toolSummary = {};
561
- for (const t of st.activityLog) {
562
- const key = t === 'exec' ? 'execute' : t;
563
- toolSummary[key] = (toolSummary[key] || 0) + 1;
564
- }
565
- const tip = entry._tipsEngine.getTip({ ...st, toolSummary, elapsedSec: Math.round(st.elapsedMs / 1000) });
566
- entry.state.setTip(tip);
524
+ entry.state.setTip(extractInsightTip(st, entry._tipsEngine));
567
525
  }
568
526
  if (entry._initialSent) {
569
527
  const cardText = _renderSavvyCard(entry.state.getState());
@@ -1 +1 @@
1
- {"version":3,"file":"tool-tracker.js","sourceRoot":"","sources":["../../../../src/channels/telegram/tool-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-tracker.js","sourceRoot":"","sources":["../../../../src/channels/telegram/tool-tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `check_bridge_wiring` — verifies the openai-compat bridge factory is
3
+ * structurally composed (Phase 5 Bridge Plane v0.11.0 contract).
4
+ *
5
+ * Dual-shape support:
6
+ * - Modern: `factory.ts` exports `makeToolBridge` + `activeToolMode`
7
+ * - Legacy: `factory.ts` exports `Embedded`/`PerMessage`/`NativeStream`/
8
+ * `OpenClawNative` directly (preserves pre-existing test mocks)
9
+ *
10
+ * Extracted from `doctor.ts` 2026-05-13 to keep that file under the
11
+ * 500-LOC ceiling.
12
+ */
13
+ import type { CheckResult } from './patch-scaffold.js';
14
+ export declare function checkBridgeWiring(): Promise<CheckResult>;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * `check_bridge_wiring` — verifies the openai-compat bridge factory is
3
+ * structurally composed (Phase 5 Bridge Plane v0.11.0 contract).
4
+ *
5
+ * Dual-shape support:
6
+ * - Modern: `factory.ts` exports `makeToolBridge` + `activeToolMode`
7
+ * - Legacy: `factory.ts` exports `Embedded`/`PerMessage`/`NativeStream`/
8
+ * `OpenClawNative` directly (preserves pre-existing test mocks)
9
+ *
10
+ * Extracted from `doctor.ts` 2026-05-13 to keep that file under the
11
+ * 500-LOC ceiling.
12
+ */
13
+ const EXPECTED_FACTORY_EXPORTS = ['makeToolBridge', 'activeToolMode'];
14
+ const LEGACY_BRIDGE_MODES = ['Embedded', 'PerMessage', 'NativeStream', 'OpenClawNative'];
15
+ export async function checkBridgeWiring() {
16
+ const id = 'check_bridge_wiring';
17
+ let factory;
18
+ try {
19
+ factory = (await import('../../openai-compat/bridges/factory.js'));
20
+ }
21
+ catch (err) {
22
+ const matchesNotFound = (e) => e instanceof Error &&
23
+ ('code' in e
24
+ ? e.code === 'ERR_MODULE_NOT_FOUND'
25
+ : e.message.includes('Cannot find module') ||
26
+ e.message.includes('ERR_MODULE_NOT_FOUND'));
27
+ const isNotFound = matchesNotFound(err) || matchesNotFound(err.cause);
28
+ if (isNotFound) {
29
+ return { id, status: 'pending', detail: { reason: 'bridge module not yet shipped' } };
30
+ }
31
+ return {
32
+ id,
33
+ status: 'fail',
34
+ detail: { error: err instanceof Error ? err.message : String(err) },
35
+ };
36
+ }
37
+ // Modern factory shape: makeToolBridge + activeToolMode.
38
+ const presentFactory = EXPECTED_FACTORY_EXPORTS.filter((n) => n in factory);
39
+ if (presentFactory.length === EXPECTED_FACTORY_EXPORTS.length) {
40
+ return {
41
+ id,
42
+ status: 'pass',
43
+ detail: { factoryExports: presentFactory, missingBridges: [] },
44
+ };
45
+ }
46
+ // Legacy shape: all 4 bridge-mode names as direct exports.
47
+ const presentLegacyModes = LEGACY_BRIDGE_MODES.filter((m) => m in factory);
48
+ const missingBridges = LEGACY_BRIDGE_MODES.filter((m) => !(m in factory));
49
+ if (presentLegacyModes.length === LEGACY_BRIDGE_MODES.length) {
50
+ return { id, status: 'pass', detail: { bridges: presentLegacyModes, missingBridges: [] } };
51
+ }
52
+ return {
53
+ id,
54
+ status: 'fail',
55
+ detail: {
56
+ factoryExports: presentFactory,
57
+ bridges: presentLegacyModes,
58
+ missingBridges,
59
+ remediation: `factory.ts must export either ${EXPECTED_FACTORY_EXPORTS.join('+')} (modern) ` +
60
+ `or all of ${LEGACY_BRIDGE_MODES.join(',')} (legacy test shape)`,
61
+ },
62
+ };
63
+ }
64
+ //# sourceMappingURL=bridge-wiring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-wiring.js","sourceRoot":"","sources":["../../../../src/cli/checks/bridge-wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,wBAAwB,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAU,CAAC;AAC/E,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,CAAU,CAAC;AAElG,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,EAAE,GAAG,qBAAqB,CAAC;IAEjC,IAAI,OAAgC,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAA4B,CAAC;IAChG,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,eAAe,GAAG,CAAC,CAAU,EAAW,EAAE,CAC9C,CAAC,YAAY,KAAK;YAClB,CAAC,MAAM,IAAI,CAAC;gBACV,CAAC,CAAE,CAA2B,CAAC,IAAI,KAAK,sBAAsB;gBAC9D,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;oBACxC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAClD,MAAM,UAAU,GACd,eAAe,CAAC,GAAG,CAAC,IAAI,eAAe,CAAE,GAA2B,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,+BAA+B,EAAE,EAAE,CAAC;QACxF,CAAC;QACD,OAAO;YACL,EAAE;YACF,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SACpE,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;IAC5E,IAAI,cAAc,CAAC,MAAM,KAAK,wBAAwB,CAAC,MAAM,EAAE,CAAC;QAC9D,OAAO;YACL,EAAE;YACF,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE;SAC/D,CAAC;IACJ,CAAC;IAED,2DAA2D;IAC3D,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;IAC1E,IAAI,kBAAkB,CAAC,MAAM,KAAK,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC;IAC7F,CAAC;IAED,OAAO;QACL,EAAE;QACF,MAAM,EAAE,MAAM;QACd,MAAM,EAAE;YACN,cAAc,EAAE,cAAc;YAC9B,OAAO,EAAE,kBAAkB;YAC3B,cAAc;YACd,WAAW,EACT,iCAAiC,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY;gBAC/E,aAAa,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB;SACnE;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `check_config_schema` — boot phase 1 dry-run.
3
+ *
4
+ * Parses env + ~/.openclaw/openclaw.json via the v1.0.0 typed `ConfigSchema`.
5
+ * Surfaces zod validation issues with phase-keyed remediation.
6
+ *
7
+ * Extracted from `doctor.ts` 2026-05-13 to keep that file under the
8
+ * 500-LOC ceiling.
9
+ */
10
+ import type { CheckResult } from './patch-scaffold.js';
11
+ export declare function checkConfigSchema(): CheckResult;
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `check_config_schema` — boot phase 1 dry-run.
3
+ *
4
+ * Parses env + ~/.openclaw/openclaw.json via the v1.0.0 typed `ConfigSchema`.
5
+ * Surfaces zod validation issues with phase-keyed remediation.
6
+ *
7
+ * Extracted from `doctor.ts` 2026-05-13 to keep that file under the
8
+ * 500-LOC ceiling.
9
+ */
10
+ import { ConfigSchema } from '../../config/schema.js';
11
+ import { loadConfigSources } from '../../config/loader.js';
12
+ export function checkConfigSchema() {
13
+ const id = 'check_config_schema';
14
+ try {
15
+ const raw = loadConfigSources();
16
+ const result = ConfigSchema.safeParse(raw);
17
+ if (result.success) {
18
+ return {
19
+ id,
20
+ status: 'pass',
21
+ detail: {
22
+ openclawCcOpenclawActive: result.data.openclawCcOpenclawActive,
23
+ openclawCcOpenclawListeners: result.data.openclawCcOpenclawListeners,
24
+ nativeToolsEnabled: result.data.ccOpenclaw.nativeTools.enabled,
25
+ nativeToolsAllowListSize: result.data.ccOpenclaw.nativeTools.allowList.length,
26
+ },
27
+ };
28
+ }
29
+ return {
30
+ id,
31
+ status: 'fail',
32
+ detail: {
33
+ phase: 'validate-config',
34
+ issues: result.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`),
35
+ remediation: 'fix the listed config issues in ~/.openclaw/openclaw.json or env vars; ' +
36
+ 'see ConfigSchema in src/config/schema.ts for required shapes',
37
+ },
38
+ };
39
+ }
40
+ catch (err) {
41
+ return {
42
+ id,
43
+ status: 'fail',
44
+ detail: {
45
+ phase: 'validate-config',
46
+ error: err instanceof Error ? err.message : String(err),
47
+ },
48
+ };
49
+ }
50
+ }
51
+ //# sourceMappingURL=config-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../../src/cli/checks/config-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,EAAE,GAAG,qBAAqB,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO;gBACL,EAAE;gBACF,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE;oBACN,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB;oBAC9D,2BAA2B,EAAE,MAAM,CAAC,IAAI,CAAC,2BAA2B;oBACpE,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO;oBAC9D,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM;iBAC9E;aACF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,EAAE;YACF,MAAM,EAAE,MAAM;YACd,MAAM,EAAE;gBACN,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3E,WAAW,EACT,yEAAyE;oBACzE,8DAA8D;aACjE;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE;YACF,MAAM,EAAE,MAAM;YACd,MAAM,EAAE;gBACN,KAAK,EAAE,iBAAiB;gBACxB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * `check_critical_openclaw_json_keys` — OF5 drift-detection check.
3
+ *
4
+ * Validates the 4 load-bearing operational keys that `openclaw doctor --fix`
5
+ * has historically pruned. Each prune has caused a P1 incident:
6
+ *
7
+ * - models.providers["cc-openclaw"].timeoutSeconds ≥ 900
8
+ * (feedback_cc_openclaw_provider_timeout.md)
9
+ * - messages.tts.timeoutMs = 120000 (Chatterbox CPU ceiling)
10
+ * (feedback_openclaw_tts_timeout_chatterbox.md)
11
+ * - agents.defaults.model.fallbacks ends with "openai-codex/gpt-5.4"
12
+ * (feedback_cc_openclaw_cross_engine_fallback.md)
13
+ * - plugins.allow includes "cc-openclaw"
14
+ * (feedback_openclaw_plugins_allow_trumps.md)
15
+ *
16
+ * Extracted from `doctor.ts` 2026-05-13 to keep that file under the
17
+ * 500-LOC ceiling. Read directly via raw JSON.parse — bypasses openclaw's
18
+ * loadConfig schema validation (Phase E#3 finding 4).
19
+ */
20
+ import type { CheckResult } from './patch-scaffold.js';
21
+ export declare function checkCriticalOpenclawJsonKeys(): CheckResult;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * `check_critical_openclaw_json_keys` — OF5 drift-detection check.
3
+ *
4
+ * Validates the 4 load-bearing operational keys that `openclaw doctor --fix`
5
+ * has historically pruned. Each prune has caused a P1 incident:
6
+ *
7
+ * - models.providers["cc-openclaw"].timeoutSeconds ≥ 900
8
+ * (feedback_cc_openclaw_provider_timeout.md)
9
+ * - messages.tts.timeoutMs = 120000 (Chatterbox CPU ceiling)
10
+ * (feedback_openclaw_tts_timeout_chatterbox.md)
11
+ * - agents.defaults.model.fallbacks ends with "openai-codex/gpt-5.4"
12
+ * (feedback_cc_openclaw_cross_engine_fallback.md)
13
+ * - plugins.allow includes "cc-openclaw"
14
+ * (feedback_openclaw_plugins_allow_trumps.md)
15
+ *
16
+ * Extracted from `doctor.ts` 2026-05-13 to keep that file under the
17
+ * 500-LOC ceiling. Read directly via raw JSON.parse — bypasses openclaw's
18
+ * loadConfig schema validation (Phase E#3 finding 4).
19
+ */
20
+ import { existsSync, readFileSync } from 'fs';
21
+ import { homedir } from 'os';
22
+ import { join } from 'path';
23
+ export function checkCriticalOpenclawJsonKeys() {
24
+ const id = 'check_critical_openclaw_json_keys';
25
+ const path = join(homedir(), '.openclaw', 'openclaw.json');
26
+ if (!existsSync(path)) {
27
+ return {
28
+ id,
29
+ status: 'fail',
30
+ detail: { path, error: 'openclaw.json not found' },
31
+ };
32
+ }
33
+ let json;
34
+ try {
35
+ json = JSON.parse(readFileSync(path, 'utf8'));
36
+ }
37
+ catch (err) {
38
+ return {
39
+ id,
40
+ status: 'fail',
41
+ detail: { path, error: err instanceof Error ? err.message : String(err) },
42
+ };
43
+ }
44
+ if (typeof json !== 'object' || json === null) {
45
+ return { id, status: 'fail', detail: { path, error: 'top-level is not an object' } };
46
+ }
47
+ const root = json;
48
+ const issues = [];
49
+ // Key 1: timeoutSeconds
50
+ const models = root['models'];
51
+ const providers = models?.['providers'];
52
+ const ccProvider = providers?.['cc-openclaw'];
53
+ const timeoutSeconds = ccProvider?.['timeoutSeconds'];
54
+ if (typeof timeoutSeconds !== 'number' || timeoutSeconds < 900) {
55
+ issues.push(`models.providers["cc-openclaw"].timeoutSeconds must be ≥ 900 (got ${String(timeoutSeconds)})`);
56
+ }
57
+ // Key 2: messages.tts.timeoutMs
58
+ const messages = root['messages'];
59
+ const tts = messages?.['tts'];
60
+ const timeoutMs = tts?.['timeoutMs'];
61
+ if (typeof timeoutMs !== 'number' || timeoutMs < 120_000) {
62
+ issues.push(`messages.tts.timeoutMs must be ≥ 120000 (got ${String(timeoutMs)}); ` +
63
+ 'Chatterbox CPU synthesis needs the full 120s schema cap');
64
+ }
65
+ // Key 3: fallback chain ends with gpt-5.4
66
+ const agents = root['agents'];
67
+ const defaults = agents?.['defaults'];
68
+ const model = defaults?.['model'];
69
+ const fallbacks = model?.['fallbacks'];
70
+ const lastFallback = Array.isArray(fallbacks) ? fallbacks[fallbacks.length - 1] : undefined;
71
+ if (lastFallback !== 'openai-codex/gpt-5.4') {
72
+ issues.push(`agents.defaults.model.fallbacks must end with "openai-codex/gpt-5.4" ` +
73
+ `(got "${String(lastFallback)}"); cross-engine escape required when same-pipeline cc-openclaw fails`);
74
+ }
75
+ // Key 4: plugins.allow contains cc-openclaw
76
+ const plugins = root['plugins'];
77
+ const allow = plugins?.['allow'];
78
+ const allowList = Array.isArray(allow) ? allow : [];
79
+ if (!allowList.includes('cc-openclaw')) {
80
+ issues.push('plugins.allow must include "cc-openclaw" (otherwise enabledByDefault is overridden)');
81
+ }
82
+ if (issues.length === 0) {
83
+ return {
84
+ id,
85
+ status: 'pass',
86
+ detail: {
87
+ path,
88
+ timeoutSeconds,
89
+ timeoutMs,
90
+ fallbackChainEndsAtGpt54: true,
91
+ ccOpenclawInPluginsAllow: true,
92
+ },
93
+ };
94
+ }
95
+ return {
96
+ id,
97
+ status: 'fail',
98
+ detail: {
99
+ path,
100
+ issues,
101
+ remediation: 'these keys have a history of being pruned by `openclaw doctor --fix`; ' +
102
+ 're-apply them via direct openclaw.json edit',
103
+ },
104
+ };
105
+ }
106
+ //# sourceMappingURL=critical-openclaw-json-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"critical-openclaw-json-keys.js","sourceRoot":"","sources":["../../../../src/cli/checks/critical-openclaw-json-keys.ts"],"names":[],"mappings":"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"}