@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
@@ -27,44 +27,8 @@ import { getTtsAutoMode } from '../lib/config.js';
27
27
  // "Let me send the voice note now" followed by no markers and no voice —
28
28
  // the model was looking for a tool to call OR treating the rule as a
29
29
  // suggestion. v0.10.3 explicitly forbids alternatives and gives an example.
30
- const TTS_RULE = [
31
- '=== VOICE DELIVERY RULE (cc-openclaw, takes precedence) ===',
32
- '',
33
- 'TTS is enabled. The ONLY mechanism that delivers a voice message to the',
34
- 'user is wrapping the spoken text in literal `[[tts:text]]...[[/tts:text]]`',
35
- 'markers inside your reply. There is NO `send_voice`, NO `message.voice`,',
36
- 'NO `speak`, NO `sendVoice`, NO `tts` tool available to you in this',
37
- 'environment — if any such tool appears in `<available_tools>` upstream,',
38
- 'IT WILL NOT WORK. Do NOT call it. Do NOT emit `<tool_calls>` XML for',
39
- 'voice delivery. The `[[tts:text]]` marker is the SOLE path.',
40
- '',
41
- 'WHEN to use it: the user explicitly asks for a voice note / voice',
42
- 'message / asks you to "speak", "say it aloud", "send voice", or similar.',
43
- 'Otherwise: reply text only, do NOT include the markers.',
44
- '',
45
- 'HOW to use it: produce your reply with the spoken summary inside a',
46
- '`[[tts:text]]...[[/tts:text]]` block (≤150 chars (CPU TTS is slow — keep it short) in the block). The',
47
- 'block becomes the voice message; anything outside stays text. You may',
48
- 'still include a closing `★ Insight ─` block as text — that rule still',
49
- 'applies, but the `[[tts:text]]` block MUST come first when voice is',
50
- 'requested. Do NOT narrate "Let me send the voice note" — just emit the',
51
- 'block. Do NOT claim "voice sent" unless the markers are literally in',
52
- 'your reply text.',
53
- '',
54
- 'EXAMPLE (user asked "send me a voice note about chatterbox status"):',
55
- ' [[tts:text]]Chatterbox is online at port 8003, CPU-only, healthy.',
56
- ' Returns mono 24kHz WAV. Multilingual model loaded.[[/tts:text]]',
57
- '',
58
- ' Full status: model=chatterbox-multilingual, device=cpu,',
59
- ' sample_rate=24000, uptime 92m on PM2.',
60
- '',
61
- ' ★ Insight ─────────────────────────────────────',
62
- ' CPU-only inference trades GPU speed for VRAM isolation — fine for',
63
- ' hook announcements, slow for live agent turns.',
64
- ' ─────────────────────────────────────────────────',
65
- '',
66
- '=== END VOICE DELIVERY RULE ===',
67
- ].join('\n');
30
+ // `TTS_RULE` extracted to `./tts-rule.ts` 2026-05-13 — pure-string constant.
31
+ import { TTS_RULE } from './tts-rule.js';
68
32
  import { extractUserMessage, } from './message-extractor.js';
69
33
  import { handleNonStreaming } from './non-streaming-handler.js';
70
34
  import { handleStreaming } from './streaming-handler.js';
@@ -84,36 +48,72 @@ export { handleStreaming } from './streaming-handler.js';
84
48
  import { emit as emitTrajectory } from '../lib/trajectory.js';
85
49
  import { logReqShape } from '../lib/req-shape-log.js';
86
50
  import { formatError, ERROR_CODES } from '../lib/error-formatter.js';
