@johpaz/hive-sdk 0.1.4 → 0.1.6

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 (278) hide show
  1. package/CHANGELOG.md +129 -0
  2. package/README.md +78 -23
  3. package/bun.lock +55 -29
  4. package/bunfig.toml +4 -2
  5. package/docs/API-AGENTS.md +78 -27
  6. package/docs/API-CONTEXT-COMPILER.md +31 -34
  7. package/docs/API-TOOLS-SKILLS-CHANNELS.md +58 -22
  8. package/docs/HIVE-HARNESS.md +1 -1
  9. package/docs/INDEX.md +4 -4
  10. package/docs/TEMPLATE-HIVE-APP.md +10 -10
  11. package/package.json +17 -12
  12. package/packages/cli/package.json +2 -2
  13. package/packages/cli/src/commands/create-app.test.ts +36 -7
  14. package/packages/cli/src/commands/init.ts +3 -3
  15. package/packages/cli/src/commands/run.ts +1 -1
  16. package/packages/cli/src/commands/test.ts +37 -25
  17. package/packages/cli/src/commands/trace.ts +30 -28
  18. package/packages/cli/templates/hive-app/.env.example +10 -2
  19. package/packages/cli/templates/hive-app/README.md +103 -0
  20. package/packages/cli/templates/hive-app/hive.config.ts +9 -3
  21. package/packages/cli/templates/hive-app/src/agents/coordinator.ts +8 -1
  22. package/packages/cli/templates/hive-app/src/main.ts +12 -19
  23. package/packages/core/package.json +13 -12
  24. package/packages/core/src/agent/acceptance-checks.ts +172 -0
  25. package/packages/core/src/agent/agent-catalog.ts +348 -0
  26. package/packages/core/src/agent/agent-loop.ts +1373 -0
  27. package/packages/core/src/agent/capability-search.ts +186 -0
  28. package/packages/core/src/agent/catalog-selector.ts +103 -0
  29. package/packages/core/src/agent/{Compaction.ts → compaction.ts} +86 -63
  30. package/packages/core/src/agent/context-compiler.ts +689 -0
  31. package/packages/core/src/agent/conversation-store.ts +381 -0
  32. package/packages/core/src/agent/curator.ts +276 -0
  33. package/packages/core/src/agent/delegation-runtime.ts +241 -0
  34. package/packages/core/src/agent/goal-runner.ts +323 -0
  35. package/packages/core/src/agent/index.ts +17 -12
  36. package/packages/core/src/agent/llm-client.ts +266 -0
  37. package/packages/core/src/agent/llm-providers/anthropic.ts +264 -0
  38. package/packages/core/src/agent/llm-providers/deepseek.ts +8 -0
  39. package/packages/core/src/agent/{providers → llm-providers}/gemini.ts +98 -60
  40. package/packages/core/src/agent/llm-providers/groq.ts +5 -0
  41. package/packages/core/src/agent/llm-providers/hiveagents.ts +253 -0
  42. package/packages/core/src/agent/{providers → llm-providers}/interface.ts +73 -13
  43. package/packages/core/src/agent/llm-providers/kimi.ts +8 -0
  44. package/packages/core/src/agent/llm-providers/minimax.ts +13 -0
  45. package/packages/core/src/agent/llm-providers/mistral.ts +5 -0
  46. package/packages/core/src/agent/llm-providers/modelscope.ts +5 -0
  47. package/packages/core/src/agent/llm-providers/nvidia.ts +5 -0
  48. package/packages/core/src/agent/{providers → llm-providers}/ollama.ts +31 -5
  49. package/packages/core/src/agent/llm-providers/openai-compat-base.ts +418 -0
  50. package/packages/core/src/agent/llm-providers/openai.ts +5 -0
  51. package/packages/core/src/agent/llm-providers/opencode-go.ts +9 -0
  52. package/packages/core/src/agent/llm-providers/openrouter.ts +5 -0
  53. package/packages/core/src/agent/llm-providers/qwen.ts +5 -0
  54. package/packages/core/src/agent/llm-providers/z-ai.ts +5 -0
  55. package/packages/core/src/agent/minimal-loadout.ts +47 -0
  56. package/packages/core/src/agent/playbook-selector.ts +119 -0
  57. package/packages/core/src/agent/{PromptBuilder.ts → prompt-builder.ts} +21 -22
  58. package/packages/core/src/{harness → agent}/proof-packet.ts +16 -21
  59. package/packages/core/src/agent/providers/index.ts +35 -16
  60. package/packages/core/src/agent/reflector.ts +320 -0
  61. package/packages/core/src/agent/routing-intent.ts +22 -0
  62. package/packages/core/src/{harness → agent}/run-epoch.ts +4 -3
  63. package/packages/core/src/{harness → agent}/run-store.ts +142 -81
  64. package/packages/core/src/agent/{Service.ts → service.ts} +37 -26
  65. package/packages/core/src/agent/skill-selector.ts +374 -0
  66. package/packages/core/src/agent/stuck-loop.ts +209 -0
  67. package/packages/core/src/agent/{selectors/ToolSelector.ts → tool-selector.ts} +188 -178
  68. package/packages/core/src/{ace/Tracer.ts → agent/tracer.ts} +37 -27
  69. package/packages/core/src/api/createAgent.test.ts +139 -27
  70. package/packages/core/src/api/createAgent.ts +232 -44
  71. package/packages/core/src/artifacts/store.ts +162 -0
  72. package/packages/core/src/canvas/canvas-manager.ts +161 -0
  73. package/packages/core/src/canvas/canvas.test.ts +8 -4
  74. package/packages/core/src/canvas/emitter.ts +131 -80
  75. package/packages/core/src/canvas/index.ts +1 -3
  76. package/packages/core/src/channels/base.ts +9 -1
  77. package/packages/core/src/channels/discord.ts +5 -4
  78. package/packages/core/src/channels/manager.ts +122 -30
  79. package/packages/core/src/channels/slack.ts +5 -4
  80. package/packages/core/src/channels/telegram.ts +36 -6
  81. package/packages/core/src/channels/webchat.ts +11 -10
  82. package/packages/core/src/channels/whatsapp.ts +23 -7
  83. package/packages/core/src/config/index.ts +13 -2
  84. package/packages/core/src/config/loader.ts +76 -29
  85. package/packages/core/src/ethics/EthicsGuard.test.ts +90 -36
  86. package/packages/core/src/ethics/EthicsGuard.ts +51 -47
  87. package/packages/core/src/events/agent-bus.ts +44 -68
  88. package/packages/core/src/events/channel-narration.ts +150 -0
  89. package/packages/core/src/events/narration.ts +82 -0
  90. package/packages/core/src/events/tool-narration.ts +62 -0
  91. package/packages/core/src/gateway/delegation-groups.ts +258 -0
  92. package/packages/core/src/{harness → gateway}/durable-queue.ts +102 -42
  93. package/packages/core/src/{harness → gateway}/job-store.ts +85 -48
  94. package/packages/core/src/gateway/lane-queue.ts +173 -0
  95. package/packages/core/src/gateway/notification-inbox.ts +57 -0
  96. package/packages/core/src/gateway/server.ts +1 -1
  97. package/packages/core/src/harness/index.ts +46 -27
  98. package/packages/core/src/index.ts +33 -27
  99. package/packages/core/src/mcp/hot-reload.ts +32 -23
  100. package/packages/core/src/mcp/index.ts +6 -3
  101. package/packages/core/src/mcp/singleton.ts +1 -4
  102. package/packages/core/src/mcp/tool-sync.ts +138 -0
  103. package/packages/core/src/memory/Scratchpad.test.ts +39 -20
  104. package/packages/core/src/memory/Scratchpad.ts +27 -34
  105. package/packages/core/src/multimodal/vision-service.ts +44 -38
  106. package/packages/core/src/resilience/retry.ts +95 -0
  107. package/packages/core/src/scheduler/CronScheduler.ts +334 -287
  108. package/packages/core/src/scheduler/index.ts +9 -7
  109. package/packages/core/src/scheduler/integration.ts +46 -26
  110. package/packages/core/src/scheduler/scheduler.test.ts +9 -13
  111. package/packages/core/src/scheduler/types.ts +7 -2
  112. package/packages/core/src/security/Pairing.ts +1 -1
  113. package/packages/core/src/skills/bundled/a2ui/a2ui_dashboard/SKILL.md +176 -0
  114. package/packages/core/src/skills/bundled/a2ui/a2ui_form/SKILL.md +202 -0
  115. package/packages/core/src/skills/bundled/a2ui/a2ui_interactive/SKILL.md +206 -0
  116. package/packages/core/src/skills/bundled/agents/agent_spawner/SKILL.md +173 -0
  117. package/packages/core/src/skills/bundled/agents/memory_manager/SKILL.md +143 -0
  118. package/packages/core/src/skills/bundled/agents/research_and_remember/SKILL.md +139 -0
  119. package/packages/core/src/skills/bundled/agents/task_orchestrator/SKILL.md +98 -0
  120. package/packages/core/src/skills/bundled/api/api_client/SKILL.md +132 -0
  121. package/packages/core/src/skills/bundled/cli/cli_pipeline/SKILL.md +135 -0
  122. package/packages/core/src/skills/bundled/cli/cli_safe_exec/SKILL.md +125 -0
  123. package/packages/core/src/skills/bundled/cli/software_engineering/SKILL.md +23 -0
  124. package/packages/core/src/skills/bundled/cron_manager/SKILL.md +188 -0
  125. package/packages/core/src/skills/bundled/cron_reminder/SKILL.md +112 -0
  126. package/packages/core/src/skills/bundled/filesystem/file_manager/SKILL.md +118 -0
  127. package/packages/core/src/skills/bundled/filesystem/file_read_and_summarize/SKILL.md +109 -0
  128. package/packages/core/src/skills/bundled/filesystem/file_writer/SKILL.md +129 -0
  129. package/packages/core/src/skills/bundled/filesystem/workspace_file_operator/SKILL.md +22 -0
  130. package/packages/core/src/skills/bundled/office/office_document_manager/SKILL.md +262 -0
  131. package/packages/core/src/skills/bundled/search_knowledge/capability_discovery/SKILL.md +75 -0
  132. package/packages/core/src/skills/bundled/web/browser_automate/SKILL.md +120 -0
  133. package/packages/core/src/skills/bundled/web/browser_scrape/SKILL.md +109 -0
  134. package/packages/core/src/skills/bundled/web/web_monitor/SKILL.md +127 -0
  135. package/packages/core/src/skills/bundled/web/web_research/SKILL.md +119 -0
  136. package/packages/core/src/skills/bundled-data.generated.ts +731 -2678
  137. package/packages/core/src/skills/skills.test.ts +52 -11
  138. package/packages/core/src/{harness → storage}/boot-id.ts +5 -2
  139. package/packages/core/src/storage/bootstrap.ts +151 -0
  140. package/packages/core/src/storage/causal-events.ts +84 -0
  141. package/packages/core/src/storage/collections.ts +680 -0
  142. package/packages/core/src/storage/crypto.ts +205 -74
  143. package/packages/core/src/{harness/db-helpers.ts → storage/hive.ts} +63 -7
  144. package/packages/core/src/storage/hivedb.ts +61 -0
  145. package/packages/core/src/storage/index.ts +111 -18
  146. package/packages/core/src/storage/model-id.ts +53 -0
  147. package/packages/core/src/storage/onboarding.ts +540 -972
  148. package/packages/core/src/storage/reconcile.ts +238 -0
  149. package/packages/core/src/storage/seed.ts +572 -406
  150. package/packages/core/src/storage/usage.ts +285 -225
  151. package/packages/core/src/storage/user-email.ts +11 -0
  152. package/packages/core/src/swarm/AgentExecutor.ts +1 -1
  153. package/packages/core/src/swarm/EventBridge.ts +1 -1
  154. package/packages/core/src/swarm/index.ts +12 -9
  155. package/packages/core/src/tool-runtime/index.ts +146 -23
  156. package/packages/core/src/tool-runtime/tool-worker.ts +2 -2
  157. package/packages/core/src/tool-runtime/worker-tools.ts +27 -0
  158. package/packages/core/src/{canvas/a2ui-tools.ts → tools/a2ui/index.ts} +17 -8
  159. package/packages/core/src/tools/agents/get-available-models.ts +36 -54
  160. package/packages/core/src/tools/agents/index.ts +784 -292
  161. package/packages/core/src/tools/api/api-request.test.ts +164 -0
  162. package/packages/core/src/tools/api/api-request.ts +174 -0
  163. package/packages/core/src/tools/api/index.ts +16 -0
  164. package/packages/core/src/tools/cli/index.ts +4 -0
  165. package/packages/core/src/tools/core/index.ts +281 -112
  166. package/packages/core/src/tools/cron/index.ts +121 -124
  167. package/packages/core/src/tools/index.ts +63 -78
  168. package/packages/core/src/tools/office/office-escribir-xlsx.ts +3 -1
  169. package/packages/core/src/tools/types.ts +3 -1
  170. package/packages/core/src/tools/web/artifact-inspect.ts +23 -0
  171. package/packages/core/src/tools/web/browser-backend.ts +129 -0
  172. package/packages/core/src/tools/web/browser-screenshot.ts +26 -5
  173. package/packages/core/src/tools/web/browser-service.ts +80 -35
  174. package/packages/core/src/tools/web/browser-type.ts +3 -8
  175. package/packages/core/src/tools/web/index.ts +4 -4
  176. package/packages/core/src/tools/web/webview-backend.ts +412 -0
  177. package/packages/core/src/voice/index.ts +89 -63
  178. package/packages/core/src/workers/agent.worker.ts +2 -2
  179. package/packages/core/src/workers/workers.test.ts +3 -10
  180. package/scripts/bump-version.ts +248 -0
  181. package/scripts/generate-skill-bundle.ts +108 -0
  182. package/test/acceptance-checks.test.ts +403 -0
  183. package/test/agent-loop-terminal-synthesis.test.ts +32 -0
  184. package/test/browser-backend.test.ts +308 -0
  185. package/test/catalog-agents-stay-enabled.test.ts +117 -0
  186. package/test/causal-events.test.ts +117 -0
  187. package/test/compaction.test.ts +105 -0
  188. package/test/context-compiler.test.ts +269 -0
  189. package/test/curator.test.ts +130 -0
  190. package/test/durable-queue.test.ts +114 -0
  191. package/test/harness-barrel.test.ts +64 -0
  192. package/test/hive-helpers.test.ts +130 -0
  193. package/test/hivedb-search.test.ts +189 -0
  194. package/test/internal-turns.test.ts +166 -0
  195. package/test/job-idempotency.test.ts +68 -0
  196. package/test/job-retry-backoff.test.ts +184 -0
  197. package/test/job-store.test.ts +381 -0
  198. package/test/llm-retry.test.ts +97 -0
  199. package/test/memory-perf.test.ts +774 -0
  200. package/test/minimal-loadout.test.ts +78 -0
  201. package/test/model-catalog.test.ts +105 -0
  202. package/test/preload.ts +12 -0
  203. package/test/reflector.test.ts +320 -0
  204. package/test/retention-cap.test.ts +91 -0
  205. package/test/retired-capabilities-pruned.test.ts +192 -0
  206. package/test/run-store.test.ts +355 -0
  207. package/test/scratchpad.test.ts +74 -0
  208. package/test/secrets-durability.test.ts +119 -0
  209. package/test/seed-model-reseed.test.ts +155 -0
  210. package/test/setup-agent-seed.test.ts +264 -0
  211. package/test/tool-inventory.test.ts +65 -0
  212. package/test/tool-runtime.test.ts +258 -0
  213. package/test/tool-selector-runtime-tools.test.ts +117 -0
  214. package/test/toon.test.ts +429 -0
  215. package/tsconfig.json +2 -0
  216. package/packages/core/src/ace/Curator.ts +0 -158
  217. package/packages/core/src/ace/Reflector.ts +0 -200
  218. package/packages/core/src/ace/index.ts +0 -4
  219. package/packages/core/src/agent/AgentRunner.ts +0 -711
  220. package/packages/core/src/agent/ContextCompiler.ts +0 -567
  221. package/packages/core/src/agent/ContextGuard.ts +0 -91
  222. package/packages/core/src/agent/ConversationStore.ts +0 -254
  223. package/packages/core/src/agent/Hooks.ts +0 -166
  224. package/packages/core/src/agent/StuckLoop.ts +0 -133
  225. package/packages/core/src/agent/providers/LLMClient.ts +0 -149
  226. package/packages/core/src/agent/providers/anthropic.ts +0 -212
  227. package/packages/core/src/agent/providers/openai-compat.ts +0 -231
  228. package/packages/core/src/agent/selectors/PlaybookSelector.ts +0 -121
  229. package/packages/core/src/agent/selectors/SkillSelector.ts +0 -322
  230. package/packages/core/src/agent/selectors/index.ts +0 -6
  231. package/packages/core/src/auth/auth.ts +0 -121
  232. package/packages/core/src/auth/index.ts +0 -1
  233. package/packages/core/src/canvas/CanvasManager.ts +0 -390
  234. package/packages/core/src/canvas/canvas-tools.ts +0 -448
  235. package/packages/core/src/harness/collections.ts +0 -98
  236. package/packages/core/src/harness/goal-verifier.ts +0 -141
  237. package/packages/core/src/harness/harness.test.ts +0 -236
  238. package/packages/core/src/harness/reconcile.ts +0 -149
  239. package/packages/core/src/mcp/MCPToolAdapter.ts +0 -176
  240. package/packages/core/src/multimodal/VisionService.ts +0 -293
  241. package/packages/core/src/scheduler/dag/AgentExecutor.ts +0 -53
  242. package/packages/core/src/scheduler/dag/DAGScheduler.ts +0 -250
  243. package/packages/core/src/scheduler/dag/EventBridge.ts +0 -122
  244. package/packages/core/src/scheduler/dag/TaskGraph.ts +0 -192
  245. package/packages/core/src/scheduler/dag/TaskNode.ts +0 -97
  246. package/packages/core/src/scheduler/dag/TaskResult.ts +0 -22
  247. package/packages/core/src/scheduler/dag/errors.ts +0 -37
  248. package/packages/core/src/scheduler/dag/index.ts +0 -26
  249. package/packages/core/src/scheduler/dag/presets/ResearchPreset.ts +0 -97
  250. package/packages/core/src/scheduler/dag/strategies/ParallelStrategy.ts +0 -21
  251. package/packages/core/src/scheduler/dag/strategies/PriorityStrategy.ts +0 -46
  252. package/packages/core/src/storage/HiveDBStorage.ts +0 -64
  253. package/packages/core/src/storage/SQLiteStorage.ts +0 -414
  254. package/packages/core/src/storage/hiveSeed.ts +0 -308
  255. package/packages/core/src/storage/hiveStorage.test.ts +0 -38
  256. package/packages/core/src/storage/schema.ts +0 -689
  257. package/packages/core/src/storage/storage.test.ts +0 -37
  258. package/packages/core/src/swarm/AgentBus.ts +0 -460
  259. package/packages/core/src/swarm/EventBus.ts +0 -169
  260. package/packages/core/src/swarm/WorkerPool.ts +0 -236
  261. package/packages/core/src/tools/bridge-events.ts +0 -26
  262. package/packages/core/src/tools/canvas/index.ts +0 -375
  263. package/packages/core/src/tools/codebridge/index.ts +0 -342
  264. package/packages/core/src/tools/meeting/index.ts +0 -353
  265. package/packages/core/src/tools/projects/index.ts +0 -37
  266. package/packages/core/src/tools/projects/project-create.ts +0 -94
  267. package/packages/core/src/tools/projects/project-done.ts +0 -66
  268. package/packages/core/src/tools/projects/project-fail.ts +0 -66
  269. package/packages/core/src/tools/projects/project-list.ts +0 -96
  270. package/packages/core/src/tools/projects/project-update.ts +0 -72
  271. package/packages/core/src/tools/projects/task-create.ts +0 -68
  272. package/packages/core/src/tools/projects/task-evaluate.ts +0 -93
  273. package/packages/core/src/tools/projects/task-update.ts +0 -93
  274. package/packages/core/src/tools/voice/index.ts +0 -104
  275. package/packages/core/src/tools/web/api-request.test.ts +0 -170
  276. package/packages/core/src/tools/web/api-request.ts +0 -239
  277. package/test/setup-db.ts +0 -216
  278. /package/packages/core/src/agent/{NativeTools.ts → native-tools.ts} +0 -0
