@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.
Files changed (427) hide show
  1. package/README.md +178 -36
  2. package/dist/hive.js +315124 -0
  3. package/package.json +11 -3
  4. package/packages/core/src/index.ts +0 -1
  5. package/.dockerignore +0 -9
  6. package/CONTRIBUTING.md +0 -44
  7. package/Dockerfile +0 -67
  8. package/docker-compose.yml +0 -19
  9. package/packages/cli/package.json +0 -28
  10. package/packages/cli/src/commands/agent-run.ts +0 -168
  11. package/packages/cli/src/commands/agents.ts +0 -398
  12. package/packages/cli/src/commands/chat.ts +0 -142
  13. package/packages/cli/src/commands/config.ts +0 -50
  14. package/packages/cli/src/commands/cron.ts +0 -161
  15. package/packages/cli/src/commands/dev.ts +0 -95
  16. package/packages/cli/src/commands/doctor.ts +0 -133
  17. package/packages/cli/src/commands/gateway.ts +0 -422
  18. package/packages/cli/src/commands/logs.ts +0 -57
  19. package/packages/cli/src/commands/mcp.ts +0 -175
  20. package/packages/cli/src/commands/message.ts +0 -77
  21. package/packages/cli/src/commands/onboard.ts +0 -1696
  22. package/packages/cli/src/commands/security.ts +0 -144
  23. package/packages/cli/src/commands/service.ts +0 -50
  24. package/packages/cli/src/commands/sessions.ts +0 -116
  25. package/packages/cli/src/commands/skills.ts +0 -187
  26. package/packages/cli/src/commands/update.ts +0 -25
  27. package/packages/cli/src/index.ts +0 -190
  28. package/packages/cli/src/utils/token.ts +0 -6
  29. package/packages/code-bridge/README.md +0 -78
  30. package/packages/code-bridge/package.json +0 -18
  31. package/packages/code-bridge/src/index.ts +0 -95
  32. package/packages/code-bridge/src/process-manager.ts +0 -212
  33. package/packages/code-bridge/src/schemas.ts +0 -133
  34. package/packages/core/package.json +0 -55
  35. package/packages/core/src/agent/agent-loop.ts +0 -520
  36. package/packages/core/src/agent/compaction.ts +0 -183
  37. package/packages/core/src/agent/context-compiler.ts +0 -544
  38. package/packages/core/src/agent/context-guard.ts +0 -91
  39. package/packages/core/src/agent/conversation-store.ts +0 -193
  40. package/packages/core/src/agent/curator.ts +0 -158
  41. package/packages/core/src/agent/hooks.ts +0 -166
  42. package/packages/core/src/agent/llm-client.ts +0 -503
  43. package/packages/core/src/agent/native-tools.ts +0 -31
  44. package/packages/core/src/agent/playbook-selector.ts +0 -143
  45. package/packages/core/src/agent/prompt-builder.ts +0 -167
  46. package/packages/core/src/agent/providers/index.ts +0 -186
  47. package/packages/core/src/agent/providers.ts +0 -1
  48. package/packages/core/src/agent/reflector.ts +0 -200
  49. package/packages/core/src/agent/service.ts +0 -266
  50. package/packages/core/src/agent/skill-selector.ts +0 -413
  51. package/packages/core/src/agent/stuck-loop.ts +0 -133
  52. package/packages/core/src/agent/tool-selector.ts +0 -623
  53. package/packages/core/src/agent/tracer.ts +0 -102
  54. package/packages/core/src/canvas/canvas-manager.ts +0 -319
  55. package/packages/core/src/canvas/canvas-tools.ts +0 -420
  56. package/packages/core/src/canvas/emitter.ts +0 -119
  57. package/packages/core/src/canvas/index.ts +0 -2
  58. package/packages/core/src/channels/base.ts +0 -140
  59. package/packages/core/src/channels/discord.ts +0 -260
  60. package/packages/core/src/channels/index.ts +0 -7
  61. package/packages/core/src/channels/manager.ts +0 -383
  62. package/packages/core/src/channels/slack.ts +0 -287
  63. package/packages/core/src/channels/telegram.ts +0 -552
  64. package/packages/core/src/channels/webchat.ts +0 -139
  65. package/packages/core/src/channels/whatsapp.ts +0 -375
  66. package/packages/core/src/config/index.ts +0 -12
  67. package/packages/core/src/config/loader.ts +0 -529
  68. package/packages/core/src/events/agent-bus.ts +0 -460
  69. package/packages/core/src/events/event-bus.ts +0 -169
  70. package/packages/core/src/gateway/helpers/cors.ts +0 -32
  71. package/packages/core/src/gateway/helpers/index.ts +0 -4
  72. package/packages/core/src/gateway/helpers/narration.ts +0 -60
  73. package/packages/core/src/gateway/helpers/path.ts +0 -13
  74. package/packages/core/src/gateway/helpers/redact.ts +0 -61
  75. package/packages/core/src/gateway/index.ts +0 -5
  76. package/packages/core/src/gateway/initializer.ts +0 -332
  77. package/packages/core/src/gateway/lane-queue.ts +0 -169
  78. package/packages/core/src/gateway/resolver.ts +0 -108
  79. package/packages/core/src/gateway/router.ts +0 -124
  80. package/packages/core/src/gateway/routes/agents.ts +0 -187
  81. package/packages/core/src/gateway/routes/channels.ts +0 -203
  82. package/packages/core/src/gateway/routes/chat.ts +0 -241
  83. package/packages/core/src/gateway/routes/config.ts +0 -12
  84. package/packages/core/src/gateway/routes/cron.ts +0 -42
  85. package/packages/core/src/gateway/routes/ethics.ts +0 -46
  86. package/packages/core/src/gateway/routes/mcp.ts +0 -346
  87. package/packages/core/src/gateway/routes/models.ts +0 -93
  88. package/packages/core/src/gateway/routes/projects.ts +0 -179
  89. package/packages/core/src/gateway/routes/providers.ts +0 -192
  90. package/packages/core/src/gateway/routes/setup.ts +0 -267
  91. package/packages/core/src/gateway/routes/skills.ts +0 -70
  92. package/packages/core/src/gateway/routes/system.ts +0 -165
  93. package/packages/core/src/gateway/routes/tasks.ts +0 -44
  94. package/packages/core/src/gateway/routes/tools.ts +0 -35
  95. package/packages/core/src/gateway/routes/users.ts +0 -118
  96. package/packages/core/src/gateway/routes/voice.ts +0 -73
  97. package/packages/core/src/gateway/routes/workspace.ts +0 -281
  98. package/packages/core/src/gateway/server.ts +0 -1978
  99. package/packages/core/src/gateway/session.ts +0 -95
  100. package/packages/core/src/gateway/slash-commands.ts +0 -193
  101. package/packages/core/src/heartbeat/index.ts +0 -157
  102. package/packages/core/src/mcp/hot-reload.ts +0 -213
  103. package/packages/core/src/mcp/singleton.ts +0 -21
  104. package/packages/core/src/memory/index.ts +0 -1
  105. package/packages/core/src/memory/notes.ts +0 -68
  106. package/packages/core/src/plugins/api.ts +0 -128
  107. package/packages/core/src/plugins/index.ts +0 -2
  108. package/packages/core/src/plugins/loader.ts +0 -365
  109. package/packages/core/src/resilience/circuit-breaker.ts +0 -225
  110. package/packages/core/src/security/google-chat.ts +0 -269
  111. package/packages/core/src/security/index.ts +0 -192
  112. package/packages/core/src/security/pairing.ts +0 -250
  113. package/packages/core/src/security/rate-limit.ts +0 -270
  114. package/packages/core/src/security/signal.ts +0 -321
  115. package/packages/core/src/state/store.ts +0 -312
  116. package/packages/core/src/storage/crypto.ts +0 -101
  117. package/packages/core/src/storage/onboarding.ts +0 -1609
  118. package/packages/core/src/storage/schema.ts +0 -567
  119. package/packages/core/src/storage/seed.ts +0 -608
  120. package/packages/core/src/storage/sqlite.ts +0 -363
  121. package/packages/core/src/storage/usage.ts +0 -270
  122. package/packages/core/src/tools/agents/index.ts +0 -607
  123. package/packages/core/src/tools/bridge-events.ts +0 -26
  124. package/packages/core/src/tools/canvas/index.ts +0 -281
  125. package/packages/core/src/tools/cli/index.ts +0 -142
  126. package/packages/core/src/tools/codebridge/index.ts +0 -179
  127. package/packages/core/src/tools/core/index.ts +0 -257
  128. package/packages/core/src/tools/cron/index.ts +0 -373
  129. package/packages/core/src/tools/filesystem/fs-delete.ts +0 -78
  130. package/packages/core/src/tools/filesystem/fs-edit.ts +0 -106
  131. package/packages/core/src/tools/filesystem/fs-exists.ts +0 -63
  132. package/packages/core/src/tools/filesystem/fs-glob.ts +0 -108
  133. package/packages/core/src/tools/filesystem/fs-list.ts +0 -129
  134. package/packages/core/src/tools/filesystem/fs-read.ts +0 -72
  135. package/packages/core/src/tools/filesystem/fs-write.ts +0 -67
  136. package/packages/core/src/tools/filesystem/index.ts +0 -34
  137. package/packages/core/src/tools/filesystem/workspace-guard.ts +0 -62
  138. package/packages/core/src/tools/index.ts +0 -197
  139. package/packages/core/src/tools/projects/index.ts +0 -37
  140. package/packages/core/src/tools/projects/project-create.ts +0 -94
  141. package/packages/core/src/tools/projects/project-done.ts +0 -66
  142. package/packages/core/src/tools/projects/project-fail.ts +0 -66
  143. package/packages/core/src/tools/projects/project-list.ts +0 -96
  144. package/packages/core/src/tools/projects/project-update.ts +0 -72
  145. package/packages/core/src/tools/projects/task-create.ts +0 -68
  146. package/packages/core/src/tools/projects/task-evaluate.ts +0 -93
  147. package/packages/core/src/tools/projects/task-update.ts +0 -93
  148. package/packages/core/src/tools/search-knowledge/search-knowledge.ts +0 -155
  149. package/packages/core/src/tools/types.ts +0 -39
  150. package/packages/core/src/tools/voice/index.ts +0 -104
  151. package/packages/core/src/tools/web/browser-click.ts +0 -54
  152. package/packages/core/src/tools/web/browser-navigate.ts +0 -84
  153. package/packages/core/src/tools/web/browser-screenshot.ts +0 -54
  154. package/packages/core/src/tools/web/browser-type.ts +0 -60
  155. package/packages/core/src/tools/web/index.ts +0 -31
  156. package/packages/core/src/tools/web/web-fetch.ts +0 -78
  157. package/packages/core/src/tools/web/web-search.ts +0 -123
  158. package/packages/core/src/utils/benchmark.ts +0 -80
  159. package/packages/core/src/utils/crypto.ts +0 -73
  160. package/packages/core/src/utils/date.ts +0 -42
  161. package/packages/core/src/utils/index.ts +0 -5
  162. package/packages/core/src/utils/logger.ts +0 -389
  163. package/packages/core/src/utils/retry.ts +0 -70
  164. package/packages/core/src/utils/toon.ts +0 -356
  165. package/packages/core/src/voice/index.ts +0 -583
  166. package/packages/hive-ui/README.md +0 -52
  167. package/packages/hive-ui/components.json +0 -20
  168. package/packages/hive-ui/index.html +0 -30
  169. package/packages/hive-ui/package.json +0 -90
  170. package/packages/hive-ui/public/favicon.ico +0 -0
  171. package/packages/hive-ui/public/placeholder.svg +0 -1
  172. package/packages/hive-ui/src/App.tsx +0 -115
  173. package/packages/hive-ui/src/components/CronJobsPanel.tsx +0 -200
  174. package/packages/hive-ui/src/components/NavLink.tsx +0 -34
  175. package/packages/hive-ui/src/components/NotesPanel.tsx +0 -79
  176. package/packages/hive-ui/src/components/SystemMonitor.tsx +0 -270
  177. package/packages/hive-ui/src/components/UsageStatsPanel.tsx +0 -334
  178. package/packages/hive-ui/src/components/WelcomeDialog.tsx +0 -279
  179. package/packages/hive-ui/src/components/ui/accordion.tsx +0 -52
  180. package/packages/hive-ui/src/components/ui/alert-dialog.tsx +0 -104
  181. package/packages/hive-ui/src/components/ui/alert.tsx +0 -45
  182. package/packages/hive-ui/src/components/ui/aspect-ratio.tsx +0 -5
  183. package/packages/hive-ui/src/components/ui/avatar.tsx +0 -38
  184. package/packages/hive-ui/src/components/ui/badge.tsx +0 -29
  185. package/packages/hive-ui/src/components/ui/bee-loader.tsx +0 -68
  186. package/packages/hive-ui/src/components/ui/breadcrumb.tsx +0 -90
  187. package/packages/hive-ui/src/components/ui/button.tsx +0 -47
  188. package/packages/hive-ui/src/components/ui/calendar.tsx +0 -54
  189. package/packages/hive-ui/src/components/ui/card.tsx +0 -45
  190. package/packages/hive-ui/src/components/ui/carousel.tsx +0 -224
  191. package/packages/hive-ui/src/components/ui/chart.tsx +0 -303
  192. package/packages/hive-ui/src/components/ui/checkbox.tsx +0 -26
  193. package/packages/hive-ui/src/components/ui/collapsible.tsx +0 -9
  194. package/packages/hive-ui/src/components/ui/command.tsx +0 -133
  195. package/packages/hive-ui/src/components/ui/context-menu.tsx +0 -178
  196. package/packages/hive-ui/src/components/ui/dialog.tsx +0 -95
  197. package/packages/hive-ui/src/components/ui/drawer.tsx +0 -87
  198. package/packages/hive-ui/src/components/ui/dropdown-menu.tsx +0 -179
  199. package/packages/hive-ui/src/components/ui/form.tsx +0 -129
  200. package/packages/hive-ui/src/components/ui/hover-card.tsx +0 -27
  201. package/packages/hive-ui/src/components/ui/input-otp.tsx +0 -61
  202. package/packages/hive-ui/src/components/ui/input.tsx +0 -22
  203. package/packages/hive-ui/src/components/ui/label.tsx +0 -17
  204. package/packages/hive-ui/src/components/ui/menubar.tsx +0 -207
  205. package/packages/hive-ui/src/components/ui/navigation-menu.tsx +0 -120
  206. package/packages/hive-ui/src/components/ui/pagination.tsx +0 -80
  207. package/packages/hive-ui/src/components/ui/popover.tsx +0 -29
  208. package/packages/hive-ui/src/components/ui/progress.tsx +0 -23
  209. package/packages/hive-ui/src/components/ui/radio-group.tsx +0 -36
  210. package/packages/hive-ui/src/components/ui/resizable.tsx +0 -37
  211. package/packages/hive-ui/src/components/ui/scroll-area.tsx +0 -38
  212. package/packages/hive-ui/src/components/ui/select.tsx +0 -143
  213. package/packages/hive-ui/src/components/ui/separator.tsx +0 -20
  214. package/packages/hive-ui/src/components/ui/sheet.tsx +0 -107
  215. package/packages/hive-ui/src/components/ui/sidebar.tsx +0 -636
  216. package/packages/hive-ui/src/components/ui/skeleton.tsx +0 -7
  217. package/packages/hive-ui/src/components/ui/slider.tsx +0 -23
  218. package/packages/hive-ui/src/components/ui/sonner.tsx +0 -27
  219. package/packages/hive-ui/src/components/ui/switch.tsx +0 -27
  220. package/packages/hive-ui/src/components/ui/table.tsx +0 -72
  221. package/packages/hive-ui/src/components/ui/tabs.tsx +0 -53
  222. package/packages/hive-ui/src/components/ui/textarea.tsx +0 -21
  223. package/packages/hive-ui/src/components/ui/toast.tsx +0 -111
  224. package/packages/hive-ui/src/components/ui/toaster.tsx +0 -24
  225. package/packages/hive-ui/src/components/ui/toggle-group.tsx +0 -49
  226. package/packages/hive-ui/src/components/ui/toggle.tsx +0 -37
  227. package/packages/hive-ui/src/components/ui/tooltip.tsx +0 -28
  228. package/packages/hive-ui/src/components/ui/use-toast.ts +0 -3
  229. package/packages/hive-ui/src/hooks/use-mobile.tsx +0 -19
  230. package/packages/hive-ui/src/hooks/use-toast.ts +0 -186
  231. package/packages/hive-ui/src/hooks/useAgentConfig.ts +0 -25
  232. package/packages/hive-ui/src/hooks/useAgents.ts +0 -38
  233. package/packages/hive-ui/src/hooks/useBridge.ts +0 -38
  234. package/packages/hive-ui/src/hooks/useCanvas.ts +0 -24
  235. package/packages/hive-ui/src/hooks/useChannels.ts +0 -2
  236. package/packages/hive-ui/src/hooks/useEthics.ts +0 -51
  237. package/packages/hive-ui/src/hooks/useProviders.ts +0 -14
  238. package/packages/hive-ui/src/hooks/useTheme.ts +0 -29
  239. package/packages/hive-ui/src/hooks/useUserConfig.ts +0 -17
  240. package/packages/hive-ui/src/hooks/useWebSocket.ts +0 -12
  241. package/packages/hive-ui/src/index.css +0 -620
  242. package/packages/hive-ui/src/lib/api.ts +0 -100
  243. package/packages/hive-ui/src/lib/constants.ts +0 -6
  244. package/packages/hive-ui/src/lib/models.ts +0 -64
  245. package/packages/hive-ui/src/lib/swal.ts +0 -30
  246. package/packages/hive-ui/src/lib/utils.ts +0 -6
  247. package/packages/hive-ui/src/lib/websocket.ts +0 -7
  248. package/packages/hive-ui/src/main.tsx +0 -5
  249. package/packages/hive-ui/src/modules/agent-config/details/AgentDetailsEditor.tsx +0 -524
  250. package/packages/hive-ui/src/modules/agent-config/ethics/EthicsConflictDetector.tsx +0 -18
  251. package/packages/hive-ui/src/modules/agent-config/ethics/EthicsEditor.tsx +0 -19
  252. package/packages/hive-ui/src/modules/agent-config/ethics/EthicsRulesList.tsx +0 -36
  253. package/packages/hive-ui/src/modules/agent-config/ethics/EthicsTemplateGallery.tsx +0 -361
  254. package/packages/hive-ui/src/modules/agent-config/ethics/index.ts +0 -4
  255. package/packages/hive-ui/src/modules/agent-config/index.ts +0 -6
  256. package/packages/hive-ui/src/modules/agent-config/mcp/MCPServerAdd.tsx +0 -322
  257. package/packages/hive-ui/src/modules/agent-config/mcp/MCPServerCard.tsx +0 -93
  258. package/packages/hive-ui/src/modules/agent-config/mcp/MCPServerConfig.tsx +0 -427
  259. package/packages/hive-ui/src/modules/agent-config/mcp/MCPServerList.tsx +0 -85
  260. package/packages/hive-ui/src/modules/agent-config/mcp/MCPToolExplorer.tsx +0 -79
  261. package/packages/hive-ui/src/modules/agent-config/mcp/index.ts +0 -5
  262. package/packages/hive-ui/src/modules/agent-config/shared/ConfigEditorLayout.tsx +0 -30
  263. package/packages/hive-ui/src/modules/agent-config/shared/ConfigExporter.tsx +0 -26
  264. package/packages/hive-ui/src/modules/agent-config/shared/ConfigImporter.tsx +0 -25
  265. package/packages/hive-ui/src/modules/agent-config/shared/DiffViewer.tsx +0 -31
  266. package/packages/hive-ui/src/modules/agent-config/shared/MarkdownEditor.tsx +0 -32
  267. package/packages/hive-ui/src/modules/agent-config/shared/SaveStatusIndicator.tsx +0 -23
  268. package/packages/hive-ui/src/modules/agent-config/shared/ValidationPanel.tsx +0 -36
  269. package/packages/hive-ui/src/modules/agent-config/shared/index.ts +0 -7
  270. package/packages/hive-ui/src/modules/agent-config/skills/SkillCard.tsx +0 -81
  271. package/packages/hive-ui/src/modules/agent-config/skills/SkillConfigEditor.tsx +0 -22
  272. package/packages/hive-ui/src/modules/agent-config/skills/SkillCreator.tsx +0 -60
  273. package/packages/hive-ui/src/modules/agent-config/skills/SkillInstaller.tsx +0 -23
  274. package/packages/hive-ui/src/modules/agent-config/skills/SkillList.tsx +0 -72
  275. package/packages/hive-ui/src/modules/agent-config/skills/SkillsTab.tsx +0 -202
  276. package/packages/hive-ui/src/modules/agent-config/skills/index.ts +0 -5
  277. package/packages/hive-ui/src/modules/agent-config/tools/ToolCard.tsx +0 -27
  278. package/packages/hive-ui/src/modules/agent-config/tools/ToolConfigPanel.tsx +0 -22
  279. package/packages/hive-ui/src/modules/agent-config/tools/ToolManager.tsx +0 -266
  280. package/packages/hive-ui/src/modules/agent-config/tools/ToolPermissions.tsx +0 -287
  281. package/packages/hive-ui/src/modules/agent-config/tools/ToolRegistry.tsx +0 -84
  282. package/packages/hive-ui/src/modules/agent-config/tools/ToolUsageStats.tsx +0 -52
  283. package/packages/hive-ui/src/modules/agent-config/tools/index.ts +0 -4
  284. package/packages/hive-ui/src/modules/agent-config/user/ActiveAgentsList.tsx +0 -109
  285. package/packages/hive-ui/src/modules/agent-config/user/GlobalConfigOverview.tsx +0 -119
  286. package/packages/hive-ui/src/modules/agent-config/user/UserMemoryManager.tsx +0 -54
  287. package/packages/hive-ui/src/modules/agent-config/user/UserPreferencesForm.tsx +0 -163
  288. package/packages/hive-ui/src/modules/agent-config/user/UserProfileEditor.tsx +0 -261
  289. package/packages/hive-ui/src/modules/agent-config/user/index.ts +0 -3
  290. package/packages/hive-ui/src/modules/agents/AgentActivityLog.tsx +0 -25
  291. package/packages/hive-ui/src/modules/agents/AgentCard.tsx +0 -305
  292. package/packages/hive-ui/src/modules/agents/AgentCreateForm.tsx +0 -446
  293. package/packages/hive-ui/src/modules/agents/AgentDetail.tsx +0 -28
  294. package/packages/hive-ui/src/modules/agents/AgentInternalCard.tsx +0 -162
  295. package/packages/hive-ui/src/modules/agents/AgentList.tsx +0 -29
  296. package/packages/hive-ui/src/modules/agents/AgentStatusBadge.tsx +0 -34
  297. package/packages/hive-ui/src/modules/agents/ModelSelector.tsx +0 -151
  298. package/packages/hive-ui/src/modules/bridge/BridgeLogViewer.tsx +0 -61
  299. package/packages/hive-ui/src/modules/bridge/BridgeProcessList.tsx +0 -77
  300. package/packages/hive-ui/src/modules/bridge/BridgeStatus.tsx +0 -23
  301. package/packages/hive-ui/src/modules/bridge/BridgeTerminal.tsx +0 -7
  302. package/packages/hive-ui/src/modules/canvas/CanvasButton.tsx +0 -3
  303. package/packages/hive-ui/src/modules/canvas/CanvasChart.tsx +0 -3
  304. package/packages/hive-ui/src/modules/canvas/CanvasComponentMap.tsx +0 -605
  305. package/packages/hive-ui/src/modules/canvas/CanvasContainer.tsx +0 -360
  306. package/packages/hive-ui/src/modules/canvas/CanvasForm.tsx +0 -3
  307. package/packages/hive-ui/src/modules/canvas/CanvasMarkdown.tsx +0 -3
  308. package/packages/hive-ui/src/modules/canvas/CanvasTable.tsx +0 -3
  309. package/packages/hive-ui/src/modules/canvas/ComponentRenderer.tsx +0 -30
  310. package/packages/hive-ui/src/modules/canvas/DynamicRenderer.tsx +0 -3
  311. package/packages/hive-ui/src/modules/channels/available/AvailableChannelsGrid.tsx +0 -89
  312. package/packages/hive-ui/src/modules/channels/available/ChannelAuthForm.tsx +0 -33
  313. package/packages/hive-ui/src/modules/channels/available/ChannelSetupWizard.tsx +0 -48
  314. package/packages/hive-ui/src/modules/channels/available/ChannelTestConnection.tsx +0 -37
  315. package/packages/hive-ui/src/modules/channels/available/ChannelTypeCard.tsx +0 -30
  316. package/packages/hive-ui/src/modules/channels/available/ChannelWebhookConfig.tsx +0 -30
  317. package/packages/hive-ui/src/modules/channels/available/index.ts +0 -6
  318. package/packages/hive-ui/src/modules/channels/connected/ChannelCard.tsx +0 -95
  319. package/packages/hive-ui/src/modules/channels/connected/ChannelConfigPanel.tsx +0 -260
  320. package/packages/hive-ui/src/modules/channels/connected/ChannelDisconnectButton.tsx +0 -21
  321. package/packages/hive-ui/src/modules/channels/connected/ChannelLogsViewer.tsx +0 -42
  322. package/packages/hive-ui/src/modules/channels/connected/ChannelQRCode.tsx +0 -32
  323. package/packages/hive-ui/src/modules/channels/connected/ChannelReconnectButton.tsx +0 -16
  324. package/packages/hive-ui/src/modules/channels/connected/ChannelStatusBadge.tsx +0 -26
  325. package/packages/hive-ui/src/modules/channels/connected/ConnectedChannelsList.tsx +0 -40
  326. package/packages/hive-ui/src/modules/channels/connected/index.ts +0 -8
  327. package/packages/hive-ui/src/modules/channels/shared/ChannelCard.tsx +0 -84
  328. package/packages/hive-ui/src/modules/channels/shared/ChannelConfigDialog.tsx +0 -279
  329. package/packages/hive-ui/src/modules/channels/shared/ChannelIcon.tsx +0 -40
  330. package/packages/hive-ui/src/modules/channels/shared/ChannelStats.tsx +0 -37
  331. package/packages/hive-ui/src/modules/channels/shared/ChannelTypeBadge.tsx +0 -23
  332. package/packages/hive-ui/src/modules/channels/shared/ConnectionHealthIndicator.tsx +0 -20
  333. package/packages/hive-ui/src/modules/channels/shared/MessagePreview.tsx +0 -19
  334. package/packages/hive-ui/src/modules/channels/shared/index.ts +0 -5
  335. package/packages/hive-ui/src/modules/chat/ChatContainer.tsx +0 -268
  336. package/packages/hive-ui/src/modules/chat/ChatHistory.tsx +0 -101
  337. package/packages/hive-ui/src/modules/chat/ChatInput.tsx +0 -108
  338. package/packages/hive-ui/src/modules/chat/ChatMessage.tsx +0 -137
  339. package/packages/hive-ui/src/modules/chat/ThinkingIndicator.tsx +0 -10
  340. package/packages/hive-ui/src/modules/layout/AppLayout.tsx +0 -45
  341. package/packages/hive-ui/src/modules/layout/ConnectionStatus.tsx +0 -19
  342. package/packages/hive-ui/src/modules/layout/Header.tsx +0 -20
  343. package/packages/hive-ui/src/modules/layout/HiveSidebar.tsx +0 -173
  344. package/packages/hive-ui/src/modules/layout/ThemeToggle.tsx +0 -18
  345. package/packages/hive-ui/src/modules/providers/ProviderCard.tsx +0 -319
  346. package/packages/hive-ui/src/modules/providers/ProviderConfigForm.tsx +0 -146
  347. package/packages/hive-ui/src/modules/providers/ProviderFailoverConfig.tsx +0 -110
  348. package/packages/hive-ui/src/modules/providers/ProviderList.tsx +0 -33
  349. package/packages/hive-ui/src/modules/providers/ProviderStatusIndicator.tsx +0 -23
  350. package/packages/hive-ui/src/modules/providers/configs/ProviderAPIKeyManager.tsx +0 -39
  351. package/packages/hive-ui/src/modules/providers/configs/ProviderEndpointConfig.tsx +0 -27
  352. package/packages/hive-ui/src/modules/providers/configs/ProviderRateLimits.tsx +0 -37
  353. package/packages/hive-ui/src/modules/providers/configs/ProviderRetryPolicy.tsx +0 -46
  354. package/packages/hive-ui/src/modules/providers/configs/index.ts +0 -4
  355. package/packages/hive-ui/src/modules/providers/index.ts +0 -5
  356. package/packages/hive-ui/src/modules/providers/models/ModelBenchmarkBadge.tsx +0 -21
  357. package/packages/hive-ui/src/modules/providers/models/ModelCapabilities.tsx +0 -44
  358. package/packages/hive-ui/src/modules/providers/models/ModelCard.tsx +0 -36
  359. package/packages/hive-ui/src/modules/providers/models/ModelComparisonTable.tsx +0 -47
  360. package/packages/hive-ui/src/modules/providers/models/ModelList.tsx +0 -51
  361. package/packages/hive-ui/src/modules/providers/models/ModelPricingInfo.tsx +0 -17
  362. package/packages/hive-ui/src/modules/providers/models/ModelSelector.tsx +0 -32
  363. package/packages/hive-ui/src/modules/providers/models/index.ts +0 -7
  364. package/packages/hive-ui/src/pages/AgentDetailPage.tsx +0 -74
  365. package/packages/hive-ui/src/pages/AgentNewPage.tsx +0 -5
  366. package/packages/hive-ui/src/pages/AgentsPage.tsx +0 -147
  367. package/packages/hive-ui/src/pages/BridgePage.tsx +0 -83
  368. package/packages/hive-ui/src/pages/CanvasPage.tsx +0 -32
  369. package/packages/hive-ui/src/pages/ChannelsPage.tsx +0 -176
  370. package/packages/hive-ui/src/pages/DashboardPage.tsx +0 -321
  371. package/packages/hive-ui/src/pages/Index.tsx +0 -14
  372. package/packages/hive-ui/src/pages/LogsPage.tsx +0 -252
  373. package/packages/hive-ui/src/pages/NotFound.tsx +0 -24
  374. package/packages/hive-ui/src/pages/ProjectsPage.tsx +0 -241
  375. package/packages/hive-ui/src/pages/ProvidersPage.tsx +0 -111
  376. package/packages/hive-ui/src/pages/SettingsPage.tsx +0 -147
  377. package/packages/hive-ui/src/pages/SetupPage.tsx +0 -1177
  378. package/packages/hive-ui/src/pages/WebChatPage.tsx +0 -15
  379. package/packages/hive-ui/src/stores/agentConfigStore.ts +0 -32
  380. package/packages/hive-ui/src/stores/agentStore.ts +0 -5
  381. package/packages/hive-ui/src/stores/bridgeStore.ts +0 -237
  382. package/packages/hive-ui/src/stores/canvasStore.ts +0 -250
  383. package/packages/hive-ui/src/stores/channelStore.ts +0 -5
  384. package/packages/hive-ui/src/stores/chatStore.ts +0 -42
  385. package/packages/hive-ui/src/stores/ethicsStore.ts +0 -141
  386. package/packages/hive-ui/src/stores/mcpStore.ts +0 -5
  387. package/packages/hive-ui/src/stores/modelStore.ts +0 -2
  388. package/packages/hive-ui/src/stores/projectsStore.ts +0 -141
  389. package/packages/hive-ui/src/stores/providerStore.ts +0 -2
  390. package/packages/hive-ui/src/stores/skillStore.ts +0 -5
  391. package/packages/hive-ui/src/stores/toolStore.ts +0 -5
  392. package/packages/hive-ui/src/stores/useGlobalConfigStore.ts +0 -937
  393. package/packages/hive-ui/src/stores/useLoaderStore.ts +0 -21
  394. package/packages/hive-ui/src/stores/useNotesAndCronsStore.ts +0 -144
  395. package/packages/hive-ui/src/stores/useWebSocketStore.ts +0 -152
  396. package/packages/hive-ui/src/stores/useWelcomeStore.ts +0 -37
  397. package/packages/hive-ui/src/stores/userConfigStore.ts +0 -23
  398. package/packages/hive-ui/src/stores/userStore.ts +0 -82
  399. package/packages/hive-ui/src/test/setup.ts +0 -15
  400. package/packages/hive-ui/src/types/agent-config.ts +0 -33
  401. package/packages/hive-ui/src/types/agent.ts +0 -65
  402. package/packages/hive-ui/src/types/bridge.ts +0 -27
  403. package/packages/hive-ui/src/types/canvas.ts +0 -76
  404. package/packages/hive-ui/src/types/channels.ts +0 -109
  405. package/packages/hive-ui/src/types/chat.ts +0 -25
  406. package/packages/hive-ui/src/types/connections.ts +0 -17
  407. package/packages/hive-ui/src/types/ethics.ts +0 -41
  408. package/packages/hive-ui/src/types/index.ts +0 -15
  409. package/packages/hive-ui/src/types/mcp.ts +0 -36
  410. package/packages/hive-ui/src/types/notes-crons.ts +0 -31
  411. package/packages/hive-ui/src/types/providers.ts +0 -145
  412. package/packages/hive-ui/src/types/skill.ts +0 -12
  413. package/packages/hive-ui/src/types/tool.ts +0 -44
  414. package/packages/hive-ui/src/types/user.ts +0 -26
  415. package/packages/hive-ui/src/types/websocket.ts +0 -14
  416. package/packages/hive-ui/src/vite-env.d.ts +0 -1
  417. package/packages/mcp/package.json +0 -26
  418. package/packages/mcp/src/config.ts +0 -13
  419. package/packages/mcp/src/index.ts +0 -1
  420. package/packages/mcp/src/logger.ts +0 -42
  421. package/packages/mcp/src/manager.ts +0 -439
  422. package/packages/mcp/src/transports/index.ts +0 -67
  423. package/packages/mcp/src/transports/sse.ts +0 -241
  424. package/packages/mcp/src/transports/websocket.ts +0 -159
  425. package/packages/skills/package.json +0 -21
  426. package/packages/skills/src/index.ts +0 -1
  427. package/packages/skills/src/loader.ts +0 -346
