@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.
- package/AGENTS.md +19 -0
- package/CHANGELOG.md +183 -0
- package/README.md +36 -7
- package/community-skills/meme-generation/SKILL.md +1 -1
- package/config.example.json +14 -52
- package/console/dist/assets/chat-BBTk0x5Q.css +1 -0
- package/console/dist/assets/chat-DZIcidEg.js +94 -0
- package/console/dist/assets/cx-Dqc_1ltZ.js +1 -0
- package/console/dist/assets/index-DH_jaXi8.js +80 -0
- package/console/dist/assets/index-z7-uHEVk.css +1 -0
- package/console/dist/assets/query-RUG48qgh.js +1 -0
- package/console/dist/assets/{router-NXexqZsi.js → router-BU9baKrP.js} +1 -1
- package/console/dist/assets/{terminal-CIu44Bps.js → terminal-BvzXR9aQ.js} +1 -1
- package/console/dist/assets/{vendor-BCIzCfhA.js → vendor-C4MCdPcq.js} +1 -1
- package/console/dist/index.html +6 -6
- package/console/package.json +3 -2
- package/container/Dockerfile +5 -5
- package/container/dist/approval-policy.js +175 -1
- package/container/dist/approval-policy.js.map +1 -1
- package/container/dist/audio-transcribe.js +5 -5
- package/container/dist/audio-transcribe.js.map +1 -1
- package/container/dist/browser-tools.js +416 -135
- package/container/dist/browser-tools.js.map +1 -1
- package/container/dist/codex-app-server.js +908 -0
- package/container/dist/codex-app-server.js.map +1 -0
- package/container/dist/codex-app-types.js +2 -0
- package/container/dist/codex-app-types.js.map +1 -0
- package/container/dist/codex-app-utils.js +10 -0
- package/container/dist/codex-app-utils.js.map +1 -0
- package/container/dist/codex-hybridclaw-mcp.js +294 -0
- package/container/dist/codex-hybridclaw-mcp.js.map +1 -0
- package/container/dist/diagram-create.js +113 -58
- package/container/dist/diagram-create.js.map +1 -1
- package/container/dist/image-generation.js +5 -5
- package/container/dist/image-generation.js.map +1 -1
- package/container/dist/index.js +181 -6
- package/container/dist/index.js.map +1 -1
- package/container/dist/ipc.js +10 -2
- package/container/dist/ipc.js.map +1 -1
- package/container/dist/providers/local-openai-compat.js +5 -1
- package/container/dist/providers/local-openai-compat.js.map +1 -1
- package/container/dist/providers/provider-ids.js +27 -0
- package/container/dist/providers/provider-ids.js.map +1 -1
- package/container/dist/tools.js +34 -7
- package/container/dist/tools.js.map +1 -1
- package/container/dist/types.js.map +1 -1
- package/container/dist/video-generation.js +3 -3
- package/container/dist/video-generation.js.map +1 -1
- package/container/npm-shrinkwrap.json +5750 -0
- package/container/package-lock.json +1282 -100
- package/container/package.json +7 -2
- package/container/shared/browser-navigation.js +1 -1
- package/container/shared/network-policy.js +29 -0
- package/container/shared/primitive-values.d.ts +3 -0
- package/container/shared/primitive-values.js +16 -0
- package/container/shared/skill-policy.js +23 -9
- package/container/shared/two-factor-detection.d.ts +70 -0
- package/container/shared/two-factor-detection.js +183 -0
- package/container/src/approval-policy.ts +231 -1
- package/container/src/audio-transcribe.ts +5 -5
- package/container/src/browser-tools.ts +568 -187
- package/container/src/codex-app-server.ts +1231 -0
- package/container/src/codex-app-types.ts +21 -0
- package/container/src/codex-app-utils.ts +11 -0
- package/container/src/codex-hybridclaw-mcp.ts +402 -0
- package/container/src/diagram-create.ts +147 -87
- package/container/src/image-generation.ts +5 -5
- package/container/src/index.ts +237 -3
- package/container/src/ipc.ts +14 -2
- package/container/src/providers/local-openai-compat.ts +7 -1
- package/container/src/providers/provider-ids.ts +37 -0
- package/container/src/tools.ts +52 -6
- package/container/src/types.ts +7 -0
- package/container/src/video-generation.ts +3 -3
- package/dist/a2a/a2a-outbound.d.ts +1 -1
- package/dist/a2a/a2a-outbound.d.ts.map +1 -1
- package/dist/a2a/a2a-outbound.js +1 -1
- package/dist/a2a/a2a-outbound.js.map +1 -1
- package/dist/a2a/a2a-outbox-delivery.d.ts +3 -0
- package/dist/a2a/a2a-outbox-delivery.d.ts.map +1 -1
- package/dist/a2a/a2a-outbox-delivery.js +156 -69
- package/dist/a2a/a2a-outbox-delivery.js.map +1 -1
- package/dist/a2a/a2a-outbox-persistence.d.ts +17 -2
- package/dist/a2a/a2a-outbox-persistence.d.ts.map +1 -1
- package/dist/a2a/a2a-outbox-persistence.js +74 -5
- package/dist/a2a/a2a-outbox-persistence.js.map +1 -1
- package/dist/a2a/a2a-outbox-processor.d.ts.map +1 -1
- package/dist/a2a/a2a-outbox-processor.js +7 -3
- package/dist/a2a/a2a-outbox-processor.js.map +1 -1
- package/dist/a2a/audit.d.ts +22 -0
- package/dist/a2a/audit.d.ts.map +1 -0
- package/dist/a2a/audit.js +29 -0
- package/dist/a2a/audit.js.map +1 -0
- package/dist/a2a/identity-resolver-invalidation.d.ts +5 -0
- package/dist/a2a/identity-resolver-invalidation.d.ts.map +1 -0
- package/dist/a2a/identity-resolver-invalidation.js +13 -0
- package/dist/a2a/identity-resolver-invalidation.js.map +1 -0
- package/dist/a2a/identity-resolver.d.ts +5 -0
- package/dist/a2a/identity-resolver.d.ts.map +1 -0
- package/dist/a2a/identity-resolver.js +129 -0
- package/dist/a2a/identity-resolver.js.map +1 -0
- package/dist/a2a/identity.d.ts.map +1 -1
- package/dist/a2a/identity.js +30 -9
- package/dist/a2a/identity.js.map +1 -1
- package/dist/a2a/inbound-pipeline.d.ts.map +1 -1
- package/dist/a2a/inbound-pipeline.js +1 -0
- package/dist/a2a/inbound-pipeline.js.map +1 -1
- package/dist/a2a/peer-descriptor.d.ts +2 -1
- package/dist/a2a/peer-descriptor.d.ts.map +1 -1
- package/dist/a2a/peer-descriptor.js +25 -12
- package/dist/a2a/peer-descriptor.js.map +1 -1
- package/dist/a2a/runtime.d.ts +16 -2
- package/dist/a2a/runtime.d.ts.map +1 -1
- package/dist/a2a/runtime.js +125 -21
- package/dist/a2a/runtime.js.map +1 -1
- package/dist/a2a/store.d.ts +2 -0
- package/dist/a2a/store.d.ts.map +1 -1
- package/dist/a2a/store.js +85 -13
- package/dist/a2a/store.js.map +1 -1
- package/dist/a2a/trust-ledger.d.ts +1 -0
- package/dist/a2a/trust-ledger.d.ts.map +1 -1
- package/dist/a2a/trust-ledger.js +5 -1
- package/dist/a2a/trust-ledger.js.map +1 -1
- package/dist/a2a/webhook-outbound.d.ts.map +1 -1
- package/dist/a2a/webhook-outbound.js +13 -4
- package/dist/a2a/webhook-outbound.js.map +1 -1
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js +3 -5
- package/dist/agent/executor.js.map +1 -1
- package/dist/agent/prompt-hooks.d.ts.map +1 -1
- package/dist/agent/prompt-hooks.js +10 -4
- package/dist/agent/prompt-hooks.js.map +1 -1
- package/dist/agent/side-effects.d.ts.map +1 -1
- package/dist/agent/side-effects.js +11 -3
- package/dist/agent/side-effects.js.map +1 -1
- package/dist/agents/agent-registry.d.ts.map +1 -1
- package/dist/agents/agent-registry.js +36 -1
- package/dist/agents/agent-registry.js.map +1 -1
- package/dist/agents/agent-types.d.ts +17 -0
- package/dist/agents/agent-types.d.ts.map +1 -1
- package/dist/agents/agent-types.js +96 -0
- package/dist/agents/agent-types.js.map +1 -1
- package/dist/audit/audit-events.d.ts.map +1 -1
- package/dist/audit/audit-events.js +6 -0
- package/dist/audit/audit-events.js.map +1 -1
- package/dist/audit/audit-trail.d.ts +3 -0
- package/dist/audit/audit-trail.d.ts.map +1 -1
- package/dist/audit/audit-trail.js +23 -0
- package/dist/audit/audit-trail.js.map +1 -1
- package/dist/audit/observability-ingest.d.ts.map +1 -1
- package/dist/audit/observability-ingest.js +39 -4
- package/dist/audit/observability-ingest.js.map +1 -1
- package/dist/auth/google-auth.d.ts +1 -0
- package/dist/auth/google-auth.d.ts.map +1 -1
- package/dist/auth/google-auth.js +12 -0
- package/dist/auth/google-auth.js.map +1 -1
- package/dist/auth/hubspot-auth.d.ts +64 -0
- package/dist/auth/hubspot-auth.d.ts.map +1 -0
- package/dist/auth/hubspot-auth.js +378 -0
- package/dist/auth/hubspot-auth.js.map +1 -0
- package/dist/board/budget-chip.d.ts +30 -0
- package/dist/board/budget-chip.d.ts.map +1 -0
- package/dist/board/budget-chip.js +114 -0
- package/dist/board/budget-chip.js.map +1 -0
- package/dist/board/card-store.d.ts +27 -1
- package/dist/board/card-store.d.ts.map +1 -1
- package/dist/board/card-store.js +424 -10
- package/dist/board/card-store.js.map +1 -1
- package/dist/browser/browser-login.js +1 -1
- package/dist/browser/browser-login.js.map +1 -1
- package/dist/browser/browser-use-cloud-provider.d.ts +3 -1
- package/dist/browser/browser-use-cloud-provider.d.ts.map +1 -1
- package/dist/browser/browser-use-cloud-provider.js +11 -3
- package/dist/browser/browser-use-cloud-provider.js.map +1 -1
- package/dist/browser/camofox-provider.d.ts +3 -1
- package/dist/browser/camofox-provider.d.ts.map +1 -1
- package/dist/browser/camofox-provider.js +12 -4
- package/dist/browser/camofox-provider.js.map +1 -1
- package/dist/browser/local-provider.d.ts +3 -1
- package/dist/browser/local-provider.d.ts.map +1 -1
- package/dist/browser/local-provider.js +5 -1
- package/dist/browser/local-provider.js.map +1 -1
- package/dist/browser/mac-cua-provider.d.ts +127 -0
- package/dist/browser/mac-cua-provider.d.ts.map +1 -0
- package/dist/browser/mac-cua-provider.js +1172 -0
- package/dist/browser/mac-cua-provider.js.map +1 -0
- package/dist/browser/managed-browser-pool-launcher.d.ts +25 -0
- package/dist/browser/managed-browser-pool-launcher.d.ts.map +1 -0
- package/dist/browser/managed-browser-pool-launcher.js +310 -0
- package/dist/browser/managed-browser-pool-launcher.js.map +1 -0
- package/dist/browser/managed-browser-tenant-policy.d.ts +17 -0
- package/dist/browser/managed-browser-tenant-policy.d.ts.map +1 -0
- package/dist/browser/managed-browser-tenant-policy.js +181 -0
- package/dist/browser/managed-browser-tenant-policy.js.map +1 -0
- package/dist/browser/managed-cloud-doctor.d.ts +9 -0
- package/dist/browser/managed-cloud-doctor.d.ts.map +1 -0
- package/dist/browser/managed-cloud-doctor.js +74 -0
- package/dist/browser/managed-cloud-doctor.js.map +1 -0
- package/dist/browser/managed-cloud-provider.d.ts +67 -0
- package/dist/browser/managed-cloud-provider.d.ts.map +1 -0
- package/dist/browser/managed-cloud-provider.js +551 -0
- package/dist/browser/managed-cloud-provider.js.map +1 -0
- package/dist/browser/playwright-utils.d.ts +19 -5
- package/dist/browser/playwright-utils.d.ts.map +1 -1
- package/dist/browser/playwright-utils.js +55 -3
- package/dist/browser/playwright-utils.js.map +1 -1
- package/dist/browser/provider-factory.d.ts +4 -0
- package/dist/browser/provider-factory.d.ts.map +1 -1
- package/dist/browser/provider-factory.js +24 -0
- package/dist/browser/provider-factory.js.map +1 -1
- package/dist/browser/provider.d.ts +69 -4
- package/dist/browser/provider.d.ts.map +1 -1
- package/dist/browser/provider.js +4 -1
- package/dist/browser/provider.js.map +1 -1
- package/dist/browser/session-config-signature.d.ts +3 -0
- package/dist/browser/session-config-signature.d.ts.map +1 -0
- package/dist/browser/session-config-signature.js +12 -0
- package/dist/browser/session-config-signature.js.map +1 -0
- package/dist/channels/discord/runtime.d.ts.map +1 -1
- package/dist/channels/discord/runtime.js +1 -1
- package/dist/channels/discord/runtime.js.map +1 -1
- package/dist/channels/email/runtime.d.ts.map +1 -1
- package/dist/channels/email/runtime.js +1 -1
- package/dist/channels/email/runtime.js.map +1 -1
- package/dist/channels/imessage/backend-bluebubbles.d.ts.map +1 -1
- package/dist/channels/imessage/backend-bluebubbles.js +16 -8
- package/dist/channels/imessage/backend-bluebubbles.js.map +1 -1
- package/dist/channels/msteams/runtime.d.ts.map +1 -1
- package/dist/channels/msteams/runtime.js +2 -2
- package/dist/channels/msteams/runtime.js.map +1 -1
- package/dist/cli/auth-command.d.ts.map +1 -1
- package/dist/cli/auth-command.js +215 -6
- package/dist/cli/auth-command.js.map +1 -1
- package/dist/cli/channels-command.js +1 -1
- package/dist/cli/channels-command.js.map +1 -1
- package/dist/cli/env-command.d.ts +2 -0
- package/dist/cli/env-command.d.ts.map +1 -0
- package/dist/cli/env-command.js +57 -0
- package/dist/cli/env-command.js.map +1 -0
- package/dist/cli/help.d.ts +4 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +100 -3
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/plugin-command.d.ts.map +1 -1
- package/dist/cli/plugin-command.js +4 -4
- package/dist/cli/plugin-command.js.map +1 -1
- package/dist/cli/skill-command.d.ts.map +1 -1
- package/dist/cli/skill-command.js +16 -2
- package/dist/cli/skill-command.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +205 -7
- package/dist/cli.js.map +1 -1
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +255 -4
- package/dist/command-registry.js.map +1 -1
- package/dist/commands/btw-command.d.ts.map +1 -1
- package/dist/commands/btw-command.js +6 -4
- package/dist/commands/btw-command.js.map +1 -1
- package/dist/commands/second-opinion-command.d.ts +27 -0
- package/dist/commands/second-opinion-command.d.ts.map +1 -0
- package/dist/commands/second-opinion-command.js +757 -0
- package/dist/commands/second-opinion-command.js.map +1 -0
- package/dist/commands/second-opinion-web-search.d.ts +16 -0
- package/dist/commands/second-opinion-web-search.d.ts.map +1 -0
- package/dist/commands/second-opinion-web-search.js +347 -0
- package/dist/commands/second-opinion-web-search.js.map +1 -0
- package/dist/config/config.d.ts +2 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +4 -2
- package/dist/config/config.js.map +1 -1
- package/dist/config/runtime-config-edit.d.ts +2 -1
- package/dist/config/runtime-config-edit.d.ts.map +1 -1
- package/dist/config/runtime-config-edit.js +36 -0
- package/dist/config/runtime-config-edit.js.map +1 -1
- package/dist/config/runtime-config-revisions.d.ts +1 -1
- package/dist/config/runtime-config-revisions.d.ts.map +1 -1
- package/dist/config/runtime-config-revisions.js +1 -0
- package/dist/config/runtime-config-revisions.js.map +1 -1
- package/dist/config/runtime-config.d.ts +31 -7
- package/dist/config/runtime-config.d.ts.map +1 -1
- package/dist/config/runtime-config.js +251 -52
- package/dist/config/runtime-config.js.map +1 -1
- package/dist/config/runtime-env.d.ts +10 -0
- package/dist/config/runtime-env.d.ts.map +1 -0
- package/dist/config/runtime-env.js +149 -0
- package/dist/config/runtime-env.js.map +1 -0
- package/dist/doctor/checks/cua-mac.d.ts +13 -0
- package/dist/doctor/checks/cua-mac.d.ts.map +1 -0
- package/dist/doctor/checks/cua-mac.js +123 -0
- package/dist/doctor/checks/cua-mac.js.map +1 -0
- package/dist/doctor/checks/docker.js +3 -3
- package/dist/doctor/checks/docker.js.map +1 -1
- package/dist/doctor/checks/index.d.ts.map +1 -1
- package/dist/doctor/checks/index.js +6 -0
- package/dist/doctor/checks/index.js.map +1 -1
- package/dist/doctor/checks/security.d.ts.map +1 -1
- package/dist/doctor/checks/security.js +46 -0
- package/dist/doctor/checks/security.js.map +1 -1
- package/dist/doctor/types.d.ts +1 -1
- package/dist/doctor/types.d.ts.map +1 -1
- package/dist/doctor/types.js +1 -0
- package/dist/doctor/types.js.map +1 -1
- package/dist/doctor/utils.d.ts.map +1 -1
- package/dist/doctor/utils.js +4 -0
- package/dist/doctor/utils.js.map +1 -1
- package/dist/evals/eval-command.d.ts.map +1 -1
- package/dist/evals/eval-command.js +2 -9
- package/dist/evals/eval-command.js.map +1 -1
- package/dist/evals/hybridai-skills-command.d.ts.map +1 -1
- package/dist/evals/hybridai-skills-command.js +1 -0
- package/dist/evals/hybridai-skills-command.js.map +1 -1
- package/dist/evolution/harness-evolution.d.ts +215 -0
- package/dist/evolution/harness-evolution.d.ts.map +1 -0
- package/dist/evolution/harness-evolution.js +1328 -0
- package/dist/evolution/harness-evolution.js.map +1 -0
- package/dist/fax/accounting.d.ts +31 -0
- package/dist/fax/accounting.d.ts.map +1 -0
- package/dist/fax/accounting.js +65 -0
- package/dist/fax/accounting.js.map +1 -0
- package/dist/gateway/gateway-admin-secrets.d.ts +33 -0
- package/dist/gateway/gateway-admin-secrets.d.ts.map +1 -0
- package/dist/gateway/gateway-admin-secrets.js +173 -0
- package/dist/gateway/gateway-admin-secrets.js.map +1 -0
- package/dist/gateway/gateway-agent-cards.js +8 -8
- package/dist/gateway/gateway-agent-cards.js.map +1 -1
- package/dist/gateway/gateway-chat-service.d.ts +7 -0
- package/dist/gateway/gateway-chat-service.d.ts.map +1 -1
- package/dist/gateway/gateway-chat-service.js +146 -7
- package/dist/gateway/gateway-chat-service.js.map +1 -1
- package/dist/gateway/gateway-client.d.ts +8 -1
- package/dist/gateway/gateway-client.d.ts.map +1 -1
- package/dist/gateway/gateway-client.js +16 -0
- package/dist/gateway/gateway-client.js.map +1 -1
- package/dist/gateway/gateway-http-proxy.d.ts.map +1 -1
- package/dist/gateway/gateway-http-proxy.js +425 -56
- package/dist/gateway/gateway-http-proxy.js.map +1 -1
- package/dist/gateway/gateway-http-server.d.ts.map +1 -1
- package/dist/gateway/gateway-http-server.js +1473 -14
- package/dist/gateway/gateway-http-server.js.map +1 -1
- package/dist/gateway/gateway-http-utils.d.ts +2 -1
- package/dist/gateway/gateway-http-utils.d.ts.map +1 -1
- package/dist/gateway/gateway-http-utils.js +2 -12
- package/dist/gateway/gateway-http-utils.js.map +1 -1
- package/dist/gateway/gateway-plugin-service.d.ts.map +1 -1
- package/dist/gateway/gateway-plugin-service.js +6 -6
- package/dist/gateway/gateway-plugin-service.js.map +1 -1
- package/dist/gateway/gateway-scheduled-task-service.d.ts +3 -2
- package/dist/gateway/gateway-scheduled-task-service.d.ts.map +1 -1
- package/dist/gateway/gateway-scheduled-task-service.js +36 -49
- package/dist/gateway/gateway-scheduled-task-service.js.map +1 -1
- package/dist/gateway/gateway-secret-injection.d.ts +2 -2
- package/dist/gateway/gateway-secret-injection.d.ts.map +1 -1
- package/dist/gateway/gateway-service.d.ts +11 -2
- package/dist/gateway/gateway-service.d.ts.map +1 -1
- package/dist/gateway/gateway-service.js +566 -156
- package/dist/gateway/gateway-service.js.map +1 -1
- package/dist/gateway/gateway-types.d.ts +144 -3
- package/dist/gateway/gateway-types.d.ts.map +1 -1
- package/dist/gateway/gateway-types.js.map +1 -1
- package/dist/gateway/gateway-utils.d.ts +1 -0
- package/dist/gateway/gateway-utils.d.ts.map +1 -1
- package/dist/gateway/gateway-utils.js +18 -0
- package/dist/gateway/gateway-utils.js.map +1 -1
- package/dist/gateway/gateway.js +18 -20
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/interactive-escalation.d.ts +10 -13
- package/dist/gateway/interactive-escalation.d.ts.map +1 -1
- package/dist/gateway/interactive-escalation.js +96 -74
- package/dist/gateway/interactive-escalation.js.map +1 -1
- package/dist/gateway/openai-compatible.d.ts.map +1 -1
- package/dist/gateway/openai-compatible.js +39 -1
- package/dist/gateway/openai-compatible.js.map +1 -1
- package/dist/gateway/output-guard-admin.d.ts +5 -0
- package/dist/gateway/output-guard-admin.d.ts.map +1 -0
- package/dist/gateway/output-guard-admin.js +574 -0
- package/dist/gateway/output-guard-admin.js.map +1 -0
- package/dist/gateway/proactive-delivery.d.ts +3 -1
- package/dist/gateway/proactive-delivery.d.ts.map +1 -1
- package/dist/gateway/proactive-delivery.js +13 -0
- package/dist/gateway/proactive-delivery.js.map +1 -1
- package/dist/gateway/provider-status.d.ts +10 -0
- package/dist/gateway/provider-status.d.ts.map +1 -0
- package/dist/gateway/provider-status.js +160 -0
- package/dist/gateway/provider-status.js.map +1 -0
- package/dist/gateway/response-ratings.d.ts +17 -0
- package/dist/gateway/response-ratings.d.ts.map +1 -0
- package/dist/gateway/response-ratings.js +78 -0
- package/dist/gateway/response-ratings.js.map +1 -0
- package/dist/gateway/skill-commands.js +2 -2
- package/dist/gateway/skill-commands.js.map +1 -1
- package/dist/identity/agent-id.d.ts +11 -0
- package/dist/identity/agent-id.d.ts.map +1 -1
- package/dist/identity/agent-id.js +21 -0
- package/dist/identity/agent-id.js.map +1 -1
- package/dist/identity/resolver.d.ts +3 -0
- package/dist/identity/resolver.d.ts.map +1 -1
- package/dist/identity/resolver.js +19 -1
- package/dist/identity/resolver.js.map +1 -1
- package/dist/infra/container-runner.d.ts.map +1 -1
- package/dist/infra/container-runner.js +35 -35
- package/dist/infra/container-runner.js.map +1 -1
- package/dist/infra/container-setup.js +4 -4
- package/dist/infra/container-setup.js.map +1 -1
- package/dist/infra/host-runner.d.ts.map +1 -1
- package/dist/infra/host-runner.js +25 -28
- package/dist/infra/host-runner.js.map +1 -1
- package/dist/infra/ipc.d.ts.map +1 -1
- package/dist/infra/ipc.js +6 -1
- package/dist/infra/ipc.js.map +1 -1
- package/dist/infra/tool-progress-parser.d.ts +4 -0
- package/dist/infra/tool-progress-parser.d.ts.map +1 -0
- package/dist/infra/tool-progress-parser.js +24 -0
- package/dist/infra/tool-progress-parser.js.map +1 -0
- package/dist/infra/worker-signature.d.ts +4 -0
- package/dist/infra/worker-signature.d.ts.map +1 -1
- package/dist/infra/worker-signature.js +3 -0
- package/dist/infra/worker-signature.js.map +1 -1
- package/dist/media/audio-transcription.d.ts.map +1 -1
- package/dist/media/audio-transcription.js +1 -2
- package/dist/media/audio-transcription.js.map +1 -1
- package/dist/media/pdf-context.d.ts.map +1 -1
- package/dist/media/pdf-context.js +1 -2
- package/dist/media/pdf-context.js.map +1 -1
- package/dist/memory/db.d.ts +108 -19
- package/dist/memory/db.d.ts.map +1 -1
- package/dist/memory/db.js +1151 -82
- package/dist/memory/db.js.map +1 -1
- package/dist/memory/jobs.d.ts +51 -0
- package/dist/memory/jobs.d.ts.map +1 -0
- package/dist/memory/jobs.js +322 -0
- package/dist/memory/jobs.js.map +1 -0
- package/dist/onboarding.js +2 -2
- package/dist/onboarding.js.map +1 -1
- package/dist/plugins/plugin-install.d.ts +1 -1
- package/dist/plugins/plugin-install.d.ts.map +1 -1
- package/dist/plugins/plugin-manager.d.ts.map +1 -1
- package/dist/plugins/plugin-manager.js +9 -3
- package/dist/plugins/plugin-manager.js.map +1 -1
- package/dist/plugins/plugin-types.d.ts +1 -1
- package/dist/plugins/plugin-types.d.ts.map +1 -1
- package/dist/policy/policy-store.d.ts +7 -0
- package/dist/policy/policy-store.d.ts.map +1 -1
- package/dist/policy/policy-store.js +112 -4
- package/dist/policy/policy-store.js.map +1 -1
- package/dist/providers/auxiliary.d.ts +1 -0
- package/dist/providers/auxiliary.d.ts.map +1 -1
- package/dist/providers/auxiliary.js +347 -64
- package/dist/providers/auxiliary.js.map +1 -1
- package/dist/providers/factory.d.ts.map +1 -1
- package/dist/providers/factory.js +79 -25
- package/dist/providers/factory.js.map +1 -1
- package/dist/providers/task-routing.d.ts.map +1 -1
- package/dist/providers/task-routing.js +3 -17
- package/dist/providers/task-routing.js.map +1 -1
- package/dist/scheduler/heartbeat.d.ts.map +1 -1
- package/dist/scheduler/heartbeat.js +12 -10
- package/dist/scheduler/heartbeat.js.map +1 -1
- package/dist/scheduler/scheduler.d.ts +3 -3
- package/dist/scheduler/scheduler.d.ts.map +1 -1
- package/dist/scheduler/scheduler.js +52 -67
- package/dist/scheduler/scheduler.js.map +1 -1
- package/dist/security/admin-rbac.d.ts +4 -0
- package/dist/security/admin-rbac.d.ts.map +1 -0
- package/dist/security/admin-rbac.js +37 -0
- package/dist/security/admin-rbac.js.map +1 -0
- package/dist/security/media-paths.d.ts +0 -1
- package/dist/security/media-paths.d.ts.map +1 -1
- package/dist/security/media-paths.js +0 -1
- package/dist/security/media-paths.js.map +1 -1
- package/dist/security/mount-config.d.ts +6 -2
- package/dist/security/mount-config.d.ts.map +1 -1
- package/dist/security/mount-config.js +18 -14
- package/dist/security/mount-config.js.map +1 -1
- package/dist/security/redact.d.ts +2 -0
- package/dist/security/redact.d.ts.map +1 -1
- package/dist/security/redact.js +43 -0
- package/dist/security/redact.js.map +1 -1
- package/dist/security/runtime-secrets.d.ts +16 -0
- package/dist/security/runtime-secrets.d.ts.map +1 -1
- package/dist/security/runtime-secrets.js +137 -32
- package/dist/security/runtime-secrets.js.map +1 -1
- package/dist/security/secret-handles.d.ts +1 -0
- package/dist/security/secret-handles.d.ts.map +1 -1
- package/dist/security/secret-handles.js +5 -0
- package/dist/security/secret-handles.js.map +1 -1
- package/dist/session/session-trace-export.d.ts +4 -0
- package/dist/session/session-trace-export.d.ts.map +1 -1
- package/dist/session/session-trace-export.js +102 -65
- package/dist/session/session-trace-export.js.map +1 -1
- package/dist/session/session-turn-trace.d.ts +69 -0
- package/dist/session/session-turn-trace.d.ts.map +1 -0
- package/dist/session/session-turn-trace.js +420 -0
- package/dist/session/session-turn-trace.js.map +1 -0
- package/dist/skills/adaptive-skills-types.d.ts +74 -0
- package/dist/skills/adaptive-skills-types.d.ts.map +1 -1
- package/dist/skills/agent-cv.d.ts.map +1 -1
- package/dist/skills/agent-cv.js +71 -58
- package/dist/skills/agent-cv.js.map +1 -1
- package/dist/skills/skill-formatters.d.ts.map +1 -1
- package/dist/skills/skill-formatters.js +32 -2
- package/dist/skills/skill-formatters.js.map +1 -1
- package/dist/skills/skill-manifest.d.ts +8 -0
- package/dist/skills/skill-manifest.d.ts.map +1 -1
- package/dist/skills/skill-manifest.js +52 -0
- package/dist/skills/skill-manifest.js.map +1 -1
- package/dist/skills/skill-run-trajectories.d.ts +7 -0
- package/dist/skills/skill-run-trajectories.d.ts.map +1 -1
- package/dist/skills/skill-run-trajectories.js +81 -0
- package/dist/skills/skill-run-trajectories.js.map +1 -1
- package/dist/skills/skillopt-lite.d.ts +28 -0
- package/dist/skills/skillopt-lite.d.ts.map +1 -0
- package/dist/skills/skillopt-lite.js +354 -0
- package/dist/skills/skillopt-lite.js.map +1 -0
- package/dist/skills/skills-amendment.d.ts.map +1 -1
- package/dist/skills/skills-amendment.js +288 -24
- package/dist/skills/skills-amendment.js.map +1 -1
- package/dist/skills/skills-inspection.d.ts.map +1 -1
- package/dist/skills/skills-inspection.js +5 -0
- package/dist/skills/skills-inspection.js.map +1 -1
- package/dist/skills/skills-lifecycle.d.ts.map +1 -1
- package/dist/skills/skills-lifecycle.js +5 -0
- package/dist/skills/skills-lifecycle.js.map +1 -1
- package/dist/skills/skills-observation.d.ts +6 -0
- package/dist/skills/skills-observation.d.ts.map +1 -1
- package/dist/skills/skills-observation.js +32 -1
- package/dist/skills/skills-observation.js.map +1 -1
- package/dist/skills/skills.d.ts +5 -2
- package/dist/skills/skills.d.ts.map +1 -1
- package/dist/skills/skills.js +8 -6
- package/dist/skills/skills.js.map +1 -1
- package/dist/tui-thinking.d.ts.map +1 -1
- package/dist/tui-thinking.js +74 -6
- package/dist/tui-thinking.js.map +1 -1
- package/dist/tui.d.ts +17 -0
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +158 -39
- package/dist/tui.js.map +1 -1
- package/dist/tunnel/ngrok-tunnel-provider.js +1 -1
- package/dist/tunnel/ngrok-tunnel-provider.js.map +1 -1
- package/dist/tunnel/tailscale-tunnel-provider.js +1 -1
- package/dist/tunnel/tailscale-tunnel-provider.js.map +1 -1
- package/dist/types/container.d.ts +6 -0
- package/dist/types/container.d.ts.map +1 -1
- package/dist/types/models.d.ts +1 -1
- package/dist/types/models.d.ts.map +1 -1
- package/dist/types/models.js +2 -0
- package/dist/types/models.js.map +1 -1
- package/dist/types/session.d.ts +14 -0
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/usage.d.ts +6 -0
- package/dist/types/usage.d.ts.map +1 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +111 -4
- package/dist/update.js.map +1 -1
- package/dist/usage/media-generation-usage.d.ts.map +1 -1
- package/dist/usage/media-generation-usage.js +34 -17
- package/dist/usage/media-generation-usage.js.map +1 -1
- package/dist/utils/number-normalization.d.ts +2 -0
- package/dist/utils/number-normalization.d.ts.map +1 -1
- package/dist/utils/number-normalization.js +24 -0
- package/dist/utils/number-normalization.js.map +1 -1
- package/dist/workspace.d.ts +1 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +50 -5
- package/dist/workspace.js.map +1 -1
- package/docs/agents.html +60 -5
- package/docs/content/README.md +9 -3
- package/docs/content/agents.md +1 -0
- package/docs/content/channels/admin-console.md +45 -1
- package/docs/content/channels/fax.md +189 -0
- package/docs/content/channels/imessage.md +11 -10
- package/docs/content/channels/overview.md +2 -1
- package/docs/content/developer-guide/README.md +4 -0
- package/docs/content/developer-guide/harness-evolution.md +289 -0
- package/docs/content/developer-guide/identity.md +18 -0
- package/docs/content/developer-guide/runtime.md +5 -1
- package/docs/content/developer-guide/threat-model.md +218 -0
- package/docs/content/extensibility/plugins.md +5 -5
- package/docs/content/extensibility/skills.md +193 -0
- package/docs/content/guides/bundled-skills.md +5 -3
- package/docs/content/guides/hetzner-managed-browser.md +53 -0
- package/docs/content/guides/skills/README.md +8 -3
- package/docs/content/guides/skills/communication.md +41 -0
- package/docs/content/guides/skills/development.md +357 -1
- package/docs/content/guides/skills/integrations.md +158 -0
- package/docs/content/guides/skills/publishing.md +7 -5
- package/docs/content/internal/roadmap.md +60 -36
- package/docs/content/manifesto.md +2 -2
- package/docs/content/reference/commands.md +58 -4
- package/docs/content/reference/configuration.md +98 -10
- package/docs/content/reference/diagnostics.md +10 -1
- package/docs/content/reference/model-selection.md +55 -1
- package/docs/imessage.md +7 -4
- package/docs/index.html +2 -2
- package/docs/security/threat-model.md +212 -0
- package/docs/static/docs.js +2 -1
- package/infra/managed-browser/Dockerfile +13 -0
- package/infra/managed-browser/README.md +54 -0
- package/infra/managed-browser/docker-compose.yml +22 -0
- package/infra/managed-browser/guard-proxy.js +179 -0
- package/infra/managed-browser/hetzner.compose.yml +17 -0
- package/infra/managed-browser/package.json +14 -0
- package/infra/managed-browser/policy.js +98 -0
- package/infra/managed-browser/server.js +587 -0
- package/infra/managed-browser/state.js +35 -0
- package/infra/managed-browser/tenants.example.yaml +21 -0
- package/npm-shrinkwrap.json +18462 -0
- package/package.json +15 -10
- package/plugins/concierge-router/src/command.js +1 -4
- package/scripts/postinstall-container.mjs +1 -0
- package/skills/airtable/SKILL.md +9 -0
- package/skills/brand-voice/SKILL.md +5 -0
- package/skills/current-time/SKILL.md +5 -0
- package/skills/diagram/SKILL.md +8 -9
- package/skills/distil-pii-redactor/SKILL.md +138 -0
- package/skills/distil-pii-redactor/scripts/redact.py +343 -0
- package/skills/distil-pii-redactor/scripts/setup.sh +87 -0
- package/skills/distil-pii-redactor/scripts/stop.sh +40 -0
- package/skills/download-platform-invoices/adapters/scrape.cjs +43 -23
- package/skills/download-platform-invoices/helpers/escalation.cjs +10 -0
- package/skills/fastbill/SKILL.md +77 -172
- package/skills/fastbill/fastbill.cjs +0 -292
- package/skills/fax-send/SKILL.md +287 -0
- package/skills/fax-send/evals/scenarios.json +114 -0
- package/skills/fax-send/fax_send.cjs +1092 -0
- package/skills/fax-send/index.cjs +2 -0
- package/skills/folder-hygiene/references/workspace-layout.md +158 -0
- package/skills/fronius/SKILL.md +273 -0
- package/skills/fronius/fronius.cjs +927 -0
- package/skills/hermes3000-writing/SKILL.md +1 -1
- package/skills/hetzner-cloud/SKILL.md +232 -0
- package/skills/hetzner-cloud/evals/scenarios.json +84 -0
- package/skills/hetzner-cloud/hetzner-shared.cjs +167 -0
- package/skills/hetzner-cloud/hetzner_cloud.cjs +780 -0
- package/skills/hetzner-cloud/references/operator-setup.md +47 -0
- package/skills/hetzner-dns/SKILL.md +144 -0
- package/skills/hetzner-dns/evals/scenarios.json +82 -0
- package/skills/hetzner-dns/hetzner-shared.cjs +167 -0
- package/skills/hetzner-dns/hetzner_dns.cjs +314 -0
- package/skills/hetzner-dns/references/operator-setup.md +45 -0
- package/skills/hetzner-storage-box/SKILL.md +177 -0
- package/skills/hetzner-storage-box/evals/scenarios.json +82 -0
- package/skills/hetzner-storage-box/hetzner-shared.cjs +167 -0
- package/skills/hetzner-storage-box/hetzner_storage_box.cjs +489 -0
- package/skills/hetzner-storage-box/references/operator-setup.md +48 -0
- package/skills/heygen/SKILL.md +44 -18
- package/skills/heygen/client.cjs +141 -0
- package/skills/heygen/heygen.cjs +235 -12
- package/skills/homematic/SKILL.md +286 -0
- package/skills/homematic/fixtures/hcu-state.json +86 -0
- package/skills/homematic/homematic.cjs +1021 -0
- package/skills/hubspot/SKILL.md +307 -0
- package/skills/hubspot/evals/scenarios.json +214 -0
- package/skills/hubspot/fixtures/deal-properties.json +64 -0
- package/skills/hubspot/hubspot-plan.cjs +372 -0
- package/skills/hubspot/hubspot-requests.cjs +538 -0
- package/skills/hubspot/hubspot-validation.cjs +78 -0
- package/skills/hubspot/hubspot.cjs +444 -0
- package/skills/image-generation/SKILL.md +5 -0
- package/skills/iss-position/SKILL.md +5 -0
- package/skills/lexware-office/SKILL.md +267 -0
- package/skills/lexware-office/evals/scenarios.json +287 -0
- package/skills/lexware-office/index.cjs +1 -0
- package/skills/lexware-office/lexware_office.cjs +978 -0
- package/skills/lexware-office/references/operator-setup.md +74 -0
- package/skills/mittwald/SKILL.md +261 -0
- package/skills/mittwald/mittwald.cjs +1382 -0
- package/skills/office/SKILL.md +6 -0
- package/skills/pdf/SKILL.md +2 -0
- package/skills/pdf/scripts/create_pdf.mjs +119 -2
- package/skills/personality/SKILL.md +5 -0
- package/skills/shelly/SKILL.md +278 -0
- package/skills/shelly/shelly.cjs +1656 -0
- package/skills/skill-creator/SKILL.md +14 -1
- package/skills/sokosumi/SKILL.md +1 -1
- package/skills/t-cloud-public/SKILL.md +253 -0
- package/skills/t-cloud-public/evals/scenarios.json +79 -0
- package/skills/t-cloud-public/references/operator-setup.md +99 -0
- package/skills/t-cloud-public/t_cloud_public.cjs +991 -0
- package/skills/video-generation/SKILL.md +6 -0
- package/skills/video.from-script/SKILL.md +23 -0
- package/skills/video.from-script/video-from-script.cjs +18 -9
- package/skills/warehouse-sql/SKILL.md +24 -8
- package/skills/warehouse-sql/scripts/warehouse_sql.py +339 -85
- package/skills/zabbix/SKILL.md +216 -0
- package/skills/zabbix/zabbix.cjs +729 -0
- package/skills/zettelkasten/SKILL.md +5 -0
- package/console/dist/assets/chat-CHK2pGdk.css +0 -1
- package/console/dist/assets/chat-DrmOZ2y2.js +0 -158
- package/console/dist/assets/cx-UKeCbc1v.js +0 -1
- package/console/dist/assets/index-CbSfc5B7.css +0 -1
- package/console/dist/assets/index-DZAontVo.js +0 -16
- package/console/dist/assets/query-DYNohPrB.js +0 -1
- 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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
package/config.example.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version":
|
|
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}
|