@@ -27,8 +27,8 @@ const agent = await createAgent(config: AgentConfig): Promise<Agent>
27
27
  ```typescript
28
28
  interface AgentConfig {
29
29
  name: string;
30
- model?: string; // default: gpt-4o-mini
31
- provider?: "openai" | "anthropic" | "gemini" | "ollama";
30
+ model?: string; // id tal como lo nombra su dueño, ej. "claude-opus-5"
31
+ provider?: Provider; // cualquiera de los 16 del catálogo
32
32
  systemPrompt?: string;
33
33
  tools?: ToolDefinition[]; // Tools custom
34
34
  skills?: SkillDefinition[]; // Skills custom
@@ -43,6 +43,21 @@ interface AgentConfig {
43
43
  }
44
44
  ```
45
45
 
46
+ La config **se persiste en la fila del agente**, que es de donde el loop resuelve
47
+ provider y modelo en cada turno. Consecuencias que conviene tener presentes:
48
+
49
+ - `model` exige `provider`: el mismo modelo lo sirven varios providers y la clave
50
+ del catálogo depende de cuál. Sin provider, `createAgent` lanza.
51
+ - El modelo tiene que existir en `SEED_DATA.models`, o lanza con el nombre del
52
+ provider al que no pertenece.
53
+ - `name` deriva el id del agente (`"Mi Agente"` → `mi_agente`), así que dos
54
+ `createAgent` con el mismo nombre comparten fila e historial.
55
+ - Las tools pasadas acá quedan registradas **y** indexadas, así que el modelo
56
+ puede descubrirlas con `search_knowledge` como a las nativas.
57
+
58
+ > Hasta 0.1.5 `provider`, `model`, `maxIterations`, `skills` y `workspace` se
59
+ > aceptaban y se descartaban: el agente corría con lo que hubiera en la base.
60
+
46
61
  ### Agent
