@hybridaione/hybridclaw 0.20.0 → 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 (266) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/README.md +19 -3
  3. package/console/dist/assets/{chat-ppqniKXc.js → chat-DZIcidEg.js} +27 -27
  4. package/console/dist/assets/{cx-Ctu98fSy.js → cx-Dqc_1ltZ.js} +1 -1
  5. package/console/dist/assets/index-DH_jaXi8.js +80 -0
  6. package/console/dist/assets/index-z7-uHEVk.css +1 -0
  7. package/console/dist/assets/{terminal-CZP712bZ.js → terminal-BvzXR9aQ.js} +1 -1
  8. package/console/dist/index.html +3 -3
  9. package/console/package.json +2 -1
  10. package/container/npm-shrinkwrap.json +2 -2
  11. package/container/package-lock.json +2 -2
  12. package/container/package.json +1 -1
  13. package/container/shared/skill-policy.js +23 -9
  14. package/dist/a2a/a2a-outbox-delivery.d.ts +2 -4
  15. package/dist/a2a/a2a-outbox-delivery.d.ts.map +1 -1
  16. package/dist/a2a/a2a-outbox-delivery.js +47 -28
  17. package/dist/a2a/a2a-outbox-delivery.js.map +1 -1
  18. package/dist/a2a/a2a-outbox-persistence.d.ts.map +1 -1
  19. package/dist/a2a/a2a-outbox-persistence.js +10 -1
  20. package/dist/a2a/a2a-outbox-persistence.js.map +1 -1
  21. package/dist/a2a/identity-resolver-invalidation.d.ts +5 -0
  22. package/dist/a2a/identity-resolver-invalidation.d.ts.map +1 -0
  23. package/dist/a2a/identity-resolver-invalidation.js +13 -0
  24. package/dist/a2a/identity-resolver-invalidation.js.map +1 -0
  25. package/dist/a2a/identity-resolver.d.ts +5 -0
  26. package/dist/a2a/identity-resolver.d.ts.map +1 -0
  27. package/dist/a2a/identity-resolver.js +129 -0
  28. package/dist/a2a/identity-resolver.js.map +1 -0
  29. package/dist/a2a/peer-descriptor.d.ts +2 -1
  30. package/dist/a2a/peer-descriptor.d.ts.map +1 -1
  31. package/dist/a2a/peer-descriptor.js +25 -12
  32. package/dist/a2a/peer-descriptor.js.map +1 -1
  33. package/dist/a2a/runtime.d.ts +2 -0
  34. package/dist/a2a/runtime.d.ts.map +1 -1
  35. package/dist/a2a/runtime.js +11 -4
  36. package/dist/a2a/runtime.js.map +1 -1
  37. package/dist/a2a/store.d.ts +2 -0
  38. package/dist/a2a/store.d.ts.map +1 -1
  39. package/dist/a2a/store.js +85 -13
  40. package/dist/a2a/store.js.map +1 -1
  41. package/dist/a2a/trust-ledger.d.ts +1 -0
  42. package/dist/a2a/trust-ledger.d.ts.map +1 -1
  43. package/dist/a2a/trust-ledger.js +5 -1
  44. package/dist/a2a/trust-ledger.js.map +1 -1
  45. package/dist/agent/executor.d.ts.map +1 -1
  46. package/dist/agent/executor.js +3 -5
  47. package/dist/agent/executor.js.map +1 -1
  48. package/dist/agents/agent-registry.d.ts.map +1 -1
  49. package/dist/agents/agent-registry.js +3 -1
  50. package/dist/agents/agent-registry.js.map +1 -1
  51. package/dist/agents/agent-types.d.ts +2 -0
  52. package/dist/agents/agent-types.d.ts.map +1 -1
  53. package/dist/agents/agent-types.js +30 -4
  54. package/dist/agents/agent-types.js.map +1 -1
  55. package/dist/audit/audit-events.d.ts.map +1 -1
  56. package/dist/audit/audit-events.js +6 -0
  57. package/dist/audit/audit-events.js.map +1 -1
  58. package/dist/audit/audit-trail.d.ts +3 -0
  59. package/dist/audit/audit-trail.d.ts.map +1 -1
  60. package/dist/audit/audit-trail.js +23 -0
  61. package/dist/audit/audit-trail.js.map +1 -1
  62. package/dist/board/budget-chip.d.ts +3 -1
  63. package/dist/board/budget-chip.d.ts.map +1 -1
  64. package/dist/board/budget-chip.js +20 -10
  65. package/dist/board/budget-chip.js.map +1 -1
  66. package/dist/channels/imessage/backend-bluebubbles.d.ts.map +1 -1
  67. package/dist/channels/imessage/backend-bluebubbles.js +15 -7
  68. package/dist/channels/imessage/backend-bluebubbles.js.map +1 -1
  69. package/dist/cli/env-command.d.ts +2 -0
  70. package/dist/cli/env-command.d.ts.map +1 -0
  71. package/dist/cli/env-command.js +57 -0
  72. package/dist/cli/env-command.js.map +1 -0
  73. package/dist/cli/help.d.ts +2 -0
  74. package/dist/cli/help.d.ts.map +1 -1
  75. package/dist/cli/help.js +45 -0
  76. package/dist/cli/help.js.map +1 -1
  77. package/dist/cli.d.ts.map +1 -1
  78. package/dist/cli.js +161 -1
  79. package/dist/cli.js.map +1 -1
  80. package/dist/command-registry.d.ts.map +1 -1
  81. package/dist/command-registry.js +255 -4
  82. package/dist/command-registry.js.map +1 -1
  83. package/dist/commands/second-opinion-command.d.ts +27 -0
  84. package/dist/commands/second-opinion-command.d.ts.map +1 -0
  85. package/dist/commands/second-opinion-command.js +757 -0
  86. package/dist/commands/second-opinion-command.js.map +1 -0
  87. package/dist/commands/second-opinion-web-search.d.ts +16 -0
  88. package/dist/commands/second-opinion-web-search.d.ts.map +1 -0
  89. package/dist/commands/second-opinion-web-search.js +347 -0
  90. package/dist/commands/second-opinion-web-search.js.map +1 -0
  91. package/dist/config/config.d.ts +0 -1
  92. package/dist/config/config.d.ts.map +1 -1
  93. package/dist/config/config.js +0 -2
  94. package/dist/config/config.js.map +1 -1
  95. package/dist/config/runtime-config.d.ts +3 -2
  96. package/dist/config/runtime-config.d.ts.map +1 -1
  97. package/dist/config/runtime-config.js +65 -3
  98. package/dist/config/runtime-config.js.map +1 -1
  99. package/dist/config/runtime-env.d.ts +10 -0
  100. package/dist/config/runtime-env.d.ts.map +1 -0
  101. package/dist/config/runtime-env.js +149 -0
  102. package/dist/config/runtime-env.js.map +1 -0
  103. package/dist/doctor/checks/security.d.ts.map +1 -1
  104. package/dist/doctor/checks/security.js +46 -0
  105. package/dist/doctor/checks/security.js.map +1 -1
  106. package/dist/evals/eval-command.d.ts.map +1 -1
  107. package/dist/evals/eval-command.js +1 -8
  108. package/dist/evals/eval-command.js.map +1 -1
  109. package/dist/evals/hybridai-skills-command.d.ts.map +1 -1
  110. package/dist/evals/hybridai-skills-command.js +1 -0
  111. package/dist/evals/hybridai-skills-command.js.map +1 -1
  112. package/dist/evolution/harness-evolution.d.ts +215 -0
  113. package/dist/evolution/harness-evolution.d.ts.map +1 -0
  114. package/dist/evolution/harness-evolution.js +1328 -0
  115. package/dist/evolution/harness-evolution.js.map +1 -0
  116. package/dist/gateway/gateway-http-proxy.d.ts.map +1 -1
  117. package/dist/gateway/gateway-http-proxy.js +15 -6
  118. package/dist/gateway/gateway-http-proxy.js.map +1 -1
  119. package/dist/gateway/gateway-http-server.d.ts.map +1 -1
  120. package/dist/gateway/gateway-http-server.js +153 -7
  121. package/dist/gateway/gateway-http-server.js.map +1 -1
  122. package/dist/gateway/gateway-http-utils.d.ts +2 -1
  123. package/dist/gateway/gateway-http-utils.d.ts.map +1 -1
  124. package/dist/gateway/gateway-http-utils.js +2 -12
  125. package/dist/gateway/gateway-http-utils.js.map +1 -1
  126. package/dist/gateway/gateway-service.d.ts +3 -1
  127. package/dist/gateway/gateway-service.d.ts.map +1 -1
  128. package/dist/gateway/gateway-service.js +265 -13
  129. package/dist/gateway/gateway-service.js.map +1 -1
  130. package/dist/gateway/gateway-types.d.ts +11 -2
  131. package/dist/gateway/gateway-types.d.ts.map +1 -1
  132. package/dist/gateway/gateway-types.js.map +1 -1
  133. package/dist/gateway/gateway.js +10 -5
  134. package/dist/gateway/gateway.js.map +1 -1
  135. package/dist/gateway/proactive-delivery.d.ts +3 -1
  136. package/dist/gateway/proactive-delivery.d.ts.map +1 -1
  137. package/dist/gateway/proactive-delivery.js +13 -0
  138. package/dist/gateway/proactive-delivery.js.map +1 -1
  139. package/dist/gateway/response-ratings.d.ts +17 -0
  140. package/dist/gateway/response-ratings.d.ts.map +1 -0
  141. package/dist/gateway/response-ratings.js +78 -0
  142. package/dist/gateway/response-ratings.js.map +1 -0
  143. package/dist/identity/resolver.d.ts +1 -0
  144. package/dist/identity/resolver.d.ts.map +1 -1
  145. package/dist/identity/resolver.js +1 -1
  146. package/dist/identity/resolver.js.map +1 -1
  147. package/dist/infra/container-runner.d.ts.map +1 -1
  148. package/dist/infra/container-runner.js +9 -3
  149. package/dist/infra/container-runner.js.map +1 -1
  150. package/dist/infra/host-runner.d.ts.map +1 -1
  151. package/dist/infra/host-runner.js +4 -2
  152. package/dist/infra/host-runner.js.map +1 -1
  153. package/dist/infra/worker-signature.d.ts +1 -0
  154. package/dist/infra/worker-signature.d.ts.map +1 -1
  155. package/dist/infra/worker-signature.js +1 -0
  156. package/dist/infra/worker-signature.js.map +1 -1
  157. package/dist/media/audio-transcription.d.ts.map +1 -1
  158. package/dist/media/audio-transcription.js +1 -2
  159. package/dist/media/audio-transcription.js.map +1 -1
  160. package/dist/media/pdf-context.d.ts.map +1 -1
  161. package/dist/media/pdf-context.js +1 -2
  162. package/dist/media/pdf-context.js.map +1 -1
  163. package/dist/memory/db.d.ts +51 -6
  164. package/dist/memory/db.d.ts.map +1 -1
  165. package/dist/memory/db.js +365 -21
  166. package/dist/memory/db.js.map +1 -1
  167. package/dist/policy/policy-store.d.ts.map +1 -1
  168. package/dist/policy/policy-store.js +0 -2
  169. package/dist/policy/policy-store.js.map +1 -1
  170. package/dist/providers/auxiliary.d.ts +1 -0
  171. package/dist/providers/auxiliary.d.ts.map +1 -1
  172. package/dist/providers/auxiliary.js +10 -27
  173. package/dist/providers/auxiliary.js.map +1 -1
  174. package/dist/providers/factory.d.ts.map +1 -1
  175. package/dist/providers/factory.js +79 -25
  176. package/dist/providers/factory.js.map +1 -1
  177. package/dist/scheduler/heartbeat.d.ts.map +1 -1
  178. package/dist/scheduler/heartbeat.js +7 -8
  179. package/dist/scheduler/heartbeat.js.map +1 -1
  180. package/dist/security/media-paths.d.ts +0 -1
  181. package/dist/security/media-paths.d.ts.map +1 -1
  182. package/dist/security/media-paths.js +0 -1
  183. package/dist/security/media-paths.js.map +1 -1
  184. package/dist/security/mount-config.d.ts +6 -2
  185. package/dist/security/mount-config.d.ts.map +1 -1
  186. package/dist/security/mount-config.js +18 -14
  187. package/dist/security/mount-config.js.map +1 -1
  188. package/dist/security/redact.d.ts +1 -0
  189. package/dist/security/redact.d.ts.map +1 -1
  190. package/dist/security/redact.js +1 -0
  191. package/dist/security/redact.js.map +1 -1
  192. package/dist/session/session-trace-export.d.ts +4 -0
  193. package/dist/session/session-trace-export.d.ts.map +1 -1
  194. package/dist/session/session-trace-export.js +102 -65
  195. package/dist/session/session-trace-export.js.map +1 -1
  196. package/dist/session/session-turn-trace.d.ts +69 -0
  197. package/dist/session/session-turn-trace.d.ts.map +1 -0
  198. package/dist/session/session-turn-trace.js +420 -0
  199. package/dist/session/session-turn-trace.js.map +1 -0
  200. package/dist/skills/adaptive-skills-types.d.ts +5 -0
  201. package/dist/skills/adaptive-skills-types.d.ts.map +1 -1
  202. package/dist/skills/skill-formatters.d.ts.map +1 -1
  203. package/dist/skills/skill-formatters.js +7 -2
  204. package/dist/skills/skill-formatters.js.map +1 -1
  205. package/dist/skills/skill-manifest.d.ts +8 -0
  206. package/dist/skills/skill-manifest.d.ts.map +1 -1
  207. package/dist/skills/skill-manifest.js +52 -0
  208. package/dist/skills/skill-manifest.js.map +1 -1
  209. package/dist/skills/skills-inspection.d.ts.map +1 -1
  210. package/dist/skills/skills-inspection.js +5 -0
  211. package/dist/skills/skills-inspection.js.map +1 -1
  212. package/dist/skills/skills-lifecycle.d.ts.map +1 -1
  213. package/dist/skills/skills-lifecycle.js +5 -0
  214. package/dist/skills/skills-lifecycle.js.map +1 -1
  215. package/dist/skills/skills-observation.d.ts +6 -0
  216. package/dist/skills/skills-observation.d.ts.map +1 -1
  217. package/dist/skills/skills-observation.js +32 -1
  218. package/dist/skills/skills-observation.js.map +1 -1
  219. package/dist/skills/skills.d.ts +1 -1
  220. package/dist/skills/skills.d.ts.map +1 -1
  221. package/dist/skills/skills.js +1 -0
  222. package/dist/skills/skills.js.map +1 -1
  223. package/dist/tui.d.ts.map +1 -1
  224. package/dist/tui.js +7 -3
  225. package/dist/tui.js.map +1 -1
  226. package/dist/types/models.d.ts +1 -1
  227. package/dist/types/models.d.ts.map +1 -1
  228. package/dist/types/models.js +1 -0
  229. package/dist/types/models.js.map +1 -1
  230. package/dist/types/session.d.ts +14 -0
  231. package/dist/types/session.d.ts.map +1 -1
  232. package/dist/utils/number-normalization.d.ts +2 -0
  233. package/dist/utils/number-normalization.d.ts.map +1 -1
  234. package/dist/utils/number-normalization.js +24 -0
  235. package/dist/utils/number-normalization.js.map +1 -1
  236. package/dist/workspace.d.ts +1 -0
  237. package/dist/workspace.d.ts.map +1 -1
  238. package/dist/workspace.js +50 -5
  239. package/dist/workspace.js.map +1 -1
  240. package/docs/content/README.md +9 -3
  241. package/docs/content/agents.md +1 -0
  242. package/docs/content/channels/admin-console.md +6 -1
  243. package/docs/content/channels/imessage.md +11 -10
  244. package/docs/content/developer-guide/README.md +2 -0
  245. package/docs/content/developer-guide/harness-evolution.md +289 -0
  246. package/docs/content/extensibility/skills.md +9 -0
  247. package/docs/content/guides/bundled-skills.md +2 -2
  248. package/docs/content/guides/skills/README.md +2 -2
  249. package/docs/content/guides/skills/development.md +95 -1
  250. package/docs/content/internal/roadmap.md +25 -16
  251. package/docs/content/manifesto.md +2 -2
  252. package/docs/content/reference/commands.md +57 -4
  253. package/docs/content/reference/configuration.md +15 -5
  254. package/docs/content/reference/diagnostics.md +10 -1
  255. package/docs/imessage.md +7 -4
  256. package/docs/static/docs.js +1 -1
  257. package/npm-shrinkwrap.json +4 -4
  258. package/package.json +3 -3
  259. package/plugins/concierge-router/src/command.js +1 -4
  260. package/skills/fronius/SKILL.md +273 -0
  261. package/skills/fronius/fronius.cjs +927 -0
  262. package/skills/homematic/SKILL.md +286 -0
  263. package/skills/homematic/fixtures/hcu-state.json +86 -0
  264. package/skills/homematic/homematic.cjs +1021 -0
  265. package/console/dist/assets/index-CUEYvdos.css +0 -1
  266. package/console/dist/assets/index-Ca1dVjou.js +0 -80
