@johpaz/hive-agents 0.0.35 → 0.0.37
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/README.md +64 -39
- package/dist/hive.js +3231 -3189
- package/dist/tool-worker.js +218406 -0
- package/dist/ui/assets/{AgentCreateForm-B4eK7efF.js → AgentCreateForm-tJZv9FZC.js} +1 -1
- package/dist/ui/assets/{AgentDetailPage-BD2uoJWk.js → AgentDetailPage-Du-mRcAX.js} +1 -1
- package/dist/ui/assets/AgentNewPage-DIFYd_Ys.js +1 -0
- package/dist/ui/assets/{AgentsPage-4JUZXvkA.js → AgentsPage-YvSgWRiw.js} +6 -6
- package/dist/ui/assets/CanvasPage-DtMwGvxf.js +33 -0
- package/dist/ui/assets/{ChannelsPage-BUn7-nhV.js → ChannelsPage-BdBXWHjj.js} +1 -1
- package/dist/ui/assets/DashboardPage-ghl1ZguH.js +6 -0
- package/dist/ui/assets/{LoginPage-C8j_urUD.js → LoginPage-CAmSI9Vy.js} +1 -1
- package/dist/ui/assets/LogsPage-DAPBHkwK.js +1 -0
- package/dist/ui/assets/MeetingPage-WjjGOqqU.js +1 -0
- package/dist/ui/assets/{NotFound-Drh-sJPN.js → NotFound-BMeQSGcG.js} +1 -1
- package/dist/ui/assets/ProvidersPage-Ct6HsAi1.js +1 -0
- package/dist/ui/assets/{RecoverPage-DNb1Pr8h.js → RecoverPage-DpW3l-yv.js} +1 -1
- package/dist/ui/assets/SettingsPage-DBJ7_E6C.js +9 -0
- package/dist/ui/assets/SetupPage-DKmLVUaj.js +1 -0
- package/dist/ui/assets/{WebChatPage-R-YOwA4F.js → WebChatPage-CVRcKept.js} +2 -2
- package/dist/ui/assets/accordion-C5d5Rm5z.js +1 -0
- package/dist/ui/assets/{alert-U8FsgWi7.js → alert-C-NE-P3s.js} +1 -1
- package/dist/ui/assets/{alert-dialog-CRdMkkmk.js → alert-dialog-C5mzbHdP.js} +1 -1
- package/dist/ui/assets/{badge-Cli1jnH5.js → badge-ChpACfWO.js} +1 -1
- package/dist/ui/assets/chevron-up-BYhk0K2J.js +1 -0
- package/dist/ui/assets/{dialog-DQ3s-LuO.js → dialog-QnZ0ad8O.js} +1 -1
- package/dist/ui/assets/dropdown-menu-BK-CO3Od.js +1 -0
- package/dist/ui/assets/{es-DcMjrpbA.js → es-NQNoaWDx.js} +1 -1
- package/dist/ui/assets/index-B2fCYtTS.css +2 -0
- package/dist/ui/assets/index-DMCjjdqf.js +116 -0
- package/dist/ui/assets/{label-0BvGVXvZ.js → label-D2H1IR_J.js} +1 -1
- package/dist/ui/assets/progress-BherYzY6.js +1 -0
- package/dist/ui/assets/scroll-area-DkeyX32e.js +1 -0
- package/dist/ui/assets/{slider-D47dOrRa.js → slider-CsiUDxc3.js} +1 -1
- package/dist/ui/assets/switch-BDwN8RYV.js +1 -0
- package/dist/ui/assets/{table-DhowbNxQ.js → table-CSc8ubon.js} +1 -1
- package/dist/ui/assets/terminal-DN38Q456.js +1 -0
- package/dist/ui/assets/useProviders-C6_QHsEi.js +1 -0
- package/dist/ui/assets/{vendor-radix-JY4ncZrD.js → vendor-radix-cw1bQaVC.js} +4 -4
- package/dist/ui/assets/{vendor-react-CscwQerf.js → vendor-react-D4s9E-zj.js} +1 -1
- package/dist/ui/dist/assets/AgentCreateForm-tJZv9FZC.js +1 -0
- package/dist/ui/dist/assets/AgentDetailPage-Du-mRcAX.js +1 -0
- package/dist/ui/dist/assets/AgentNewPage-DIFYd_Ys.js +1 -0
- package/dist/ui/dist/assets/AgentsPage-YvSgWRiw.js +10 -0
- package/dist/ui/dist/assets/CanvasPage-DtMwGvxf.js +33 -0
- package/dist/ui/dist/assets/ChannelsPage-BdBXWHjj.js +8 -0
- package/dist/ui/dist/assets/DashboardPage-ghl1ZguH.js +6 -0
- package/dist/ui/dist/assets/LoginPage-CAmSI9Vy.js +1 -0
- package/dist/ui/dist/assets/LogsPage-DAPBHkwK.js +1 -0
- package/dist/ui/dist/assets/MeetingPage-WjjGOqqU.js +1 -0
- package/dist/ui/dist/assets/NotFound-BMeQSGcG.js +1 -0
- package/dist/ui/dist/assets/ProvidersPage-Ct6HsAi1.js +1 -0
- package/dist/ui/dist/assets/RecoverPage-DpW3l-yv.js +1 -0
- package/dist/ui/dist/assets/SettingsPage-DBJ7_E6C.js +9 -0
- package/dist/ui/dist/assets/SetupPage-DKmLVUaj.js +1 -0
- package/dist/ui/dist/assets/WebChatPage-CVRcKept.js +16 -0
- package/dist/ui/dist/assets/accordion-C5d5Rm5z.js +1 -0
- package/dist/ui/dist/assets/activity-c3pNngT_.js +1 -0
- package/dist/ui/dist/assets/alert-C-NE-P3s.js +1 -0
- package/dist/ui/dist/assets/alert-dialog-C5mzbHdP.js +1 -0
- package/dist/ui/dist/assets/arrow-left-CBcbX5EZ.js +1 -0
- package/dist/ui/dist/assets/badge-ChpACfWO.js +1 -0
- package/dist/ui/dist/assets/calendar-B-KZ9RQO.js +1 -0
- package/dist/ui/dist/assets/card-CNf6BS2e.js +1 -0
- package/dist/ui/dist/assets/chevron-left-D4U-5A27.js +1 -0
- package/dist/ui/dist/assets/chevron-right-CR4Skrf3.js +1 -0
- package/dist/ui/dist/assets/chevron-up-BYhk0K2J.js +1 -0
- package/dist/ui/dist/assets/circle-alert-CyHDwUj8.js +1 -0
- package/dist/ui/dist/assets/circle-check-Bb54Ebmu.js +1 -0
- package/dist/ui/dist/assets/cpu-Cdgc_B1K.js +1 -0
- package/dist/ui/dist/assets/dialog-QnZ0ad8O.js +1 -0
- package/dist/ui/dist/assets/download-C3ifGMjJ.js +1 -0
- package/dist/ui/dist/assets/dropdown-menu-BK-CO3Od.js +1 -0
- package/dist/ui/dist/assets/es-NQNoaWDx.js +1 -0
- package/dist/ui/dist/assets/external-link-BvxYeTP1.js +1 -0
- package/dist/ui/dist/assets/eye-DqNTU_GD.js +1 -0
- package/dist/ui/dist/assets/file-text-BT_9S9SM.js +1 -0
- package/dist/ui/dist/assets/folder-open-BhH8y9ac.js +1 -0
- package/dist/ui/dist/assets/format-GVHeOyWI.js +1 -0
- package/dist/ui/dist/assets/gateway-url-COCbW0IR.js +1 -0
- package/dist/ui/dist/assets/gauge-D_TMa4i9.js +1 -0
- package/dist/ui/dist/assets/globe-DeCQTCDJ.js +1 -0
- package/dist/ui/dist/assets/hexagon-DsGOUl-H.js +1 -0
- package/dist/ui/dist/assets/history-BSG-Ypqf.js +1 -0
- package/dist/ui/dist/assets/index-B2fCYtTS.css +2 -0
- package/dist/ui/dist/assets/index-DMCjjdqf.js +116 -0
- package/dist/ui/dist/assets/info-NwLoa2Mj.js +1 -0
- package/dist/ui/dist/assets/key-3EP0dhkT.js +1 -0
- package/dist/ui/dist/assets/label-D2H1IR_J.js +1 -0
- package/dist/ui/dist/assets/loader-circle-CZNax6kS.js +1 -0
- package/dist/ui/dist/assets/lock-Ei1_J-Nq.js +1 -0
- package/dist/ui/dist/assets/pause-BUqah9Bi.js +1 -0
- package/dist/ui/dist/assets/play-NcZ4swwL.js +1 -0
- package/dist/ui/dist/assets/plus-CX1xyhp5.js +1 -0
- package/dist/ui/dist/assets/progress-BherYzY6.js +1 -0
- package/dist/ui/dist/assets/refresh-cw-DaYdjQFk.js +1 -0
- package/dist/ui/dist/assets/rolldown-runtime-S-ySWqyJ.js +1 -0
- package/dist/ui/dist/assets/save-CUdYyHNy.js +1 -0
- package/dist/ui/dist/assets/scroll-area-DkeyX32e.js +1 -0
- package/dist/ui/dist/assets/send-B0H5SEIE.js +1 -0
- package/dist/ui/dist/assets/settings-Ds4SqD8s.js +1 -0
- package/dist/ui/dist/assets/slider-CsiUDxc3.js +14 -0
- package/dist/ui/dist/assets/sparkles-yUEb-7oH.js +1 -0
- package/dist/ui/dist/assets/square-BD81nFtN.js +1 -0
- package/dist/ui/dist/assets/switch-BDwN8RYV.js +1 -0
- package/dist/ui/dist/assets/table-CSc8ubon.js +1 -0
- package/dist/ui/dist/assets/terminal-DN38Q456.js +1 -0
- package/dist/ui/dist/assets/textarea-CXgXWKrT.js +1 -0
- package/dist/ui/dist/assets/trash-2-CNjMkoq6.js +1 -0
- package/dist/ui/dist/assets/triangle-alert-C9Y8Ub4X.js +1 -0
- package/dist/ui/dist/assets/useProviders-C6_QHsEi.js +1 -0
- package/dist/ui/dist/assets/utils-3pnRFmFe.js +1 -0
- package/dist/ui/dist/assets/vendor-charts-Bu2lyBKP.js +65 -0
- package/dist/ui/dist/assets/vendor-query-DsWPbQdG.js +1 -0
- package/dist/ui/dist/assets/vendor-radix-cw1bQaVC.js +63 -0
- package/dist/ui/dist/assets/vendor-react-D4s9E-zj.js +1 -0
- package/dist/ui/dist/assets/vendor-router-C9pIYwbJ.js +3 -0
- package/dist/ui/dist/assets/volume-2-CeSXNDv4.js +1 -0
- package/dist/ui/dist/assets/zap-hlXjpSeA.js +1 -0
- package/dist/ui/dist/favicon.ico +0 -0
- package/dist/ui/dist/index.html +40 -0
- package/dist/ui/dist/placeholder.svg +1 -0
- package/dist/ui/index.html +6 -6
- package/package.json +138 -13
- package/packages/cli/src/adapters/binary.ts +461 -0
- package/packages/cli/src/adapters/bun-global.ts +378 -0
- package/packages/cli/src/adapters/config.ts +314 -0
- package/packages/cli/src/adapters/docker.ts +308 -0
- package/packages/cli/src/adapters/factory.ts +168 -0
- package/packages/cli/src/adapters/index.ts +80 -0
- package/packages/cli/src/adapters/types.ts +218 -0
- package/packages/cli/src/commands/agent-run.ts +168 -0
- package/packages/cli/src/commands/agents.ts +398 -0
- package/packages/cli/src/commands/chat.ts +142 -0
- package/packages/cli/src/commands/config.ts +49 -0
- package/packages/cli/src/commands/cron.ts +487 -0
- package/packages/cli/src/commands/dev.ts +58 -0
- package/packages/cli/src/commands/doctor.ts +320 -0
- package/packages/cli/src/commands/gateway.ts +719 -0
- package/packages/cli/src/commands/logs.ts +57 -0
- package/packages/cli/src/commands/mcp.ts +175 -0
- package/packages/cli/src/commands/message.ts +77 -0
- package/packages/cli/src/commands/migrate.ts +90 -0
- package/packages/cli/src/commands/onboard.ts +1656 -0
- package/packages/cli/src/commands/security.ts +144 -0
- package/packages/cli/src/commands/service.ts +50 -0
- package/packages/cli/src/commands/sessions.ts +116 -0
- package/packages/cli/src/commands/skills.ts +215 -0
- package/packages/cli/src/commands/update.ts +203 -0
- package/packages/cli/src/index.ts +210 -0
- package/packages/cli/src/ui-bundle.generated.ts +3 -0
- package/packages/cli/src/utils/token.ts +6 -0
- package/packages/core/src/agent/agent-loop.ts +691 -0
- package/packages/core/src/agent/compaction.ts +240 -0
- package/packages/core/src/agent/context-compiler.ts +467 -0
- package/packages/core/src/agent/context-guard.ts +91 -0
- package/packages/core/src/agent/conversation-store.ts +244 -0
- package/packages/core/src/agent/curator.ts +158 -0
- package/packages/core/src/agent/hooks.ts +166 -0
- package/packages/core/src/agent/llm-client.ts +167 -0
- package/packages/core/src/agent/llm-providers/anthropic.ts +212 -0
- package/packages/core/src/agent/llm-providers/deepseek.ts +8 -0
- package/packages/core/src/agent/llm-providers/gemini.ts +215 -0
- package/packages/core/src/agent/llm-providers/groq.ts +5 -0
- package/packages/core/src/agent/llm-providers/interface.ts +195 -0
- package/packages/core/src/agent/llm-providers/kimi.ts +8 -0
- package/packages/core/src/agent/llm-providers/local-llama.ts +37 -0
- package/packages/core/src/agent/llm-providers/mistral.ts +5 -0
- package/packages/core/src/agent/llm-providers/nvidia.ts +5 -0
- package/packages/core/src/agent/llm-providers/ollama.ts +175 -0
- package/packages/core/src/agent/llm-providers/openai-compat-base.ts +379 -0
- package/packages/core/src/agent/llm-providers/openai.ts +5 -0
- package/packages/core/src/agent/llm-providers/openrouter.ts +5 -0
- package/packages/core/src/agent/llm-providers/qwen.ts +5 -0
- package/packages/core/src/agent/native-tools.ts +31 -0
- package/packages/core/src/agent/playbook-selector.ts +147 -0
- package/packages/core/src/agent/prompt-builder.ts +169 -0
- package/packages/core/src/agent/providers/index.ts +204 -0
- package/packages/core/src/agent/providers.ts +1 -0
- package/packages/core/src/agent/reflector.ts +200 -0
- package/packages/core/src/agent/service.ts +267 -0
- package/packages/core/src/agent/skill-selector.ts +479 -0
- package/packages/core/src/agent/stuck-loop.ts +133 -0
- package/packages/core/src/agent/tool-selector.ts +569 -0
- package/packages/core/src/agent/tracer.ts +100 -0
- package/packages/core/src/auth/auth.ts +108 -0
- package/packages/core/src/auth/index.ts +1 -0
- package/packages/core/src/canvas/a2ui-tools.ts +255 -0
- package/packages/core/src/canvas/canvas-manager.ts +390 -0
- package/packages/core/src/canvas/canvas-tools.ts +448 -0
- package/packages/core/src/canvas/emitter.ts +149 -0
- package/packages/core/src/canvas/index.ts +3 -0
- package/packages/core/src/channels/base.ts +154 -0
- package/packages/core/src/channels/discord.ts +273 -0
- package/packages/core/src/channels/index.ts +7 -0
- package/packages/core/src/channels/manager.ts +450 -0
- package/packages/core/src/channels/slack.ts +323 -0
- package/packages/core/src/channels/telegram.ts +612 -0
- package/packages/core/src/channels/webchat.ts +139 -0
- package/packages/core/src/channels/whatsapp.ts +548 -0
- package/packages/core/src/config/index.ts +12 -0
- package/packages/core/src/config/loader.ts +569 -0
- package/packages/core/src/events/agent-bus.ts +460 -0
- package/packages/core/src/events/event-bus.ts +169 -0
- package/packages/core/src/gateway/channel-notify.ts +64 -0
- package/packages/core/src/gateway/helpers/cors.ts +32 -0
- package/packages/core/src/gateway/helpers/index.ts +4 -0
- package/packages/core/src/gateway/helpers/narration.ts +57 -0
- package/packages/core/src/gateway/helpers/path.ts +13 -0
- package/packages/core/src/gateway/helpers/redact.ts +61 -0
- package/packages/core/src/gateway/index.ts +5 -0
- package/packages/core/src/gateway/initializer.ts +363 -0
- package/packages/core/src/gateway/lane-queue.ts +169 -0
- package/packages/core/src/gateway/llm-local/client.ts +94 -0
- package/packages/core/src/gateway/llm-local/detector.ts +321 -0
- package/packages/core/src/gateway/llm-local/downloader.ts +216 -0
- package/packages/core/src/gateway/llm-local/index.ts +34 -0
- package/packages/core/src/gateway/llm-local/manager.ts +186 -0
- package/packages/core/src/gateway/llm-local/models.ts +149 -0
- package/packages/core/src/gateway/llm-local/server.ts +179 -0
- package/packages/core/src/gateway/resolver.ts +108 -0
- package/packages/core/src/gateway/router.ts +124 -0
- package/packages/core/src/gateway/routes/agents.ts +210 -0
- package/packages/core/src/gateway/routes/auth.ts +244 -0
- package/packages/core/src/gateway/routes/channels.ts +484 -0
- package/packages/core/src/gateway/routes/chat.ts +241 -0
- package/packages/core/src/gateway/routes/config.ts +12 -0
- package/packages/core/src/gateway/routes/cron-api.ts +544 -0
- package/packages/core/src/gateway/routes/ethics.ts +46 -0
- package/packages/core/src/gateway/routes/llm-local.ts +271 -0
- package/packages/core/src/gateway/routes/mcp.ts +319 -0
- package/packages/core/src/gateway/routes/meeting.ts +232 -0
- package/packages/core/src/gateway/routes/models.ts +163 -0
- package/packages/core/src/gateway/routes/multimodal.ts +93 -0
- package/packages/core/src/gateway/routes/providers.ts +220 -0
- package/packages/core/src/gateway/routes/setup.ts +441 -0
- package/packages/core/src/gateway/routes/skills.ts +115 -0
- package/packages/core/src/gateway/routes/system.ts +469 -0
- package/packages/core/src/gateway/routes/tasks.ts +44 -0
- package/packages/core/src/gateway/routes/tools.ts +59 -0
- package/packages/core/src/gateway/routes/tts-local.ts +388 -0
- package/packages/core/src/gateway/routes/users.ts +122 -0
- package/packages/core/src/gateway/routes/voice.ts +189 -0
- package/packages/core/src/gateway/routes/workspace.ts +281 -0
- package/packages/core/src/gateway/server.ts +2744 -0
- package/packages/core/src/gateway/session.ts +95 -0
- package/packages/core/src/gateway/slash-commands.ts +207 -0
- package/packages/core/src/gateway/tts/README.md +94 -0
- package/packages/core/src/gateway/tts/package.json +25 -0
- package/packages/core/src/gateway/tts/src/client.ts +59 -0
- package/packages/core/src/gateway/tts/src/detect.ts +42 -0
- package/packages/core/src/gateway/tts/src/index.ts +15 -0
- package/packages/core/src/gateway/tts/src/install.ts +129 -0
- package/packages/core/src/gateway/tts/src/models.ts +50 -0
- package/packages/core/src/gateway/tts/src/server.ts +252 -0
- package/packages/core/src/gateway/tts/voices/.gitkeep +0 -0
- package/packages/core/src/heartbeat/index.ts +157 -0
- package/packages/core/src/index.ts +56 -0
- package/packages/core/src/mcp/hot-reload.ts +148 -0
- package/packages/core/src/mcp/singleton.ts +21 -0
- package/packages/core/src/mcp/tool-sync.ts +176 -0
- package/packages/core/src/multimodal/index.ts +2 -0
- package/packages/core/src/multimodal/types.ts +28 -0
- package/packages/core/src/multimodal/vision-service.ts +283 -0
- package/packages/core/src/plugins/api.ts +128 -0
- package/packages/core/src/plugins/index.ts +2 -0
- package/packages/core/src/plugins/loader.ts +365 -0
- package/packages/core/src/resilience/circuit-breaker.ts +225 -0
- package/packages/core/src/scheduler/CronScheduler.ts +699 -0
- package/packages/core/src/scheduler/dag/AgentExecutor.ts +53 -0
- package/packages/core/src/scheduler/dag/DAGScheduler.ts +250 -0
- package/packages/core/src/scheduler/dag/EventBridge.ts +122 -0
- package/packages/core/src/scheduler/dag/TaskGraph.ts +192 -0
- package/packages/core/src/scheduler/dag/TaskNode.ts +97 -0
- package/packages/core/src/scheduler/dag/TaskResult.ts +22 -0
- package/packages/core/src/scheduler/dag/errors.ts +37 -0
- package/packages/core/src/scheduler/dag/index.ts +26 -0
- package/packages/core/src/scheduler/dag/presets/ResearchPreset.ts +97 -0
- package/packages/core/src/scheduler/dag/strategies/ParallelStrategy.ts +21 -0
- package/packages/core/src/scheduler/dag/strategies/PriorityStrategy.ts +46 -0
- package/packages/core/src/scheduler/index.ts +22 -0
- package/packages/core/src/scheduler/integration.ts +237 -0
- package/packages/core/src/scheduler/types.ts +164 -0
- package/packages/core/src/security/google-chat.ts +269 -0
- package/packages/core/src/security/index.ts +192 -0
- package/packages/core/src/security/pairing.ts +250 -0
- package/packages/core/src/security/rate-limit.ts +270 -0
- package/packages/core/src/security/signal.ts +321 -0
- package/packages/core/src/state/store.ts +312 -0
- package/packages/core/src/storage/crypto.ts +197 -0
- package/packages/core/src/storage/migrate.ts +147 -0
- package/packages/core/src/storage/onboarding.ts +1506 -0
- package/packages/core/src/storage/schema.ts +666 -0
- package/packages/core/src/storage/seed.ts +628 -0
- package/packages/core/src/storage/sqlite.ts +407 -0
- package/packages/core/src/storage/usage.ts +374 -0
- package/packages/core/src/tool-runtime/index.ts +502 -0
- package/packages/core/src/tool-runtime/tool-worker.ts +125 -0
- package/packages/core/src/tools/agents/get-available-models.ts +118 -0
- package/packages/core/src/tools/agents/index.ts +610 -0
- package/packages/core/src/tools/canvas/index.ts +420 -0
- package/packages/core/src/tools/cli/index.ts +142 -0
- package/packages/core/src/tools/core/index.ts +478 -0
- package/packages/core/src/tools/cron/index.ts +635 -0
- package/packages/core/src/tools/filesystem/fs-delete.ts +78 -0
- package/packages/core/src/tools/filesystem/fs-edit.ts +106 -0
- package/packages/core/src/tools/filesystem/fs-exists.ts +63 -0
- package/packages/core/src/tools/filesystem/fs-glob.ts +108 -0
- package/packages/core/src/tools/filesystem/fs-list.ts +129 -0
- package/packages/core/src/tools/filesystem/fs-read.ts +72 -0
- package/packages/core/src/tools/filesystem/fs-write.ts +67 -0
- package/packages/core/src/tools/filesystem/index.ts +34 -0
- package/packages/core/src/tools/filesystem/workspace-guard.ts +62 -0
- package/packages/core/src/tools/index.ts +197 -0
- package/packages/core/src/tools/meeting/index.ts +363 -0
- package/packages/core/src/tools/office/index.ts +47 -0
- package/packages/core/src/tools/office/office-escribir-docx.ts +192 -0
- package/packages/core/src/tools/office/office-escribir-pdf.ts +172 -0
- package/packages/core/src/tools/office/office-escribir-pptx.ts +174 -0
- package/packages/core/src/tools/office/office-escribir-xlsx.ts +116 -0
- package/packages/core/src/tools/office/office-leer-docx.ts +93 -0
- package/packages/core/src/tools/office/office-leer-pdf.ts +114 -0
- package/packages/core/src/tools/office/office-leer-pptx.ts +136 -0
- package/packages/core/src/tools/office/office-leer-xlsx.ts +124 -0
- package/packages/core/src/tools/types.ts +39 -0
- package/packages/core/src/tools/voice/index.ts +104 -0
- package/packages/core/src/tools/web/browser-click.ts +78 -0
- package/packages/core/src/tools/web/browser-extract.ts +139 -0
- package/packages/core/src/tools/web/browser-navigate.ts +106 -0
- package/packages/core/src/tools/web/browser-screenshot.ts +87 -0
- package/packages/core/src/tools/web/browser-script.ts +88 -0
- package/packages/core/src/tools/web/browser-service.ts +554 -0
- package/packages/core/src/tools/web/browser-type.ts +101 -0
- package/packages/core/src/tools/web/browser-wait.ts +136 -0
- package/packages/core/src/tools/web/index.ts +41 -0
- package/packages/core/src/tools/web/web-fetch.ts +78 -0
- package/packages/core/src/tools/web/web-search.ts +123 -0
- package/packages/core/src/utils/benchmark.ts +80 -0
- package/packages/core/src/utils/crypto.ts +73 -0
- package/packages/core/src/utils/date.ts +42 -0
- package/packages/core/src/utils/index.ts +5 -0
- package/packages/core/src/utils/logger.ts +389 -0
- package/packages/core/src/utils/retry.ts +70 -0
- package/packages/core/src/utils/toon.ts +253 -0
- package/packages/core/src/voice/index.ts +643 -0
- package/packages/mcp/src/config.ts +13 -0
- package/packages/mcp/src/index.ts +1 -0
- package/packages/mcp/src/logger.ts +47 -0
- package/packages/mcp/src/manager.ts +439 -0
- package/packages/mcp/src/transports/index.ts +67 -0
- package/packages/mcp/src/transports/sse.ts +238 -0
- package/packages/mcp/src/transports/websocket.ts +159 -0
- package/packages/skills/src/bundled/agents/agent_spawner/SKILL.md +167 -0
- package/packages/skills/src/bundled/agents/code_delegator/SKILL.md +156 -0
- package/packages/skills/src/bundled/agents/memory_manager/SKILL.md +143 -0
- package/packages/skills/src/bundled/agents/research_and_remember/SKILL.md +139 -0
- package/packages/skills/src/bundled/agents/task_orchestrator/SKILL.md +198 -0
- package/packages/skills/src/bundled/canvas/a2ui_dashboard/SKILL.md +176 -0
- package/packages/skills/src/bundled/canvas/a2ui_form/SKILL.md +202 -0
- package/packages/skills/src/bundled/canvas/a2ui_interactive/SKILL.md +206 -0
- package/packages/skills/src/bundled/canvas/canvas_dashboard/SKILL.md +146 -0
- package/packages/skills/src/bundled/canvas/canvas_interact/SKILL.md +148 -0
- package/packages/skills/src/bundled/canvas/canvas_report/SKILL.md +146 -0
- package/packages/skills/src/bundled/cli/cli_pipeline/SKILL.md +136 -0
- package/packages/skills/src/bundled/cli/cli_safe_exec/SKILL.md +125 -0
- package/packages/skills/src/bundled/cron_manager/SKILL.md +188 -0
- package/packages/skills/src/bundled/cron_reminder/SKILL.md +112 -0
- package/packages/skills/src/bundled/filesystem/file_manager/SKILL.md +118 -0
- package/packages/skills/src/bundled/filesystem/file_read_and_summarize/SKILL.md +108 -0
- package/packages/skills/src/bundled/filesystem/file_writer/SKILL.md +135 -0
- package/packages/skills/src/bundled/meeting/meeting_transcription/SKILL.md +213 -0
- package/packages/skills/src/bundled/office/office_document_manager/SKILL.md +262 -0
- package/packages/skills/src/bundled/search_knowledge/busqueda_fts5/SKILL.md +74 -0
- package/packages/skills/src/bundled/voice/voice_assistant/SKILL.md +174 -0
- package/packages/skills/src/bundled/voice/voice_input/SKILL.md +146 -0
- package/packages/skills/src/bundled/voice/voice_output/SKILL.md +151 -0
- package/packages/skills/src/bundled/web/browser_automate/SKILL.md +120 -0
- package/packages/skills/src/bundled/web/browser_scrape/SKILL.md +109 -0
- package/packages/skills/src/bundled/web/web_monitor/SKILL.md +127 -0
- package/packages/skills/src/bundled/web/web_research/SKILL.md +119 -0
- package/packages/skills/src/bundled-data.generated.ts +1964 -0
- package/packages/skills/src/index.ts +1 -0
- package/packages/skills/src/loader.ts +388 -0
- package/dist/ui/assets/AgentNewPage-GB-tVN50.js +0 -1
- package/dist/ui/assets/BridgePage-DDcDILKu.js +0 -1
- package/dist/ui/assets/CanvasPage-oOk2sGOD.js +0 -33
- package/dist/ui/assets/DashboardPage-DV_2qWYJ.js +0 -6
- package/dist/ui/assets/LogsPage-DayYjh01.js +0 -1
- package/dist/ui/assets/MeetingPage-C01uPuqj.js +0 -1
- package/dist/ui/assets/ProjectsPage-B8_am_Ib.js +0 -1
- package/dist/ui/assets/ProvidersPage-DBzi66e4.js +0 -1
- package/dist/ui/assets/SettingsPage-CFA_Tknl.js +0 -9
- package/dist/ui/assets/SetupPage-BrUWbhvT.js +0 -1
- package/dist/ui/assets/accordion-DdAEfIXR.js +0 -1
- package/dist/ui/assets/chevron-down-DIosfU_U.js +0 -1
- package/dist/ui/assets/chevron-up-CI-W21Fy.js +0 -1
- package/dist/ui/assets/circle-S0-ouLz-.js +0 -1
- package/dist/ui/assets/circle-minus-CE0iJrl8.js +0 -1
- package/dist/ui/assets/circle-x-jUJ5zZvQ.js +0 -1
- package/dist/ui/assets/dropdown-menu-C2CXM1VE.js +0 -1
- package/dist/ui/assets/index-BN0875JH.css +0 -2
- package/dist/ui/assets/index-CH6sBa3Q.js +0 -116
- package/dist/ui/assets/pencil-5VdSj-h5.js +0 -1
- package/dist/ui/assets/progress-JN30I5fF.js +0 -1
- package/dist/ui/assets/scroll-area-BQQPitM8.js +0 -1
- package/dist/ui/assets/search-ChPgnVKj.js +0 -1
- package/dist/ui/assets/switch-C7W2-KEx.js +0 -1
- package/dist/ui/assets/terminal-C-R5Fckz.js +0 -1
- package/dist/ui/assets/useProviders-TBnWn-Hq.js +0 -1
- /package/dist/ui/assets/{card-DFKnZ6ky.js → card-CNf6BS2e.js} +0 -0
- /package/dist/ui/assets/{circle-alert-KuAm2FWh.js → circle-alert-CyHDwUj8.js} +0 -0
- /package/dist/ui/assets/{circle-check-6Ard1-2z.js → circle-check-Bb54Ebmu.js} +0 -0
- /package/dist/ui/assets/{cpu-KDy6-FAI.js → cpu-Cdgc_B1K.js} +0 -0
- /package/dist/ui/assets/{download-Cjbk4Rek.js → download-C3ifGMjJ.js} +0 -0
- /package/dist/ui/assets/{external-link-HtrFM63g.js → external-link-BvxYeTP1.js} +0 -0
- /package/dist/ui/assets/{eye-D1dB40_o.js → eye-DqNTU_GD.js} +0 -0
- /package/dist/ui/assets/{file-text-CE58EfH0.js → file-text-BT_9S9SM.js} +0 -0
- /package/dist/ui/assets/{folder-open-DIPKeiI_.js → folder-open-BhH8y9ac.js} +0 -0
- /package/dist/ui/assets/{format-BwdV8bB5.js → format-GVHeOyWI.js} +0 -0
- /package/dist/ui/assets/{gateway-url-D5uj6Nxg.js → gateway-url-COCbW0IR.js} +0 -0
- /package/dist/ui/assets/{gauge-DmQmJHEg.js → gauge-D_TMa4i9.js} +0 -0
- /package/dist/ui/assets/{globe-_hUGxQF4.js → globe-DeCQTCDJ.js} +0 -0
- /package/dist/ui/assets/{hexagon-BaNGQlQj.js → hexagon-DsGOUl-H.js} +0 -0
- /package/dist/ui/assets/{history-BfZVGlZa.js → history-BSG-Ypqf.js} +0 -0
- /package/dist/ui/assets/{info-CBZ5-AlC.js → info-NwLoa2Mj.js} +0 -0
- /package/dist/ui/assets/{key-Bv5DdTPh.js → key-3EP0dhkT.js} +0 -0
- /package/dist/ui/assets/{loader-circle-C4hhXLgp.js → loader-circle-CZNax6kS.js} +0 -0
- /package/dist/ui/assets/{lock-CkZYexqw.js → lock-Ei1_J-Nq.js} +0 -0
- /package/dist/ui/assets/{pause-Bpy1_s7y.js → pause-BUqah9Bi.js} +0 -0
- /package/dist/ui/assets/{play-Cj4osqJZ.js → play-NcZ4swwL.js} +0 -0
- /package/dist/ui/assets/{plus-BQhgZN3A.js → plus-CX1xyhp5.js} +0 -0
- /package/dist/ui/assets/{refresh-cw-BfREHVQM.js → refresh-cw-DaYdjQFk.js} +0 -0
- /package/dist/ui/assets/{save-FFTD4dMp.js → save-CUdYyHNy.js} +0 -0
- /package/dist/ui/assets/{settings-BdHKUL92.js → settings-Ds4SqD8s.js} +0 -0
- /package/dist/ui/assets/{sparkles-r4uJbJAl.js → sparkles-yUEb-7oH.js} +0 -0
- /package/dist/ui/assets/{square-G7Hyufqm.js → square-BD81nFtN.js} +0 -0
- /package/dist/ui/assets/{textarea-5kyuD04X.js → textarea-CXgXWKrT.js} +0 -0
- /package/dist/ui/assets/{trash-2-DXVBRWfh.js → trash-2-CNjMkoq6.js} +0 -0
- /package/dist/ui/assets/{triangle-alert-Bu5seg9O.js → triangle-alert-C9Y8Ub4X.js} +0 -0
- /package/dist/ui/assets/{vendor-router-CCECILJ0.js → vendor-router-C9pIYwbJ.js} +0 -0
- /package/dist/ui/assets/{volume-2-s9DuS696.js → volume-2-CeSXNDv4.js} +0 -0
- /package/dist/ui/assets/{zap-BPHZzXKV.js → zap-hlXjpSeA.js} +0 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: voice_assistant
|
|
3
|
+
description: "Full voice-to-voice interaction: transcribe user speech, process request, and respond with synthesized speech"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Hive Team
|
|
6
|
+
icon: "🎙️🔊"
|
|
7
|
+
category: voice
|
|
8
|
+
permissions:
|
|
9
|
+
- voice_transcribe
|
|
10
|
+
- voice_speak
|
|
11
|
+
dependencies: []
|
|
12
|
+
tools: [voice_transcribe, voice_speak]
|
|
13
|
+
|
|
14
|
+
# Structured skill fields
|
|
15
|
+
triggers:
|
|
16
|
+
- "modo voz"
|
|
17
|
+
- "voice mode"
|
|
18
|
+
- "asistente de voz"
|
|
19
|
+
- "voice assistant"
|
|
20
|
+
- "hablá conmigo"
|
|
21
|
+
- "talk to me"
|
|
22
|
+
- "interacción por voz"
|
|
23
|
+
- "voice interaction"
|
|
24
|
+
- "respuesta hablada"
|
|
25
|
+
- "spoken response"
|
|
26
|
+
- "comando de voz"
|
|
27
|
+
- "voice command"
|
|
28
|
+
- "diálogo por voz"
|
|
29
|
+
- "voice dialogue"
|
|
30
|
+
|
|
31
|
+
preferred_agents: []
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- step: 1
|
|
35
|
+
action: voice_transcribe
|
|
36
|
+
instruction: "Transcribe user's voice input to text"
|
|
37
|
+
params:
|
|
38
|
+
audio: "user audio input"
|
|
39
|
+
output: user_text
|
|
40
|
+
|
|
41
|
+
- step: 2
|
|
42
|
+
action: process_request
|
|
43
|
+
instruction: "Process transcribed text and generate appropriate response"
|
|
44
|
+
params:
|
|
45
|
+
text: "transcribed user request"
|
|
46
|
+
output: response_text
|
|
47
|
+
|
|
48
|
+
- step: 3
|
|
49
|
+
action: voice_speak
|
|
50
|
+
instruction: "Synthesize response text to speech"
|
|
51
|
+
params:
|
|
52
|
+
text: "response text"
|
|
53
|
+
voice_id: "configured voice"
|
|
54
|
+
output: response_audio
|
|
55
|
+
|
|
56
|
+
- step: 4
|
|
57
|
+
action: deliver_response
|
|
58
|
+
instruction: "Send synthesized speech back to user"
|
|
59
|
+
output: delivered
|
|
60
|
+
|
|
61
|
+
rules:
|
|
62
|
+
- "Maintain conversation context across voice exchanges"
|
|
63
|
+
- "Keep responses concise for voice (avoid long paragraphs)"
|
|
64
|
+
- "Use natural, conversational tone optimized for speech"
|
|
65
|
+
- "Handle interruptions gracefully (if streaming supported)"
|
|
66
|
+
- "Indicate when processing (typing indicators, sounds)"
|
|
67
|
+
- "Fallback to text if voice fails at any step"
|
|
68
|
+
|
|
69
|
+
output_format:
|
|
70
|
+
structure: audio_with_text
|
|
71
|
+
sections:
|
|
72
|
+
- "audio_response"
|
|
73
|
+
- "text_fallback"
|
|
74
|
+
- "conversation_context"
|
|
75
|
+
max_length: "Short, natural speech responses (30-60 seconds max)"
|
|
76
|
+
|
|
77
|
+
examples:
|
|
78
|
+
- user_input: "[audio] ¿Cuál es el clima hoy?"
|
|
79
|
+
expected_behavior: "Transcribe → process weather query → respond with voice synthesis"
|
|
80
|
+
|
|
81
|
+
- user_input: "[audio] Contame un chiste"
|
|
82
|
+
expected_behavior: "Transcribe → generate joke → speak response with appropriate timing"
|
|
83
|
+
|
|
84
|
+
- user_input: "activá el modo voz"
|
|
85
|
+
expected_behavior: "Enable voice mode → all future responses include audio synthesis"
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
# Voice Assistant Skill
|
|
89
|
+
|
|
90
|
+
## Cuándo se Activa
|
|
91
|
+
|
|
92
|
+
Esta skill se activa para interacción completa voz a voz: el usuario habla, el asistente procesa y responde con voz.
|
|
93
|
+
|
|
94
|
+
## Herramientas Disponibles
|
|
95
|
+
|
|
96
|
+
| Tool | Qué hace | Cuándo usarla |
|
|
97
|
+
|------|----------|---------------|
|
|
98
|
+
| `voice_transcribe` | Audio → texto | Input del usuario |
|
|
99
|
+
| `voice_speak` | Texto → audio | Respuesta del asistente |
|
|
100
|
+
|
|
101
|
+
## Workflow
|
|
102
|
+
|
|
103
|
+
### Voice-to-Voice
|
|
104
|
+
```javascript
|
|
105
|
+
// 1. Usuario habla
|
|
106
|
+
const userAudio = receiveAudio()
|
|
107
|
+
|
|
108
|
+
// 2. Transcribir
|
|
109
|
+
const userText = voice_transcribe({
|
|
110
|
+
audio: userAudio,
|
|
111
|
+
language: "auto"
|
|
112
|
+
})
|
|
113
|
+
// → "¿Cuál es el clima hoy?"
|
|
114
|
+
|
|
115
|
+
// 3. Procesar request
|
|
116
|
+
// - Entender intención
|
|
117
|
+
// - Ejecutar acción (ej. consultar API clima)
|
|
118
|
+
// - Generar respuesta
|
|
119
|
+
const responseText = "Hoy hay 25 grados y soleado en Buenos Aires"
|
|
120
|
+
|
|
121
|
+
// 4. Sintetizar respuesta
|
|
122
|
+
const responseAudio = voice_speak({
|
|
123
|
+
text: responseText,
|
|
124
|
+
voice_id: "eleven_flash_v2_5",
|
|
125
|
+
language: "es"
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
// 5. Enviar audio
|
|
129
|
+
sendAudio(responseAudio)
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Casos de Uso
|
|
133
|
+
|
|
134
|
+
| Caso | Flujo |
|
|
135
|
+
|------|-------|
|
|
136
|
+
| Pregunta simple | Transcribe → responde → sintetiza |
|
|
137
|
+
| Comando | Transcribe → ejecuta → confirma por voz |
|
|
138
|
+
| Diálogo | Mantener contexto entre exchanges |
|
|
139
|
+
| Wake word | Escuchar "hey bee" → activar → procesar |
|
|
140
|
+
|
|
141
|
+
## Configuración
|
|
142
|
+
|
|
143
|
+
### Wake Word
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"voice_wake_word": "hey bee",
|
|
147
|
+
"voice_wake_enabled": true
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Canal Voice
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"voice_enabled": true,
|
|
155
|
+
"tts_enabled": true,
|
|
156
|
+
"stt_provider": "groq-whisper",
|
|
157
|
+
"tts_provider": "elevenlabs",
|
|
158
|
+
"tts_voice_id": "eleven_flash_v2_5"
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Mejores Prácticas
|
|
163
|
+
|
|
164
|
+
- Respuestas cortas y naturales (<60s)
|
|
165
|
+
- Mantener contexto conversacional
|
|
166
|
+
- Indicadores de procesamiento
|
|
167
|
+
- Fallback a texto si falla voz
|
|
168
|
+
|
|
169
|
+
## Errores a Evitar
|
|
170
|
+
|
|
171
|
+
- ❌ Respuestas muy largas para audio
|
|
172
|
+
- ❌ Perder contexto entre exchanges
|
|
173
|
+
- ❌ No indicar que está procesando
|
|
174
|
+
- ❌ No tener fallback si falla TTS/STT
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: voice_input
|
|
3
|
+
description: "Transcribe audio input to text using STT (Speech-to-Text) providers like Groq Whisper or OpenAI Whisper"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Hive Team
|
|
6
|
+
icon: "🎙️"
|
|
7
|
+
category: voice
|
|
8
|
+
permissions:
|
|
9
|
+
- voice_transcribe
|
|
10
|
+
dependencies: []
|
|
11
|
+
tools: [voice_transcribe]
|
|
12
|
+
|
|
13
|
+
# Structured skill fields
|
|
14
|
+
triggers:
|
|
15
|
+
- "transcribí este audio"
|
|
16
|
+
- "transcribe audio"
|
|
17
|
+
- "convertí voz a texto"
|
|
18
|
+
- "convert voice to text"
|
|
19
|
+
- "qué dice el audio"
|
|
20
|
+
- "what does audio say"
|
|
21
|
+
- "escuchá esto"
|
|
22
|
+
- "listen to this"
|
|
23
|
+
- "audio a texto"
|
|
24
|
+
- "audio to text"
|
|
25
|
+
- "reconocimiento de voz"
|
|
26
|
+
- "speech recognition"
|
|
27
|
+
- "nota de voz"
|
|
28
|
+
- "voice note"
|
|
29
|
+
|
|
30
|
+
preferred_agents: []
|
|
31
|
+
|
|
32
|
+
steps:
|
|
33
|
+
- step: 1
|
|
34
|
+
action: receive_audio
|
|
35
|
+
instruction: "Receive audio file or stream from user"
|
|
36
|
+
params:
|
|
37
|
+
source: "file upload | voice message | stream"
|
|
38
|
+
output: audio_data
|
|
39
|
+
|
|
40
|
+
- step: 2
|
|
41
|
+
action: voice_transcribe
|
|
42
|
+
instruction: "Send audio to STT provider for transcription"
|
|
43
|
+
params:
|
|
44
|
+
audio: "audio buffer or file path"
|
|
45
|
+
language: "auto-detect or specified"
|
|
46
|
+
output: transcription
|
|
47
|
+
|
|
48
|
+
- step: 3
|
|
49
|
+
action: synthesize
|
|
50
|
+
instruction: "Format transcription with punctuation and structure"
|
|
51
|
+
output: formatted_text
|
|
52
|
+
|
|
53
|
+
- step: 4
|
|
54
|
+
action: deliver_result
|
|
55
|
+
instruction: "Return transcription to user"
|
|
56
|
+
output: delivered
|
|
57
|
+
|
|
58
|
+
rules:
|
|
59
|
+
- "Auto-detect language when not specified"
|
|
60
|
+
- "Add punctuation and capitalization for readability"
|
|
61
|
+
- "Indicate speaker changes if multi-speaker audio"
|
|
62
|
+
- "Mark unclear segments with [inaudible] or [unclear]"
|
|
63
|
+
- "Preserve original language unless translation requested"
|
|
64
|
+
- "Handle background noise gracefully — note if affects quality"
|
|
65
|
+
|
|
66
|
+
output_format:
|
|
67
|
+
structure: markdown
|
|
68
|
+
sections:
|
|
69
|
+
- "transcription"
|
|
70
|
+
- "language_detected"
|
|
71
|
+
- "duration"
|
|
72
|
+
- "confidence"
|
|
73
|
+
- "notes"
|
|
74
|
+
max_length: "Full transcription with timestamps if long"
|
|
75
|
+
|
|
76
|
+
examples:
|
|
77
|
+
- user_input: "[envía audio] transcribí esto"
|
|
78
|
+
expected_behavior: "voice_transcribe → return text transcription with punctuation"
|
|
79
|
+
|
|
80
|
+
- user_input: "convertí esta nota de voz a texto"
|
|
81
|
+
expected_behavior: "voice_transcribe → return formatted transcription"
|
|
82
|
+
|
|
83
|
+
- user_input: "qué dice este audio"
|
|
84
|
+
expected_behavior: "voice_transcribe → summarize if very long, full transcription if short"
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
# Voice Input Skill
|
|
88
|
+
|
|
89
|
+
## Cuándo se Activa
|
|
90
|
+
|
|
91
|
+
Esta skill se activa cuando el usuario envía audio y necesita transcripción a texto: notas de voz, grabaciones, comandos de voz.
|
|
92
|
+
|
|
93
|
+
## Herramientas Disponibles
|
|
94
|
+
|
|
95
|
+
| Tool | Qué hace | Cuándo usarla |
|
|
96
|
+
|------|----------|---------------|
|
|
97
|
+
| `voice_transcribe` | Convierte audio → texto | Transcripción de cualquier audio |
|
|
98
|
+
|
|
99
|
+
## Workflow
|
|
100
|
+
|
|
101
|
+
### Transcripción
|
|
102
|
+
```javascript
|
|
103
|
+
// 1. Recibir audio
|
|
104
|
+
// - File upload
|
|
105
|
+
// - Voice message (Telegram, WhatsApp)
|
|
106
|
+
// - Stream en vivo
|
|
107
|
+
|
|
108
|
+
// 2. Transcribir
|
|
109
|
+
const result = voice_transcribe({
|
|
110
|
+
audio: audioBuffer,
|
|
111
|
+
language: "es" // o "auto" para detectar
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
// 3. Formatear
|
|
115
|
+
// - Agregar puntuación
|
|
116
|
+
// - Capitalizar
|
|
117
|
+
// - Marcar speakers si hay múltiples
|
|
118
|
+
|
|
119
|
+
// 4. Entregar resultado
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Proveedores STT Soportados
|
|
123
|
+
|
|
124
|
+
| Provider | Modelos | Idiomas |
|
|
125
|
+
|----------|---------|---------|
|
|
126
|
+
| Groq | whisper-large-v3, turbo | Multi |
|
|
127
|
+
| OpenAI | whisper-1 | Multi |
|
|
128
|
+
|
|
129
|
+
## Configuración por Canal
|
|
130
|
+
|
|
131
|
+
Cada canal puede configurar su proveedor STT preferido:
|
|
132
|
+
- `stt_provider`: "groq-whisper" | "openai-whisper"
|
|
133
|
+
|
|
134
|
+
## Mejores Prácticas
|
|
135
|
+
|
|
136
|
+
- Detectar idioma automáticamente
|
|
137
|
+
- Agregar puntuación para legibilidad
|
|
138
|
+
- Marcar segmentos inaudibles
|
|
139
|
+
- Preservar idioma original
|
|
140
|
+
|
|
141
|
+
## Errores a Evitar
|
|
142
|
+
|
|
143
|
+
- ❌ Traducir sin pedir (mantener idioma)
|
|
144
|
+
- ❌ Omitir puntuación
|
|
145
|
+
- ❌ No indicar baja confianza
|
|
146
|
+
- ❌ Ignorar ruido de fondo que afecta calidad
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: voice_output
|
|
3
|
+
description: "Convert text to synthesized speech using TTS (Text-to-Speech) providers like ElevenLabs, OpenAI TTS, or Gemini TTS"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Hive Team
|
|
6
|
+
icon: "🔊"
|
|
7
|
+
category: voice
|
|
8
|
+
permissions:
|
|
9
|
+
- voice_speak
|
|
10
|
+
dependencies: []
|
|
11
|
+
tools: [voice_speak]
|
|
12
|
+
|
|
13
|
+
# Structured skill fields
|
|
14
|
+
triggers:
|
|
15
|
+
- "leé esto en voz alta"
|
|
16
|
+
- "read this aloud"
|
|
17
|
+
- "convertí a voz"
|
|
18
|
+
- "convert to speech"
|
|
19
|
+
- "hablá este texto"
|
|
20
|
+
- "speak this text"
|
|
21
|
+
- "texto a voz"
|
|
22
|
+
- "text to speech"
|
|
23
|
+
- "generá audio"
|
|
24
|
+
- "generate audio"
|
|
25
|
+
- "síntesis de voz"
|
|
26
|
+
- "voice synthesis"
|
|
27
|
+
- "escuchá la respuesta"
|
|
28
|
+
- "listen to response"
|
|
29
|
+
|
|
30
|
+
preferred_agents: []
|
|
31
|
+
|
|
32
|
+
steps:
|
|
33
|
+
- step: 1
|
|
34
|
+
action: receive_text
|
|
35
|
+
instruction: "Receive text content to convert to speech"
|
|
36
|
+
params:
|
|
37
|
+
text: "text to synthesize"
|
|
38
|
+
language: "language code (es, en, etc.)"
|
|
39
|
+
output: text_content
|
|
40
|
+
|
|
41
|
+
- step: 2
|
|
42
|
+
action: optimize_for_speech
|
|
43
|
+
instruction: "Preprocess text for natural speech (expand abbreviations, handle special chars)"
|
|
44
|
+
output: optimized_text
|
|
45
|
+
|
|
46
|
+
- step: 3
|
|
47
|
+
action: voice_speak
|
|
48
|
+
instruction: "Send text to TTS provider for synthesis"
|
|
49
|
+
params:
|
|
50
|
+
text: "optimized text"
|
|
51
|
+
voice_id: "configured voice ID"
|
|
52
|
+
language: "language code"
|
|
53
|
+
output: audio_buffer
|
|
54
|
+
|
|
55
|
+
- step: 4
|
|
56
|
+
action: deliver_audio
|
|
57
|
+
instruction: "Return synthesized audio to user via channel"
|
|
58
|
+
output: delivered
|
|
59
|
+
|
|
60
|
+
rules:
|
|
61
|
+
- "Use configured TTS provider for channel (tts_provider config)"
|
|
62
|
+
- "Respect user's voice preference if set (tts_voice_id)"
|
|
63
|
+
- "Preprocess text: expand numbers, dates, abbreviations for natural speech"
|
|
64
|
+
- "Handle SSML tags if present for prosody control"
|
|
65
|
+
- "Split long text into chunks if exceeds provider limits"
|
|
66
|
+
- "Cache frequently spoken responses to reduce API calls"
|
|
67
|
+
|
|
68
|
+
output_format:
|
|
69
|
+
structure: audio
|
|
70
|
+
sections:
|
|
71
|
+
- "audio_file"
|
|
72
|
+
- "duration"
|
|
73
|
+
- "voice_used"
|
|
74
|
+
- "language"
|
|
75
|
+
max_length: "Audio attachment or file path"
|
|
76
|
+
|
|
77
|
+
examples:
|
|
78
|
+
- user_input: "leé esta respuesta en voz alta"
|
|
79
|
+
expected_behavior: "voice_speak → return audio file with synthesized speech"
|
|
80
|
+
|
|
81
|
+
- user_input: "convertí este texto a audio"
|
|
82
|
+
expected_behavior: "voice_speak → generate and return audio file"
|
|
83
|
+
|
|
84
|
+
- user_input: "respondeme por voz"
|
|
85
|
+
expected_behavior: "Generate response text → voice_speak → send audio"
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
# Voice Output Skill
|
|
89
|
+
|
|
90
|
+
## Cuándo se Activa
|
|
91
|
+
|
|
92
|
+
Esta skill se activa cuando el usuario necesita convertir texto a voz: leer respuestas, generar audio, síntesis de voz.
|
|
93
|
+
|
|
94
|
+
## Herramientas Disponibles
|
|
95
|
+
|
|
96
|
+
| Tool | Qué hace | Cuándo usarla |
|
|
97
|
+
|------|----------|---------------|
|
|
98
|
+
| `voice_speak` | Convierte texto → audio | Síntesis de voz |
|
|
99
|
+
|
|
100
|
+
## Workflow
|
|
101
|
+
|
|
102
|
+
### Text-to-Speech
|
|
103
|
+
```javascript
|
|
104
|
+
// 1. Recibir texto
|
|
105
|
+
const text = "Hola, ¿cómo estás?"
|
|
106
|
+
|
|
107
|
+
// 2. Preprocesar
|
|
108
|
+
// - Expandir números: "5" → "cinco"
|
|
109
|
+
// - Expandir fechas: "01/01" → "primero de enero"
|
|
110
|
+
// - Expandir abbreviaturas: "Dr." → "Doctor"
|
|
111
|
+
|
|
112
|
+
// 3. Sintetizar
|
|
113
|
+
const audio = voice_speak({
|
|
114
|
+
text: optimizedText,
|
|
115
|
+
voice_id: "eleven_flash_v2_5", // o configured voice
|
|
116
|
+
language: "es"
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
// 4. Entregar audio
|
|
120
|
+
// - Enviar como archivo
|
|
121
|
+
// - Streaming si el canal lo soporta
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Proveedores TTS Soportados
|
|
125
|
+
|
|
126
|
+
| Provider | Modelos | Voces |
|
|
127
|
+
|----------|---------|-------|
|
|
128
|
+
| ElevenLabs | Flash V2.5, Turbo V2.5, Multilingual V2, V3 | 1000+ |
|
|
129
|
+
| OpenAI | tts-1, tts-1-hd, gpt-4o-mini-tts | 6+ |
|
|
130
|
+
| Gemini | 2.5 Flash TTS, 2.5 Pro TTS | Multi |
|
|
131
|
+
| Qwen | Qwen TTS Flash, Instruct | Multi |
|
|
132
|
+
|
|
133
|
+
## Configuración por Canal
|
|
134
|
+
|
|
135
|
+
Cada canal configura su proveedor TTS:
|
|
136
|
+
- `tts_provider`: "elevenlabs" | "openai-tts" | "gemini-tts"
|
|
137
|
+
- `tts_voice_id`: ID específico de voz (ej. ElevenLabs voice ID)
|
|
138
|
+
|
|
139
|
+
## Mejores Prácticas
|
|
140
|
+
|
|
141
|
+
- Preprocesar texto para naturalidad
|
|
142
|
+
- Usar voz configurada por usuario
|
|
143
|
+
- Cachear respuestas frecuentes
|
|
144
|
+
- Split de textos largos
|
|
145
|
+
|
|
146
|
+
## Errores a Evitar
|
|
147
|
+
|
|
148
|
+
- ❌ Enviar texto crudo sin preprocesar
|
|
149
|
+
- ❌ Ignorar preferencia de voz
|
|
150
|
+
- ❌ No manejar límites de longitud
|
|
151
|
+
- ❌ No cachear (costo API)
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: browser_automate
|
|
3
|
+
description: "Automate web workflows with navigation, clicks, form filling, and visual verification"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Hive Team
|
|
6
|
+
icon: "🤖"
|
|
7
|
+
category: web
|
|
8
|
+
permissions:
|
|
9
|
+
- browser_control
|
|
10
|
+
dependencies: []
|
|
11
|
+
tools: [browser_navigate, browser_click, browser_type, browser_screenshot]
|
|
12
|
+
|
|
13
|
+
# Structured skill fields
|
|
14
|
+
triggers:
|
|
15
|
+
- "automatizá el navegador"
|
|
16
|
+
- "automate browser"
|
|
17
|
+
- "completá el formulario"
|
|
18
|
+
- "fill form"
|
|
19
|
+
- "hacé clic en"
|
|
20
|
+
- "click on"
|
|
21
|
+
- "iniciá sesión"
|
|
22
|
+
- "login"
|
|
23
|
+
- "registrate"
|
|
24
|
+
- "sign up"
|
|
25
|
+
- "interactuá con la web"
|
|
26
|
+
- "interact with website"
|
|
27
|
+
- "flujo web"
|
|
28
|
+
- "web workflow"
|
|
29
|
+
|
|
30
|
+
preferred_agents: []
|
|
31
|
+
|
|
32
|
+
steps:
|
|
33
|
+
- step: 1
|
|
34
|
+
action: browser_navigate
|
|
35
|
+
instruction: "Navigate to target URL and wait for page to fully load"
|
|
36
|
+
params:
|
|
37
|
+
url: "target URL"
|
|
38
|
+
output: page_loaded
|
|
39
|
+
|
|
40
|
+
- step: 2
|
|
41
|
+
action: browser_click
|
|
42
|
+
instruction: "Click on elements (buttons, links) to navigate or trigger actions"
|
|
43
|
+
params:
|
|
44
|
+
selector: "CSS selector for element"
|
|
45
|
+
output: click_result
|
|
46
|
+
|
|
47
|
+
- step: 3
|
|
48
|
+
action: browser_type
|
|
49
|
+
instruction: "Type text into form fields (inputs, textareas)"
|
|
50
|
+
params:
|
|
51
|
+
selector: "CSS selector for input"
|
|
52
|
+
text: "text to type"
|
|
53
|
+
output: type_result
|
|
54
|
+
|
|
55
|
+
- step: 4
|
|
56
|
+
action: browser_screenshot
|
|
57
|
+
instruction: "Take screenshot to verify state after interactions"
|
|
58
|
+
output: verification_screenshot
|
|
59
|
+
|
|
60
|
+
rules:
|
|
61
|
+
- "Wait for page to fully load after each navigation or significant interaction"
|
|
62
|
+
- "Use specific, stable CSS selectors (IDs preferred over classes)"
|
|
63
|
+
- "Take screenshots after critical steps for verification"
|
|
64
|
+
- "Handle errors gracefully — element may not exist or be interactable"
|
|
65
|
+
- "For multi-step flows, verify state after each step before proceeding"
|
|
66
|
+
|
|
67
|
+
output_format:
|
|
68
|
+
structure: markdown
|
|
69
|
+
sections:
|
|
70
|
+
- "workflow_steps"
|
|
71
|
+
- "final_state"
|
|
72
|
+
- "screenshot_path"
|
|
73
|
+
max_length: "Summary of automation flow"
|
|
74
|
+
|
|
75
|
+
examples:
|
|
76
|
+
- user_input: "automatizá el login en example.com"
|
|
77
|
+
expected_behavior: "Navigate → type credentials → click submit → screenshot verification"
|
|
78
|
+
|
|
79
|
+
- user_input: "completá el formulario de contacto"
|
|
80
|
+
expected_behavior: "Navigate → type name/email/message → click submit → verify submission"
|
|
81
|
+
|
|
82
|
+
- user_input: "hacé clic en todos los enlaces del menú"
|
|
83
|
+
expected_behavior: "Navigate → click each menu item → screenshot each page"
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
# Browser Automate Skill
|
|
87
|
+
|
|
88
|
+
## Cuándo se Activa
|
|
89
|
+
|
|
90
|
+
Esta skill se activa para automatizar flujos de interacción con aplicaciones web: logins, formularios, navegación programática.
|
|
91
|
+
|
|
92
|
+
## Herramientas Disponibles
|
|
93
|
+
|
|
94
|
+
| Tool | Qué hace | Cuándo usarla |
|
|
95
|
+
|------|----------|---------------|
|
|
96
|
+
| `browser_navigate` | Navega a URL | Inicio de flujo |
|
|
97
|
+
| `browser_click` | Click en elementos | Botones, enlaces, triggers |
|
|
98
|
+
| `browser_type` | Escribe en inputs | Formularios, búsquedas |
|
|
99
|
+
| `browser_screenshot` | Captura estado | Verificación visual |
|
|
100
|
+
|
|
101
|
+
## Workflow Típico
|
|
102
|
+
|
|
103
|
+
1. **Navegar** → URL inicial
|
|
104
|
+
2. **Interactuar** → click/type según flujo
|
|
105
|
+
3. **Verificar** → screenshot después de acciones críticas
|
|
106
|
+
4. **Repetir** → para flujos multi-paso
|
|
107
|
+
|
|
108
|
+
## Mejores Prácticas
|
|
109
|
+
|
|
110
|
+
- Selectores estables (IDs > classes > XPath)
|
|
111
|
+
- Esperar carga después de navegación
|
|
112
|
+
- Verificar estado visual con screenshots
|
|
113
|
+
- Manejar errores de elementos no encontrados
|
|
114
|
+
|
|
115
|
+
## Errores a Evitar
|
|
116
|
+
|
|
117
|
+
- ❌ Selectores frágiles que cambian
|
|
118
|
+
- ❌ No esperar carga de página
|
|
119
|
+
- ❌ Ignorar errores de elementos
|
|
120
|
+
- ❌ No verificar estado después de acciones
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: browser_scrape
|
|
3
|
+
description: "Navigate to web pages and capture rendered content including screenshots for dynamic sites"
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Hive Team
|
|
6
|
+
icon: "📸"
|
|
7
|
+
category: web
|
|
8
|
+
permissions:
|
|
9
|
+
- browser_control
|
|
10
|
+
dependencies: []
|
|
11
|
+
tools: [browser_navigate, browser_screenshot, web_fetch]
|
|
12
|
+
|
|
13
|
+
# Structured skill fields
|
|
14
|
+
triggers:
|
|
15
|
+
- "capturá el contenido"
|
|
16
|
+
- "scrape content"
|
|
17
|
+
- "obtené la página renderizada"
|
|
18
|
+
- "get rendered page"
|
|
19
|
+
- "sitios dinámicos"
|
|
20
|
+
- "dynamic sites"
|
|
21
|
+
- "web con javascript"
|
|
22
|
+
- "javascript websites"
|
|
23
|
+
- "tomá screenshot y contenido"
|
|
24
|
+
- "screenshot and content"
|
|
25
|
+
|
|
26
|
+
preferred_agents: []
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- step: 1
|
|
30
|
+
action: browser_navigate
|
|
31
|
+
instruction: "Navigate to URL and wait for full page load including JavaScript rendering"
|
|
32
|
+
params:
|
|
33
|
+
url: "target URL"
|
|
34
|
+
output: page_loaded
|
|
35
|
+
|
|
36
|
+
- step: 2
|
|
37
|
+
action: browser_screenshot
|
|
38
|
+
instruction: "Take screenshot to capture visual state of rendered page"
|
|
39
|
+
output: screenshot
|
|
40
|
+
|
|
41
|
+
- step: 3
|
|
42
|
+
action: web_fetch
|
|
43
|
+
instruction: "Extract text content from rendered page as markdown"
|
|
44
|
+
output: extracted_content
|
|
45
|
+
|
|
46
|
+
- step: 4
|
|
47
|
+
action: synthesize
|
|
48
|
+
instruction: "Combine screenshot and text content for comprehensive capture"
|
|
49
|
+
output: scraped_data
|
|
50
|
+
|
|
51
|
+
rules:
|
|
52
|
+
- "Wait for full page load including JavaScript-rendered content"
|
|
53
|
+
- "Take screenshot before extracting text to capture initial state"
|
|
54
|
+
- "For infinite scroll pages, scroll down and capture multiple screenshots"
|
|
55
|
+
- "Respect website terms of service — no aggressive scraping"
|
|
56
|
+
- "Store both screenshot and text for complete record"
|
|
57
|
+
|
|
58
|
+
output_format:
|
|
59
|
+
structure: markdown
|
|
60
|
+
sections:
|
|
61
|
+
- "url"
|
|
62
|
+
- "screenshot_path"
|
|
63
|
+
- "extracted_content"
|
|
64
|
+
- "timestamp"
|
|
65
|
+
max_length: "Full content extraction"
|
|
66
|
+
|
|
67
|
+
examples:
|
|
68
|
+
- user_input: "capturá el contenido de https://example.com/dashboard"
|
|
69
|
+
expected_behavior: "browser_navigate → wait for JS render → browser_screenshot → browser_fetch → return both"
|
|
70
|
+
|
|
71
|
+
- user_input: "obtené la página renderizada de la app"
|
|
72
|
+
expected_behavior: "Navigate → wait for SPA to load → screenshot + fetch content"
|
|
73
|
+
|
|
74
|
+
- user_input: "scrapeá este sitio con javascript"
|
|
75
|
+
expected_behavior: "Full browser render → capture visual and text content"
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
# Browser Scrape Skill
|
|
79
|
+
|
|
80
|
+
## Cuándo se Activa
|
|
81
|
+
|
|
82
|
+
Esta skill se activa para sitios web dinámicos que requieren JavaScript rendering, donde el contenido no está disponible en HTML estático.
|
|
83
|
+
|
|
84
|
+
## Herramientas Disponibles
|
|
85
|
+
|
|
86
|
+
| Tool | Qué hace | Cuándo usarla |
|
|
87
|
+
|------|----------|---------------|
|
|
88
|
+
| `browser_navigate` | Navega y renderiza página completa | Sitios con JavaScript/SPA |
|
|
89
|
+
| `browser_screenshot` | Captura estado visual | Evidencia de contenido renderizado |
|
|
90
|
+
| `web_fetch` | Extrae texto como markdown | Contenido textual de página renderizada |
|
|
91
|
+
|
|
92
|
+
## Workflow
|
|
93
|
+
|
|
94
|
+
1. **Navegar** → `browser_navigate({ url })` + esperar renderizado JS
|
|
95
|
+
2. **Capturar visual** → `browser_screenshot()`
|
|
96
|
+
3. **Extraer texto** → `web_fetch()`
|
|
97
|
+
4. **Combinar** → screenshot + texto para scrape completo
|
|
98
|
+
|
|
99
|
+
## Mejores Prácticas
|
|
100
|
+
|
|
101
|
+
- Esperar renderizado completo de JavaScript
|
|
102
|
+
- Para infinite scroll: hacer scroll y múltiples screenshots
|
|
103
|
+
- Capturar antes y después de interacciones si es dinámico
|
|
104
|
+
|
|
105
|
+
## Errores a Evitar
|
|
106
|
+
|
|
107
|
+
- ❌ No esperar renderizado JavaScript
|
|
108
|
+
- ❌ Solo capturar HTML estático para sitios SPA
|
|
109
|
+
- ❌ Ignorar términos de servicio del sitio
|