@johpaz/hive-sdk 0.0.14 → 0.0.16

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 (257) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +280 -0
  3. package/docs/API-AGENTS.md +316 -0
  4. package/docs/API-CONTEXT-COMPILER.md +252 -0
  5. package/docs/API-DAG-SCHEDULER.md +273 -0
  6. package/docs/API-TOOLS-SKILLS-CHANNELS.md +350 -0
  7. package/docs/API-WORKERS-EVENTS.md +299 -0
  8. package/docs/INDEX.md +190 -0
  9. package/docs/README.md +161 -0
  10. package/docs/TEMPLATE-HIVE-APP.md +360 -0
  11. package/package.json +60 -104
  12. package/packages/cli/bin/hive +2 -0
  13. package/packages/cli/package.json +17 -0
  14. package/packages/cli/src/commands/add-skill.ts +42 -0
  15. package/packages/cli/src/commands/add-tool.ts +45 -0
  16. package/packages/cli/src/commands/add-worker.ts +49 -0
  17. package/packages/cli/src/commands/create-app-utils.ts +32 -0
  18. package/packages/cli/src/commands/create-app.test.ts +151 -0
  19. package/packages/cli/src/commands/create-app.ts +35 -0
  20. package/packages/cli/src/commands/init.ts +56 -0
  21. package/packages/cli/src/commands/run.ts +45 -0
  22. package/packages/cli/src/commands/test.ts +42 -0
  23. package/packages/cli/src/commands/trace.ts +55 -0
  24. package/packages/cli/src/index.ts +59 -0
  25. package/packages/cli/templates/hive-app/.env.example +17 -0
  26. package/packages/cli/templates/hive-app/docker-compose.yml +20 -0
  27. package/packages/cli/templates/hive-app/hive.config.ts +19 -0
  28. package/packages/cli/templates/hive-app/package.json +16 -0
  29. package/packages/cli/templates/hive-app/src/agents/coordinator.ts +9 -0
  30. package/packages/cli/templates/hive-app/src/main.ts +56 -0
  31. package/packages/core/package.json +58 -0
  32. package/packages/core/src/ace/Curator.ts +158 -0
  33. package/packages/core/src/ace/Reflector.ts +200 -0
  34. package/packages/core/src/ace/Tracer.ts +100 -0
  35. package/packages/core/src/ace/index.ts +4 -0
  36. package/packages/core/src/agent/AgentRunner.ts +699 -0
  37. package/packages/core/src/agent/Compaction.ts +221 -0
  38. package/packages/core/src/agent/ContextCompiler.ts +567 -0
  39. package/packages/core/src/agent/ContextGuard.ts +91 -0
  40. package/packages/core/src/agent/ConversationStore.ts +244 -0
  41. package/packages/core/src/agent/Hooks.ts +166 -0
  42. package/packages/core/src/agent/NativeTools.ts +31 -0
  43. package/packages/core/src/agent/PromptBuilder.ts +169 -0
  44. package/packages/core/src/agent/Service.ts +267 -0
  45. package/packages/core/src/agent/StuckLoop.ts +133 -0
  46. package/packages/core/src/agent/index.ts +12 -0
  47. package/packages/core/src/agent/providers/LLMClient.ts +149 -0
  48. package/packages/core/src/agent/providers/anthropic.ts +212 -0
  49. package/packages/core/src/agent/providers/gemini.ts +215 -0
  50. package/packages/core/src/agent/providers/index.ts +199 -0
  51. package/packages/core/src/agent/providers/interface.ts +195 -0
  52. package/packages/core/src/agent/providers/ollama.ts +175 -0
  53. package/packages/core/src/agent/providers/openai-compat.ts +231 -0
  54. package/packages/core/src/agent/selectors/PlaybookSelector.ts +147 -0
  55. package/packages/core/src/agent/selectors/SkillSelector.ts +478 -0
  56. package/packages/core/src/agent/selectors/ToolSelector.ts +577 -0
  57. package/packages/core/src/agent/selectors/index.ts +6 -0
  58. package/packages/core/src/api/createAgent.test.ts +48 -0
  59. package/packages/core/src/api/createAgent.ts +122 -0
  60. package/packages/core/src/api/index.ts +2 -0
  61. package/packages/core/src/auth/auth.ts +108 -0
  62. package/packages/core/src/auth/index.ts +1 -0
  63. package/packages/core/src/canvas/CanvasManager.ts +390 -0
  64. package/packages/core/src/canvas/a2ui-tools.ts +255 -0
  65. package/packages/core/src/canvas/canvas-tools.ts +448 -0
  66. package/packages/core/src/canvas/canvas.test.ts +32 -0
  67. package/packages/core/src/canvas/emitter.ts +149 -0
  68. package/packages/core/src/canvas/index.ts +3 -0
  69. package/packages/core/src/channels/base.ts +154 -0
  70. package/packages/core/src/channels/channels.test.ts +18 -0
  71. package/packages/core/src/channels/discord.ts +273 -0
  72. package/packages/core/src/channels/index.ts +7 -0
  73. package/packages/core/src/channels/manager.ts +450 -0
  74. package/packages/core/src/channels/slack.ts +323 -0
  75. package/packages/core/src/channels/telegram.ts +612 -0
  76. package/packages/core/src/channels/webchat.ts +139 -0
  77. package/packages/core/src/channels/whatsapp.ts +548 -0
  78. package/packages/core/src/config/index.ts +2 -0
  79. package/packages/core/src/config/loader.ts +554 -0
  80. package/packages/core/src/ethics/EthicsGuard.test.ts +54 -0
  81. package/packages/core/src/ethics/EthicsGuard.ts +66 -0
  82. package/packages/core/src/ethics/index.ts +2 -0
  83. package/packages/core/src/events/agent-bus.ts +460 -0
  84. package/packages/core/src/events/event-bus.ts +169 -0
  85. package/packages/core/src/gateway/channel-notify.ts +37 -0
  86. package/packages/core/src/gateway/gateway.test.ts +38 -0
  87. package/packages/core/src/gateway/index.ts +2 -0
  88. package/packages/core/src/gateway/server.ts +139 -0
  89. package/packages/core/src/heartbeat/index.ts +157 -0
  90. package/packages/core/src/index.ts +81 -0
  91. package/packages/core/src/mcp/MCPClient.ts +439 -0
  92. package/packages/core/src/mcp/MCPToolAdapter.ts +176 -0
  93. package/packages/core/src/mcp/config.ts +13 -0
  94. package/packages/core/src/mcp/hot-reload.ts +147 -0
  95. package/packages/core/src/mcp/index.ts +11 -0
  96. package/packages/core/src/mcp/logger.ts +42 -0
  97. package/packages/core/src/mcp/singleton.ts +21 -0
  98. package/packages/core/src/mcp/transports/index.ts +67 -0
  99. package/packages/core/src/mcp/transports/sse.ts +241 -0
  100. package/packages/core/src/mcp/transports/websocket.ts +159 -0
  101. package/packages/core/src/memory/Scratchpad.test.ts +47 -0
  102. package/packages/core/src/memory/Scratchpad.ts +37 -0
  103. package/packages/core/src/memory/Storage.ts +6 -0
  104. package/packages/core/src/memory/index.ts +2 -0
  105. package/packages/core/src/multimodal/VisionService.ts +293 -0
  106. package/packages/core/src/multimodal/index.ts +2 -0
  107. package/packages/core/src/multimodal/types.ts +28 -0
  108. package/packages/core/src/multimodal/vision-service.ts +283 -0
  109. package/packages/core/src/plugins/api.ts +128 -0
  110. package/packages/core/src/plugins/index.ts +2 -0
  111. package/packages/core/src/plugins/loader.ts +365 -0
  112. package/packages/core/src/resilience/circuit-breaker.ts +225 -0
  113. package/packages/core/src/scheduler/CronScheduler.ts +699 -0
  114. package/packages/core/src/scheduler/dag/AgentExecutor.ts +53 -0
  115. package/packages/core/src/scheduler/dag/DAGScheduler.ts +250 -0
  116. package/packages/core/src/scheduler/dag/EventBridge.ts +122 -0
  117. package/packages/core/src/scheduler/dag/TaskGraph.ts +192 -0
  118. package/packages/core/src/scheduler/dag/TaskNode.ts +97 -0
  119. package/packages/core/src/scheduler/dag/TaskResult.ts +22 -0
  120. package/packages/core/src/scheduler/dag/errors.ts +37 -0
  121. package/packages/core/src/scheduler/dag/index.ts +26 -0
  122. package/packages/core/src/scheduler/dag/presets/ResearchPreset.ts +97 -0
  123. package/packages/core/src/scheduler/dag/strategies/ParallelStrategy.ts +21 -0
  124. package/packages/core/src/scheduler/dag/strategies/PriorityStrategy.ts +46 -0
  125. package/packages/core/src/scheduler/index.ts +22 -0
  126. package/packages/core/src/scheduler/integration.ts +237 -0
  127. package/packages/core/src/scheduler/scheduler.test.ts +19 -0
  128. package/packages/core/src/scheduler/types.ts +164 -0
  129. package/packages/core/src/security/Pairing.ts +250 -0
  130. package/packages/core/src/security/RateLimit.ts +270 -0
  131. package/packages/core/src/security/google-chat.ts +269 -0
  132. package/packages/core/src/security/index.ts +192 -0
  133. package/packages/core/src/security/rate-limit.ts +270 -0
  134. package/packages/core/src/security/signal.ts +321 -0
  135. package/packages/core/src/skills/SkillLoader.ts +388 -0
  136. package/packages/core/src/skills/bundled-data.generated.ts +3332 -0
  137. package/packages/core/src/skills/defineSkill.ts +18 -0
  138. package/packages/core/src/skills/index.ts +4 -0
  139. package/packages/core/src/state/index.ts +2 -0
  140. package/packages/core/src/state/store.ts +312 -0
  141. package/packages/core/src/storage/SQLiteStorage.ts +407 -0
  142. package/packages/core/src/storage/crypto.ts +233 -0
  143. package/packages/core/src/storage/index.ts +10 -0
  144. package/packages/core/src/storage/onboarding.ts +1603 -0
  145. package/packages/core/src/storage/schema.ts +689 -0
  146. package/packages/core/src/storage/seed.ts +740 -0
  147. package/packages/core/src/storage/storage.test.ts +37 -0
  148. package/packages/core/src/storage/usage.ts +374 -0
  149. package/packages/core/src/swarm/AgentBus.ts +460 -0
  150. package/packages/core/src/swarm/AgentExecutor.ts +53 -0
  151. package/packages/core/src/swarm/Coordinator.ts +251 -0
  152. package/packages/core/src/swarm/EventBridge.ts +122 -0
  153. package/packages/core/src/swarm/EventBus.ts +169 -0
  154. package/packages/core/src/swarm/TaskGraph.ts +192 -0
  155. package/packages/core/src/swarm/TaskNode.ts +97 -0
  156. package/packages/core/src/swarm/TaskResult.ts +22 -0
  157. package/packages/core/src/swarm/WorkerPool.ts +236 -0
  158. package/packages/core/src/swarm/errors.ts +37 -0
  159. package/packages/core/src/swarm/index.ts +30 -0
  160. package/packages/core/src/swarm/presets/HiveLearnPreset.ts +99 -0
  161. package/packages/core/src/swarm/presets/ResearchPreset.ts +97 -0
  162. package/packages/core/src/swarm/presets/index.ts +4 -0
  163. package/packages/core/src/swarm/strategies/ParallelStrategy.ts +21 -0
  164. package/packages/core/src/swarm/strategies/PriorityStrategy.ts +46 -0
  165. package/packages/core/src/swarm/strategies/index.ts +3 -0
  166. package/packages/core/src/swarm/swarm.test.ts +24 -0
  167. package/packages/core/src/swarm/types.ts +164 -0
  168. package/packages/core/src/tool-runtime/index.ts +522 -0
  169. package/packages/core/src/tool-runtime/tool-runtime.test.ts +91 -0
  170. package/packages/core/src/tool-runtime/tool-worker.ts +125 -0
  171. package/packages/core/src/tools/ToolExecutor.ts +58 -0
  172. package/packages/core/src/tools/ToolRegistry.test.ts +98 -0
  173. package/packages/core/src/tools/ToolRegistry.ts +61 -0
  174. package/packages/core/src/tools/agents/get-available-models.ts +118 -0
  175. package/packages/core/src/tools/agents/index.ts +715 -0
  176. package/packages/core/src/tools/bridge-events.ts +26 -0
  177. package/packages/core/src/tools/canvas/index.ts +375 -0
  178. package/packages/core/src/tools/cli/index.ts +142 -0
  179. package/packages/core/src/tools/codebridge/index.ts +342 -0
  180. package/packages/core/src/tools/core/index.ts +476 -0
  181. package/packages/core/src/tools/cron/index.ts +626 -0
  182. package/packages/core/src/tools/filesystem/fs-delete.ts +78 -0
  183. package/packages/core/src/tools/filesystem/fs-edit.ts +106 -0
  184. package/packages/core/src/tools/filesystem/fs-exists.ts +63 -0
  185. package/packages/core/src/tools/filesystem/fs-glob.ts +108 -0
  186. package/packages/core/src/tools/filesystem/fs-list.ts +129 -0
  187. package/packages/core/src/tools/filesystem/fs-read.ts +72 -0
  188. package/packages/core/src/tools/filesystem/fs-write.ts +67 -0
  189. package/packages/core/src/tools/filesystem/index.ts +34 -0
  190. package/packages/core/src/tools/filesystem/workspace-guard.ts +62 -0
  191. package/packages/core/src/tools/index.ts +231 -0
  192. package/packages/core/src/tools/meeting/index.ts +363 -0
  193. package/packages/core/src/tools/office/index.ts +47 -0
  194. package/packages/core/src/tools/office/office-escribir-docx.ts +192 -0
  195. package/packages/core/src/tools/office/office-escribir-pdf.ts +172 -0
  196. package/packages/core/src/tools/office/office-escribir-pptx.ts +174 -0
  197. package/packages/core/src/tools/office/office-escribir-xlsx.ts +116 -0
  198. package/packages/core/src/tools/office/office-leer-docx.ts +93 -0
  199. package/packages/core/src/tools/office/office-leer-pdf.ts +114 -0
  200. package/packages/core/src/tools/office/office-leer-pptx.ts +136 -0
  201. package/packages/core/src/tools/office/office-leer-xlsx.ts +124 -0
  202. package/packages/core/src/tools/projects/index.ts +37 -0
  203. package/packages/core/src/tools/projects/project-create.ts +94 -0
  204. package/packages/core/src/tools/projects/project-done.ts +66 -0
  205. package/packages/core/src/tools/projects/project-fail.ts +66 -0
  206. package/packages/core/src/tools/projects/project-list.ts +96 -0
  207. package/packages/core/src/tools/projects/project-update.ts +72 -0
  208. package/packages/core/src/tools/projects/task-create.ts +68 -0
  209. package/packages/core/src/tools/projects/task-evaluate.ts +93 -0
  210. package/packages/core/src/tools/projects/task-update.ts +93 -0
  211. package/packages/core/src/tools/types.ts +39 -0
  212. package/packages/core/src/tools/voice/index.ts +104 -0
  213. package/packages/core/src/tools/web/browser-click.ts +78 -0
  214. package/packages/core/src/tools/web/browser-extract.ts +139 -0
  215. package/packages/core/src/tools/web/browser-navigate.ts +106 -0
  216. package/packages/core/src/tools/web/browser-screenshot.ts +87 -0
  217. package/packages/core/src/tools/web/browser-script.ts +88 -0
  218. package/packages/core/src/tools/web/browser-service.ts +554 -0
  219. package/packages/core/src/tools/web/browser-type.ts +101 -0
  220. package/packages/core/src/tools/web/browser-wait.ts +136 -0
  221. package/packages/core/src/tools/web/index.ts +41 -0
  222. package/packages/core/src/tools/web/web-fetch.ts +78 -0
  223. package/packages/core/src/tools/web/web-search.ts +123 -0
  224. package/packages/core/src/utils/benchmark.ts +80 -0
  225. package/packages/core/src/utils/crypto.ts +73 -0
  226. package/packages/core/src/utils/date.ts +42 -0
  227. package/packages/core/src/utils/index.ts +10 -0
  228. package/packages/core/src/utils/logger.ts +389 -0
  229. package/packages/core/src/utils/retry.ts +70 -0
  230. package/packages/core/src/utils/toon.ts +253 -0
  231. package/packages/core/src/voice/index.ts +643 -0
  232. package/packages/core/src/workers/WorkerPool.ts +167 -0
  233. package/packages/core/src/workers/agent.worker.ts +68 -0
  234. package/packages/core/src/workers/createWorker.ts +144 -0
  235. package/packages/core/src/workers/index.ts +5 -0
  236. package/packages/core/src/workers/workers.test.ts +48 -0
  237. package/test/setup-db.ts +216 -0
  238. package/tsconfig.json +40 -0
  239. package/src/agents.ts +0 -1
  240. package/src/canvas.ts +0 -1
  241. package/src/channels.ts +0 -1
  242. package/src/config.ts +0 -1
  243. package/src/events.ts +0 -1
  244. package/src/gateway.ts +0 -1
  245. package/src/index.ts +0 -304
  246. package/src/mcp.ts +0 -1
  247. package/src/multimodal.ts +0 -1
  248. package/src/scheduler.ts +0 -1
  249. package/src/security.ts +0 -1
  250. package/src/skills.ts +0 -1
  251. package/src/state.ts +0 -1
  252. package/src/storage.ts +0 -1
  253. package/src/tools.ts +0 -1
  254. package/src/tts.ts +0 -1
  255. package/src/types.ts +0 -82
  256. package/src/utils.ts +0 -1
  257. package/src/voice.ts +0 -1
