@johpaz/hive 1.7.2 → 1.7.3
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 +178 -36
- package/dist/hive.js +315124 -0
- package/package.json +11 -3
- package/packages/core/src/index.ts +0 -1
- package/.dockerignore +0 -9
- package/CONTRIBUTING.md +0 -44
- package/Dockerfile +0 -67
- package/docker-compose.yml +0 -19
- package/packages/cli/package.json +0 -28
- package/packages/cli/src/commands/agent-run.ts +0 -168
- package/packages/cli/src/commands/agents.ts +0 -398
- package/packages/cli/src/commands/chat.ts +0 -142
- package/packages/cli/src/commands/config.ts +0 -50
- package/packages/cli/src/commands/cron.ts +0 -161
- package/packages/cli/src/commands/dev.ts +0 -95
- package/packages/cli/src/commands/doctor.ts +0 -133
- package/packages/cli/src/commands/gateway.ts +0 -422
- package/packages/cli/src/commands/logs.ts +0 -57
- package/packages/cli/src/commands/mcp.ts +0 -175
- package/packages/cli/src/commands/message.ts +0 -77
- package/packages/cli/src/commands/onboard.ts +0 -1696
- package/packages/cli/src/commands/security.ts +0 -144
- package/packages/cli/src/commands/service.ts +0 -50
- package/packages/cli/src/commands/sessions.ts +0 -116
- package/packages/cli/src/commands/skills.ts +0 -187
- package/packages/cli/src/commands/update.ts +0 -25
- package/packages/cli/src/index.ts +0 -190
- package/packages/cli/src/utils/token.ts +0 -6
- package/packages/code-bridge/README.md +0 -78
- package/packages/code-bridge/package.json +0 -18
- package/packages/code-bridge/src/index.ts +0 -95
- package/packages/code-bridge/src/process-manager.ts +0 -212
- package/packages/code-bridge/src/schemas.ts +0 -133
- package/packages/core/package.json +0 -55
- package/packages/core/src/agent/agent-loop.ts +0 -520
- package/packages/core/src/agent/compaction.ts +0 -183
- package/packages/core/src/agent/context-compiler.ts +0 -544
- package/packages/core/src/agent/context-guard.ts +0 -91
- package/packages/core/src/agent/conversation-store.ts +0 -193
- package/packages/core/src/agent/curator.ts +0 -158
- package/packages/core/src/agent/hooks.ts +0 -166
- package/packages/core/src/agent/llm-client.ts +0 -503
- package/packages/core/src/agent/native-tools.ts +0 -31
- package/packages/core/src/agent/playbook-selector.ts +0 -143
- package/packages/core/src/agent/prompt-builder.ts +0 -167
- package/packages/core/src/agent/providers/index.ts +0 -186
- package/packages/core/src/agent/providers.ts +0 -1
- package/packages/core/src/agent/reflector.ts +0 -200
- package/packages/core/src/agent/service.ts +0 -266
- package/packages/core/src/agent/skill-selector.ts +0 -413
- package/packages/core/src/agent/stuck-loop.ts +0 -133
- package/packages/core/src/agent/tool-selector.ts +0 -623
- package/packages/core/src/agent/tracer.ts +0 -102
- package/packages/core/src/canvas/canvas-manager.ts +0 -319
- package/packages/core/src/canvas/canvas-tools.ts +0 -420
- package/packages/core/src/canvas/emitter.ts +0 -119
- package/packages/core/src/canvas/index.ts +0 -2
- package/packages/core/src/channels/base.ts +0 -140
- package/packages/core/src/channels/discord.ts +0 -260
- package/packages/core/src/channels/index.ts +0 -7
- package/packages/core/src/channels/manager.ts +0 -383
- package/packages/core/src/channels/slack.ts +0 -287
- package/packages/core/src/channels/telegram.ts +0 -552
- package/packages/core/src/channels/webchat.ts +0 -139
- package/packages/core/src/channels/whatsapp.ts +0 -375
- package/packages/core/src/config/index.ts +0 -12
- package/packages/core/src/config/loader.ts +0 -529
- package/packages/core/src/events/agent-bus.ts +0 -460
- package/packages/core/src/events/event-bus.ts +0 -169
- package/packages/core/src/gateway/helpers/cors.ts +0 -32
- package/packages/core/src/gateway/helpers/index.ts +0 -4
- package/packages/core/src/gateway/helpers/narration.ts +0 -60
- package/packages/core/src/gateway/helpers/path.ts +0 -13
- package/packages/core/src/gateway/helpers/redact.ts +0 -61
- package/packages/core/src/gateway/index.ts +0 -5
- package/packages/core/src/gateway/initializer.ts +0 -332
- package/packages/core/src/gateway/lane-queue.ts +0 -169
- package/packages/core/src/gateway/resolver.ts +0 -108
- package/packages/core/src/gateway/router.ts +0 -124
- package/packages/core/src/gateway/routes/agents.ts +0 -187
- package/packages/core/src/gateway/routes/channels.ts +0 -203
- package/packages/core/src/gateway/routes/chat.ts +0 -241
- package/packages/core/src/gateway/routes/config.ts +0 -12
- package/packages/core/src/gateway/routes/cron.ts +0 -42
- package/packages/core/src/gateway/routes/ethics.ts +0 -46
- package/packages/core/src/gateway/routes/mcp.ts +0 -346
- package/packages/core/src/gateway/routes/models.ts +0 -93
- package/packages/core/src/gateway/routes/projects.ts +0 -179
- package/packages/core/src/gateway/routes/providers.ts +0 -192
- package/packages/core/src/gateway/routes/setup.ts +0 -267
- package/packages/core/src/gateway/routes/skills.ts +0 -70
- package/packages/core/src/gateway/routes/system.ts +0 -165
- package/packages/core/src/gateway/routes/tasks.ts +0 -44
- package/packages/core/src/gateway/routes/tools.ts +0 -35
- package/packages/core/src/gateway/routes/users.ts +0 -118
- package/packages/core/src/gateway/routes/voice.ts +0 -73
- package/packages/core/src/gateway/routes/workspace.ts +0 -281
- package/packages/core/src/gateway/server.ts +0 -1978
- package/packages/core/src/gateway/session.ts +0 -95
- package/packages/core/src/gateway/slash-commands.ts +0 -193
- package/packages/core/src/heartbeat/index.ts +0 -157
- package/packages/core/src/mcp/hot-reload.ts +0 -213
- package/packages/core/src/mcp/singleton.ts +0 -21
- package/packages/core/src/memory/index.ts +0 -1
- package/packages/core/src/memory/notes.ts +0 -68
- package/packages/core/src/plugins/api.ts +0 -128
- package/packages/core/src/plugins/index.ts +0 -2
- package/packages/core/src/plugins/loader.ts +0 -365
- package/packages/core/src/resilience/circuit-breaker.ts +0 -225
- package/packages/core/src/security/google-chat.ts +0 -269
- package/packages/core/src/security/index.ts +0 -192
- package/packages/core/src/security/pairing.ts +0 -250
- package/packages/core/src/security/rate-limit.ts +0 -270
- package/packages/core/src/security/signal.ts +0 -321
- package/packages/core/src/state/store.ts +0 -312
- package/packages/core/src/storage/crypto.ts +0 -101
- package/packages/core/src/storage/onboarding.ts +0 -1609
- package/packages/core/src/storage/schema.ts +0 -567
- package/packages/core/src/storage/seed.ts +0 -608
- package/packages/core/src/storage/sqlite.ts +0 -363
- package/packages/core/src/storage/usage.ts +0 -270
- package/packages/core/src/tools/agents/index.ts +0 -607
- package/packages/core/src/tools/bridge-events.ts +0 -26
- package/packages/core/src/tools/canvas/index.ts +0 -281
- package/packages/core/src/tools/cli/index.ts +0 -142
- package/packages/core/src/tools/codebridge/index.ts +0 -179
- package/packages/core/src/tools/core/index.ts +0 -257
- package/packages/core/src/tools/cron/index.ts +0 -373
- package/packages/core/src/tools/filesystem/fs-delete.ts +0 -78
- package/packages/core/src/tools/filesystem/fs-edit.ts +0 -106
- package/packages/core/src/tools/filesystem/fs-exists.ts +0 -63
- package/packages/core/src/tools/filesystem/fs-glob.ts +0 -108
- package/packages/core/src/tools/filesystem/fs-list.ts +0 -129
- package/packages/core/src/tools/filesystem/fs-read.ts +0 -72
- package/packages/core/src/tools/filesystem/fs-write.ts +0 -67
- package/packages/core/src/tools/filesystem/index.ts +0 -34
- package/packages/core/src/tools/filesystem/workspace-guard.ts +0 -62
- package/packages/core/src/tools/index.ts +0 -197
- package/packages/core/src/tools/projects/index.ts +0 -37
- package/packages/core/src/tools/projects/project-create.ts +0 -94
- package/packages/core/src/tools/projects/project-done.ts +0 -66
- package/packages/core/src/tools/projects/project-fail.ts +0 -66
- package/packages/core/src/tools/projects/project-list.ts +0 -96
- package/packages/core/src/tools/projects/project-update.ts +0 -72
- package/packages/core/src/tools/projects/task-create.ts +0 -68
- package/packages/core/src/tools/projects/task-evaluate.ts +0 -93
- package/packages/core/src/tools/projects/task-update.ts +0 -93
- package/packages/core/src/tools/search-knowledge/search-knowledge.ts +0 -155
- package/packages/core/src/tools/types.ts +0 -39
- package/packages/core/src/tools/voice/index.ts +0 -104
- package/packages/core/src/tools/web/browser-click.ts +0 -54
- package/packages/core/src/tools/web/browser-navigate.ts +0 -84
- package/packages/core/src/tools/web/browser-screenshot.ts +0 -54
- package/packages/core/src/tools/web/browser-type.ts +0 -60
- package/packages/core/src/tools/web/index.ts +0 -31
- package/packages/core/src/tools/web/web-fetch.ts +0 -78
- package/packages/core/src/tools/web/web-search.ts +0 -123
- package/packages/core/src/utils/benchmark.ts +0 -80
- package/packages/core/src/utils/crypto.ts +0 -73
- package/packages/core/src/utils/date.ts +0 -42
- package/packages/core/src/utils/index.ts +0 -5
- package/packages/core/src/utils/logger.ts +0 -389
- package/packages/core/src/utils/retry.ts +0 -70
- package/packages/core/src/utils/toon.ts +0 -356
- package/packages/core/src/voice/index.ts +0 -583
- package/packages/hive-ui/README.md +0 -52
- package/packages/hive-ui/components.json +0 -20
- package/packages/hive-ui/index.html +0 -30
- package/packages/hive-ui/package.json +0 -90
- package/packages/hive-ui/public/favicon.ico +0 -0
- package/packages/hive-ui/public/placeholder.svg +0 -1
- package/packages/hive-ui/src/App.tsx +0 -115
- package/packages/hive-ui/src/components/CronJobsPanel.tsx +0 -200
- package/packages/hive-ui/src/components/NavLink.tsx +0 -34
- package/packages/hive-ui/src/components/NotesPanel.tsx +0 -79
- package/packages/hive-ui/src/components/SystemMonitor.tsx +0 -270
- package/packages/hive-ui/src/components/UsageStatsPanel.tsx +0 -334
- package/packages/hive-ui/src/components/WelcomeDialog.tsx +0 -279
- package/packages/hive-ui/src/components/ui/accordion.tsx +0 -52
- package/packages/hive-ui/src/components/ui/alert-dialog.tsx +0 -104
- package/packages/hive-ui/src/components/ui/alert.tsx +0 -45
- package/packages/hive-ui/src/components/ui/aspect-ratio.tsx +0 -5
- package/packages/hive-ui/src/components/ui/avatar.tsx +0 -38
- package/packages/hive-ui/src/components/ui/badge.tsx +0 -29
- package/packages/hive-ui/src/components/ui/bee-loader.tsx +0 -68
- package/packages/hive-ui/src/components/ui/breadcrumb.tsx +0 -90
- package/packages/hive-ui/src/components/ui/button.tsx +0 -47
- package/packages/hive-ui/src/components/ui/calendar.tsx +0 -54
- package/packages/hive-ui/src/components/ui/card.tsx +0 -45
- package/packages/hive-ui/src/components/ui/carousel.tsx +0 -224
- package/packages/hive-ui/src/components/ui/chart.tsx +0 -303
- package/packages/hive-ui/src/components/ui/checkbox.tsx +0 -26
- package/packages/hive-ui/src/components/ui/collapsible.tsx +0 -9
- package/packages/hive-ui/src/components/ui/command.tsx +0 -133
- package/packages/hive-ui/src/components/ui/context-menu.tsx +0 -178
- package/packages/hive-ui/src/components/ui/dialog.tsx +0 -95
- package/packages/hive-ui/src/components/ui/drawer.tsx +0 -87
- package/packages/hive-ui/src/components/ui/dropdown-menu.tsx +0 -179
- package/packages/hive-ui/src/components/ui/form.tsx +0 -129
- package/packages/hive-ui/src/components/ui/hover-card.tsx +0 -27
- package/packages/hive-ui/src/components/ui/input-otp.tsx +0 -61
- package/packages/hive-ui/src/components/ui/input.tsx +0 -22
- package/packages/hive-ui/src/components/ui/label.tsx +0 -17
- package/packages/hive-ui/src/components/ui/menubar.tsx +0 -207
- package/packages/hive-ui/src/components/ui/navigation-menu.tsx +0 -120
- package/packages/hive-ui/src/components/ui/pagination.tsx +0 -80
- package/packages/hive-ui/src/components/ui/popover.tsx +0 -29
- package/packages/hive-ui/src/components/ui/progress.tsx +0 -23
- package/packages/hive-ui/src/components/ui/radio-group.tsx +0 -36
- package/packages/hive-ui/src/components/ui/resizable.tsx +0 -37
- package/packages/hive-ui/src/components/ui/scroll-area.tsx +0 -38
- package/packages/hive-ui/src/components/ui/select.tsx +0 -143
- package/packages/hive-ui/src/components/ui/separator.tsx +0 -20
- package/packages/hive-ui/src/components/ui/sheet.tsx +0 -107
- package/packages/hive-ui/src/components/ui/sidebar.tsx +0 -636
- package/packages/hive-ui/src/components/ui/skeleton.tsx +0 -7
- package/packages/hive-ui/src/components/ui/slider.tsx +0 -23
- package/packages/hive-ui/src/components/ui/sonner.tsx +0 -27
- package/packages/hive-ui/src/components/ui/switch.tsx +0 -27
- package/packages/hive-ui/src/components/ui/table.tsx +0 -72
- package/packages/hive-ui/src/components/ui/tabs.tsx +0 -53
- package/packages/hive-ui/src/components/ui/textarea.tsx +0 -21
- package/packages/hive-ui/src/components/ui/toast.tsx +0 -111
- package/packages/hive-ui/src/components/ui/toaster.tsx +0 -24
- package/packages/hive-ui/src/components/ui/toggle-group.tsx +0 -49
- package/packages/hive-ui/src/components/ui/toggle.tsx +0 -37
- package/packages/hive-ui/src/components/ui/tooltip.tsx +0 -28
- package/packages/hive-ui/src/components/ui/use-toast.ts +0 -3
- package/packages/hive-ui/src/hooks/use-mobile.tsx +0 -19
- package/packages/hive-ui/src/hooks/use-toast.ts +0 -186
- package/packages/hive-ui/src/hooks/useAgentConfig.ts +0 -25
- package/packages/hive-ui/src/hooks/useAgents.ts +0 -38
- package/packages/hive-ui/src/hooks/useBridge.ts +0 -38
- package/packages/hive-ui/src/hooks/useCanvas.ts +0 -24
- package/packages/hive-ui/src/hooks/useChannels.ts +0 -2
- package/packages/hive-ui/src/hooks/useEthics.ts +0 -51
- package/packages/hive-ui/src/hooks/useProviders.ts +0 -14
- package/packages/hive-ui/src/hooks/useTheme.ts +0 -29
- package/packages/hive-ui/src/hooks/useUserConfig.ts +0 -17
- package/packages/hive-ui/src/hooks/useWebSocket.ts +0 -12
- package/packages/hive-ui/src/index.css +0 -620
- package/packages/hive-ui/src/lib/api.ts +0 -100
- package/packages/hive-ui/src/lib/constants.ts +0 -6
- package/packages/hive-ui/src/lib/models.ts +0 -64
- package/packages/hive-ui/src/lib/swal.ts +0 -30
- package/packages/hive-ui/src/lib/utils.ts +0 -6
- package/packages/hive-ui/src/lib/websocket.ts +0 -7
- package/packages/hive-ui/src/main.tsx +0 -5
- package/packages/hive-ui/src/modules/agent-config/details/AgentDetailsEditor.tsx +0 -524
- package/packages/hive-ui/src/modules/agent-config/ethics/EthicsConflictDetector.tsx +0 -18
- package/packages/hive-ui/src/modules/agent-config/ethics/EthicsEditor.tsx +0 -19
- package/packages/hive-ui/src/modules/agent-config/ethics/EthicsRulesList.tsx +0 -36
- package/packages/hive-ui/src/modules/agent-config/ethics/EthicsTemplateGallery.tsx +0 -361
- package/packages/hive-ui/src/modules/agent-config/ethics/index.ts +0 -4
- package/packages/hive-ui/src/modules/agent-config/index.ts +0 -6
- package/packages/hive-ui/src/modules/agent-config/mcp/MCPServerAdd.tsx +0 -322
- package/packages/hive-ui/src/modules/agent-config/mcp/MCPServerCard.tsx +0 -93
- package/packages/hive-ui/src/modules/agent-config/mcp/MCPServerConfig.tsx +0 -427
- package/packages/hive-ui/src/modules/agent-config/mcp/MCPServerList.tsx +0 -85
- package/packages/hive-ui/src/modules/agent-config/mcp/MCPToolExplorer.tsx +0 -79
- package/packages/hive-ui/src/modules/agent-config/mcp/index.ts +0 -5
- package/packages/hive-ui/src/modules/agent-config/shared/ConfigEditorLayout.tsx +0 -30
- package/packages/hive-ui/src/modules/agent-config/shared/ConfigExporter.tsx +0 -26
- package/packages/hive-ui/src/modules/agent-config/shared/ConfigImporter.tsx +0 -25
- package/packages/hive-ui/src/modules/agent-config/shared/DiffViewer.tsx +0 -31
- package/packages/hive-ui/src/modules/agent-config/shared/MarkdownEditor.tsx +0 -32
- package/packages/hive-ui/src/modules/agent-config/shared/SaveStatusIndicator.tsx +0 -23
- package/packages/hive-ui/src/modules/agent-config/shared/ValidationPanel.tsx +0 -36
- package/packages/hive-ui/src/modules/agent-config/shared/index.ts +0 -7
- package/packages/hive-ui/src/modules/agent-config/skills/SkillCard.tsx +0 -81
- package/packages/hive-ui/src/modules/agent-config/skills/SkillConfigEditor.tsx +0 -22
- package/packages/hive-ui/src/modules/agent-config/skills/SkillCreator.tsx +0 -60
- package/packages/hive-ui/src/modules/agent-config/skills/SkillInstaller.tsx +0 -23
- package/packages/hive-ui/src/modules/agent-config/skills/SkillList.tsx +0 -72
- package/packages/hive-ui/src/modules/agent-config/skills/SkillsTab.tsx +0 -202
- package/packages/hive-ui/src/modules/agent-config/skills/index.ts +0 -5
- package/packages/hive-ui/src/modules/agent-config/tools/ToolCard.tsx +0 -27
- package/packages/hive-ui/src/modules/agent-config/tools/ToolConfigPanel.tsx +0 -22
- package/packages/hive-ui/src/modules/agent-config/tools/ToolManager.tsx +0 -266
- package/packages/hive-ui/src/modules/agent-config/tools/ToolPermissions.tsx +0 -287
- package/packages/hive-ui/src/modules/agent-config/tools/ToolRegistry.tsx +0 -84
- package/packages/hive-ui/src/modules/agent-config/tools/ToolUsageStats.tsx +0 -52
- package/packages/hive-ui/src/modules/agent-config/tools/index.ts +0 -4
- package/packages/hive-ui/src/modules/agent-config/user/ActiveAgentsList.tsx +0 -109
- package/packages/hive-ui/src/modules/agent-config/user/GlobalConfigOverview.tsx +0 -119
- package/packages/hive-ui/src/modules/agent-config/user/UserMemoryManager.tsx +0 -54
- package/packages/hive-ui/src/modules/agent-config/user/UserPreferencesForm.tsx +0 -163
- package/packages/hive-ui/src/modules/agent-config/user/UserProfileEditor.tsx +0 -261
- package/packages/hive-ui/src/modules/agent-config/user/index.ts +0 -3
- package/packages/hive-ui/src/modules/agents/AgentActivityLog.tsx +0 -25
- package/packages/hive-ui/src/modules/agents/AgentCard.tsx +0 -305
- package/packages/hive-ui/src/modules/agents/AgentCreateForm.tsx +0 -446
- package/packages/hive-ui/src/modules/agents/AgentDetail.tsx +0 -28
- package/packages/hive-ui/src/modules/agents/AgentInternalCard.tsx +0 -162
- package/packages/hive-ui/src/modules/agents/AgentList.tsx +0 -29
- package/packages/hive-ui/src/modules/agents/AgentStatusBadge.tsx +0 -34
- package/packages/hive-ui/src/modules/agents/ModelSelector.tsx +0 -151
- package/packages/hive-ui/src/modules/bridge/BridgeLogViewer.tsx +0 -61
- package/packages/hive-ui/src/modules/bridge/BridgeProcessList.tsx +0 -77
- package/packages/hive-ui/src/modules/bridge/BridgeStatus.tsx +0 -23
- package/packages/hive-ui/src/modules/bridge/BridgeTerminal.tsx +0 -7
- package/packages/hive-ui/src/modules/canvas/CanvasButton.tsx +0 -3
- package/packages/hive-ui/src/modules/canvas/CanvasChart.tsx +0 -3
- package/packages/hive-ui/src/modules/canvas/CanvasComponentMap.tsx +0 -605
- package/packages/hive-ui/src/modules/canvas/CanvasContainer.tsx +0 -360
- package/packages/hive-ui/src/modules/canvas/CanvasForm.tsx +0 -3
- package/packages/hive-ui/src/modules/canvas/CanvasMarkdown.tsx +0 -3
- package/packages/hive-ui/src/modules/canvas/CanvasTable.tsx +0 -3
- package/packages/hive-ui/src/modules/canvas/ComponentRenderer.tsx +0 -30
- package/packages/hive-ui/src/modules/canvas/DynamicRenderer.tsx +0 -3
- package/packages/hive-ui/src/modules/channels/available/AvailableChannelsGrid.tsx +0 -89
- package/packages/hive-ui/src/modules/channels/available/ChannelAuthForm.tsx +0 -33
- package/packages/hive-ui/src/modules/channels/available/ChannelSetupWizard.tsx +0 -48
- package/packages/hive-ui/src/modules/channels/available/ChannelTestConnection.tsx +0 -37
- package/packages/hive-ui/src/modules/channels/available/ChannelTypeCard.tsx +0 -30
- package/packages/hive-ui/src/modules/channels/available/ChannelWebhookConfig.tsx +0 -30
- package/packages/hive-ui/src/modules/channels/available/index.ts +0 -6
- package/packages/hive-ui/src/modules/channels/connected/ChannelCard.tsx +0 -95
- package/packages/hive-ui/src/modules/channels/connected/ChannelConfigPanel.tsx +0 -260
- package/packages/hive-ui/src/modules/channels/connected/ChannelDisconnectButton.tsx +0 -21
- package/packages/hive-ui/src/modules/channels/connected/ChannelLogsViewer.tsx +0 -42
- package/packages/hive-ui/src/modules/channels/connected/ChannelQRCode.tsx +0 -32
- package/packages/hive-ui/src/modules/channels/connected/ChannelReconnectButton.tsx +0 -16
- package/packages/hive-ui/src/modules/channels/connected/ChannelStatusBadge.tsx +0 -26
- package/packages/hive-ui/src/modules/channels/connected/ConnectedChannelsList.tsx +0 -40
- package/packages/hive-ui/src/modules/channels/connected/index.ts +0 -8
- package/packages/hive-ui/src/modules/channels/shared/ChannelCard.tsx +0 -84
- package/packages/hive-ui/src/modules/channels/shared/ChannelConfigDialog.tsx +0 -279
- package/packages/hive-ui/src/modules/channels/shared/ChannelIcon.tsx +0 -40
- package/packages/hive-ui/src/modules/channels/shared/ChannelStats.tsx +0 -37
- package/packages/hive-ui/src/modules/channels/shared/ChannelTypeBadge.tsx +0 -23
- package/packages/hive-ui/src/modules/channels/shared/ConnectionHealthIndicator.tsx +0 -20
- package/packages/hive-ui/src/modules/channels/shared/MessagePreview.tsx +0 -19
- package/packages/hive-ui/src/modules/channels/shared/index.ts +0 -5
- package/packages/hive-ui/src/modules/chat/ChatContainer.tsx +0 -268
- package/packages/hive-ui/src/modules/chat/ChatHistory.tsx +0 -101
- package/packages/hive-ui/src/modules/chat/ChatInput.tsx +0 -108
- package/packages/hive-ui/src/modules/chat/ChatMessage.tsx +0 -137
- package/packages/hive-ui/src/modules/chat/ThinkingIndicator.tsx +0 -10
- package/packages/hive-ui/src/modules/layout/AppLayout.tsx +0 -45
- package/packages/hive-ui/src/modules/layout/ConnectionStatus.tsx +0 -19
- package/packages/hive-ui/src/modules/layout/Header.tsx +0 -20
- package/packages/hive-ui/src/modules/layout/HiveSidebar.tsx +0 -173
- package/packages/hive-ui/src/modules/layout/ThemeToggle.tsx +0 -18
- package/packages/hive-ui/src/modules/providers/ProviderCard.tsx +0 -319
- package/packages/hive-ui/src/modules/providers/ProviderConfigForm.tsx +0 -146
- package/packages/hive-ui/src/modules/providers/ProviderFailoverConfig.tsx +0 -110
- package/packages/hive-ui/src/modules/providers/ProviderList.tsx +0 -33
- package/packages/hive-ui/src/modules/providers/ProviderStatusIndicator.tsx +0 -23
- package/packages/hive-ui/src/modules/providers/configs/ProviderAPIKeyManager.tsx +0 -39
- package/packages/hive-ui/src/modules/providers/configs/ProviderEndpointConfig.tsx +0 -27
- package/packages/hive-ui/src/modules/providers/configs/ProviderRateLimits.tsx +0 -37
- package/packages/hive-ui/src/modules/providers/configs/ProviderRetryPolicy.tsx +0 -46
- package/packages/hive-ui/src/modules/providers/configs/index.ts +0 -4
- package/packages/hive-ui/src/modules/providers/index.ts +0 -5
- package/packages/hive-ui/src/modules/providers/models/ModelBenchmarkBadge.tsx +0 -21
- package/packages/hive-ui/src/modules/providers/models/ModelCapabilities.tsx +0 -44
- package/packages/hive-ui/src/modules/providers/models/ModelCard.tsx +0 -36
- package/packages/hive-ui/src/modules/providers/models/ModelComparisonTable.tsx +0 -47
- package/packages/hive-ui/src/modules/providers/models/ModelList.tsx +0 -51
- package/packages/hive-ui/src/modules/providers/models/ModelPricingInfo.tsx +0 -17
- package/packages/hive-ui/src/modules/providers/models/ModelSelector.tsx +0 -32
- package/packages/hive-ui/src/modules/providers/models/index.ts +0 -7
- package/packages/hive-ui/src/pages/AgentDetailPage.tsx +0 -74
- package/packages/hive-ui/src/pages/AgentNewPage.tsx +0 -5
- package/packages/hive-ui/src/pages/AgentsPage.tsx +0 -147
- package/packages/hive-ui/src/pages/BridgePage.tsx +0 -83
- package/packages/hive-ui/src/pages/CanvasPage.tsx +0 -32
- package/packages/hive-ui/src/pages/ChannelsPage.tsx +0 -176
- package/packages/hive-ui/src/pages/DashboardPage.tsx +0 -321
- package/packages/hive-ui/src/pages/Index.tsx +0 -14
- package/packages/hive-ui/src/pages/LogsPage.tsx +0 -252
- package/packages/hive-ui/src/pages/NotFound.tsx +0 -24
- package/packages/hive-ui/src/pages/ProjectsPage.tsx +0 -241
- package/packages/hive-ui/src/pages/ProvidersPage.tsx +0 -111
- package/packages/hive-ui/src/pages/SettingsPage.tsx +0 -147
- package/packages/hive-ui/src/pages/SetupPage.tsx +0 -1177
- package/packages/hive-ui/src/pages/WebChatPage.tsx +0 -15
- package/packages/hive-ui/src/stores/agentConfigStore.ts +0 -32
- package/packages/hive-ui/src/stores/agentStore.ts +0 -5
- package/packages/hive-ui/src/stores/bridgeStore.ts +0 -237
- package/packages/hive-ui/src/stores/canvasStore.ts +0 -250
- package/packages/hive-ui/src/stores/channelStore.ts +0 -5
- package/packages/hive-ui/src/stores/chatStore.ts +0 -42
- package/packages/hive-ui/src/stores/ethicsStore.ts +0 -141
- package/packages/hive-ui/src/stores/mcpStore.ts +0 -5
- package/packages/hive-ui/src/stores/modelStore.ts +0 -2
- package/packages/hive-ui/src/stores/projectsStore.ts +0 -141
- package/packages/hive-ui/src/stores/providerStore.ts +0 -2
- package/packages/hive-ui/src/stores/skillStore.ts +0 -5
- package/packages/hive-ui/src/stores/toolStore.ts +0 -5
- package/packages/hive-ui/src/stores/useGlobalConfigStore.ts +0 -937
- package/packages/hive-ui/src/stores/useLoaderStore.ts +0 -21
- package/packages/hive-ui/src/stores/useNotesAndCronsStore.ts +0 -144
- package/packages/hive-ui/src/stores/useWebSocketStore.ts +0 -152
- package/packages/hive-ui/src/stores/useWelcomeStore.ts +0 -37
- package/packages/hive-ui/src/stores/userConfigStore.ts +0 -23
- package/packages/hive-ui/src/stores/userStore.ts +0 -82
- package/packages/hive-ui/src/test/setup.ts +0 -15
- package/packages/hive-ui/src/types/agent-config.ts +0 -33
- package/packages/hive-ui/src/types/agent.ts +0 -65
- package/packages/hive-ui/src/types/bridge.ts +0 -27
- package/packages/hive-ui/src/types/canvas.ts +0 -76
- package/packages/hive-ui/src/types/channels.ts +0 -109
- package/packages/hive-ui/src/types/chat.ts +0 -25
- package/packages/hive-ui/src/types/connections.ts +0 -17
- package/packages/hive-ui/src/types/ethics.ts +0 -41
- package/packages/hive-ui/src/types/index.ts +0 -15
- package/packages/hive-ui/src/types/mcp.ts +0 -36
- package/packages/hive-ui/src/types/notes-crons.ts +0 -31
- package/packages/hive-ui/src/types/providers.ts +0 -145
- package/packages/hive-ui/src/types/skill.ts +0 -12
- package/packages/hive-ui/src/types/tool.ts +0 -44
- package/packages/hive-ui/src/types/user.ts +0 -26
- package/packages/hive-ui/src/types/websocket.ts +0 -14
- package/packages/hive-ui/src/vite-env.d.ts +0 -1
- package/packages/mcp/package.json +0 -26
- package/packages/mcp/src/config.ts +0 -13
- package/packages/mcp/src/index.ts +0 -1
- package/packages/mcp/src/logger.ts +0 -42
- package/packages/mcp/src/manager.ts +0 -439
- package/packages/mcp/src/transports/index.ts +0 -67
- package/packages/mcp/src/transports/sse.ts +0 -241
- package/packages/mcp/src/transports/websocket.ts +0 -159
- package/packages/skills/package.json +0 -21
- package/packages/skills/src/index.ts +0 -1
- package/packages/skills/src/loader.ts +0 -346
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { ScrollArea } from "@/components/ui/scroll-area";
|
|
2
|
-
import { Badge } from "@/components/ui/badge";
|
|
3
|
-
import { Input } from "@/components/ui/input";
|
|
4
|
-
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
|
|
5
|
-
import { useProviders } from "@/hooks/useProviders";
|
|
6
|
-
import { ModelCard } from "./ModelCard";
|
|
7
|
-
import { Search } from "lucide-react";
|
|
8
|
-
import { useState } from "react";
|
|
9
|
-
|
|
10
|
-
export function ModelList() {
|
|
11
|
-
const { availableModels, providers } = useProviders();
|
|
12
|
-
const [filter, setFilter] = useState("");
|
|
13
|
-
const [providerFilter, setProviderFilter] = useState("all");
|
|
14
|
-
|
|
15
|
-
const filtered = availableModels.filter((m) => {
|
|
16
|
-
const matchesSearch = m.name.toLowerCase().includes(filter.toLowerCase()) || m.id.toLowerCase().includes(filter.toLowerCase());
|
|
17
|
-
const matchesProvider = providerFilter === "all" || m.providerId === providerFilter || m.provider_id === providerFilter;
|
|
18
|
-
return matchesSearch && matchesProvider;
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<div className="space-y-4">
|
|
23
|
-
<div className="flex items-center justify-between">
|
|
24
|
-
<h3 className="text-sm font-semibold">Modelos Disponibles</h3>
|
|
25
|
-
<Badge variant="secondary">{filtered.length}</Badge>
|
|
26
|
-
</div>
|
|
27
|
-
<div className="flex gap-2">
|
|
28
|
-
<div className="relative flex-1">
|
|
29
|
-
<Search className="absolute left-2 top-2 h-4 w-4 text-muted-foreground" />
|
|
30
|
-
<Input placeholder="Buscar modelo..." className="h-8 pl-8 text-sm" value={filter} onChange={(e) => setFilter(e.target.value)} />
|
|
31
|
-
</div>
|
|
32
|
-
<Select value={providerFilter} onValueChange={setProviderFilter}>
|
|
33
|
-
<SelectTrigger className="h-8 w-40 text-sm"><SelectValue placeholder="Provider" /></SelectTrigger>
|
|
34
|
-
<SelectContent>
|
|
35
|
-
<SelectItem value="all">Todos</SelectItem>
|
|
36
|
-
{providers.map((p) => (
|
|
37
|
-
<SelectItem key={p.id} value={p.id}>{p.name}</SelectItem>
|
|
38
|
-
))}
|
|
39
|
-
</SelectContent>
|
|
40
|
-
</Select>
|
|
41
|
-
</div>
|
|
42
|
-
<ScrollArea className="h-[calc(100vh-20rem)]">
|
|
43
|
-
<div className="space-y-2">
|
|
44
|
-
{filtered.map((model) => (
|
|
45
|
-
<ModelCard key={model.id} model={model} />
|
|
46
|
-
))}
|
|
47
|
-
</div>
|
|
48
|
-
</ScrollArea>
|
|
49
|
-
</div>
|
|
50
|
-
);
|
|
51
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { ModelPricing } from "@/types";
|
|
2
|
-
|
|
3
|
-
interface ModelPricingInfoProps {
|
|
4
|
-
pricing: ModelPricing;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function ModelPricingInfo({ pricing }: ModelPricingInfoProps) {
|
|
8
|
-
if (pricing.inputPer1M === 0 && pricing.outputPer1M === 0) {
|
|
9
|
-
return <span className="text-xs font-medium text-hive-connected">Gratis (local)</span>;
|
|
10
|
-
}
|
|
11
|
-
return (
|
|
12
|
-
<div className="text-right text-[10px] text-muted-foreground">
|
|
13
|
-
<p>In: ${pricing.inputPer1M}/1M</p>
|
|
14
|
-
<p>Out: ${pricing.outputPer1M}/1M</p>
|
|
15
|
-
</div>
|
|
16
|
-
);
|
|
17
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
|
|
2
|
-
import { useProviders } from "@/hooks/useProviders";
|
|
3
|
-
import type { Model } from "@/types";
|
|
4
|
-
|
|
5
|
-
interface ModelSelectorProps {
|
|
6
|
-
value?: string;
|
|
7
|
-
onSelect?: (modelId: string) => void;
|
|
8
|
-
providerFilter?: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function ModelSelector({ value, onSelect, providerFilter }: ModelSelectorProps) {
|
|
12
|
-
const { availableModels } = useProviders();
|
|
13
|
-
const models = providerFilter ? availableModels.filter((m) => m.providerId === providerFilter) : availableModels;
|
|
14
|
-
|
|
15
|
-
return (
|
|
16
|
-
<Select value={value} onValueChange={onSelect}>
|
|
17
|
-
<SelectTrigger className="h-8 text-sm">
|
|
18
|
-
<SelectValue placeholder="Seleccionar modelo..." />
|
|
19
|
-
</SelectTrigger>
|
|
20
|
-
<SelectContent>
|
|
21
|
-
{models.map((model) => (
|
|
22
|
-
<SelectItem key={model.id} value={model.id}>
|
|
23
|
-
<span className="flex items-center gap-2">
|
|
24
|
-
<span>{model.name}</span>
|
|
25
|
-
<span className="text-muted-foreground">({model.providerId})</span>
|
|
26
|
-
</span>
|
|
27
|
-
</SelectItem>
|
|
28
|
-
))}
|
|
29
|
-
</SelectContent>
|
|
30
|
-
</Select>
|
|
31
|
-
);
|
|
32
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { ModelList } from "./ModelList";
|
|
2
|
-
export { ModelCard } from "./ModelCard";
|
|
3
|
-
export { ModelSelector } from "./ModelSelector";
|
|
4
|
-
export { ModelPricingInfo } from "./ModelPricingInfo";
|
|
5
|
-
export { ModelCapabilities } from "./ModelCapabilities";
|
|
6
|
-
export { ModelBenchmarkBadge } from "./ModelBenchmarkBadge";
|
|
7
|
-
export { ModelComparisonTable } from "./ModelComparisonTable";
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { useParams, useNavigate } from "react-router-dom";
|
|
2
|
-
import { AgentDetailsEditor } from "@/modules/agent-config/details/AgentDetailsEditor";
|
|
3
|
-
import { AgentInternalCard } from "@/modules/agents/AgentInternalCard";
|
|
4
|
-
import { useAgents } from "@/stores/useGlobalConfigStore";
|
|
5
|
-
import { ChevronLeft, LayoutGrid, Activity } from "lucide-react";
|
|
6
|
-
import { Button } from "@/components/ui/button";
|
|
7
|
-
import { useEffect } from "react";
|
|
8
|
-
|
|
9
|
-
export function AgentDetailPage() {
|
|
10
|
-
const { id } = useParams<{ id: string }>();
|
|
11
|
-
const navigate = useNavigate();
|
|
12
|
-
const agentId = id ?? "unknown";
|
|
13
|
-
const { agents, fetchAgents, isLoading } = useAgents();
|
|
14
|
-
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
fetchAgents();
|
|
17
|
-
}, [fetchAgents]);
|
|
18
|
-
|
|
19
|
-
const agent = agents.find(a => a.id === agentId);
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<div className="min-h-screen bg-transparent pb-20">
|
|
23
|
-
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8 animate-in fade-in slide-in-from-bottom-4 duration-700">
|
|
24
|
-
|
|
25
|
-
{/* Navigation Header */}
|
|
26
|
-
<div className="flex items-center justify-between mb-8">
|
|
27
|
-
<Button
|
|
28
|
-
variant="ghost"
|
|
29
|
-
onClick={() => navigate("/agents")}
|
|
30
|
-
className="group flex items-center gap-2 text-white/40 hover:text-white hover:bg-white/5 px-4 py-2 rounded-xl transition-all"
|
|
31
|
-
>
|
|
32
|
-
<ChevronLeft className="h-4 w-4 transition-transform group-hover:-translate-x-1" />
|
|
33
|
-
<span className="text-sm font-bold uppercase tracking-widest">Volver a la Colmena</span>
|
|
34
|
-
</Button>
|
|
35
|
-
|
|
36
|
-
<div className="flex items-center gap-4 text-white/20">
|
|
37
|
-
<div className="flex items-center gap-2">
|
|
38
|
-
<LayoutGrid className="h-4 w-4" />
|
|
39
|
-
<span className="text-[10px] font-bold uppercase tracking-widest">Agentes</span>
|
|
40
|
-
</div>
|
|
41
|
-
<div className="h-4 w-px bg-white/10" />
|
|
42
|
-
<div className="flex items-center gap-2">
|
|
43
|
-
<Activity className="h-4 w-4" />
|
|
44
|
-
<span className="text-[10px] font-bold uppercase tracking-widest">Detalles Operativos</span>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
|
|
49
|
-
{/* Hero Card */}
|
|
50
|
-
{agent ? (
|
|
51
|
-
<>
|
|
52
|
-
<AgentInternalCard agent={agent} />
|
|
53
|
-
<div className="grid grid-cols-1 gap-8">
|
|
54
|
-
<AgentDetailsEditor agentId={agentId} />
|
|
55
|
-
</div>
|
|
56
|
-
</>
|
|
57
|
-
) : (
|
|
58
|
-
<div className="flex flex-col items-center justify-center h-[60vh] text-center space-y-6">
|
|
59
|
-
<div className="relative">
|
|
60
|
-
<div className="h-24 w-24 rounded-full border-4 border-t-blue-500 border-white/5 animate-spin" />
|
|
61
|
-
<Activity className="absolute inset-0 m-auto h-8 w-8 text-blue-400 animate-pulse" />
|
|
62
|
-
</div>
|
|
63
|
-
<div>
|
|
64
|
-
<h3 className="text-xl font-bold text-white mb-2">Sincronizando con el Nodo</h3>
|
|
65
|
-
<p className="text-white/40 max-w-xs mx-auto">
|
|
66
|
-
Estamos recuperando la configuración cuántica de este agente desde la base de datos central.
|
|
67
|
-
</p>
|
|
68
|
-
</div>
|
|
69
|
-
</div>
|
|
70
|
-
)}
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
);
|
|
74
|
-
}
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { useEffect, useState } from "react";
|
|
2
|
-
import { AgentList } from "@/modules/agents/AgentList";
|
|
3
|
-
import { AgentCreateForm } from "@/modules/agents/AgentCreateForm";
|
|
4
|
-
import { Plus, RefreshCw, type LucideProps, X, Bot } from "lucide-react";
|
|
5
|
-
import { useAgents } from "@/stores/useGlobalConfigStore";
|
|
6
|
-
import type { Agent } from "@/types";
|
|
7
|
-
|
|
8
|
-
// Wrapper to fix React 19 + Lucide type compatibility
|
|
9
|
-
function Icon({ icon: IconComponent, ...props }: { icon: React.ComponentType<LucideProps> } & LucideProps) {
|
|
10
|
-
return <IconComponent {...props} />;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function AgentsPage() {
|
|
14
|
-
const { agents, isLoading, error, fetchAgents } = useAgents();
|
|
15
|
-
const [isFormOpen, setIsFormOpen] = useState(false);
|
|
16
|
-
const [editingAgent, setEditingAgent] = useState<Agent | undefined>(undefined);
|
|
17
|
-
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
fetchAgents();
|
|
20
|
-
}, [fetchAgents]);
|
|
21
|
-
|
|
22
|
-
const handleEdit = (agent: Agent) => {
|
|
23
|
-
setEditingAgent(agent);
|
|
24
|
-
setIsFormOpen(true);
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const handleCreate = () => {
|
|
28
|
-
setEditingAgent(undefined);
|
|
29
|
-
setIsFormOpen(true);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
const handleSuccess = () => {
|
|
33
|
-
setIsFormOpen(false);
|
|
34
|
-
setEditingAgent(undefined);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
return (
|
|
38
|
-
<div className="hive-page mt-10 animate-in fade-in duration-700">
|
|
39
|
-
<div className="hive-page-container">
|
|
40
|
-
{/* Header Section */}
|
|
41
|
-
<div className="hive-page-header flex flex-col sm:flex-row sm:items-end justify-between gap-6 relative z-10 mb-8">
|
|
42
|
-
<div className="relative z-10 animate-in slide-in-from-left-8 duration-700">
|
|
43
|
-
<div className="hive-page-header__eyebrow mb-3 opacity-80">
|
|
44
|
-
<div className="hive-page-header__dot animate-pulse shadow-[0_0_10px_rgba(59,130,246,0.6)]" />
|
|
45
|
-
<span className="hive-page-header__label tracking-widest font-semibold text-blue-400">NEXO CENTRAL</span>
|
|
46
|
-
</div>
|
|
47
|
-
<h2 className="text-4xl md:text-5xl font-black tracking-tight text-white drop-shadow-lg mb-4">
|
|
48
|
-
Agentes <span className="text-transparent bg-clip-text bg-gradient-to-r from-blue-400 to-purple-500">Inteligentes</span>
|
|
49
|
-
</h2>
|
|
50
|
-
<p className="text-white/60 text-sm max-w-xl leading-relaxed font-light">
|
|
51
|
-
Configura y despliega inteligencias autónomas. Cada nodo amplía las capacidades de tu infraestructura personal y de negocio con precisión absoluta.
|
|
52
|
-
</p>
|
|
53
|
-
</div>
|
|
54
|
-
|
|
55
|
-
<div className="flex items-center gap-3 relative z-10 animate-in slide-in-from-right-8 duration-700">
|
|
56
|
-
<button
|
|
57
|
-
className="px-4 py-2 bg-white/5 hover:bg-white/10 text-white/70 hover:text-white rounded-lg border border-white/10 hover:border-white/20 transition-all duration-300 flex items-center gap-2 font-medium text-sm backdrop-blur-sm group"
|
|
58
|
-
onClick={() => fetchAgents()}
|
|
59
|
-
disabled={isLoading}
|
|
60
|
-
>
|
|
61
|
-
<RefreshCw className={`h-4 w-4 transition-transform duration-500 group-hover:rotate-180 text-blue-400 ${isLoading ? "animate-spin" : ""}`} />
|
|
62
|
-
<span>Sincronizar</span>
|
|
63
|
-
</button>
|
|
64
|
-
|
|
65
|
-
<button
|
|
66
|
-
onClick={handleCreate}
|
|
67
|
-
className="px-4 py-2 bg-blue-600 hover:bg-blue-500 text-white rounded-lg border border-blue-500/50 hover:border-blue-400/50 shadow-[0_0_15px_rgba(37,99,235,0.3)] hover:shadow-[0_0_25px_rgba(59,130,246,0.5)] transition-all duration-300 flex items-center gap-2 font-medium text-sm group"
|
|
68
|
-
>
|
|
69
|
-
<Plus className="h-4 w-4 transition-transform duration-300 group-hover:rotate-90" />
|
|
70
|
-
<span>Desplegar Nodo</span>
|
|
71
|
-
</button>
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
|
|
75
|
-
{/* Content Section */}
|
|
76
|
-
<div className="relative mt-8">
|
|
77
|
-
{/* Ambient Glows */}
|
|
78
|
-
<div className="absolute -top-40 -left-40 h-[500px] w-[500px] bg-blue-600/10 rounded-full blur-[120px] pointer-events-none mix-blend-screen opacity-50" />
|
|
79
|
-
<div className="absolute top-40 -right-40 h-[400px] w-[400px] bg-purple-600/10 rounded-full blur-[100px] pointer-events-none mix-blend-screen opacity-50" />
|
|
80
|
-
|
|
81
|
-
{error ? (
|
|
82
|
-
<div className="relative overflow-hidden rounded-2xl border border-red-500/20 bg-red-500/5 backdrop-blur-lg">
|
|
83
|
-
<div className="absolute top-0 left-0 w-1 h-full bg-red-500" />
|
|
84
|
-
<div className="px-6 py-5 flex items-center gap-4 text-red-400 relative z-10">
|
|
85
|
-
<div className="p-3 rounded-xl bg-red-500/10 border border-red-500/20 shadow-[0_0_15px_rgba(239,68,68,0.15)]">
|
|
86
|
-
<X className="h-6 w-6" />
|
|
87
|
-
</div>
|
|
88
|
-
<div>
|
|
89
|
-
<p className="text-sm font-bold uppercase tracking-widest drop-shadow-sm">Error de Enlace</p>
|
|
90
|
-
<p className="text-sm text-red-300/70 mt-1 font-light">{error}</p>
|
|
91
|
-
</div>
|
|
92
|
-
</div>
|
|
93
|
-
</div>
|
|
94
|
-
) : (
|
|
95
|
-
<div className="relative z-10">
|
|
96
|
-
{isLoading && agents.length === 0 ? (
|
|
97
|
-
<div className="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
|
|
98
|
-
{[1, 2, 3].map((i) => (
|
|
99
|
-
<div key={i} className="h-64 rounded-2xl border border-white/5 bg-white/[0.02] animate-pulse" />
|
|
100
|
-
))}
|
|
101
|
-
</div>
|
|
102
|
-
) : agents.length === 0 ? (
|
|
103
|
-
<div className="flex flex-col items-center justify-center py-20 px-4 text-center border border-white/5 rounded-3xl bg-black/20 backdrop-blur-sm animate-in fade-in duration-1000">
|
|
104
|
-
<div className="h-20 w-20 rounded-full bg-blue-500/10 border border-blue-500/20 flex items-center justify-center mb-6 shadow-[0_0_30px_rgba(59,130,246,0.15)]">
|
|
105
|
-
<Bot className="h-10 w-10 text-blue-400" />
|
|
106
|
-
</div>
|
|
107
|
-
<h3 className="text-xl font-bold text-white mb-2">Colmena inactiva</h3>
|
|
108
|
-
<p className="text-white/50 max-w-md mx-auto mb-8 leading-relaxed">
|
|
109
|
-
La red neuronal está esperando ser poblada. Despliega tu primer nodo agente para comenzar a automatizar tus operaciones.
|
|
110
|
-
</p>
|
|
111
|
-
<button
|
|
112
|
-
onClick={handleCreate}
|
|
113
|
-
className="px-6 py-3 bg-blue-600 hover:bg-blue-500 text-white rounded-xl border border-blue-500/50 hover:border-blue-400/50 shadow-[0_0_20px_rgba(37,99,235,0.4)] transition-all duration-300 flex items-center gap-2 font-bold group"
|
|
114
|
-
>
|
|
115
|
-
<Plus className="h-5 w-5 transition-transform duration-300 group-hover:scale-125" />
|
|
116
|
-
<span>INICIAR DESPLIEGUE</span>
|
|
117
|
-
</button>
|
|
118
|
-
</div>
|
|
119
|
-
) : (
|
|
120
|
-
<div className="animate-in slide-in-from-bottom-8 duration-1000 fade-in fill-mode-both">
|
|
121
|
-
<AgentList agents={agents} onEdit={handleEdit} />
|
|
122
|
-
</div>
|
|
123
|
-
)}
|
|
124
|
-
</div>
|
|
125
|
-
)}
|
|
126
|
-
</div>
|
|
127
|
-
</div>
|
|
128
|
-
|
|
129
|
-
{/* Modern Overlay Form */}
|
|
130
|
-
{isFormOpen && (
|
|
131
|
-
<div className="fixed inset-0 z-50 flex items-center justify-center p-4 sm:p-6 animate-in fade-in duration-300">
|
|
132
|
-
<div
|
|
133
|
-
className="absolute inset-0 bg-black/60 backdrop-blur-md transition-opacity"
|
|
134
|
-
onClick={() => setIsFormOpen(false)}
|
|
135
|
-
/>
|
|
136
|
-
<div className="relative w-full max-w-4xl max-h-[90vh] overflow-y-auto bg-[#09090b] border border-white/10 rounded-2xl shadow-2xl animate-in zoom-in-95 duration-300">
|
|
137
|
-
<AgentCreateForm
|
|
138
|
-
initialData={editingAgent}
|
|
139
|
-
onSuccess={handleSuccess}
|
|
140
|
-
onCancel={() => setIsFormOpen(false)}
|
|
141
|
-
/>
|
|
142
|
-
</div>
|
|
143
|
-
</div>
|
|
144
|
-
)}
|
|
145
|
-
</div>
|
|
146
|
-
);
|
|
147
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
2
|
-
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
|
|
3
|
-
import { BridgeStatus } from "@/modules/bridge/BridgeStatus";
|
|
4
|
-
import { BridgeProcessList } from "@/modules/bridge/BridgeProcessList";
|
|
5
|
-
import { BridgeLogViewer } from "@/modules/bridge/BridgeLogViewer";
|
|
6
|
-
import { useBridgeStore } from "@/stores/bridgeStore";
|
|
7
|
-
import { RefreshCw, Terminal } from "lucide-react";
|
|
8
|
-
import { Button } from "@/components/ui/button";
|
|
9
|
-
|
|
10
|
-
export function BridgePage() {
|
|
11
|
-
const { isConnected, connect, connectGateway, processes, logs } = useBridgeStore();
|
|
12
|
-
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
connect();
|
|
15
|
-
connectGateway();
|
|
16
|
-
}, [connect, connectGateway]);
|
|
17
|
-
|
|
18
|
-
const status: "connected" | "connecting" | "disconnected" | "error" = isConnected
|
|
19
|
-
? "connected"
|
|
20
|
-
: "disconnected";
|
|
21
|
-
|
|
22
|
-
const runningCount = processes.filter((p) => p.status === "running").length;
|
|
23
|
-
|
|
24
|
-
return (
|
|
25
|
-
<div className="hive-page mt-10">
|
|
26
|
-
<div className="hive-page-container">
|
|
27
|
-
{/* Header */}
|
|
28
|
-
<div className="flex items-center justify-between">
|
|
29
|
-
<div>
|
|
30
|
-
<h1 className="text-xl font-semibold flex items-center gap-2">
|
|
31
|
-
<Terminal className="h-5 w-5" />
|
|
32
|
-
Code Bridge
|
|
33
|
-
</h1>
|
|
34
|
-
<p className="text-sm text-muted-foreground mt-0.5">
|
|
35
|
-
Monitoreo de comandos CLI y procesos del agente
|
|
36
|
-
</p>
|
|
37
|
-
</div>
|
|
38
|
-
<div className="flex items-center gap-3">
|
|
39
|
-
{runningCount > 0 && (
|
|
40
|
-
<span className="text-xs text-yellow-400 font-mono">
|
|
41
|
-
{runningCount} proceso{runningCount > 1 ? "s" : ""} activo{runningCount > 1 ? "s" : ""}
|
|
42
|
-
</span>
|
|
43
|
-
)}
|
|
44
|
-
<BridgeStatus status={status} />
|
|
45
|
-
<Button variant="outline" size="sm" onClick={() => { connect(); connectGateway(); }}>
|
|
46
|
-
<RefreshCw className="h-3.5 w-3.5 mr-1.5" />
|
|
47
|
-
Reconectar
|
|
48
|
-
</Button>
|
|
49
|
-
</div>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
{/* Main content */}
|
|
53
|
-
<div className="mt-4 grid grid-cols-1 lg:grid-cols-2 gap-4 h-[calc(100vh-14rem)]">
|
|
54
|
-
{/* Processes */}
|
|
55
|
-
<Card className="flex flex-col overflow-hidden">
|
|
56
|
-
<CardHeader className="py-3 px-4 border-b">
|
|
57
|
-
<CardTitle className="text-sm flex items-center justify-between">
|
|
58
|
-
<span>Procesos</span>
|
|
59
|
-
<span className="text-xs text-muted-foreground font-normal">{processes.length} total</span>
|
|
60
|
-
</CardTitle>
|
|
61
|
-
</CardHeader>
|
|
62
|
-
<CardContent className="flex-1 overflow-y-auto p-2">
|
|
63
|
-
<BridgeProcessList />
|
|
64
|
-
</CardContent>
|
|
65
|
-
</Card>
|
|
66
|
-
|
|
67
|
-
{/* Logs */}
|
|
68
|
-
<Card className="flex flex-col overflow-hidden">
|
|
69
|
-
<CardHeader className="py-3 px-4 border-b">
|
|
70
|
-
<CardTitle className="text-sm flex items-center justify-between">
|
|
71
|
-
<span>Logs</span>
|
|
72
|
-
<span className="text-xs text-muted-foreground font-normal">{logs.length} entradas</span>
|
|
73
|
-
</CardTitle>
|
|
74
|
-
</CardHeader>
|
|
75
|
-
<CardContent className="flex-1 overflow-hidden p-0">
|
|
76
|
-
<BridgeLogViewer />
|
|
77
|
-
</CardContent>
|
|
78
|
-
</Card>
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
);
|
|
83
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { useParams } from "react-router-dom";
|
|
2
|
-
import { CanvasContainer } from "@/modules/canvas/CanvasContainer";
|
|
3
|
-
import { useUserStore } from "@/stores/userStore";
|
|
4
|
-
|
|
5
|
-
export function CanvasPage() {
|
|
6
|
-
const { sessionId: paramSessionId } = useParams<{ sessionId: string }>();
|
|
7
|
-
const { currentUser } = useUserStore();
|
|
8
|
-
|
|
9
|
-
// Priorizar el ID del usuario real si el parámetro es "default" o no existe
|
|
10
|
-
const sessionId = (paramSessionId && paramSessionId !== "default") ? paramSessionId : currentUser?.id;
|
|
11
|
-
|
|
12
|
-
if (!sessionId) {
|
|
13
|
-
return (
|
|
14
|
-
<div className="flex h-[calc(100vh-4rem)] items-center justify-center">
|
|
15
|
-
<div className="flex flex-col items-center gap-2">
|
|
16
|
-
<div className="h-8 w-8 animate-spin rounded-full border-2 border-primary border-t-transparent" />
|
|
17
|
-
<p className="text-sm text-muted-foreground">Cargando sesión...</p>
|
|
18
|
-
</div>
|
|
19
|
-
</div>
|
|
20
|
-
);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return (
|
|
24
|
-
<div className="flex h-[calc(100vh-4rem)] flex-col bg-background/50 backdrop-blur-sm">
|
|
25
|
-
<div className="flex-1 overflow-hidden p-4 lg:p-8">
|
|
26
|
-
<div className="mx-auto h-full max-w-7xl">
|
|
27
|
-
<CanvasContainer sessionId={sessionId} />
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
);
|
|
32
|
-
}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect, useMemo } from "react";
|
|
2
|
-
import { Plus, RefreshCw, Layers, Zap, Info } from "lucide-react";
|
|
3
|
-
import { Button } from "@/components/ui/button";
|
|
4
|
-
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
|
5
|
-
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
|
|
6
|
-
import { useChannels } from "@/hooks/useChannels";
|
|
7
|
-
import { ChannelCard } from "@/modules/channels/shared/ChannelCard";
|
|
8
|
-
import { ChannelConfigDialog } from "@/modules/channels/shared/ChannelConfigDialog";
|
|
9
|
-
import type { ConnectedChannel } from "@/types";
|
|
10
|
-
|
|
11
|
-
export function ChannelsPage() {
|
|
12
|
-
const {
|
|
13
|
-
channels,
|
|
14
|
-
activeChannels,
|
|
15
|
-
fetchChannels,
|
|
16
|
-
isLoading,
|
|
17
|
-
toggleChannel,
|
|
18
|
-
updateChannel
|
|
19
|
-
} = useChannels();
|
|
20
|
-
|
|
21
|
-
const [activeTab, setActiveTab] = useState("all");
|
|
22
|
-
const [selectedChannel, setSelectedChannel] = useState<ConnectedChannel | null>(null);
|
|
23
|
-
const [isDialogOpen, setIsDialogOpen] = useState(false);
|
|
24
|
-
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
fetchChannels();
|
|
27
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28
|
-
}, []);
|
|
29
|
-
|
|
30
|
-
const filteredChannels = useMemo(() => {
|
|
31
|
-
if (activeTab === "all") return channels;
|
|
32
|
-
if (activeTab === "active") return channels.filter(c => c.active);
|
|
33
|
-
if (activeTab === "inactive") return channels.filter(c => !c.active);
|
|
34
|
-
return channels;
|
|
35
|
-
}, [channels, activeTab]);
|
|
36
|
-
|
|
37
|
-
const handleEdit = (channel: ConnectedChannel) => {
|
|
38
|
-
setSelectedChannel(channel);
|
|
39
|
-
setIsDialogOpen(true);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const handleAdd = () => {
|
|
43
|
-
setSelectedChannel(null);
|
|
44
|
-
setIsDialogOpen(true);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const handleSave = async (id: string, data: Partial<ConnectedChannel>) => {
|
|
48
|
-
if (id === "new") {
|
|
49
|
-
// Logic for adding new channel would go here (API POST)
|
|
50
|
-
console.log("Add new channel", data);
|
|
51
|
-
} else {
|
|
52
|
-
await updateChannel(id, data);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
return (
|
|
57
|
-
<div className="hive-page-container animate-fade-in mt-10">
|
|
58
|
-
|
|
59
|
-
{/* ── Header ────────────────────────────────────────────────────────── */}
|
|
60
|
-
<div className="hive-page-header">
|
|
61
|
-
<div className="flex flex-col md:flex-row md:items-center justify-between gap-6">
|
|
62
|
-
<div>
|
|
63
|
-
<div className="flex items-center gap-3 mb-2">
|
|
64
|
-
<div className="h-10 w-10 rounded-xl bg-blue-500/10 border border-blue-500/20 flex items-center justify-center text-blue-400">
|
|
65
|
-
<Layers className="h-6 w-6" />
|
|
66
|
-
</div>
|
|
67
|
-
<h1 className="text-3xl font-black text-white uppercase tracking-tighter">Canales</h1>
|
|
68
|
-
</div>
|
|
69
|
-
<p className="hive-subtitle">
|
|
70
|
-
Gestiona tus puntos de entrada y salida de comunicación en la red Hive.
|
|
71
|
-
</p>
|
|
72
|
-
</div>
|
|
73
|
-
|
|
74
|
-
<div className="flex items-center gap-3">
|
|
75
|
-
<button
|
|
76
|
-
onClick={() => fetchChannels()}
|
|
77
|
-
disabled={isLoading}
|
|
78
|
-
className="hive-btn hive-btn--ghost px-6 text-[10px]"
|
|
79
|
-
>
|
|
80
|
-
<RefreshCw className={`h-3.5 w-3.5 mr-2 ${isLoading ? "animate-spin" : ""}`} />
|
|
81
|
-
SINCRONIZAR
|
|
82
|
-
</button>
|
|
83
|
-
<button
|
|
84
|
-
onClick={handleAdd}
|
|
85
|
-
className="hive-btn hive-btn--primary px-8 text-[10px]"
|
|
86
|
-
>
|
|
87
|
-
<Plus className="h-3.5 w-3.5 mr-2" />
|
|
88
|
-
NUEVO CANAL
|
|
89
|
-
</button>
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
</div>
|
|
93
|
-
|
|
94
|
-
<div className="hive-card border-blue-500/10 !bg-blue-500/[0.02] mb-8 overflow-hidden relative">
|
|
95
|
-
<div className="hive-card-body py-4 px-6 flex items-center justify-between relative z-10">
|
|
96
|
-
<div className="flex items-center gap-4">
|
|
97
|
-
<div className="h-8 w-8 rounded-lg bg-blue-500/10 flex items-center justify-center text-blue-400">
|
|
98
|
-
<Zap className="h-4 w-4" />
|
|
99
|
-
</div>
|
|
100
|
-
<div>
|
|
101
|
-
<p className="text-[10px] font-black tracking-widest text-blue-500/50 uppercase">Estado Operativo</p>
|
|
102
|
-
<p className="text-xs text-white/60">
|
|
103
|
-
Actualmente tienes <span className="text-blue-400 font-black">{activeChannels.length}</span> canales procesando datos.
|
|
104
|
-
</p>
|
|
105
|
-
</div>
|
|
106
|
-
</div>
|
|
107
|
-
<div className="text-[10px] text-white/20 font-black tracking-widest uppercase">
|
|
108
|
-
HIVE NODE SECURE
|
|
109
|
-
</div>
|
|
110
|
-
</div>
|
|
111
|
-
<div className="hive-glow-blob hive-glow-blob--blue -top-10 -right-10 h-32 w-32 opacity-10" />
|
|
112
|
-
</div>
|
|
113
|
-
|
|
114
|
-
<div className="flex items-center gap-1.5 p-1 bg-white/5 rounded-2xl w-fit border border-white/5 mb-8">
|
|
115
|
-
{[
|
|
116
|
-
{ id: "all", label: `TODOS (${channels.length})` },
|
|
117
|
-
{ id: "active", label: "ACTIVOS" },
|
|
118
|
-
{ id: "inactive", label: "INACTIVOS" }
|
|
119
|
-
].map(tab => (
|
|
120
|
-
<button
|
|
121
|
-
key={tab.id}
|
|
122
|
-
onClick={() => setActiveTab(tab.id)}
|
|
123
|
-
className={`px-8 py-2.5 rounded-xl text-[10px] font-black tracking-widest uppercase transition-all duration-300 ${activeTab === tab.id
|
|
124
|
-
? 'bg-blue-500 text-white shadow-blue-glow'
|
|
125
|
-
: 'text-white/20 hover:text-white/40 hover:bg-white/5'
|
|
126
|
-
}`}
|
|
127
|
-
>
|
|
128
|
-
{tab.label}
|
|
129
|
-
</button>
|
|
130
|
-
))}
|
|
131
|
-
</div>
|
|
132
|
-
|
|
133
|
-
<div className="animate-fade-in">
|
|
134
|
-
{filteredChannels.length > 0 ? (
|
|
135
|
-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
136
|
-
{filteredChannels.map((channel) => (
|
|
137
|
-
<ChannelCard
|
|
138
|
-
key={channel.id}
|
|
139
|
-
channel={channel}
|
|
140
|
-
onEdit={handleEdit}
|
|
141
|
-
onToggle={toggleChannel}
|
|
142
|
-
/>
|
|
143
|
-
))}
|
|
144
|
-
</div>
|
|
145
|
-
) : (
|
|
146
|
-
<div className="hive-card border-dashed border-white/10 bg-white/[0.02]">
|
|
147
|
-
<div className="hive-card-body flex flex-col items-center justify-center py-20 px-4">
|
|
148
|
-
<div className="h-20 w-20 rounded-2xl bg-white/5 flex items-center justify-center mb-6">
|
|
149
|
-
<Layers className="h-10 w-10 text-white/10" />
|
|
150
|
-
</div>
|
|
151
|
-
<div className="text-center">
|
|
152
|
-
<p className="hive-title-section text-center mb-2">No se detectaron canales</p>
|
|
153
|
-
<p className="text-xs text-white/40 mb-8 max-w-[300px] mx-auto leading-relaxed">
|
|
154
|
-
Configura tu primer punto de enlace para empezar a recibir datos en tiempo real.
|
|
155
|
-
</p>
|
|
156
|
-
<button
|
|
157
|
-
onClick={handleAdd}
|
|
158
|
-
className="hive-btn hive-btn--primary px-10 text-[10px]"
|
|
159
|
-
>
|
|
160
|
-
ESTABLECER CONEXIÓNHORA
|
|
161
|
-
</button>
|
|
162
|
-
</div>
|
|
163
|
-
</div>
|
|
164
|
-
</div>
|
|
165
|
-
)}
|
|
166
|
-
</div>
|
|
167
|
-
|
|
168
|
-
<ChannelConfigDialog
|
|
169
|
-
channel={selectedChannel}
|
|
170
|
-
isOpen={isDialogOpen}
|
|
171
|
-
onClose={() => setIsDialogOpen(false)}
|
|
172
|
-
onSave={handleSave}
|
|
173
|
-
/>
|
|
174
|
-
</div>
|
|
175
|
-
);
|
|
176
|
-
}
|