@hybridaione/hybridclaw 0.15.0 → 0.16.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 (546) hide show
  1. package/CHANGELOG.md +108 -0
  2. package/README.md +41 -7
  3. package/config.example.json +7 -1
  4. package/console/dist/assets/chat-9B6dFbBr.js +157 -0
  5. package/console/dist/assets/chat-BLTK7IwH.css +1 -0
  6. package/console/dist/assets/{cx-BhUTAaHw.js → cx-WK-JkhB9.js} +1 -1
  7. package/console/dist/assets/index-Cla9A2NT.js +16 -0
  8. package/console/dist/assets/terminal-BqDi2uWz.js +1 -0
  9. package/console/dist/icons/hybridai.png +0 -0
  10. package/console/dist/index.html +2 -2
  11. package/container/dist/approval-policy.js +642 -212
  12. package/container/dist/approval-policy.js.map +1 -1
  13. package/container/dist/browser-tools.js +1167 -121
  14. package/container/dist/browser-tools.js.map +1 -1
  15. package/container/dist/extensions.js +2 -9
  16. package/container/dist/extensions.js.map +1 -1
  17. package/container/dist/index.js +20 -14
  18. package/container/dist/index.js.map +1 -1
  19. package/container/dist/ipc.js +25 -9
  20. package/container/dist/ipc.js.map +1 -1
  21. package/container/dist/stakes-middleware.js +38 -0
  22. package/container/dist/stakes-middleware.js.map +1 -0
  23. package/container/dist/tool-args.js +25 -0
  24. package/container/dist/tool-args.js.map +1 -0
  25. package/container/dist/tools.js +158 -3
  26. package/container/dist/tools.js.map +1 -1
  27. package/container/dist/types.js.map +1 -1
  28. package/container/package-lock.json +2 -2
  29. package/container/package.json +1 -1
  30. package/container/shared/browser-navigation.d.ts +12 -0
  31. package/container/shared/browser-navigation.js +98 -0
  32. package/container/shared/browser-profile.d.ts +1 -0
  33. package/container/shared/browser-profile.js +14 -0
  34. package/container/shared/middleware-contract.d.ts +38 -0
  35. package/container/shared/middleware-contract.js +1 -0
  36. package/container/shared/middleware-runner.d.ts +51 -0
  37. package/container/shared/middleware-runner.js +158 -0
  38. package/container/src/approval-policy.ts +908 -233
  39. package/container/src/browser-tools.ts +1454 -131
  40. package/container/src/extensions.ts +5 -8
  41. package/container/src/index.ts +22 -14
  42. package/container/src/ipc.ts +25 -9
  43. package/container/src/stakes-middleware.ts +64 -0
  44. package/container/src/tool-args.ts +28 -0
  45. package/container/src/tools.ts +213 -6
  46. package/container/src/types.ts +3 -0
  47. package/dist/a2a/a2a-agent-card.d.ts +20 -0
  48. package/dist/a2a/a2a-agent-card.d.ts.map +1 -0
  49. package/dist/a2a/a2a-agent-card.js +101 -0
  50. package/dist/a2a/a2a-agent-card.js.map +1 -0
  51. package/dist/a2a/a2a-json-rpc.d.ts +46 -0
  52. package/dist/a2a/a2a-json-rpc.d.ts.map +1 -0
  53. package/dist/a2a/a2a-json-rpc.js +97 -0
  54. package/dist/a2a/a2a-json-rpc.js.map +1 -0
  55. package/dist/a2a/a2a-outbound.d.ts +17 -0
  56. package/dist/a2a/a2a-outbound.d.ts.map +1 -0
  57. package/dist/a2a/a2a-outbound.js +25 -0
  58. package/dist/a2a/a2a-outbound.js.map +1 -0
  59. package/dist/a2a/a2a-outbox-delivery.d.ts +19 -0
  60. package/dist/a2a/a2a-outbox-delivery.d.ts.map +1 -0
  61. package/dist/a2a/a2a-outbox-delivery.js +378 -0
  62. package/dist/a2a/a2a-outbox-delivery.js.map +1 -0
  63. package/dist/a2a/a2a-outbox-persistence.d.ts +39 -0
  64. package/dist/a2a/a2a-outbox-persistence.d.ts.map +1 -0
  65. package/dist/a2a/a2a-outbox-persistence.js +82 -0
  66. package/dist/a2a/a2a-outbox-persistence.js.map +1 -0
  67. package/dist/a2a/a2a-outbox-processor.d.ts +13 -0
  68. package/dist/a2a/a2a-outbox-processor.d.ts.map +1 -0
  69. package/dist/a2a/a2a-outbox-processor.js +72 -0
  70. package/dist/a2a/a2a-outbox-processor.js.map +1 -0
  71. package/dist/a2a/a2a-retry-policy.d.ts +4 -0
  72. package/dist/a2a/a2a-retry-policy.d.ts.map +1 -0
  73. package/dist/a2a/a2a-retry-policy.js +17 -0
  74. package/dist/a2a/a2a-retry-policy.js.map +1 -0
  75. package/dist/a2a/envelope.d.ts +7 -0
  76. package/dist/a2a/envelope.d.ts.map +1 -1
  77. package/dist/a2a/envelope.js +10 -3
  78. package/dist/a2a/envelope.js.map +1 -1
  79. package/dist/a2a/handoff-context.d.ts +6 -0
  80. package/dist/a2a/handoff-context.d.ts.map +1 -0
  81. package/dist/a2a/handoff-context.js +78 -0
  82. package/dist/a2a/handoff-context.js.map +1 -0
  83. package/dist/a2a/identity.d.ts +0 -1
  84. package/dist/a2a/identity.d.ts.map +1 -1
  85. package/dist/a2a/identity.js +4 -41
  86. package/dist/a2a/identity.js.map +1 -1
  87. package/dist/a2a/inbound-pipeline.d.ts +10 -0
  88. package/dist/a2a/inbound-pipeline.d.ts.map +1 -0
  89. package/dist/a2a/inbound-pipeline.js +9 -0
  90. package/dist/a2a/inbound-pipeline.js.map +1 -0
  91. package/dist/a2a/peer-descriptor.d.ts +32 -0
  92. package/dist/a2a/peer-descriptor.d.ts.map +1 -0
  93. package/dist/a2a/peer-descriptor.js +254 -0
  94. package/dist/a2a/peer-descriptor.js.map +1 -0
  95. package/dist/a2a/runtime.d.ts +28 -0
  96. package/dist/a2a/runtime.d.ts.map +1 -0
  97. package/dist/a2a/runtime.js +43 -0
  98. package/dist/a2a/runtime.js.map +1 -0
  99. package/dist/a2a/store.d.ts +1 -0
  100. package/dist/a2a/store.d.ts.map +1 -1
  101. package/dist/a2a/store.js +45 -3
  102. package/dist/a2a/store.js.map +1 -1
  103. package/dist/a2a/transport-registry.d.ts +45 -0
  104. package/dist/a2a/transport-registry.d.ts.map +1 -0
  105. package/dist/a2a/transport-registry.js +195 -0
  106. package/dist/a2a/transport-registry.js.map +1 -0
  107. package/dist/a2a/trust-ledger.d.ts +30 -0
  108. package/dist/a2a/trust-ledger.d.ts.map +1 -0
  109. package/dist/a2a/trust-ledger.js +171 -0
  110. package/dist/a2a/trust-ledger.js.map +1 -0
  111. package/dist/a2a/utils.d.ts +6 -0
  112. package/dist/a2a/utils.d.ts.map +1 -1
  113. package/dist/a2a/utils.js +39 -0
  114. package/dist/a2a/utils.js.map +1 -1
  115. package/dist/a2a/webhook-inbound.d.ts +31 -0
  116. package/dist/a2a/webhook-inbound.d.ts.map +1 -0
  117. package/dist/a2a/webhook-inbound.js +377 -0
  118. package/dist/a2a/webhook-inbound.js.map +1 -0
  119. package/dist/a2a/webhook-outbound.d.ts +87 -0
  120. package/dist/a2a/webhook-outbound.d.ts.map +1 -0
  121. package/dist/a2a/webhook-outbound.js +482 -0
  122. package/dist/a2a/webhook-outbound.js.map +1 -0
  123. package/dist/agent/agent.d.ts.map +1 -1
  124. package/dist/agent/agent.js +130 -5
  125. package/dist/agent/agent.js.map +1 -1
  126. package/dist/agent/confidential-middleware.d.ts +4 -0
  127. package/dist/agent/confidential-middleware.d.ts.map +1 -0
  128. package/dist/agent/confidential-middleware.js +47 -0
  129. package/dist/agent/confidential-middleware.js.map +1 -0
  130. package/dist/agent/executor-types.d.ts +13 -0
  131. package/dist/agent/executor-types.d.ts.map +1 -1
  132. package/dist/agent/executor.d.ts +2 -1
  133. package/dist/agent/executor.d.ts.map +1 -1
  134. package/dist/agent/executor.js +7 -0
  135. package/dist/agent/executor.js.map +1 -1
  136. package/dist/agent/middleware.d.ts +42 -0
  137. package/dist/agent/middleware.d.ts.map +1 -0
  138. package/dist/agent/middleware.js +159 -0
  139. package/dist/agent/middleware.js.map +1 -0
  140. package/dist/agent/prompt-hooks.d.ts.map +1 -1
  141. package/dist/agent/prompt-hooks.js +3 -1
  142. package/dist/agent/prompt-hooks.js.map +1 -1
  143. package/dist/agent/tool-summary.d.ts.map +1 -1
  144. package/dist/agent/tool-summary.js +2 -0
  145. package/dist/agent/tool-summary.js.map +1 -1
  146. package/dist/agents/agent-registry.d.ts +4 -0
  147. package/dist/agents/agent-registry.d.ts.map +1 -1
  148. package/dist/agents/agent-registry.js +28 -2
  149. package/dist/agents/agent-registry.js.map +1 -1
  150. package/dist/agents/org-chart.d.ts +8 -0
  151. package/dist/agents/org-chart.d.ts.map +1 -0
  152. package/dist/agents/org-chart.js +62 -0
  153. package/dist/agents/org-chart.js.map +1 -0
  154. package/dist/audit/leak-scanner.d.ts.map +1 -1
  155. package/dist/audit/leak-scanner.js +3 -1
  156. package/dist/audit/leak-scanner.js.map +1 -1
  157. package/dist/browser/browser-login.d.ts +2 -0
  158. package/dist/browser/browser-login.d.ts.map +1 -1
  159. package/dist/browser/browser-login.js +3 -12
  160. package/dist/browser/browser-login.js.map +1 -1
  161. package/dist/browser/browser-use-cloud-provider.d.ts +107 -0
  162. package/dist/browser/browser-use-cloud-provider.d.ts.map +1 -0
  163. package/dist/browser/browser-use-cloud-provider.js +391 -0
  164. package/dist/browser/browser-use-cloud-provider.js.map +1 -0
  165. package/dist/browser/local-provider.d.ts +61 -0
  166. package/dist/browser/local-provider.d.ts.map +1 -0
  167. package/dist/browser/local-provider.js +156 -0
  168. package/dist/browser/local-provider.js.map +1 -0
  169. package/dist/browser/playwright-utils.d.ts +21 -0
  170. package/dist/browser/playwright-utils.d.ts.map +1 -0
  171. package/dist/browser/playwright-utils.js +60 -0
  172. package/dist/browser/playwright-utils.js.map +1 -0
  173. package/dist/browser/provider.d.ts +118 -0
  174. package/dist/browser/provider.d.ts.map +1 -0
  175. package/dist/browser/provider.js +2 -0
  176. package/dist/browser/provider.js.map +1 -0
  177. package/dist/channels/email/connection.d.ts.map +1 -1
  178. package/dist/channels/email/connection.js +12 -1
  179. package/dist/channels/email/connection.js.map +1 -1
  180. package/dist/cli/help.d.ts.map +1 -1
  181. package/dist/cli/help.js +4 -3
  182. package/dist/cli/help.js.map +1 -1
  183. package/dist/cli/secret-command.d.ts.map +1 -1
  184. package/dist/cli/secret-command.js +104 -39
  185. package/dist/cli/secret-command.js.map +1 -1
  186. package/dist/command-registry.d.ts.map +1 -1
  187. package/dist/command-registry.js +2 -2
  188. package/dist/command-registry.js.map +1 -1
  189. package/dist/config/runtime-config-revisions.d.ts +7 -1
  190. package/dist/config/runtime-config-revisions.d.ts.map +1 -1
  191. package/dist/config/runtime-config-revisions.js +31 -0
  192. package/dist/config/runtime-config-revisions.js.map +1 -1
  193. package/dist/config/runtime-config.d.ts +17 -2
  194. package/dist/config/runtime-config.d.ts.map +1 -1
  195. package/dist/config/runtime-config.js +127 -9
  196. package/dist/config/runtime-config.js.map +1 -1
  197. package/dist/doctor/checks/browser-use.d.ts +9 -0
  198. package/dist/doctor/checks/browser-use.d.ts.map +1 -0
  199. package/dist/doctor/checks/browser-use.js +61 -0
  200. package/dist/doctor/checks/browser-use.js.map +1 -0
  201. package/dist/doctor/checks/index.d.ts.map +1 -1
  202. package/dist/doctor/checks/index.js +6 -0
  203. package/dist/doctor/checks/index.js.map +1 -1
  204. package/dist/doctor/types.d.ts +1 -1
  205. package/dist/doctor/types.d.ts.map +1 -1
  206. package/dist/doctor/types.js +1 -0
  207. package/dist/doctor/types.js.map +1 -1
  208. package/dist/doctor/utils.d.ts.map +1 -1
  209. package/dist/doctor/utils.js +3 -0
  210. package/dist/doctor/utils.js.map +1 -1
  211. package/dist/evals/hybridai-skills-command.d.ts.map +1 -1
  212. package/dist/evals/hybridai-skills-command.js +1 -0
  213. package/dist/evals/hybridai-skills-command.js.map +1 -1
  214. package/dist/gateway/coworker-liveness.d.ts +9 -0
  215. package/dist/gateway/coworker-liveness.d.ts.map +1 -0
  216. package/dist/gateway/coworker-liveness.js +373 -0
  217. package/dist/gateway/coworker-liveness.js.map +1 -0
  218. package/dist/gateway/gateway-agent-cards.d.ts +2 -1
  219. package/dist/gateway/gateway-agent-cards.d.ts.map +1 -1
  220. package/dist/gateway/gateway-agent-cards.js +1 -0
  221. package/dist/gateway/gateway-agent-cards.js.map +1 -1
  222. package/dist/gateway/gateway-chat-service.d.ts.map +1 -1
  223. package/dist/gateway/gateway-chat-service.js +103 -4
  224. package/dist/gateway/gateway-chat-service.js.map +1 -1
  225. package/dist/gateway/gateway-error-service.d.ts +10 -0
  226. package/dist/gateway/gateway-error-service.d.ts.map +1 -0
  227. package/dist/gateway/gateway-error-service.js +40 -0
  228. package/dist/gateway/gateway-error-service.js.map +1 -0
  229. package/dist/gateway/gateway-health-service.d.ts +1 -0
  230. package/dist/gateway/gateway-health-service.d.ts.map +1 -1
  231. package/dist/gateway/gateway-health-service.js.map +1 -1
  232. package/dist/gateway/gateway-http-proxy.d.ts.map +1 -1
  233. package/dist/gateway/gateway-http-proxy.js +206 -32
  234. package/dist/gateway/gateway-http-proxy.js.map +1 -1
  235. package/dist/gateway/gateway-http-server.d.ts.map +1 -1
  236. package/dist/gateway/gateway-http-server.js +287 -4
  237. package/dist/gateway/gateway-http-server.js.map +1 -1
  238. package/dist/gateway/gateway-provider-service.d.ts.map +1 -1
  239. package/dist/gateway/gateway-provider-service.js +3 -2
  240. package/dist/gateway/gateway-provider-service.js.map +1 -1
  241. package/dist/gateway/gateway-secret-injection.d.ts +48 -0
  242. package/dist/gateway/gateway-secret-injection.d.ts.map +1 -0
  243. package/dist/gateway/gateway-secret-injection.js +145 -0
  244. package/dist/gateway/gateway-secret-injection.js.map +1 -0
  245. package/dist/gateway/gateway-service.d.ts +4 -1
  246. package/dist/gateway/gateway-service.d.ts.map +1 -1
  247. package/dist/gateway/gateway-service.js +213 -47
  248. package/dist/gateway/gateway-service.js.map +1 -1
  249. package/dist/gateway/gateway-tunnel-service.d.ts.map +1 -1
  250. package/dist/gateway/gateway-tunnel-service.js +29 -13
  251. package/dist/gateway/gateway-tunnel-service.js.map +1 -1
  252. package/dist/gateway/gateway-types.d.ts +54 -0
  253. package/dist/gateway/gateway-types.d.ts.map +1 -1
  254. package/dist/gateway/gateway-types.js.map +1 -1
  255. package/dist/gateway/gateway.js +40 -65
  256. package/dist/gateway/gateway.js.map +1 -1
  257. package/dist/gateway/interactive-escalation.d.ts +129 -0
  258. package/dist/gateway/interactive-escalation.d.ts.map +1 -0
  259. package/dist/gateway/interactive-escalation.js +539 -0
  260. package/dist/gateway/interactive-escalation.js.map +1 -0
  261. package/dist/gateway/openai-compatible.d.ts.map +1 -1
  262. package/dist/gateway/openai-compatible.js +42 -22
  263. package/dist/gateway/openai-compatible.js.map +1 -1
  264. package/dist/gateway/pending-approvals.d.ts.map +1 -1
  265. package/dist/gateway/pending-approvals.js +120 -9
  266. package/dist/gateway/pending-approvals.js.map +1 -1
  267. package/dist/gateway/provider-fallback.d.ts +55 -0
  268. package/dist/gateway/provider-fallback.d.ts.map +1 -0
  269. package/dist/gateway/provider-fallback.js +191 -0
  270. package/dist/gateway/provider-fallback.js.map +1 -0
  271. package/dist/identity/agent-id.d.ts +32 -0
  272. package/dist/identity/agent-id.d.ts.map +1 -0
  273. package/dist/identity/agent-id.js +214 -0
  274. package/dist/identity/agent-id.js.map +1 -0
  275. package/dist/identity/resolver.d.ts +63 -0
  276. package/dist/identity/resolver.d.ts.map +1 -0
  277. package/dist/identity/resolver.js +236 -0
  278. package/dist/identity/resolver.js.map +1 -0
  279. package/dist/identity/user-id.d.ts +22 -0
  280. package/dist/identity/user-id.d.ts.map +1 -0
  281. package/dist/identity/user-id.js +80 -0
  282. package/dist/identity/user-id.js.map +1 -0
  283. package/dist/infra/container-runner.d.ts +3 -1
  284. package/dist/infra/container-runner.d.ts.map +1 -1
  285. package/dist/infra/container-runner.js +10 -23
  286. package/dist/infra/container-runner.js.map +1 -1
  287. package/dist/infra/host-runner.d.ts +3 -1
  288. package/dist/infra/host-runner.d.ts.map +1 -1
  289. package/dist/infra/host-runner.js +10 -23
  290. package/dist/infra/host-runner.js.map +1 -1
  291. package/dist/infra/ipc.d.ts +5 -0
  292. package/dist/infra/ipc.d.ts.map +1 -1
  293. package/dist/infra/ipc.js +39 -13
  294. package/dist/infra/ipc.js.map +1 -1
  295. package/dist/infra/warm-runner-utils.d.ts +17 -0
  296. package/dist/infra/warm-runner-utils.d.ts.map +1 -1
  297. package/dist/infra/warm-runner-utils.js +96 -1
  298. package/dist/infra/warm-runner-utils.js.map +1 -1
  299. package/dist/logger.d.ts.map +1 -1
  300. package/dist/logger.js +31 -0
  301. package/dist/logger.js.map +1 -1
  302. package/dist/{gateway/memory-consolidation-runner.d.ts → memory/consolidation-runner.d.ts} +2 -2
  303. package/dist/memory/consolidation-runner.d.ts.map +1 -0
  304. package/dist/{gateway/memory-consolidation-runner.js → memory/consolidation-runner.js} +2 -2
  305. package/dist/memory/consolidation-runner.js.map +1 -0
  306. package/dist/memory/db.d.ts +11 -2
  307. package/dist/memory/db.d.ts.map +1 -1
  308. package/dist/memory/db.js +234 -7
  309. package/dist/memory/db.js.map +1 -1
  310. package/dist/plugins/plugin-api.d.ts.map +1 -1
  311. package/dist/plugins/plugin-api.js +3 -0
  312. package/dist/plugins/plugin-api.js.map +1 -1
  313. package/dist/plugins/plugin-manager.d.ts +14 -2
  314. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  315. package/dist/plugins/plugin-manager.js +276 -108
  316. package/dist/plugins/plugin-manager.js.map +1 -1
  317. package/dist/plugins/plugin-sdk.d.ts +1 -1
  318. package/dist/plugins/plugin-sdk.d.ts.map +1 -1
  319. package/dist/plugins/plugin-sdk.js.map +1 -1
  320. package/dist/plugins/plugin-types.d.ts +24 -5
  321. package/dist/plugins/plugin-types.d.ts.map +1 -1
  322. package/dist/policy/secret-route-policy.d.ts +22 -0
  323. package/dist/policy/secret-route-policy.d.ts.map +1 -0
  324. package/dist/policy/secret-route-policy.js +165 -0
  325. package/dist/policy/secret-route-policy.js.map +1 -0
  326. package/dist/providers/anthropic.d.ts.map +1 -1
  327. package/dist/providers/anthropic.js +2 -0
  328. package/dist/providers/anthropic.js.map +1 -1
  329. package/dist/providers/auxiliary.d.ts +1 -1
  330. package/dist/providers/auxiliary.d.ts.map +1 -1
  331. package/dist/providers/auxiliary.js +11 -10
  332. package/dist/providers/auxiliary.js.map +1 -1
  333. package/dist/providers/discovery-error-utils.d.ts +12 -0
  334. package/dist/providers/discovery-error-utils.d.ts.map +1 -0
  335. package/dist/providers/discovery-error-utils.js +36 -0
  336. package/dist/providers/discovery-error-utils.js.map +1 -0
  337. package/dist/providers/huggingface.d.ts.map +1 -1
  338. package/dist/providers/huggingface.js +1 -0
  339. package/dist/providers/huggingface.js.map +1 -1
  340. package/dist/providers/hybridai-discovery.d.ts +2 -0
  341. package/dist/providers/hybridai-discovery.d.ts.map +1 -1
  342. package/dist/providers/hybridai-discovery.js +53 -0
  343. package/dist/providers/hybridai-discovery.js.map +1 -1
  344. package/dist/providers/hybridai.d.ts.map +1 -1
  345. package/dist/providers/hybridai.js +1 -0
  346. package/dist/providers/hybridai.js.map +1 -1
  347. package/dist/providers/local-ollama.d.ts.map +1 -1
  348. package/dist/providers/local-ollama.js +1 -0
  349. package/dist/providers/local-ollama.js.map +1 -1
  350. package/dist/providers/local-openai-compat.d.ts.map +1 -1
  351. package/dist/providers/local-openai-compat.js +1 -0
  352. package/dist/providers/local-openai-compat.js.map +1 -1
  353. package/dist/providers/mistral.d.ts.map +1 -1
  354. package/dist/providers/mistral.js +1 -0
  355. package/dist/providers/mistral.js.map +1 -1
  356. package/dist/providers/model-catalog.d.ts.map +1 -1
  357. package/dist/providers/model-catalog.js +6 -1
  358. package/dist/providers/model-catalog.js.map +1 -1
  359. package/dist/providers/openai-compat-discovery.d.ts +1 -4
  360. package/dist/providers/openai-compat-discovery.d.ts.map +1 -1
  361. package/dist/providers/openai-compat-discovery.js +10 -5
  362. package/dist/providers/openai-compat-discovery.js.map +1 -1
  363. package/dist/providers/openai-compat-remote.d.ts.map +1 -1
  364. package/dist/providers/openai-compat-remote.js +1 -0
  365. package/dist/providers/openai-compat-remote.js.map +1 -1
  366. package/dist/providers/openai.d.ts.map +1 -1
  367. package/dist/providers/openai.js +1 -0
  368. package/dist/providers/openai.js.map +1 -1
  369. package/dist/providers/openrouter.d.ts.map +1 -1
  370. package/dist/providers/openrouter.js +1 -0
  371. package/dist/providers/openrouter.js.map +1 -1
  372. package/dist/providers/task-routing.d.ts +1 -0
  373. package/dist/providers/task-routing.d.ts.map +1 -1
  374. package/dist/providers/task-routing.js +8 -1
  375. package/dist/providers/task-routing.js.map +1 -1
  376. package/dist/providers/types.d.ts +1 -0
  377. package/dist/providers/types.d.ts.map +1 -1
  378. package/dist/scheduler/heartbeat.d.ts.map +1 -1
  379. package/dist/scheduler/heartbeat.js +70 -18
  380. package/dist/scheduler/heartbeat.js.map +1 -1
  381. package/dist/security/confidential-runtime.d.ts +1 -1
  382. package/dist/security/confidential-runtime.d.ts.map +1 -1
  383. package/dist/security/confidential-runtime.js +13 -3
  384. package/dist/security/confidential-runtime.js.map +1 -1
  385. package/dist/security/secret-handles.d.ts +29 -0
  386. package/dist/security/secret-handles.d.ts.map +1 -0
  387. package/dist/security/secret-handles.js +58 -0
  388. package/dist/security/secret-handles.js.map +1 -0
  389. package/dist/security/secret-leak-corpus.d.ts +8 -0
  390. package/dist/security/secret-leak-corpus.d.ts.map +1 -0
  391. package/dist/security/secret-leak-corpus.js +61 -0
  392. package/dist/security/secret-leak-corpus.js.map +1 -0
  393. package/dist/security/secret-normalization.d.ts +4 -0
  394. package/dist/security/secret-normalization.d.ts.map +1 -0
  395. package/dist/security/secret-normalization.js +10 -0
  396. package/dist/security/secret-normalization.js.map +1 -0
  397. package/dist/security/secret-policy.d.ts +27 -0
  398. package/dist/security/secret-policy.d.ts.map +1 -0
  399. package/dist/security/secret-policy.js +202 -0
  400. package/dist/security/secret-policy.js.map +1 -0
  401. package/dist/security/secret-refs.d.ts +13 -0
  402. package/dist/security/secret-refs.d.ts.map +1 -1
  403. package/dist/security/secret-refs.js +21 -2
  404. package/dist/security/secret-refs.js.map +1 -1
  405. package/dist/session/session-preview.d.ts.map +1 -1
  406. package/dist/session/session-preview.js +2 -1
  407. package/dist/session/session-preview.js.map +1 -1
  408. package/dist/session/session-title-constants.d.ts +2 -0
  409. package/dist/session/session-title-constants.d.ts.map +1 -0
  410. package/dist/session/session-title-constants.js +2 -0
  411. package/dist/session/session-title-constants.js.map +1 -0
  412. package/dist/session/session-title.d.ts +16 -0
  413. package/dist/session/session-title.d.ts.map +1 -0
  414. package/dist/session/session-title.js +77 -0
  415. package/dist/session/session-title.js.map +1 -0
  416. package/dist/skills/agent-cv.d.ts.map +1 -1
  417. package/dist/skills/agent-cv.js +6 -1
  418. package/dist/skills/agent-cv.js.map +1 -1
  419. package/dist/skills/skill-manifest.d.ts +5 -0
  420. package/dist/skills/skill-manifest.d.ts.map +1 -1
  421. package/dist/skills/skill-manifest.js +14 -0
  422. package/dist/skills/skill-manifest.js.map +1 -1
  423. package/dist/skills/skills-lifecycle.d.ts.map +1 -1
  424. package/dist/skills/skills-lifecycle.js +2 -0
  425. package/dist/skills/skills-lifecycle.js.map +1 -1
  426. package/dist/tui-stop.d.ts +8 -0
  427. package/dist/tui-stop.d.ts.map +1 -0
  428. package/dist/tui-stop.js +11 -0
  429. package/dist/tui-stop.js.map +1 -0
  430. package/dist/tui.d.ts +18 -0
  431. package/dist/tui.d.ts.map +1 -1
  432. package/dist/tui.js +225 -44
  433. package/dist/tui.js.map +1 -1
  434. package/dist/tunnel/cloudflare-tunnel-provider.d.ts +87 -0
  435. package/dist/tunnel/cloudflare-tunnel-provider.d.ts.map +1 -0
  436. package/dist/tunnel/cloudflare-tunnel-provider.js +537 -0
  437. package/dist/tunnel/cloudflare-tunnel-provider.js.map +1 -0
  438. package/dist/tunnel/ngrok-tunnel-provider.d.ts +1 -5
  439. package/dist/tunnel/ngrok-tunnel-provider.d.ts.map +1 -1
  440. package/dist/tunnel/ngrok-tunnel-provider.js +2 -10
  441. package/dist/tunnel/ngrok-tunnel-provider.js.map +1 -1
  442. package/dist/tunnel/tunnel-provider-utils.d.ts +5 -0
  443. package/dist/tunnel/tunnel-provider-utils.d.ts.map +1 -1
  444. package/dist/tunnel/tunnel-provider-utils.js +8 -0
  445. package/dist/tunnel/tunnel-provider-utils.js.map +1 -1
  446. package/dist/types/container.d.ts +3 -0
  447. package/dist/types/container.d.ts.map +1 -1
  448. package/dist/types/models.d.ts +1 -1
  449. package/dist/types/models.d.ts.map +1 -1
  450. package/dist/types/models.js +1 -0
  451. package/dist/types/models.js.map +1 -1
  452. package/dist/types/session.d.ts +3 -0
  453. package/dist/types/session.d.ts.map +1 -1
  454. package/dist/utils/json-object.d.ts +2 -0
  455. package/dist/utils/json-object.d.ts.map +1 -0
  456. package/dist/utils/json-object.js +13 -0
  457. package/dist/utils/json-object.js.map +1 -0
  458. package/dist/utils/transport-errors.d.ts.map +1 -1
  459. package/dist/utils/transport-errors.js +3 -1
  460. package/dist/utils/transport-errors.js.map +1 -1
  461. package/dist/workflow/schema.d.ts +85 -0
  462. package/dist/workflow/schema.d.ts.map +1 -0
  463. package/dist/workflow/schema.js +131 -0
  464. package/dist/workflow/schema.js.map +1 -0
  465. package/dist/workspace.d.ts.map +1 -1
  466. package/dist/workspace.js +21 -0
  467. package/dist/workspace.js.map +1 -1
  468. package/docs/content/README.md +24 -3
  469. package/docs/content/channels/admin-console.md +1 -1
  470. package/docs/content/developer-guide/README.md +3 -0
  471. package/docs/content/developer-guide/approvals.md +27 -0
  472. package/docs/content/developer-guide/architecture.md +3 -0
  473. package/docs/content/developer-guide/identity.md +119 -0
  474. package/docs/content/developer-guide/workflows.md +64 -0
  475. package/docs/content/extensibility/adaptive-skills.md +1 -1
  476. package/docs/content/extensibility/plugins.md +46 -4
  477. package/docs/content/extensibility/skills.md +60 -1
  478. package/docs/content/getting-started/README.md +1 -0
  479. package/docs/content/getting-started/authentication.md +148 -4
  480. package/docs/content/getting-started/first-channel.md +1 -1
  481. package/docs/content/getting-started/local-vs-cloud.md +254 -0
  482. package/docs/content/getting-started/quickstart.md +20 -0
  483. package/docs/content/guides/bundled-skills.md +4 -3
  484. package/docs/content/guides/cloudflare-tunnel.md +136 -0
  485. package/docs/content/guides/remote-access.md +38 -0
  486. package/docs/content/guides/skills/README.md +3 -3
  487. package/docs/content/guides/skills/communication.md +2 -1
  488. package/docs/content/guides/skills/development.md +54 -0
  489. package/docs/content/guides/skills/integrations.md +44 -0
  490. package/docs/content/internal/approval-rule-pipeline.md +69 -0
  491. package/docs/content/internal/roadmap.md +394 -50
  492. package/docs/content/manifesto.md +1 -1
  493. package/docs/content/reference/commands.md +5 -2
  494. package/docs/content/reference/configuration.md +23 -7
  495. package/docs/content/reference/diagnostics.md +8 -3
  496. package/docs/content/reference/faq.md +4 -1
  497. package/docs/static/docs.js +4 -1
  498. package/package.json +13 -5
  499. package/skills/brand-voice/SKILL.md +7 -5
  500. package/skills/download-platform-invoices/SKILL.md +146 -0
  501. package/skills/download-platform-invoices/adapters/anthropic.cjs +4 -0
  502. package/skills/download-platform-invoices/adapters/atlassian.cjs +4 -0
  503. package/skills/download-platform-invoices/adapters/aws.cjs +143 -0
  504. package/skills/download-platform-invoices/adapters/azure.cjs +115 -0
  505. package/skills/download-platform-invoices/adapters/datev-unternehmen-online.cjs +206 -0
  506. package/skills/download-platform-invoices/adapters/gcp.cjs +408 -0
  507. package/skills/download-platform-invoices/adapters/github.cjs +4 -0
  508. package/skills/download-platform-invoices/adapters/google-ads.cjs +298 -0
  509. package/skills/download-platform-invoices/adapters/linkedin.cjs +4 -0
  510. package/skills/download-platform-invoices/adapters/openai.cjs +4 -0
  511. package/skills/download-platform-invoices/adapters/recorded-fixture.cjs +100 -0
  512. package/skills/download-platform-invoices/adapters/scrape.cjs +451 -0
  513. package/skills/download-platform-invoices/adapters/stripe.cjs +103 -0
  514. package/skills/download-platform-invoices/fixtures/datev-unternehmen-online-upload.json +13 -0
  515. package/skills/download-platform-invoices/fixtures/recorded-anthropic.json +87 -0
  516. package/skills/download-platform-invoices/fixtures/recorded-atlassian.json +87 -0
  517. package/skills/download-platform-invoices/fixtures/recorded-aws.json +68 -0
  518. package/skills/download-platform-invoices/fixtures/recorded-azure.json +87 -0
  519. package/skills/download-platform-invoices/fixtures/recorded-gcp.json +87 -0
  520. package/skills/download-platform-invoices/fixtures/recorded-github.json +87 -0
  521. package/skills/download-platform-invoices/fixtures/recorded-google-ads.json +68 -0
  522. package/skills/download-platform-invoices/fixtures/recorded-linkedin.json +87 -0
  523. package/skills/download-platform-invoices/fixtures/recorded-openai.json +87 -0
  524. package/skills/download-platform-invoices/fixtures/recorded-stripe.json +68 -0
  525. package/skills/download-platform-invoices/fixtures/stripe-invoices.json +16 -0
  526. package/skills/download-platform-invoices/harvester.cjs +449 -0
  527. package/skills/download-platform-invoices/helpers/audit.cjs +25 -0
  528. package/skills/download-platform-invoices/helpers/config.cjs +245 -0
  529. package/skills/download-platform-invoices/helpers/escalation.cjs +51 -0
  530. package/skills/download-platform-invoices/helpers/money.cjs +125 -0
  531. package/skills/download-platform-invoices/helpers/schema.cjs +50 -0
  532. package/skills/download-platform-invoices/helpers/totp.cjs +37 -0
  533. package/skills/download-platform-invoices/index.cjs +30 -0
  534. package/skills/download-platform-invoices/schema.json +37 -0
  535. package/skills/warehouse-sql/SKILL.md +164 -0
  536. package/skills/warehouse-sql/evals/tpch_eval_planner.py +132 -0
  537. package/skills/warehouse-sql/evals/tpch_scenarios.json +86 -0
  538. package/skills/warehouse-sql/evals/tpch_tiny.sql +80 -0
  539. package/skills/warehouse-sql/references/backend-contract.md +64 -0
  540. package/skills/warehouse-sql/scripts/warehouse_sql.py +1469 -0
  541. package/console/dist/assets/chat-CwaxVsg1.js +0 -93
  542. package/console/dist/assets/chat-DN6j8zuG.css +0 -1
  543. package/console/dist/assets/index-De9e9-ta.js +0 -16
  544. package/console/dist/assets/terminal-DFbKWIqg.js +0 -1
  545. package/dist/gateway/memory-consolidation-runner.d.ts.map +0 -1
  546. package/dist/gateway/memory-consolidation-runner.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,114 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.16.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.16.0) - 2026-05-07
