@hybridaione/hybridclaw 0.19.2 → 0.21.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 (694) hide show
  1. package/AGENTS.md +19 -0
  2. package/CHANGELOG.md +183 -0
  3. package/README.md +36 -7
  4. package/community-skills/meme-generation/SKILL.md +1 -1
  5. package/config.example.json +14 -52
  6. package/console/dist/assets/chat-BBTk0x5Q.css +1 -0
  7. package/console/dist/assets/chat-DZIcidEg.js +94 -0
  8. package/console/dist/assets/cx-Dqc_1ltZ.js +1 -0
  9. package/console/dist/assets/index-DH_jaXi8.js +80 -0
  10. package/console/dist/assets/index-z7-uHEVk.css +1 -0
  11. package/console/dist/assets/query-RUG48qgh.js +1 -0
  12. package/console/dist/assets/{router-NXexqZsi.js → router-BU9baKrP.js} +1 -1
  13. package/console/dist/assets/{terminal-CIu44Bps.js → terminal-BvzXR9aQ.js} +1 -1
  14. package/console/dist/assets/{vendor-BCIzCfhA.js → vendor-C4MCdPcq.js} +1 -1
  15. package/console/dist/index.html +6 -6
  16. package/console/package.json +3 -2
  17. package/container/Dockerfile +5 -5
  18. package/container/dist/approval-policy.js +175 -1
  19. package/container/dist/approval-policy.js.map +1 -1
  20. package/container/dist/audio-transcribe.js +5 -5
  21. package/container/dist/audio-transcribe.js.map +1 -1
  22. package/container/dist/browser-tools.js +416 -135
  23. package/container/dist/browser-tools.js.map +1 -1
  24. package/container/dist/codex-app-server.js +908 -0
  25. package/container/dist/codex-app-server.js.map +1 -0
  26. package/container/dist/codex-app-types.js +2 -0
  27. package/container/dist/codex-app-types.js.map +1 -0
  28. package/container/dist/codex-app-utils.js +10 -0
  29. package/container/dist/codex-app-utils.js.map +1 -0
  30. package/container/dist/codex-hybridclaw-mcp.js +294 -0
  31. package/container/dist/codex-hybridclaw-mcp.js.map +1 -0
  32. package/container/dist/diagram-create.js +113 -58
  33. package/container/dist/diagram-create.js.map +1 -1
  34. package/container/dist/image-generation.js +5 -5
  35. package/container/dist/image-generation.js.map +1 -1
  36. package/container/dist/index.js +181 -6
  37. package/container/dist/index.js.map +1 -1
  38. package/container/dist/ipc.js +10 -2
  39. package/container/dist/ipc.js.map +1 -1
  40. package/container/dist/providers/local-openai-compat.js +5 -1
  41. package/container/dist/providers/local-openai-compat.js.map +1 -1
  42. package/container/dist/providers/provider-ids.js +27 -0
  43. package/container/dist/providers/provider-ids.js.map +1 -1
  44. package/container/dist/tools.js +34 -7
  45. package/container/dist/tools.js.map +1 -1
  46. package/container/dist/types.js.map +1 -1
  47. package/container/dist/video-generation.js +3 -3
  48. package/container/dist/video-generation.js.map +1 -1
  49. package/container/npm-shrinkwrap.json +5750 -0
  50. package/container/package-lock.json +1282 -100
  51. package/container/package.json +7 -2
  52. package/container/shared/browser-navigation.js +1 -1
  53. package/container/shared/network-policy.js +29 -0
  54. package/container/shared/primitive-values.d.ts +3 -0
  55. package/container/shared/primitive-values.js +16 -0
  56. package/container/shared/skill-policy.js +23 -9
  57. package/container/shared/two-factor-detection.d.ts +70 -0
  58. package/container/shared/two-factor-detection.js +183 -0
  59. package/container/src/approval-policy.ts +231 -1
  60. package/container/src/audio-transcribe.ts +5 -5
  61. package/container/src/browser-tools.ts +568 -187
  62. package/container/src/codex-app-server.ts +1231 -0
  63. package/container/src/codex-app-types.ts +21 -0
  64. package/container/src/codex-app-utils.ts +11 -0
  65. package/container/src/codex-hybridclaw-mcp.ts +402 -0
  66. package/container/src/diagram-create.ts +147 -87
  67. package/container/src/image-generation.ts +5 -5
  68. package/container/src/index.ts +237 -3
  69. package/container/src/ipc.ts +14 -2
  70. package/container/src/providers/local-openai-compat.ts +7 -1
  71. package/container/src/providers/provider-ids.ts +37 -0
  72. package/container/src/tools.ts +52 -6
  73. package/container/src/types.ts +7 -0
  74. package/container/src/video-generation.ts +3 -3
  75. package/dist/a2a/a2a-outbound.d.ts +1 -1
  76. package/dist/a2a/a2a-outbound.d.ts.map +1 -1
  77. package/dist/a2a/a2a-outbound.js +1 -1
  78. package/dist/a2a/a2a-outbound.js.map +1 -1
  79. package/dist/a2a/a2a-outbox-delivery.d.ts +3 -0
  80. package/dist/a2a/a2a-outbox-delivery.d.ts.map +1 -1
  81. package/dist/a2a/a2a-outbox-delivery.js +156 -69
  82. package/dist/a2a/a2a-outbox-delivery.js.map +1 -1
  83. package/dist/a2a/a2a-outbox-persistence.d.ts +17 -2
  84. package/dist/a2a/a2a-outbox-persistence.d.ts.map +1 -1
  85. package/dist/a2a/a2a-outbox-persistence.js +74 -5
  86. package/dist/a2a/a2a-outbox-persistence.js.map +1 -1
  87. package/dist/a2a/a2a-outbox-processor.d.ts.map +1 -1
  88. package/dist/a2a/a2a-outbox-processor.js +7 -3
  89. package/dist/a2a/a2a-outbox-processor.js.map +1 -1
  90. package/dist/a2a/audit.d.ts +22 -0
  91. package/dist/a2a/audit.d.ts.map +1 -0
  92. package/dist/a2a/audit.js +29 -0
  93. package/dist/a2a/audit.js.map +1 -0
  94. package/dist/a2a/identity-resolver-invalidation.d.ts +5 -0
  95. package/dist/a2a/identity-resolver-invalidation.d.ts.map +1 -0
  96. package/dist/a2a/identity-resolver-invalidation.js +13 -0
  97. package/dist/a2a/identity-resolver-invalidation.js.map +1 -0
  98. package/dist/a2a/identity-resolver.d.ts +5 -0
  99. package/dist/a2a/identity-resolver.d.ts.map +1 -0
  100. package/dist/a2a/identity-resolver.js +129 -0
  101. package/dist/a2a/identity-resolver.js.map +1 -0
  102. package/dist/a2a/identity.d.ts.map +1 -1
  103. package/dist/a2a/identity.js +30 -9
  104. package/dist/a2a/identity.js.map +1 -1
  105. package/dist/a2a/inbound-pipeline.d.ts.map +1 -1
  106. package/dist/a2a/inbound-pipeline.js +1 -0
  107. package/dist/a2a/inbound-pipeline.js.map +1 -1
  108. package/dist/a2a/peer-descriptor.d.ts +2 -1
  109. package/dist/a2a/peer-descriptor.d.ts.map +1 -1
  110. package/dist/a2a/peer-descriptor.js +25 -12
  111. package/dist/a2a/peer-descriptor.js.map +1 -1
  112. package/dist/a2a/runtime.d.ts +16 -2
  113. package/dist/a2a/runtime.d.ts.map +1 -1
  114. package/dist/a2a/runtime.js +125 -21
  115. package/dist/a2a/runtime.js.map +1 -1
  116. package/dist/a2a/store.d.ts +2 -0
  117. package/dist/a2a/store.d.ts.map +1 -1
  118. package/dist/a2a/store.js +85 -13
  119. package/dist/a2a/store.js.map +1 -1
  120. package/dist/a2a/trust-ledger.d.ts +1 -0
  121. package/dist/a2a/trust-ledger.d.ts.map +1 -1
  122. package/dist/a2a/trust-ledger.js +5 -1
  123. package/dist/a2a/trust-ledger.js.map +1 -1
  124. package/dist/a2a/webhook-outbound.d.ts.map +1 -1
  125. package/dist/a2a/webhook-outbound.js +13 -4
  126. package/dist/a2a/webhook-outbound.js.map +1 -1
  127. package/dist/agent/executor.d.ts.map +1 -1
  128. package/dist/agent/executor.js +3 -5
  129. package/dist/agent/executor.js.map +1 -1
  130. package/dist/agent/prompt-hooks.d.ts.map +1 -1
  131. package/dist/agent/prompt-hooks.js +10 -4
  132. package/dist/agent/prompt-hooks.js.map +1 -1
  133. package/dist/agent/side-effects.d.ts.map +1 -1
  134. package/dist/agent/side-effects.js +11 -3
  135. package/dist/agent/side-effects.js.map +1 -1
  136. package/dist/agents/agent-registry.d.ts.map +1 -1
  137. package/dist/agents/agent-registry.js +36 -1
  138. package/dist/agents/agent-registry.js.map +1 -1
  139. package/dist/agents/agent-types.d.ts +17 -0
  140. package/dist/agents/agent-types.d.ts.map +1 -1
  141. package/dist/agents/agent-types.js +96 -0
  142. package/dist/agents/agent-types.js.map +1 -1
  143. package/dist/audit/audit-events.d.ts.map +1 -1
  144. package/dist/audit/audit-events.js +6 -0
  145. package/dist/audit/audit-events.js.map +1 -1
  146. package/dist/audit/audit-trail.d.ts +3 -0
  147. package/dist/audit/audit-trail.d.ts.map +1 -1
  148. package/dist/audit/audit-trail.js +23 -0
  149. package/dist/audit/audit-trail.js.map +1 -1
  150. package/dist/audit/observability-ingest.d.ts.map +1 -1
  151. package/dist/audit/observability-ingest.js +39 -4
  152. package/dist/audit/observability-ingest.js.map +1 -1
  153. package/dist/auth/google-auth.d.ts +1 -0
  154. package/dist/auth/google-auth.d.ts.map +1 -1
  155. package/dist/auth/google-auth.js +12 -0
  156. package/dist/auth/google-auth.js.map +1 -1
  157. package/dist/auth/hubspot-auth.d.ts +64 -0
  158. package/dist/auth/hubspot-auth.d.ts.map +1 -0
  159. package/dist/auth/hubspot-auth.js +378 -0
  160. package/dist/auth/hubspot-auth.js.map +1 -0
  161. package/dist/board/budget-chip.d.ts +30 -0
  162. package/dist/board/budget-chip.d.ts.map +1 -0
  163. package/dist/board/budget-chip.js +114 -0
  164. package/dist/board/budget-chip.js.map +1 -0
  165. package/dist/board/card-store.d.ts +27 -1
  166. package/dist/board/card-store.d.ts.map +1 -1
  167. package/dist/board/card-store.js +424 -10
  168. package/dist/board/card-store.js.map +1 -1
  169. package/dist/browser/browser-login.js +1 -1
  170. package/dist/browser/browser-login.js.map +1 -1
  171. package/dist/browser/browser-use-cloud-provider.d.ts +3 -1
  172. package/dist/browser/browser-use-cloud-provider.d.ts.map +1 -1
  173. package/dist/browser/browser-use-cloud-provider.js +11 -3
  174. package/dist/browser/browser-use-cloud-provider.js.map +1 -1
  175. package/dist/browser/camofox-provider.d.ts +3 -1
  176. package/dist/browser/camofox-provider.d.ts.map +1 -1
  177. package/dist/browser/camofox-provider.js +12 -4
  178. package/dist/browser/camofox-provider.js.map +1 -1
  179. package/dist/browser/local-provider.d.ts +3 -1
  180. package/dist/browser/local-provider.d.ts.map +1 -1
  181. package/dist/browser/local-provider.js +5 -1
  182. package/dist/browser/local-provider.js.map +1 -1
  183. package/dist/browser/mac-cua-provider.d.ts +127 -0
  184. package/dist/browser/mac-cua-provider.d.ts.map +1 -0
  185. package/dist/browser/mac-cua-provider.js +1172 -0
  186. package/dist/browser/mac-cua-provider.js.map +1 -0
  187. package/dist/browser/managed-browser-pool-launcher.d.ts +25 -0
  188. package/dist/browser/managed-browser-pool-launcher.d.ts.map +1 -0
  189. package/dist/browser/managed-browser-pool-launcher.js +310 -0
  190. package/dist/browser/managed-browser-pool-launcher.js.map +1 -0
  191. package/dist/browser/managed-browser-tenant-policy.d.ts +17 -0
  192. package/dist/browser/managed-browser-tenant-policy.d.ts.map +1 -0
  193. package/dist/browser/managed-browser-tenant-policy.js +181 -0
  194. package/dist/browser/managed-browser-tenant-policy.js.map +1 -0
  195. package/dist/browser/managed-cloud-doctor.d.ts +9 -0
  196. package/dist/browser/managed-cloud-doctor.d.ts.map +1 -0
  197. package/dist/browser/managed-cloud-doctor.js +74 -0
  198. package/dist/browser/managed-cloud-doctor.js.map +1 -0
  199. package/dist/browser/managed-cloud-provider.d.ts +67 -0
  200. package/dist/browser/managed-cloud-provider.d.ts.map +1 -0
  201. package/dist/browser/managed-cloud-provider.js +551 -0
  202. package/dist/browser/managed-cloud-provider.js.map +1 -0
  203. package/dist/browser/playwright-utils.d.ts +19 -5
  204. package/dist/browser/playwright-utils.d.ts.map +1 -1
  205. package/dist/browser/playwright-utils.js +55 -3
  206. package/dist/browser/playwright-utils.js.map +1 -1
  207. package/dist/browser/provider-factory.d.ts +4 -0
  208. package/dist/browser/provider-factory.d.ts.map +1 -1
  209. package/dist/browser/provider-factory.js +24 -0
  210. package/dist/browser/provider-factory.js.map +1 -1
  211. package/dist/browser/provider.d.ts +69 -4
  212. package/dist/browser/provider.d.ts.map +1 -1
  213. package/dist/browser/provider.js +4 -1
  214. package/dist/browser/provider.js.map +1 -1
  215. package/dist/browser/session-config-signature.d.ts +3 -0
  216. package/dist/browser/session-config-signature.d.ts.map +1 -0
  217. package/dist/browser/session-config-signature.js +12 -0
  218. package/dist/browser/session-config-signature.js.map +1 -0
  219. package/dist/channels/discord/runtime.d.ts.map +1 -1
  220. package/dist/channels/discord/runtime.js +1 -1
  221. package/dist/channels/discord/runtime.js.map +1 -1
  222. package/dist/channels/email/runtime.d.ts.map +1 -1
  223. package/dist/channels/email/runtime.js +1 -1
  224. package/dist/channels/email/runtime.js.map +1 -1
  225. package/dist/channels/imessage/backend-bluebubbles.d.ts.map +1 -1
  226. package/dist/channels/imessage/backend-bluebubbles.js +16 -8
  227. package/dist/channels/imessage/backend-bluebubbles.js.map +1 -1
  228. package/dist/channels/msteams/runtime.d.ts.map +1 -1
  229. package/dist/channels/msteams/runtime.js +2 -2
  230. package/dist/channels/msteams/runtime.js.map +1 -1
  231. package/dist/cli/auth-command.d.ts.map +1 -1
  232. package/dist/cli/auth-command.js +215 -6
  233. package/dist/cli/auth-command.js.map +1 -1
  234. package/dist/cli/channels-command.js +1 -1
  235. package/dist/cli/channels-command.js.map +1 -1
  236. package/dist/cli/env-command.d.ts +2 -0
  237. package/dist/cli/env-command.d.ts.map +1 -0
  238. package/dist/cli/env-command.js +57 -0
  239. package/dist/cli/env-command.js.map +1 -0
  240. package/dist/cli/help.d.ts +4 -0
  241. package/dist/cli/help.d.ts.map +1 -1
  242. package/dist/cli/help.js +100 -3
  243. package/dist/cli/help.js.map +1 -1
  244. package/dist/cli/plugin-command.d.ts.map +1 -1
  245. package/dist/cli/plugin-command.js +4 -4
  246. package/dist/cli/plugin-command.js.map +1 -1
  247. package/dist/cli/skill-command.d.ts.map +1 -1
  248. package/dist/cli/skill-command.js +16 -2
  249. package/dist/cli/skill-command.js.map +1 -1
  250. package/dist/cli.d.ts.map +1 -1
  251. package/dist/cli.js +205 -7
  252. package/dist/cli.js.map +1 -1
  253. package/dist/command-registry.d.ts.map +1 -1
  254. package/dist/command-registry.js +255 -4
  255. package/dist/command-registry.js.map +1 -1
  256. package/dist/commands/btw-command.d.ts.map +1 -1
  257. package/dist/commands/btw-command.js +6 -4
  258. package/dist/commands/btw-command.js.map +1 -1
  259. package/dist/commands/second-opinion-command.d.ts +27 -0
  260. package/dist/commands/second-opinion-command.d.ts.map +1 -0
  261. package/dist/commands/second-opinion-command.js +757 -0
  262. package/dist/commands/second-opinion-command.js.map +1 -0
  263. package/dist/commands/second-opinion-web-search.d.ts +16 -0
  264. package/dist/commands/second-opinion-web-search.d.ts.map +1 -0
  265. package/dist/commands/second-opinion-web-search.js +347 -0
  266. package/dist/commands/second-opinion-web-search.js.map +1 -0
  267. package/dist/config/config.d.ts +2 -1
  268. package/dist/config/config.d.ts.map +1 -1
  269. package/dist/config/config.js +4 -2
  270. package/dist/config/config.js.map +1 -1
  271. package/dist/config/runtime-config-edit.d.ts +2 -1
  272. package/dist/config/runtime-config-edit.d.ts.map +1 -1
  273. package/dist/config/runtime-config-edit.js +36 -0
  274. package/dist/config/runtime-config-edit.js.map +1 -1
  275. package/dist/config/runtime-config-revisions.d.ts +1 -1
  276. package/dist/config/runtime-config-revisions.d.ts.map +1 -1
  277. package/dist/config/runtime-config-revisions.js +1 -0
  278. package/dist/config/runtime-config-revisions.js.map +1 -1
  279. package/dist/config/runtime-config.d.ts +31 -7
  280. package/dist/config/runtime-config.d.ts.map +1 -1
  281. package/dist/config/runtime-config.js +251 -52
  282. package/dist/config/runtime-config.js.map +1 -1
  283. package/dist/config/runtime-env.d.ts +10 -0
  284. package/dist/config/runtime-env.d.ts.map +1 -0
  285. package/dist/config/runtime-env.js +149 -0
  286. package/dist/config/runtime-env.js.map +1 -0
  287. package/dist/doctor/checks/cua-mac.d.ts +13 -0
  288. package/dist/doctor/checks/cua-mac.d.ts.map +1 -0
  289. package/dist/doctor/checks/cua-mac.js +123 -0
  290. package/dist/doctor/checks/cua-mac.js.map +1 -0
  291. package/dist/doctor/checks/docker.js +3 -3
  292. package/dist/doctor/checks/docker.js.map +1 -1
  293. package/dist/doctor/checks/index.d.ts.map +1 -1
  294. package/dist/doctor/checks/index.js +6 -0
  295. package/dist/doctor/checks/index.js.map +1 -1
  296. package/dist/doctor/checks/security.d.ts.map +1 -1
  297. package/dist/doctor/checks/security.js +46 -0
  298. package/dist/doctor/checks/security.js.map +1 -1
  299. package/dist/doctor/types.d.ts +1 -1
  300. package/dist/doctor/types.d.ts.map +1 -1
  301. package/dist/doctor/types.js +1 -0
  302. package/dist/doctor/types.js.map +1 -1
  303. package/dist/doctor/utils.d.ts.map +1 -1
  304. package/dist/doctor/utils.js +4 -0
  305. package/dist/doctor/utils.js.map +1 -1
  306. package/dist/evals/eval-command.d.ts.map +1 -1
  307. package/dist/evals/eval-command.js +2 -9
  308. package/dist/evals/eval-command.js.map +1 -1
  309. package/dist/evals/hybridai-skills-command.d.ts.map +1 -1
  310. package/dist/evals/hybridai-skills-command.js +1 -0
  311. package/dist/evals/hybridai-skills-command.js.map +1 -1
  312. package/dist/evolution/harness-evolution.d.ts +215 -0
  313. package/dist/evolution/harness-evolution.d.ts.map +1 -0
  314. package/dist/evolution/harness-evolution.js +1328 -0
  315. package/dist/evolution/harness-evolution.js.map +1 -0
  316. package/dist/fax/accounting.d.ts +31 -0
  317. package/dist/fax/accounting.d.ts.map +1 -0
  318. package/dist/fax/accounting.js +65 -0
  319. package/dist/fax/accounting.js.map +1 -0
  320. package/dist/gateway/gateway-admin-secrets.d.ts +33 -0
  321. package/dist/gateway/gateway-admin-secrets.d.ts.map +1 -0
  322. package/dist/gateway/gateway-admin-secrets.js +173 -0
  323. package/dist/gateway/gateway-admin-secrets.js.map +1 -0
  324. package/dist/gateway/gateway-agent-cards.js +8 -8
  325. package/dist/gateway/gateway-agent-cards.js.map +1 -1
  326. package/dist/gateway/gateway-chat-service.d.ts +7 -0
  327. package/dist/gateway/gateway-chat-service.d.ts.map +1 -1
  328. package/dist/gateway/gateway-chat-service.js +146 -7
  329. package/dist/gateway/gateway-chat-service.js.map +1 -1
  330. package/dist/gateway/gateway-client.d.ts +8 -1
  331. package/dist/gateway/gateway-client.d.ts.map +1 -1
  332. package/dist/gateway/gateway-client.js +16 -0
  333. package/dist/gateway/gateway-client.js.map +1 -1
  334. package/dist/gateway/gateway-http-proxy.d.ts.map +1 -1
  335. package/dist/gateway/gateway-http-proxy.js +425 -56
  336. package/dist/gateway/gateway-http-proxy.js.map +1 -1
  337. package/dist/gateway/gateway-http-server.d.ts.map +1 -1
  338. package/dist/gateway/gateway-http-server.js +1473 -14
  339. package/dist/gateway/gateway-http-server.js.map +1 -1
  340. package/dist/gateway/gateway-http-utils.d.ts +2 -1
  341. package/dist/gateway/gateway-http-utils.d.ts.map +1 -1
  342. package/dist/gateway/gateway-http-utils.js +2 -12
  343. package/dist/gateway/gateway-http-utils.js.map +1 -1
  344. package/dist/gateway/gateway-plugin-service.d.ts.map +1 -1
  345. package/dist/gateway/gateway-plugin-service.js +6 -6
  346. package/dist/gateway/gateway-plugin-service.js.map +1 -1
  347. package/dist/gateway/gateway-scheduled-task-service.d.ts +3 -2
  348. package/dist/gateway/gateway-scheduled-task-service.d.ts.map +1 -1
  349. package/dist/gateway/gateway-scheduled-task-service.js +36 -49
  350. package/dist/gateway/gateway-scheduled-task-service.js.map +1 -1
  351. package/dist/gateway/gateway-secret-injection.d.ts +2 -2
  352. package/dist/gateway/gateway-secret-injection.d.ts.map +1 -1
  353. package/dist/gateway/gateway-service.d.ts +11 -2
  354. package/dist/gateway/gateway-service.d.ts.map +1 -1
  355. package/dist/gateway/gateway-service.js +566 -156
  356. package/dist/gateway/gateway-service.js.map +1 -1
  357. package/dist/gateway/gateway-types.d.ts +144 -3
  358. package/dist/gateway/gateway-types.d.ts.map +1 -1
  359. package/dist/gateway/gateway-types.js.map +1 -1
  360. package/dist/gateway/gateway-utils.d.ts +1 -0
  361. package/dist/gateway/gateway-utils.d.ts.map +1 -1
  362. package/dist/gateway/gateway-utils.js +18 -0
  363. package/dist/gateway/gateway-utils.js.map +1 -1
  364. package/dist/gateway/gateway.js +18 -20
  365. package/dist/gateway/gateway.js.map +1 -1
  366. package/dist/gateway/interactive-escalation.d.ts +10 -13
  367. package/dist/gateway/interactive-escalation.d.ts.map +1 -1
  368. package/dist/gateway/interactive-escalation.js +96 -74
  369. package/dist/gateway/interactive-escalation.js.map +1 -1
  370. package/dist/gateway/openai-compatible.d.ts.map +1 -1
  371. package/dist/gateway/openai-compatible.js +39 -1
  372. package/dist/gateway/openai-compatible.js.map +1 -1
  373. package/dist/gateway/output-guard-admin.d.ts +5 -0
  374. package/dist/gateway/output-guard-admin.d.ts.map +1 -0
  375. package/dist/gateway/output-guard-admin.js +574 -0
  376. package/dist/gateway/output-guard-admin.js.map +1 -0
  377. package/dist/gateway/proactive-delivery.d.ts +3 -1
  378. package/dist/gateway/proactive-delivery.d.ts.map +1 -1
  379. package/dist/gateway/proactive-delivery.js +13 -0
  380. package/dist/gateway/proactive-delivery.js.map +1 -1
  381. package/dist/gateway/provider-status.d.ts +10 -0
  382. package/dist/gateway/provider-status.d.ts.map +1 -0
  383. package/dist/gateway/provider-status.js +160 -0
  384. package/dist/gateway/provider-status.js.map +1 -0
  385. package/dist/gateway/response-ratings.d.ts +17 -0
  386. package/dist/gateway/response-ratings.d.ts.map +1 -0
  387. package/dist/gateway/response-ratings.js +78 -0
  388. package/dist/gateway/response-ratings.js.map +1 -0
  389. package/dist/gateway/skill-commands.js +2 -2
  390. package/dist/gateway/skill-commands.js.map +1 -1
  391. package/dist/identity/agent-id.d.ts +11 -0
  392. package/dist/identity/agent-id.d.ts.map +1 -1
  393. package/dist/identity/agent-id.js +21 -0
  394. package/dist/identity/agent-id.js.map +1 -1
  395. package/dist/identity/resolver.d.ts +3 -0
  396. package/dist/identity/resolver.d.ts.map +1 -1
  397. package/dist/identity/resolver.js +19 -1
  398. package/dist/identity/resolver.js.map +1 -1
  399. package/dist/infra/container-runner.d.ts.map +1 -1
  400. package/dist/infra/container-runner.js +35 -35
  401. package/dist/infra/container-runner.js.map +1 -1
  402. package/dist/infra/container-setup.js +4 -4
  403. package/dist/infra/container-setup.js.map +1 -1
  404. package/dist/infra/host-runner.d.ts.map +1 -1
  405. package/dist/infra/host-runner.js +25 -28
  406. package/dist/infra/host-runner.js.map +1 -1
  407. package/dist/infra/ipc.d.ts.map +1 -1
  408. package/dist/infra/ipc.js +6 -1
  409. package/dist/infra/ipc.js.map +1 -1
  410. package/dist/infra/tool-progress-parser.d.ts +4 -0
  411. package/dist/infra/tool-progress-parser.d.ts.map +1 -0
  412. package/dist/infra/tool-progress-parser.js +24 -0
  413. package/dist/infra/tool-progress-parser.js.map +1 -0
  414. package/dist/infra/worker-signature.d.ts +4 -0
  415. package/dist/infra/worker-signature.d.ts.map +1 -1
  416. package/dist/infra/worker-signature.js +3 -0
  417. package/dist/infra/worker-signature.js.map +1 -1
  418. package/dist/media/audio-transcription.d.ts.map +1 -1
  419. package/dist/media/audio-transcription.js +1 -2
  420. package/dist/media/audio-transcription.js.map +1 -1
  421. package/dist/media/pdf-context.d.ts.map +1 -1
  422. package/dist/media/pdf-context.js +1 -2
  423. package/dist/media/pdf-context.js.map +1 -1
  424. package/dist/memory/db.d.ts +108 -19
  425. package/dist/memory/db.d.ts.map +1 -1
  426. package/dist/memory/db.js +1151 -82
  427. package/dist/memory/db.js.map +1 -1
  428. package/dist/memory/jobs.d.ts +51 -0
  429. package/dist/memory/jobs.d.ts.map +1 -0
  430. package/dist/memory/jobs.js +322 -0
  431. package/dist/memory/jobs.js.map +1 -0
  432. package/dist/onboarding.js +2 -2
  433. package/dist/onboarding.js.map +1 -1
  434. package/dist/plugins/plugin-install.d.ts +1 -1
  435. package/dist/plugins/plugin-install.d.ts.map +1 -1
  436. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  437. package/dist/plugins/plugin-manager.js +9 -3
  438. package/dist/plugins/plugin-manager.js.map +1 -1
  439. package/dist/plugins/plugin-types.d.ts +1 -1
  440. package/dist/plugins/plugin-types.d.ts.map +1 -1
  441. package/dist/policy/policy-store.d.ts +7 -0
  442. package/dist/policy/policy-store.d.ts.map +1 -1
  443. package/dist/policy/policy-store.js +112 -4
  444. package/dist/policy/policy-store.js.map +1 -1
  445. package/dist/providers/auxiliary.d.ts +1 -0
  446. package/dist/providers/auxiliary.d.ts.map +1 -1
  447. package/dist/providers/auxiliary.js +347 -64
  448. package/dist/providers/auxiliary.js.map +1 -1
  449. package/dist/providers/factory.d.ts.map +1 -1
  450. package/dist/providers/factory.js +79 -25
  451. package/dist/providers/factory.js.map +1 -1
  452. package/dist/providers/task-routing.d.ts.map +1 -1
  453. package/dist/providers/task-routing.js +3 -17
  454. package/dist/providers/task-routing.js.map +1 -1
  455. package/dist/scheduler/heartbeat.d.ts.map +1 -1
  456. package/dist/scheduler/heartbeat.js +12 -10
  457. package/dist/scheduler/heartbeat.js.map +1 -1
  458. package/dist/scheduler/scheduler.d.ts +3 -3
  459. package/dist/scheduler/scheduler.d.ts.map +1 -1
  460. package/dist/scheduler/scheduler.js +52 -67
  461. package/dist/scheduler/scheduler.js.map +1 -1
  462. package/dist/security/admin-rbac.d.ts +4 -0
  463. package/dist/security/admin-rbac.d.ts.map +1 -0
  464. package/dist/security/admin-rbac.js +37 -0
  465. package/dist/security/admin-rbac.js.map +1 -0
  466. package/dist/security/media-paths.d.ts +0 -1
  467. package/dist/security/media-paths.d.ts.map +1 -1
  468. package/dist/security/media-paths.js +0 -1
  469. package/dist/security/media-paths.js.map +1 -1
  470. package/dist/security/mount-config.d.ts +6 -2
  471. package/dist/security/mount-config.d.ts.map +1 -1
  472. package/dist/security/mount-config.js +18 -14
  473. package/dist/security/mount-config.js.map +1 -1
  474. package/dist/security/redact.d.ts +2 -0
  475. package/dist/security/redact.d.ts.map +1 -1
  476. package/dist/security/redact.js +43 -0
  477. package/dist/security/redact.js.map +1 -1
  478. package/dist/security/runtime-secrets.d.ts +16 -0
  479. package/dist/security/runtime-secrets.d.ts.map +1 -1
  480. package/dist/security/runtime-secrets.js +137 -32
  481. package/dist/security/runtime-secrets.js.map +1 -1
  482. package/dist/security/secret-handles.d.ts +1 -0
  483. package/dist/security/secret-handles.d.ts.map +1 -1
  484. package/dist/security/secret-handles.js +5 -0
  485. package/dist/security/secret-handles.js.map +1 -1
  486. package/dist/session/session-trace-export.d.ts +4 -0
  487. package/dist/session/session-trace-export.d.ts.map +1 -1
  488. package/dist/session/session-trace-export.js +102 -65
  489. package/dist/session/session-trace-export.js.map +1 -1
  490. package/dist/session/session-turn-trace.d.ts +69 -0
  491. package/dist/session/session-turn-trace.d.ts.map +1 -0
  492. package/dist/session/session-turn-trace.js +420 -0
  493. package/dist/session/session-turn-trace.js.map +1 -0
  494. package/dist/skills/adaptive-skills-types.d.ts +74 -0
  495. package/dist/skills/adaptive-skills-types.d.ts.map +1 -1
  496. package/dist/skills/agent-cv.d.ts.map +1 -1
  497. package/dist/skills/agent-cv.js +71 -58
  498. package/dist/skills/agent-cv.js.map +1 -1
  499. package/dist/skills/skill-formatters.d.ts.map +1 -1
  500. package/dist/skills/skill-formatters.js +32 -2
  501. package/dist/skills/skill-formatters.js.map +1 -1
  502. package/dist/skills/skill-manifest.d.ts +8 -0
  503. package/dist/skills/skill-manifest.d.ts.map +1 -1
  504. package/dist/skills/skill-manifest.js +52 -0
  505. package/dist/skills/skill-manifest.js.map +1 -1
  506. package/dist/skills/skill-run-trajectories.d.ts +7 -0
  507. package/dist/skills/skill-run-trajectories.d.ts.map +1 -1
  508. package/dist/skills/skill-run-trajectories.js +81 -0
  509. package/dist/skills/skill-run-trajectories.js.map +1 -1
  510. package/dist/skills/skillopt-lite.d.ts +28 -0
  511. package/dist/skills/skillopt-lite.d.ts.map +1 -0
  512. package/dist/skills/skillopt-lite.js +354 -0
  513. package/dist/skills/skillopt-lite.js.map +1 -0
  514. package/dist/skills/skills-amendment.d.ts.map +1 -1
  515. package/dist/skills/skills-amendment.js +288 -24
  516. package/dist/skills/skills-amendment.js.map +1 -1
  517. package/dist/skills/skills-inspection.d.ts.map +1 -1
  518. package/dist/skills/skills-inspection.js +5 -0
  519. package/dist/skills/skills-inspection.js.map +1 -1
  520. package/dist/skills/skills-lifecycle.d.ts.map +1 -1
  521. package/dist/skills/skills-lifecycle.js +5 -0
  522. package/dist/skills/skills-lifecycle.js.map +1 -1
  523. package/dist/skills/skills-observation.d.ts +6 -0
  524. package/dist/skills/skills-observation.d.ts.map +1 -1
  525. package/dist/skills/skills-observation.js +32 -1
  526. package/dist/skills/skills-observation.js.map +1 -1
  527. package/dist/skills/skills.d.ts +5 -2
  528. package/dist/skills/skills.d.ts.map +1 -1
  529. package/dist/skills/skills.js +8 -6
  530. package/dist/skills/skills.js.map +1 -1
  531. package/dist/tui-thinking.d.ts.map +1 -1
  532. package/dist/tui-thinking.js +74 -6
  533. package/dist/tui-thinking.js.map +1 -1
  534. package/dist/tui.d.ts +17 -0
  535. package/dist/tui.d.ts.map +1 -1
  536. package/dist/tui.js +158 -39
  537. package/dist/tui.js.map +1 -1
  538. package/dist/tunnel/ngrok-tunnel-provider.js +1 -1
  539. package/dist/tunnel/ngrok-tunnel-provider.js.map +1 -1
  540. package/dist/tunnel/tailscale-tunnel-provider.js +1 -1
  541. package/dist/tunnel/tailscale-tunnel-provider.js.map +1 -1
  542. package/dist/types/container.d.ts +6 -0
  543. package/dist/types/container.d.ts.map +1 -1
  544. package/dist/types/models.d.ts +1 -1
  545. package/dist/types/models.d.ts.map +1 -1
  546. package/dist/types/models.js +2 -0
  547. package/dist/types/models.js.map +1 -1
  548. package/dist/types/session.d.ts +14 -0
  549. package/dist/types/session.d.ts.map +1 -1
  550. package/dist/types/usage.d.ts +6 -0
  551. package/dist/types/usage.d.ts.map +1 -1
  552. package/dist/update.d.ts.map +1 -1
  553. package/dist/update.js +111 -4
  554. package/dist/update.js.map +1 -1
  555. package/dist/usage/media-generation-usage.d.ts.map +1 -1
  556. package/dist/usage/media-generation-usage.js +34 -17
  557. package/dist/usage/media-generation-usage.js.map +1 -1
  558. package/dist/utils/number-normalization.d.ts +2 -0
  559. package/dist/utils/number-normalization.d.ts.map +1 -1
  560. package/dist/utils/number-normalization.js +24 -0
  561. package/dist/utils/number-normalization.js.map +1 -1
  562. package/dist/workspace.d.ts +1 -0
  563. package/dist/workspace.d.ts.map +1 -1
  564. package/dist/workspace.js +50 -5
  565. package/dist/workspace.js.map +1 -1
  566. package/docs/agents.html +60 -5
  567. package/docs/content/README.md +9 -3
  568. package/docs/content/agents.md +1 -0
  569. package/docs/content/channels/admin-console.md +45 -1
  570. package/docs/content/channels/fax.md +189 -0
  571. package/docs/content/channels/imessage.md +11 -10
  572. package/docs/content/channels/overview.md +2 -1
  573. package/docs/content/developer-guide/README.md +4 -0
  574. package/docs/content/developer-guide/harness-evolution.md +289 -0
  575. package/docs/content/developer-guide/identity.md +18 -0
  576. package/docs/content/developer-guide/runtime.md +5 -1
  577. package/docs/content/developer-guide/threat-model.md +218 -0
  578. package/docs/content/extensibility/plugins.md +5 -5
  579. package/docs/content/extensibility/skills.md +193 -0
  580. package/docs/content/guides/bundled-skills.md +5 -3
  581. package/docs/content/guides/hetzner-managed-browser.md +53 -0
  582. package/docs/content/guides/skills/README.md +8 -3
  583. package/docs/content/guides/skills/communication.md +41 -0
  584. package/docs/content/guides/skills/development.md +357 -1
  585. package/docs/content/guides/skills/integrations.md +158 -0
  586. package/docs/content/guides/skills/publishing.md +7 -5
  587. package/docs/content/internal/roadmap.md +60 -36
  588. package/docs/content/manifesto.md +2 -2
  589. package/docs/content/reference/commands.md +58 -4
  590. package/docs/content/reference/configuration.md +98 -10
  591. package/docs/content/reference/diagnostics.md +10 -1
  592. package/docs/content/reference/model-selection.md +55 -1
  593. package/docs/imessage.md +7 -4
  594. package/docs/index.html +2 -2
  595. package/docs/security/threat-model.md +212 -0
  596. package/docs/static/docs.js +2 -1
  597. package/infra/managed-browser/Dockerfile +13 -0
  598. package/infra/managed-browser/README.md +54 -0
  599. package/infra/managed-browser/docker-compose.yml +22 -0
  600. package/infra/managed-browser/guard-proxy.js +179 -0
  601. package/infra/managed-browser/hetzner.compose.yml +17 -0
  602. package/infra/managed-browser/package.json +14 -0
  603. package/infra/managed-browser/policy.js +98 -0
  604. package/infra/managed-browser/server.js +587 -0
  605. package/infra/managed-browser/state.js +35 -0
  606. package/infra/managed-browser/tenants.example.yaml +21 -0
  607. package/npm-shrinkwrap.json +18462 -0
  608. package/package.json +15 -10
  609. package/plugins/concierge-router/src/command.js +1 -4
  610. package/scripts/postinstall-container.mjs +1 -0
  611. package/skills/airtable/SKILL.md +9 -0
  612. package/skills/brand-voice/SKILL.md +5 -0
  613. package/skills/current-time/SKILL.md +5 -0
  614. package/skills/diagram/SKILL.md +8 -9
  615. package/skills/distil-pii-redactor/SKILL.md +138 -0
  616. package/skills/distil-pii-redactor/scripts/redact.py +343 -0
  617. package/skills/distil-pii-redactor/scripts/setup.sh +87 -0
  618. package/skills/distil-pii-redactor/scripts/stop.sh +40 -0
  619. package/skills/download-platform-invoices/adapters/scrape.cjs +43 -23
  620. package/skills/download-platform-invoices/helpers/escalation.cjs +10 -0
  621. package/skills/fastbill/SKILL.md +77 -172
  622. package/skills/fastbill/fastbill.cjs +0 -292
  623. package/skills/fax-send/SKILL.md +287 -0
  624. package/skills/fax-send/evals/scenarios.json +114 -0
  625. package/skills/fax-send/fax_send.cjs +1092 -0
  626. package/skills/fax-send/index.cjs +2 -0
  627. package/skills/folder-hygiene/references/workspace-layout.md +158 -0
  628. package/skills/fronius/SKILL.md +273 -0
  629. package/skills/fronius/fronius.cjs +927 -0
  630. package/skills/hermes3000-writing/SKILL.md +1 -1
  631. package/skills/hetzner-cloud/SKILL.md +232 -0
  632. package/skills/hetzner-cloud/evals/scenarios.json +84 -0
  633. package/skills/hetzner-cloud/hetzner-shared.cjs +167 -0
  634. package/skills/hetzner-cloud/hetzner_cloud.cjs +780 -0
  635. package/skills/hetzner-cloud/references/operator-setup.md +47 -0
  636. package/skills/hetzner-dns/SKILL.md +144 -0
  637. package/skills/hetzner-dns/evals/scenarios.json +82 -0
  638. package/skills/hetzner-dns/hetzner-shared.cjs +167 -0
  639. package/skills/hetzner-dns/hetzner_dns.cjs +314 -0
  640. package/skills/hetzner-dns/references/operator-setup.md +45 -0
  641. package/skills/hetzner-storage-box/SKILL.md +177 -0
  642. package/skills/hetzner-storage-box/evals/scenarios.json +82 -0
  643. package/skills/hetzner-storage-box/hetzner-shared.cjs +167 -0
  644. package/skills/hetzner-storage-box/hetzner_storage_box.cjs +489 -0
  645. package/skills/hetzner-storage-box/references/operator-setup.md +48 -0
  646. package/skills/heygen/SKILL.md +44 -18
  647. package/skills/heygen/client.cjs +141 -0
  648. package/skills/heygen/heygen.cjs +235 -12
  649. package/skills/homematic/SKILL.md +286 -0
  650. package/skills/homematic/fixtures/hcu-state.json +86 -0
  651. package/skills/homematic/homematic.cjs +1021 -0
  652. package/skills/hubspot/SKILL.md +307 -0
  653. package/skills/hubspot/evals/scenarios.json +214 -0
  654. package/skills/hubspot/fixtures/deal-properties.json +64 -0
  655. package/skills/hubspot/hubspot-plan.cjs +372 -0
  656. package/skills/hubspot/hubspot-requests.cjs +538 -0
  657. package/skills/hubspot/hubspot-validation.cjs +78 -0
  658. package/skills/hubspot/hubspot.cjs +444 -0
  659. package/skills/image-generation/SKILL.md +5 -0
  660. package/skills/iss-position/SKILL.md +5 -0
  661. package/skills/lexware-office/SKILL.md +267 -0
  662. package/skills/lexware-office/evals/scenarios.json +287 -0
  663. package/skills/lexware-office/index.cjs +1 -0
  664. package/skills/lexware-office/lexware_office.cjs +978 -0
  665. package/skills/lexware-office/references/operator-setup.md +74 -0
  666. package/skills/mittwald/SKILL.md +261 -0
  667. package/skills/mittwald/mittwald.cjs +1382 -0
  668. package/skills/office/SKILL.md +6 -0
  669. package/skills/pdf/SKILL.md +2 -0
  670. package/skills/pdf/scripts/create_pdf.mjs +119 -2
  671. package/skills/personality/SKILL.md +5 -0
  672. package/skills/shelly/SKILL.md +278 -0
  673. package/skills/shelly/shelly.cjs +1656 -0
  674. package/skills/skill-creator/SKILL.md +14 -1
  675. package/skills/sokosumi/SKILL.md +1 -1
  676. package/skills/t-cloud-public/SKILL.md +253 -0
  677. package/skills/t-cloud-public/evals/scenarios.json +79 -0
  678. package/skills/t-cloud-public/references/operator-setup.md +99 -0
  679. package/skills/t-cloud-public/t_cloud_public.cjs +991 -0
  680. package/skills/video-generation/SKILL.md +6 -0
  681. package/skills/video.from-script/SKILL.md +23 -0
  682. package/skills/video.from-script/video-from-script.cjs +18 -9
  683. package/skills/warehouse-sql/SKILL.md +24 -8
  684. package/skills/warehouse-sql/scripts/warehouse_sql.py +339 -85
  685. package/skills/zabbix/SKILL.md +216 -0
  686. package/skills/zabbix/zabbix.cjs +729 -0
  687. package/skills/zettelkasten/SKILL.md +5 -0
  688. package/console/dist/assets/chat-CHK2pGdk.css +0 -1
  689. package/console/dist/assets/chat-DrmOZ2y2.js +0 -158
  690. package/console/dist/assets/cx-UKeCbc1v.js +0 -1
  691. package/console/dist/assets/index-CbSfc5B7.css +0 -1
  692. package/console/dist/assets/index-DZAontVo.js +0 -16
  693. package/console/dist/assets/query-DYNohPrB.js +0 -1
  694. package/skills/fastbill/fixtures/einvoice-readiness.json +0 -34
