@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,250 +0,0 @@
1
- import crypto from "crypto";
2
- import { eventBus } from "../events/event-bus.ts";
3
- import { logger } from "../utils/logger.ts";
4
-
5
- export interface PairingCode {
6
- code: string;
7
- channel: string;
8
- userId: string;
9
- createdAt: number;
10
- expiresAt: number;
11
- attempts: number;
12
- }
13
-
14
- export interface PairingConfig {
15
- codeLength?: number;
16
- expirationMs?: number;
17
- maxAttempts?: number;
18
- }
19
-
20
- export interface PairingStats {
21
- pendingCodes: number;
22
- totalAllowlist: number;
23
- byChannel: Record<string, { pending: number; allowed: number }>;
24
- }
25
-
26
- export class PairingService {
27
- private codes: Map<string, PairingCode> = new Map();
28
- private allowlist: Map<string, Set<string>> = new Map();
29
- private config: Required<PairingConfig>;
30
- private log = logger.child("pairing");
31
-
32
- constructor(config: PairingConfig = {}) {
33
- this.config = {
34
- codeLength: config.codeLength ?? 8,
35
- expirationMs: config.expirationMs ?? 10 * 60 * 1000,
36
- maxAttempts: config.maxAttempts ?? 3,
37
- };
38
-
39
- this.startCleanup();
40
- }
41
-
42
- generateCode(channel: string, userId: string): string {
43
- this.cleanup();
44
-
45
- const code = this.generateSecureCode();
46
- const now = Date.now();
47
-
48
- const record: PairingCode = {
49
- code,
50
- channel,
51
- userId,
52
- createdAt: now,
53
- expiresAt: now + this.config.expirationMs,
54
- attempts: 0,
55
- };
56
-
57
- this.codes.set(code, record);
58
-
59
- this.log.info(`Generated pairing code for ${channel}:${userId}`);
60
-
61
- eventBus.emit("pairing:requested", {
62
- channel,
63
- userId,
64
- code,
65
- expiresAt: record.expiresAt,
66
- });
67
-
68
- return code;
69
- }
70
-
71
- validateCode(code: string): PairingCode | null {
72
- const record = this.codes.get(code);
73
- if (!record) return null;
74
-
75
- if (Date.now() > record.expiresAt) {
76
- this.codes.delete(code);
77
- eventBus.emit("pairing:expired", {
78
- code,
79
- channel: record.channel,
80
- userId: record.userId,
81
- });
82
- return null;
83
- }
84
-
85
- return record;
86
- }
87
-
88
- approve(code: string): { success: boolean; error?: string } {
89
- const record = this.validateCode(code);
90
- if (!record) {
91
- return { success: false, error: "Invalid or expired code" };
92
- }
93
-
94
- if (!this.allowlist.has(record.channel)) {
95
- this.allowlist.set(record.channel, new Set());
96
- }
97
- this.allowlist.get(record.channel)!.add(record.userId);
98
-
99
- this.codes.delete(code);
100
-
101
- this.log.info(`Approved pairing for ${record.channel}:${record.userId}`);
102
-
103
- eventBus.emit("pairing:approved", {
104
- channel: record.channel,
105
- userId: record.userId,
106
- });
107
-
108
- return { success: true };
109
- }
110
-
111
- reject(code: string, reason: string): boolean {
112
- const record = this.codes.get(code);
113
- if (!record) return false;
114
-
115
- this.codes.delete(code);
116
-
117
- this.log.info(`Rejected pairing for ${record.channel}:${record.userId}: ${reason}`);
118
-
119
- eventBus.emit("pairing:rejected", {
120
- channel: record.channel,
121
- userId: record.userId,
122
- reason,
123
- });
124
-
125
- return true;
126
- }
127
-
128
- attempt(code: string): boolean {
129
- const record = this.codes.get(code);
130
- if (!record) return false;
131
-
132
- record.attempts++;
133
-
134
- if (record.attempts >= this.config.maxAttempts) {
135
- this.codes.delete(code);
136
- this.log.warn(`Code ${code} exhausted attempts`);
137
- return false;
138
- }
139
-
140
- return true;
141
- }
142
-
143
- isAllowed(channel: string, userId: string): boolean {
144
- const channelAllowlist = this.allowlist.get(channel);
145
- return channelAllowlist?.has(userId) ?? false;
146
- }
147
-
148
- removeFromAllowlist(channel: string, userId: string): boolean {
149
- const channelAllowlist = this.allowlist.get(channel);
150
- if (!channelAllowlist) return false;
151
-
152
- const removed = channelAllowlist.delete(userId);
153
-
154
- if (channelAllowlist.size === 0) {
155
- this.allowlist.delete(channel);
156
- }
157
-
158
- if (removed) {
159
- this.log.info(`Removed ${userId} from allowlist for ${channel}`);
160
- }
161
-
162
- return removed;
163
- }
164
-
165
- listAllowed(channel?: string): { channel: string; userId: string }[] {
166
- const result: { channel: string; userId: string }[] = [];
167
-
168
- if (channel) {
169
- const channelAllowlist = this.allowlist.get(channel);
170
- if (channelAllowlist) {
171
- for (const userId of channelAllowlist) {
172
- result.push({ channel, userId });
173
- }
174
- }
175
- } else {
176
- for (const [ch, users] of this.allowlist) {
177
- for (const userId of users) {
178
- result.push({ channel: ch, userId });
179
- }
180
- }
181
- }
182
-
183
- return result;
184
- }
185
-
186
- listPending(): PairingCode[] {
187
- this.cleanup();
188
- return Array.from(this.codes.values());
189
- }
190
-
191
- getStats(): PairingStats {
192
- const byChannel: Record<string, { pending: number; allowed: number }> = {};
193
-
194
- for (const [channel, users] of this.allowlist) {
195
- byChannel[channel] = {
196
- pending: 0,
197
- allowed: users.size,
198
- };
199
- }
200
-
201
- for (const record of this.codes.values()) {
202
- if (!byChannel[record.channel]) {
203
- byChannel[record.channel] = { pending: 0, allowed: 0 };
204
- }
205
- byChannel[record.channel]!.pending++;
206
- }
207
-
208
- return {
209
- pendingCodes: this.codes.size,
210
- totalAllowlist: Array.from(this.allowlist.values()).reduce(
211
- (sum, set) => sum + set.size,
212
- 0
213
- ),
214
- byChannel,
215
- };
216
- }
217
-
218
- clear(): void {
219
- this.codes.clear();
220
- this.allowlist.clear();
221
- this.log.info("All pairing data cleared");
222
- }
223
-
224
- private generateSecureCode(): string {
225
- const bytes = crypto.randomBytes(Math.ceil(this.config.codeLength / 2));
226
- return bytes.toString("hex").toUpperCase().slice(0, this.config.codeLength);
227
- }
228
-
229
- private cleanup(): void {
230
- const now = Date.now();
231
- for (const [code, record] of this.codes) {
232
- if (now > record.expiresAt) {
233
- this.codes.delete(code);
234
- eventBus.emit("pairing:expired", {
235
- code,
236
- channel: record.channel,
237
- userId: record.userId,
238
- });
239
- }
240
- }
241
- }
242
-
243
- private startCleanup(): void {
244
- setInterval(() => {
245
- this.cleanup();
246
- }, 60 * 1000);
247
- }
248
- }
249
-
250
- export const pairingService = new PairingService();
@@ -1,270 +0,0 @@
1
- import { logger } from "../utils/logger.ts";
2
-
3
- export interface TokenBucketConfig {
4
- maxTokens: number;
5
- refillRate: number;
6
- refillIntervalMs?: number;
7
- }
8
-
9
- export interface TokenBucket {
10
- tokens: number;
11
- lastUpdate: number;
12
- }
13
-
14
- export interface RateLimitResult {
15
- allowed: boolean;
16
- remaining: number;
17
- retryAfterMs: number;
18
- }
19
-
20
- export interface TokenBucketStats {
21
- totalBuckets: number;
22
- activeBuckets: number;
23
- totalTokensAvailable: number;
24
- }
25
-
26
- export class TokenBucketRateLimiter {
27
- private buckets: Map<string, TokenBucket> = new Map();
28
- private config: Required<TokenBucketConfig>;
29
- private log = logger.child("token-bucket-limiter");
30
-
31
- constructor(config: TokenBucketConfig) {
32
- this.config = {
33
- maxTokens: config.maxTokens,
34
- refillRate: config.refillRate,
35
- refillIntervalMs: config.refillIntervalMs ?? 1000,
36
- };
37
-
38
- this.startCleanup();
39
- }
40
-
41
- canProceed(key: string): RateLimitResult {
42
- const now = Date.now();
43
- let bucket = this.buckets.get(key);
44
-
45
- if (!bucket) {
46
- bucket = {
47
- tokens: this.config.maxTokens,
48
- lastUpdate: now,
49
- };
50
- this.buckets.set(key, bucket);
51
- }
52
-
53
- const elapsed = now - bucket.lastUpdate;
54
- const tokensToAdd = (elapsed / this.config.refillIntervalMs) * this.config.refillRate;
55
- bucket.tokens = Math.min(this.config.maxTokens, bucket.tokens + tokensToAdd);
56
- bucket.lastUpdate = now;
57
-
58
- if (bucket.tokens >= 1) {
59
- bucket.tokens--;
60
- return {
61
- allowed: true,
62
- remaining: Math.floor(bucket.tokens),
63
- retryAfterMs: 0,
64
- };
65
- }
66
-
67
- const retryAfterMs = Math.ceil(
68
- ((1 - bucket.tokens) / this.config.refillRate) * this.config.refillIntervalMs
69
- );
70
-
71
- this.log.debug(`Rate limit hit for ${key}, retry after ${retryAfterMs}ms`);
72
-
73
- return {
74
- allowed: false,
75
- remaining: 0,
76
- retryAfterMs,
77
- };
78
- }
79
-
80
- consume(key: string, tokens: number = 1): RateLimitResult {
81
- const now = Date.now();
82
- let bucket = this.buckets.get(key);
83
-
84
- if (!bucket) {
85
- bucket = {
86
- tokens: this.config.maxTokens,
87
- lastUpdate: now,
88
- };
89
- this.buckets.set(key, bucket);
90
- }
91
-
92
- const elapsed = now - bucket.lastUpdate;
93
- const tokensToAdd = (elapsed / this.config.refillIntervalMs) * this.config.refillRate;
94
- bucket.tokens = Math.min(this.config.maxTokens, bucket.tokens + tokensToAdd);
95
- bucket.lastUpdate = now;
96
-
97
- if (bucket.tokens >= tokens) {
98
- bucket.tokens -= tokens;
99
- return {
100
- allowed: true,
101
- remaining: Math.floor(bucket.tokens),
102
- retryAfterMs: 0,
103
- };
104
- }
105
-
106
- const retryAfterMs = Math.ceil(
107
- ((tokens - bucket.tokens) / this.config.refillRate) * this.config.refillIntervalMs
108
- );
109
-
110
- return {
111
- allowed: false,
112
- remaining: 0,
113
- retryAfterMs,
114
- };
115
- }
116
-
117
- peek(key: string): number {
118
- const bucket = this.buckets.get(key);
119
- if (!bucket) return this.config.maxTokens;
120
-
121
- const now = Date.now();
122
- const elapsed = now - bucket.lastUpdate;
123
- const tokensToAdd = (elapsed / this.config.refillIntervalMs) * this.config.refillRate;
124
-
125
- return Math.min(this.config.maxTokens, bucket.tokens + tokensToAdd);
126
- }
127
-
128
- refill(key: string, tokens?: number): void {
129
- const bucket = this.buckets.get(key);
130
- if (!bucket) return;
131
-
132
- bucket.tokens = Math.min(
133
- this.config.maxTokens,
134
- bucket.tokens + (tokens ?? this.config.maxTokens)
135
- );
136
- }
137
-
138
- reset(key: string): void {
139
- this.buckets.delete(key);
140
- }
141
-
142
- resetAll(): void {
143
- this.buckets.clear();
144
- this.log.info("All rate limit buckets cleared");
145
- }
146
-
147
- getStats(): TokenBucketStats {
148
- let totalTokens = 0;
149
- let activeBuckets = 0;
150
- const now = Date.now();
151
-
152
- for (const bucket of this.buckets.values()) {
153
- const elapsed = now - bucket.lastUpdate;
154
- const tokens = Math.min(
155
- this.config.maxTokens,
156
- bucket.tokens + (elapsed / this.config.refillIntervalMs) * this.config.refillRate
157
- );
158
-
159
- if (tokens < this.config.maxTokens) {
160
- activeBuckets++;
161
- }
162
- totalTokens += tokens;
163
- }
164
-
165
- return {
166
- totalBuckets: this.buckets.size,
167
- activeBuckets,
168
- totalTokensAvailable: Math.floor(totalTokens),
169
- };
170
- }
171
-
172
- private startCleanup(): void {
173
- setInterval(() => {
174
- const now = Date.now();
175
- for (const [key, bucket] of this.buckets) {
176
- const elapsed = now - bucket.lastUpdate;
177
- const fullTokens =
178
- bucket.tokens + (elapsed / this.config.refillIntervalMs) * this.config.refillRate;
179
-
180
- if (fullTokens >= this.config.maxTokens) {
181
- this.buckets.delete(key);
182
- }
183
- }
184
- }, 5 * 60 * 1000);
185
- }
186
- }
187
-
188
- export interface SlidingWindowConfig {
189
- windowMs: number;
190
- maxRequests: number;
191
- }
192
-
193
- export interface SlidingWindowEntry {
194
- timestamps: number[];
195
- }
196
-
197
- export class SlidingWindowRateLimiter {
198
- private windows: Map<string, SlidingWindowEntry> = new Map();
199
- private config: SlidingWindowConfig;
200
- private log = logger.child("sliding-window-limiter");
201
-
202
- constructor(config: SlidingWindowConfig) {
203
- this.config = config;
204
- this.startCleanup();
205
- }
206
-
207
- check(key: string): RateLimitResult {
208
- const now = Date.now();
209
- const windowStart = now - this.config.windowMs;
210
-
211
- let entry = this.windows.get(key);
212
- if (!entry) {
213
- entry = { timestamps: [] };
214
- this.windows.set(key, entry);
215
- }
216
-
217
- entry.timestamps = entry.timestamps.filter((t) => t > windowStart);
218
-
219
- if (entry.timestamps.length >= this.config.maxRequests) {
220
- const oldestInWindow = entry.timestamps[0];
221
- const retryAfterMs = oldestInWindow + this.config.windowMs - now;
222
-
223
- this.log.debug(`Sliding window limit hit for ${key}`);
224
-
225
- return {
226
- allowed: false,
227
- remaining: 0,
228
- retryAfterMs: Math.max(0, retryAfterMs),
229
- };
230
- }
231
-
232
- entry.timestamps.push(now);
233
-
234
- return {
235
- allowed: true,
236
- remaining: this.config.maxRequests - entry.timestamps.length,
237
- retryAfterMs: 0,
238
- };
239
- }
240
-
241
- reset(key: string): void {
242
- this.windows.delete(key);
243
- }
244
-
245
- resetAll(): void {
246
- this.windows.clear();
247
- }
248
-
249
- private startCleanup(): void {
250
- setInterval(() => {
251
- const now = Date.now();
252
- const windowStart = now - this.config.windowMs;
253
-
254
- for (const [key, entry] of this.windows) {
255
- entry.timestamps = entry.timestamps.filter((t) => t > windowStart);
256
- if (entry.timestamps.length === 0) {
257
- this.windows.delete(key);
258
- }
259
- }
260
- }, 60 * 1000);
261
- }
262
- }
263
-
264
- export function createTokenBucketLimiter(config: TokenBucketConfig): TokenBucketRateLimiter {
265
- return new TokenBucketRateLimiter(config);
266
- }
267
-
268
- export function createSlidingWindowLimiter(config: SlidingWindowConfig): SlidingWindowRateLimiter {
269
- return new SlidingWindowRateLimiter(config);
270
- }