6
+
7
+ ### Added
8
+
9
+ - **macOS desktop wrapper**: Source builds can run `npm run desktop` for a
10
+ native Electron shell around the existing `/chat` experience, with menu
11
+ access to `/admin`, automatic local-gateway startup, packaged runtime
12
+ preparation, and DMG build scripts.
13
+ - **Browser provider substrate**: Browser automation can run through a local
14
+ persistent Playwright profile or Browser Use Cloud CDP sessions. Browser Use
15
+ Cloud reads `BROWSER_USE_API_KEY` from the encrypted secret store, records
16
+ usage/audit events, rejects unsafe local profile hints, and reports setup
17
+ problems through `hybridclaw doctor browser-use`.
18
+ - **Cloudflare Tunnel provider**: Local gateways can use
19
+ `deployment.tunnel.provider=cloudflare` with `CLOUDFLARE_TUNNEL_TOKEN` or
20
+ certificate credentials from encrypted runtime secrets, plus a dedicated
21
+ setup guide and admin tunnel status.
22
+ - **A2A outbound delivery**: Agent-to-agent envelopes can be delivered through
23
+ JSON-RPC Agent Card peers or signed webhook peers with an outbox processor,
24
+ retry/backoff, audit events, secret-backed bearer tokens, and operator
25
+ escalation when delivery cannot continue safely.
26
+ - **A2A webhook inbound endpoint**: Gateways accept signed envelopes from
27
+ trusted non-A2A peers at `POST /a2a/webhook/:peerId` with HMAC-SHA256
28
+ verification, replay-window enforcement, per-peer SecretRef-backed shared
29
+ secrets, sender/recipient validation against local agents, configurable
30
+ per-peer rate limiting (default 60/min → 429), and structured audit events
31
+ for every inbound POST.
32
+ - **Monthly invoice harvester skill**: The bundled
33
+ `download-platform-invoices` skill collects official SaaS invoice PDFs and
34
+ normalized records across Stripe, Google Ads, AWS, Azure, GCP, browser-driven
35
+ SaaS portals, and DATEV Unternehmen Online handoff flows.
36
+ - **Warehouse SQL skill**: The bundled `warehouse-sql` skill reviews and runs
37
+ read-only natural-language SQL against cached warehouse schemas, with a
38
+ deterministic SQLite eval fixture and optional connector-backed execution for
39
+ production warehouses.
40
+ - **Google OAuth secret routes**: `hybridclaw secret route ...` and
41
+ `/secret route ...` can map URL prefixes to stored secrets or short-lived
42
+ Google OAuth access tokens for direct `http_request` calls such as Google Ads
43
+ API access.
44
+ - **Interactive escalation handoff**: Runtime middleware can pause for
45
+ operator-facing escalation, collect resumable interaction context, and expose
46
+ browser controls for continuing or resolving pending approvals.
47
+ - **AI-generated session titles**: `auxiliaryModels.session_title` can use an
48
+ auxiliary model to title recent sessions from the first user message while
49
+ preserving the local preview fallback when disabled.
50
+ - **Canonical identity discovery**: User and agent identities now have shared
51
+ parsers, local instance-id allocation, and DNS-style TXT discovery records
52
+ that map canonical identities to peer URLs and public keys for federation.
53
+ - **Per-agent liveness surface**: Gateway status now includes agent liveness
54
+ metadata for admin and health surfaces.
55
+ - **Workflow definition schema**: YAML workflow definitions can declare
56
+ agent-owned steps, transitions, and `stakes_threshold` escalation hints with
57
+ validation coverage.
58
+ - **Classifier middleware contract**: Agent middleware can classify, warn,
59
+ transform, block, or escalate pre-send and post-receive content, giving
60
+ plugins such as `brand-voice` and confidential leak checks a shared runtime
61
+ surface.
62
+ - **Console skill ZIP overwrite control**: The admin Skills page can upload a
63
+ skill ZIP with an explicit `--force` overwrite option while preserving the
64
+ existing skill if the replacement copy fails.
65
+
66
+ ### Changed
67
+
68
+ - **Approval policy rule pipeline**: Container approval evaluation now runs
69
+ through a hook-fed, policy-orderable rule pipeline, preserving the existing
70
+ trust-store layout while giving plugins pre/post tool-use visibility.
71
+ - **Provider fallback chains**: `HYBRIDAI_FALLBACK_CHAIN` can route model calls
72
+ to alternate providers on auth and rate-limit failures, with primary-provider
73
+ cooldowns and streaming-safe retry gates.
74
+ - **A2A retry classification is shared**: Outbound A2A delivery and transport
75
+ error handling use common retry classifications so transient failures,
76
+ permanent failures, and escalation paths stay consistent.
77
+ - **Web chat sessions are easier to resume**: Recent-session history has clearer
78
+ titles/snippets, agent switching is more stable, and active-session routing is
79
+ less prone to stale agent state after UI changes.
80
+ - **Browser tooling is stricter and more capable**: Browser tools share
81
+ navigation/profile guards, support reusable browser login state across host
82
+ and container runtimes, and handle download-heavy invoice flows more
83
+ predictably.
84
+ - **TUI activity rendering is calmer**: Tool activity rows stack and de-dupe
85
+ more cleanly, repeated activity lines are suppressed, and `Esc` stops the
86
+ active run instead of leaving the session running in the background.
87
+ - **Secret-bearing tool calls are narrower**: Gateway-side secret injection
88
+ resolves non-LLM credentials and Google OAuth tokens at request time instead
89
+ of exposing long-lived credentials to agent context.
90
+ - **Provider discovery errors are clearer**: Shared discovery-error helpers and
91
+ normalized OpenRouter fallback hints keep model selection output less noisy.
92
+ - **IMAP polling failures stay local**: Email transport timeouts are contained
93
+ to the IMAP connection path instead of leaking into broader gateway state.
94
+ - **Release automation is stricter**: Release workflows validate promoted image
95
+ tags, pin newer checkout/setup actions, tolerate build-cache export failures,
96
+ and enforce the Node engine during npm installs.
97
+
98
+ ### Fixed
99
+
100
+ - **Gateway transport timeout resilience**: Host/container transport timeouts no
101
+ longer bring down the gateway; affected runs fail locally while the gateway
102
+ stays available for subsequent work.
103
+ - **Google Ads invoice harvesting**: Google Ads invoice discovery and PDF
104
+ downloads use the correct InvoiceService and GoogleAdsService paths,
105
+ including accessible-customer, manager-client, and billing-setup discovery.
106
+ - **TUI stop behavior**: Pressing `Esc` reliably stops the in-flight TUI
107
+ session run.
108
+ - **TUI tool activity duplication**: Repeated and stacked tool rows no longer
109
+ produce noisy duplicate output.
110
+ - **OpenRouter fallback hints**: HybridAI-prefixed model hints are stripped
111
+ before OpenRouter fallback resolution.
112
+
5
113
  ## [0.15.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.15.0) - 2026-04-29