package/CHANGELOG.md CHANGED
@@ -2,6 +2,91 @@
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
+
5
90
  ## [0.20.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.20.0) - 2026-05-26
6
91
 
7
92
  ### Added
@@ -72,6 +157,8 @@
72
157
  - **Skill amendment safety**: Skill amendment generation and application now
73
158
  enforce tighter best-practice constraints, clearer formatting, and rollback
74
159
  evaluation behavior.
160
+ - **SkillOpt roadmap status**: Roadmap docs reflect the full SkillOpt-lite
161
+ implementation status after the acceptance gates landed.
75
162
  - **Auxiliary routing and provider health**: Auxiliary model calls prefer
76
163
  healthy local providers when configured and route through health-aware
77
164
  fallback decisions.
@@ -87,6 +174,10 @@
87
174
 
88
175
  - **Remote A2A routing bug**: Fixed `sendMessage` delivery for remote A2A
89
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.
90
181
  - **Admin SPA navigation bug**: Fixed admin job links that triggered full-page
91
182
  reloads instead of staying inside the existing SPA route.
92
183
  - **Observability ingest token bug**: Fixed stale observability ingest tokens
package/README.md CHANGED
@@ -117,6 +117,9 @@ Once the gateway is running, open HybridClaw locally:
117
117
  - Web Chat accepts `/btw <question>` side questions while a primary run is