package/AGENTS.md CHANGED
@@ -202,6 +202,12 @@ npm run dev # tsx src/cli.ts gateway (hot reload)
202
202
  npm run tui # tsx src/cli.ts tui
203
203
  ```
204
204
 
205
+ ### Runtime Diagnostics
206
+
207
+ ```bash
208
+ hybridclaw gateway status # gateway liveness, PID, build/version diagnostics
209
+ ```
210
+
205
211
  ---
206
212
 
207
213
  ## 6) Working Rules
@@ -212,6 +218,9 @@ npm run tui # tsx src/cli.ts tui
212
218
  task requires wider movement.
213
219
  - Match the existing TypeScript + ESM patterns in the touched area.
214
220
  - Update tests and docs when behavior, commands, or repo workflows change.
221
+ - When implementing a new feature, ask before keeping any compatibility shim,
222
+ migration fallback, legacy alias, or feature flag solely for backward
223
+ compatibility.
215
224
  - Do not rename or relocate files in `templates/` without updating
216
225
  `src/workspace.ts` and the workspace bootstrap tests.
217
226
  - Do not mix container and gateway changes in one commit unless they are
@@ -220,6 +229,16 @@ npm run tui # tsx src/cli.ts tui
220
229
  relative to a prior version. Avoid "now", "no longer", "deprecated … for
221
230
  now", "recently added". The changelog is the place for transition language.
222
231
 
232
+ ### Diagnostics
233
+
234
+ - Before diagnosing gateway/runtime issues, inspect the actual checkout, the
235
+ running process, runtime state, logs, and `hybridclaw gateway status`.
236
+ - Use `hybridclaw gateway status` to compare the PID file, API-reported PID,
237
+ entrypoint, package root, Node version, Git commit/branch, and
238
+ source-vs-build freshness before concluding that a gateway is stale.
239
+ - Do not restart the gateway unless the user explicitly requests or approves a
240
+ restart. If a restart would help, report the exact reason and command instead.
241
+
223
242
  ### Coding Style
224
243
 
225
244
  - **Language:** TypeScript (strict mode, ES2022 target, NodeNext modules, ESM).
package/CHANGELOG.md CHANGED
@@ -2,6 +2,189 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.21.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.21.0) - 2026-05-29
6
+
7
+ ### Added
8
+
9
+ - **A2A cross-instance transport**: Outbound A2A delivery can resolve
10
+ canonical peer IDs through the local deployment URL or active tunnel URL, the
11
+ public-key trust ledger, and DNS-style discovery, then dispatch over the A2A
12
+ transport with route invalidation and coverage for remote handoff delivery.
13
+ - **Harness evolution loop**: Added `hybridclaw harness-evolve` for
14
+ eval-driven coworker workspace evolution, including seed validation,
15
+ round/rollout summaries, F12 manifest reporting, allowed-surface write
16
+ enforcement, and admin inspection support.
17
+ - **Second-opinion command**: Added `/second-opinion` for stronger-model
18
+ comparison, validation of the last answer, and optional fact-checking with
19
+ web-search evidence. The command refreshes the model catalog, estimates
20
+ context/cost, honors per-agent budgets, and redacts or blocks confidential
21
+ payloads before remote model calls.
22
+ - **Web response ratings**: Added thumbs-up/thumbs-down controls for persisted
23
+ web chat assistant responses, backed by idempotent per-operator ratings,
24
+ `response.rating` observability events, and Adaptive Skills feedback when a
25
+ response maps to a skill observation.
26
+ - **Turn-level audit traces**: Added focused `/audit turn` and `/audit run`
27
+ trace views plus session trace export support for inspecting the exact
28
+ request, response, tool, approval, and audit events around one turn.
29
+ - **Token agent budgets**: Agent budget config now supports token caps in
30
+ addition to USD/EUR spend caps, and board/job budget chips report token
31
+ usage with neutral, warning, and over-budget states.
32
+ - **Per-channel brand-voice profiles**: The `output-guard` plugin can apply
33
+ channel-specific brand-voice profiles, blocked terms, rewrite behavior, and
34
+ guard configuration.
35
+ - **`homematic` skill**: Added Homematic IP Home Control Unit state reads,
36
+ Connect API auth setup payloads, WebSocket message planning, guarded switch,
37
+ thermostat, shutter, scene, and safety-alarm control plans, and offline HCU
38
+ state fixture summaries.
39
+ - **`fronius` skill**: Added Fronius photovoltaic monitoring through local
40
+ Fronius Solar API V1 and Solar.web Query API reads, including local health,
41
+ live power flow, energy rollups, cloud system/device/status endpoints, and
42
+ SecretRef-backed Solar.web access-key headers.
43
+
44
+ ### Changed
45
+
46
+ - **Security fallback deprecations**: Added migration warnings for legacy
47
+ BlueBubbles query-param webhook auth, unbound `bearerSecretName` and
48
+ `secretHeaders` injection, and legacy `container.additionalMounts` config.
49
+ Existing setups continue to work during the deprecation window while docs and
50
+ `hybridclaw doctor security` point operators to header auth, bound bearer
51
+ secrets, and `container.binds`.
52
+ - **A2A handoff ownership**: Handoff envelopes now preserve recipient
53
+ ownership and org-chart context so inbox views, persisted threads, and audit
54
+ records can distinguish handoff recipient responsibility from ordinary chat
55
+ routing.
56
+ - **Slash-command rendering**: Web chat treats slash-command output as a
57
+ distinct command-result block instead of rendering it as ordinary assistant
58
+ prose, with stream metadata carried through history reloads.
59
+ - **Admin console dialog behavior**: Console sheets were consolidated into the
60
+ dialog component, exit animation handling moved to the Web Animations API,
61
+ and focus guards were tightened for modal navigation.
62
+ - **Console linting**: Added a console lint script and moved Biome scoping into
63
+ the shared config so root and console checks use the same formatting source
64
+ of truth.
65
+ - **Roadmap status**: Updated internal roadmap status for merged A2A,
66
+ brand-voice, budget-chip, second-opinion, response-rating, harness
67
+ evolution, Homematic, Fronius, and T Cloud Public work, and added follow-up
68
+ rows for AWS, Blink, BYD Battery, Alexa, Hue, skill identity assets/chat
69
+ rendering, and pluggable secret backends.
70
+
71
+ ### Fixed
72
+
73
+ - **Unknown provider prefixes**: Provider factory validation now rejects
74
+ unknown provider-prefixed model ids instead of falling through to an
75
+ unintended provider.
76
+ - **Recovered skill tool failures**: Skill evaluations that recover from tool
77
+ failures are classified as partial instead of successful, and the admin
78
+ Skills page surfaces those partial states more clearly.
79
+ - **Idle heartbeat runs**: Heartbeat scheduling skips idle agent runs instead
80
+ of creating empty proactive work.
81
+ - **Web chat newlines**: Assistant message rendering preserves newlines in web
82
+ chat responses.
83
+ - **npm signature audit attestation 404s**: Treat missing npm registry
84
+ attestation endpoint artifacts as best-effort after retries while keeping
85
+ registry signature validation failures fatal.
86
+ - **Release workflow reruns**: Skip `npm publish` when the exact package
87
+ version already exists on npm so release reruns can complete after partial
88
+ publishes.
89
+
90
+ ## [0.20.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.20.0) - 2026-05-26
91
+
92
+ ### Added
93
+
94
+ - **Codex app-server runtime**: Added an optional `openai-codex/*` runtime
95
+ path through `codex app-server`, including HybridClaw callback MCP tools,
96
+ approval translation, transcript projection, and runtime-selector tests.
97
+ - **Managed and Mac browser providers**: Added managed-cloud browser launch,
98
+ tenant navigation policy, provider health checks, and a macOS CUA browser
99
+ provider with `hybridclaw doctor cua-mac` diagnostics.
100
+ - **Browser 2FA handoff**: Browser providers can detect two-factor and
101
+ device-check waypoints, park the run for operator escalation, and resume
102
+ without exposing credentials to the model.
103
+ - **Admin console surfaces**: Added Agents Overview, Output Guard, richer
104
+ config editing, per-agent budget chips, job and chat UI improvements, and
105
+ admin secret overwrite/unset APIs that never return cleartext values.
106
+ - **`hubspot` skill**: Adds HubSpot CRM reads and guarded writes for contacts,
107
+ companies, deals, notes, and tasks through SecretRef-backed bearer auth.
108
+ - **`lexware-office` skill**: Adds Lexware Office contacts, invoices,
109
+ vouchers, receipts, posting categories, and payment-state workflows through
110
+ the Lexware Public API.
111
+ - **`hetzner-cloud` skill**: Adds Hetzner Cloud inventory, cost, provisioning,
112
+ volume, snapshot, restore, and guarded delete workflows.
113
+ - **`hetzner-dns` skill**: Adds Hetzner DNS zone and record inspection plus
114
+ guarded A, AAAA, CNAME, TXT, add, update, and delete workflows.
115
+ - **`hetzner-storage-box` skill**: Adds Hetzner Storage Box inventory,
116
+ snapshot, WebDAV file, archive, upload, download, and public URL workflows.
117
+ - **`zabbix` skill**: Adds Zabbix monitoring reads for API health, host
118
+ inventory, current problems, trigger severity summaries, and incident
119
+ context.
120
+ - **`t-cloud-public` skill**: Adds T Cloud Public and Open Telekom Cloud
121
+ infrastructure inventory, quotas, service status, and guarded operation
122
+ planning with gateway-managed API signing.
123
+ - **`mittwald` skill**: Adds mittwald mStudio and Kundencenter reads for
124
+ projects, apps, runtimes, databases, domains, mail, backups, files,
125
+ containers, and access users.
126
+ - **`shelly` skill**: Adds Shelly local and cloud device inspection plus
127
+ guarded relay, switch, light, and cover control workflows.
128
+ - **`fax-send` skill**: Adds outbound fax preparation and explicitly approved
129
+ send workflows for configured fax providers.
130
+ - **`distil-pii-redactor` skill**: Adds local PII redaction and anonymization
131
+ with Distil-PII and `llama.cpp` so sensitive text can be sanitized before it
132
+ reaches external tools.
133
+ - **`warehouse-sql` skill**: Adds reviewed natural-language SQL workflows with
134
+ cached schema inspection, model-review enforcement, and guarded execution
135
+ for warehouse queries.
136
+ - **Fax channel docs and accounting**: Added outbound fax skill support,
137
+ provider-facing fax accounting helpers, eval scenarios, and setup
138
+ documentation for fax workflows.
139
+ - **Adaptive Skills SkillOpt-lite**: Added trajectory minibatch reflection,
140
+ bounded edit candidates, candidate artifacts, held-out evaluation gates, and
141
+ acceptance tests for the adaptive-skills amendment loop.
142
+ - **Board dependency edges**: Board cards can carry typed `blocks`,
143
+ `blocked_by`, and `related` edges so work-board status and future
144
+ coordination surfaces can reason about dependencies.
145
+ - **Supply-chain guardrails**: Added dependency-audit workflow coverage,
146
+ shrinkwrap synchronization, release-check updates, and dependency policy
147
+ baselines.
148
+ - **Google OAuth recovery hint**: Authentication diagnostics include an
149
+ actionable recovery hint when Google OAuth state needs to be refreshed.
150
+
151
+ ### Changed
152
+
153
+ - **Diagram validation and accounting**: Mermaid diagrams are validated with
154
+ the bundled Mermaid parser before render, diagram render artifacts retain
155
+ skill-scoped source/rendered metadata, and local diagram renders emit
156
+ zero-cost usage hooks so budget accounting only reflects LLM token use.
157
+ - **Skill amendment safety**: Skill amendment generation and application now
158
+ enforce tighter best-practice constraints, clearer formatting, and rollback
159
+ evaluation behavior.
160
+ - **SkillOpt roadmap status**: Roadmap docs reflect the full SkillOpt-lite
161
+ implementation status after the acceptance gates landed.
162
+ - **Auxiliary routing and provider health**: Auxiliary model calls prefer
163
+ healthy local providers when configured and route through health-aware
164
+ fallback decisions.
165
+ - **FastBill wrapper guidance**: FastBill API helper instructions and guard
166
+ rails are stricter to reduce model-side request reconstruction mistakes.
167
+ - **Runtime and docs diagnostics**: Gateway status and operator docs describe
168
+ the current runtime, managed-browser, threat-model, and skill setup surfaces
169
+ more completely.
170
+ - **Conversation preview logging**: Web chat diagnostics label conversation
171
+ preview roles more clearly.
172
+
173
+ ### Fixed
174
+
175
+ - **Remote A2A routing bug**: Fixed `sendMessage` delivery for remote A2A
176
+ recipients that were incorrectly treated as local recipients.
177
+ - **Skill CLI runtime bug**: Fixed skill CLI runtime initialization so skill
178
+ commands start with the expected runtime context.
179
+ - **Targeted skill learning bug**: Fixed targeted skill learning so quiet
180
+ learning paths do not emit unnecessary operator-facing output.
181
+ - **Admin SPA navigation bug**: Fixed admin job links that triggered full-page
182
+ reloads instead of staying inside the existing SPA route.
183
+ - **Observability ingest token bug**: Fixed stale observability ingest tokens
184
+ that could cause ingest requests to fail after token rotation.
185
+ - **Chat error banner bug**: Fixed web chat error banners that could remain
186
+ visible after the underlying error state cleared.
187
+
5
188
  ## [0.19.2](https://github.com/HybridAIOne/hybridclaw/tree/v0.19.2) - 2026-05-14
6
189
 
7
190
  ### Fixed
package/README.md CHANGED
@@ -20,8 +20,8 @@ credentials, approvals, persistent memory, and admin surfaces behind a single
20
20
  gateway.
21
21
 
22
22
  Connect it to Discord, Discord Incoming Webhooks, Slack, Slack Incoming
23
- Webhooks, Signal, WhatsApp, Telegram, Microsoft Teams, email, Twilio voice, or
24
- the web. Run it locally, deploy it for business workflows, and keep your
23
+ Webhooks, Signal, WhatsApp, Telegram, Microsoft Teams, email, fax, Twilio
24
+ voice, or the web. Run it locally, deploy it for business workflows, and keep your
25
25
  agents, secrets, and data under your control.
26
26
 
27
27
  [Quick Start](https://hybridaione.github.io/hybridclaw/docs/getting-started/quickstart) ·
@@ -79,7 +79,8 @@ Open locally:
79
79
 
80
80
  - Chat UI: `http://127.0.0.1:9090/chat`
81
81
  - Admin UI: `http://127.0.0.1:9090/admin` for channels, versioned agent files,
82
- scheduler, audit, statistics, config, and channel-specific instructions
82
+ scheduler, audit, statistics, config, secrets, output guard, and
83
+ channel-specific instructions
83
84
  - Agents UI: `http://127.0.0.1:9090/agents`
84
85
  - OpenAI-compatible API: `http://127.0.0.1:9090/v1/models` and `http://127.0.0.1:9090/v1/chat/completions`
85
86
 
@@ -116,11 +117,15 @@ Once the gateway is running, open HybridClaw locally:
116
117
  - Web Chat accepts `/btw <question>` side questions while a primary run is
117
118
  active, so you can ask an ephemeral follow-up without interrupting the
118
119
  current run
120
+ - Web Chat renders slash-command output as command results and lets operators
121
+ rate persisted assistant responses with thumbs-up/down feedback that feeds
122
+ observability and skill-improvement signals
119
123
  - Admin Console: `http://127.0.0.1:9090/admin` for channels, versioned agent files,
120
- scheduler, audit, statistics, config, and channel-specific instructions
124
+ scheduler, audit, statistics, config, secrets, output guard, A2A inbox threads, and
125
+ channel-specific instructions
121
126
  - Agent Dashboard: `http://127.0.0.1:9090/agents`
122
127
  - or connect Discord, Discord Incoming Webhooks, Slack, Slack Incoming
123
- Webhooks, Signal, WhatsApp, Telegram, Microsoft Teams, Email
128
+ Webhooks, Signal, WhatsApp, Telegram, Microsoft Teams, Email, Fax
124
129
 
125
130
  ## Operator workflows
126
131
 
@@ -145,12 +150,19 @@ Once the gateway is running, open HybridClaw locally:
145
150
  spend summaries without scanning every stored session on page load.
146
151
  - `/admin/agent-scoreboard` ranks agents by observed skill scores, reliability,
147
152
  timing, best skills, and CV links.
153
+ - `/audit turn <n>` and `/audit run <runId>` show focused turn traces for
154
+ debugging one request without reading the full session audit stream.
148
155
  - `hybridclaw agent config` accepts generated JSON payloads to upsert agent
149
156
  metadata, write bootstrap markdown, import profile images into the agent
150
157
  workspace, and optionally activate the agent.
151
158
  - `/admin/channels` edits transport config, encrypted channel credentials,
152
159
  Signal QR linking, Twilio voice settings, and per-channel instructions that
153
160
  are injected into prompts at runtime.
161
+ - `/admin/secrets` lists stored and declared-but-empty secrets by metadata
162
+ only, supports overwrite and unset actions, and never returns cleartext
163
+ secret values to the browser.
164
+ - `/admin/output-guard` configures response guardrails and plugin-backed
165
+ output classification without editing runtime config by hand.
154
166
  - `slack_webhook` targets provide outbound-only Slack Incoming Webhook delivery
155
167
  with encrypted webhook URLs, named destinations, Block Kit text chunking,
156
168
  reachability status, and POST-only network policy grants.
@@ -160,6 +172,8 @@ Once the gateway is running, open HybridClaw locally:
160
172
  - `/admin/approvals` manages approval policies from the browser.
161
173
  - Approval policy evaluation runs through a hook-fed rule pipeline, so
162
174
  workspace policy ordering and plugin tool-use hooks share one approval path.
175
+ - `/admin/a2a-inbox` shows read-only A2A message threads across the instance,
176
+ with sender, recipient, timestamp, intent, and content for each message.
163
177
  - `/admin/a2a-trust` shows the local A2A public-key trust ledger for paired
164
178
  peer instances.
165
179
  - `/admin/gateway` reloads runtime config and refreshes secrets from the
@@ -171,6 +185,9 @@ Once the gateway is running, open HybridClaw locally:
171
185
  - `/goal` stores a standing completion condition for the current thread and
172
186
  queues supervised continuations until the goal is judged complete, paused,
173
187
  cleared, interrupted, or blocked by approval policy.
188
+ - `/second-opinion` asks a stronger configured model to compare a question,
189
+ validate the last answer, or fact-check with web-search evidence while
190
+ honoring configured model context, confidentiality, and agent-budget limits.
174
191
  - `proactive.delegation.model` can pin delegated work to a different model
175
192
  from the parent turn; `/status` shows delegate token totals and local-token
176
193
  share when that split is configured.
@@ -180,11 +197,18 @@ Once the gateway is running, open HybridClaw locally:
180
197
  Cloudflare Tunnel providers read `NGROK_AUTHTOKEN`, `TS_AUTHKEY`,
181
198
  `CLOUDFLARE_TUNNEL_TOKEN`, and Cloudflare certificate credentials from the
182
199
  encrypted runtime secret store.
200
+ - A2A cross-instance delivery resolves canonical peer IDs in order from the
201
+ local deployment URL or active tunnel URL, the A2A public-key trust ledger,
202
+ then DNS-style discovery when `HYBRIDCLAW_IDENTITY_DISCOVERY_ZONE` is
203
+ configured.
183
204
  - `container.warmPool` keeps a bounded adaptive pool of idle host/container
184
205
  runtimes for recently active agents when low cold-start latency matters.
185
206
  - `container.persistBashState` controls whether bash tool calls share shell
186
207
  state (`cd`, exported env vars, aliases) across turns in the same active
187
208
  runtime session; `/admin/config` exposes the same setting as `Persistent bash state`.
209
+ - Agent budget config supports monthly USD/EUR caps and token caps; job and
210
+ board budget chips show neutral, warning, and over-budget states for
211
+ configured agents.
188
212
  - `security.confidentialRedactionEnabled` controls whether optional
189
213
  `.confidential.yml` rules redact prompts and block matching outbound text;
190
214
  `/admin/config` exposes the same setting as `Confidential leak guard`.
@@ -212,6 +236,10 @@ Once the gateway is running, open HybridClaw locally:
212
236
  - `hybridclaw skill list blocked` and `hybridclaw skill unblock <name>` let
213
237
  local operators review scanner-blocked skills and record a bypass marker for
214
238
  the installed copy when the finding has been accepted.
239
+ - Bundled skills include CRM, finance, infrastructure, monitoring,
240
+ home-automation and solar monitoring, fax, local PII redaction, media,
241
+ search, and office workflows. Skill setup guides live in the
242
+ [Skills Catalog](https://hybridaione.github.io/hybridclaw/docs/guides/skills/).
215
243
  - The bundled tutorials cover owner, GTM, marketing, sales, DevRel, content,
216
244
  invoicing, webinar, and release-launch workflows that can run from the TUI,
217
245
  web chat, or connected channels.
@@ -264,8 +292,9 @@ Once the gateway is running, open HybridClaw locally:
264
292
  - Bundled skills include API-backed Google Workspace workflows (`gog`, `gws`),
265
293
  Salesforce inspection, GitHub issue queue processing (`gh-issues`),
266
294
  monthly SaaS invoice harvesting (`download-platform-invoices`), Airtable,
267
- FastBill, managed or self-hosted Firecrawl, Google Ads, GA4 reporting,
268
- HeyGen, Hermes3000 long-form writing, natural-language warehouse SQL
295
+ FastBill, Lexware Office, managed or self-hosted Firecrawl, Google Ads, GA4 reporting,
296
+ HeyGen, Hermes3000 long-form writing, Fronius solar monitoring, Homematic
297
+ HCU state/control planning, natural-language warehouse SQL
269
298
  (`warehouse-sql`), brand-voice drafting, speech transcription and language
270
299
  detection (`speech.transcribe`, `speech.detect-language`), validated
271
300
  diagram-as-code creation through `diagram`, and editable Excalidraw diagram
@@ -8,7 +8,7 @@ requires:
8
8
  metadata:
9
9
  hybridclaw:
10
10
  short_description: Generate memes.
11
- category: creativity
11
+ category: media
12
12
  tags:
13
13
  - creative
14
14
  - memes
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": 28,
2
+ "version": 29,
3
3
  "security": {
4
4
  "trustModelAccepted": false,
5
5
  "trustModelAcceptedAt": "",
@@ -26,6 +26,11 @@
26
26
  "headed": false,
27
27
  "launchOptions": {}
28
28
  },
29
+ "managedCloud": {
30
+ "endpointUrl": "http://127.0.0.1:8787",
31
+ "defaultTenantId": "",
32
+ "pricing": {}
33
+ },
29
34
  "browserUseCloud": {
30
35
  "apiKeyRef": {
31
36
  "source": "store",
@@ -34,6 +39,12 @@
34
39
  "baseUrl": "",
35
40
  "browser": {},
36
41
  "pricing": {}
42
+ },
43
+ "macCua": {
44
+ "browser": "chrome",
45
+ "driverCommand": "",
46
+ "driverArgs": [],
47
+ "screenshotMode": "som"
37
48
  }
38
49
  },
39
50
  "skills": {
@@ -304,7 +315,8 @@
304
315
  "models": ["gpt-4.1-mini", "gpt-5-nano", "gpt-5"]
305
316
  },
306
317
  "codex": {
307
- "baseUrl": "https://chatgpt.com/backend-api/codex"
318
+ "baseUrl": "https://chatgpt.com/backend-api/codex",
319
+ "turnRuntime": "hybridclaw"
308
320
  },
309
321
  "anthropic": {
310
322
  "enabled": false,
@@ -632,55 +644,5 @@
632
644
  "ralph": {
633
645
  "maxIterations": 0
634
646
  }
635
- },
636
- "scheduler": {
637
- "jobs": [
638
- {
639
- "id": "resource-hygiene",
640
- "name": "Resource Hygiene",
641
- "description": "Runs conservative doctor-based resource hygiene twice daily and auto-applies only safe cleanup.",
642
- "schedule": {
643
- "kind": "every",
644
- "at": null,
645
- "everyMs": 43200000,
646
- "expr": null,
647
- "tz": "UTC"
648
- },
649
- "action": {
650
- "kind": "system_event",
651
- "message": "resource_hygiene_maintenance"
652
- },
653
- "delivery": {
654
- "kind": "last-channel",
655
- "channel": "",
656
- "to": "",
657
- "webhookUrl": ""
658
- },
659
- "enabled": true
660
- },
661
- {
662
- "id": "morning-standup",
663
- "name": "Daily Standup Report",
664
- "description": "Runs standup summary every weekday at 9am.",
665
- "schedule": {
666
- "kind": "cron",
667
- "at": null,
668
- "everyMs": null,
669
- "expr": "0 9 * * 1-5",
670
- "tz": "America/New_York"
671
- },
672
- "action": {
673
- "kind": "agent_turn",
674
- "message": "Post a brief morning standup update for the team."
675
- },
676
- "delivery": {
677
- "kind": "channel",
678
- "channel": "discord",
679
- "to": "123456789012345678",
680
- "webhookUrl": ""
681
- },
682
- "enabled": false
683
- }
684
- ]
685
647
  }
686
648
  }
@@ -0,0 +1 @@
1
+ ._wrap_jrif0_1{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:relative}._trigger_jrif0_11{appearance:none;width:34px;height:34px;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background .12s;display:flex}._trigger_jrif0_11:hover,._trigger_jrif0_11:focus-visible{background:var(--muted);outline:none}._ring_jrif0_33{transform:rotate(-90deg)}._ringTrack_jrif0_37{fill:none;stroke:var(--line);stroke-width:3.5px}._ringFill_jrif0_43{fill:none;stroke-width:3.5px;stroke-linecap:round;transition:stroke-dashoffset .4s,stroke .2s}._ringFillNominal_jrif0_52{stroke:var(--primary)}._ringFillWarn_jrif0_56{stroke:var(--accent,#d97706)}._ringFillDanger_jrif0_60{stroke:var(--danger,#dc2626)}._ringLabel_jrif0_64{color:var(--muted-foreground);pointer-events:none;letter-spacing:0;justify-content:center;align-items:center;font-size:.62rem;font-weight:700;display:flex;position:absolute;inset:0}._ringLabelUnknown_jrif0_77{font-size:.7rem}._popover_jrif0_81{background:var(--popover);border:1px solid var(--line);border-radius:var(--radius-md);min-width:240px;box-shadow:var(--shadow-popover);color:var(--text);z-index:30;opacity:0;pointer-events:none;flex-direction:column;gap:6px;padding:10px 12px;font-size:.8rem;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:calc(100% + 6px);right:0;transform:translateY(-4px)}._wrap_jrif0_1:hover ._popover_jrif0_81,._wrap_jrif0_1:focus-within ._popover_jrif0_81{opacity:1;pointer-events:auto;transform:translateY(0)}._popoverTitle_jrif0_112{color:var(--text);justify-content:space-between;gap:8px;font-size:.82rem;font-weight:600;display:flex}._popoverTitleValue_jrif0_121{color:var(--muted-foreground);font-weight:500}._popoverRow_jrif0_126{color:var(--muted-foreground);justify-content:space-between;gap:12px;display:flex}._popoverRowValue_jrif0_133{color:var(--text);font-variant-numeric:tabular-nums}._popoverProgress_jrif0_138{background:var(--muted);border-radius:999px;width:100%;height:6px;margin-top:2px;position:relative;overflow:hidden}._popoverProgressFill_jrif0_148{background:var(--primary);transition:width .4s,background .2s;position:absolute;inset:0 auto 0 0}._popoverProgressFillWarn_jrif0_157{background:var(--accent,#d97706)}._popoverProgressFillDanger_jrif0_161{background:var(--danger,#dc2626)}._popoverFoot_jrif0_165{color:var(--muted-foreground);margin-top:2px;font-size:.72rem}