6
114
 
7
115
  ### Added
package/README.md CHANGED
@@ -84,6 +84,18 @@ Open locally:
84
84
 
85
85
  Requirement: Node.js 22 (Docker recommended for sandbox)
86
86
 
87
+ Desktop wrapper from source:
88
+
89
+ ```bash
90
+ npm install
91
+ npm run desktop
92
+ ```
93
+
94
+ The Electron workspace opens the existing `/chat` surface in a native macOS
95
+ window, exposes `/admin` from the app menu, reuses a running local gateway when
96
+ available, and starts the bundled gateway automatically when it is not already
97
+ listening on `http://127.0.0.1:9090`.
98
+
87
99
  Release notes live in [CHANGELOG.md](./CHANGELOG.md), and the browsable
88
100
  operator and maintainer manual lives at
89
101
  [hybridclaw.io/docs](https://www.hybridclaw.io/docs/).
@@ -96,7 +108,8 @@ Once the gateway is running, open HybridClaw locally:
96
108
  - Web Chat keeps a recent-session sidebar and can search conversation titles
97
109
  with contextual snippets before you reopen an older browser session
98
110
  - Web Chat shows live context-window usage, accepts `/context`, and lets you
99
- switch the active agent and model from the composer
111
+ switch the active agent and model from the composer; active agent switching is
112
+ preserved across session reloads and UI route changes
100
113
  - Web Chat accepts `/btw <question>` side questions while a primary run is
101
114
  active, so you can ask an ephemeral follow-up without interrupting the
102
115
  current run
@@ -133,6 +146,8 @@ Once the gateway is running, open HybridClaw locally:
133
146
  Signal QR linking, Twilio voice settings, and per-channel instructions that
134
147
  are injected into prompts at runtime.
135
148
  - `/admin/approvals` manages approval policies from the browser.
149
+ - Approval policy evaluation runs through a hook-fed rule pipeline, so
150
+ workspace policy ordering and plugin tool-use hooks share one approval path.
136
151
  - `/admin/gateway` reloads runtime config and refreshes secrets from the
137
152
  browser, and shows public URL plus tunnel status, without tearing down the
138
153
  enclosing workspace container; keep `hybridclaw gateway restart` for
@@ -144,14 +159,18 @@ Once the gateway is running, open HybridClaw locally:
144
159
  share when that split is configured.
145
160
  - `deployment.mode`, `deployment.public_url`, `deployment.tunnel.provider`, and
146
161
  `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.
162
+ and tunnel health cadence. The built-in ngrok, Tailscale Funnel, and
163
+ Cloudflare Tunnel providers read `NGROK_AUTHTOKEN`, `TS_AUTHKEY`,
164
+ `CLOUDFLARE_TUNNEL_TOKEN`, and Cloudflare certificate credentials from the
165
+ encrypted runtime secret store.
150
166
  - `container.warmPool` keeps a bounded adaptive pool of idle host/container
151
167
  runtimes for recently active agents when low cold-start latency matters.
152
168
  - `container.persistBashState` controls whether bash tool calls share shell
153
169
  state (`cd`, exported env vars, aliases) across turns in the same active
154
170
  runtime session; `/admin/config` exposes the same setting as `Persistent bash state`.
171
+ - `security.confidentialRedactionEnabled` controls whether optional
172
+ `.confidential.yml` rules redact prompts and block matching outbound text;
173
+ `/admin/config` exposes the same setting as `Confidential leak guard`.
155
174
  - `hybridclaw audit scan-leaks` scans historical audit logs against optional
156
175
  `.confidential.yml` rules for NDA-class client, project, person, keyword,
157
176
  and regex matches.
@@ -159,9 +178,12 @@ Once the gateway is running, open HybridClaw locally:
159
178
  exposes a custom workspace display root such as `/app`.
160
179
  - `hybridclaw tui` includes live delegate progress, pulsing tool rows,
161
180
  completion checkmarks, a keyboard-driven approval picker, and a ready-to-run
162
- `hybridclaw tui --resume <sessionId>` command on exit.
181
+ `hybridclaw tui --resume <sessionId>` command on exit. Pressing `Esc` stops
182
+ the active run and returns control to the prompt.
163
183
  - `hybridclaw doctor` checks runtime health including resource hygiene
164
- maintenance for stale gateway artifacts.
184
+ maintenance for stale gateway artifacts. `hybridclaw doctor browser-use`
185
+ checks the local browser automation substrate and can install missing
186
+ Playwright Chromium support with `--fix`.
165
187
  - `hybridclaw onboarding` and related local setup flows can restore the last
166
188
  known-good saved config snapshot or roll back to a tracked revision when
167
189
  `config.json` becomes invalid.
@@ -201,6 +223,13 @@ Once the gateway is running, open HybridClaw locally:
201
223
  - Google OAuth credentials for Workspace skills live in the encrypted runtime
202
224
  secret store; agent runtimes receive short-lived access tokens for `gog` and
203
225
  `gws` instead of long-lived refresh tokens.
226
+ - Canonical user and agent identities use stable lowercase IDs and DNS-style
227
+ discovery records so A2A peers can resolve remote URLs and public keys.
228
+ - `hybridclaw secret route ...` and `/secret route ...` can attach stored
229
+ secrets or Google OAuth access tokens to matching `http_request` URL
230
+ prefixes, including Google Ads API calls.
231
+ - `HYBRIDAI_FALLBACK_CHAIN` can route auth and rate-limit provider failures to
232
+ alternate models/providers with cooldowns before retrying the primary.
204
233
  - Skills can be enabled or disabled globally or per channel from
205
234
  `hybridclaw skill enable|disable`, TUI `/skill config`, or the admin
206
235
  `Skills` page.
@@ -208,7 +237,12 @@ Once the gateway is running, open HybridClaw locally:
208
237
  credentials, supported channels, and per-agent autonomy policy.
209
238
  - Bundled skills include API-backed Google Workspace workflows (`gog`, `gws`),
210
239
  Salesforce inspection, GitHub issue queue processing (`gh-issues`),
211
- brand-voice drafting, and editable Excalidraw diagram creation.
240
+ monthly SaaS invoice harvesting (`download-platform-invoices`),
241
+ natural-language warehouse SQL (`warehouse-sql`), brand-voice drafting, and
242
+ editable Excalidraw diagram creation.
243
+ - Browser automation can use local persistent Playwright profiles or Browser
244
+ Use Cloud sessions with encrypted `BROWSER_USE_API_KEY` storage, usage
245
+ metering, and shared navigation guards.
212
246
  - The repo-shipped `brand-voice` plugin can flag, rewrite, or block final
213
247
  responses that violate configured voice rules before they reach users.
214
248
  - Built-in office skills handle longer PDF creation flows cleanly: the bundled
@@ -4,7 +4,8 @@
4
4
  "trustModelAccepted": false,
5
5
  "trustModelAcceptedAt": "",
6
6
  "trustModelVersion": "",
7
- "trustModelAcceptedBy": ""
7
+ "trustModelAcceptedBy": "",
8
+ "confidentialRedactionEnabled": false
8
9
  },
9
10
  "deployment": {
10
11
  "mode": "local",
@@ -398,6 +399,11 @@
398
399
  "provider": "auto",
399
400
  "model": "",
400
401
  "maxTokens": 0
402
+ },
403
+ "session_title": {
404
+ "provider": "auto",
405
+ "model": "",
406
+ "maxTokens": 0
401
407
  }
402
408
  },
403
409
  "container": {