package/docs/INDEX.md ADDED
@@ -0,0 +1,190 @@
1
+ # Índice de Documentación — Hive SDK
2
+
3
+ ## Documentos de Usuario
4
+
5
+ | Documento | Descripción |
6
+ |-----------|-------------|
7
+ | [README.md](../README.md) | Introducción, instalación, CLI, guía rápida |
8
+ | [API-AGENTS.md](./API-AGENTS.md) | createAgent, AgentLoop, Tool/Skill Selector, LLM Providers |
9
+ | [API-DAG-SCHEDULER.md](./API-DAG-SCHEDULER.md) | DAGScheduler, TaskGraph, Estrategias, Presets |
10
+ | [API-WORKERS-EVENTS.md](./API-WORKERS-EVENTS.md) | **Bun Workers**, createWorker, WorkerPool, AgentBus, EventBus, Canvas |
11
+ | [API-TOOLS-SKILLS-CHANNELS.md](./API-TOOLS-SKILLS-CHANNELS.md) | Tools, Skills, MCP, Gateway, Channels, Tool Runtime, Storage |
12
+ | [API-CONTEXT-COMPILER.md](./API-CONTEXT-COMPILER.md) | Context Compiler, Message History, Scratchpad, EthicsGuard, ACE |
13
+ | [TEMPLATE-HIVE-APP.md](./TEMPLATE-HIVE-APP.md) | **Template hive-app** — estructura, opciones, personalización |
14
+ | [HIVE-HARNESS.md](../docs/HIVE-HARNESS.md) | Posicionamiento: Hive como Agent Harness vertical |
15
+
16
+ ---
17
+
18
+ ## Guía de Inicio Rápido
19
+
20
+ ### 1. Crear una app harness completa
21
+
22
+ ```bash
23
+ hive create-app my-hive
24
+ cd my-hive
25
+ bun install
26
+ cp .env.example .env
27
+ bun run dev
28
+ ```
29
+
30
+ ### 2. Crear Agente
31
+
32
+ ```typescript
33
+ import { createAgent, defineTool } from "@johpaz/hive-sdk";
34
+
35
+ const tool = defineTool({
36
+ name: "saludar",
37
+ description: "Saluda a alguien",
38
+ execute: async (args: { nombre: string }) => `¡Hola ${args.nombre}!`,
39
+ });
40
+
41
+ const agent = await createAgent({
42
+ name: "asistente",
43
+ provider: "openai",
44
+ model: "gpt-4o-mini",
45
+ tools: [tool],
46
+ });
47
+
48
+ const respuesta = await agent.run("Saluda a Juan");
49
+ ```
50
+
51
+ ### 3. Crear un Bun Worker
52
+
53
+ ```typescript
54
+ import { createWorker } from "@johpaz/hive-sdk";
55
+
56
+ const worker = createWorker({
57
+ name: "researcher",
58
+ systemPrompt: "You are a research specialist...",
59
+ });
60
+
61
+ const result = await worker.run("Research quantum computing");
62
+ worker.terminate();
63
+ ```
64
+
65
+ ### 4. Ejecutar un Swarm (DAG)
66
+
67
+ ```typescript
68
+ import { DAGScheduler, TaskGraph } from "@johpaz/hive-sdk";
69
+
70
+ const graph = new TaskGraph([
71
+ { id: "task1", agentId: "worker", name: "T1", taskDescription: "Tarea 1", deps: [] },
72
+ { id: "task2", agentId: "worker", name: "T2", taskDescription: "Tarea 2", deps: ["task1"] },
73
+ ]);
74
+
75
+ const result = await new DAGScheduler().execute(graph);
76
+ ```
77
+
78
+ ### 5. Gateway + Canales
79
+
80
+ ```typescript
81
+ import { startGateway, ChannelManager, TelegramChannel } from "@johpaz/hive-sdk";
82
+
83
+ const server = await startGateway({ host: "127.0.0.1", port: 18790 });
84
+
85
+ const channels = new ChannelManager(config);
86
+ // channels.register("telegram", new TelegramChannel({ botToken: "..." }));
87
+ ```
88
+
89
+ ---
90
+
91
+ ## Estructura de Paquetes
92
+
93
+ ```
94
+ packages/
95
+ ├── core/ # @johpaz/hive-sdk
96
+ │ └── src/
97
+ │ ├── api/ # createAgent(), Agent interface
98
+ │ ├── agent/ # AgentLoop, ContextCompiler, ConversationStore
99
+ │ │ ├── providers/ # LLM providers (OpenAI, Anthropic, Gemini, Ollama)
100
+ │ │ └── selectors/ # FTS5 ToolSelector, SkillSelector, PlaybookSelector
101
+ │ ├── tools/ # 70+ built-in tools + ToolRegistry + ToolExecutor
102
+ │ ├── skills/ # SkillLoader, defineSkill()
103
+ │ ├── swarm/ # DAGScheduler, TaskGraph, WorkerPool
104
+ │ ├── workers/ # Bun Workers: createWorker, WorkerPool, agent.worker.ts
105
+ │ ├── gateway/ # HTTP/WebSocket server (Bun.serve)
106
+ │ ├── channels/ # Telegram, Discord, WhatsApp, Slack, Webchat
107
+ │ ├── mcp/ # MCPClientManager + transports (SSE, WS, STDIO)
108
+ │ ├── storage/ # SQLite (bun:sqlite) + FTS5
109
+ │ ├── canvas/ # CanvasManager + A2UI emitter
110
+ │ ├── scheduler/ # CronScheduler + DAG execution
111
+ │ ├── tool-runtime/ # Bun Worker pool para ejecución paralela de tools
112
+ │ ├── ethics/ # EthicsGuard
113
+ │ ├── memory/ # Scratchpad
114
+ │ ├── config/ # loadConfig, loadEnv, getHiveDir
115
+ │ ├── utils/ # logger, toon, crypto, retry
116
+ │ └── index.ts # Public API barrel
117
+
118
+ └── cli/ # Hive CLI
119
+ └── src/
120
+ ├── index.ts # Entry: hive <command>
121
+ └── commands/
122
+ ├── init.ts
123
+ ├── create-app.ts # Generar app harness completa
124
+ ├── add-tool.ts # Generar boilerplate de tool
125
+ ├── add-skill.ts # Generar boilerplate de skill
126
+ ├── add-worker.ts # Generar Bun Worker
127
+ ├── run.ts
128
+ ├── test.ts
129
+ └── trace.ts
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Conceptos Clave
135
+
136
+ ### Agente
137
+ Unidad de ejecución con configuración, contexto y ciclo de ejecución.
138
+
139
+ ### Tool
140
+ Función invocable por el agente. Definida con `defineTool()`, seleccionada vía FTS5.
141
+
142
+ ### Skill
143
+ Composición de tools con triggers semánticos. Definida con `defineSkill()`.
144
+
145
+ ### Bun Worker
146
+ Thread aislado que ejecuta un agente con system prompt propio. Creado con `createWorker()`.
147
+
148
+ ### WorkerPool
149
+ Gestiona múltiples Bun Workers para ejecución paralela de tareas.
150
+
151
+ ### Swarm (DAG)
152
+ Ejecución paralela de múltiples agentes con dependencias. Topological sort automático.
153
+
154
+ ### Gateway
155
+ Servidor HTTP/WebSocket que expone el agente como API.
156
+
157
+ ### Channel
158
+ Integración con plataformas de mensajería (Telegram, Discord, WhatsApp, Slack, Webchat).
159
+
160
+ ### MCP
161
+ Model Context Protocol — herramientas externas via STDIO/SSE/WebSocket.
162
+
163
+ ---
164
+
165
+ ## Variables de Entorno
166
+
167
+ ```bash
168
+ HIVE_DATA_DIR=./data # Directorio de datos
169
+ HIVE_HOST=127.0.0.1 # Gateway host
170
+ HIVE_PORT=18790 # Gateway port
171
+ OPENAI_API_KEY=sk-... # OpenAI
172
+ ANTHROPIC_API_KEY=sk-ant-... # Anthropic
173
+ LOG_LEVEL=info # debug | info | warn | error
174
+ ```
175
+
176
+ ---
177
+
178
+ ## Tests
179
+
180
+ ```bash
181
+ # Tests unitarios (paralelo)
182
+ bun test
183
+
184
+ # Tests con timeout extendido
185
+ bun test --timeout 60000
186
+ ```
187
+
188
+ ---
189
+
190
+ *Documentación Hive SDK v0.0.16*
package/docs/README.md ADDED
@@ -0,0 +1,161 @@
1
+ # Documentación — Hive SDK
2
+
3
+ > **Agent Harness SDK** — Build, deploy, and scale AI agent applications with multi-channel support, Bun Workers, and swarm orchestration.
4
+
5
+ ## Documentos
6
+
7
+ | Documento | Descripción |
8
+ |-----------|-------------|
9
+ | [API-AGENTS.md](API-AGENTS.md) | createAgent, AgentLoop, Tool/Skill Selector, LLM Providers |
10
+ | [API-DAG-SCHEDULER.md](API-DAG-SCHEDULER.md) | DAGScheduler, TaskGraph, TaskNode, Estrategias, Presets |
11
+ | [API-WORKERS-EVENTS.md](API-WORKERS-EVENTS.md) | **Bun Workers**, createWorker, WorkerPool, AgentBus, EventBus, Canvas |
12
+ | [API-TOOLS-SKILLS-CHANNELS.md](API-TOOLS-SKILLS-CHANNELS.md) | Tools, Skills, MCP, **Gateway**, **Channels**, **Tool Runtime**, Storage |
13
+ | [API-CONTEXT-COMPILER.md](API-CONTEXT-COMPILER.md) | Context Compiler, Message History, Scratchpad, EthicsGuard, ACE |
14
+ | [TEMPLATE-HIVE-APP.md](TEMPLATE-HIVE-APP.md) | **Template hive-app** — estructura, opciones, personalización |
15
+ | [HIVE-HARNESS.md](../docs/HIVE-HARNESS.md) | Posicionamiento de producto: Hive como Agent Harness |
16
+
17
+ ## Instalación
18
+
19
+ ```bash
20
+ # Instalar globalmente para el CLI
21
+ bun install -g @johpaz/hive-sdk
22
+
23
+ # O en un proyecto
24
+ bun add @johpaz/hive-sdk
25
+ ```
26
+
27
+ ## CLI Commands
28
+
29
+ ```bash
30
+ hive init <name> # Inicializar proyecto agente
31
+ hive create-app <name> # Crear aplicación harness completa
32
+ hive add-tool <name> # Añadir tool
33
+ hive add-skill <name> # Añadir skill
34
+ hive add-worker <name> # Añadir Bun Worker
35
+ hive run # Ejecutar agente
36
+ hive test # Test tools/skills
37
+ hive trace # Ver logs de ejecución
38
+ ```
39
+
40
+ ## Inicio Rápido
41
+
42
+ ### 1. Crear una app harness completa
43
+
44
+ ```bash
45
+ hive create-app my-hive
46
+ cd my-hive
47
+ bun install
48
+ cp .env.example .env
49
+ bun run dev
50
+ ```
51
+
52
+ ### 2. Crear un agente simple
53
+
54
+ ```typescript
55
+ import { createAgent, defineTool } from "@johpaz/hive-sdk";
56
+
57
+ const tool = defineTool({
58
+ name: "saludar",
59
+ description: "Saluda a alguien",
60
+ execute: async (args: { nombre: string }) => `¡Hola ${args.nombre}!`,
61
+ });
62
+
63
+ const agent = await createAgent({
64
+ name: "asistente",
65
+ provider: "openai",
66
+ model: "gpt-4o-mini",
67
+ tools: [tool],
68
+ });
69
+
70
+ const respuesta = await agent.run("Saluda a Juan");
71
+ console.log(respuesta);
72
+ ```
73
+
74
+ ### 3. Crear un worker especializado
75
+
76
+ ```typescript
77
+ import { createWorker } from "@johpaz/hive-sdk";
78
+
79
+ const researcher = createWorker({
80
+ name: "researcher",
81
+ systemPrompt: "You are a research specialist. Provide concise, factual summaries.",
82
+ });
83
+
84
+ const result = await researcher.run("Research quantum computing advances");
85
+ console.log(result);
86
+ researcher.terminate();
87
+ ```
88
+
89
+ ### 4. Ejecutar workers en paralelo
90
+
91
+ ```typescript
92
+ import { WorkerPool } from "@johpaz/hive-sdk";
93
+
94
+ const pool = new WorkerPool({ maxWorkers: 4 });
95
+
96
+ const tasks = [
97
+ { id: "t1", message: "Summarize article A" },
98
+ { id: "t2", message: "Summarize article B" },
99
+ { id: "t3", message: "Summarize article C" },
100
+ ];
101
+
102
+ const results = await pool.executeBatch(tasks);
103
+ console.log(results);
104
+ pool.shutdown();
105
+ ```
106
+
107
+ ### 5. Gateway HTTP/WebSocket
108
+
109
+ ```typescript
110
+ import { startGateway } from "@johpaz/hive-sdk";
111
+
112
+ const server = await startGateway({
113
+ host: "127.0.0.1",
114
+ port: 18790,
115
+ agentId: "coordinator",
116
+ });
117
+
118
+ console.log(`Gateway at http://127.0.0.1:18790`);
119
+ ```
120
+
121
+ ## Variables de Entorno
122
+
123
+ ```bash
124
+ HIVE_DATA_DIR=./data # Directorio de datos SQLite
125
+ HIVE_HOST=127.0.0.1 # Gateway host
126
+ HIVE_PORT=18790 # Gateway port
127
+ OPENAI_API_KEY=sk-... # OpenAI
128
+ ANTHROPIC_API_KEY=sk-ant-... # Anthropic
129
+ GOOGLE_API_KEY=... # Gemini
130
+ LOG_LEVEL=info # debug | info | warn | error
131
+ ```
132
+
133
+ ## Tests
134
+
135
+ ```bash
136
+ # Todos los tests (paralelo)
137
+ bun test
138
+
139
+ # Tests con timeout extendido
140
+ bun test --timeout 60000
141
+ ```
142
+
143
+ ## Changelog
144
+
145
+ ### v0.0.16
146
+ - **Bun Workers individuales**: `createWorker()`, `WorkerPool`, `agent.worker.ts`
147
+ - **Gateway simplificado**: HTTP/WebSocket server con `Bun.serve()`
148
+ - **Channels**: Telegram, Discord, WhatsApp, Slack, Webchat
149
+ - **Tool Runtime**: Ejecución paralela de tools vía Bun Workers
150
+ - **CLI mejorado**: `hive create-app`, `hive add-tool`, `hive add-skill`, `hive add-worker`
151
+ - **Template hive-app**: Proyecto harness completo con Docker
152
+ - **39 tests pasando** en 12 archivos
153
+
154
+ ### v0.0.15
155
+ - Core de agentes con Context Engineering, FTS5, ACE
156
+ - DAGScheduler con ejecución paralela
157
+ - API pública: `createAgent`, `defineTool`, `defineSkill`
158
+
159
+ ---
160
+
161
+ *Documentación Hive SDK v0.0.16*
@@ -0,0 +1,360 @@
1
+ # Template `hive-app` — Documentación Completa
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.
4
+
5
+ ---
6
+
7
+ ## Generar una app
8
+
9
+ ```bash
10
+ hive create-app my-hive
11
+ ```
12
+
13
+ Esto crea el directorio `my-hive/` con la estructura completa.
14
+
15
+ ---
16
+
17
+ ## Estructura generada
18
+
19
+ ```
20
+ my-hive/
21
+ ├── package.json # Dependencias y scripts
22
+ ├── hive.config.ts # Configuración del harness
23
+ ├── docker-compose.yml # Deployment con Docker
24
+ ├── .env.example # Variables de entorno de ejemplo
25
+ ├── .gitignore # Archivos ignorados por git
26
+ └── src/
27
+ ├── main.ts # Entry point — arranca gateway + agente
28
+ └── agents/
29
+ └── coordinator.ts # Definición del agente coordinador
30
+ ```
31
+
32
+ ---
33
+
34
+ ## Archivos y opciones
35
+
36
+ ### `package.json`
37
+
38
+ ```json
39
+ {
40
+ "name": "my-hive",
41
+ "version": "0.1.0",
42
+ "type": "module",
43
+ "scripts": {
44
+ "dev": "bun run src/main.ts",
45
+ "start": "bun run src/main.ts",
46
+ "build": "bun build src/main.ts --outdir dist --target bun"
47
+ },
48
+ "dependencies": {
49
+ "@johpaz/hive-sdk": "latest"
50
+ }
51
+ }
52
+ ```
53
+
54
+ | Script | Comando | Descripción |
55
+ |--------|---------|-------------|
56
+ | `dev` | `bun run src/main.ts` | Ejecutar en desarrollo |
57
+ | `start` | `bun run src/main.ts` | Ejecutar en producción |
58
+ | `build` | `bun build ...` | Compilar a `dist/` |
59
+
60
+ ---
61
+
62
+ ### `hive.config.ts`
63
+
64
+ Configuración central del harness.
65
+
66
+ ```typescript
67
+ import type { Config } from "@johpaz/hive-sdk";
68
+
69
+ export default {
70
+ name: "my-hive",
71
+ gateway: {
72
+ host: process.env.HIVE_HOST ?? "127.0.0.1",
73
+ port: Number(process.env.HIVE_PORT ?? 18790),
74
+ },
75
+ channels: {
76
+ webchat: { enabled: true }, // Siempre habilitado
77
+ telegram: { enabled: false }, // Requiere TELEGRAM_BOT_TOKEN
78
+ discord: { enabled: false }, // Requiere DISCORD_BOT_TOKEN
79
+ whatsapp: { enabled: false }, // Requiere configuración adicional
80
+ slack: { enabled: false }, // Requiere SLACK_BOT_TOKEN
81
+ },
82
+ database: {
83
+ path: process.env.HIVE_DATA_DIR ?? "./data/hive.db",
84
+ },
85
+ } satisfies Config;
86
+ ```
87
+
88
+ #### Opciones de configuración
89
+
90
+ | Opción | Tipo | Default | Descripción |
91
+ |--------|------|---------|-------------|
92
+ | `name` | `string` | `"my-hive"` | Nombre de la aplicación |
93
+ | `gateway.host` | `string` | `"127.0.0.1"` | Host del gateway |
94
+ | `gateway.port` | `number` | `18790` | Puerto del gateway |
95
+ | `channels.webchat.enabled` | `boolean` | `true` | Canal webchat integrado |
96
+ | `channels.telegram.enabled` | `boolean` | `false` | Bot de Telegram |
97
+ | `channels.discord.enabled` | `boolean` | `false` | Bot de Discord |
98
+ | `channels.whatsapp.enabled` | `boolean` | `false` | Bot de WhatsApp |
99
+ | `channels.slack.enabled` | `boolean` | `false` | Bot de Slack |
100
+ | `database.path` | `string` | `"./data/hive.db"` | Ruta de la base de datos SQLite |
101
+
102
+ ---
103
+
104
+ ### `src/main.ts`
105
+
106
+ Entry point de la aplicación. Realiza:
107
+
108
+ 1. Inicializa la base de datos (`initializeDatabase`)
109
+ 2. Crea el agente coordinador (`createAgent`)
110
+ 3. Inicializa el ChannelManager
111
+ 4. Arranca el gateway (`startGateway`)
112
+ 5. Maneja shutdown graceful (`SIGINT`)
113
+
114
+ ```typescript
115
+ import {
116
+ createAgent,
117
+ startGateway,
118
+ initializeDatabase,
119
+ ChannelManager,
120
+ logger,
121
+ } from "@johpaz/hive-sdk";
122
+ import config from "../hive.config.ts";
123
+
124
+ const log = logger.child("app");
125
+
126
+ async function main() {
127
+ log.info(`Starting my-hive...`);
128
+
129
+ await initializeDatabase();
130
+
131
+ const agent = await createAgent({
132
+ name: "coordinator",
133
+ provider: "openai",
134
+ model: "gpt-4o-mini",
135
+ systemPrompt: "You are a helpful AI assistant...",
136
+ });
137
+
138
+ const channelManager = new ChannelManager();
139
+ // TODO: configure channels from hive.config.ts
140
+
141
+ const gateway = await startGateway({
142
+ host: config.gateway?.host,
143
+ port: config.gateway?.port,
144
+ agentId: "coordinator",
145
+ });
146
+
147
+ log.info(`my-hive is running at http://${gateway.hostname}:${gateway.port}`);
148
+ }
149
+
150
+ main().catch((err) => {
151
+ log.error("Fatal error:", err);
152
+ process.exit(1);
153
+ });
154
+ ```
155
+
156
+ #### Personalizar el agente
157
+
158
+ Puedes cambiar el `provider`, `model`, y `systemPrompt`:
159
+
160
+ ```typescript
161
+ const agent = await createAgent({
162
+ name: "coordinator",
163
+ provider: "anthropic", // "openai" | "anthropic" | "gemini" | "ollama"
164
+ model: "claude-3-5-sonnet-20241022",
165
+ systemPrompt: "Tu system prompt personalizado...",
166
+ });
167
+ ```
168
+
169
+ #### Añadir tools al agente
170
+
171
+ ```typescript
172
+ import { defineTool } from "@johpaz/hive-sdk";
173
+
174
+ const searchTool = defineTool({
175
+ name: "search",
176
+ description: "Search the web",
177
+ execute: async (args: { query: string }) => {
178
+ // Implementation
179
+ return { results: [] };
180
+ },
181
+ });
182
+
183
+ const agent = await createAgent({
184
+ name: "coordinator",
185
+ provider: "openai",
186
+ model: "gpt-4o-mini",
187
+ tools: [searchTool],
188
+ });
189
+ ```
190
+
191
+ ---
192
+
193
+ ### `src/agents/coordinator.ts`
194
+
195
+ Definición standalone del agente coordinador. Puedes importarlo desde `main.ts` o usarlo directamente.
196
+
197
+ ```typescript
198
+ import { createAgent } from "@johpaz/hive-sdk";
199
+
200
+ export const coordinatorAgent = await createAgent({
201
+ name: "coordinator",
202
+ provider: "openai",
203
+ model: "gpt-4o-mini",
204
+ systemPrompt: "You are the coordinator agent...",
205
+ });
206
+ ```
207
+
208
+ ---
209
+
210
+ ### `docker-compose.yml`
211
+
212
+ Deployment containerizado.
213
+
214
+ ```yaml
215
+ services:
216
+ app:
217
+ image: oven/bun:latest
218
+ working_dir: /app
219
+ volumes:
220
+ - .:/app
221
+ - hive-data:/app/data
222
+ ports:
223
+ - "${HIVE_PORT:-18790}:18790"
224
+ environment:
225
+ - HIVE_HOST=0.0.0.0
226
+ - HIVE_PORT=18790
227
+ - HIVE_DATA_DIR=/app/data
228
+ - OPENAI_API_KEY=${OPENAI_API_KEY}
229
+ - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
230
+ command: ["bun", "run", "src/main.ts"]
231
+ restart: unless-stopped
232
+
233
+ volumes:
234
+ hive-data:
235
+ ```
236
+
237
+ #### Deployment
238
+
239
+ ```bash
240
+ # Copiar variables de entorno
241
+ cp .env.example .env
242
+ # Editar .env con tus API keys
243
+
244
+ # Levantar con Docker
245
+ docker compose up -d
246
+
247
+ # Ver logs
248
+ docker compose logs -f
249
+ ```
250
+
251
+ ---
252
+
253
+ ### `.env.example`
254
+
255
+ Variables de entorno disponibles:
256
+
257
+ ```bash
258
+ # Hive Harness Configuration
259
+ HIVE_HOST=127.0.0.1
260
+ HIVE_PORT=18790
261
+ HIVE_DATA_DIR=./data
262
+
263
+ # LLM Providers
264
+ OPENAI_API_KEY=sk-...
265
+ ANTHROPIC_API_KEY=sk-ant-...
266
+ GOOGLE_API_KEY=...
267
+
268
+ # Channels (enable as needed)
269
+ TELEGRAM_BOT_TOKEN=
270
+ DISCORD_BOT_TOKEN=
271
+ SLACK_BOT_TOKEN=
272
+
273
+ # Logging
274
+ LOG_LEVEL=info
275
+ ```
276
+
277
+ | Variable | Requerida | Descripción |
278
+ |----------|-----------|-------------|
279
+ | `HIVE_HOST` | No | Host del gateway |
280
+ | `HIVE_PORT` | No | Puerto del gateway |
281
+ | `HIVE_DATA_DIR` | No | Directorio de datos SQLite |
282
+ | `OPENAI_API_KEY` | Sí* | API key de OpenAI |
283
+ | `ANTHROPIC_API_KEY` | Sí* | API key de Anthropic |
284
+ | `GOOGLE_API_KEY` | Sí* | API key de Gemini |
285
+ | `TELEGRAM_BOT_TOKEN` | No | Token del bot de Telegram |
286
+ | `DISCORD_BOT_TOKEN` | No | Token del bot de Discord |
287
+ | `SLACK_BOT_TOKEN` | No | Token del bot de Slack |
288
+ | `LOG_LEVEL` | No | `debug` \| `info` \| `warn` \| `error` |
289
+
290
+ \* Al menos una API key de LLM es requerida.
291
+
292
+ ---
293
+
294
+ ## Personalización avanzada
295
+
296
+ ### Añadir canales
297
+
298
+ ```typescript
299
+ // src/main.ts
300
+ import { TelegramChannel, DiscordChannel } from "@johpaz/hive-sdk";
301
+
302
+ const channelManager = new ChannelManager(config);
303
+
304
+ if (config.channels.telegram.enabled) {
305
+ channelManager.register("telegram", new TelegramChannel({
306
+ botToken: process.env.TELEGRAM_BOT_TOKEN!,
307
+ }));
308
+ }
309
+
310
+ if (config.channels.discord.enabled) {
311
+ channelManager.register("discord", new DiscordChannel({
312
+ botToken: process.env.DISCORD_BOT_TOKEN!,
313
+ }));
314
+ }
315
+
316
+ await channelManager.initialize();
317
+ ```
318
+
319
+ ### Añadir workers especializados
320
+
321
+ ```bash
322
+ cd my-hive
323
+ hive add-worker researcher
324
+ hive add-worker coder
325
+ ```
326
+
327
+ Esto genera `src/workers/researcher.worker.ts` y `src/workers/coder.worker.ts`.
328
+
329
+ ### Añadir tools
330
+
331
+ ```bash
332
+ cd my-hive
333
+ hive add-tool search-docs
334
+ ```
335
+
336
+ Genera `src/tools/search-docs.ts`.
337
+
338
+ ### Añadir skills
339
+
340
+ ```bash
341
+ cd my-hive
342
+ hive add-skill onboarding
343
+ ```
344
+
345
+ Genera `src/skills/onboarding.ts`.
346
+
347
+ ---
348
+
349
+ ## Tests del template
350
+
351
+ El template incluye tests para verificar que la estructura se genera correctamente.
352
+
353
+ ```bash
354
+ cd my-hive
355
+ bun test
356
+ ```
357
+
358
+ ---
359
+
360
+ *Documentación Hive SDK v0.0.16*