@hybridaione/hybridclaw 0.13.1 → 0.15.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 (740) hide show
  1. package/CHANGELOG.md +170 -0
  2. package/README.md +52 -13
  3. package/SECURITY.md +33 -0
  4. package/config.example.json +43 -3
  5. package/console/dist/assets/chat-CwaxVsg1.js +93 -0
  6. package/console/dist/assets/chat-DN6j8zuG.css +1 -0
  7. package/console/dist/assets/cx-BhUTAaHw.js +1 -0
  8. package/console/dist/assets/index-BmK2dcpa.css +1 -0
  9. package/console/dist/assets/index-De9e9-ta.js +16 -0
  10. package/console/dist/assets/{router-CUFYqD1a.js → router-NXexqZsi.js} +1 -1
  11. package/console/dist/assets/{terminal-D03p0Tw7.js → terminal-DFbKWIqg.js} +1 -1
  12. package/console/dist/assets/{vendor-C4WPVvdh.js → vendor-BCIzCfhA.js} +1 -1
  13. package/console/dist/icons/codex.svg +1 -0
  14. package/console/dist/icons/hybridai.png +0 -0
  15. package/console/dist/index.html +5 -5
  16. package/container/dist/approval-policy.js +161 -85
  17. package/container/dist/approval-policy.js.map +1 -1
  18. package/container/dist/browser-tools.js +96 -5
  19. package/container/dist/browser-tools.js.map +1 -1
  20. package/container/dist/extensions.js +63 -9
  21. package/container/dist/extensions.js.map +1 -1
  22. package/container/dist/index.js +227 -22
  23. package/container/dist/index.js.map +1 -1
  24. package/container/dist/providers/anthropic.js +42 -4
  25. package/container/dist/providers/anthropic.js.map +1 -1
  26. package/container/dist/providers/auxiliary.js +3 -0
  27. package/container/dist/providers/auxiliary.js.map +1 -1
  28. package/container/dist/providers/hybridai.js +61 -5
  29. package/container/dist/providers/hybridai.js.map +1 -1
  30. package/container/dist/providers/local-ollama.js +44 -4
  31. package/container/dist/providers/local-ollama.js.map +1 -1
  32. package/container/dist/providers/local-openai-compat.js +214 -26
  33. package/container/dist/providers/local-openai-compat.js.map +1 -1
  34. package/container/dist/providers/openai-codex.js +41 -7
  35. package/container/dist/providers/openai-codex.js.map +1 -1
  36. package/container/dist/providers/router.js +27 -2
  37. package/container/dist/providers/router.js.map +1 -1
  38. package/container/dist/providers/shared.js +53 -0
  39. package/container/dist/providers/shared.js.map +1 -1
  40. package/container/dist/providers/thinking-extractor.js +25 -3
  41. package/container/dist/providers/thinking-extractor.js.map +1 -1
  42. package/container/dist/providers/tool-call-normalizer.js +66 -6
  43. package/container/dist/providers/tool-call-normalizer.js.map +1 -1
  44. package/container/dist/stakes-classifier.js +316 -0
  45. package/container/dist/stakes-classifier.js.map +1 -0
  46. package/container/dist/stalled-turns.js +5 -0
  47. package/container/dist/stalled-turns.js.map +1 -1
  48. package/container/dist/text-normalization.js +6 -0
  49. package/container/dist/text-normalization.js.map +1 -0
  50. package/container/dist/token-usage.js +53 -0
  51. package/container/dist/token-usage.js.map +1 -1
  52. package/container/dist/tools.js +26 -10
  53. package/container/dist/tools.js.map +1 -1
  54. package/container/dist/types.js +9 -0
  55. package/container/dist/types.js.map +1 -1
  56. package/container/dist/web-fetch.js +127 -15
  57. package/container/dist/web-fetch.js.map +1 -1
  58. package/container/dist/web-search.js +9 -0
  59. package/container/dist/web-search.js.map +1 -1
  60. package/container/package-lock.json +2 -2
  61. package/container/package.json +1 -1
  62. package/container/shared/boolean-utils.d.ts +8 -0
  63. package/container/shared/boolean-utils.js +19 -0
  64. package/container/shared/message-tool-channels.d.ts +1 -0
  65. package/container/shared/message-tool-channels.js +2 -0
  66. package/container/shared/network-policy.d.ts +38 -0
  67. package/container/shared/network-policy.js +121 -0
  68. package/container/shared/policy-engine.d.ts +65 -0
  69. package/container/shared/policy-engine.js +62 -0
  70. package/container/shared/sensitive-env.d.ts +16 -0
  71. package/container/shared/sensitive-env.js +66 -0
  72. package/container/shared/skill-policy.d.ts +57 -0
  73. package/container/shared/skill-policy.js +164 -0
  74. package/container/shared/stakes-classifier.d.ts +36 -0
  75. package/container/shared/stakes-classifier.js +1 -0
  76. package/container/shared/web-search-config.d.ts +22 -0
  77. package/container/shared/web-search-config.js +7 -0
  78. package/container/src/approval-policy.ts +219 -104
  79. package/container/src/browser-tools.ts +114 -5
  80. package/container/src/extensions.ts +74 -9
  81. package/container/src/index.ts +288 -128
  82. package/container/src/providers/anthropic.ts +44 -3
  83. package/container/src/providers/auxiliary.ts +3 -0
  84. package/container/src/providers/hybridai.ts +63 -4
  85. package/container/src/providers/local-ollama.ts +46 -3
  86. package/container/src/providers/local-openai-compat.ts +234 -27
  87. package/container/src/providers/openai-codex.ts +43 -12
  88. package/container/src/providers/router.ts +34 -6
  89. package/container/src/providers/shared.ts +86 -0
  90. package/container/src/providers/thinking-extractor.ts +26 -2
  91. package/container/src/providers/tool-call-normalizer.ts +69 -6
  92. package/container/src/stakes-classifier.ts +469 -0
  93. package/container/src/stalled-turns.ts +12 -0
  94. package/container/src/text-normalization.ts +5 -0
  95. package/container/src/token-usage.ts +74 -0
  96. package/container/src/tools.ts +33 -9
  97. package/container/src/types.ts +52 -20
  98. package/container/src/web-fetch.ts +139 -15
  99. package/container/src/web-search.ts +21 -27
  100. package/dist/a2a/envelope.d.ts +35 -0
  101. package/dist/a2a/envelope.d.ts.map +1 -0
  102. package/dist/a2a/envelope.js +188 -0
  103. package/dist/a2a/envelope.js.map +1 -0
  104. package/dist/a2a/identity.d.ts +5 -0
  105. package/dist/a2a/identity.d.ts.map +1 -0
  106. package/dist/a2a/identity.js +86 -0
  107. package/dist/a2a/identity.js.map +1 -0
  108. package/dist/a2a/store.d.ts +7 -0
  109. package/dist/a2a/store.d.ts.map +1 -0
  110. package/dist/a2a/store.js +128 -0
  111. package/dist/a2a/store.js.map +1 -0
  112. package/dist/a2a/utils.d.ts +2 -0
  113. package/dist/a2a/utils.d.ts.map +1 -0
  114. package/dist/a2a/utils.js +4 -0
  115. package/dist/a2a/utils.js.map +1 -0
  116. package/dist/agent/agent.d.ts.map +1 -1
  117. package/dist/agent/agent.js +37 -28
  118. package/dist/agent/agent.js.map +1 -1
  119. package/dist/agent/executor-types.d.ts +3 -1
  120. package/dist/agent/executor-types.d.ts.map +1 -1
  121. package/dist/agent/prompt-hooks.d.ts +3 -5
  122. package/dist/agent/prompt-hooks.d.ts.map +1 -1
  123. package/dist/agent/prompt-hooks.js +6 -20
  124. package/dist/agent/prompt-hooks.js.map +1 -1
  125. package/dist/agent/prompt-parts.d.ts +8 -0
  126. package/dist/agent/prompt-parts.d.ts.map +1 -0
  127. package/dist/agent/prompt-parts.js +39 -0
  128. package/dist/agent/prompt-parts.js.map +1 -0
  129. package/dist/agents/agent-config-command.d.ts +1 -1
  130. package/dist/agents/agent-config-command.d.ts.map +1 -1
  131. package/dist/agents/agent-config-command.js +53 -0
  132. package/dist/agents/agent-config-command.js.map +1 -1
  133. package/dist/agents/agent-registry.d.ts +5 -0
  134. package/dist/agents/agent-registry.d.ts.map +1 -1
  135. package/dist/agents/agent-registry.js +230 -37
  136. package/dist/agents/agent-registry.js.map +1 -1
  137. package/dist/agents/agent-runtime-config.d.ts.map +1 -1
  138. package/dist/agents/agent-runtime-config.js +9 -1
  139. package/dist/agents/agent-runtime-config.js.map +1 -1
  140. package/dist/agents/agent-types.d.ts +22 -0
  141. package/dist/agents/agent-types.d.ts.map +1 -1
  142. package/dist/agents/agent-types.js +120 -0
  143. package/dist/agents/agent-types.js.map +1 -1
  144. package/dist/agents/team-structure-revisions.d.ts +19 -0
  145. package/dist/agents/team-structure-revisions.d.ts.map +1 -0
  146. package/dist/agents/team-structure-revisions.js +74 -0
  147. package/dist/agents/team-structure-revisions.js.map +1 -0
  148. package/dist/agents/team-structure.d.ts +38 -0
  149. package/dist/agents/team-structure.d.ts.map +1 -0
  150. package/dist/agents/team-structure.js +158 -0
  151. package/dist/agents/team-structure.js.map +1 -0
  152. package/dist/audit/audit-cli.d.ts.map +1 -1
  153. package/dist/audit/audit-cli.js +36 -0
  154. package/dist/audit/audit-cli.js.map +1 -1
  155. package/dist/audit/audit-events.d.ts +1 -0
  156. package/dist/audit/audit-events.d.ts.map +1 -1
  157. package/dist/audit/audit-events.js +69 -9
  158. package/dist/audit/audit-events.js.map +1 -1
  159. package/dist/audit/leak-scanner-cli.d.ts +2 -0
  160. package/dist/audit/leak-scanner-cli.d.ts.map +1 -0
  161. package/dist/audit/leak-scanner-cli.js +342 -0
  162. package/dist/audit/leak-scanner-cli.js.map +1 -0
  163. package/dist/audit/leak-scanner.d.ts +116 -0
  164. package/dist/audit/leak-scanner.d.ts.map +1 -0
  165. package/dist/audit/leak-scanner.js +466 -0
  166. package/dist/audit/leak-scanner.js.map +1 -0
  167. package/dist/audit/observability-ingest.d.ts.map +1 -1
  168. package/dist/audit/observability-ingest.js +2 -9
  169. package/dist/audit/observability-ingest.js.map +1 -1
  170. package/dist/channels/channel-registry.d.ts.map +1 -1
  171. package/dist/channels/channel-registry.js +5 -1
  172. package/dist/channels/channel-registry.js.map +1 -1
  173. package/dist/channels/channel.d.ts +3 -2
  174. package/dist/channels/channel.d.ts.map +1 -1
  175. package/dist/channels/channel.js +10 -0
  176. package/dist/channels/channel.js.map +1 -1
  177. package/dist/channels/message/tool-actions.d.ts.map +1 -1
  178. package/dist/channels/message/tool-actions.js +87 -3
  179. package/dist/channels/message/tool-actions.js.map +1 -1
  180. package/dist/channels/message-tool-advertising.d.ts.map +1 -1
  181. package/dist/channels/message-tool-advertising.js +1 -0
  182. package/dist/channels/message-tool-advertising.js.map +1 -1
  183. package/dist/channels/prompt-adapters.d.ts.map +1 -1
  184. package/dist/channels/prompt-adapters.js +3 -0
  185. package/dist/channels/prompt-adapters.js.map +1 -1
  186. package/dist/channels/signal/api.d.ts +65 -0
  187. package/dist/channels/signal/api.d.ts.map +1 -0
  188. package/dist/channels/signal/api.js +167 -0
  189. package/dist/channels/signal/api.js.map +1 -0
  190. package/dist/channels/signal/delivery.d.ts +18 -0
  191. package/dist/channels/signal/delivery.d.ts.map +1 -0
  192. package/dist/channels/signal/delivery.js +126 -0
  193. package/dist/channels/signal/delivery.js.map +1 -0
  194. package/dist/channels/signal/inbound.d.ts +30 -0
  195. package/dist/channels/signal/inbound.d.ts.map +1 -0
  196. package/dist/channels/signal/inbound.js +162 -0
  197. package/dist/channels/signal/inbound.js.map +1 -0
  198. package/dist/channels/signal/pairing-state.d.ts +18 -0
  199. package/dist/channels/signal/pairing-state.d.ts.map +1 -0
  200. package/dist/channels/signal/pairing-state.js +57 -0
  201. package/dist/channels/signal/pairing-state.js.map +1 -0
  202. package/dist/channels/signal/pairing.d.ts +14 -0
  203. package/dist/channels/signal/pairing.d.ts.map +1 -0
  204. package/dist/channels/signal/pairing.js +135 -0
  205. package/dist/channels/signal/pairing.js.map +1 -0
  206. package/dist/channels/signal/prompt-adapter.d.ts +3 -0
  207. package/dist/channels/signal/prompt-adapter.d.ts.map +1 -0
  208. package/dist/channels/signal/prompt-adapter.js +25 -0
  209. package/dist/channels/signal/prompt-adapter.js.map +1 -0
  210. package/dist/channels/signal/runtime.d.ts +10 -0
  211. package/dist/channels/signal/runtime.d.ts.map +1 -0
  212. package/dist/channels/signal/runtime.js +220 -0
  213. package/dist/channels/signal/runtime.js.map +1 -0
  214. package/dist/channels/signal/target.d.ts +12 -0
  215. package/dist/channels/signal/target.d.ts.map +1 -0
  216. package/dist/channels/signal/target.js +63 -0
  217. package/dist/channels/signal/target.js.map +1 -0
  218. package/dist/channels/signal/typing.d.ts +11 -0
  219. package/dist/channels/signal/typing.d.ts.map +1 -0
  220. package/dist/channels/signal/typing.js +64 -0
  221. package/dist/channels/signal/typing.js.map +1 -0
  222. package/dist/channels/voice/runtime.d.ts.map +1 -1
  223. package/dist/channels/voice/runtime.js +5 -3
  224. package/dist/channels/voice/runtime.js.map +1 -1
  225. package/dist/channels/whatsapp/debounce.d.ts +1 -0
  226. package/dist/channels/whatsapp/debounce.d.ts.map +1 -1
  227. package/dist/channels/whatsapp/debounce.js +7 -0
  228. package/dist/channels/whatsapp/debounce.js.map +1 -1
  229. package/dist/channels/whatsapp/runtime.js +1 -1
  230. package/dist/channels/whatsapp/runtime.js.map +1 -1
  231. package/dist/cli/backup-command.d.ts +41 -0
  232. package/dist/cli/backup-command.d.ts.map +1 -0
  233. package/dist/cli/backup-command.js +477 -0
  234. package/dist/cli/backup-command.js.map +1 -0
  235. package/dist/cli/channels-command.d.ts.map +1 -1
  236. package/dist/cli/channels-command.js +270 -2
  237. package/dist/cli/channels-command.js.map +1 -1
  238. package/dist/cli/help.d.ts +1 -0
  239. package/dist/cli/help.d.ts.map +1 -1
  240. package/dist/cli/help.js +48 -8
  241. package/dist/cli/help.js.map +1 -1
  242. package/dist/cli/skill-command.d.ts.map +1 -1
  243. package/dist/cli/skill-command.js +124 -68
  244. package/dist/cli/skill-command.js.map +1 -1
  245. package/dist/cli/verbosity.d.ts +30 -0
  246. package/dist/cli/verbosity.d.ts.map +1 -0
  247. package/dist/cli/verbosity.js +42 -0
  248. package/dist/cli/verbosity.js.map +1 -0
  249. package/dist/cli.d.ts.map +1 -1
  250. package/dist/cli.js +79 -23
  251. package/dist/cli.js.map +1 -1
  252. package/dist/command-registry.d.ts.map +1 -1
  253. package/dist/command-registry.js +133 -8
  254. package/dist/command-registry.js.map +1 -1
  255. package/dist/config/cli-flags.d.ts +8 -1
  256. package/dist/config/cli-flags.d.ts.map +1 -1
  257. package/dist/config/cli-flags.js +121 -34
  258. package/dist/config/cli-flags.js.map +1 -1
  259. package/dist/config/config.d.ts +2 -0
  260. package/dist/config/config.d.ts.map +1 -1
  261. package/dist/config/config.js +160 -4
  262. package/dist/config/config.js.map +1 -1
  263. package/dist/config/runtime-config-edit.d.ts +2 -0
  264. package/dist/config/runtime-config-edit.d.ts.map +1 -1
  265. package/dist/config/runtime-config-edit.js +14 -0
  266. package/dist/config/runtime-config-edit.js.map +1 -1
  267. package/dist/config/runtime-config-revisions.d.ts +34 -0
  268. package/dist/config/runtime-config-revisions.d.ts.map +1 -1
  269. package/dist/config/runtime-config-revisions.js +264 -90
  270. package/dist/config/runtime-config-revisions.js.map +1 -1
  271. package/dist/config/runtime-config.d.ts +99 -4
  272. package/dist/config/runtime-config.d.ts.map +1 -1
  273. package/dist/config/runtime-config.js +477 -14
  274. package/dist/config/runtime-config.js.map +1 -1
  275. package/dist/doctor/checks/config.d.ts.map +1 -1
  276. package/dist/doctor/checks/config.js +85 -6
  277. package/dist/doctor/checks/config.js.map +1 -1
  278. package/dist/doctor/checks/providers.d.ts.map +1 -1
  279. package/dist/doctor/checks/providers.js +1 -12
  280. package/dist/doctor/checks/providers.js.map +1 -1
  281. package/dist/doctor/checks/resource-hygiene.d.ts +6 -0
  282. package/dist/doctor/checks/resource-hygiene.d.ts.map +1 -1
  283. package/dist/doctor/checks/resource-hygiene.js +164 -0
  284. package/dist/doctor/checks/resource-hygiene.js.map +1 -1
  285. package/dist/evals/eval-command.d.ts +2 -1
  286. package/dist/evals/eval-command.d.ts.map +1 -1
  287. package/dist/evals/eval-command.js +10 -4
  288. package/dist/evals/eval-command.js.map +1 -1
  289. package/dist/evals/eval-profile.d.ts +1 -1
  290. package/dist/evals/eval-profile.d.ts.map +1 -1
  291. package/dist/evals/eval-profile.js +2 -2
  292. package/dist/evals/eval-profile.js.map +1 -1
  293. package/dist/evals/hybridai-skills-command.d.ts.map +1 -1
  294. package/dist/evals/hybridai-skills-command.js +12 -3
  295. package/dist/evals/hybridai-skills-command.js.map +1 -1
  296. package/dist/evals/trace-judge.d.ts +42 -0
  297. package/dist/evals/trace-judge.d.ts.map +1 -0
  298. package/dist/evals/trace-judge.js +236 -0
  299. package/dist/evals/trace-judge.js.map +1 -0
  300. package/dist/evals/trace-preparation.d.ts +58 -0
  301. package/dist/evals/trace-preparation.d.ts.map +1 -0
  302. package/dist/evals/trace-preparation.js +447 -0
  303. package/dist/evals/trace-preparation.js.map +1 -0
  304. package/dist/gateway/auth-token.d.ts +4 -0
  305. package/dist/gateway/auth-token.d.ts.map +1 -1
  306. package/dist/gateway/auth-token.js +44 -9
  307. package/dist/gateway/auth-token.js.map +1 -1
  308. package/dist/gateway/chat-approval.d.ts.map +1 -1
  309. package/dist/gateway/chat-approval.js +3 -0
  310. package/dist/gateway/chat-approval.js.map +1 -1
  311. package/dist/gateway/context-usage.d.ts +25 -0
  312. package/dist/gateway/context-usage.d.ts.map +1 -0
  313. package/dist/gateway/context-usage.js +32 -0
  314. package/dist/gateway/context-usage.js.map +1 -0
  315. package/dist/gateway/fullauto-runtime.d.ts +1 -0
  316. package/dist/gateway/fullauto-runtime.d.ts.map +1 -1
  317. package/dist/gateway/fullauto-runtime.js.map +1 -1
  318. package/dist/gateway/gateway-agent-cards.d.ts +1 -0
  319. package/dist/gateway/gateway-agent-cards.d.ts.map +1 -1
  320. package/dist/gateway/gateway-agent-cards.js +2 -12
  321. package/dist/gateway/gateway-agent-cards.js.map +1 -1
  322. package/dist/gateway/gateway-chat-service.d.ts +1 -0
  323. package/dist/gateway/gateway-chat-service.d.ts.map +1 -1
  324. package/dist/gateway/gateway-chat-service.js +230 -9
  325. package/dist/gateway/gateway-chat-service.js.map +1 -1
  326. package/dist/gateway/gateway-client.d.ts.map +1 -1
  327. package/dist/gateway/gateway-client.js +5 -0
  328. package/dist/gateway/gateway-client.js.map +1 -1
  329. package/dist/gateway/gateway-health-service.d.ts +11 -0
  330. package/dist/gateway/gateway-health-service.d.ts.map +1 -0
  331. package/dist/gateway/gateway-health-service.js +61 -0
  332. package/dist/gateway/gateway-health-service.js.map +1 -0
  333. package/dist/gateway/gateway-http-proxy.d.ts.map +1 -1
  334. package/dist/gateway/gateway-http-proxy.js +26 -7
  335. package/dist/gateway/gateway-http-proxy.js.map +1 -1
  336. package/dist/gateway/gateway-http-server.d.ts.map +1 -1
  337. package/dist/gateway/gateway-http-server.js +422 -25
  338. package/dist/gateway/gateway-http-server.js.map +1 -1
  339. package/dist/gateway/gateway-lifecycle.d.ts +5 -0
  340. package/dist/gateway/gateway-lifecycle.d.ts.map +1 -1
  341. package/dist/gateway/gateway-lifecycle.js +5 -0
  342. package/dist/gateway/gateway-lifecycle.js.map +1 -1
  343. package/dist/gateway/gateway-service.d.ts +35 -8
  344. package/dist/gateway/gateway-service.d.ts.map +1 -1
  345. package/dist/gateway/gateway-service.js +533 -152
  346. package/dist/gateway/gateway-service.js.map +1 -1
  347. package/dist/gateway/gateway-session-status.d.ts +6 -0
  348. package/dist/gateway/gateway-session-status.d.ts.map +1 -1
  349. package/dist/gateway/gateway-session-status.js +107 -4
  350. package/dist/gateway/gateway-session-status.js.map +1 -1
  351. package/dist/gateway/gateway-tunnel-service.d.ts +5 -0
  352. package/dist/gateway/gateway-tunnel-service.d.ts.map +1 -0
  353. package/dist/gateway/gateway-tunnel-service.js +137 -0
  354. package/dist/gateway/gateway-tunnel-service.js.map +1 -0
  355. package/dist/gateway/gateway-types.d.ts +144 -23
  356. package/dist/gateway/gateway-types.d.ts.map +1 -1
  357. package/dist/gateway/gateway-types.js.map +1 -1
  358. package/dist/gateway/gateway.js +302 -85
  359. package/dist/gateway/gateway.js.map +1 -1
  360. package/dist/gateway/qr-svg.d.ts +2 -0
  361. package/dist/gateway/qr-svg.d.ts.map +1 -0
  362. package/dist/gateway/qr-svg.js +30 -0
  363. package/dist/gateway/qr-svg.js.map +1 -0
  364. package/dist/gateway/skill-commands.d.ts.map +1 -1
  365. package/dist/gateway/skill-commands.js +148 -92
  366. package/dist/gateway/skill-commands.js.map +1 -1
  367. package/dist/gateway/text-channel-commands.d.ts +1 -1
  368. package/dist/gateway/text-channel-commands.d.ts.map +1 -1
  369. package/dist/gateway/text-channel-commands.js +3 -1
  370. package/dist/gateway/text-channel-commands.js.map +1 -1
  371. package/dist/infra/container-runner.d.ts +2 -0
  372. package/dist/infra/container-runner.d.ts.map +1 -1
  373. package/dist/infra/container-runner.js +299 -66
  374. package/dist/infra/container-runner.js.map +1 -1
  375. package/dist/infra/host-runner.d.ts +2 -0
  376. package/dist/infra/host-runner.d.ts.map +1 -1
  377. package/dist/infra/host-runner.js +273 -61
  378. package/dist/infra/host-runner.js.map +1 -1
  379. package/dist/infra/ipc.d.ts.map +1 -1
  380. package/dist/infra/ipc.js +11 -0
  381. package/dist/infra/ipc.js.map +1 -1
  382. package/dist/infra/model-response-debug.d.ts +2 -0
  383. package/dist/infra/model-response-debug.d.ts.map +1 -0
  384. package/dist/infra/model-response-debug.js +49 -0
  385. package/dist/infra/model-response-debug.js.map +1 -0
  386. package/dist/infra/stream-debug.d.ts +2 -0
  387. package/dist/infra/stream-debug.d.ts.map +1 -1
  388. package/dist/infra/stream-debug.js +11 -1
  389. package/dist/infra/stream-debug.js.map +1 -1
  390. package/dist/infra/warm-process-pool.d.ts +51 -0
  391. package/dist/infra/warm-process-pool.d.ts.map +1 -0
  392. package/dist/infra/warm-process-pool.js +211 -0
  393. package/dist/infra/warm-process-pool.js.map +1 -0
  394. package/dist/infra/warm-runner-utils.d.ts +76 -0
  395. package/dist/infra/warm-runner-utils.d.ts.map +1 -0
  396. package/dist/infra/warm-runner-utils.js +138 -0
  397. package/dist/infra/warm-runner-utils.js.map +1 -0
  398. package/dist/media/path-utils.d.ts +1 -1
  399. package/dist/media/path-utils.d.ts.map +1 -1
  400. package/dist/media/path-utils.js +1 -11
  401. package/dist/media/path-utils.js.map +1 -1
  402. package/dist/media/pdf-context.d.ts.map +1 -1
  403. package/dist/media/pdf-context.js +2 -11
  404. package/dist/media/pdf-context.js.map +1 -1
  405. package/dist/memory/db.d.ts +115 -6
  406. package/dist/memory/db.d.ts.map +1 -1
  407. package/dist/memory/db.js +1165 -68
  408. package/dist/memory/db.js.map +1 -1
  409. package/dist/memory/memory-service.d.ts +6 -1
  410. package/dist/memory/memory-service.d.ts.map +1 -1
  411. package/dist/memory/memory-service.js +3 -1
  412. package/dist/memory/memory-service.js.map +1 -1
  413. package/dist/plugins/plugin-api.d.ts.map +1 -1
  414. package/dist/plugins/plugin-api.js +3 -0
  415. package/dist/plugins/plugin-api.js.map +1 -1
  416. package/dist/plugins/plugin-install.d.ts.map +1 -1
  417. package/dist/plugins/plugin-install.js +2 -6
  418. package/dist/plugins/plugin-install.js.map +1 -1
  419. package/dist/plugins/plugin-manager.d.ts +5 -1
  420. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  421. package/dist/plugins/plugin-manager.js +126 -0
  422. package/dist/plugins/plugin-manager.js.map +1 -1
  423. package/dist/plugins/plugin-sdk.d.ts +1 -1
  424. package/dist/plugins/plugin-sdk.d.ts.map +1 -1
  425. package/dist/plugins/plugin-sdk.js.map +1 -1
  426. package/dist/plugins/plugin-types.d.ts +40 -1
  427. package/dist/plugins/plugin-types.d.ts.map +1 -1
  428. package/dist/policy/network-policy.d.ts +1 -1
  429. package/dist/policy/network-policy.d.ts.map +1 -1
  430. package/dist/policy/network-policy.js +1 -1
  431. package/dist/policy/network-policy.js.map +1 -1
  432. package/dist/policy/policy-engine.d.ts +3 -0
  433. package/dist/policy/policy-engine.d.ts.map +1 -0
  434. package/dist/policy/policy-engine.js +2 -0
  435. package/dist/policy/policy-engine.js.map +1 -0
  436. package/dist/policy/skill-policy.d.ts +6 -0
  437. package/dist/policy/skill-policy.d.ts.map +1 -0
  438. package/dist/policy/skill-policy.js +20 -0
  439. package/dist/policy/skill-policy.js.map +1 -0
  440. package/dist/providers/anthropic-discovery.d.ts +3 -0
  441. package/dist/providers/anthropic-discovery.d.ts.map +1 -1
  442. package/dist/providers/anthropic-discovery.js +16 -0
  443. package/dist/providers/anthropic-discovery.js.map +1 -1
  444. package/dist/providers/auxiliary.d.ts +7 -0
  445. package/dist/providers/auxiliary.d.ts.map +1 -1
  446. package/dist/providers/auxiliary.js +74 -9
  447. package/dist/providers/auxiliary.js.map +1 -1
  448. package/dist/providers/codex-discovery.d.ts +4 -0
  449. package/dist/providers/codex-discovery.d.ts.map +1 -1
  450. package/dist/providers/codex-discovery.js +11 -0
  451. package/dist/providers/codex-discovery.js.map +1 -1
  452. package/dist/providers/huggingface-discovery.d.ts +3 -0
  453. package/dist/providers/huggingface-discovery.d.ts.map +1 -1
  454. package/dist/providers/huggingface-discovery.js +22 -0
  455. package/dist/providers/huggingface-discovery.js.map +1 -1
  456. package/dist/providers/hybridai-discovery.d.ts +8 -0
  457. package/dist/providers/hybridai-discovery.d.ts.map +1 -1
  458. package/dist/providers/hybridai-discovery.js +18 -0
  459. package/dist/providers/hybridai-discovery.js.map +1 -1
  460. package/dist/providers/hybridai-models.d.ts.map +1 -1
  461. package/dist/providers/hybridai-models.js +4 -120
  462. package/dist/providers/hybridai-models.js.map +1 -1
  463. package/dist/providers/mistral-discovery.d.ts +3 -0
  464. package/dist/providers/mistral-discovery.d.ts.map +1 -1
  465. package/dist/providers/mistral-discovery.js +17 -0
  466. package/dist/providers/mistral-discovery.js.map +1 -1
  467. package/dist/providers/model-catalog.d.ts +35 -1
  468. package/dist/providers/model-catalog.d.ts.map +1 -1
  469. package/dist/providers/model-catalog.js +235 -35
  470. package/dist/providers/model-catalog.js.map +1 -1
  471. package/dist/providers/model-lookup.d.ts +3 -0
  472. package/dist/providers/model-lookup.d.ts.map +1 -0
  473. package/dist/providers/model-lookup.js +39 -0
  474. package/dist/providers/model-lookup.js.map +1 -0
  475. package/dist/providers/model-metadata.d.ts +20 -0
  476. package/dist/providers/model-metadata.d.ts.map +1 -0
  477. package/dist/providers/model-metadata.js +236 -0
  478. package/dist/providers/model-metadata.js.map +1 -0
  479. package/dist/providers/model-names.d.ts +2 -2
  480. package/dist/providers/model-names.d.ts.map +1 -1
  481. package/dist/providers/model-names.js +2 -2
  482. package/dist/providers/model-names.js.map +1 -1
  483. package/dist/providers/openai-compat-discovery.d.ts +3 -0
  484. package/dist/providers/openai-compat-discovery.d.ts.map +1 -1
  485. package/dist/providers/openai-compat-discovery.js +45 -7
  486. package/dist/providers/openai-compat-discovery.js.map +1 -1
  487. package/dist/providers/openrouter-discovery.d.ts +8 -0
  488. package/dist/providers/openrouter-discovery.d.ts.map +1 -1
  489. package/dist/providers/openrouter-discovery.js +16 -0
  490. package/dist/providers/openrouter-discovery.js.map +1 -1
  491. package/dist/providers/pricing-discovery.d.ts +6 -0
  492. package/dist/providers/pricing-discovery.d.ts.map +1 -0
  493. package/dist/providers/pricing-discovery.js +54 -0
  494. package/dist/providers/pricing-discovery.js.map +1 -0
  495. package/dist/providers/task-routing.d.ts +1 -1
  496. package/dist/providers/task-routing.d.ts.map +1 -1
  497. package/dist/providers/task-routing.js +2 -2
  498. package/dist/providers/task-routing.js.map +1 -1
  499. package/dist/providers/utils.d.ts.map +1 -1
  500. package/dist/providers/utils.js +5 -1
  501. package/dist/providers/utils.js.map +1 -1
  502. package/dist/scheduler/heartbeat.d.ts.map +1 -1
  503. package/dist/scheduler/heartbeat.js +1 -0
  504. package/dist/scheduler/heartbeat.js.map +1 -1
  505. package/dist/scheduler/scheduled-task-runner.d.ts.map +1 -1
  506. package/dist/scheduler/scheduled-task-runner.js +4 -2
  507. package/dist/scheduler/scheduled-task-runner.js.map +1 -1
  508. package/dist/security/confidential-redact.d.ts +41 -0
  509. package/dist/security/confidential-redact.d.ts.map +1 -0
  510. package/dist/security/confidential-redact.js +169 -0
  511. package/dist/security/confidential-redact.js.map +1 -0
  512. package/dist/security/confidential-rules.d.ts +28 -0
  513. package/dist/security/confidential-rules.d.ts.map +1 -0
  514. package/dist/security/confidential-rules.js +150 -0
  515. package/dist/security/confidential-rules.js.map +1 -0
  516. package/dist/security/confidential-runtime.d.ts +37 -0
  517. package/dist/security/confidential-runtime.d.ts.map +1 -0
  518. package/dist/security/confidential-runtime.js +215 -0
  519. package/dist/security/confidential-runtime.js.map +1 -0
  520. package/dist/security/media-paths.d.ts.map +1 -1
  521. package/dist/security/media-paths.js +2 -7
  522. package/dist/security/media-paths.js.map +1 -1
  523. package/dist/security/mount-config.d.ts.map +1 -1
  524. package/dist/security/mount-config.js +3 -10
  525. package/dist/security/mount-config.js.map +1 -1
  526. package/dist/session/session-context.d.ts.map +1 -1
  527. package/dist/session/session-context.js +1 -0
  528. package/dist/session/session-context.js.map +1 -1
  529. package/dist/session/session-reset.d.ts.map +1 -1
  530. package/dist/session/session-reset.js +3 -0
  531. package/dist/session/session-reset.js.map +1 -1
  532. package/dist/skills/adaptive-skills-types.d.ts +46 -0
  533. package/dist/skills/adaptive-skills-types.d.ts.map +1 -1
  534. package/dist/skills/agent-cv.d.ts +15 -0
  535. package/dist/skills/agent-cv.d.ts.map +1 -0
  536. package/dist/skills/agent-cv.js +707 -0
  537. package/dist/skills/agent-cv.js.map +1 -0
  538. package/dist/skills/agent-scoreboard.d.ts +23 -0
  539. package/dist/skills/agent-scoreboard.d.ts.map +1 -0
  540. package/dist/skills/agent-scoreboard.js +204 -0
  541. package/dist/skills/agent-scoreboard.js.map +1 -0
  542. package/dist/skills/skill-formatters.d.ts +10 -0
  543. package/dist/skills/skill-formatters.d.ts.map +1 -0
  544. package/dist/skills/skill-formatters.js +91 -0
  545. package/dist/skills/skill-formatters.js.map +1 -0
  546. package/dist/skills/skill-import-args.d.ts +1 -1
  547. package/dist/skills/skill-import-args.d.ts.map +1 -1
  548. package/dist/skills/skill-install-mode.d.ts +17 -0
  549. package/dist/skills/skill-install-mode.d.ts.map +1 -0
  550. package/dist/skills/skill-install-mode.js +39 -0
  551. package/dist/skills/skill-install-mode.js.map +1 -0
  552. package/dist/skills/skill-manifest.d.ts +30 -0
  553. package/dist/skills/skill-manifest.d.ts.map +1 -0
  554. package/dist/skills/skill-manifest.js +237 -0
  555. package/dist/skills/skill-manifest.js.map +1 -0
  556. package/dist/skills/skill-run-events.d.ts +73 -0
  557. package/dist/skills/skill-run-events.d.ts.map +1 -0
  558. package/dist/skills/skill-run-events.js +137 -0
  559. package/dist/skills/skill-run-events.js.map +1 -0
  560. package/dist/skills/skill-run-trajectories.d.ts +48 -0
  561. package/dist/skills/skill-run-trajectories.d.ts.map +1 -0
  562. package/dist/skills/skill-run-trajectories.js +370 -0
  563. package/dist/skills/skill-run-trajectories.js.map +1 -0
  564. package/dist/skills/skills-import.d.ts +1 -0
  565. package/dist/skills/skills-import.d.ts.map +1 -1
  566. package/dist/skills/skills-import.js +4 -4
  567. package/dist/skills/skills-import.js.map +1 -1
  568. package/dist/skills/skills-inspection.d.ts.map +1 -1
  569. package/dist/skills/skills-inspection.js +30 -2
  570. package/dist/skills/skills-inspection.js.map +1 -1
  571. package/dist/skills/skills-lifecycle.d.ts +54 -0
  572. package/dist/skills/skills-lifecycle.d.ts.map +1 -0
  573. package/dist/skills/skills-lifecycle.js +514 -0
  574. package/dist/skills/skills-lifecycle.js.map +1 -0
  575. package/dist/skills/skills-observation.d.ts +7 -0
  576. package/dist/skills/skills-observation.d.ts.map +1 -1
  577. package/dist/skills/skills-observation.js +146 -32
  578. package/dist/skills/skills-observation.js.map +1 -1
  579. package/dist/skills/skills.d.ts +3 -0
  580. package/dist/skills/skills.d.ts.map +1 -1
  581. package/dist/skills/skills.js +63 -17
  582. package/dist/skills/skills.js.map +1 -1
  583. package/dist/tui-skill-config.d.ts +1 -1
  584. package/dist/tui-skill-config.d.ts.map +1 -1
  585. package/dist/tui-thinking.d.ts +4 -0
  586. package/dist/tui-thinking.d.ts.map +1 -1
  587. package/dist/tui-thinking.js +146 -3
  588. package/dist/tui-thinking.js.map +1 -1
  589. package/dist/tui.d.ts.map +1 -1
  590. package/dist/tui.js +46 -46
  591. package/dist/tui.js.map +1 -1
  592. package/dist/tunnel/ngrok-tunnel-provider.d.ts +78 -0
  593. package/dist/tunnel/ngrok-tunnel-provider.d.ts.map +1 -0
  594. package/dist/tunnel/ngrok-tunnel-provider.js +356 -0
  595. package/dist/tunnel/ngrok-tunnel-provider.js.map +1 -0
  596. package/dist/tunnel/tailscale-tunnel-provider.d.ts +61 -0
  597. package/dist/tunnel/tailscale-tunnel-provider.d.ts.map +1 -0
  598. package/dist/tunnel/tailscale-tunnel-provider.js +382 -0
  599. package/dist/tunnel/tailscale-tunnel-provider.js.map +1 -0
  600. package/dist/tunnel/tunnel-provider-utils.d.ts +46 -0
  601. package/dist/tunnel/tunnel-provider-utils.d.ts.map +1 -0
  602. package/dist/tunnel/tunnel-provider-utils.js +126 -0
  603. package/dist/tunnel/tunnel-provider-utils.js.map +1 -0
  604. package/dist/tunnel/tunnel-provider.d.ts +23 -0
  605. package/dist/tunnel/tunnel-provider.d.ts.map +1 -0
  606. package/dist/tunnel/tunnel-provider.js +5 -0
  607. package/dist/tunnel/tunnel-provider.js.map +1 -0
  608. package/dist/types/container.d.ts +5 -9
  609. package/dist/types/container.d.ts.map +1 -1
  610. package/dist/types/execution.d.ts +15 -0
  611. package/dist/types/execution.d.ts.map +1 -1
  612. package/dist/types/execution.js +16 -1
  613. package/dist/types/execution.js.map +1 -1
  614. package/dist/types/models.d.ts +1 -1
  615. package/dist/types/models.d.ts.map +1 -1
  616. package/dist/types/models.js +1 -0
  617. package/dist/types/models.js.map +1 -1
  618. package/dist/types/session.d.ts +4 -0
  619. package/dist/types/session.d.ts.map +1 -1
  620. package/dist/types/usage.d.ts +14 -0
  621. package/dist/types/usage.d.ts.map +1 -1
  622. package/dist/usage/token-usage-buffer.d.ts +96 -0
  623. package/dist/usage/token-usage-buffer.d.ts.map +1 -0
  624. package/dist/usage/token-usage-buffer.js +471 -0
  625. package/dist/usage/token-usage-buffer.js.map +1 -0
  626. package/dist/utils/hash.d.ts +2 -0
  627. package/dist/utils/hash.d.ts.map +1 -0
  628. package/dist/utils/hash.js +5 -0
  629. package/dist/utils/hash.js.map +1 -0
  630. package/dist/utils/normalized-strings.d.ts +1 -0
  631. package/dist/utils/normalized-strings.d.ts.map +1 -1
  632. package/dist/utils/normalized-strings.js +12 -0
  633. package/dist/utils/normalized-strings.js.map +1 -1
  634. package/dist/utils/path.d.ts +2 -0
  635. package/dist/utils/path.d.ts.map +1 -0
  636. package/dist/utils/path.js +12 -0
  637. package/dist/utils/path.js.map +1 -0
  638. package/dist/utils/secret-prompt.d.ts.map +1 -1
  639. package/dist/utils/secret-prompt.js +9 -2
  640. package/dist/utils/secret-prompt.js.map +1 -1
  641. package/dist/utils/text-format.d.ts +1 -0
  642. package/dist/utils/text-format.d.ts.map +1 -1
  643. package/dist/utils/text-format.js +5 -0
  644. package/dist/utils/text-format.js.map +1 -1
  645. package/docs/content/README.md +22 -21
  646. package/docs/content/channels/README.md +1 -0
  647. package/docs/content/channels/admin-console.md +19 -2
  648. package/docs/content/channels/overview.md +1 -0
  649. package/docs/content/channels/policies-and-allowlists.md +3 -0
  650. package/docs/content/channels/signal.md +259 -0
  651. package/docs/content/developer-guide/approvals.md +78 -1
  652. package/docs/content/extensibility/adaptive-skills.md +21 -11
  653. package/docs/content/extensibility/agent-packages.md +61 -0
  654. package/docs/content/extensibility/plugins.md +6 -0
  655. package/docs/content/extensibility/skills.md +24 -4
  656. package/docs/content/getting-started/first-channel.md +3 -0
  657. package/docs/content/getting-started/installation.md +59 -0
  658. package/docs/content/getting-started/quickstart.md +10 -0
  659. package/docs/content/guides/README.md +2 -0
  660. package/docs/content/guides/remote-access.md +32 -2
  661. package/docs/content/guides/skills/README.md +2 -0
  662. package/docs/content/guides/skills/business-skills.md +114 -0
  663. package/docs/content/guides/skills/communication.md +37 -0
  664. package/docs/content/guides/tailscale-funnel.md +148 -0
  665. package/docs/content/internal/roadmap.md +141 -0
  666. package/docs/content/manifesto.md +79 -0
  667. package/docs/content/reference/commands.md +176 -15
  668. package/docs/content/reference/configuration.md +43 -14
  669. package/docs/content/reference/diagnostics.md +11 -0
  670. package/docs/content/reference/model-selection.md +12 -0
  671. package/docs/index.html +12 -12
  672. package/docs/static/docs.js +4 -1
  673. package/package.json +2 -1
  674. package/skills/brand-voice/SKILL.md +79 -0
  675. package/skills/salesforce/SKILL.md +70 -13
  676. package/skills/salesforce/agents/openai.yaml +2 -2
  677. package/skills/salesforce/evals/scenarios.json +212 -0
  678. package/skills/salesforce/references/metadata-and-queries.md +24 -2
  679. package/skills/salesforce/scripts/salesforce_query.py +1078 -96
  680. package/console/dist/assets/chat-B3W1Ca_5.js +0 -93
  681. package/console/dist/assets/chat-BWpulWPN.css +0 -1
  682. package/console/dist/assets/cx-D_Ee3160.js +0 -1
  683. package/console/dist/assets/index-BnOCY0ZR.css +0 -1
  684. package/console/dist/assets/index-DIF3rME4.js +0 -15
  685. package/docs/chat.html +0 -4417
  686. package/docs/development/README.md +0 -60
  687. package/docs/development/_category_.json +0 -5
  688. package/docs/development/agents.md +0 -71
  689. package/docs/development/extensibility/README.md +0 -195
  690. package/docs/development/extensibility/_category_.json +0 -5
  691. package/docs/development/extensibility/adaptive-skills.md +0 -120
  692. package/docs/development/extensibility/agent-packages.md +0 -515
  693. package/docs/development/extensibility/byterover-memory-plugin.md +0 -390
  694. package/docs/development/extensibility/gbrain-plugin.md +0 -692
  695. package/docs/development/extensibility/honcho-memory-plugin.md +0 -575
  696. package/docs/development/extensibility/mem0-memory-plugin.md +0 -180
  697. package/docs/development/extensibility/memory-plugins.md +0 -128
  698. package/docs/development/extensibility/mempalace-memory-plugin.md +0 -654
  699. package/docs/development/extensibility/otel-plugin.md +0 -269
  700. package/docs/development/extensibility/plugins.md +0 -420
  701. package/docs/development/extensibility/qmd-memory-plugin.md +0 -291
  702. package/docs/development/extensibility/skills.md +0 -169
  703. package/docs/development/getting-started/README.md +0 -25
  704. package/docs/development/getting-started/_category_.json +0 -5
  705. package/docs/development/getting-started/authentication.md +0 -183
  706. package/docs/development/getting-started/channels.md +0 -631
  707. package/docs/development/getting-started/installation.md +0 -53
  708. package/docs/development/getting-started/quickstart.md +0 -106
  709. package/docs/development/guides/README.md +0 -23
  710. package/docs/development/guides/_category_.json +0 -5
  711. package/docs/development/guides/bundled-skills.md +0 -45
  712. package/docs/development/guides/local-providers.md +0 -49
  713. package/docs/development/guides/office-dependencies.md +0 -50
  714. package/docs/development/guides/remote-access.md +0 -205
  715. package/docs/development/guides/skills/README.md +0 -69
  716. package/docs/development/guides/skills/apple.md +0 -112
  717. package/docs/development/guides/skills/communication.md +0 -82
  718. package/docs/development/guides/skills/development.md +0 -289
  719. package/docs/development/guides/skills/integrations.md +0 -358
  720. package/docs/development/guides/skills/memory-knowledge.md +0 -189
  721. package/docs/development/guides/skills/office.md +0 -250
  722. package/docs/development/guides/skills/productivity.md +0 -116
  723. package/docs/development/guides/skills/publishing.md +0 -169
  724. package/docs/development/guides/tui-mcp.md +0 -35
  725. package/docs/development/guides/twilio-voice.md +0 -453
  726. package/docs/development/guides/voice-tts.md +0 -133
  727. package/docs/development/internals/README.md +0 -21
  728. package/docs/development/internals/_category_.json +0 -5
  729. package/docs/development/internals/approvals.md +0 -259
  730. package/docs/development/internals/architecture.md +0 -114
  731. package/docs/development/internals/memory.md +0 -379
  732. package/docs/development/internals/runtime.md +0 -412
  733. package/docs/development/internals/session-routing.md +0 -113
  734. package/docs/development/reference/README.md +0 -18
  735. package/docs/development/reference/_category_.json +0 -5
  736. package/docs/development/reference/commands.md +0 -429
  737. package/docs/development/reference/configuration.md +0 -232
  738. package/docs/development/reference/diagnostics.md +0 -51
  739. package/docs/development/reference/faq.md +0 -132
  740. package/docs/development/reference/model-selection.md +0 -149