47
62
 
48
63
  ```typescript
@@ -82,7 +97,7 @@ import { createAgent, defineTool } from "@johpaz/hive-sdk";
82
97
  const agent = await createAgent({
83
98
  name: "asistente",
84
99
  provider: "openai",
85
- model: "gpt-4o-mini",
100
+ model: "gpt-5.6-luna",
86
101
  systemPrompt: "Eres un asistente útil.",
87
102
  });
88
103
 
@@ -208,7 +223,7 @@ const result = await runAgentIsolated({
208
223
 
209
224
  ## Tool Selector
210
225
 
211
- Selección automática de tools basada en FTS5.
226
+ Selección automática de tools por búsqueda BM25 sobre el índice de capacidad.
212
227
 
213
228
  ```typescript
214
229
  import { selectTools, CORE_TOOL_CATALOG } from "@johpaz/hive-sdk";
@@ -229,22 +244,22 @@ const MIN_RELEVANCE_THRESHOLD = -30;
229
244
 
230
245
  ### CORE_TOOL_CATALOG
231
246
 
232
- ~50 tools built-in organizadas por categoría:
233
-
234
- | Categoría | Descripción |
235
- |-----------|-------------|
236
- | filesystem | read, write, edit, delete, list, glob |
237
- | web | web_search, web_fetch, browser automation |
238
- | projects | project/task CRUD |
239
- | cron | Croner-based scheduling |
240
- | cli | Shell command execution |
241
- | agents | Agent management, task delegation |
242
- | canvas | UI rendering, A2UI |
243
- | codebridge | Code execution bridge |
244
- | voice | TTS/STT |
245
- | core | save_note, notify, report_progress |
246
- | office | PDF, DOCX, XLSX, PPTX |
247
- | meeting | Meeting management |
247
+ 58 tools built-in organizadas por categoría:
248
+
249
+ | Categoría | # | Descripción |
250
+ |-----------|---|-------------|
251
+ | agents | 15 | delegación (`task_delegate`, `task_revise`), memoria, catálogo de modelos |
252
+ | web | 10 | `web_search`, `web_fetch`, automatización de browser, `artifact_inspect` |
253
+ | cron | 8 | scheduling con Croner |
254
+ | office | 8 | PDF, DOCX, XLSX, PPTX |
255
+ | filesystem | 7 | read, write, edit, delete, list, glob, exists |
256
+ | a2ui | 4 | superficies de UI generadas por el agente |
257
+ | core | 4 | `save_note`, `notify`, `report_progress`, `search_knowledge` |
258
+ | cli | 1 | ejecución de comandos |
259
+ | api | 1 | `api_request` |
260
+
261
+ Las categorías `projects`, `canvas`, `codebridge`, `voice` y `meeting`
262
+ desaparecieron en 0.1.5 junto con sus tools.
248
263
 
