@hybridaione/hybridclaw 0.12.4 → 0.12.6
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 +5 -4
- package/CHANGELOG.md +120 -16
- package/README.md +75 -16
- package/SECURITY.md +20 -2
- package/config.example.json +53 -0
- package/console/dist/assets/chat-BFZkUicV.js +93 -0
- package/console/dist/assets/chat-CKhyYUgY.css +1 -0
- package/console/dist/assets/cx-Dzb14TPi.js +1 -0
- package/console/dist/assets/index-BFbE8-iL.css +1 -0
- package/console/dist/assets/index-BLDth_j-.js +15 -0
- package/console/dist/assets/query-DYNohPrB.js +1 -0
- package/console/dist/assets/rolldown-runtime-DF2fYuay.js +1 -0
- package/console/dist/assets/router-CUFYqD1a.js +1 -0
- package/console/dist/assets/terminal-BQbAhdr-.js +1 -0
- package/console/dist/assets/{terminal-DShGVqqW.js → terminal-CzORQPl2.js} +2 -2
- package/console/dist/assets/vendor-C4WPVvdh.js +9 -0
- package/console/dist/index.html +7 -2
- package/console/package.json +3 -0
- package/container/dist/approval-policy.js +402 -266
- package/container/dist/approval-policy.js.map +1 -1
- package/container/dist/index.js +7 -5
- package/container/dist/index.js.map +1 -1
- package/container/dist/model-retry.js +1 -1
- package/container/dist/model-retry.js.map +1 -1
- package/container/dist/providers/hybridai.js +2 -1
- package/container/dist/providers/hybridai.js.map +1 -1
- package/container/dist/providers/local-openai-compat.js +2 -1
- package/container/dist/providers/local-openai-compat.js.map +1 -1
- package/container/dist/providers/stream-utils.js +31 -0
- package/container/dist/providers/stream-utils.js.map +1 -0
- package/container/package-lock.json +19 -3
- package/container/package.json +3 -2
- package/container/shared/network-policy.d.ts +34 -0
- package/container/shared/network-policy.js +209 -0
- package/container/src/approval-policy.ts +511 -277
- package/container/src/index.ts +7 -0
- package/container/src/model-retry.ts +1 -1
- package/container/src/providers/hybridai.ts +5 -1
- package/container/src/providers/local-openai-compat.ts +5 -1
- package/container/src/providers/stream-utils.ts +37 -0
- package/dist/agent/prompt-hooks.d.ts.map +1 -1
- package/dist/agent/prompt-hooks.js +34 -1
- package/dist/agent/prompt-hooks.js.map +1 -1
- package/dist/approval-commands.d.ts +1 -1
- package/dist/approval-commands.d.ts.map +1 -1
- package/dist/approval-commands.js +0 -1
- package/dist/approval-commands.js.map +1 -1
- package/dist/auth/codex-auth.d.ts.map +1 -1
- package/dist/auth/codex-auth.js +1 -3
- package/dist/auth/codex-auth.js.map +1 -1
- package/dist/channels/channel-registry.d.ts.map +1 -1
- package/dist/channels/channel-registry.js +5 -1
- package/dist/channels/channel-registry.js.map +1 -1
- package/dist/channels/channel.d.ts +3 -2
- package/dist/channels/channel.d.ts.map +1 -1
- package/dist/channels/channel.js +10 -0
- package/dist/channels/channel.js.map +1 -1
- package/dist/channels/discord/delivery.d.ts.map +1 -1
- package/dist/channels/discord/delivery.js +2 -1
- package/dist/channels/discord/delivery.js.map +1 -1
- package/dist/channels/discord/human-delay.d.ts +0 -1
- package/dist/channels/discord/human-delay.d.ts.map +1 -1
- package/dist/channels/discord/human-delay.js +0 -6
- package/dist/channels/discord/human-delay.js.map +1 -1
- package/dist/channels/discord/reactions.d.ts.map +1 -1
- package/dist/channels/discord/reactions.js +1 -3
- package/dist/channels/discord/reactions.js.map +1 -1
- package/dist/channels/discord/retry.d.ts +4 -0
- package/dist/channels/discord/retry.d.ts.map +1 -0
- package/dist/channels/discord/retry.js +32 -0
- package/dist/channels/discord/retry.js.map +1 -0
- package/dist/channels/discord/runtime.d.ts.map +1 -1
- package/dist/channels/discord/runtime.js +1 -38
- package/dist/channels/discord/runtime.js.map +1 -1
- package/dist/channels/discord/stream.d.ts.map +1 -1
- package/dist/channels/discord/stream.js +15 -46
- package/dist/channels/discord/stream.js.map +1 -1
- package/dist/channels/email/connection.d.ts.map +1 -1
- package/dist/channels/email/connection.js +13 -2
- package/dist/channels/email/connection.js.map +1 -1
- package/dist/channels/msteams/retry.d.ts.map +1 -1
- package/dist/channels/msteams/retry.js +13 -25
- package/dist/channels/msteams/retry.js.map +1 -1
- package/dist/channels/msteams/runtime.d.ts.map +1 -1
- package/dist/channels/msteams/runtime.js +11 -1
- package/dist/channels/msteams/runtime.js.map +1 -1
- package/dist/channels/prompt-adapters.d.ts.map +1 -1
- package/dist/channels/prompt-adapters.js +9 -1
- package/dist/channels/prompt-adapters.js.map +1 -1
- package/dist/channels/telegram/delivery.d.ts.map +1 -1
- package/dist/channels/telegram/delivery.js +8 -20
- package/dist/channels/telegram/delivery.js.map +1 -1
- package/dist/channels/voice/channel-id.d.ts +4 -0
- package/dist/channels/voice/channel-id.d.ts.map +1 -0
- package/dist/channels/voice/channel-id.js +23 -0
- package/dist/channels/voice/channel-id.js.map +1 -0
- package/dist/channels/voice/conversation-relay.d.ts +70 -0
- package/dist/channels/voice/conversation-relay.d.ts.map +1 -0
- package/dist/channels/voice/conversation-relay.js +196 -0
- package/dist/channels/voice/conversation-relay.js.map +1 -0
- package/dist/channels/voice/runtime.d.ts +22 -0
- package/dist/channels/voice/runtime.d.ts.map +1 -0
- package/dist/channels/voice/runtime.js +582 -0
- package/dist/channels/voice/runtime.js.map +1 -0
- package/dist/channels/voice/security.d.ts +20 -0
- package/dist/channels/voice/security.d.ts.map +1 -0
- package/dist/channels/voice/security.js +62 -0
- package/dist/channels/voice/security.js.map +1 -0
- package/dist/channels/voice/session.d.ts +57 -0
- package/dist/channels/voice/session.d.ts.map +1 -0
- package/dist/channels/voice/session.js +208 -0
- package/dist/channels/voice/session.js.map +1 -0
- package/dist/channels/voice/text.d.ts +7 -0
- package/dist/channels/voice/text.d.ts.map +1 -0
- package/dist/channels/voice/text.js +161 -0
- package/dist/channels/voice/text.js.map +1 -0
- package/dist/channels/voice/twilio-manager.d.ts +26 -0
- package/dist/channels/voice/twilio-manager.d.ts.map +1 -0
- package/dist/channels/voice/twilio-manager.js +120 -0
- package/dist/channels/voice/twilio-manager.js.map +1 -0
- package/dist/channels/voice/utils.d.ts +2 -0
- package/dist/channels/voice/utils.d.ts.map +1 -0
- package/dist/channels/voice/utils.js +4 -0
- package/dist/channels/voice/utils.js.map +1 -0
- package/dist/channels/voice/webhook.d.ts +13 -0
- package/dist/channels/voice/webhook.d.ts.map +1 -0
- package/dist/channels/voice/webhook.js +73 -0
- package/dist/channels/voice/webhook.js.map +1 -0
- package/dist/channels/whatsapp/connection.d.ts.map +1 -1
- package/dist/channels/whatsapp/connection.js +16 -2
- package/dist/channels/whatsapp/connection.js.map +1 -1
- package/dist/cli/help.d.ts +2 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +64 -3
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/secret-command.d.ts +2 -0
- package/dist/cli/secret-command.d.ts.map +1 -0
- package/dist/cli/secret-command.js +208 -0
- package/dist/cli/secret-command.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +20 -1
- package/dist/cli.js.map +1 -1
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +343 -7
- package/dist/command-registry.js.map +1 -1
- package/dist/commands/policy-command.d.ts +9 -0
- package/dist/commands/policy-command.d.ts.map +1 -0
- package/dist/commands/policy-command.js +381 -0
- package/dist/commands/policy-command.js.map +1 -0
- package/dist/config/config.d.ts +13 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +28 -0
- package/dist/config/config.js.map +1 -1
- package/dist/config/runtime-config-revisions.d.ts +15 -0
- package/dist/config/runtime-config-revisions.d.ts.map +1 -1
- package/dist/config/runtime-config-revisions.js +38 -1
- package/dist/config/runtime-config-revisions.js.map +1 -1
- package/dist/config/runtime-config.d.ts +48 -3
- package/dist/config/runtime-config.d.ts.map +1 -1
- package/dist/config/runtime-config.js +194 -3
- package/dist/config/runtime-config.js.map +1 -1
- package/dist/doctor/checks/index.d.ts.map +1 -1
- package/dist/doctor/checks/index.js +2 -0
- package/dist/doctor/checks/index.js.map +1 -1
- package/dist/doctor/checks/resource-hygiene.d.ts +43 -0
- package/dist/doctor/checks/resource-hygiene.d.ts.map +1 -0
- package/dist/doctor/checks/resource-hygiene.js +654 -0
- package/dist/doctor/checks/resource-hygiene.js.map +1 -0
- package/dist/doctor/resource-hygiene.d.ts +12 -0
- package/dist/doctor/resource-hygiene.d.ts.map +1 -0
- package/dist/doctor/resource-hygiene.js +126 -0
- package/dist/doctor/resource-hygiene.js.map +1 -0
- package/dist/doctor/types.d.ts +1 -0
- package/dist/doctor/types.d.ts.map +1 -1
- package/dist/doctor/utils.d.ts +3 -1
- package/dist/doctor/utils.d.ts.map +1 -1
- package/dist/doctor/utils.js +16 -0
- package/dist/doctor/utils.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +15 -17
- package/dist/doctor.js.map +1 -1
- package/dist/errors/gateway-request-error.d.ts +5 -0
- package/dist/errors/gateway-request-error.d.ts.map +1 -0
- package/dist/errors/gateway-request-error.js +18 -0
- package/dist/errors/gateway-request-error.js.map +1 -0
- package/dist/gateway/docs.d.ts.map +1 -1
- package/dist/gateway/docs.js +119 -44
- package/dist/gateway/docs.js.map +1 -1
- package/dist/gateway/gateway-chat-service.d.ts.map +1 -1
- package/dist/gateway/gateway-chat-service.js +4 -1
- package/dist/gateway/gateway-chat-service.js.map +1 -1
- package/dist/gateway/gateway-error-utils.d.ts.map +1 -1
- package/dist/gateway/gateway-error-utils.js +1 -0
- package/dist/gateway/gateway-error-utils.js.map +1 -1
- package/dist/gateway/gateway-http-proxy.d.ts +10 -0
- package/dist/gateway/gateway-http-proxy.d.ts.map +1 -0
- package/dist/gateway/gateway-http-proxy.js +479 -0
- package/dist/gateway/gateway-http-proxy.js.map +1 -0
- package/dist/gateway/gateway-http-server.d.ts.map +1 -1
- package/dist/gateway/gateway-http-server.js +512 -452
- package/dist/gateway/gateway-http-server.js.map +1 -1
- package/dist/gateway/gateway-http-utils.d.ts +11 -0
- package/dist/gateway/gateway-http-utils.d.ts.map +1 -0
- package/dist/gateway/gateway-http-utils.js +59 -0
- package/dist/gateway/gateway-http-utils.js.map +1 -0
- package/dist/gateway/gateway-plugin-service.d.ts.map +1 -1
- package/dist/gateway/gateway-plugin-service.js +4 -1
- package/dist/gateway/gateway-plugin-service.js.map +1 -1
- package/dist/gateway/gateway-service.d.ts +48 -18
- package/dist/gateway/gateway-service.d.ts.map +1 -1
- package/dist/gateway/gateway-service.js +814 -39
- package/dist/gateway/gateway-service.js.map +1 -1
- package/dist/gateway/gateway-types.d.ts +105 -0
- package/dist/gateway/gateway-types.d.ts.map +1 -1
- package/dist/gateway/gateway-types.js.map +1 -1
- package/dist/gateway/gateway.js +248 -22
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/pending-approvals.d.ts +4 -0
- package/dist/gateway/pending-approvals.d.ts.map +1 -1
- package/dist/gateway/pending-approvals.js +17 -0
- package/dist/gateway/pending-approvals.js.map +1 -1
- package/dist/gateway/text-channel-commands.d.ts +2 -1
- package/dist/gateway/text-channel-commands.d.ts.map +1 -1
- package/dist/gateway/text-channel-commands.js +5 -10
- package/dist/gateway/text-channel-commands.js.map +1 -1
- package/dist/infra/container-runner.d.ts.map +1 -1
- package/dist/infra/container-runner.js +2 -0
- package/dist/infra/container-runner.js.map +1 -1
- package/dist/infra/host-runner.d.ts.map +1 -1
- package/dist/infra/host-runner.js +1 -0
- package/dist/infra/host-runner.js.map +1 -1
- package/dist/logger.js +23 -4
- package/dist/logger.js.map +1 -1
- package/dist/media/pdf-context.js +1 -1
- package/dist/media/pdf-context.js.map +1 -1
- package/dist/memory/db.d.ts.map +1 -1
- package/dist/memory/db.js +4 -2
- package/dist/memory/db.js.map +1 -1
- package/dist/onboarding.d.ts.map +1 -1
- package/dist/onboarding.js +115 -2
- package/dist/onboarding.js.map +1 -1
- package/dist/policy/network-policy.d.ts +3 -0
- package/dist/policy/network-policy.d.ts.map +1 -0
- package/dist/policy/network-policy.js +2 -0
- package/dist/policy/network-policy.js.map +1 -0
- package/dist/policy/policy-cli.d.ts +2 -0
- package/dist/policy/policy-cli.d.ts.map +1 -0
- package/dist/policy/policy-cli.js +12 -0
- package/dist/policy/policy-cli.js.map +1 -0
- package/dist/policy/policy-presets.d.ts +29 -0
- package/dist/policy/policy-presets.d.ts.map +1 -0
- package/dist/policy/policy-presets.js +155 -0
- package/dist/policy/policy-presets.js.map +1 -0
- package/dist/policy/policy-store.d.ts +31 -0
- package/dist/policy/policy-store.d.ts.map +1 -0
- package/dist/policy/policy-store.js +251 -0
- package/dist/policy/policy-store.js.map +1 -0
- package/dist/providers/anthropic.d.ts +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +2 -7
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/huggingface.d.ts +1 -1
- package/dist/providers/huggingface.d.ts.map +1 -1
- package/dist/providers/huggingface.js +3 -8
- package/dist/providers/huggingface.js.map +1 -1
- package/dist/providers/local-ollama.js +2 -2
- package/dist/providers/local-ollama.js.map +1 -1
- package/dist/providers/mistral.d.ts +1 -1
- package/dist/providers/mistral.d.ts.map +1 -1
- package/dist/providers/mistral.js +3 -8
- package/dist/providers/mistral.js.map +1 -1
- package/dist/providers/openai.d.ts +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +3 -8
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/openrouter.d.ts +1 -1
- package/dist/providers/openrouter.d.ts.map +1 -1
- package/dist/providers/openrouter.js +3 -8
- package/dist/providers/openrouter.js.map +1 -1
- package/dist/providers/provider-utils.d.ts +10 -0
- package/dist/providers/provider-utils.d.ts.map +1 -0
- package/dist/providers/provider-utils.js +21 -0
- package/dist/providers/provider-utils.js.map +1 -0
- package/dist/scheduler/scheduler.d.ts.map +1 -1
- package/dist/scheduler/scheduler.js +7 -0
- package/dist/scheduler/scheduler.js.map +1 -1
- package/dist/scheduler/system-jobs.d.ts +25 -0
- package/dist/scheduler/system-jobs.d.ts.map +1 -0
- package/dist/scheduler/system-jobs.js +27 -0
- package/dist/scheduler/system-jobs.js.map +1 -0
- package/dist/security/runtime-secrets.d.ts +1 -1
- package/dist/security/runtime-secrets.d.ts.map +1 -1
- package/dist/security/runtime-secrets.js +1 -0
- package/dist/security/runtime-secrets.js.map +1 -1
- package/dist/session/session-context.d.ts.map +1 -1
- package/dist/session/session-context.js +1 -0
- package/dist/session/session-context.js.map +1 -1
- package/dist/session/session-maintenance.d.ts.map +1 -1
- package/dist/session/session-maintenance.js +6 -1
- package/dist/session/session-maintenance.js.map +1 -1
- package/dist/session/session-reset.d.ts.map +1 -1
- package/dist/session/session-reset.js +3 -0
- package/dist/session/session-reset.js.map +1 -1
- package/dist/skills/skill-errors.d.ts +6 -0
- package/dist/skills/skill-errors.d.ts.map +1 -0
- package/dist/skills/skill-errors.js +9 -0
- package/dist/skills/skill-errors.js.map +1 -0
- package/dist/skills/skills-import-github.d.ts.map +1 -1
- package/dist/skills/skills-import-github.js +7 -10
- package/dist/skills/skills-import-github.js.map +1 -1
- package/dist/skills/skills-import-hubs.d.ts.map +1 -1
- package/dist/skills/skills-import-hubs.js +2 -5
- package/dist/skills/skills-import-hubs.js.map +1 -1
- package/dist/skills/skills-import.d.ts +1 -0
- package/dist/skills/skills-import.d.ts.map +1 -1
- package/dist/skills/skills-import.js +91 -14
- package/dist/skills/skills-import.js.map +1 -1
- package/dist/skills/skills.d.ts +9 -0
- package/dist/skills/skills.d.ts.map +1 -1
- package/dist/skills/skills.js +110 -2
- package/dist/skills/skills.js.map +1 -1
- package/dist/tui-approval-prompt.d.ts +24 -0
- package/dist/tui-approval-prompt.d.ts.map +1 -0
- package/dist/tui-approval-prompt.js +344 -0
- package/dist/tui-approval-prompt.js.map +1 -0
- package/dist/tui-approval.d.ts +1 -0
- package/dist/tui-approval.d.ts.map +1 -1
- package/dist/tui-approval.js +16 -1
- package/dist/tui-approval.js.map +1 -1
- package/dist/tui-banner.d.ts.map +1 -1
- package/dist/tui-banner.js +1 -0
- package/dist/tui-banner.js.map +1 -1
- package/dist/tui-exit-summary.d.ts +8 -0
- package/dist/tui-exit-summary.d.ts.map +1 -0
- package/dist/tui-exit-summary.js +16 -0
- package/dist/tui-exit-summary.js.map +1 -0
- package/dist/tui-session.d.ts +7 -0
- package/dist/tui-session.d.ts.map +1 -1
- package/dist/tui-session.js +9 -0
- package/dist/tui-session.js.map +1 -1
- package/dist/tui-skill-config.d.ts +1 -1
- package/dist/tui-skill-config.d.ts.map +1 -1
- package/dist/tui-slash-command.d.ts.map +1 -1
- package/dist/tui-slash-command.js +0 -3
- package/dist/tui-slash-command.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +86 -52
- package/dist/tui.js.map +1 -1
- package/dist/utils/transport-retry.d.ts +10 -0
- package/dist/utils/transport-retry.d.ts.map +1 -0
- package/dist/utils/transport-retry.js +42 -0
- package/dist/utils/transport-retry.js.map +1 -0
- package/dist/workspace.d.ts +1 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +14 -5
- package/dist/workspace.js.map +1 -1
- package/docs/404.html +3 -3
- package/docs/content/README.md +72 -0
- package/docs/content/_category_.json +5 -0
- package/docs/content/agents.md +86 -0
- package/docs/content/channels/README.md +35 -0
- package/docs/content/channels/_category_.json +5 -0
- package/docs/content/channels/admin-console.md +75 -0
- package/docs/content/channels/discord.md +78 -0
- package/docs/content/channels/email.md +103 -0
- package/docs/content/channels/imessage.md +357 -0
- package/docs/content/channels/local-config-and-secrets.md +58 -0
- package/docs/content/channels/msteams.md +136 -0
- package/docs/content/channels/overview.md +64 -0
- package/docs/content/channels/policies-and-allowlists.md +56 -0
- package/docs/content/channels/slack.md +414 -0
- package/docs/content/channels/telegram.md +160 -0
- package/docs/content/channels/whatsapp.md +98 -0
- package/docs/content/developer-guide/README.md +21 -0
- package/docs/content/developer-guide/_category_.json +5 -0
- package/docs/content/developer-guide/approvals.md +257 -0
- package/docs/content/developer-guide/architecture.md +114 -0
- package/docs/content/developer-guide/memory.md +379 -0
- package/docs/content/developer-guide/runtime.md +407 -0
- package/docs/content/developer-guide/session-routing.md +113 -0
- package/docs/content/extensibility/README.md +191 -0
- package/docs/content/extensibility/_category_.json +5 -0
- package/docs/content/extensibility/adaptive-skills.md +120 -0
- package/docs/content/extensibility/agent-packages.md +454 -0
- package/docs/content/extensibility/gbrain-plugin.md +606 -0
- package/docs/content/extensibility/honcho-memory-plugin.md +489 -0
- package/docs/content/extensibility/mempalace-memory-plugin.md +523 -0
- package/docs/content/extensibility/otel-plugin.md +269 -0
- package/docs/content/extensibility/plugins.md +413 -0
- package/docs/content/extensibility/qmd-memory-plugin.md +178 -0
- package/docs/content/extensibility/skills.md +172 -0
- package/docs/content/getting-started/README.md +27 -0
- package/docs/content/getting-started/_category_.json +5 -0
- package/docs/content/getting-started/authentication.md +167 -0
- package/docs/content/getting-started/first-channel.md +73 -0
- package/docs/content/getting-started/installation.md +53 -0
- package/docs/content/getting-started/quickstart.md +113 -0
- package/docs/content/guides/README.md +23 -0
- package/docs/content/guides/_category_.json +5 -0
- package/docs/content/guides/bundled-skills.md +43 -0
- package/docs/content/guides/local-providers.md +49 -0
- package/docs/content/guides/office-dependencies.md +50 -0
- package/docs/content/guides/remote-access.md +205 -0
- package/docs/content/guides/tui-mcp.md +35 -0
- package/docs/content/guides/twilio-voice.md +453 -0
- package/docs/content/guides/voice-tts.md +133 -0
- package/docs/content/reference/README.md +20 -0
- package/docs/content/reference/_category_.json +5 -0
- package/docs/content/reference/commands.md +423 -0
- package/docs/content/reference/configuration.md +270 -0
- package/docs/content/reference/diagnostics.md +60 -0
- package/docs/content/reference/faq.md +133 -0
- package/docs/content/reference/model-selection.md +98 -0
- package/docs/content/reference/tools/README.md +13 -0
- package/docs/content/reference/tools/_category_.json +5 -0
- package/docs/content/reference/tools/web-search.md +74 -0
- package/docs/development/agents.md +1 -0
- package/docs/development/getting-started/channels.md +12 -5
- package/docs/development/getting-started/quickstart.md +4 -0
- package/docs/development/guides/README.md +3 -1
- package/docs/development/guides/twilio-voice.md +453 -0
- package/docs/development/guides/voice-tts.md +4 -0
- package/docs/development/index.html +3 -3
- package/docs/development/internals/README.md +2 -0
- package/docs/development/internals/approvals.md +257 -0
- package/docs/development/internals/architecture.md +68 -4
- package/docs/development/internals/memory.md +1 -1
- package/docs/development/internals/runtime.md +2 -1
- package/docs/development/internals/session-routing.md +1 -1
- package/docs/development/reference/commands.md +17 -1
- package/docs/development/reference/configuration.md +18 -6
- package/docs/docs/index.html +3 -3
- package/docs/index.html +21 -21
- package/docs/static/docs.js +84 -20
- package/package.json +3 -1
- package/presets/brave.yaml +13 -0
- package/presets/discord.yaml +13 -0
- package/presets/github.yaml +18 -0
- package/presets/huggingface.yaml +13 -0
- package/presets/jira.yaml +13 -0
- package/presets/npm.yaml +13 -0
- package/presets/outlook.yaml +13 -0
- package/presets/pypi.yaml +13 -0
- package/presets/slack.yaml +13 -0
- package/skills/hybridclaw-help/SKILL.md +6 -6
- package/skills/pdf/SKILL.md +13 -0
- package/skills/pdf/reference.md +26 -0
- package/skills/pdf/scripts/create_pdf.mjs +127 -0
- package/skills/salesforce/SKILL.md +145 -0
- package/skills/salesforce/agents/openai.yaml +4 -0
- package/skills/salesforce/references/metadata-and-queries.md +109 -0
- package/skills/salesforce/scripts/__pycache__/salesforce_query.cpython-314.pyc +0 -0
- package/skills/salesforce/scripts/salesforce_query.py +892 -0
- package/skills/xlsx/SKILL.md +32 -3
- package/skills/xlsx/scripts/create_xlsx.cjs +251 -0
- package/templates/README.md +1 -1
- package/console/dist/assets/index-Bkj0YVZ5.js +0 -23
- package/console/dist/assets/index-DOYcGDs8.css +0 -1
package/AGENTS.md
CHANGED
|
@@ -21,7 +21,7 @@ HybridClaw is a personal AI assistant bot for Discord, powered by HybridAI.
|
|
|
21
21
|
Enterprise-grade Node.js 22 application with gateway service, TUI client, and
|
|
22
22
|
Docker-sandboxed container runtime.
|
|
23
23
|
|
|
24
|
-
**Version:** 0.
|
|
24
|
+
**Version:** 0.12.6  |  **Package:** `@hybridaione/hybridclaw`
|
|
25
25
|
 |  **License:** see `LICENSE`