package/CHANGELOG.md CHANGED
@@ -2,6 +2,176 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.15.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.15.0) - 2026-04-29
6
+
7
+ ### Added
8
+
9
+ - **Backup and restore CLI**: `hybridclaw backup` creates WAL-safe runtime-home
10
+ archives and `hybridclaw backup restore` validates manifests before
11
+ rehydrating `~/.hybridclaw` on a fresh or recovered host.
12
+ - **Brand-voice output guard**: A repo-shipped `brand-voice` plugin can flag,
13
+ rewrite, or block off-brand final responses using configured voice rules,
14
+ banned phrases or patterns, required phrases, and optional classifier/rewriter
15
+ models. The bundled `brand-voice` skill helps agents draft within those rules
16
+ before the output guard fires.
17
+ - **Production Salesforce skill**: The bundled Salesforce skill now ships a
18
+ fuller read-only helper, metadata/query references, eval scenarios, and
19
+ server-side secret placeholder handling for inspecting org schema and SOQL
20
+ records without writing credentials to disk.
21
+ - **Tailscale Funnel tunnel provider and admin status**: Local deployments can
22
+ use `deployment.tunnel.provider=tailscale`, with `TS_AUTHKEY` resolved from
23
+ encrypted runtime secrets when needed and kept out of process arguments. The
24
+ admin console surfaces public URL and tunnel status alongside the existing
25
+ gateway controls.
26
+ - **Web chat model switcher**: The chat composer can switch models from the
27
+ browser using discovered provider catalogs, provider icons, model capability
28
+ metadata, and the same active-session routing used by local slash commands.
29
+ - **Agent org chart, team revisions, and chronological CVs**: Agent metadata
30
+ can model role, reporting, delegation, and peer relationships; admin agent
31
+ pages keep restorable team-structure revisions; observed skill history can
32
+ refresh per-agent CV output.
33
+ - **Warm process pool**: Host and container runners can keep a bounded adaptive
34
+ pool of idle runtime processes for recently active agents, reducing cold-start
35
+ latency while respecting max-idle, startup-claim, config-change, and
36
+ memory-pressure limits.
37
+ - **Trace judge and trace preparation**: Local eval workflows can prepare
38
+ redacted traces and dispatch them through an auxiliary judge model for skill,
39
+ leak, and output-quality evaluation foundations.
40
+ - **Config value inspection**: `hybridclaw config get <key>` and `/config get
41
+ <key>` return one resolved runtime config value without dumping the full
42
+ config file.
43
+ - **GPT-5.5 model support**: Static and Codex-discovered model catalogs include
44
+ `gpt-5.5`, `gpt-5.5-pro`, and `openai-codex/gpt-5.5`.
45
+
46
+ ### Changed
47
+
48
+ - **Gateway health is less fragile**: Gateway status and health endpoints rely
49
+ on cached provider checks instead of blocking on live model-provider probes,
50
+ so transient provider failures no longer make the local gateway look down.
51
+ - **Token usage recording is buffered**: Usage events are normalized,
52
+ size-capped, and batch-flushed asynchronously to reduce hot-path overhead
53
+ while preserving audit records.
54
+ - **Runtime secrets are scrubbed more consistently**: Host/container agent
55
+ runtimes share sensitive environment filtering and web-search credential
56
+ injection so Brave, Perplexity, and Tavily keys are passed only through the
57
+ intended secret channels.
58
+ - **Trajectory capture is stricter**: Stored skill trajectories run through
59
+ PII, secret, and confidential-info redaction, and retention can be capped
60
+ globally or per tenant.
61
+ - **Docs are consolidated under `docs/content`**: The duplicate legacy
62
+ `docs/development` tree was removed after the content moved into the current
63
+ docs hierarchy.
64
+
65
+ ### Fixed
66
+
67
+ - **Loopback API auth is no longer bypassed**: Local OpenAI-compatible API
68
+ requests require `WEB_API_TOKEN` or `GATEWAY_API_TOKEN`; loopback address
69
+ alone is not treated as authentication.
70
+ - **Local TUI and gateway token handling is safer**: Generated gateway tokens
71
+ are persisted once with serialized creation, shared with local TUI/eval
72
+ clients, and no longer rewritten during later config reloads.
73
+ - **Ngrok tunnel reconnects are quieter**: Reconnect errors are deduplicated by
74
+ normalized cause, audit run ids are correlated, and tunnel health checks stay
75
+ enabled by default.
76
+ - **HybridAI-prefixed model names resolve cleanly**: Provider prefix handling
77
+ recognizes `hybridai/...` model ids without noisy warnings.
78
+ - **Context ring popovers render correctly**: The web chat context usage ring
79
+ once again shows its detail popover.
80
+
81
+ ## [0.14.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.14.0) - 2026-04-28
82
+
83
+ ### Added
84
+
85
+ - **Signal channel**: HybridClaw can connect to Signal through a
86
+ `signal-cli` compatible daemon, with private-by-default DM and group
87
+ policies, outbound chunk pacing, reconnect handling, admin QR linking, and a
88
+ full setup guide.
89
+ - **Confidential-info filter and audit leak scanner**: Operators can define
90
+ NDA-class client, project, person, keyword, and regex rules in
91
+ `.confidential.yml`; prompts are redacted before model calls, responses are
92
+ rehydrated for the user, and `hybridclaw audit scan-leaks` can inspect
93
+ historic audit logs with severity and type filters.
94
+ - **Admin statistics and agent scoreboard**: The admin console adds
95
+ `/admin/statistics` for session, message, token, cost, and channel trends,
96
+ plus `/admin/agent-scoreboard` for per-agent skill scores, best skills,
97
+ reliability, timing, and CV links.
98
+ - **Live context usage controls**: Web chat shows a live context-usage ring,
99
+ local sessions support `/context`, and compaction headroom is visible before
100
+ long-running chats hit the model window.
101
+ - **Packaged skill lifecycle**: Production skills can declare manifests with
102
+ package id, version, capabilities, required credentials, and supported
103
+ channels. Operators can install, upgrade, uninstall, list revisions, and roll
104
+ back managed skills with audited snapshots.
105
+ - **Skill autonomy and stakes policy foundations**: `skills.autonomy` records
106
+ per-agent skill autonomy levels, the container approval policy can classify
107
+ high-stakes actions, and conditional skill availability can be routed through
108
+ the generalized policy engine.
109
+ - **Deployment config and ngrok tunnel provider**: Runtime config now declares
110
+ local or cloud deployment mode, public URLs, tunnel provider intent, and a
111
+ built-in ngrok tunnel provider backed by the encrypted `NGROK_AUTHTOKEN`
112
+ secret.
113
+ - **Nix and Homebrew packaging groundwork**: The repo ships a multi-arch Nix
114
+ flake, NixOS service module, contributor dev shell, packaging notes, and a
115
+ preview Homebrew formula for future tap publication.
116
+ - **Model metadata, pricing, and monthly usage rollups**: `/model info`,
117
+ `/usage`, and the admin Models page surface discovered context windows,
118
+ output limits, capabilities, pricing, and monthly per-model spend when
119
+ providers expose that metadata.
120
+ - **Headful browser control**: Browser tools can run a visible Chrome session
121
+ when a user explicitly asks for headed/headful control, while shared browser
122
+ login profiles stay reusable for automation.
123
+ - **Agent-to-agent and trajectory persistence foundations**: The runtime can
124
+ persist A2A envelopes and opt-in redacted skill-run trajectories, creating
125
+ the data trail needed for multi-agent handoffs, skill evaluation, and future
126
+ workflow tuning.
127
+
128
+ ### Changed
129
+
130
+ - **Browser chat is more operational**: Chat navigation is session-id driven,
131
+ recent sessions keep richer snippets, the composer can switch agents, slash
132
+ result streams render correctly, and context-ring data is shared with the
133
+ `/context` command.
134
+ - **Agent terminology and profile data are consistent**: The UI and internal
135
+ persistence moved from coworker compatibility naming to agent naming, while
136
+ agent configs gained owner, role, and CV fields.
137
+ - **Model and provider status is discovery-led**: Provider catalogs cache
138
+ runtime discovery, merge pinned entries with discovered models, remove stale
139
+ static pricing assumptions, and keep status/model-info output focused on the
140
+ active model.
141
+ - **Approval and policy evaluation is more explicit**: Approval tiers can be
142
+ influenced by autonomy level and stakes classification, invalid policy
143
+ regexes and thresholds warn early, and unsafe realpath inspection during
144
+ approval classification is avoided.
145
+ - **Local diagnostics are more precise**: Gateway debug startup flags can
146
+ capture raw model responses and last prompts for local troubleshooting, and
147
+ `doctor` resource hygiene can reclaim stale gateway artifacts more safely.
148
+ - **TUI and status reporting are quieter and more useful**: Proactive polling
149
+ runs less often, streamed TUI responses preserve visible text, transient tool
150
+ lines truncate cleanly, and status output includes tokens-per-second and
151
+ time-to-first-token aware metrics.
152
+
153
+ ### Fixed
154
+
155
+ - **Web fetch is guarded against SSRF**: Plain HTTP retrieval now enforces
156
+ private-network protections more consistently before escalating to browser
157
+ tools.
158
+ - **Headful browser launches require system Chrome**: Visible browser control
159
+ refuses unstable headed macOS fallback launches and reports the required
160
+ Chrome executable setup instead.
161
+ - **Voice turns survive relay reconnects**: Twilio voice relay reconnects no
162
+ longer lose the active turn state while the gateway is handling a call.
163
+ - **Chat history and streaming edge cases are closed**: Result-only slash
164
+ streams render, tool-call sentinels are stripped before storage, regenerated
165
+ replies include tools used, context rings stay visible, and `/chat.html`
166
+ redirects preserve query strings.
167
+ - **Skill lifecycle and manifest handling are stricter**: Managed skill
168
+ installs require installed status records, validate snapshot entries, cap
169
+ restored file modes, preserve unknown deployment tunnel providers, and reject
170
+ upgrades for uninstalled packages.
171
+ - **Channel runtimes shut down more predictably**: WhatsApp and voice shutdown
172
+ paths cancel stale work, Signal delivery validates daemon/account state, and
173
+ channel send tools remain scoped to active transports.
174
+
5
175
  ## [0.13.1](https://github.com/HybridAIOne/hybridclaw/tree/v0.13.1) - 2026-04-24