249
264
  ---
250
265
 
@@ -266,19 +281,55 @@ const minimal = getMinimalSkills();
266
281
 
267
282
  ### Providers Soportados
268
283
 
269
- | Provider | Modelos | Streaming |
270
- |----------|---------|-----------|
271
- | openai | gpt-4o, gpt-4o-mini | ✅ |
272
- | anthropic | claude-sonnet, claude-haiku | |
273
- | gemini | gemini-2.5-flash | ✅ |
274
- | ollama | modelos locales | |
284
+ 16 providers, todos sembrados con su catálogo de modelos y su precio por millón
285
+ de tokens. `provider` en `createAgent` acepta cualquiera de estos ids.
286
+
287
+ | Provider | Adapter | Notas |
288
+ |----------|---------|-------|
289
+ | `anthropic` | nativo | extended thinking, round-trip de thinking blocks |
290
+ | `gemini` | nativo | REST v1beta |
291
+ | `ollama` | nativo | modelos locales, flag `think` |
292
+ | `openai` | OpenAI-compat | Sol / Terra / Luna |
293
+ | `deepseek`, `kimi` | OpenAI-compat | round-trip de `reasoning_content` |
294
+ | `mistral`, `groq`, `qwen`, `minimax` | OpenAI-compat | |
295
+ | `z-ai` | OpenAI-compat | sirve en `/api/paas/v4`, no en `/v1` |
296
+ | `hiveagents` | OpenAI-compat | |
297
+ | `nvidia`, `openrouter`, `opencode-go`, `modelscope` | OpenAI-compat | **revendedores** |
298
+
299
+ Los cuatro revendedores prefijan sus ids de modelo con su propio id de provider
300
+ (`modelscope/Qwen/Qwen3.5-397B-A17B`), porque sirven modelos de terceros que se
301
+ solapan entre sí y la colección `models` se indexa por una sola clave. El
302
+ prefijo no llega al cable: el adapter lo quita antes del request.
303
+
304
+ ```typescript
305
+ import { catalogModelKey, wireModelId } from "@johpaz/hive-sdk";
306
+
307
+ catalogModelKey("modelscope", "Qwen/Qwen3.5-397B-A17B"); // modelscope/Qwen/Qwen3.5-397B-A17B
308
+ wireModelId("modelscope", "modelscope/Qwen/Qwen3.5-397B-A17B"); // Qwen/Qwen3.5-397B-A17B
309
+ ```
310
+
311
+ ### Errores del provider
312
+
313
+ `callLLM` nunca lanza: devuelve `stop_reason: "error"` con un campo `error`
314
+ tipado. Chequealo antes de persistir `content` en cualquier lado — es texto para
315
+ mostrar, no salida del modelo.
316
+
317
+ ```typescript
318
+ const response = await callLLM({ ... });
319
+
320
+ if (response.stop_reason === "error") {
321
+ console.error(response.error?.message);
322
+ // HTTP 404/410 → el proveedor retiró el modelo; reintentar no sirve.
323
+ if (response.error?.modelUnavailable) selectAnotherModel();
324
+ }
325
+ ```
275
326
 