@@ -1,529 +0,0 @@
1
- import * as z from "zod";
2
- import { mkdirSync, existsSync, readFileSync } from "node:fs";
3
- import * as path from "node:path";
4
-
5
- const LogLevelSchema = z.enum(["debug", "info", "warn", "error"]);
6
- const DMPolicySchema = z.enum(["open", "pairing", "allowlist"]);
7
- const TransportSchema = z.enum(["stdio", "sse", "websocket"]);
8
-
9
- export function loadEnv(hiveDir: string): void {
10
- const envPath = path.join(hiveDir, ".env");
11
- if (existsSync(envPath)) {
12
- try {
13
- const text = readFileSync(envPath, "utf8");
14
- const lines = text.split("\n");
15
- for (const line of lines) {
16
- const trimmed = line.trim();
17
- if (!trimmed || trimmed.startsWith("#")) continue;
18
-
19
- const [key, ...valueParts] = trimmed.split("=");
20
- if (key && valueParts.length > 0) {
21
- const value = valueParts.join("=").trim().replace(/^['"]|['"]$/g, "");
22
- process.env[key.trim()] = value;
23
- }
24
- }
25
- } catch (e) {
26
- // Ignore errors loading .env
27
- }
28
- }
29
- }
30
-
31
- export function getHiveDir(): string {
32
- // Priority 1: HIVE_HOME explicitly set
33
- if (process.env.HIVE_HOME) {
34
- const hiveDir = process.env.HIVE_HOME.startsWith("~")
35
- ? path.join(process.env.HOME || "", process.env.HIVE_HOME.slice(1))
36
- : process.env.HIVE_HOME;
37
- loadEnv(hiveDir);
38
- return hiveDir;
39
- }
40
-
41
- // Priority 2: HIVE_DEV mode defaults (Local folder)
42
- if (process.env.HIVE_DEV === "1" || process.env.HIVE_DEV === "true") {
43
- const localDir = path.join(process.cwd(), ".hive-dev");
44
- loadEnv(localDir);
45
- return localDir;
46
- }
47
-
48
- // Priority 3: Default ~/.hive
49
- const defaultDir = path.join(process.env.HOME || "", ".hive");
50
- loadEnv(defaultDir);
51
- return defaultDir;
52
- }
53
-
54
- const expandPath = (p: string): string => {
55
- if (p.startsWith("~/.hive")) {
56
- const hiveDir = getHiveDir();
57
- return p.replace("~/.hive", hiveDir);
58
- }
59
- if (p.startsWith("~")) {
60
- return path.join(process.env.HOME || "", p.slice(1));
61
- }
62
- return p;
63
- };
64
-
65
- const expandEnvVars = (value: string): string => {
66
- return value.replace(/\$\{([^}]+)\}/g, (_, key) => {
67
- return process.env[key] || "";
68
- });
69
- };
70
-
71
- const expandEnvInObject = <T>(obj: T): T => {
72
- if (typeof obj === "string") {
73
- return expandEnvVars(obj) as T;
74
- }
75
- if (Array.isArray(obj)) {
76
- return obj.map(expandEnvInObject) as T;
77
- }
78
- if (obj !== null && typeof obj === "object") {
79
- const result: Record<string, unknown> = {};
80
- for (const [key, value] of Object.entries(obj)) {
81
- result[key] = expandEnvInObject(value);
82
- }
83
- return result as T;
84
- }
85
- return obj;
86
- };
87
-
88
- const ProviderConfigSchema = z.object({
89
- apiKey: z.string().optional(),
90
- baseUrl: z.string().optional(),
91
- rateLimit: z.number().optional(),
92
- retries: z.number().optional(),
93
- retryDelayMs: z.number().optional(),
94
- });
95
-
96
- const ToolRestrictionsSchema = z.object({
97
- allow: z.array(z.string()).optional(),
98
- deny: z.array(z.string()).optional(),
99
- });
100
-
101
- const ExecConfigSchema = z.object({
102
- enabled: z.boolean().optional(),
103
- allowlist: z.array(z.string()).optional(),
104
- denylist: z.array(z.string()).optional(),
105
- timeoutSeconds: z.number().optional(),
106
- workDir: z.string().optional(),
107
- });
108
-
109
- const WebConfigSchema = z.object({
110
- allowlist: z.array(z.string()).optional(),
111
- denylist: z.array(z.string()).optional(),
112
- timeoutSeconds: z.number().optional(),
113
- });
114
-
115
- const BrowserConfigSchema = z.object({
116
- enabled: z.boolean().optional(),
117
- browserPath: z.string().optional(),
118
- headless: z.boolean().optional(),
119
- timeoutSeconds: z.number().optional(),
120
- });
121
-
122
- const CanvasConfigSchema = z.object({
123
- enabled: z.boolean().optional(),
124
- port: z.number().optional(),
125
- });
126
-
127
- const SandboxConfigSchema = z.object({
128
- dm: ToolRestrictionsSchema.optional(),
129
- group: ToolRestrictionsSchema.optional(),
130
- });
131
-
132
- const ToolsConfigSchema = z.object({
133
- allow: z.array(z.string()).optional(),
134
- deny: z.array(z.string()).optional(),
135
- exec: ExecConfigSchema.optional(),
136
- web: WebConfigSchema.optional(),
137
- browser: BrowserConfigSchema.optional(),
138
- canvas: CanvasConfigSchema.optional(),
139
- sandbox: SandboxConfigSchema.optional(),
140
- });
141
-
142
- const ContextConfigSchema = z.object({
143
- maxTokens: z.number().optional(),
144
- compactionThreshold: z.number().optional(),
145
- minMessagesAfterCompaction: z.number().optional(),
146
- maxCompactionRetries: z.number().optional(),
147
- });
148
-
149
- const AgentEntrySchema = z.object({
150
- id: z.string(),
151
- default: z.boolean().optional(),
152
- workspace: z.string(),
153
- description: z.string().optional(),
154
- });
155
-
156
- const AccountConfigSchema = z.object({
157
- botToken: z.string().optional(),
158
- applicationId: z.string().optional(),
159
- appToken: z.string().optional(),
160
- signingSecret: z.string().optional(),
161
- dmPolicy: DMPolicySchema.optional(),
162
- allowFrom: z.array(z.string()).optional(),
163
- });
164
-
165
- const ChannelConfigSchema = z.object({
166
- enabled: z.boolean().optional(),
167
- accounts: z.record(z.string(), AccountConfigSchema).optional(),
168
- dmPolicy: DMPolicySchema.optional(),
169
- allowFrom: z.array(z.string()).optional(),
170
- groups: z.boolean().optional(),
171
- guilds: z.record(z.string(), z.unknown()).optional(),
172
- experimental: z.boolean().optional(),
173
- });
174
-
175
- const PeerMatchSchema = z.object({
176
- kind: z.enum(["direct", "group"]).optional(),
177
- id: z.string().optional(),
178
- });
179
-
180
- const BindingMatchSchema = z.object({
181
- channel: z.string().optional(),
182
- accountId: z.string().optional(),
183
- peer: PeerMatchSchema.optional(),
184
- guildId: z.string().optional(),
185
- teamId: z.string().optional(),
186
- roles: z.array(z.string()).optional(),
187
- });
188
-
189
- const BindingSchema = z.object({
190
- agentId: z.string(),
191
- match: BindingMatchSchema,
192
- });
193
-
194
- const MCPServerConfigSchema = z.object({
195
- enabled: z.boolean().optional(),
196
- transport: TransportSchema,
197
- command: z.string().optional(),
198
- args: z.array(z.string()).optional(),
199
- env: z.record(z.string(), z.string()).optional(),
200
- url: z.string().optional(),
201
- headers: z.record(z.string(), z.string()).optional(),
202
- reconnect: z.object({
203
- enabled: z.boolean().optional(),
204
- maxRetries: z.number().optional(),
205
- delayMs: z.number().optional(),
206
- backoffMultiplier: z.number().optional(),
207
- }).optional(),
208
- });
209
-
210
- const MCPConfigSchema = z.object({
211
- enabled: z.boolean().optional(),
212
- servers: z.record(z.string(), MCPServerConfigSchema).optional(),
213
- healthCheck: z.object({
214
- enabled: z.boolean().optional(),
215
- intervalSeconds: z.number().optional(),
216
- }).optional(),
217
- });
218
-
219
- const EpisodicMemoryConfigSchema = z.object({
220
- enabled: z.boolean().optional(),
221
- provider: z.enum(["openai", "local"]).optional(),
222
- maxEpisodesPerSession: z.number().optional(),
223
- });
224
-
225
- const MemoryConfigSchema = z.object({
226
- dbPath: z.string().optional(),
227
- notesDir: z.string().optional(),
228
- episodic: EpisodicMemoryConfigSchema.optional(),
229
- });
230
-
231
- const CronConfigSchema = z.object({
232
- enabled: z.boolean().optional(),
233
- dbPath: z.string().optional(),
234
- maxConcurrentJobs: z.number().optional(),
235
- timezone: z.string().optional(),
236
- });
237
-
238
- const RetryConfigSchema = z.object({
239
- maxAttempts: z.number().optional(),
240
- initialDelayMs: z.number().optional(),
241
- backoffMultiplier: z.number().optional(),
242
- maxDelayMs: z.number().optional(),
243
- });
244
-
245
- const HooksConfigSchema = z.object({
246
- scripts: z.object({
247
- before_model_resolve: z.string().optional(),
248
- before_prompt_build: z.string().optional(),
249
- before_tool_call: z.string().optional(),
250
- after_tool_call: z.string().optional(),
251
- tool_result_persist: z.string().optional(),
252
- before_compaction: z.string().optional(),
253
- after_compaction: z.string().optional(),
254
- message_received: z.string().optional(),
255
- message_sending: z.string().optional(),
256
- message_sent: z.string().optional(),
257
- session_start: z.string().optional(),
258
- session_end: z.string().optional(),
259
- gateway_start: z.string().optional(),
260
- gateway_stop: z.string().optional(),
261
- }).optional(),
262
- });
263
-
264
- const LoggingConfigSchema = z.object({
265
- level: LogLevelSchema.optional(),
266
- dir: z.string().optional(),
267
- maxSizeMB: z.number().optional(),
268
- maxFiles: z.number().optional(),
269
- redactSensitive: z.boolean().optional(),
270
- console: z.boolean().optional(),
271
- });
272
-
273
- const GatewayConfigSchema = z.object({
274
- host: z.string().optional(),
275
- port: z.number().optional(),
276
- authToken: z.string().optional(),
277
- pidFile: z.string().optional(),
278
- tools: ToolRestrictionsSchema.optional(),
279
- });
280
-
281
- const ModelsConfigSchema = z.object({
282
- defaultProvider: z.enum(["openai", "anthropic", "gemini", "mistral", "kimi", "ollama", "openrouter", "deepseek"]).optional(),
283
- defaults: z.record(z.string(), z.string()).optional(),
284
- providers: z.record(z.string(), ProviderConfigSchema).optional(),
285
- });
286
-
287
- const SessionsConfigSchema = z.object({
288
- dir: z.string().optional(),
289
- pruneAfterHours: z.number().optional(),
290
- maxTranscriptSizeMB: z.number().optional(),
291
- });
292
-
293
- const SkillsConfigSchema = z.object({
294
- allowBundled: z.array(z.string()).optional(),
295
- managedDir: z.string().optional(),
296
- extraDirs: z.array(z.string()).optional(),
297
- hotReload: z.boolean().optional(),
298
- maxSkillSizeKB: z.number().optional(),
299
- });
300
-
301
- const SecurityConfigSchema = z.object({
302
- maxMessageLength: z.record(z.string(), z.number()).optional(),
303
- skillScanning: z.boolean().optional(),
304
- warnOnInsecureConfig: z.boolean().optional(),
305
- allowedUsers: z.array(z.string()).optional(),
306
- });
307
-
308
- const UserConfigSchema = z.object({
309
- id: z.string(),
310
- name: z.string(),
311
- channels: z.record(z.string(), z.string()).optional(),
312
- });
313
-
314
- const ConfigSchema = z.object({
315
- gateway: GatewayConfigSchema.optional(),
316
- logging: LoggingConfigSchema.optional(),
317
- user: UserConfigSchema.optional(),
318
- agent: z.object({
319
- defaultAgentId: z.string().optional(),
320
- baseDir: z.string().optional(),
321
- context: ContextConfigSchema.optional(),
322
- }).optional(),
323
- models: ModelsConfigSchema.optional(),
324
- sessions: SessionsConfigSchema.optional(),
325
- agents: z.object({
326
- list: z.array(AgentEntrySchema).optional(),
327
- }).optional(),
328
- bindings: z.array(BindingSchema).optional(),
329
- channels: z.record(z.string(), ChannelConfigSchema).optional(),
330
- tools: ToolsConfigSchema.optional(),
331
- skills: SkillsConfigSchema.optional(),
332
- mcp: MCPConfigSchema.optional(),
333
- memory: MemoryConfigSchema.optional(),
334
- cron: CronConfigSchema.optional(),
335
- retry: RetryConfigSchema.optional(),
336
- security: SecurityConfigSchema.optional(),
337
- hooks: HooksConfigSchema.optional(),
338
- });
339
-
340
- export type Config = z.infer<typeof ConfigSchema>;
341
-
342
- export type ProviderConfig = z.infer<typeof ProviderConfigSchema>;
343
- export type MCPServerConfig = z.infer<typeof MCPServerConfigSchema>;
344
- export type AgentEntry = z.infer<typeof AgentEntrySchema>;
345
- export type Binding = z.infer<typeof BindingSchema>;
346
- export type UserConfig = z.infer<typeof UserConfigSchema>;
347
-
348
- function buildDefaultConfig(): Config {
349
- const hiveDir = getHiveDir();
350
- return {
351
- gateway: {
352
- host: process.env.HIVE_HOST || "127.0.0.1",
353
- port: parseInt(process.env.HIVE_PORT || "18790", 10),
354
- pidFile: path.join(hiveDir, "gateway.pid"),
355
- authToken: process.env.HIVE_AUTH_TOKEN || undefined,
356
- tools: {
357
- allow: ["*"],
358
- deny: [],
359
- },
360
- },
361
- logging: {
362
- level: (process.env.HIVE_LOG_LEVEL as any) || "info",
363
- dir: path.join(hiveDir, "logs"),
364
- maxSizeMB: 10,
365
- maxFiles: 5,
366
- redactSensitive: true,
367
- console: true,
368
- },
369
- agent: {
370
- defaultAgentId: "main",
371
- baseDir: path.join(hiveDir, "agents"),
372
- context: {
373
- maxTokens: 0,
374
- compactionThreshold: 0.8,
375
- minMessagesAfterCompaction: 4,
376
- maxCompactionRetries: 3,
377
- },
378
- },
379
- models: {
380
- defaultProvider: "openai",
381
- defaults: {
382
- openai: "gpt-4o",
383
- anthropic: "claude-sonnet-4-20250514",
384
- ollama: "llama3.2",
385
- openrouter: "anthropic/claude-sonnet-4",
386
- },
387
- providers: {},
388
- },
389
- sessions: {
390
- dir: path.join(hiveDir, "sessions"),
391
- pruneAfterHours: 24,
392
- maxTranscriptSizeMB: 50,
393
- },
394
- agents: {
395
- list: [
396
- {
397
- id: "main",
398
- default: true,
399
- workspace: path.join(hiveDir, "agents", "main", "workspace"),
400
- description: "Default personal assistant",
401
- },
402
- ],
403
- },
404
- bindings: [],
405
- channels: {
406
- webchat: { enabled: true },
407
- },
408
- tools: {
409
- allow: ["*"],
410
- deny: [],
411
- exec: {
412
- enabled: true,
413
- allowlist: [],
414
- denylist: ["rm -rf /", "sudo", "chmod 777", "> /dev/", "mkfs"],
415
- timeoutSeconds: 30,
416
- workDir: path.join(process.env.HOME || "", "exec"), // Points to home for exec by default
417
- },
418
- web: {
419
- allowlist: [],
420
- denylist: ["file://", "ftp://"],
421
- timeoutSeconds: 30,
422
- },
423
- browser: {
424
- enabled: true,
425
- headless: true,
426
- timeoutSeconds: 30,
427
- },
428
- canvas: {
429
- enabled: true,
430
- port: 18793,
431
- },
432
- sandbox: {
433
- dm: { allow: ["*"], deny: [] },
434
- group: { allow: ["*"], deny: [] },
435
- },
436
- },
437
- skills: {
438
- allowBundled: [],
439
- managedDir: path.join(hiveDir, "skills"),
440
- extraDirs: [],
441
- hotReload: true,
442
- maxSkillSizeKB: 100,
443
- },
444
- mcp: {
445
- enabled: true,
446
- servers: {},
447
- healthCheck: {
448
- enabled: true,
449
- intervalSeconds: 60,
450
- },
451
- },
452
- memory: {
453
- dbPath: path.join(hiveDir, "memory.db"),
454
- notesDir: path.join(hiveDir, "agents", "main", "workspace", "memory"),
455
- episodic: {
456
- enabled: false,
457
- provider: "openai",
458
- maxEpisodesPerSession: 100,
459
- },
460
- },
461
- cron: {
462
- enabled: true,
463
- dbPath: path.join(hiveDir, "cron.db"),
464
- maxConcurrentJobs: 5,
465
- timezone: "UTC",
466
- },
467
- retry: {
468
- maxAttempts: 3,
469
- initialDelayMs: 1000,
470
- backoffMultiplier: 2,
471
- maxDelayMs: 30000,
472
- },
473
- security: {
474
- maxMessageLength: {
475
- telegram: 4096,
476
- discord: 2000,
477
- slack: 40000,
478
- webchat: 100000,
479
- whatsapp: 65536,
480
- },
481
- skillScanning: true,
482
- warnOnInsecureConfig: true,
483
- },
484
- hooks: {
485
- scripts: {},
486
- },
487
- };
488
- }
489
-
490
-
491
- // deepMerge kept for potential future use
492
- function deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T {
493
- const result = { ...target };
494
-
495
- for (const key of Object.keys(source) as (keyof T)[]) {
496
- const sourceValue = source[key];
497
- const targetValue = result[key];
498
-
499
- if (
500
- sourceValue !== undefined &&
501
- sourceValue !== null &&
502
- typeof sourceValue === "object" &&
503
- !Array.isArray(sourceValue) &&
504
- targetValue !== undefined &&
505
- targetValue !== null &&
506
- typeof targetValue === "object" &&
507
- !Array.isArray(targetValue)
508
- ) {
509
- result[key] = deepMerge(
510
- targetValue as Record<string, unknown>,
511
- sourceValue as Record<string, unknown>
512
- ) as T[keyof T];
513
- } else if (sourceValue !== undefined) {
514
- result[key] = sourceValue as T[keyof T];
515
- }
516
- }
517
-
518
- return result;
519
- }
520
- export function loadConfig(): Config {
521
- return buildDefaultConfig();
522
- }
523
-
524
- export function expandConfigPath(p: string | undefined): string | undefined {
525
- if (!p) return undefined;
526
- return expandPath(p);
527
- }
528
-
529
- export { expandPath };