|
|
26
26
|
|
|
27
27
|
Architecture: gateway (core runtime, SQLite persistence, REST API, Discord
|
|
@@ -45,8 +45,9 @@ src/
|
|
|
45
45
|
agent/ Agent execution: conversation loop, tool executor, prompt hooks, delegation
|
|
46
46
|
audit/ Append-only audit trail, approval tracking, hash-chain integrity
|
|
47
47
|
auth/ HybridAI and OpenAI Codex authentication flows
|
|
48
|
-
channels/discord
|
|
48
|
+
channels/ Channel transports (discord, slack, telegram, email, whatsapp, msteams, voice, imessage)
|
|
49
49
|
config/ CLI flag parsing, runtime config management
|
|
50
|
+
doctor/ Doctor checks and resource hygiene maintenance
|
|
50
51
|
gateway/ Core gateway service: HTTP APIs, health, session mgmt, approvals
|
|
51
52
|
infra/ Container setup, IPC (file-based), worker signatures, runners
|
|
52
53
|
memory/ SQLite database, semantic memory, compaction, consolidation, chunking
|
|
@@ -363,7 +364,7 @@ When the user says "bump release":
|
|
|
363
364
|
- Do not include personal identity, real phone numbers, or live config values
|
|
364
365
|
in tests, examples, docs, or commits.
|
|
365
366
|
- Do not edit `.dockerignore` without verifying the resulting Docker image
|
|
366
|
-
still contains all runtime-required files (especially `docs/
|
|
367
|
+
still contains all runtime-required files (especially `docs/content/`).
|
|
367
368
|
Build the image and confirm the affected paths exist inside it before
|
|
368
369
|
marking the change complete.
|
|
369
370
|
- Do not edit `node_modules/` or vendored files.
|
|
@@ -406,7 +407,7 @@ When multiple agents may be working on this repo concurrently:
|
|
|
406
407
|
| `CONTRIBUTING.md` | Human contributors | Quickstart, PR workflow |
|
|
407
408
|
| `SECURITY.md` | Security reviewers | Runtime security controls |
|
|
408
409
|
| `TRUST_MODEL.md` | Operators | Trust acceptance policy |
|
|
409
|
-
| `docs/
|
|
410
|
+
| `docs/content/` | Maintainers | User docs, developer guide, reference |
|
|
410
411
|
| `templates/*.md` | Product runtime | Agent workspace bootstrap |
|
|
411
412
|
|
|
412
413
|
---
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,122 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [
|
|
3
|
+
## [0.12.6](https://github.com/HybridAIOne/hybridclaw/tree/v0.12.6)
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **Twilio voice channel**: Added a built-in Twilio ConversationRelay phone
|
|
8
|
+
channel with inbound webhook handling, outbound `hybridclaw gateway voice
|
|
9
|
+
call <number>` support, admin-console setup, and a dedicated setup and
|
|
10
|
+
troubleshooting guide.
|
|
11
|
+
- **Salesforce skill**: New bundled skill for enterprise CRM integration with
|
|
12
|
+
OAuth token binding, a dedicated `secret` CLI surface for credential
|
|
13
|
+
management, and hardened field-level configuration.
|
|
14
|
+
- **Local skill import**: `skill import` now accepts local filesystem
|
|
15
|
+
directories and `.zip` archives as sources, with persistent import-source
|
|
16
|
+
markers so locally-imported skills retain personal trust across restarts.
|
|
17
|
+
- **Admin approvals policy console**: New `/admin/approvals` interface for
|
|
18
|
+
viewing and managing approval policies from the browser.
|
|
19
|
+
- **Console chat UI**: Migrated the legacy standalone chat UI into the console
|
|
20
|
+
React app with unified channels selection and improved upstream error
|
|
21
|
+
handling.
|
|
22
|
+
- **Doctor resource hygiene**: `hybridclaw doctor` now includes a resource
|
|
23
|
+
hygiene maintenance pass that detects and cleans stale gateway artifacts,
|
|
24
|
+
with cached DB snapshots and disk-state diffing for efficient checks.
|
|
25
|
+
- **Fetch Email-Config button**: The admin email channel editor includes a
|
|
26
|
+
one-click button to fetch and validate HybridAI mailbox credentials.
|
|
27
|
+
- **XLSX skill creation script**: Bundled creation script prevents silent
|
|
28
|
+
generation failures when the xlsx skill produces spreadsheet output.
|
|
29
|
+
- **ToggleGroup component**: New `ToggleGroup` / `ToggleGroupItem` UI
|
|
30
|
+
primitive used across the admin console for binary-toggle controls.
|
|
31
|
+
- **Provider health panel**: Inline login action and inactive-provider
|
|
32
|
+
collapse in the admin console for quicker provider triage.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- **Per-channel instructions in `/admin/channels`**: The admin console now
|
|
37
|
+
lets operators edit transport-specific prompt guidance, and runtime config
|
|
38
|
+
exposes the same values under `channelInstructions.*` so channels such as
|
|
39
|
+
voice can enforce spoken-output rules without editing prompt files directly.
|
|
40
|
+
- **OAuth token domain binding**: Bearer tokens are now bound to their OAuth
|
|
41
|
+
issuer domain to prevent cross-domain exfiltration, and the gateway proxy
|
|
42
|
+
auto-captures tokens using config constants instead of raw environment
|
|
43
|
+
variables.
|
|
44
|
+
- **Secret CLI simplification**: Removed the `[--raw]` option from
|
|
45
|
+
`secret show` and `secret set`, streamlining the operator-facing surface.
|
|
46
|
+
- **CI pipeline split**: Unit tests now run as parallel lint and test jobs
|
|
47
|
+
with a shared `setup-node-workspace` composite action and PR-level
|
|
48
|
+
concurrency groups that cancel stale runs.
|
|
49
|
+
- **Security scanner hints**: Block messages now include actionable override
|
|
50
|
+
hints so operators understand how to respond to policy violations.
|
|
51
|
+
- **DRY provider utilities**: Refactored model-matching and `agentId`
|
|
52
|
+
normalization into shared provider utilities with prefix-aware matching.
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- **Voice approval and relay handling**: Spoken approval replies normalize more
|
|
57
|
+
reliably, voice turns skip the usual yellow implicit wait, and the Twilio
|
|
58
|
+
relay path handles disconnect, interrupt, and runtime-unavailable cases more
|
|
59
|
+
cleanly instead of dropping into noisier failure states.
|
|
60
|
+
- **Memory-flush pool slot leak**: Host processes spawned during memory-flush
|
|
61
|
+
no longer leak worker pool slots, and empty sessions are cleaned up
|
|
62
|
+
automatically.
|
|
63
|
+
- **Stream terminated retry**: Terminated stream errors are now retried
|
|
64
|
+
correctly, preserving PDF creation workflows across transport retries.
|
|
65
|
+
- **Skill scanning and promotion**: Runtime-created skills in agent workspace
|
|
66
|
+
directories now appear in `/skill list` and are promoted to the managed
|
|
67
|
+
directory on save.
|
|
68
|
+
- **Teams webhook resilience**: Missing Teams credentials on incoming webhook
|
|
69
|
+
requests are handled gracefully instead of crashing the handler.
|
|
70
|
+
- **AuthProvider callback stability**: Stabilized React `AuthProvider`
|
|
71
|
+
callbacks with memoized context values to prevent unnecessary re-renders.
|
|
72
|
+
- **Upstream error mapping**: Nested HybridAI error payloads are unwrapped
|
|
73
|
+
and mapped to `502` responses to avoid gateway auth confusion, with
|
|
74
|
+
`no-store` cache headers on error responses.
|
|
75
|
+
- **Skip-skill-scan persistence**: The `--skip-skill-scan` CLI decision is
|
|
76
|
+
now persisted so the runtime guard honors it across restarts.
|
|
77
|
+
|
|
78
|
+
## [0.12.5](https://github.com/HybridAIOne/hybridclaw/tree/v0.12.5)
|
|
79
|
+
|
|
80
|
+
### Added
|
|
81
|
+
|
|
82
|
+
- **Admin agent file editor**: The admin console now includes `/admin/agents`
|
|
83
|
+
for editing each registered agent's allowlisted workspace bootstrap markdown
|
|
84
|
+
files, with saved revision history and restore controls.
|
|
85
|
+
|
|
86
|
+
### Changed
|
|
87
|
+
|
|
88
|
+
- **Local TUI approval workflow**: Pending approvals in `hybridclaw tui` open a
|
|
89
|
+
keyboard-driven picker with `Up`/`Down` navigation, `Enter` confirmation,
|
|
90
|
+
number-key quick select, `Esc` to skip, and a text fallback for
|
|
91
|
+
non-interactive terminals.
|
|
92
|
+
- **Admin destructive-action confirmations**: Browser-based operator flows now
|
|
93
|
+
use explicit confirmation dialogs for destructive actions so restarts,
|
|
94
|
+
deletes, and similar changes require a deliberate confirm step.
|
|
95
|
+
|
|
96
|
+
### Fixed
|
|
97
|
+
|
|
98
|
+
- **TUI approval replay handling**: Replayed or restated approval prompts reuse
|
|
99
|
+
cached approval details more reliably, and web `/approve` flows preserve
|
|
100
|
+
pending-approval metadata so follow-up approvals reopen the same picker
|
|
101
|
+
instead of dropping back to raw text.
|
|
102
|
+
- **TUI exit summaries**: Exit output either shows the remote usage/tool/file
|
|
103
|
+
totals for the session or an explicit unavailable summary, and gateway
|
|
104
|
+
history breakdowns resolve canonical TUI session ids consistently for
|
|
105
|
+
tool/file counts.
|
|
106
|
+
- **Invalid runtime-config recovery**: Interactive onboarding can restore the
|
|
107
|
+
last known-good saved config snapshot, or roll back to the newest saved
|
|
108
|
+
revision, when `config.json` becomes invalid JSON instead of leaving setup
|
|
109
|
+
stuck on in-memory defaults.
|
|
110
|
+
- **Transport retry backoff**: Retry-aware channel transports honor
|
|
111
|
+
service-provided `Retry-After` delays and reject invalid retry values early
|
|
112
|
+
instead of silently retrying with bad timing.
|
|
113
|
+
- **Email first-sync cursor handling**: The built-in email transport seeds a
|
|
114
|
+
missing mailbox cursor from the current mailbox head so old inbox mail is not
|
|
115
|
+
replayed as new traffic on first startup, while later restarts still deliver
|
|
116
|
+
mail that arrived while the gateway was offline.
|
|
117
|
+
- **WhatsApp startup reliability**: The built-in WhatsApp transport disables
|
|
118
|
+
Baileys init queries that can trigger intermittent `400`/`bad-request`
|
|
119
|
+
failures during startup and pairing.
|
|
4
120
|
|
|
5
121
|
## [0.12.4](https://github.com/HybridAIOne/hybridclaw/tree/v0.12.4)
|
|
6
122
|
|
|
@@ -19,24 +135,12 @@
|
|
|
19
135
|
- **Admin console dialog and toast UX**: Replaced inline banners with
|
|
20
136
|
accessible dialog/toast primitives, tightened scheduler and jobs feedback
|
|
21
137
|
flows, and refined the mobile topbar/sidebar interaction.
|
|
22
|
-
- **Per-agent skill filtering**: Agent `skills` settings
|
|
138
|
+
- **Per-agent skill filtering**: Agent `skills` settings narrow the
|
|
23
139
|
globally enabled skill set, while omitting `skills` keeps the existing
|
|
24
140
|
global scope for backward compatibility.
|
|
25
141
|
- **Approval presentation across channels**: Gateway approval copy and channel
|
|
26
|
-
actions
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
### Fixed
|
|
30
|
-
|
|
31
|
-
- **Slack slash-command ergonomics**: Slack slash commands use shorter
|
|
32
|
-
`/hc-*` names, keep runtime command coverage aligned with the shipped
|
|
33
|
-
manifest, and avoid review regressions in channel setup/documentation flows.
|
|
34
|
-
- **Scheduler delivery state reporting**: One-shot deliveries now report retry
|
|
35
|
-
and review outcomes more clearly instead of leaving ambiguous scheduler state
|
|
36
|
-
after gateway or console handoff.
|
|
37
|
-
- **Console accessibility edge cases**: Toast and dialog flows now keep
|
|
38
|
-
backdrops interactive, ignore closed dialogs in Escape-key handling, and
|
|
39
|
-
harden focus/visibility coordination during layered UI interactions.
|
|
142
|
+
actions render more consistently across Discord, Slack, and
|
|
143
|
+
gateway-managed approval surfaces.
|
|
40
144
|
|
|
41
145
|
## [0.12.3](https://github.com/HybridAIOne/hybridclaw/tree/v0.12.3)
|
|
42
146
|
|
package/README.md
CHANGED
|
@@ -19,9 +19,28 @@ security, and operational visibility. It combines sandboxed execution, secure
|
|
|
19
19
|
credentials, approvals, persistent memory, and admin surfaces behind a single
|
|
20
20
|
gateway.
|
|
21
21
|
|
|
22
|
-
Connect it to Discord, Slack, WhatsApp, Telegram, Microsoft Teams, email,
|
|
23
|
-
locally, deploy it for business workflows,
|
|
24
|
-
data under your control.
|
|
22
|
+
Connect it to Discord, Slack, WhatsApp, Telegram, Microsoft Teams, email,
|
|
23
|
+
Twilio voice, or the web. Run it locally, deploy it for business workflows,
|
|
24
|
+
and keep your agents, secrets, and data under your control.
|
|
25
|
+
|
|
26
|
+
[Quick Start](https://www.hybridclaw.io/docs/getting-started/quickstart) ·
|
|
27
|
+
[Installation](https://www.hybridclaw.io/docs/getting-started/installation) ·
|
|
28
|
+
[Configuration](https://www.hybridclaw.io/docs/reference/configuration) ·
|
|
29
|
+
[Migration](https://www.hybridclaw.io/docs/reference/commands#migration) ·
|
|
30
|
+
[Contributing](./CONTRIBUTING.md) ·
|
|
31
|
+
[Support](./SUPPORT.md)
|
|
32
|
+
|
|
33
|
+
## Pick your path
|
|
34
|
+
|
|
35
|
+
- Want the shortest path to a running assistant? Start with
|
|
36
|
+
[Quick Start](https://www.hybridclaw.io/docs/getting-started/quickstart).
|
|
37
|
+
- Want the full setup flow with providers, channels, and admin surfaces? Start
|
|
38
|
+
with [Installation](https://www.hybridclaw.io/docs/getting-started/installation)
|
|
39
|
+
and [Authentication](https://www.hybridclaw.io/docs/getting-started/authentication).
|
|
40
|
+
- Want to migrate from OpenClaw or Hermes? Start with the
|
|
41
|
+
[migration commands](https://www.hybridclaw.io/docs/reference/commands#migration).
|
|
42
|
+
- Want to contribute from source? Start with [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
43
|
+
and the maintainer docs under [docs/content/README.md](./docs/content/README.md).
|
|
25
44
|
|
|
26
45
|
## Coming from OpenClaw or Hermes?
|
|
27
46
|
|
|
@@ -58,7 +77,8 @@ hybridclaw tui
|
|
|
58
77
|
Open locally:
|
|
59
78
|
|
|
60
79
|
- Chat UI: `http://127.0.0.1:9090/chat`
|
|
61
|
-
- Admin UI: `http://127.0.0.1:9090/admin` for channels,
|
|
80
|
+
- Admin UI: `http://127.0.0.1:9090/admin` for channels, versioned agent files,
|
|
81
|
+
scheduler, audit, config, and channel-specific instructions
|
|
62
82
|
- Agents UI: `http://127.0.0.1:9090/agents`
|
|
63
83
|
- OpenAI-compatible API: `http://127.0.0.1:9090/v1/models` and `http://127.0.0.1:9090/v1/chat/completions`
|
|
64
84
|
|
|
@@ -73,10 +93,34 @@ operator and maintainer manual lives at
|
|
|
73
93
|
Once the gateway is running, open HybridClaw locally:
|
|
74
94
|
|
|
75
95
|
- Web Chat: `http://127.0.0.1:9090/chat`
|
|
76
|
-
- Admin Console: `http://127.0.0.1:9090/admin` for channels,
|
|
96
|
+
- Admin Console: `http://127.0.0.1:9090/admin` for channels, versioned agent files,
|
|
97
|
+
scheduler, audit, config, and channel-specific instructions
|
|
77
98
|
- Agent Dashboard: `http://127.0.0.1:9090/agents`
|
|
78
99
|
- or connect Slack, WhatsApp, Telegram, Discord, Microsoft Teams, Email
|
|
79
100
|
|
|
101
|
+
## Operator workflows
|
|
102
|
+
|
|
103
|
+
- `/admin/agents` edits allowlisted bootstrap markdown files such as
|
|
104
|
+
`AGENTS.md`, keeps saved revisions, and restores earlier versions from the
|
|
105
|
+
browser.
|
|
106
|
+
- `/admin/channels` edits transport config, encrypted channel credentials,
|
|
107
|
+
Twilio voice settings, and per-channel instructions that are injected into
|
|
108
|
+
prompts at runtime.
|
|
109
|
+
- `/admin/approvals` manages approval policies from the browser.
|
|
110
|
+
- `hybridclaw tui` includes a keyboard-driven approval picker and prints a
|
|
111
|
+
ready-to-run `hybridclaw tui --resume <sessionId>` command on exit.
|
|
112
|
+
- `hybridclaw doctor` checks runtime health including resource hygiene
|
|
113
|
+
maintenance for stale gateway artifacts.
|
|
114
|
+
- `hybridclaw onboarding` and related local setup flows can restore the last
|
|
115
|
+
known-good saved config snapshot or roll back to a tracked revision when
|
|
116
|
+
`config.json` becomes invalid.
|
|
117
|
+
- `hybridclaw skill import` supports community sources, local directories,
|
|
118
|
+
and `.zip` archives.
|
|
119
|
+
- Channel delivery stays predictable: email seeds its first mailbox cursor from
|
|
120
|
+
the current head instead of replaying old inbox mail, retry-aware transports
|
|
121
|
+
honor server `Retry-After` backoff, and WhatsApp startup avoids intermittent
|
|
122
|
+
init-query bad-request failures.
|
|
123
|
+
|
|
80
124
|
## How HybridClaw compares
|
|
81
125
|
|
|
82
126
|
| Capability | HybridClaw | OpenClaw | Hermes Agent |
|
|
@@ -111,6 +155,7 @@ Once the gateway is running, open HybridClaw locally:
|
|
|
111
155
|
## Built for real workflows
|
|
112
156
|
|
|
113
157
|
- channels
|
|
158
|
+
- versioned agent workspace prompt files with saved revisions and restore
|
|
114
159
|
- browser sessions
|
|
115
160
|
- office docs
|
|
116
161
|
- skills / plugins / MCP
|
|
@@ -124,10 +169,11 @@ Once the gateway is running, open HybridClaw locally:
|
|
|
124
169
|
|
|
125
170
|
## Architecture
|
|
126
171
|
|
|
127
|
-
- **Gateway service** (Node.js) — shared message/command handlers, SQLite persistence (KV + semantic + knowledge graph + canonical sessions + usage events), scheduler, heartbeat, web/API, loopback OpenAI-compatible API, and channel integrations for Discord, Slack, Microsoft Teams, Telegram, iMessage, WhatsApp, and email
|
|
172
|
+
- **Gateway service** (Node.js) — shared message/command handlers, SQLite persistence (KV + semantic + knowledge graph + canonical sessions + usage events), scheduler, heartbeat, web/API, loopback OpenAI-compatible API, and channel integrations for Discord, Slack, Microsoft Teams, Telegram, iMessage, WhatsApp, Twilio voice, and email
|
|
128
173
|
- **TUI client** — thin client over HTTP (`/api/chat`, `/api/command`) with
|
|
129
174
|
a structured startup banner that surfaces model, sandbox, gateway, and
|
|
130
|
-
chatbot context before the first prompt
|
|
175
|
+
chatbot context before the first prompt, an interactive approval picker for
|
|
176
|
+
pending approvals, and an exit summary with a ready-to-run resume command
|
|
131
177
|
- **Container** (Docker, ephemeral) — HybridAI API client, sandboxed tool executor, and preinstalled browser automation runtime with cursor-aware snapshots for JS-heavy custom UI
|
|
132
178
|
- Communication via file-based IPC (input.json / output.json)
|
|
133
179
|
|
|
@@ -141,8 +187,8 @@ Browse the full manual at
|
|
|
141
187
|
[Authentication](https://www.hybridclaw.io/docs/getting-started/authentication), and
|
|
142
188
|
[Quick Start](https://www.hybridclaw.io/docs/getting-started/quickstart)
|
|
143
189
|
- Enterprise deployment:
|
|
144
|
-
[Runtime Internals](https://www.hybridclaw.io/docs/
|
|
145
|
-
[Architecture](https://www.hybridclaw.io/docs/
|
|
190
|
+
[Runtime Internals](https://www.hybridclaw.io/docs/developer-guide/runtime) and
|
|
191
|
+
[Architecture](https://www.hybridclaw.io/docs/developer-guide/architecture)
|
|
146
192
|
- Operations:
|
|
147
193
|
[Remote Access](https://www.hybridclaw.io/docs/guides/remote-access)
|
|
148
194
|
- Security:
|
|
@@ -151,10 +197,16 @@ Browse the full manual at
|
|
|
151
197
|
[Commands: Migration](https://www.hybridclaw.io/docs/reference/commands#migration) and
|
|
152
198
|
[FAQ](https://www.hybridclaw.io/docs/reference/faq#can-i-migrate-an-existing-openclaw-or-hermes-agent-home)
|
|
153
199
|
- Channels:
|
|
154
|
-
[Channel
|
|
155
|
-
[
|
|
156
|
-
[
|
|
157
|
-
[
|
|
200
|
+
[Connect Your First Channel](https://www.hybridclaw.io/docs/getting-started/first-channel),
|
|
201
|
+
[Overview](https://www.hybridclaw.io/docs/channels/overview),
|
|
202
|
+
[Twilio Voice](https://www.hybridclaw.io/docs/guides/twilio-voice),
|
|
203
|
+
[Discord](https://www.hybridclaw.io/docs/channels/discord),
|
|
204
|
+
[Slack](https://www.hybridclaw.io/docs/channels/slack),
|
|
205
|
+
[Telegram](https://www.hybridclaw.io/docs/channels/telegram),
|
|
206
|
+
[Email](https://www.hybridclaw.io/docs/channels/email),
|
|
207
|
+
[WhatsApp](https://www.hybridclaw.io/docs/channels/whatsapp),
|
|
208
|
+
[iMessage](https://www.hybridclaw.io/docs/channels/imessage), and
|
|
209
|
+
[Microsoft Teams](https://www.hybridclaw.io/docs/channels/msteams)
|
|
158
210
|
- Skills and plugins:
|
|
159
211
|
[Extensibility](https://www.hybridclaw.io/docs/extensibility),
|
|
160
212
|
[Bundled Skills](https://www.hybridclaw.io/docs/guides/bundled-skills),
|
|
@@ -171,20 +223,27 @@ Browse the full manual at
|
|
|
171
223
|
|
|
172
224
|
## Contributing
|
|
173
225
|
|
|
174
|
-
|
|
226
|
+
Contributor quick start:
|
|
175
227
|
|
|
176
228
|
```bash
|
|
177
229
|
npm install
|
|
178
230
|
npm run setup
|
|
179
231
|
npm run build
|
|
232
|
+
npm run typecheck
|
|
233
|
+
npm run test:unit
|
|
180
234
|
```
|
|
181
235
|
|
|
182
236
|
Use `npm run typecheck`, `npm run lint`, and targeted tests for code changes.
|
|
183
|
-
For docs-only changes, verify links, commands, and examples.
|
|
184
|
-
|
|
237
|
+
For docs-only changes, verify links, commands, and examples. GitHub issue forms
|
|
238
|
+
cover bug reports, setup help, feature requests, and docs fixes, and the PR
|
|
239
|
+
template asks for validation and scope boundaries up front. See
|
|
240
|
+
[CONTRIBUTING.md](./CONTRIBUTING.md) for the full workflow, check matrix, and
|
|
241
|
+
community guidance.
|
|
185
242
|
|
|
186
243
|
## Community
|
|
187
244
|
|
|
188
245
|
- Discord: [discord.gg/jsVW4vJw27](https://discord.gg/jsVW4vJw27)
|
|
189
246
|
- Issues: [github.com/HybridAIOne/hybridclaw/issues](https://github.com/HybridAIOne/hybridclaw/issues)
|
|
190
247
|
- Discussions: [github.com/HybridAIOne/hybridclaw/discussions](https://github.com/HybridAIOne/hybridclaw/discussions)
|
|
248
|
+
- Support guide: [SUPPORT.md](./SUPPORT.md)
|
|
249
|
+
- Community standards: [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)
|
package/SECURITY.md
CHANGED
|
@@ -20,7 +20,7 @@ System prompts include safety constraints for every conversation turn:
|
|
|
20
20
|
- Do not exfiltrate credentials, tokens, or private keys.
|
|
21
21
|
- Prefer least-privilege actions and avoid destructive operations without explicit intent.
|
|
22
22
|
|
|
23
|
-
Implementation: [src/prompt-hooks.ts](./src/prompt-hooks.ts)
|
|
23
|
+
Implementation: [src/agent/prompt-hooks.ts](./src/agent/prompt-hooks.ts)
|
|
24
24
|
|
|
25
25
|
### 1.1) Browser Authentication Flows
|
|
26
26
|
|
|
@@ -67,7 +67,8 @@ Tool execution runs inside Docker with sandbox constraints:
|
|
|
67
67
|
- controlled workspace/IPC mounts
|
|
68
68
|
- additional mount allowlist validation
|
|
69
69
|
|
|
70
|
-
Implementation: [src/container-runner.ts](./src/container-runner.ts),
|
|
70
|
+
Implementation: [src/infra/container-runner.ts](./src/infra/container-runner.ts),
|
|
71
|
+
[src/security/mount-security.ts](./src/security/mount-security.ts)
|
|
71
72
|
|
|
72
73
|
### 4) Session Isolation
|
|
73
74
|
|
|
@@ -123,3 +124,20 @@ If compromise is suspected:
|
|
|
123
124
|
3. Review mount allowlist, workspace files, and `sessionRouting.identityLinks`.
|
|
124
125
|
4. Inspect denied/authorization events with `hybridclaw audit approvals --denied`.
|
|
125
126
|
5. Validate audit integrity with `hybridclaw audit verify`.
|
|
127
|
+
|
|
128
|
+
## Reporting A Vulnerability
|
|
129
|
+
|
|
130
|
+
Do not report security vulnerabilities in public GitHub issues or Discussions.
|
|
131
|
+
|
|
132
|
+
Report vulnerabilities privately to
|
|
133
|
+
[support@hybridai.one](mailto:support@hybridai.one?subject=HybridClaw%20security%20report)
|
|
134
|
+
with:
|
|
135
|
+
|
|
136
|
+
- affected HybridClaw version
|
|
137
|
+
- deployment details and operating system
|
|
138
|
+
- reproduction steps or proof-of-concept
|
|
139
|
+
- impact assessment
|
|
140
|
+
- suggested mitigation if you have one
|
|
141
|
+
|
|
142
|
+
Please redact secrets, tokens, and personal data from any attached logs or
|
|
143
|
+
screenshots.
|
package/config.example.json
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"msteams": [],
|
|
15
15
|
"slack": [],
|
|
16
16
|
"telegram": [],
|
|
17
|
+
"voice": [],
|
|
17
18
|
"whatsapp": [],
|
|
18
19
|
"email": []
|
|
19
20
|
}
|
|
@@ -21,6 +22,16 @@
|
|
|
21
22
|
"tools": {
|
|
22
23
|
"disabled": []
|
|
23
24
|
},
|
|
25
|
+
"channelInstructions": {
|
|
26
|
+
"discord": "",
|
|
27
|
+
"msteams": "",
|
|
28
|
+
"slack": "",
|
|
29
|
+
"telegram": "",
|
|
30
|
+
"voice": "This is a live phone call. Produce plain spoken text only.\nKeep each reply short and conversational, usually one or two short sentences.\nAbsolutely no markdown, bullets, numbered lists, headings, code fences, tables, JSON, or decorative formatting.\nDo not narrate internal reasoning, planning, tool usage, or stage directions. Say only what the caller should hear.\nDo not spell punctuation, formatting marks, or raw URLs unless the caller explicitly asks for exact characters.",
|
|
31
|
+
"whatsapp": "",
|
|
32
|
+
"email": "",
|
|
33
|
+
"imessage": ""
|
|
34
|
+
},
|
|
24
35
|
"adaptiveSkills": {
|
|
25
36
|
"enabled": false,
|
|
26
37
|
"observationEnabled": true,
|
|
@@ -157,6 +168,25 @@
|
|
|
157
168
|
"ackReaction": "👀",
|
|
158
169
|
"mediaMaxMb": 20
|
|
159
170
|
},
|
|
171
|
+
"voice": {
|
|
172
|
+
"enabled": false,
|
|
173
|
+
"provider": "twilio",
|
|
174
|
+
"twilio": {
|
|
175
|
+
"accountSid": "",
|
|
176
|
+
"authToken": "",
|
|
177
|
+
"fromNumber": ""
|
|
178
|
+
},
|
|
179
|
+
"relay": {
|
|
180
|
+
"ttsProvider": "default",
|
|
181
|
+
"voice": "",
|
|
182
|
+
"transcriptionProvider": "default",
|
|
183
|
+
"language": "en-US",
|
|
184
|
+
"interruptible": true,
|
|
185
|
+
"welcomeGreeting": "Hello! How can I help you today?"
|
|
186
|
+
},
|
|
187
|
+
"webhookPath": "/voice",
|
|
188
|
+
"maxConcurrentCalls": 8
|
|
189
|
+
},
|
|
160
190
|
"imessage": {
|
|
161
191
|
"enabled": false,
|
|
162
192
|
"backend": "local",
|
|
@@ -459,6 +489,29 @@
|
|
|
459
489
|
},
|
|
460
490
|
"scheduler": {
|
|
461
491
|
"jobs": [
|
|
492
|
+
{
|
|
493
|
+
"id": "resource-hygiene",
|
|
494
|
+
"name": "Resource Hygiene",
|
|
495
|
+
"description": "Runs conservative doctor-based resource hygiene twice daily and auto-applies only safe cleanup.",
|
|
496
|
+
"schedule": {
|
|
497
|
+
"kind": "every",
|
|
498
|
+
"at": null,
|
|
499
|
+
"everyMs": 43200000,
|
|
500
|
+
"expr": null,
|
|
501
|
+
"tz": "UTC"
|
|
502
|
+
},
|
|
503
|
+
"action": {
|
|
504
|
+
"kind": "system_event",
|
|
505
|
+
"message": "resource_hygiene_maintenance"
|
|
506
|
+
},
|
|
507
|
+
"delivery": {
|
|
508
|
+
"kind": "last-channel",
|
|
509
|
+
"channel": "",
|
|
510
|
+
"to": "",
|
|
511
|
+
"webhookUrl": ""
|
|
512
|
+
},
|
|
513
|
+
"enabled": true
|
|
514
|
+
},
|
|
462
515
|
{
|
|
463
516
|
"id": "morning-standup",
|
|
464
517
|
"name": "Daily Standup Report",
|