276
327
  ### callLLM
277
328
 
278
329
  ```typescript
279
330
  import { callLLM, resolveProviderConfig } from "@johpaz/hive-sdk";
280
331
 
281
- const config = await resolveProviderConfig("openai", "gpt-4o-mini");
332
+ const config = await resolveProviderConfig("openai", "gpt-5.6-luna");
282
333
 
283
334
  const response = await callLLM({
284
335
  provider: config.provider,
@@ -41,7 +41,7 @@ El Context Compiler implementa 4 estrategias de Context Engineering:
41
41
  | Estrategia | Descripción |
42
42
  |------------|-------------|
43
43
  | **ESCRIBIR** | Guardar información fuera del contexto (Scratchpad, trazas) |
44
- | **SELECCIONAR** | Traer solo lo relevante (FTS5 tool/skill/playbook selection) |
44
+ | **SELECCIONAR** | Traer solo lo relevante (selección BM25 de tool/skill/playbook) |
45
45
  | **COMPRIMIR** | Reducir tokens (compaction, tool result clearing) |
46
46
  | **AISLAR** | Separar contextos por agente (workers reciben contexto mínimo) |
47
47
 
@@ -114,56 +114,53 @@ Memoria temporal por hilo de conversación.
114
114
 
115
115
  ```typescript
116
116
  import { Scratchpad } from "@johpaz/hive-sdk";
117
- import { getDb } from "@johpaz/hive-sdk";
118
117
 
119
- const db = getDb();
120
- const pad = new Scratchpad(db);
118
+ const pad = new Scratchpad();
121
119
 
122
- // Escribir nota
123
- pad.write("thread-1", "mi-nota", "contenido");
124
-
125
- // Leer nota
126
- const value = pad.read("thread-1", "mi-nota");
127
-
128
- // Listar notas de un hilo
129
- const all = pad.list("thread-1");
130
-
131
- // Eliminar nota
132
- pad.delete("thread-1", "mi-nota");
133
-
134
- // Limpiar todas las notas de un hilo
135
- pad.clear("thread-1");
120
+ await pad.write("thread-1", "mi-nota", "contenido");
121
+ const value = await pad.read("thread-1", "mi-nota");
122
+ const all = await pad.list("thread-1"); // { "mi-nota": "contenido" }
123
+ await pad.delete("thread-1", "mi-nota");
124
+ await pad.clear("thread-1");
136
125
  ```
137
126
 
127
+ El scratchpad se inyecta al system prompt en cada turno bajo
128
+ `# SCRATCHPAD (Persistent Notes)`, comprimido con TOON. La clase es una fachada
129
+ sobre las funciones de `conversation-store`: hasta 0.1.5 tenía implementación
130
+ propia y, como usaba el mismo id, escribía las mismas filas con un documento
131
+ incompleto que rompía el orden por recencia.
132
+
138
133
  ---
139
134
 
140
135
  ## EthicsGuard
141
136
 
142
- Guardián de reglas de calidad de respuesta desde la base de datos.
137
+ Capa opcional de reglas de calidad de respuesta, leídas de la colección
138
+ `playbook` (`category: "response_quality"`).
143
139
 
144
140
  ```typescript
145
141
  import { EthicsGuard } from "@johpaz/hive-sdk";
146
- import { getDb } from "@johpaz/hive-sdk";
147
142
 
148
- const db = getDb();
149
- const guard = new EthicsGuard(db);
143
+ const guard = new EthicsGuard();
150
144
 
151
- // Obtener reglas
152
- const rules = guard.getRules(); // Todas
153
- const rulesForRole = guard.getRules("agent"); // Con FTS5
145
+ const rules = await guard.getRules(); // todas las activas
146
+ const rulesForRole = await guard.getRules("coordinator"); // filtra por applicable_to
154
147
 
155
- // Inyectar en system prompt
156
- const prompt = guard.injectIntoPrompt(
157
- "Eres un asistente.",
158
- rules
159
- );
148
+ const prompt = guard.injectIntoPrompt("Eres un asistente.", rules);
160
149
 
161
- // Verificar si hay reglas
162
- if (guard.hasEthicsLayer()) {
150
+ if (await guard.hasEthicsLayer()) {
163
151
  console.log("Reglas de calidad activas");
164
152
  }
165
153
  ```
166
154
 
