@hybridaione/hybridclaw 0.12.11 → 0.13.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/CHANGELOG.md +99 -1
- package/README.md +23 -5
- package/community-skills/himalaya/SKILL.md +1 -1
- package/config.example.json +6 -0
- package/console/dist/assets/chat-BSXPZ8qI.css +1 -0
- package/console/dist/assets/{chat-BzfDrs0I.js → chat-FEmn1-LG.js} +25 -25
- package/console/dist/assets/index-D63KL_Xr.js +15 -0
- package/console/dist/assets/index-DbvykpXR.css +1 -0
- package/console/dist/assets/{terminal-CHC7yoWJ.js → terminal-Bg7qhQCF.js} +1 -1
- package/console/dist/index.html +7 -7
- package/container/dist/browser-tools.js +2 -1
- package/container/dist/browser-tools.js.map +1 -1
- package/container/dist/index.js +25 -9
- package/container/dist/index.js.map +1 -1
- package/container/dist/providers/anthropic.js +714 -0
- package/container/dist/providers/anthropic.js.map +1 -0
- package/container/dist/providers/auxiliary.js +4 -0
- package/container/dist/providers/auxiliary.js.map +1 -1
- package/container/dist/providers/hybridai.js +14 -7
- package/container/dist/providers/hybridai.js.map +1 -1
- package/container/dist/providers/provider-ids.js +1 -0
- package/container/dist/providers/provider-ids.js.map +1 -1
- package/container/dist/providers/router.js +11 -0
- package/container/dist/providers/router.js.map +1 -1
- package/container/dist/providers/shared.js +22 -20
- package/container/dist/providers/shared.js.map +1 -1
- package/container/dist/tool-parallelism.js +0 -2
- package/container/dist/tool-parallelism.js.map +1 -1
- package/container/dist/tools.js +43 -31
- package/container/dist/tools.js.map +1 -1
- package/container/dist/types.js.map +1 -1
- package/container/package-lock.json +2 -2
- package/container/package.json +1 -1
- package/container/shared/anthropic-utils.d.ts +10 -0
- package/container/shared/anthropic-utils.js +31 -0
- package/container/shared/message-tool-channels.d.ts +29 -0
- package/container/shared/message-tool-channels.js +47 -0
- package/container/shared/provider-context.d.ts +1 -0
- package/container/shared/provider-context.js +6 -1
- package/container/src/browser-tools.ts +5 -0
- package/container/src/index.ts +32 -1
- package/container/src/providers/anthropic.ts +883 -0
- package/container/src/providers/auxiliary.ts +4 -0
- package/container/src/providers/hybridai.ts +16 -6
- package/container/src/providers/provider-ids.ts +1 -0
- package/container/src/providers/router.ts +15 -0
- package/container/src/providers/shared.ts +23 -20
- package/container/src/tool-parallelism.ts +0 -2
- package/container/src/tools.ts +49 -33
- package/container/src/types.ts +6 -1
- package/dist/agent/prompt-hooks.d.ts.map +1 -1
- package/dist/agent/prompt-hooks.js +52 -58
- package/dist/agent/prompt-hooks.js.map +1 -1
- package/dist/agents/agent-config-command.d.ts +12 -0
- package/dist/agents/agent-config-command.d.ts.map +1 -0
- package/dist/agents/agent-config-command.js +372 -0
- package/dist/agents/agent-config-command.js.map +1 -0
- package/dist/agents/agent-registry.d.ts.map +1 -1
- package/dist/agents/agent-registry.js +0 -1
- package/dist/agents/agent-registry.js.map +1 -1
- package/dist/agents/agent-runtime-config.d.ts +3 -0
- package/dist/agents/agent-runtime-config.d.ts.map +1 -0
- package/dist/agents/agent-runtime-config.js +65 -0
- package/dist/agents/agent-runtime-config.js.map +1 -0
- package/dist/auth/anthropic-auth.d.ts +42 -0
- package/dist/auth/anthropic-auth.d.ts.map +1 -0
- package/dist/auth/anthropic-auth.js +200 -0
- package/dist/auth/anthropic-auth.js.map +1 -0
- package/dist/auth/google-auth.d.ts +45 -0
- package/dist/auth/google-auth.d.ts.map +1 -0
- package/dist/auth/google-auth.js +322 -0
- package/dist/auth/google-auth.js.map +1 -0
- package/dist/channels/channel-registry.d.ts.map +1 -1
- package/dist/channels/channel-registry.js +0 -3
- package/dist/channels/channel-registry.js.map +1 -1
- package/dist/channels/channel-runtime-factory.d.ts +31 -0
- package/dist/channels/channel-runtime-factory.d.ts.map +1 -0
- package/dist/channels/channel-runtime-factory.js +68 -0
- package/dist/channels/channel-runtime-factory.js.map +1 -0
- package/dist/channels/discord/runtime.d.ts.map +1 -1
- package/dist/channels/discord/runtime.js +5 -1
- package/dist/channels/discord/runtime.js.map +1 -1
- package/dist/channels/email/runtime.d.ts +8 -9
- package/dist/channels/email/runtime.d.ts.map +1 -1
- package/dist/channels/email/runtime.js +24 -31
- package/dist/channels/email/runtime.js.map +1 -1
- package/dist/channels/imessage/runtime.d.ts +7 -8
- package/dist/channels/imessage/runtime.d.ts.map +1 -1
- package/dist/channels/imessage/runtime.js +19 -23
- package/dist/channels/imessage/runtime.js.map +1 -1
- package/dist/channels/message-tool-advertising.d.ts +6 -0
- package/dist/channels/message-tool-advertising.d.ts.map +1 -0
- package/dist/channels/message-tool-advertising.js +20 -0
- package/dist/channels/message-tool-advertising.js.map +1 -0
- package/dist/channels/msteams/runtime.d.ts.map +1 -1
- package/dist/channels/msteams/runtime.js +0 -5
- package/dist/channels/msteams/runtime.js.map +1 -1
- package/dist/channels/msteams/stream.d.ts.map +1 -1
- package/dist/channels/msteams/stream.js +0 -2
- package/dist/channels/msteams/stream.js.map +1 -1
- package/dist/channels/msteams/typing.d.ts.map +1 -1
- package/dist/channels/msteams/typing.js +0 -2
- package/dist/channels/msteams/typing.js.map +1 -1
- package/dist/channels/msteams/utils.d.ts +1 -1
- package/dist/channels/msteams/utils.d.ts.map +1 -1
- package/dist/channels/msteams/utils.js +1 -3
- package/dist/channels/msteams/utils.js.map +1 -1
- package/dist/channels/slack/runtime.d.ts.map +1 -1
- package/dist/channels/slack/runtime.js +183 -191
- package/dist/channels/slack/runtime.js.map +1 -1
- package/dist/channels/slack/slash-commands.d.ts.map +1 -1
- package/dist/channels/slack/slash-commands.js +1 -3
- package/dist/channels/slack/slash-commands.js.map +1 -1
- package/dist/channels/voice/conversation-relay.js +1 -1
- package/dist/channels/voice/conversation-relay.js.map +1 -1
- package/dist/channels/voice/runtime.d.ts.map +1 -1
- package/dist/channels/voice/runtime.js +1 -3
- package/dist/channels/voice/runtime.js.map +1 -1
- package/dist/channels/voice/twilio-manager.d.ts.map +1 -1
- package/dist/channels/voice/twilio-manager.js +2 -6
- package/dist/channels/voice/twilio-manager.js.map +1 -1
- package/dist/channels/whatsapp/connection.d.ts.map +1 -1
- package/dist/channels/whatsapp/connection.js +19 -1
- package/dist/channels/whatsapp/connection.js.map +1 -1
- package/dist/channels/whatsapp/runtime.d.ts +8 -9
- package/dist/channels/whatsapp/runtime.d.ts.map +1 -1
- package/dist/channels/whatsapp/runtime.js +21 -31
- package/dist/channels/whatsapp/runtime.js.map +1 -1
- package/dist/cli/agent-command.d.ts.map +1 -1
- package/dist/cli/agent-command.js +52 -17
- package/dist/cli/agent-command.js.map +1 -1
- package/dist/cli/auth-command.d.ts.map +1 -1
- package/dist/cli/auth-command.js +423 -87
- package/dist/cli/auth-command.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 +60 -4
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/skill-command.d.ts.map +1 -1
- package/dist/cli/skill-command.js +18 -0
- package/dist/cli/skill-command.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +18 -0
- package/dist/command-registry.js.map +1 -1
- package/dist/config/config.d.ts +4 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +11 -3
- package/dist/config/config.js.map +1 -1
- package/dist/config/runtime-config.d.ts +8 -1
- package/dist/config/runtime-config.d.ts.map +1 -1
- package/dist/config/runtime-config.js +61 -0
- package/dist/config/runtime-config.js.map +1 -1
- package/dist/doctor/checks/credentials.d.ts.map +1 -1
- package/dist/doctor/checks/credentials.js +1 -0
- package/dist/doctor/checks/credentials.js.map +1 -1
- package/dist/doctor/checks/providers.d.ts.map +1 -1
- package/dist/doctor/checks/providers.js +29 -1
- package/dist/doctor/checks/providers.js.map +1 -1
- package/dist/doctor/provider-probes.d.ts +1 -0
- package/dist/doctor/provider-probes.d.ts.map +1 -1
- package/dist/doctor/provider-probes.js +77 -1
- package/dist/doctor/provider-probes.js.map +1 -1
- package/dist/doctor/utils.d.ts.map +1 -1
- package/dist/doctor/utils.js +0 -2
- package/dist/doctor/utils.js.map +1 -1
- package/dist/evals/locomo-official-scoring.d.ts.map +1 -1
- package/dist/evals/locomo-official-scoring.js +0 -1
- package/dist/evals/locomo-official-scoring.js.map +1 -1
- package/dist/gateway/docs.d.ts.map +1 -1
- package/dist/gateway/docs.js +91 -27
- package/dist/gateway/docs.js.map +1 -1
- package/dist/gateway/gateway-http-server.d.ts.map +1 -1
- package/dist/gateway/gateway-http-server.js +31 -23
- package/dist/gateway/gateway-http-server.js.map +1 -1
- package/dist/gateway/gateway-provider-service.d.ts.map +1 -1
- package/dist/gateway/gateway-provider-service.js +15 -0
- package/dist/gateway/gateway-provider-service.js.map +1 -1
- package/dist/gateway/gateway-service.d.ts.map +1 -1
- package/dist/gateway/gateway-service.js +18 -2
- package/dist/gateway/gateway-service.js.map +1 -1
- package/dist/gateway/gateway-types.d.ts +1 -1
- package/dist/gateway/gateway-types.d.ts.map +1 -1
- package/dist/gateway/gateway-types.js.map +1 -1
- package/dist/gateway/gateway.js +4 -1
- package/dist/gateway/gateway.js.map +1 -1
- package/dist/gateway/skill-commands.d.ts.map +1 -1
- package/dist/gateway/skill-commands.js +22 -1
- package/dist/gateway/skill-commands.js.map +1 -1
- package/dist/infra/container-runner.d.ts.map +1 -1
- package/dist/infra/container-runner.js +28 -14
- 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 +27 -14
- package/dist/infra/host-runner.js.map +1 -1
- package/dist/infra/ipc.d.ts +2 -1
- package/dist/infra/ipc.d.ts.map +1 -1
- package/dist/infra/ipc.js +5 -2
- package/dist/infra/ipc.js.map +1 -1
- package/dist/infra/worker-signature.d.ts +2 -0
- package/dist/infra/worker-signature.d.ts.map +1 -1
- package/dist/infra/worker-signature.js +2 -0
- package/dist/infra/worker-signature.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +0 -2
- package/dist/logger.js.map +1 -1
- package/dist/memory/memory-consolidation.d.ts.map +1 -1
- package/dist/memory/memory-consolidation.js +0 -8
- package/dist/memory/memory-consolidation.js.map +1 -1
- package/dist/memory/memory-service.d.ts.map +1 -1
- package/dist/memory/memory-service.js +0 -2
- package/dist/memory/memory-service.js.map +1 -1
- package/dist/observability/otel.js +0 -1
- package/dist/observability/otel.js.map +1 -1
- package/dist/onboarding.d.ts +1 -1
- package/dist/onboarding.d.ts.map +1 -1
- package/dist/onboarding.js +165 -51
- package/dist/onboarding.js.map +1 -1
- package/dist/providers/anthropic-discovery.d.ts +18 -0
- package/dist/providers/anthropic-discovery.d.ts.map +1 -0
- package/dist/providers/anthropic-discovery.js +169 -0
- package/dist/providers/anthropic-discovery.js.map +1 -0
- package/dist/providers/anthropic-utils.d.ts +12 -0
- package/dist/providers/anthropic-utils.d.ts.map +1 -0
- package/dist/providers/anthropic-utils.js +27 -0
- package/dist/providers/anthropic-utils.js.map +1 -0
- package/dist/providers/anthropic.d.ts +0 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +42 -3
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/auxiliary.d.ts.map +1 -1
- package/dist/providers/auxiliary.js +9 -0
- package/dist/providers/auxiliary.js.map +1 -1
- package/dist/providers/codex-constants.d.ts.map +1 -1
- package/dist/providers/codex-constants.js +0 -5
- package/dist/providers/codex-constants.js.map +1 -1
- package/dist/providers/codex-discovery.d.ts.map +1 -1
- package/dist/providers/codex-discovery.js +29 -48
- package/dist/providers/codex-discovery.js.map +1 -1
- package/dist/providers/huggingface-discovery.d.ts.map +1 -1
- package/dist/providers/huggingface-discovery.js +26 -39
- package/dist/providers/huggingface-discovery.js.map +1 -1
- package/dist/providers/hybridai-discovery.d.ts.map +1 -1
- package/dist/providers/hybridai-discovery.js +70 -63
- package/dist/providers/hybridai-discovery.js.map +1 -1
- package/dist/providers/hybridai-models.d.ts.map +1 -1
- package/dist/providers/hybridai-models.js +0 -10
- package/dist/providers/hybridai-models.js.map +1 -1
- package/dist/providers/mistral-discovery.d.ts.map +1 -1
- package/dist/providers/mistral-discovery.js +45 -51
- package/dist/providers/mistral-discovery.js.map +1 -1
- package/dist/providers/model-catalog.d.ts.map +1 -1
- package/dist/providers/model-catalog.js +18 -1
- package/dist/providers/model-catalog.js.map +1 -1
- package/dist/providers/openai-compat-discovery.d.ts.map +1 -1
- package/dist/providers/openai-compat-discovery.js +20 -37
- package/dist/providers/openai-compat-discovery.js.map +1 -1
- package/dist/providers/openrouter-discovery.d.ts.map +1 -1
- package/dist/providers/openrouter-discovery.js +42 -48
- package/dist/providers/openrouter-discovery.js.map +1 -1
- package/dist/providers/provider-ids.d.ts +2 -2
- package/dist/providers/provider-ids.d.ts.map +1 -1
- package/dist/providers/provider-ids.js +2 -1
- package/dist/providers/provider-ids.js.map +1 -1
- package/dist/providers/recommended-models.d.ts.map +1 -1
- package/dist/providers/recommended-models.js +0 -1
- package/dist/providers/recommended-models.js.map +1 -1
- package/dist/providers/task-routing.d.ts.map +1 -1
- package/dist/providers/task-routing.js +6 -2
- package/dist/providers/task-routing.js.map +1 -1
- package/dist/providers/types.d.ts +1 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/utils.d.ts +11 -1
- package/dist/providers/utils.d.ts.map +1 -1
- package/dist/providers/utils.js +36 -6
- package/dist/providers/utils.js.map +1 -1
- package/dist/security/mount-security.d.ts.map +1 -1
- package/dist/security/mount-security.js +0 -1
- package/dist/security/mount-security.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 +13 -1
- package/dist/security/redact.js.map +1 -1
- 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/skills/skills-install.d.ts +3 -0
- package/dist/skills/skills-install.d.ts.map +1 -1
- package/dist/skills/skills-install.js +48 -0
- package/dist/skills/skills-install.js.map +1 -1
- package/dist/skills/skills.d.ts.map +1 -1
- package/dist/skills/skills.js +1 -4
- package/dist/skills/skills.js.map +1 -1
- package/dist/tui-approval-prompt.d.ts.map +1 -1
- package/dist/tui-approval-prompt.js +0 -2
- package/dist/tui-approval-prompt.js.map +1 -1
- package/dist/tui-slash-command.d.ts.map +1 -1
- package/dist/tui-slash-command.js +1 -0
- package/dist/tui-slash-command.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +0 -4
- package/dist/tui.js.map +1 -1
- package/dist/types/container.d.ts +3 -0
- package/dist/types/container.d.ts.map +1 -1
- package/dist/types/models.d.ts +2 -0
- package/dist/types/models.d.ts.map +1 -1
- package/dist/types/models.js.map +1 -1
- package/dist/types/scheduler.d.ts.map +1 -1
- package/dist/utils/transport-errors.d.ts.map +1 -1
- package/dist/utils/transport-errors.js +0 -3
- package/dist/utils/transport-errors.js.map +1 -1
- package/dist/{channels/voice/utils.d.ts → utils/type-guards.d.ts} +1 -1
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +4 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/docs/404.html +1 -1
- package/docs/about/index.html +13 -0
- package/docs/agents.html +0 -7
- package/docs/chat.html +2 -1
- package/docs/content/README.md +31 -31
- package/docs/content/developer-guide/approvals.md +7 -5
- package/docs/content/extensibility/README.md +4 -0
- package/docs/content/extensibility/agent-packages.md +61 -0
- package/docs/content/extensibility/skills.md +10 -9
- package/docs/content/getting-started/authentication.md +45 -11
- package/docs/content/guides/bundled-skills.md +5 -5
- package/docs/content/guides/skills/README.md +4 -4
- package/docs/content/guides/skills/development.md +115 -1
- package/docs/content/guides/skills/integrations.md +113 -4
- package/docs/content/guides/skills/publishing.md +38 -5
- package/docs/content/reference/commands.md +36 -12
- package/docs/content/reference/configuration.md +12 -8
- package/docs/content/reference/model-selection.md +19 -10
- package/docs/content/tutorials/README.md +88 -0
- package/docs/content/tutorials/_category_.json +5 -0
- package/docs/content/tutorials/brand-guidelines-check.md +287 -0
- package/docs/content/tutorials/campaign-pulse-digest.md +143 -0
- package/docs/content/tutorials/customer-feedback-digest.md +120 -0
- package/docs/content/tutorials/daily-pipeline-standup.md +125 -0
- package/docs/content/tutorials/devrel-engine.md +159 -0
- package/docs/content/tutorials/feature-explainer-videos.md +161 -0
- package/docs/content/tutorials/forwarded-lead-triage.md +133 -0
- package/docs/content/tutorials/invoice-receipt-collector.md +245 -0
- package/docs/content/tutorials/mini-feature-manual.md +197 -0
- package/docs/content/tutorials/morning-competitor-briefing.md +250 -0
- package/docs/content/tutorials/newsletter-engine.md +157 -0
- package/docs/content/tutorials/post-demo-follow-up-pack.md +134 -0
- package/docs/content/tutorials/proposal-generator.md +139 -0
- package/docs/content/tutorials/release-launch-kit.md +156 -0
- package/docs/content/tutorials/team-telegram-deal-desk.md +146 -0
- package/docs/content/tutorials/webinar-machine.md +179 -0
- package/docs/content/tutorials/weekly-content-calendar.md +135 -0
- package/docs/content/tutorials/whatsapp-lead-follow-up.md +131 -0
- package/docs/development/README.md +13 -10
- package/docs/development/extensibility/README.md +4 -0
- package/docs/development/extensibility/agent-packages.md +61 -0
- package/docs/development/extensibility/skills.md +10 -9
- package/docs/development/getting-started/authentication.md +45 -10
- package/docs/development/guides/bundled-skills.md +5 -5
- package/docs/development/guides/skills/README.md +4 -4
- package/docs/development/guides/skills/development.md +115 -1
- package/docs/development/guides/skills/integrations.md +113 -4
- package/docs/development/guides/skills/publishing.md +38 -5
- package/docs/development/internals/approvals.md +7 -5
- package/docs/development/reference/commands.md +37 -11
- package/docs/development/reference/configuration.md +12 -8
- package/docs/development/reference/model-selection.md +15 -3
- package/docs/index.html +1 -1
- package/docs/static/docs.js +89 -3
- package/package.json +1 -1
- package/skills/1password/SKILL.md +2 -2
- package/skills/excalidraw/SKILL.md +146 -0
- package/skills/excalidraw/agents/openai.yaml +4 -0
- package/skills/excalidraw/references/colors.md +45 -0
- package/skills/excalidraw/references/dark-mode.md +37 -0
- package/skills/excalidraw/references/examples.md +266 -0
- package/skills/excalidraw/scripts/upload.mjs +112 -0
- package/skills/gh-issues/SKILL.md +539 -0
- package/skills/gog/SKILL.md +131 -0
- package/skills/google-workspace/SKILL.md +19 -13
- package/skills/gws/SKILL.md +106 -0
- package/skills/gws/references/calendar.md +41 -0
- package/skills/gws/references/drive-docs-sheets.md +57 -0
- package/skills/gws/references/gmail.md +37 -0
- package/skills/gws/references/workflows.md +39 -0
- package/skills/manim-video/SKILL.md +2 -2
- package/skills/pdf/scripts/create_pdf.mjs +0 -1
- package/skills/personality/SKILL.md +1 -0
- package/skills/wordpress/SKILL.md +1 -1
- package/console/dist/assets/chat-DAI4OGIa.css +0 -1
- package/console/dist/assets/index-Cr9FpxIn.js +0 -15
- package/console/dist/assets/index-DQoS6dsR.css +0 -1
- package/dist/channels/voice/utils.d.ts.map +0 -1
- package/dist/channels/voice/utils.js +0 -4
- package/dist/channels/voice/utils.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,104 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## [0.13.0](https://github.com/HybridAIOne/hybridclaw/tree/v0.13.0) - 2026-04-22
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **Direct Anthropic provider**: Added first-class `anthropic/...` model
|
|
10
|
+
routing with `hybridclaw auth login anthropic`, direct Messages API support,
|
|
11
|
+
optional official `claude -p` transport in host sandbox mode, runtime model
|
|
12
|
+
discovery, doctor/onboarding coverage, and container-side Anthropic provider
|
|
13
|
+
execution.
|
|
14
|
+
- **JSON agent configuration command**: Added `hybridclaw agent config` for
|
|
15
|
+
platform-generated agent JSON payloads. The command can upsert agent
|
|
16
|
+
metadata, write bootstrap markdown files, optionally activate the agent, and
|
|
17
|
+
import `imageAsset` URLs or local files into the agent workspace.
|
|
18
|
+
- **Bundled `gog` Google Workspace skill**: Added API-backed Gmail, Google
|
|
19
|
+
Calendar, Drive, Contacts, Sheets, and Docs workflows through the `gog` CLI,
|
|
20
|
+
including the Homebrew install helper and Google OAuth setup via
|
|
21
|
+
`hybridclaw auth login google`. HybridClaw stores the OAuth client secret
|
|
22
|
+
and refresh token in encrypted runtime secrets, mints short-lived access
|
|
23
|
+
tokens on the host, and injects only `GOG_ACCESS_TOKEN` plus `GOG_ACCOUNT`
|
|
24
|
+
into the agent runtime.
|
|
25
|
+
- **Bundled `gws` Google Workspace skill**: Added a Google Workspace CLI skill
|
|
26
|
+
with progressive disclosure, auth preflight, and focused reference material
|
|
27
|
+
for Calendar, Gmail, Drive, Docs, Sheets, and common workflows.
|
|
28
|
+
- **Bundled `gh-issues` skill**: Added a HybridClaw-native GitHub issue queue
|
|
29
|
+
workflow that can fetch live issue lists, filter batches, confirm selected
|
|
30
|
+
issues, deduplicate issue-fix branches, delegate focused PRs, watch queues,
|
|
31
|
+
and revisit review feedback on open issue-fix PRs.
|
|
32
|
+
- **Bundled `excalidraw` skill**: Added editable `.excalidraw` diagram
|
|
33
|
+
creation and revision guidance with reference material for colors, dark
|
|
34
|
+
mode, examples, and an upload helper.
|
|
35
|
+
- **Small-business workflow tutorials**: Added a top-level Tutorials section
|
|
36
|
+
covering practical owner, GTM, marketing, sales, DevRel, content, webinar,
|
|
37
|
+
invoicing, and release-launch workflows.
|
|
38
|
+
- **Roman personality option**: Added a bundled Roman personality profile.
|
|
39
|
+
- **Console view switch and chat route refresh**: Added a shared view switch,
|
|
40
|
+
larger admin brand treatment, collapsible desktop navigation, and a refreshed
|
|
41
|
+
top-level `/chat` SPA route.
|
|
42
|
+
- **Release image promotion action**: Added a dedicated GitHub Action for
|
|
43
|
+
release image promotion and tightened release-image workflow caching.
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
- **Anthropic provider handling is production-routed**: Anthropic auth status,
|
|
48
|
+
provider probing, model discovery, task routing, stream parsing, timeout
|
|
49
|
+
behavior, Claude CLI credential lookup, and credential environment handling
|
|
50
|
+
now use provider-specific code paths instead of OpenAI-compatible fallbacks.
|
|
51
|
+
- **Google Workspace skill routing prefers `gog` for API access**: The
|
|
52
|
+
browser-oriented `google-workspace` skill now defers to the bundled `gog`
|
|
53
|
+
skill when API-backed Gmail, Calendar, Drive, Contacts, Sheets, or Docs
|
|
54
|
+
access is available.
|
|
55
|
+
- **Browser chat is the primary local web surface**: The gateway root routes to
|
|
56
|
+
chat, `/chat` is mounted as a top-level console SPA route, the standalone
|
|
57
|
+
chat view owns its viewport, and server-rendered pages use document
|
|
58
|
+
navigation where appropriate.
|
|
59
|
+
- **Chat composer and message actions were refined**: Assistant message actions
|
|
60
|
+
are always visible, regenerate precedes copy, the composer uses a two-row
|
|
61
|
+
layout and the full main-column width, active sessions use accent text, and
|
|
62
|
+
the new-conversation/send controls use lighter chrome.
|
|
63
|
+
- **Channel runtime lifecycle code is shared**: Built-in channel transports now
|
|
64
|
+
use a shared runtime factory for common lifecycle handling, with explicit
|
|
65
|
+
opt-outs where a transport needs custom behavior.
|
|
66
|
+
- **Provider discovery is more consistent**: Discovery caches and lookup
|
|
67
|
+
aliases are shared across providers, HybridAI model alias lookup is indexed,
|
|
68
|
+
provider integer parsing is centralized, and discovery refresh failures are
|
|
69
|
+
logged consistently.
|
|
70
|
+
- **Prompt and tool summaries are cleaner**: Message-tool advertising is scoped
|
|
71
|
+
to active channels, and prompt hook output avoids redundant comment noise.
|
|
72
|
+
|
|
73
|
+
### Fixed
|
|
74
|
+
|
|
75
|
+
- **Gateway restarts no longer hang during shutdown**: The gateway shutdown
|
|
76
|
+
path now drains pending credential-save work in order, avoiding a restart
|
|
77
|
+
hang during WhatsApp shutdown.
|
|
78
|
+
- **Honcho memory prefetch races are closed**: Prompt-context assembly waits
|
|
79
|
+
for in-flight Honcho prefetch work before reading memory context.
|
|
80
|
+
- **Inactive channel send tools no longer leak into prompts**: The runtime only
|
|
81
|
+
advertises message-send tools for channels that are active in the current
|
|
82
|
+
configuration.
|
|
83
|
+
- **OpenRouter free-model lookups normalize correctly**: OpenRouter discovery
|
|
84
|
+
handles free model lookup aliases consistently.
|
|
85
|
+
- **Slack runtime sends are guarded more tightly**: Slack send handling now
|
|
86
|
+
validates runtime state before attempting delivery.
|
|
87
|
+
- **Agent avatars load behind web auth**: Chat agent avatars are fetched with
|
|
88
|
+
authenticated requests and eagerly loaded when chat state initializes.
|
|
89
|
+
- **Chat replay restores request context from history**: Regenerating from a
|
|
90
|
+
historic assistant message hydrates the stored replay request before
|
|
91
|
+
resubmitting.
|
|
92
|
+
- **Collapsed sidebars keep the expected width**: The collapsed console rail
|
|
93
|
+
shrinks to icon width and exposes nav tooltips instead of leaving excess
|
|
94
|
+
sidebar space.
|
|
95
|
+
- **Google Workspace replies preserve user-visible addresses**: Assistant
|
|
96
|
+
replies and streamed chat text no longer redact ordinary email addresses
|
|
97
|
+
before they reach the user. Redaction still applies to audit, logging,
|
|
98
|
+
approval/control previews, and observability paths.
|
|
99
|
+
- **HybridAI streaming avoids duplicate assistant text**: The HybridAI stream
|
|
100
|
+
adapter now handles chunks that include both cumulative `message.content` and
|
|
101
|
+
incremental `delta.content` without emitting the same text twice.
|
|
102
|
+
|
|
5
103
|
## [0.12.11](https://github.com/HybridAIOne/hybridclaw/tree/v0.12.11)
|
|
6
104
|
|
|
7
105
|
### Added
|
|
@@ -1279,7 +1377,7 @@
|
|
|
1279
1377
|
through shared routing for Discord, WhatsApp, email, and local clients,
|
|
1280
1378
|
including native vision/audio injection paths and stronger preference for
|
|
1281
1379
|
current-turn local files over history rediscovery.
|
|
1282
|
-
- **Auxiliary task/provider routing**: Added
|
|
1380
|
+
- **Auxiliary task/provider routing**: Added auxiliary routing and
|
|
1283
1381
|
tighter provider fallback handling so deferred or background tasks pick the
|
|
1284
1382
|
right model more predictably.
|
|
1285
1383
|
- **Discord activation config cleanup**: Removed the obsolete
|
package/README.md
CHANGED
|
@@ -114,6 +114,9 @@ Once the gateway is running, open HybridClaw locally:
|
|
|
114
114
|
- `/admin/agents` edits allowlisted bootstrap markdown files such as
|
|
115
115
|
`AGENTS.md`, keeps saved revisions, and restores earlier versions from the
|
|
116
116
|
browser.
|
|
117
|
+
- `hybridclaw agent config` accepts generated JSON payloads to upsert agent
|
|
118
|
+
metadata, write bootstrap markdown, import profile images into the agent
|
|
119
|
+
workspace, and optionally activate the agent.
|
|
117
120
|
- `/admin/channels` edits transport config, encrypted channel credentials,
|
|
118
121
|
Twilio voice settings, and per-channel instructions that are injected into
|
|
119
122
|
prompts at runtime.
|
|
@@ -135,6 +138,9 @@ Once the gateway is running, open HybridClaw locally:
|
|
|
135
138
|
`config.json` becomes invalid.
|
|
136
139
|
- `hybridclaw skill import` supports community sources, local directories,
|
|
137
140
|
and `.zip` archives.
|
|
141
|
+
- The bundled tutorials cover owner, GTM, marketing, sales, DevRel, content,
|
|
142
|
+
invoicing, webinar, and release-launch workflows that can run from the TUI,
|
|
143
|
+
web chat, or connected channels.
|
|
138
144
|
- `hybridclaw eval hybridai-skills` turns the bundled skills pages' "Try it
|
|
139
145
|
yourself" prompts into a local eval suite, and live summaries surface the
|
|
140
146
|
observed skill, artifact presence, and counted tool-call totals.
|
|
@@ -146,14 +152,22 @@ Once the gateway is running, open HybridClaw locally:
|
|
|
146
152
|
|
|
147
153
|
## Models, Skills, and Memory
|
|
148
154
|
|
|
149
|
-
- `hybridclaw auth login` and `/model list` cover HybridAI, Codex,
|
|
150
|
-
Mistral, Hugging Face, Gemini, DeepSeek, xAI, Z.AI,
|
|
151
|
-
DashScope, Xiaomi, Kilo Code, and local backends such as
|
|
152
|
-
llama.cpp, and vLLM. Remote OpenAI-compatible providers
|
|
153
|
-
runtime-discovered model catalogs with operator-pinned lists.
|
|
155
|
+
- `hybridclaw auth login` and `/model list` cover HybridAI, Codex,
|
|
156
|
+
Anthropic, OpenRouter, Mistral, Hugging Face, Gemini, DeepSeek, xAI, Z.AI,
|
|
157
|
+
Kimi, MiniMax, DashScope, Xiaomi, Kilo Code, and local backends such as
|
|
158
|
+
Ollama, LM Studio, llama.cpp, and vLLM. Remote OpenAI-compatible providers
|
|
159
|
+
can merge runtime-discovered model catalogs with operator-pinned lists.
|
|
160
|
+
- Anthropic can run through the direct Messages API with `ANTHROPIC_API_KEY`
|
|
161
|
+
or through the official Claude CLI transport in host sandbox mode.
|
|
162
|
+
- Google OAuth credentials for Workspace skills live in the encrypted runtime
|
|
163
|
+
secret store; agent runtimes receive short-lived access tokens for `gog` and
|
|
164
|
+
`gws` instead of long-lived refresh tokens.
|
|
154
165
|
- Skills can be enabled or disabled globally or per channel from
|
|
155
166
|
`hybridclaw skill enable|disable`, TUI `/skill config`, or the admin
|
|
156
167
|
`Skills` page.
|
|
168
|
+
- Bundled skills include API-backed Google Workspace workflows (`gog`, `gws`),
|
|
169
|
+
GitHub issue queue processing (`gh-issues`), and editable Excalidraw diagram
|
|
170
|
+
creation.
|
|
157
171
|
- Built-in office skills handle longer PDF creation flows cleanly: the bundled
|
|
158
172
|
PDF creator wraps long lines, honors explicit `\n`, and adds pages
|
|
159
173
|
automatically when reports or invoices spill past the first page.
|
|
@@ -250,6 +264,10 @@ Browse the full manual at
|
|
|
250
264
|
[WhatsApp](https://www.hybridclaw.io/docs/channels/whatsapp),
|
|
251
265
|
[iMessage](https://www.hybridclaw.io/docs/channels/imessage), and
|
|
252
266
|
[Microsoft Teams](https://www.hybridclaw.io/docs/channels/msteams)
|
|
267
|
+
- Tutorials:
|
|
268
|
+
[Practical Workflows](https://www.hybridclaw.io/docs/tutorials) for owner,
|
|
269
|
+
GTM, marketing, sales, DevRel, content, invoicing, webinar, and release
|
|
270
|
+
launch workflows
|
|
253
271
|
- Skills and plugins:
|
|
254
272
|
[Extensibility](https://www.hybridclaw.io/docs/extensibility),
|
|
255
273
|
[Bundled Skills](https://www.hybridclaw.io/docs/guides/bundled-skills),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: himalaya
|
|
3
|
-
description: Manage email with the Himalaya CLI: configure accounts, list folders, read or search messages, draft replies, send mail, or download attachments from the terminal.
|
|
3
|
+
description: "Manage email with the Himalaya CLI: configure accounts, list folders, read or search messages, draft replies, send mail, or download attachments from the terminal."
|
|
4
4
|
user-invocable: true
|
|
5
5
|
metadata:
|
|
6
6
|
hybridclaw:
|
package/config.example.json
CHANGED
|
@@ -231,6 +231,12 @@
|
|
|
231
231
|
"codex": {
|
|
232
232
|
"baseUrl": "https://chatgpt.com/backend-api/codex"
|
|
233
233
|
},
|
|
234
|
+
"anthropic": {
|
|
235
|
+
"enabled": false,
|
|
236
|
+
"baseUrl": "https://api.anthropic.com/v1",
|
|
237
|
+
"method": "api-key",
|
|
238
|
+
"models": ["anthropic/claude-sonnet-4-6"]
|
|
239
|
+
},
|
|
234
240
|
"openrouter": {
|
|
235
241
|
"enabled": false,
|
|
236
242
|
"baseUrl": "https://openrouter.ai/api/v1",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._chatPage_1dlp4_1{width:100%;height:100dvh;min-height:0;display:flex;overflow:hidden}._chatPage_1dlp4_1>div{height:100%;min-height:0}._chatSidebarHeader_1dlp4_17{justify-content:space-between;align-items:center;gap:8px;padding:0 4px;display:flex}._chatSidebarContent_1dlp4_25{flex-direction:column;gap:8px;padding:0 4px;display:flex;overflow:hidden}._newChatButton_1dlp4_33{appearance:none;width:100%;color:inherit;font:inherit;border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:18px 8px;font-weight:500;transition:background .12s;display:flex}._newChatButton_1dlp4_33:hover{background:var(--panel-bg)}._newChatButton_1dlp4_33>span:first-child{justify-content:center;width:20px;font-size:1.25rem;line-height:1;display:inline-flex}._sidebarLabel_1dlp4_63{text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);margin:12px 0 4px;padding:0 6px;font-size:.7rem;font-weight:700}._sessionList_1dlp4_73{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}._sessionItem_1dlp4_82{appearance:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:0;flex-direction:column;gap:2px;padding:8px 10px;transition:background .12s;display:flex;overflow:hidden}._sessionItem_1dlp4_82:hover{background:var(--panel-bg)}._sessionItemActive_1dlp4_104 ._sessionTitle_1dlp4_104,._sessionItemActive_1dlp4_104 ._sessionSnippet_1dlp4_105{color:var(--primary)}._sessionItemPending_1dlp4_109{animation:1s ease-in-out infinite _sessionPulse_1dlp4_1}@keyframes _sessionPulse_1dlp4_1{0%,to{opacity:1}50%{opacity:.5}}._sessionTitle_1dlp4_104{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:500;overflow:hidden}._sessionTime_1dlp4_132{color:var(--muted-foreground);font-size:.72rem}._sessionSnippet_1dlp4_105{color:var(--muted-foreground);white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;overflow:hidden}._sidebarSearchWrap_1dlp4_145{padding:10px 0 4px}._sidebarSearch_1dlp4_145{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel-bg);width:100%;color:var(--text);font:inherit;padding:9px 11px}._sidebarSearch_1dlp4_145::placeholder{color:var(--muted-foreground)}._sidebarSearch_1dlp4_145:focus{outline:2px solid var(--accent-soft);outline-offset:1px;border-color:var(--ring)}._sidebarStatus_1dlp4_169{color:var(--muted-foreground);padding:6px 10px;font-size:.82rem}._chatTopbar_1dlp4_175{flex-shrink:0;justify-content:flex-end;padding:24px 24px 0;display:flex}._chatMain_1dlp4_182{background:var(--page-bg);flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}._messageArea_1dlp4_193{scroll-behavior:smooth;flex:auto;min-height:0;padding:16px 24px 12px;overflow-y:auto}._messageList_1dlp4_201{flex-direction:column;gap:12px;width:100%;display:flex}._sidebarCollapseButton_1dlp4_208{align-self:center}._emptyState_1dlp4_212{flex-direction:column;flex:auto;justify-content:center;align-items:center;min-height:0;padding:48px 24px;display:flex}._greeting_1dlp4_222{color:var(--muted-foreground);text-align:center;letter-spacing:-.02em;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;line-height:1.3}._messageBlock_1dlp4_231{flex-direction:column;gap:6px;display:flex}._messageBlockUser_1dlp4_237{align-items:flex-end}._messageBlockAssistant_1dlp4_241,._messageBlockSystem_1dlp4_242{align-items:flex-start}._agentLabel_1dlp4_246{color:var(--muted-foreground);align-items:center;gap:6px;padding:0 4px;font-size:.75rem;font-weight:600;display:flex}._agentAvatar_1dlp4_256{object-fit:cover;border-radius:999px;width:20px;height:20px}._agentInitial_1dlp4_263{background:var(--primary);width:20px;height:20px;color:var(--primary-foreground);border-radius:999px;justify-content:center;align-items:center;font-size:.65rem;font-weight:700;display:flex}._bubble_1dlp4_276{word-wrap:break-word;overflow-wrap:break-word;border-radius:14px;max-width:85%;padding:10px 14px;font-size:.92rem;line-height:1.55}._bubbleUser_1dlp4_286{background:linear-gradient(135deg, var(--primary), var(--ring));color:var(--primary-foreground);border-bottom-right-radius:4px}._bubbleAssistant_1dlp4_292{background:var(--card);color:var(--card-foreground);border:1px solid var(--line);box-shadow:var(--shadow-card);border-bottom-left-radius:4px}._bubbleSystem_1dlp4_300{background:var(--accent-soft);color:var(--accent-foreground);text-align:center;align-self:center;max-width:90%;font-size:.84rem}._markdownContent_1dlp4_309{line-height:1.6}._markdownContent_1dlp4_309 h1,._markdownContent_1dlp4_309 h2,._markdownContent_1dlp4_309 h3{color:var(--foreground);letter-spacing:-.02em;margin:.6em 0 .3em;font-weight:600}._markdownContent_1dlp4_309 h1{font-size:1.25rem}._markdownContent_1dlp4_309 h2{font-size:1.12rem}._markdownContent_1dlp4_309 h3{font-size:1rem}._markdownContent_1dlp4_309 p{margin:.4em 0}._markdownContent_1dlp4_309 ul,._markdownContent_1dlp4_309 ol{margin:.4em 0;padding-left:20px}._markdownContent_1dlp4_309 li{margin:2px 0}._markdownContent_1dlp4_309 blockquote{border-left:3px solid var(--line-strong);color:var(--muted-foreground);margin:.5em 0;padding:4px 12px}._markdownContent_1dlp4_309 code{background:var(--muted);color:var(--foreground);border-radius:4px;padding:2px 5px;font-size:.86em}._markdownContent_1dlp4_309 pre{background:var(--terminal);color:var(--terminal-foreground);border-radius:var(--radius-sm);margin:.5em 0;padding:12px 14px;font-size:.84rem;line-height:1.5;overflow-x:auto}._markdownContent_1dlp4_309 pre code{color:inherit;font-size:inherit;background:0 0;border-radius:0;padding:0}._markdownContent_1dlp4_309 hr{border:none;border-top:1px solid var(--line);margin:.8em 0}._markdownContent_1dlp4_309 a{color:var(--primary);text-decoration:none}._markdownContent_1dlp4_309 a:hover{text-decoration:underline}._markdownContent_1dlp4_309 table{border-collapse:collapse;width:100%;margin:.5em 0;font-size:.86rem}._markdownContent_1dlp4_309 th,._markdownContent_1dlp4_309 td{border:1px solid var(--line);text-align:left;padding:6px 10px}._markdownContent_1dlp4_309 th{background:var(--muted);font-weight:600}._markdownContent_1dlp4_309 tbody tr:nth-child(2n){background:var(--muted)}._messageActions_1dlp4_420{gap:4px;padding:0 4px;display:flex}._messageActions_1dlp4_420 ._actionButton_1dlp4_426{width:24px;height:24px;min-height:unset;color:var(--muted-foreground);border-radius:var(--radius-sm);background:0 0;border-color:#0000;font-size:.82rem}._messageActions_1dlp4_420 ._actionButton_1dlp4_426:hover{background:var(--muted);color:var(--foreground)}._actionButtonSuccess_1dlp4_442{color:var(--success)}._branchSwitcher_1dlp4_446{color:var(--muted-foreground);align-items:center;gap:4px;padding:0 4px;font-size:.75rem;display:inline-flex}._branchButton_1dlp4_455{width:22px;height:22px;min-height:unset;border-radius:999px;font-size:.8rem}._branchButton_1dlp4_455:hover{background:var(--muted);color:var(--text)}._branchButton_1dlp4_455:disabled{opacity:.4;cursor:default}._approvalActions_1dlp4_473{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}._approvalAllow_1dlp4_480{border-color:var(--success-border);background:var(--success-soft);color:var(--success)}._artifactCard_1dlp4_486{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--muted);align-items:center;gap:10px;margin-top:8px;padding:10px 14px;display:flex}._artifactFilename_1dlp4_497{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;font-weight:500;overflow:hidden}._artifactBadge_1dlp4_506{background:var(--accent-soft);color:var(--accent-foreground);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.7rem;font-weight:500}._artifactDownload_1dlp4_516{color:var(--primary);cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:0;font-size:.82rem;text-decoration:none}._artifactDownload_1dlp4_516:hover{text-decoration:underline}._artifactDownload_1dlp4_516:disabled{opacity:.6;cursor:default;text-decoration:none}._artifactPreview_1dlp4_538{border-radius:var(--radius-sm);max-width:100%;margin-top:8px}._artifactPreview_1dlp4_538 img{border-radius:var(--radius-sm);max-width:100%}._thinking_1dlp4_549{align-items:center;gap:4px;padding:10px 14px;display:flex}._thinkingDot_1dlp4_556{background:var(--muted-foreground);border-radius:999px;width:7px;height:7px;animation:1.2s ease-in-out infinite _thinkingBounce_1dlp4_1}._thinkingDot_1dlp4_556:nth-child(2){animation-delay:.15s}._thinkingDot_1dlp4_556:nth-child(3){animation-delay:.3s}@keyframes _thinkingBounce_1dlp4_1{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}._composerWrapper_1dlp4_585{flex-shrink:0;padding:0 24px 20px}._composer_1dlp4_585{border:1px solid var(--line-strong);background:var(--panel-bg);width:100%;box-shadow:var(--shadow-raised);border-radius:16px;flex-direction:column;gap:8px;padding:12px 16px;transition:border-color .15s;display:flex}._pendingMediaRow_1dlp4_603{flex-wrap:wrap;gap:6px;padding:10px 14px 0;display:flex}._mediaChip_1dlp4_610{background:var(--muted);color:var(--text);border-radius:6px;align-items:center;gap:4px;max-width:180px;padding:4px 8px;font-size:.78rem;display:inline-flex}._mediaChipName_1dlp4_622{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}._mediaChipRemove_1dlp4_628{width:16px;height:16px;color:var(--muted-foreground);cursor:pointer;background:0 0;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;display:flex}._mediaChipRemove_1dlp4_628:hover{color:var(--danger)}._composerRow_1dlp4_647{align-items:flex-end;gap:8px;padding:10px 14px;display:flex}._composerActions_1dlp4_654{justify-content:space-between;align-items:center;gap:8px;display:flex}._composerInput_1dlp4_661{resize:none;min-height:36px;max-height:180px;color:var(--text);background:0 0;border:none;outline:none;flex:auto;padding:0;font-size:.92rem;line-height:36px}._composerInput_1dlp4_661:not(:placeholder-shown){padding:6px 0;line-height:1.5}._composerInput_1dlp4_661::placeholder{color:var(--muted-foreground)}._attachButton_1dlp4_684,._sendButton_1dlp4_685{cursor:pointer;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .12s,color .12s;display:flex}._attachButton_1dlp4_684:focus-visible,._sendButton_1dlp4_685:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}._attachButton_1dlp4_684{color:var(--muted-foreground);background:0 0;font-size:1.2rem}._attachButton_1dlp4_684:hover{background:var(--muted);color:var(--text)}._sendButton_1dlp4_685{color:var(--muted-foreground);border:1px solid var(--line-strong);background:0 0;font-size:.9rem}._sendButton_1dlp4_685:hover:not(:disabled){background:var(--muted);color:var(--text)}._sendButton_1dlp4_685:disabled{opacity:.5;cursor:default}._sendButton_1dlp4_685._stopping_1dlp4_734{background:var(--danger-soft);color:var(--danger)}._slashSuggestions_1dlp4_739{background:var(--popover);border:1px solid var(--line);border-radius:var(--radius-md);max-height:220px;box-shadow:var(--shadow-popover);z-index:20;margin-bottom:4px;position:absolute;bottom:100%;left:0;right:0;overflow-y:auto}._suggestionItem_1dlp4_754{cursor:pointer;flex-direction:column;gap:2px;padding:8px 14px;transition:background .1s;display:flex}._suggestionItem_1dlp4_754:hover,._suggestionItemActive_1dlp4_764{background:var(--muted)}._suggestionLabel_1dlp4_768{color:var(--text);font-size:.86rem;font-weight:500}._suggestionDesc_1dlp4_774{color:var(--muted-foreground);font-size:.76rem}._errorBanner_1dlp4_779{border-radius:var(--radius-sm);background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger);width:calc(100% - 48px);max-width:860px;margin:0 auto;padding:8px 14px;font-size:.84rem}._editArea_1dlp4_793{resize:vertical;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel-bg);width:100%;min-height:48px;max-height:200px;color:var(--text);padding:8px 10px;font-family:inherit;font-size:.92rem;line-height:1.5}._editButtons_1dlp4_808{gap:6px;margin-top:6px;display:flex}@media (width<=900px){._messageArea_1dlp4_193{padding:16px 16px 8px}._composerWrapper_1dlp4_585{padding:0 16px 12px}._slashSuggestions_1dlp4_739{max-height:40vh}}@media (width<=480px){._bubbleUser_1dlp4_286,._bubbleAssistant_1dlp4_292{max-width:95%}._messageArea_1dlp4_193{padding:12px 8px 8px}._composerWrapper_1dlp4_585{padding:0 8px 8px}._emptyState_1dlp4_212 h1{font-size:1.2rem}}@media (prefers-reduced-motion:reduce){._thinkingDot_1dlp4_556,._sessionItemPending_1dlp4_109{animation:none}}._button_kxq2k_1{white-space:nowrap;cursor:pointer;border-radius:var(--radius-sm);box-sizing:border-box;border:1px solid #0000;outline:none;flex-shrink:0;justify-content:center;align-items:center;gap:6px;font-size:.875rem;font-weight:500;line-height:1;text-decoration:none;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}._button_kxq2k_1:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}._button_kxq2k_1:disabled,._button_kxq2k_1[data-disabled]{cursor:default;opacity:.72}._button_kxq2k_1:disabled{pointer-events:none}._button_kxq2k_1[data-loading]{cursor:progress}._button_kxq2k_1 svg{pointer-events:none;flex-shrink:0}._default_kxq2k_50{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}._default_kxq2k_50:hover:not(:disabled):not([data-disabled]){opacity:.9}._ghost_kxq2k_60{background:var(--panel-bg);border-color:var(--line-strong);color:var(--text)}._ghost_kxq2k_60:hover:not(:disabled):not([data-disabled]){background:var(--muted)}._outline_kxq2k_70{border-color:var(--line-strong);color:var(--text);background:0 0}._outline_kxq2k_70:hover:not(:disabled):not([data-disabled]){background:var(--muted)}._danger_kxq2k_80{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger)}._danger_kxq2k_80:hover:not(:disabled):not([data-disabled]){opacity:.85}._sizeDefault_kxq2k_92{min-height:36px;padding:9px 12px}._sizeSm_kxq2k_97{min-height:30px;padding:6px 10px;font-size:.8125rem}._sizeIcon_kxq2k_103{width:36px;height:36px;min-height:unset;padding:0}
|