@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,361 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from "react";
|
|
2
|
-
import { ShieldAlert, Save, Loader2, Plus, Check, Zap, Shield, Unlock, AlertTriangle } from "lucide-react";
|
|
3
|
-
import { useEthicsStore } from "@/stores/ethicsStore";
|
|
4
|
-
import { Textarea } from "@/components/ui/textarea";
|
|
5
|
-
import { Toast } from "@/lib/swal";
|
|
6
|
-
import { loader } from "@/stores/useLoaderStore";
|
|
7
|
-
import { apiClient } from "@/lib/api";
|
|
8
|
-
|
|
9
|
-
const TEMPLATES = [
|
|
10
|
-
{
|
|
11
|
-
id: "paranoid",
|
|
12
|
-
name: "Paranoico",
|
|
13
|
-
icon: Shield,
|
|
14
|
-
description: "Confirmación explícita para toda acción",
|
|
15
|
-
content: "# Ética — Modo Paranoico\n\n- No ejecutar ningún comando sin confirmación explícita\n- No acceder a archivos fuera del workspace\n- No compartir información entre sesiones\n- Confirmar cada acción destructiva individualmente",
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
id: "balanced",
|
|
19
|
-
name: "Equilibrado",
|
|
20
|
-
icon: ShieldAlert,
|
|
21
|
-
description: "Confirma acciones destructivas, permite lectura libre",
|
|
22
|
-
content: "# Ética — Modo Equilibrado\n\n- Confirmar acciones destructivas (borrar archivos, commits, deploys)\n- Permitir lectura de archivos del workspace sin confirmación\n- Informar cuando se usen tools o APIs externas\n- No afirmar ser humano cuando se pregunte directamente",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: "permissive",
|
|
26
|
-
name: "Permisivo",
|
|
27
|
-
icon: Unlock,
|
|
28
|
-
description: "Máxima autonomía, solo confirma pagos",
|
|
29
|
-
content: "# Ética — Modo Permisivo\n\n- Máxima autonomía para el agente\n- Solo confirmar pagos o transacciones\n- Permitir ejecución de comandos sin confirmación\n- Informar errores pero continuar automáticamente",
|
|
30
|
-
},
|
|
31
|
-
];
|
|
32
|
-
|
|
33
|
-
import type { EthicsConfig } from "@/types";
|
|
34
|
-
|
|
35
|
-
// Interfaz interna para manejar los datos que vienen de la API de base de datos
|
|
36
|
-
interface EthicsRecord extends EthicsConfig {
|
|
37
|
-
name: string;
|
|
38
|
-
description?: string;
|
|
39
|
-
active: number;
|
|
40
|
-
is_default?: number;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export function EthicsTemplateGallery() {
|
|
44
|
-
const { configs, fetchEthics, isLoading } = useEthicsStore();
|
|
45
|
-
const [selectedId, setSelectedId] = useState<string | null>(null);
|
|
46
|
-
const [content, setContent] = useState("");
|
|
47
|
-
const [isSaving, setIsSaving] = useState(false);
|
|
48
|
-
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
fetchEthics().catch(console.error);
|
|
51
|
-
}, [fetchEthics]);
|
|
52
|
-
|
|
53
|
-
useEffect(() => {
|
|
54
|
-
if (configs.length === 0) return;
|
|
55
|
-
const records = configs as unknown as EthicsRecord[];
|
|
56
|
-
const active = records.find(e => e.active) || records[0];
|
|
57
|
-
if (!selectedId) {
|
|
58
|
-
setSelectedId(active.id);
|
|
59
|
-
setContent(active.content);
|
|
60
|
-
}
|
|
61
|
-
}, [configs, selectedId]);
|
|
62
|
-
|
|
63
|
-
const selected = (configs as unknown as EthicsRecord[]).find(e => e.id === selectedId);
|
|
64
|
-
|
|
65
|
-
const handleSelect = (record: EthicsRecord) => {
|
|
66
|
-
setSelectedId(record.id);
|
|
67
|
-
setContent(record.content);
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
const handleSetActive = async (id: string) => {
|
|
71
|
-
loader.show("Activando registro de ética...");
|
|
72
|
-
const records = configs as unknown as EthicsRecord[];
|
|
73
|
-
try {
|
|
74
|
-
const results = await Promise.all(
|
|
75
|
-
records.map(e =>
|
|
76
|
-
apiClient<{ message?: string }>(`/api/ethics/${e.id}`, {
|
|
77
|
-
method: "PUT",
|
|
78
|
-
body: { active: e.id === id ? 1 : 0 },
|
|
79
|
-
}).catch(() => ({} as { message?: string }))
|
|
80
|
-
)
|
|
81
|
-
);
|
|
82
|
-
await fetchEthics();
|
|
83
|
-
const activeResult = results.find((_, i) => records[i].id === id);
|
|
84
|
-
Toast.fire({ icon: "success", title: activeResult?.message || "Registro de ética activado" });
|
|
85
|
-
} catch (err) {
|
|
86
|
-
Toast.fire({ icon: "error", title: err instanceof Error ? err.message : "Error al activar registro" });
|
|
87
|
-
} finally {
|
|
88
|
-
loader.hide();
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
const handleSave = async () => {
|
|
93
|
-
if (!selected) return;
|
|
94
|
-
setIsSaving(true);
|
|
95
|
-
loader.show("Guardando lineamientos éticos...");
|
|
96
|
-
try {
|
|
97
|
-
const data = await apiClient<{ message?: string }>(`/api/ethics/${selected.id}`, {
|
|
98
|
-
method: "PUT",
|
|
99
|
-
body: { content },
|
|
100
|
-
});
|
|
101
|
-
await fetchEthics();
|
|
102
|
-
Toast.fire({ icon: "success", title: data.message || "Contenido ético guardado" });
|
|
103
|
-
} catch (err) {
|
|
104
|
-
Toast.fire({ icon: "error", title: err instanceof Error ? err.message : "Error al guardar" });
|
|
105
|
-
} finally {
|
|
106
|
-
setIsSaving(false);
|
|
107
|
-
loader.hide();
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
const handleApplyTemplate = (templateContent: string) => {
|
|
112
|
-
setContent(templateContent);
|
|
113
|
-
Toast.fire({ icon: "info", title: "Plantilla aplicada — guarda para confirmar" });
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
const handleCreateFromTemplate = async (tpl: typeof TEMPLATES[number]) => {
|
|
117
|
-
loader.show(`Creando registro "${tpl.name}"...`);
|
|
118
|
-
try {
|
|
119
|
-
const data = await apiClient<{ message?: string }>("/api/ethics", {
|
|
120
|
-
method: "POST",
|
|
121
|
-
body: { name: tpl.name, description: tpl.description, content: tpl.content },
|
|
122
|
-
});
|
|
123
|
-
await fetchEthics();
|
|
124
|
-
Toast.fire({ icon: "success", title: data.message || `Creado registro "${tpl.name}"` });
|
|
125
|
-
} catch (err) {
|
|
126
|
-
Toast.fire({ icon: "error", title: err instanceof Error ? err.message : "Error al crear registro" });
|
|
127
|
-
} finally {
|
|
128
|
-
loader.hide();
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
if (isLoading && configs.length === 0) {
|
|
133
|
-
return (
|
|
134
|
-
<div className="flex flex-col items-center justify-center py-20 border border-white/5 bg-zinc-950/30 rounded-2xl">
|
|
135
|
-
<Loader2 className="h-8 w-8 animate-spin text-amber-500 mb-4 opacity-50" />
|
|
136
|
-
<span className="hive-label">Cargando lineamientos operativos...</span>
|
|
137
|
-
</div>
|
|
138
|
-
);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return (
|
|
142
|
-
<div className="space-y-8 animate-fade-in">
|
|
143
|
-
|
|
144
|
-
{/* ── Header ────────────────────────────────────────────────────────── */}
|
|
145
|
-
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
|
|
146
|
-
<div>
|
|
147
|
-
<div className="flex items-center gap-2 mb-2">
|
|
148
|
-
<h3 className="hive-title-section !text-lg">Protocolos Éticos</h3>
|
|
149
|
-
<span className="hive-tag hive-tag--provider">
|
|
150
|
-
{configs.length} REGISTROS
|
|
151
|
-
</span>
|
|
152
|
-
</div>
|
|
153
|
-
<p className="hive-subtitle !mt-0 !text-xs">
|
|
154
|
-
Define la capa moral y los límites operacionales de tus agentes inteligentes.
|
|
155
|
-
</p>
|
|
156
|
-
</div>
|
|
157
|
-
|
|
158
|
-
<div className="flex items-center gap-2 text-[10px] uppercase tracking-widest font-black text-white/20 bg-white/5 px-4 py-2 rounded-xl border border-white/5">
|
|
159
|
-
<Shield className="h-3.5 w-3.5" />
|
|
160
|
-
<span>Configuración del Núcleo</span>
|
|
161
|
-
</div>
|
|
162
|
-
</div>
|
|
163
|
-
|
|
164
|
-
{/* ── Records grid ──────────────────────────────────────────────────── */}
|
|
165
|
-
{configs.length === 0 ? (
|
|
166
|
-
<div className="hive-card border-dashed border-white/10 bg-white/[0.02]">
|
|
167
|
-
<div className="hive-card-body flex flex-col items-center justify-center py-16 px-4">
|
|
168
|
-
<div className="h-16 w-16 rounded-2xl bg-white/5 flex items-center justify-center mb-6">
|
|
169
|
-
<AlertTriangle className="h-8 w-8 text-white/20" />
|
|
170
|
-
</div>
|
|
171
|
-
<div className="text-center">
|
|
172
|
-
<p className="hive-title-section text-center mb-2">Sin Protocolos Base</p>
|
|
173
|
-
<p className="text-xs text-white/40 mb-8 max-w-[300px] mx-auto leading-relaxed">
|
|
174
|
-
No se han detectado lineamientos éticos en el sistema. Selecciona una de las plantillas inferiores para comenzar.
|
|
175
|
-
</p>
|
|
176
|
-
</div>
|
|
177
|
-
</div>
|
|
178
|
-
</div>
|
|
179
|
-
) : (
|
|
180
|
-
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
|
|
181
|
-
{(configs as EthicsRecord[]).map(record => {
|
|
182
|
-
const isActive = !!record.active;
|
|
183
|
-
const isSelected = selectedId === record.id;
|
|
184
|
-
return (
|
|
185
|
-
<div
|
|
186
|
-
key={record.id}
|
|
187
|
-
onClick={() => handleSelect(record)}
|
|
188
|
-
className={`hive-card group transition-all duration-500 cursor-pointer ${isSelected
|
|
189
|
-
? 'hive-card--active'
|
|
190
|
-
: 'opacity-60 grayscale-[0.8] hover:opacity-100 hover:grayscale-0'
|
|
191
|
-
}`}
|
|
192
|
-
>
|
|
193
|
-
<div className="hive-card-body relative overflow-hidden">
|
|
194
|
-
<div className="flex items-start justify-between mb-6">
|
|
195
|
-
<div className={`hive-icon-wrap--internal ${isSelected
|
|
196
|
-
? 'hive-icon-wrap--internal-active'
|
|
197
|
-
: 'hive-icon-wrap--internal-disabled'
|
|
198
|
-
}`}>
|
|
199
|
-
<ShieldAlert className="h-6 w-6" />
|
|
200
|
-
</div>
|
|
201
|
-
|
|
202
|
-
<div className="flex items-center gap-2">
|
|
203
|
-
{isActive && (
|
|
204
|
-
<span className="hive-status-label--active">
|
|
205
|
-
ACTIVO
|
|
206
|
-
</span>
|
|
207
|
-
)}
|
|
208
|
-
<div className={isActive ? "hive-status-dot--active" : "hive-status-dot--disabled"} />
|
|
209
|
-
</div>
|
|
210
|
-
</div>
|
|
211
|
-
|
|
212
|
-
<div className="space-y-4">
|
|
213
|
-
<div>
|
|
214
|
-
<h3 className="text-lg font-black text-white uppercase tracking-tighter mb-1 line-clamp-1 group-hover:text-blue-400 transition-colors text-ellipsis">
|
|
215
|
-
{record.name}
|
|
216
|
-
</h3>
|
|
217
|
-
<p className="text-xs text-white/40 font-medium leading-relaxed line-clamp-1 h-4">
|
|
218
|
-
{record.description || "Sin descripción adicional"}
|
|
219
|
-
</p>
|
|
220
|
-
</div>
|
|
221
|
-
|
|
222
|
-
<div className="pt-4 border-t border-white/5 flex items-center gap-4">
|
|
223
|
-
<div className="hive-stat">
|
|
224
|
-
<span className="hive-stat__label">CONFIG</span>
|
|
225
|
-
<span className="hive-stat__value">{record.is_default ? "DEFAULT" : "CUSTOM"}</span>
|
|
226
|
-
</div>
|
|
227
|
-
<div className="hive-stat">
|
|
228
|
-
<span className="hive-stat__label">PRECEDENCIA</span>
|
|
229
|
-
<span className="hive-stat__value">{isActive ? "ALTA" : "NORMAL"}</span>
|
|
230
|
-
</div>
|
|
231
|
-
</div>
|
|
232
|
-
</div>
|
|
233
|
-
|
|
234
|
-
{isSelected && (
|
|
235
|
-
<div className="hive-glow-blob--card hive-glow-blob--blue -bottom-10 -right-10 h-24 w-24 opacity-20" />
|
|
236
|
-
)}
|
|
237
|
-
</div>
|
|
238
|
-
<div className={`hive-strip--bottom ${!isActive ? 'opacity-20' : ''}`} />
|
|
239
|
-
</div>
|
|
240
|
-
);
|
|
241
|
-
})}
|
|
242
|
-
</div>
|
|
243
|
-
)}
|
|
244
|
-
|
|
245
|
-
{/* ── Editor ────────────────────────────────────────────────────────── */}
|
|
246
|
-
{selected && (
|
|
247
|
-
<div className="hive-card border-white/10 !bg-white/[0.02] overflow-hidden">
|
|
248
|
-
<div className="hive-card-body p-0">
|
|
249
|
-
<div className="flex items-center justify-between p-6 border-b border-white/5 bg-white/5 relative overflow-hidden">
|
|
250
|
-
<div className="hive-glow-blob--card hive-glow-blob--blue -top-10 -right-10 h-32 w-32 opacity-20" />
|
|
251
|
-
<div className="flex items-center gap-4 relative z-10">
|
|
252
|
-
<div className="hive-icon-wrap--internal hive-icon-wrap--internal-active">
|
|
253
|
-
<Shield className="h-6 w-6" />
|
|
254
|
-
</div>
|
|
255
|
-
<div>
|
|
256
|
-
<h2 className="hive-title-page !text-2xl">{selected.name}</h2>
|
|
257
|
-
<p className="hive-subtitle !mt-0">Sintonización de la capa moral y operativa.</p>
|
|
258
|
-
</div>
|
|
259
|
-
</div>
|
|
260
|
-
|
|
261
|
-
<div className="flex items-center gap-3 relative z-10">
|
|
262
|
-
{!selected.active && (
|
|
263
|
-
<button
|
|
264
|
-
className="hive-btn hive-btn--ghost px-6 text-[10px]"
|
|
265
|
-
onClick={() => handleSetActive(selected.id)}
|
|
266
|
-
>
|
|
267
|
-
ESTABLECER COMO ACTIVO
|
|
268
|
-
</button>
|
|
269
|
-
)}
|
|
270
|
-
<button
|
|
271
|
-
onClick={handleSave}
|
|
272
|
-
disabled={isSaving}
|
|
273
|
-
className="hive-btn hive-btn--primary px-8 text-[10px]"
|
|
274
|
-
>
|
|
275
|
-
{isSaving ? "SINCRONIZANDO..." : "GUARDAR LINEAMIENTOS"}
|
|
276
|
-
</button>
|
|
277
|
-
</div>
|
|
278
|
-
</div>
|
|
279
|
-
|
|
280
|
-
<div className="p-0 bg-[#09090b]">
|
|
281
|
-
<Textarea
|
|
282
|
-
placeholder="Define los lineamientos éticos del agente..."
|
|
283
|
-
value={content}
|
|
284
|
-
onChange={e => setContent(e.target.value)}
|
|
285
|
-
className="hive-textarea w-full !bg-zinc-950/50 border-none focus-visible:ring-0 text-amber-50/90 font-mono text-xs leading-relaxed min-h-[300px] p-8 resize-none placeholder:text-white/10"
|
|
286
|
-
/>
|
|
287
|
-
</div>
|
|
288
|
-
|
|
289
|
-
<div className="p-4 bg-white/[0.02] border-t border-white/5 flex items-center justify-between">
|
|
290
|
-
<div className="flex items-center gap-6">
|
|
291
|
-
<div className="hive-stat">
|
|
292
|
-
<span className="hive-stat__label">IDENTIFICADOR</span>
|
|
293
|
-
<span className="hive-stat__value">{selected.id}</span>
|
|
294
|
-
</div>
|
|
295
|
-
<div className="hive-stat">
|
|
296
|
-
<span className="hive-stat__label">ESTADO DE CAPA</span>
|
|
297
|
-
<span className="hive-stat__value hive-stat__value--active">{selected.active ? "SISTEMA ACTIVO" : "PENDIENTE"}</span>
|
|
298
|
-
</div>
|
|
299
|
-
</div>
|
|
300
|
-
<div className="text-[10px] text-white/20 font-black tracking-widest uppercase">
|
|
301
|
-
HIVE ETHICS CORE V1.0
|
|
302
|
-
</div>
|
|
303
|
-
</div>
|
|
304
|
-
</div>
|
|
305
|
-
</div>
|
|
306
|
-
)}
|
|
307
|
-
|
|
308
|
-
{/* ── Templates ─────────────────────────────────────────────────────── */}
|
|
309
|
-
{/* ── Templates ─────────────────────────────────────────────────────── */}
|
|
310
|
-
<div className="space-y-6 pt-4">
|
|
311
|
-
<h4 className="hive-title-section !text-base uppercase">Librería de Plantillas</h4>
|
|
312
|
-
<div className="grid grid-cols-1 sm:grid-cols-3 gap-6">
|
|
313
|
-
{TEMPLATES.map(tpl => {
|
|
314
|
-
const Icon = tpl.icon;
|
|
315
|
-
return (
|
|
316
|
-
<div
|
|
317
|
-
key={tpl.id}
|
|
318
|
-
className="hive-card group bg-white/[0.02] border-white/5 hover:border-white/10 transition-all duration-500"
|
|
319
|
-
>
|
|
320
|
-
<div className="hive-card-body">
|
|
321
|
-
<div className="flex items-start justify-between mb-6">
|
|
322
|
-
<div className="h-12 w-12 rounded-xl bg-white/5 border border-white/5 flex items-center justify-center group-hover:bg-blue-500/10 group-hover:border-blue-500/20 group-hover:text-blue-400 transition-all duration-500">
|
|
323
|
-
<Icon className="h-6 w-6" />
|
|
324
|
-
</div>
|
|
325
|
-
</div>
|
|
326
|
-
|
|
327
|
-
<div className="mb-8">
|
|
328
|
-
<h3 className="text-base font-black text-white uppercase tracking-tighter mb-1 transition-colors group-hover:text-blue-400">
|
|
329
|
-
{tpl.name}
|
|
330
|
-
</h3>
|
|
331
|
-
<p className="text-[11px] text-white/40 font-medium leading-relaxed line-clamp-2">
|
|
332
|
-
{tpl.description}
|
|
333
|
-
</p>
|
|
334
|
-
</div>
|
|
335
|
-
|
|
336
|
-
<div className="grid grid-cols-2 gap-3">
|
|
337
|
-
{selected && (
|
|
338
|
-
<button
|
|
339
|
-
onClick={() => handleApplyTemplate(tpl.content)}
|
|
340
|
-
className="hive-btn hive-btn--primary !text-[10px] !h-9"
|
|
341
|
-
>
|
|
342
|
-
APLICAR
|
|
343
|
-
</button>
|
|
344
|
-
)}
|
|
345
|
-
<button
|
|
346
|
-
onClick={() => handleCreateFromTemplate(tpl)}
|
|
347
|
-
className="hive-btn hive-btn--ghost !bg-white/5 !text-white/40 !border-white/5 hover:!bg-white/10 hover:!text-white !text-[10px] !h-9"
|
|
348
|
-
>
|
|
349
|
-
CLONAR
|
|
350
|
-
</button>
|
|
351
|
-
</div>
|
|
352
|
-
</div>
|
|
353
|
-
</div>
|
|
354
|
-
);
|
|
355
|
-
})}
|
|
356
|
-
</div>
|
|
357
|
-
</div>
|
|
358
|
-
|
|
359
|
-
</div>
|
|
360
|
-
);
|
|
361
|
-
}
|