155
+ > El constructor ya no recibe un handle de base y todos los métodos son async:
156
+ > hasta 0.1.5 la clase armaba SQL a mano contra la tabla `playbook` y hacía un
157
+ > JOIN con la tabla virtual `playbook_fts`. Ninguna de las dos existe.
158
+
159
+ **Esto no es la ética constitucional del agente.** Esa vive en la colección
160
+ `ethics` y la ensambla `buildSystemPrompt()` como primera sección, completa y sin
161
+ comprimir. `EthicsGuard` es un complemento para hosts que quieran inyectar,
162
+ además, reglas aprendidas por ACE.
163
+
167
164
  ---
168
165
 
169
166
  ## ACE (Tracer, Reflector, Curator)
@@ -178,7 +175,7 @@ import { saveTrace, recordLLMUsage } from "@hive/core/ace";
178
175
  // Guardar traza de ejecución
179
176
  saveTrace({
180
177
  agentId: "analyst",
181
- model: "gpt-4o-mini",
178
+ model: "gpt-5.6-luna",
182
179
  messages: 5,
183
180
  toolCalls: ["web_search", "read_file"],
184
181
  durationMs: 1200,
@@ -188,7 +185,7 @@ saveTrace({
188
185
 
189
186
  // Registrar uso de LLM
190
187
  recordLLMUsage({
191
- model: "gpt-4o-mini",
188
+ model: "gpt-5.6-luna",
192
189
  inputTokens: 200,
193
190
  outputTokens: 250,
194
191
  durationMs: 800,
@@ -71,7 +71,7 @@ const exec = new ToolExecutor(reg);
71
71
  const result = await exec.execute("echo", { msg: "hola" });
72
72
  ```
73
73
 
74
- ### Tool Selection (FTS5)
74
+ ### Tool Selection (BM25)
75
75
 
76
76
  ```typescript
77
77
  import { selectTools, CORE_TOOL_CATALOG } from "@johpaz/hive-sdk";
@@ -120,17 +120,25 @@ Conecta APIs REST con autenticación y métodos HTTP:
120
120
 
121
121
  ```typescript
122
122
  const result = await apiRequestTool.execute({
123
- url: "https://api.example.com/items",
124
123
  method: "POST",
125
- headers: { "X-Custom": "value" },
126
- body: { name: "example" },
127
- auth: { type: "bearer", token: process.env.API_TOKEN! },
128
- timeoutMs: 30000,
124
+ url: "https://api.example.com/items",
125
+ headers: {
126
+ "Content-Type": "application/json",
127
+ Authorization: `Bearer ${process.env.API_TOKEN}`,
128
+ },
129
+ body: JSON.stringify({ name: "example" }),
130
+ query_params: { verbose: "1" },
131
+ timeout_ms: 30000,
129
132
  });
130
133
 
131
- // Auth soportada: bearer, basic, api_key (header o query)
134
+ // { ok, status, statusText, headers, body, contentType, url }
135
+ // `body` viene parseado si la respuesta es JSON, y como string si no.
132
136
  ```
133
137
 
138
+ Nunca lanza: un fallo de red o un método inválido vuelven como
139
+ `{ ok: false, error }`. No tiene helpers de autenticación — la credencial va
140
+ como un header más.
141
+
134
142
  ---
135
143
 
136
144
  ## Skills
@@ -168,12 +176,24 @@ const skill = loader.get("file-manager");
168
176
 
169
177
  ### Skills empaquetadas
170
178
 
171
- El SDK incluye skills empaquetadas para casos comunes. Algunas útiles para web y APIs:
179
+ El SDK incluye 23 skills empaquetadas. Algunas útiles para web y APIs:
172
180
 
173
181
  - `web_research` — búsqueda y síntesis con `web_search` + `web_fetch`.
174
- - `web_browser_research` — investigación profunda combinando `web_search` con navegación real (`browser_navigate`, `browser_extract`) para sitios dinámicos.
175
182
  - `browser_scrape` — captura de contenido renderizado con screenshots.
176
183
  - `browser_automate` — automatización de flujos web (clicks, formularios).
184
+ - `api_client` — consumo de APIs REST con `api_request`.
185
+ - `capability_discovery` — la skill mínima: enseña al agente a encontrar el resto.
186
+
187
+ Se generan desde los `SKILL.md` de `packages/core/src/skills/bundled/`:
188
+
189
+ ```bash
190
+ bun run skills:bundle
191
+ ```
192
+
193
+ En 0.1.5 se retiraron 21 skills que invocaban tools inexistentes (`voice_*`,
194
+ `meeting_transcription`, `canvas_*`, `code_*`, `project_*`): el selector se las
195
+ podía ofrecer al modelo y la ejecución moría sin ejecutor. Hay un test que falla
196
+ si alguna vuelve a declarar una tool que no está en el registry.
177
197
 
178
198
  ---
179
199
 
@@ -371,29 +391,45 @@ unsubscribeCanvas(handler);
371
391
 
372
392
  ## Storage
373
393
 
374
- Base de datos SQLite con FTS5.
394
+ HiveDB (`@johpaz/hive-db`), un motor embebido con colecciones de documentos e
395
+ índice BM25. Reemplazó a SQLite + FTS5 en 0.1.5.
375
396
 
376
397
  ```typescript
377
- import { initializeDatabase, dbService } from "@johpaz/hive-sdk";
398
+ import { ensureHiveDb, col } from "@johpaz/hive-sdk";
399
+ import type { AgentDoc } from "@johpaz/hive-sdk";
400
+
401
+ // Abre la base, crea los índices y siembra el catálogo. Idempotente.
402
+ await ensureHiveDb();
378
403
 
379
- await initializeDatabase();
380
- const db = getTestDb();
404
+ const agents = await col<AgentDoc>("agents");
381
405
 
382
- const results = db.query("SELECT * FROM agents WHERE id = ?").all(agentId);
383
- const single = db.query("SELECT * FROM agents WHERE id = ?").get(agentId);
406
+ const one = await agents.get(agentId); // { id, doc, version } | undefined
407
+ const workers = await agents.findBy("role", "worker");
408
+ const all = await agents.scan({});
409
+ const scoped = await agents.scan({ prefix: `${threadId}:` });
384
410
 
385
- dbService.close();
411
+ // Escritura con concurrencia optimista
412
+ await agents.put(agentId, { ...one.doc, status: "idle" }, { expectedVersion: one.version });
386
413
  ```
387
414
 
388
- ### Schemas FTS5
415
+ `HIVE_DB_PATH=":memory:"` abre una base efímera — es lo que usa la suite de
416
+ tests para no tocar la del usuario.
417
+
418
+ ### Búsqueda de capacidad
419
+
420
+ El índice BM25 es lo que hace funcionar a `search_knowledge`: el agente arranca
421
+ con un loadout mínimo y descubre el resto en runtime.
389
422
 
390
- ```sql
391
- CREATE VIRTUAL TABLE playbook_fts USING fts5(rule, category, applicable_to);
392
- CREATE VIRTUAL TABLE tools_fts USING fts5(tool_name, name, description, category);
393
- CREATE VIRTUAL TABLE skills_fts USING fts5(id, name, description, category, tools, triggers, body);
394
- CREATE VIRTUAL TABLE mcp_tools_fts USING fts5(id, name, description, category);
423
+ ```typescript
424
+ import { selectTools, selectSkills } from "@johpaz/hive-sdk";
425
+
426
+ const tools = await selectTools("leer un archivo del workspace");
427
+ const skills = await selectSkills("investigar en la web");
395
428
  ```
396
429
 
430
+ Una tool declarada con `defineTool` y pasada a `createAgent` queda indexada
431
+ automáticamente, así que el modelo puede descubrirla igual que a las nativas.
432
+
397
433
  ---
398
434
 
399
435
  ## Config
@@ -7,7 +7,7 @@ packets. It's what lets a host app (a `hive-app`, or a production service like
7
7
  Hive Cloud) survive a process restart mid-task without losing work or
8
8
  double-executing a tool call.
9
9
 
10
- It is deliberately **not** wired into `AgentRunner` automatically, and it has
10
+ It is deliberately **not** wired into the agent loop automatically, and it has
11
11
  no built-in notion of "chat" vs "project task" vs any other app-specific job
12
12
  type — job `type` and run `kind` are plain strings. The host app defines its
13
13
  own vocabulary and registers executors for it. This is the same infrastructure
package/docs/INDEX.md CHANGED
@@ -41,7 +41,7 @@ const tool = defineTool({
41
41
  const agent = await createAgent({
42
42
  name: "asistente",
43
43
  provider: "openai",
44
- model: "gpt-4o-mini",
44
+ model: "gpt-5.6-luna",
45
45
  tools: [tool],
46
46
  });
47
47
 
@@ -97,7 +97,7 @@ packages/
97
97
  │ ├── api/ # createAgent(), Agent interface
98
98
  │ ├── agent/ # AgentLoop, ContextCompiler, ConversationStore
99
99
  │ │ ├── providers/ # LLM providers (OpenAI, Anthropic, Gemini, Ollama)
100
- │ │ └── selectors/ # FTS5 ToolSelector, SkillSelector, PlaybookSelector
100
+ │ │ └── tool-selector.ts, skill-selector.ts, playbook-selector.ts (BM25 sobre HiveDB)
101
101
  │ ├── tools/ # 70+ built-in tools + ToolRegistry + ToolExecutor
102
102
  │ ├── skills/ # SkillLoader, defineSkill()
103
103
  │ ├── swarm/ # DAGScheduler, TaskGraph, WorkerPool
@@ -105,7 +105,7 @@ packages/
105
105
  │ ├── gateway/ # HTTP/WebSocket server (Bun.serve)
106
106
  │ ├── channels/ # Telegram, Discord, WhatsApp, Slack, Webchat
107
107
  │ ├── mcp/ # MCPClientManager + transports (SSE, WS, STDIO)
108
- │ ├── storage/ # SQLite (bun:sqlite) + FTS5
108
+ │ ├── storage/ # HiveDB (colecciones + BM25)
109
109
  │ ├── canvas/ # CanvasManager + A2UI emitter
110
110
  │ ├── scheduler/ # CronScheduler + DAG execution
111
111
  │ ├── tool-runtime/ # Bun Worker pool para ejecución paralela de tools
@@ -137,7 +137,7 @@ packages/
137
137
  Unidad de ejecución con configuración, contexto y ciclo de ejecución.
138
138
 
139
139
  ### Tool
140
- Función invocable por el agente. Definida con `defineTool()`, seleccionada vía FTS5.
140
+ Función invocable por el agente. Definida con `defineTool()`, seleccionada por búsqueda BM25.
141
141
 
142
142
  ### Skill
143
143
  Composición de tools con triggers semánticos. Definida con `defineSkill()`.
@@ -1,6 +1,6 @@
1
1
  # Template `hive-app` — Documentación Completa
2
2
 
3
- El template `hive-app` genera una **aplicación harness completa** lista para ejecutar. Incluye gateway HTTP/WebSocket, agente coordinador, configuración de canales, base de datos SQLite, y deployment con Docker.
3
+ El template `hive-app` genera una **aplicación harness completa** lista para ejecutar. Incluye gateway HTTP/WebSocket, agente coordinador, configuración de canales, base de datos HiveDB, y deployment con Docker.
4
4
 
5
5
  ---
6
6
 
@@ -97,7 +97,7 @@ export default {
97
97
  | `channels.discord.enabled` | `boolean` | `false` | Bot de Discord |
98
98
  | `channels.whatsapp.enabled` | `boolean` | `false` | Bot de WhatsApp |
99
99
  | `channels.slack.enabled` | `boolean` | `false` | Bot de Slack |
100
- | `database.path` | `string` | `"./data/hive.db"` | Ruta de la base de datos SQLite |
100
+ | `database.path` | `string` | `"./data/hive"` | Ruta de la base de datos HiveDB |
101
101
 
102
102
  ---
103
103
 
@@ -105,7 +105,7 @@ export default {
105
105
 
106
106
  Entry point de la aplicación. Realiza:
107
107
 
108
- 1. Inicializa la base de datos (`initializeDatabase`)
108
+ 1. Inicializa la base de datos (`ensureHiveDb`, que además siembra el catálogo)
109
109
  2. Crea el agente coordinador (`createAgent`)
110
110
  3. Inicializa el ChannelManager
111
111
  4. Arranca el gateway (`startGateway`)
@@ -115,7 +115,7 @@ Entry point de la aplicación. Realiza:
115
115
  import {
116
116
  createAgent,
117
117
  startGateway,
118
- initializeDatabase,
118
+ ensureHiveDb,
119
119
  ChannelManager,
120
120
  logger,
121
121
  } from "@johpaz/hive-sdk";
@@ -126,12 +126,12 @@ const log = logger.child("app");
126
126
  async function main() {
127
127
  log.info(`Starting my-hive...`);
128
128
 
129
- await initializeDatabase();
129
+ await ensureHiveDb();
130
130
 
131
131
  const agent = await createAgent({
132
132
  name: "coordinator",
133
133
  provider: "openai",
134
- model: "gpt-4o-mini",
134
+ model: "gpt-5.6-luna",
135
135
  systemPrompt: "You are a helpful AI assistant...",
136
136
  });
137
137
 
@@ -160,7 +160,7 @@ Puedes cambiar el `provider`, `model`, y `systemPrompt`:
160
160
  ```typescript
161
161
  const agent = await createAgent({
162
162
  name: "coordinator",
163
- provider: "anthropic", // "openai" | "anthropic" | "gemini" | "ollama"
163
+ provider: "anthropic", // cualquiera de los 16 del catálogo
164
164
  model: "claude-3-5-sonnet-20241022",
165
165
  systemPrompt: "Tu system prompt personalizado...",
166
166
  });
@@ -183,7 +183,7 @@ const searchTool = defineTool({
183
183
  const agent = await createAgent({
184
184
  name: "coordinator",
185
185
  provider: "openai",
186
- model: "gpt-4o-mini",
186
+ model: "gpt-5.6-luna",
187
187
  tools: [searchTool],
188
188
  });
189
189
  ```
@@ -200,7 +200,7 @@ import { createAgent } from "@johpaz/hive-sdk";
200
200
  export const coordinatorAgent = await createAgent({
201
201
  name: "coordinator",
202
202
  provider: "openai",
203
- model: "gpt-4o-mini",
203
+ model: "gpt-5.6-luna",
204
204
  systemPrompt: "You are the coordinator agent...",
205
205
  });
206
206
  ```
@@ -278,7 +278,7 @@ LOG_LEVEL=info
278
278
  |----------|-----------|-------------|
279
279
  | `HIVE_HOST` | No | Host del gateway |
280
280
  | `HIVE_PORT` | No | Puerto del gateway |
281
- | `HIVE_DATA_DIR` | No | Directorio de datos SQLite |
281
+ | `HIVE_HOME` | No | Directorio de datos (HiveDB en `<HIVE_HOME>/data`) |
282
282
  | `OPENAI_API_KEY` | Sí* | API key de OpenAI |
283
283
  | `ANTHROPIC_API_KEY` | Sí* | API key de Anthropic |
284
284
  | `GOOGLE_API_KEY` | Sí* | API key de Gemini |
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@johpaz/hive-sdk",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
+ "private": false,
4
5
  "description": "Hive SDK — The Agent Harness SDK. Build, deploy, and scale AI agent applications with multi-channel support, context engineering, and swarm orchestration.",
5
6
  "license": "MIT",
6
7
  "homepage": "https://github.com/johpaz/hive-sdk#readme",
@@ -31,14 +32,15 @@
31
32
  ".": "./packages/core/src/index.ts",
32
33
  "./agent": "./packages/core/src/agent/index.ts",
33
34
  "./agent/providers": "./packages/core/src/agent/providers/index.ts",
34
- "./agent/selectors": "./packages/core/src/agent/selectors/index.ts",
35
35
  "./tools": "./packages/core/src/tools/index.ts",
36
36
  "./skills": "./packages/core/src/skills/index.ts",
37
37
  "./storage": "./packages/core/src/storage/index.ts",
38
38
  "./swarm": "./packages/core/src/swarm/index.ts",
39
39
  "./swarm/strategies": "./packages/core/src/swarm/strategies/index.ts",
40
40
  "./swarm/presets": "./packages/core/src/swarm/presets/index.ts",
41
- "./ace": "./packages/core/src/ace/index.ts",
41
+ "./scheduler": "./packages/core/src/scheduler/index.ts",
42
+ "./workers": "./packages/core/src/workers/index.ts",
43
+ "./events": "./packages/core/src/events/event-bus.ts",
42
44
  "./ethics": "./packages/core/src/ethics/index.ts",
43
45
  "./canvas": "./packages/core/src/canvas/index.ts",
44
46
  "./config": "./packages/core/src/config/index.ts",
@@ -63,24 +65,27 @@
63
65
  ],
64
66
  "scripts": {
65
67
  "build": "bun run typecheck",
66
- "typecheck": "tsc --build --force",
68
+ "typecheck": "tsc --noEmit -p tsconfig.json",
67
69
  "test": "bun test",
70
+ "skills:bundle": "bun scripts/generate-skill-bundle.ts",
71
+ "version:set": "bun scripts/bump-version.ts",
72
+ "release": "bun scripts/bump-version.ts --push",
68
73
  "prepublish": "echo 'No build needed - Bun runs TypeScript directly'"
69
74
  },
70
75
  "dependencies": {
71
76
  "@johpaz/hive-db": "^0.4.0",
72
77
  "@anthropic-ai/sdk": "^0.74.0",
73
78
  "@google/genai": "^1.43.0",
74
- "@modelcontextprotocol/sdk": "latest",
75
- "@sapphire/snowflake": "latest",
76
- "@slack/bolt": "latest",
77
- "@whiskeysockets/baileys": "latest",
79
+ "@modelcontextprotocol/sdk": "^1.26.0",
80
+ "@sapphire/snowflake": "^3.5.5",
81
+ "@slack/bolt": "^4.7.2",
82
+ "@whiskeysockets/baileys": "7.0.0-rc11",
78
83
  "async-mutex": "^0.5.0",
79
84
  "cron-parser": "^5.5.0",
80
85
  "croner": "^10.0.1",
81
- "discord.js": "latest",
86
+ "discord.js": "^14.26.4",
82
87
  "docx": "^9.6.1",
83
- "grammy": "latest",
88
+ "grammy": "^1.42.0",
84
89
  "groq-sdk": "^0.37.0",
85
90
  "jsonwebtoken": "^9.0.3",
86
91
  "jszip": "^3.10.1",
@@ -90,10 +95,10 @@
90
95
  "openai": "^6.18.0",
91
96
  "pdfjs-dist": "^5.6.205",
92
97
  "pptxgenjs": "^4.0.1",
93
- "qrcode-terminal": "latest",
98
+ "qrcode-terminal": "^0.12.0",
94
99
  "toon-format-parser": "^1.1.0",
95
100
  "xlsx": "^0.18.5",
96
- "zod": "latest"
101
+ "zod": "^4.4.3"
97
102
  },
98
103
  "devDependencies": {
99
104
  "@types/bun": "^1.3.13",
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@hive/cli",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Hive CLI — init, run, test, trace",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "bin": {
8
- "hive": "./src/index.ts"
8
+ "hives": "./src/index.ts"
9
9
  },
10
10
  "main": "./src/index.ts",
11
11
  "exports": {