118
118
  active, so you can ask an ephemeral follow-up without interrupting the
119
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
120
123
  - Admin Console: `http://127.0.0.1:9090/admin` for channels, versioned agent files,
121
124
  scheduler, audit, statistics, config, secrets, output guard, A2A inbox threads, and
122
125
  channel-specific instructions
@@ -147,6 +150,8 @@ Once the gateway is running, open HybridClaw locally:
147
150
  spend summaries without scanning every stored session on page load.
148
151
  - `/admin/agent-scoreboard` ranks agents by observed skill scores, reliability,
149
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.
150
155
  - `hybridclaw agent config` accepts generated JSON payloads to upsert agent
151
156
  metadata, write bootstrap markdown, import profile images into the agent
152
157
  workspace, and optionally activate the agent.
@@ -180,6 +185,9 @@ Once the gateway is running, open HybridClaw locally:
180
185
  - `/goal` stores a standing completion condition for the current thread and
181
186
  queues supervised continuations until the goal is judged complete, paused,
182
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.
183
191
  - `proactive.delegation.model` can pin delegated work to a different model
184
192
  from the parent turn; `/status` shows delegate token totals and local-token
185
193
  share when that split is configured.
@@ -189,11 +197,18 @@ Once the gateway is running, open HybridClaw locally:
189
197
  Cloudflare Tunnel providers read `NGROK_AUTHTOKEN`, `TS_AUTHKEY`,