6
176
 
7
177
  ### Added
package/README.md CHANGED
@@ -19,9 +19,9 @@ security, and operational visibility. It combines sandboxed execution, secure
19
19
  credentials, approvals, persistent memory, and admin surfaces behind a single
20
20
  gateway.
21
21
 
22
- Connect it to Discord, Slack, WhatsApp, Telegram, Microsoft Teams, email,
23
- Twilio voice, or the web. Run it locally, deploy it for business workflows,
24
- and keep your agents, secrets, and data under your control.
22
+ Connect it to Discord, Slack, Signal, WhatsApp, Telegram, Microsoft Teams,
23
+ email, Twilio voice, or the web. Run it locally, deploy it for business
24
+ workflows, and keep your agents, secrets, and data under your control.
25
25
 
26
26
  [Quick Start](https://www.hybridclaw.io/docs/getting-started/quickstart) ·
27
27
  [Installation](https://www.hybridclaw.io/docs/getting-started/installation) ·
@@ -78,7 +78,7 @@ Open locally:
78
78
 
79
79
  - Chat UI: `http://127.0.0.1:9090/chat`
80
80
  - Admin UI: `http://127.0.0.1:9090/admin` for channels, versioned agent files,
81
- scheduler, audit, config, and channel-specific instructions
81
+ scheduler, audit, statistics, config, and channel-specific instructions
82
82
  - Agents UI: `http://127.0.0.1:9090/agents`
83
83
  - OpenAI-compatible API: `http://127.0.0.1:9090/v1/models` and `http://127.0.0.1:9090/v1/chat/completions`
84
84
 
@@ -95,41 +95,66 @@ Once the gateway is running, open HybridClaw locally:
95
95
  - Web Chat: `http://127.0.0.1:9090/chat`
96
96
  - Web Chat keeps a recent-session sidebar and can search conversation titles
97
97
  with contextual snippets before you reopen an older browser session
98
+ - Web Chat shows live context-window usage, accepts `/context`, and lets you
99
+ switch the active agent and model from the composer
98
100
  - Web Chat accepts `/btw <question>` side questions while a primary run is
99
101
  active, so you can ask an ephemeral follow-up without interrupting the
100
102
  current run
101
103
  - Admin Console: `http://127.0.0.1:9090/admin` for channels, versioned agent files,
102
- scheduler, audit, config, and channel-specific instructions
104
+ scheduler, audit, statistics, config, and channel-specific instructions
103
105
  - Agent Dashboard: `http://127.0.0.1:9090/agents`
104
- - or connect Slack, WhatsApp, Telegram, Discord, Microsoft Teams, Email
106
+ - or connect Slack, Signal, WhatsApp, Telegram, Discord, Microsoft Teams, Email
105
107
 
106
108
  ## Operator workflows
107
109
 
110
+ - Install from npm, source, or the multi-arch Nix flake; a preview Homebrew
111
+ formula is available for `--HEAD` builds while stable tap publication is
112
+ prepared.
108
113
  - `hybridclaw gateway status` reports sandbox/runtime details, and in
109
114
  container mode it includes the configured image name plus the resolved
110
115
  version and short image id.
116
+ - `hybridclaw backup` creates a WAL-safe archive of the runtime home, and
117
+ `hybridclaw backup restore <archive.zip>` validates the archive before
118
+ replacing local runtime state.
111
119
  - `hybridclaw update --yes` upgrades a global npm install and auto-restarts a
112
120
  running local gateway with its original launch parameters when possible,
113
121
  falling back to `hybridclaw gateway restart` if not.
114
122
  - `/admin/agents` edits allowlisted bootstrap markdown files such as
115
123
  `AGENTS.md`, keeps saved revisions, and restores earlier versions from the
116
124
  browser.
125
+ - `/admin/statistics` reports message, session, token, cost, and channel trends
126
+ across a selected date range.
127
+ - `/admin/agent-scoreboard` ranks agents by observed skill scores, reliability,
128
+ timing, best skills, and CV links.
117
129
  - `hybridclaw agent config` accepts generated JSON payloads to upsert agent
118
130
  metadata, write bootstrap markdown, import profile images into the agent
119
131
  workspace, and optionally activate the agent.
120
132
  - `/admin/channels` edits transport config, encrypted channel credentials,
121
- Twilio voice settings, and per-channel instructions that are injected into
122
- prompts at runtime.
133
+ Signal QR linking, Twilio voice settings, and per-channel instructions that
134
+ are injected into prompts at runtime.
123
135
  - `/admin/approvals` manages approval policies from the browser.
124
136
  - `/admin/gateway` reloads runtime config and refreshes secrets from the
125
- browser without tearing down the enclosing workspace container; keep
126
- `hybridclaw gateway restart` for local/manual full restarts.
137
+ browser, and shows public URL plus tunnel status, without tearing down the
138
+ enclosing workspace container; keep `hybridclaw gateway restart` for
139
+ local/manual full restarts.
140
+ - `/context` and the web chat context ring show current context-window usage,
141
+ remaining headroom, and compaction counts for the active session.
127
142
  - `proactive.delegation.model` can pin delegated work to a different model
128
143
  from the parent turn; `/status` shows delegate token totals and local-token
129
144
  share when that split is configured.
145
+ - `deployment.mode`, `deployment.public_url`, `deployment.tunnel.provider`, and
146
+ `deployment.tunnel.health_check_interval_ms` describe local/cloud exposure
147
+ and tunnel health cadence. The built-in ngrok and Tailscale Funnel providers
148
+ read `NGROK_AUTHTOKEN` and `TS_AUTHKEY` from the encrypted runtime secret
149
+ store.
150
+ - `container.warmPool` keeps a bounded adaptive pool of idle host/container
151
+ runtimes for recently active agents when low cold-start latency matters.
130
152
  - `container.persistBashState` controls whether bash tool calls share shell
131
153
  state (`cd`, exported env vars, aliases) across turns in the same active
132
154
  runtime session; `/admin/config` exposes the same setting as `Persistent bash state`.
155
+ - `hybridclaw audit scan-leaks` scans historical audit logs against optional
156
+ `.confidential.yml` rules for NDA-class client, project, person, keyword,
157
+ and regex matches.
133
158
  - Generated artifacts remain downloadable and attachable even when the sandbox
134
159
  exposes a custom workspace display root such as `/app`.
135
160
  - `hybridclaw tui` includes live delegate progress, pulsing tool rows,
@@ -142,6 +167,9 @@ Once the gateway is running, open HybridClaw locally:
142
167
  `config.json` becomes invalid.
143
168
  - `hybridclaw skill import` supports community sources, local directories,
144
169
  and `.zip` archives.
170
+ - `hybridclaw skill install <source>`, `skill upgrade`, `skill revisions`, and
171
+ `skill rollback` manage packaged business skills with manifests, audit
172
+ events, and snapshots.
145
173
  - The bundled tutorials cover owner, GTM, marketing, sales, DevRel, content,
146
174
  invoicing, webinar, and release-launch workflows that can run from the TUI,
147
175
  web chat, or connected channels.
@@ -161,6 +189,10 @@ Once the gateway is running, open HybridClaw locally:
161
189
  Kimi, MiniMax, DashScope, Xiaomi, Kilo Code, and local backends such as
162
190
  Ollama, LM Studio, llama.cpp, and vLLM. Remote OpenAI-compatible providers
163
191
  can merge runtime-discovered model catalogs with operator-pinned lists.
192
+ - `/model info`, `/usage monthly`, `/usage model monthly`, and the admin
193
+ Models page surface discovered context windows, output limits, model
194
+ capabilities, pricing, and per-model monthly spend where provider metadata is
195
+ available.
164
196
  - Anthropic can run through the direct Messages API with `ANTHROPIC_API_KEY`
165
197
  or through the official Claude CLI transport in host sandbox mode.
166
198
  - Brave, Perplexity, and Tavily web-search credentials can live in the
@@ -172,9 +204,13 @@ Once the gateway is running, open HybridClaw locally:
172
204
  - Skills can be enabled or disabled globally or per channel from
173
205
  `hybridclaw skill enable|disable`, TUI `/skill config`, or the admin
174
206
  `Skills` page.
207
+ - Packaged skills can declare versioned manifests, capabilities, required
208
+ credentials, supported channels, and per-agent autonomy policy.
175
209
  - Bundled skills include API-backed Google Workspace workflows (`gog`, `gws`),
176
- GitHub issue queue processing (`gh-issues`), and editable Excalidraw diagram
177
- creation.
210
+ Salesforce inspection, GitHub issue queue processing (`gh-issues`),
211
+ brand-voice drafting, and editable Excalidraw diagram creation.
212
+ - The repo-shipped `brand-voice` plugin can flag, rewrite, or block final
213
+ responses that violate configured voice rules before they reach users.
178
214
  - Built-in office skills handle longer PDF creation flows cleanly: the bundled
179
215
  PDF creator wraps long lines, honors explicit `\n`, and adds pages
180
216
  automatically when reports or invoices spill past the first page.
@@ -210,6 +246,8 @@ Once the gateway is running, open HybridClaw locally:
210
246
  ## Security and governance built in
211
247
 
212
248
  - secure credential storage
249
+ - optional confidential-info redaction before model calls
250
+ - retroactive audit leak scanning
213
251
  - sandboxed execution
214
252
  - approvals
215
253
  - audit trails with hash chain
@@ -233,7 +271,7 @@ Once the gateway is running, open HybridClaw locally:
233
271
 
234
272
  ## Architecture
235
273
 
236
- - **Gateway service** (Node.js) — shared message/command handlers, SQLite persistence (KV + semantic + knowledge graph + canonical sessions + usage events), scheduler, heartbeat, web/API, loopback OpenAI-compatible API, and channel integrations for Discord, Slack, Microsoft Teams, Telegram, iMessage, WhatsApp, Twilio voice, and email
274
+ - **Gateway service** (Node.js) — shared message/command handlers, SQLite persistence (KV + semantic + knowledge graph + canonical sessions + usage events), scheduler, heartbeat, web/API, loopback OpenAI-compatible API, and channel integrations for Discord, Slack, Signal, Microsoft Teams, Telegram, iMessage, WhatsApp, Twilio voice, and email
237
275
  - **TUI client** — thin client over HTTP (`/api/chat`, `/api/command`) with
238
276
  a structured startup banner that surfaces model, sandbox, gateway, and
239
277
  chatbot context before the first prompt, live delegate status/progress,
@@ -268,6 +306,7 @@ Browse the full manual at
268
306
  [Discord](https://www.hybridclaw.io/docs/channels/discord),
269
307
  [Slack](https://www.hybridclaw.io/docs/channels/slack),
270
308
  [Telegram](https://www.hybridclaw.io/docs/channels/telegram),
309
+ [Signal](https://www.hybridclaw.io/docs/channels/signal),
271
310
  [Email](https://www.hybridclaw.io/docs/channels/email),
272
311
  [WhatsApp](https://www.hybridclaw.io/docs/channels/whatsapp),
273
312
  [iMessage](https://www.hybridclaw.io/docs/channels/imessage), and
package/SECURITY.md CHANGED
@@ -101,6 +101,39 @@ Implementation: [src/session/session-key.ts](./src/session/session-key.ts),
101
101
  [src/session/session-routing.ts](./src/session/session-routing.ts),
102
102
  [src/memory/db.ts](./src/memory/db.ts)
103
103
 
104
+ ### 4.1) Confidential-Info Filter (NDA / secret-leak detector)
105
+
106
+ Optional, opt-in filter that prevents NDA-class business data from leaving the
107
+ host:
108
+
109
+ - Define rules in `.confidential.yml`. The loader checks the current working
110
+ directory first (`./.confidential.yml`) and then
111
+ `~/.hybridclaw/.confidential.yml`; first hit wins. The file holds clients,
112
+ projects, people, keywords, and regex patterns, each tagged with a
113
+ sensitivity level.
114
+ - Before every prompt is sent to a model, matches are replaced with stable
115
+ placeholders (`«CONF:CLIENT_001»`); the mapping is held in process memory and
116
+ forgotten when the request ends.
117
+ - Streaming text deltas and the final response are rehydrated for the user, so
118
+ the model never sees the original strings but the user sees real names.
119
+ - Disabled via `HYBRIDCLAW_CONFIDENTIAL_DISABLE=1` for debugging or dry-runs.
120
+
121
+ A retroactive scanner walks existing audit logs to surface possible past leaks
122
+ and assigns a 0-100 risk score:
123
+
124
+ ```bash
125
+ hybridclaw audit scan-leaks # scan every session
126
+ hybridclaw audit scan-leaks <sessionId> # scan one session
127
+ hybridclaw audit scan-leaks --level high # critical/high only
128
+ hybridclaw audit scan-leaks --type in,out # prompts and model responses only
129
+ hybridclaw audit scan-leaks --json # machine-readable report
130
+ ```
131
+
132
+ Implementation: [src/security/confidential-rules.ts](./src/security/confidential-rules.ts),
133
+ [src/security/confidential-redact.ts](./src/security/confidential-redact.ts),
134
+ [src/security/confidential-runtime.ts](./src/security/confidential-runtime.ts),
135
+ [src/audit/leak-scanner.ts](./src/audit/leak-scanner.ts).
136
+
104
137
  ### 5) Audit & Tamper Evidence
105
138
 
106
139
  Security-relevant behavior is written to structured audit logs:
@@ -1,23 +1,33 @@
1
1
  {
2
- "version": 21,
2
+ "version": 26,
3
3
  "security": {
4
4
  "trustModelAccepted": false,
5
5
  "trustModelAcceptedAt": "",
6
6
  "trustModelVersion": "",
7
7
  "trustModelAcceptedBy": ""
8
8
  },
9
+ "deployment": {
10
+ "mode": "local",
11
+ "public_url": "",
12
+ "tunnel": {
13
+ "provider": "manual",
14
+ "health_check_interval_ms": 30000
15
+ }
16
+ },
9
17
  "skills": {
10
18
  "extraDirs": [],
11
19
  "disabled": [],
12
20
  "channelDisabled": {
13
21
  "discord": [],
14
22
  "msteams": [],
23
+ "signal": [],
15
24
  "slack": [],
16
25
  "telegram": [],
17
26
  "voice": [],
18
27
  "whatsapp": [],
19
28
  "email": []
20
- }
29
+ },
30
+ "installed": []
21
31
  },
22
32
  "tools": {
23
33
  "disabled": []
@@ -25,6 +35,7 @@
25
35
  "channelInstructions": {
26
36
  "discord": "",
27
37
  "msteams": "",
38
+ "signal": "",
28
39
  "slack": "",
29
40
  "telegram": "",
30
41
  "voice": "This is a live phone call. Produce plain spoken text only.\nKeep each reply short and conversational, usually one or two short sentences.\nAbsolutely no markdown, bullets, numbered lists, headings, code fences, tables, JSON, or decorative formatting.\nDo not narrate internal reasoning, planning, tool usage, or stage directions. Say only what the caller should hear.\nDo not spell punctuation, formatting marks, or raw URLs unless the caller explicitly asks for exact characters.",
@@ -35,6 +46,10 @@
35
46
  "adaptiveSkills": {
36
47
  "enabled": false,
37
48
  "observationEnabled": true,
49
+ "trajectoryCapture": {
50
+ "enabledAgentIds": [],
51
+ "storeDir": ""
52
+ },
38
53
  "inspectionIntervalMs": 3600000,
39
54
  "observationRetentionDays": 30,
40
55
  "trailingWindowHours": 168,
@@ -157,6 +172,18 @@
157
172
  "textChunkLimit": 4000,
158
173
  "mediaMaxMb": 20
159
174
  },
175
+ "signal": {
176
+ "enabled": false,
177
+ "daemonUrl": "http://127.0.0.1:8080",
178
+ "account": "",
179
+ "dmPolicy": "allowlist",
180
+ "groupPolicy": "disabled",
181
+ "allowFrom": [],
182
+ "groupAllowFrom": [],
183
+ "textChunkLimit": 4000,
184
+ "reconnectIntervalMs": 5000,
185
+ "outboundDelayMs": 350
186
+ },
160
187
  "whatsapp": {
161
188
  "dmPolicy": "pairing",
162
189
  "groupPolicy": "disabled",
@@ -357,6 +384,11 @@
357
384
  "model": "",
358
385
  "maxTokens": 0
359
386
  },
387
+ "eval_judge": {
388
+ "provider": "auto",
389
+ "model": "",
390
+ "maxTokens": 0
391
+ },
360
392
  "mcp": {
361
393
  "provider": "auto",
362
394
  "model": "",
@@ -380,7 +412,15 @@
380
412
  "additionalMounts": "",
381
413
  "maxOutputBytes": 10485760,
382
414
  "maxConcurrent": 5,
383
- "persistBashState": true
415
+ "persistBashState": true,
416
+ "warmPool": {
417
+ "enabled": true,
418
+ "coldStartBudgetMs": 200,
419
+ "trafficWindowMs": 3600000,
420
+ "minIdlePerActiveAgent": 1,
421
+ "maxIdlePerAgent": 2,
422
+ "memoryPressureRssMb": 2048
423
+ }
384
424
  },
385
425
  "mcpServers": {
386
426
  "filesystem": {