87
- function parseRouteBody(body) {
88
- if (!body.messages || !Array.isArray(body.messages) || body.messages.length === 0) {
89
- return {
90
- ok: false,
91
- status: 400,
92
- error: 'messages is required and must be a non-empty array',
93
- };
94
- }
95
- if (body.max_tokens !== undefined &&
96
- (typeof body.max_tokens !== 'number' || body.max_tokens <= 0)) {
97
- return {
98
- ok: false,
99
- status: 400,
100
- error: 'max_tokens must be a positive number',
101
- };
102
- }
103
- return {
104
- ok: true,
105
- request: {
106
- messages: body.messages,
107
- model: body.model,
108
- stream: body.stream,
109
- temperature: body.temperature,
110
- max_tokens: body.max_tokens,
111
- max_completion_tokens: body.max_completion_tokens,
112
- user: body.user,
113
- tools: body.tools,
114
- },
115
- };
116
- }
51
+ // ─── Session Key Resolution ──────────────────────────────────────────────────
52
+ /**
53
+ * Derive a session key from the request.
54
+ * Priority: X-Session-Id header > user field > sha1(model + systemPrompt) > "default"
55
+ *
56
+ * The system-prompt-hash fallback prevents the bug where every caller without
57
+ * X-Session-Id or `user` collapses onto a single shared "openai-default"
58
+ * plugin session. In multi-caller setups (OpenClaw routing the main agent,
59
+ * cron jobs, and subagents through the same gateway) that previously meant
60
+ * every request serialized against every other and frequently picked up the
61
+ * wrong session's appendSystemPrompt — also a privacy leak across callers.
62
+ *
63
+ * The model is mixed into the hash so that two callers with the same system
64
+ * prompt but different requested models don't collide and silently get
65
+ * responses from the wrong model. Originally diagnosed in PR #40 by
66
+ * @megayounus786.
67
+ */
68
+ /**
69
+ * When set (to '1', 'true', 'yes'), the proxy preserves the pre-fix behavior:
70
+ * - tools injected into every user message
71
+ * - session key NOT fingerprinted by tools (same session across tool changes)
72
+ * Default (unset) is the new behavior: tools embedded in session system prompt
73
+ * at create time + session key fingerprinted by tools. The new behavior
74
+ * eliminates periodic latency spikes but does not support mutating the tool
75
+ * list within a single session (a new session is created when tools change).
76
+ */
77
+ // isToolsPerMessageModeEnabled + isToolStreamMode moved to mode-flags.ts
78
+ // (Cluster B beachhead). Re-exported at the top of this file for backward
79
+ // compat — internal call sites in this file use the imported versions.
80
+ // noToolsSystemPrompt + buildSessionSystemPrompt + buildToolPromptBlock
81
+ // moved to prompts.ts (Cluster B). Re-exported at the top of this file
82
+ // for backward compat; internal callers use the imported versions.
83
+ //
84
+ // resolveSessionKey + sessionNameFromKey live in session-key-resolver.ts
85
+ // (also Cluster B). Same pattern.
86
+ // ─── Function Calling Support ────────────────────────────────────────────────
87
+ // ParsedToolCalls + parseToolCallsFromText moved to tool-calls-parser.ts
88
+ // (Cluster B Module B). Re-exported at the top of this file for backward
89
+ // compat — internal callers use the imported version.
90
+ // serializeToolResults + serializeToolResultsAsBlocks + AnthropicToolResultBlock
91
+ // moved to tool-results-serializer.ts (Cluster B Module C). Re-exported at the
92
+ // top of this file for backward compat — internal callers (extractUserMessage)
93
+ // use the imported versions.
94
+ // UserMessageBlock + ExtractedMessage + extractUserMessage moved to
95
+ // message-extractor.ts (Cluster B Module D). Re-exported at the top of
96
+ // this file for backward compat — internal callers (handleChatCompletion
97
+ // + response-formatting helpers) use the imported versions / types.
98
+ // formatCompletionResponse + formatCompletionChunk moved to
99
+ // response-formatter.ts (Cluster B Module E — the final extraction).
100
+ // Re-exported at the top of this file for backward compat; internal
101
+ // callers (handleChatCompletion + helpers) use the imported versions.
102
+ // ─── Typed request parser (Cluster A step 4) ─────────────────────────────────
103
+ //
104
+ // Establishes the typed seam at the http body → handleChatCompletion boundary.
105
+ // Replaces the inline `as OpenAIChatMessage[]` cast block that previously
106
+ // lived inside handleChatCompletion. Returns a discriminated union — `ok:true`
107
+ // produces a fully-typed `OpenAIChatCompletionRequest` (aliased as `RouteBody`
108
+ // in `src/types/route.ts`); `ok:false` carries the http status + error
109
+ // message that the caller writes back to the client.
110
+ //
111
+ // Behavior preserved verbatim from the previous inline implementation
112
+ // (handleChatCompletion lines 666-696 pre-Cluster-A): same two checks,
113
+ // same error messages, same status codes, same field-by-field cast.
114
+ // `parseRouteBody` extracted to `./parse-route-body.ts` 2026-05-13 — pure
115
+ // validation function. Type-only cross-import; no runtime cycle.
116
+ import { parseRouteBody } from './parse-route-body.js';
117
117
  export async function handleChatCompletion(manager, body, headers, res) {
118
118
  // Cluster A step 4: typed boundary parser. Replaces the inline cast +
119
119
  // validation block that previously lived here (~30 lines). Returns a
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../../../src/openai-compat/openai-compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../../../src/openai-compat/openai-compat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Canonical OpenAI request/response type definitions.
3
+ *
4
+ * Extracted from `openai-compat.ts` 2026-05-13 to push that file under the
5
+ * 500-LOC ceiling and to give 4 downstream importers
6
+ * (`tool-results-serializer`, `session-key-resolver`, `message-extractor`,
7
+ * `tool-calls-parser`) a single canonical source instead of importing back
8
+ * through the godmodule.
9
+ */
10
+ export interface OpenAIChatMessage {
11
+ role: 'system' | 'user' | 'assistant' | 'tool';
12
+ content: string | Array<{
13
+ type?: string;
14
+ text?: string;
15
+ }> | null;
16
+ tool_calls?: Array<{
17
+ id: string;
18
+ type: 'function';
19
+ function: {
20
+ name: string;
21
+ arguments: string;
22
+ };
23
+ }>;
24
+ tool_call_id?: string;
25
+ }
26
+ export interface OpenAIChatCompletionRequest {
27
+ model?: string;
28
+ messages: OpenAIChatMessage[];
29
+ stream?: boolean;
30
+ temperature?: number;
31
+ max_tokens?: number;
32
+ max_completion_tokens?: number;
33
+ user?: string;
34
+ tools?: Array<{
35
+ type: 'function';
36
+ function: {
37
+ name: string;
38
+ description: string;
39
+ parameters: unknown;
40
+ };
41
+ }>;
42
+ }
43
+ export interface OpenAIToolCall {
44
+ id: string;
45
+ type: 'function';
46
+ function: {
47
+ name: string;
48
+ arguments: string;
49
+ };
50
+ }
51
+ export interface OpenAIChatCompletionResponse {
52
+ id: string;
53
+ object: 'chat.completion';
54
+ created: number;
55
+ model: string;
56
+ choices: Array<{
57
+ index: number;
58
+ message: {
59
+ role: 'assistant';
60
+ content: string | null;
61
+ tool_calls?: OpenAIToolCall[];
62
+ reasoning?: string;
63
+ };
64
+ finish_reason: 'stop' | 'length' | 'tool_calls';
65
+ }>;
66
+ usage?: {
67
+ prompt_tokens: number;
68
+ completion_tokens: number;
69
+ total_tokens: number;
70
+ };
71
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Canonical OpenAI request/response type definitions.
3
+ *
4
+ * Extracted from `openai-compat.ts` 2026-05-13 to push that file under the
5
+ * 500-LOC ceiling and to give 4 downstream importers
6
+ * (`tool-results-serializer`, `session-key-resolver`, `message-extractor`,
7
+ * `tool-calls-parser`) a single canonical source instead of importing back
8
+ * through the godmodule.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=openai-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-types.js","sourceRoot":"","sources":["../../../src/openai-compat/openai-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `parseRouteBody` — typed boundary parser for openai-compat HTTP route.
3
+ *
4
+ * Replaces inline `as OpenAIChatMessage[]` casts with a discriminated-union
5
+ * returning either a fully-typed `OpenAIChatCompletionRequest` or an
6
+ * error-coded response. The type system enforces "validate before use."
7
+ *
8
+ * Extracted from `openai-compat.ts` 2026-05-13. Pure validation function —
9
+ * no I/O, no module state. Behavior preserved bit-for-bit per the existing
10
+ * `tests/openai-compat.test.ts` round-trip cases.
11
+ *
12
+ * Type imports cross-reference back to openai-compat.ts; TypeScript handles
13
+ * type-only circular imports cleanly without runtime cycle.
14
+ */
15
+ import type { OpenAIChatCompletionRequest } from './openai-compat.js';
16
+ export type ParseRequestResult = {
17
+ readonly ok: true;
18
+ readonly request: OpenAIChatCompletionRequest;
19
+ } | {
20
+ readonly ok: false;
21
+ readonly status: number;
22
+ readonly error: string;
23
+ };
24
+ export declare function parseRouteBody(body: Record<string, unknown>): ParseRequestResult;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * `parseRouteBody` — typed boundary parser for openai-compat HTTP route.
3
+ *
4
+ * Replaces inline `as OpenAIChatMessage[]` casts with a discriminated-union
5
+ * returning either a fully-typed `OpenAIChatCompletionRequest` or an
6
+ * error-coded response. The type system enforces "validate before use."
7
+ *
8
+ * Extracted from `openai-compat.ts` 2026-05-13. Pure validation function —
9
+ * no I/O, no module state. Behavior preserved bit-for-bit per the existing
10
+ * `tests/openai-compat.test.ts` round-trip cases.
11
+ *
12
+ * Type imports cross-reference back to openai-compat.ts; TypeScript handles
13
+ * type-only circular imports cleanly without runtime cycle.
14
+ */
15
+ export function parseRouteBody(body) {
16
+ if (!body.messages || !Array.isArray(body.messages) || body.messages.length === 0) {
17
+ return {
18
+ ok: false,
19
+ status: 400,
20
+ error: 'messages is required and must be a non-empty array',
21
+ };
22
+ }
23
+ if (body.max_tokens !== undefined &&
24
+ (typeof body.max_tokens !== 'number' || body.max_tokens <= 0)) {
25
+ return {
26
+ ok: false,
27
+ status: 400,
28
+ error: 'max_tokens must be a positive number',
29
+ };
30
+ }
31
+ return {
32
+ ok: true,
33
+ request: {
34
+ messages: body.messages,
35
+ model: body.model,
36
+ stream: body.stream,
37
+ temperature: body.temperature,
38
+ max_tokens: body.max_tokens,
39
+ max_completion_tokens: body.max_completion_tokens,
40
+ user: body.user,
41
+ tools: body.tools,
42
+ },
43
+ };
44
+ }
45
+ //# sourceMappingURL=parse-route-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-route-body.js","sourceRoot":"","sources":["../../../src/openai-compat/parse-route-body.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,MAAM,UAAU,cAAc,CAAC,IAA6B;IAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClF,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,oDAAoD;SAC5D,CAAC;IACJ,CAAC;IAED,IACE,IAAI,CAAC,UAAU,KAAK,SAAS;QAC7B,CAAC,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAK,IAAI,CAAC,UAAqB,IAAI,CAAC,CAAC,EACzE,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,sCAAsC;SAC9C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACP,QAAQ,EAAE,IAAI,CAAC,QAA+B;YAC9C,KAAK,EAAE,IAAI,CAAC,KAA2B;YACvC,MAAM,EAAE,IAAI,CAAC,MAA6B;YAC1C,WAAW,EAAE,IAAI,CAAC,WAAiC;YACnD,UAAU,EAAE,IAAI,CAAC,UAAgC;YACjD,qBAAqB,EAAE,IAAI,CAAC,qBAA2C;YACvE,IAAI,EAAE,IAAI,CAAC,IAA0B;YACrC,KAAK,EAAE,IAAI,CAAC,KAAyD;SACtE;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * TTS_RULE — voice-delivery rule prepended to `--append-system-prompt` when
3
+ * `messages.tts.auto !== 'off'`. Defense-in-depth: ensures Savvy knows the
4
+ * `[[tts:text]]` marker syntax even if CLAUDE.md gets autobackup-reverted
5
+ * AND if OpenClaw upstream doesn't inject `buildTtsSystemPromptHint` into
6
+ * the outbound openai-compat HTTP body.
7
+ *
8
+ * History:
9
+ * - v0.10.2: rule auto-prepended when tts.auto !== 'off'.
10
+ * - v0.10.3: REWRITTEN as imperative + with override authority + few-shot.
11
+ * Previous wording ("wrap the spoken portion...") was interpreted by
12
+ * Savvy as optional. 2026-05-11 evening test showed Savvy ending with
13
+ * "Let me send the voice note now" followed by no markers and no voice
14
+ * — model was looking for a tool to call OR treating the rule as a
15
+ * suggestion. v0.10.3 explicitly forbids alternatives and gives an example.
16
+ *
17
+ * Extracted from `openai-compat.ts` 2026-05-13 — pure-string constant, no
18
+ * I/O, no module state. Safe single-source for the canonical rule text.
19
+ */
20
+ export declare const TTS_RULE: string;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * TTS_RULE — voice-delivery rule prepended to `--append-system-prompt` when
3
+ * `messages.tts.auto !== 'off'`. Defense-in-depth: ensures Savvy knows the
4
+ * `[[tts:text]]` marker syntax even if CLAUDE.md gets autobackup-reverted
5
+ * AND if OpenClaw upstream doesn't inject `buildTtsSystemPromptHint` into
6
+ * the outbound openai-compat HTTP body.
7
+ *
8
+ * History:
9
+ * - v0.10.2: rule auto-prepended when tts.auto !== 'off'.
10
+ * - v0.10.3: REWRITTEN as imperative + with override authority + few-shot.
11
+ * Previous wording ("wrap the spoken portion...") was interpreted by
12
+ * Savvy as optional. 2026-05-11 evening test showed Savvy ending with
13
+ * "Let me send the voice note now" followed by no markers and no voice
14
+ * — model was looking for a tool to call OR treating the rule as a
15
+ * suggestion. v0.10.3 explicitly forbids alternatives and gives an example.
16
+ *
17
+ * Extracted from `openai-compat.ts` 2026-05-13 — pure-string constant, no
18
+ * I/O, no module state. Safe single-source for the canonical rule text.
19
+ */
20
+ export const TTS_RULE = [
21
+ '=== VOICE DELIVERY RULE (cc-openclaw, takes precedence) ===',
22
+ '',
23
+ 'TTS is enabled. The ONLY mechanism that delivers a voice message to the',
24
+ 'user is wrapping the spoken text in literal `[[tts:text]]...[[/tts:text]]`',
25
+ 'markers inside your reply. There is NO `send_voice`, NO `message.voice`,',
26
+ 'NO `speak`, NO `sendVoice`, NO `tts` tool available to you in this',
27
+ 'environment — if any such tool appears in `<available_tools>` upstream,',
28
+ 'IT WILL NOT WORK. Do NOT call it. Do NOT emit `<tool_calls>` XML for',
29
+ 'voice delivery. The `[[tts:text]]` marker is the SOLE path.',
30
+ '',
31
+ 'WHEN to use it: the user explicitly asks for a voice note / voice',
32
+ 'message / asks you to "speak", "say it aloud", "send voice", or similar.',
33
+ 'Otherwise: reply text only, do NOT include the markers.',
34
+ '',
35
+ 'HOW to use it: produce your reply with the spoken summary inside a',
36
+ '`[[tts:text]]...[[/tts:text]]` block (≤150 chars (CPU TTS is slow — keep it short) in the block). The',
37
+ 'block becomes the voice message; anything outside stays text. You may',
38
+ 'still include a closing `★ Insight ─` block as text — that rule still',
39
+ 'applies, but the `[[tts:text]]` block MUST come first when voice is',
40
+ 'requested. Do NOT narrate "Let me send the voice note" — just emit the',
41
+ 'block. Do NOT claim "voice sent" unless the markers are literally in',
42
+ 'your reply text.',
43
+ '',
44
+ 'EXAMPLE (user asked "send me a voice note about chatterbox status"):',
45
+ ' [[tts:text]]Chatterbox is online at port 8003, CPU-only, healthy.',
46
+ ' Returns mono 24kHz WAV. Multilingual model loaded.[[/tts:text]]',
47
+ '',
48
+ ' Full status: model=chatterbox-multilingual, device=cpu,',
49
+ ' sample_rate=24000, uptime 92m on PM2.',
50
+ '',
51
+ ' ★ Insight ─────────────────────────────────────',
52
+ ' CPU-only inference trades GPU speed for VRAM isolation — fine for',
53
+ ' hook announcements, slow for live agent turns.',
54
+ ' ─────────────────────────────────────────────────',
55
+ '',
56
+ '=== END VOICE DELIVERY RULE ===',
57
+ ].join('\n');
58
+ //# sourceMappingURL=tts-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tts-rule.js","sourceRoot":"","sources":["../../../src/openai-compat/tts-rule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,6DAA6D;IAC7D,EAAE;IACF,yEAAyE;IACzE,4EAA4E;IAC5E,0EAA0E;IAC1E,oEAAoE;IACpE,yEAAyE;IACzE,sEAAsE;IACtE,6DAA6D;IAC7D,EAAE;IACF,mEAAmE;IACnE,0EAA0E;IAC1E,yDAAyD;IACzD,EAAE;IACF,oEAAoE;IACpE,uGAAuG;IACvG,uEAAuE;IACvE,uEAAuE;IACvE,qEAAqE;IACrE,wEAAwE;IACxE,sEAAsE;IACtE,kBAAkB;IAClB,EAAE;IACF,sEAAsE;IACtE,qEAAqE;IACrE,mEAAmE;IACnE,EAAE;IACF,2DAA2D;IAC3D,yCAAyC;IACzC,EAAE;IACF,mDAAmD;IACnD,qEAAqE;IACrE,kDAAkD;IAClD,qDAAqD;IACrD,EAAE;IACF,iCAAiC;CAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -44,7 +44,6 @@ export function _logVoiceDebug(label, fields) {
44
44
  return;
45
45
  try {
46
46
  const payload = { _voice_debug: label, ...fields, ts: new Date().toISOString() };
47
- // eslint-disable-next-line no-console
48
47
  console.error(JSON.stringify(payload));
49
48
  }
50
49
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"voice-recovery.js","sourceRoot":"","sources":["../../../src/openai-compat/voice-recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"voice-recovery.js","sourceRoot":"","sources":["../../../src/openai-compat/voice-recovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * PatchSpec: cache-parity-registry
3
+ *
4
+ * Second Phase E#3 PatchSpec, demonstrating that the pattern composes —
5
+ * multiple specs can register in one PatchManifest and validate
6
+ * independently. Drift-detection only at this stage; real install/uninstall
7
+ * extracted from `src/lib/cache-parity.ts` lands in Phase E#3 proper.
8
+ *
9
+ * Drift contract: verifies `src/lib/cache-parity.ts` exports its canonical
10
+ * registry path constant and at least one accessor function. If a future
11
+ * refactor accidentally removes the registry writer, this probe surfaces
12
+ * a DriftError at boot phase 3, preventing silent cache-parity regressions
13
+ * of the v0.6.0 namespace-bug class.
14
+ */
15
+ import type { PatchSpec } from '../lifecycle/patch-manifest.js';
16
+ interface CacheParityTarget {
17
+ readonly module: Record<string, unknown>;
18
+ }
19
+ export declare const cacheParityRegistrySpec: PatchSpec<CacheParityTarget>;
20
+ export {};
@@ -0,0 +1,64 @@
1
+ /**
2
+ * PatchSpec: cache-parity-registry
3
+ *
4
+ * Second Phase E#3 PatchSpec, demonstrating that the pattern composes —
5
+ * multiple specs can register in one PatchManifest and validate
6
+ * independently. Drift-detection only at this stage; real install/uninstall
7
+ * extracted from `src/lib/cache-parity.ts` lands in Phase E#3 proper.
8
+ *
9
+ * Drift contract: verifies `src/lib/cache-parity.ts` exports its canonical
10
+ * registry path constant and at least one accessor function. If a future
11
+ * refactor accidentally removes the registry writer, this probe surfaces
12
+ * a DriftError at boot phase 3, preventing silent cache-parity regressions
13
+ * of the v0.6.0 namespace-bug class.
14
+ */
15
+ export const cacheParityRegistrySpec = {
16
+ id: 'cache-parity-registry',
17
+ targetModule: 'src/lib/cache-parity.ts',
18
+ targetSymbol: 'cacheParityRegistry path + writer',
19
+ async resolve() {
20
+ // Importing our own canonical module — proves the cache-parity surface
21
+ // stays present across refactors. Phase E#3 narrows this to a specific
22
+ // export check (registry-path constant + write/read helpers).
23
+ const mod = (await import('../lib/cache-parity.js'));
24
+ if (typeof mod !== 'object' || mod === null) {
25
+ throw new Error('cache-parity module did not export an object');
26
+ }
27
+ return { module: mod };
28
+ },
29
+ expectedShape(target) {
30
+ // Narrowed probe (Phase E#3 finding 2026-05-13): verify the 5
31
+ // load-bearing exports from `src/lib/cache-parity.ts`. If any future
32
+ // refactor accidentally removes one, this probe fails at boot phase 3
33
+ // and DriftError surfaces in the doctor report.
34
+ const mod = target.module;
35
+ return (typeof mod.REGISTRY_PATH === 'string' &&
36
+ typeof mod.isCacheParityEnabled === 'function' &&
37
+ typeof mod.hashPrompt === 'function' &&
38
+ typeof mod.recordAttachment === 'function' &&
39
+ typeof mod.readRegistry === 'function');
40
+ },
41
+ async expectedBehavior(target) {
42
+ // Phase E#3 narrowing (2026-05-13): exercise hashPrompt() to verify it
43
+ // returns a deterministic non-empty string for a known input. Catches
44
+ // regressions in the hash implementation that would silently invalidate
45
+ // the v0.6.0 namespace fix (cache keys must round-trip identically).
46
+ const mod = target.module;
47
+ if (typeof mod.hashPrompt !== 'function')
48
+ return false;
49
+ const hash = mod.hashPrompt('cc-openclaw-probe');
50
+ if (typeof hash !== 'string' || hash.length === 0)
51
+ return false;
52
+ // Determinism — same input must produce same output.
53
+ const hash2 = mod.hashPrompt('cc-openclaw-probe');
54
+ return hash === hash2;
55
+ },
56
+ install(_target) {
57
+ // Drift-detection-only mode: no install. Phase E#3 wires the
58
+ // appendSystemPrompt + disk-registry pair from cwd-patch.ts.
59
+ },
60
+ uninstall(_target) {
61
+ // Drift-detection-only mode: no uninstall.
62
+ },
63
+ };
64
+ //# sourceMappingURL=cache-parity-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-parity-registry.js","sourceRoot":"","sources":["../../../src/patches/cache-parity-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAQH,MAAM,CAAC,MAAM,uBAAuB,GAAiC;IACnE,EAAE,EAAE,uBAAuB;IAC3B,YAAY,EAAE,yBAAyB;IACvC,YAAY,EAAE,mCAAmC;IAEjD,KAAK,CAAC,OAAO;QACX,uEAAuE;QACvE,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAY,CAAC;QAChE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAA8B,EAAE,CAAC;IACpD,CAAC;IAED,aAAa,CAAC,MAAyB;QACrC,8DAA8D;QAC9D,qEAAqE;QACrE,sEAAsE;QACtE,gDAAgD;QAChD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1B,OAAO,CACL,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ;YACrC,OAAO,GAAG,CAAC,oBAAoB,KAAK,UAAU;YAC9C,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU;YACpC,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU;YAC1C,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,CACvC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAyB;QAC9C,uEAAuE;QACvE,sEAAsE;QACtE,wEAAwE;QACxE,qEAAqE;QACrE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1B,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QACvD,MAAM,IAAI,GAAI,GAAG,CAAC,UAAoC,CAAC,mBAAmB,CAAC,CAAC;QAC5E,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAChE,qDAAqD;QACrD,MAAM,KAAK,GAAI,GAAG,CAAC,UAAoC,CAAC,mBAAmB,CAAC,CAAC;QAC7E,OAAO,IAAI,KAAK,KAAK,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,OAA0B;QAChC,6DAA6D;QAC7D,6DAA6D;IAC/D,CAAC;IAED,SAAS,CAAC,OAA0B;QAClC,2CAA2C;IAC7C,CAAC;CACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * PatchSpec: claude-md-injection — Phase E#3 scaffold.
3
+ *
4
+ * Target: CLAUDE.md inline sysprompt prepend (cwd-patch.ts:~489 area).
5
+ * Pairs with sysprompt-strip but on the inject side. Drift-detection only today.
6
+ */
7
+ import type { PatchSpec } from '../lifecycle/patch-manifest.js';
8
+ type ClaudeMdInjectionTarget = Record<string, unknown>;
9
+ export declare const claudeMdInjectionSpec: PatchSpec<ClaudeMdInjectionTarget>;
10
+ export {};