190
198
  `CLOUDFLARE_TUNNEL_TOKEN`, and Cloudflare certificate credentials from the
191
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.
192
204
  - `container.warmPool` keeps a bounded adaptive pool of idle host/container
193
205
  runtimes for recently active agents when low cold-start latency matters.
194
206
  - `container.persistBashState` controls whether bash tool calls share shell
195
207
  state (`cd`, exported env vars, aliases) across turns in the same active
196
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.
197
212
  - `security.confidentialRedactionEnabled` controls whether optional
198
213
  `.confidential.yml` rules redact prompts and block matching outbound text;
199
214
  `/admin/config` exposes the same setting as `Confidential leak guard`.
@@ -222,8 +237,8 @@ Once the gateway is running, open HybridClaw locally:
222
237
  local operators review scanner-blocked skills and record a bypass marker for
223
238
  the installed copy when the finding has been accepted.
224
239
  - Bundled skills include CRM, finance, infrastructure, monitoring,
225
- home-automation, fax, local PII redaction, media, search, and office
226
- workflows. Skill setup guides live in the
240
+ home-automation and solar monitoring, fax, local PII redaction, media,
241
+ search, and office workflows. Skill setup guides live in the
227
242
  [Skills Catalog](https://hybridaione.github.io/hybridclaw/docs/guides/skills/).
228
243
  - The bundled tutorials cover owner, GTM, marketing, sales, DevRel, content,
229
244
  invoicing, webinar, and release-launch workflows that can run from the TUI,
@@ -278,7 +293,8 @@ Once the gateway is running, open HybridClaw locally:
278
293
  Salesforce inspection, GitHub issue queue processing (`gh-issues`),
279
294
  monthly SaaS invoice harvesting (`download-platform-invoices`), Airtable,
280
295
  FastBill, Lexware Office, managed or self-hosted Firecrawl, Google Ads, GA4 reporting,
281
- HeyGen, Hermes3000 long-form writing, natural-language warehouse SQL
296
+ HeyGen, Hermes3000 long-form writing, Fronius solar monitoring, Homematic
297
+ HCU state/control planning, natural-language warehouse SQL
282
298
  (`warehouse-sql`), brand-voice drafting, speech transcription and language
283
299
  detection (`speech.transcribe`, `speech.detect-language`), validated
284
300
  diagram-as-code creation through `diagram`, and editable Excalidraw diagram