@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
@@ -0,0 +1,262 @@
1
+ ---
2
+ name: office_document_manager
3
+ description: "Leer, crear y manipular archivos Office (PDF, Word, Excel, PowerPoint) desde el workspace"
4
+ version: 1.0.0
5
+ author: Hive Team
6
+ icon: "📄"
7
+ category: office
8
+ permissions:
9
+ - filesystem_read
10
+ - filesystem_write
11
+ dependencies: []
12
+ tools:
13
+ - office_leer_pdf
14
+ - office_escribir_pdf
15
+ - office_leer_docx
16
+ - office_escribir_docx
17
+ - office_leer_xlsx
18
+ - office_escribir_xlsx
19
+ - office_leer_pptx
20
+ - office_escribir_pptx
21
+
22
+ triggers:
23
+ - "leer pdf"
24
+ - "abrir pdf"
25
+ - "extraer texto de pdf"
26
+ - "pdf a texto"
27
+ - "crear pdf"
28
+ - "generar pdf"
29
+ - "exportar a pdf"
30
+ - "leer word"
31
+ - "abrir docx"
32
+ - "extraer texto de word"
33
+ - "crear word"
34
+ - "generar docx"
35
+ - "documento word"
36
+ - "leer excel"
37
+ - "abrir xlsx"
38
+ - "datos de excel"
39
+ - "crear excel"
40
+ - "generar xlsx"
41
+ - "exportar a excel"
42
+ - "leer powerpoint"
43
+ - "abrir pptx"
44
+ - "presentacion"
45
+ - "diapositivas"
46
+ - "crear presentacion"
47
+ - "generar pptx"
48
+ - "read pdf"
49
+ - "open pdf"
50
+ - "create pdf"
51
+ - "read excel"
52
+ - "create excel"
53
+ - "read word"
54
+ - "create word"
55
+ - "read powerpoint"
56
+ - "create presentation"
57
+
58
+ preferred_agents: []
59
+
60
+ steps:
61
+ - step: 1
62
+ action: office_leer_pdf
63
+ instruction: "Leer un archivo PDF y extraer su texto e información básica"
64
+ params:
65
+ ruta: "path/to/file.pdf"
66
+ output: pdf_content
67
+
68
+ - step: 2
69
+ action: office_escribir_pdf
70
+ instruction: "Generar un archivo PDF desde texto o contenido procesado"
71
+ params:
72
+ ruta: "path/to/output.pdf"
73
+ contenido: "texto a escribir"
74
+ titulo: "Título del documento"
75
+ tamaño_pagina: "A4"
76
+ output: pdf_created
77
+
78
+ - step: 3
79
+ action: office_leer_docx
80
+ instruction: "Leer un documento Word y extraer párrafos y tablas"
81
+ params:
82
+ ruta: "path/to/file.docx"
83
+ incluir_tablas: true
84
+ output: docx_content
85
+
86
+ - step: 4
87
+ action: office_escribir_docx
88
+ instruction: "Generar un documento Word con párrafos, títulos y tablas estructuradas"
89
+ params:
90
+ ruta: "path/to/output.docx"
91
+ titulo: "Título"
92
+ parrafos:
93
+ - texto: "Introducción"
94
+ tipo: "titulo1"
95
+ - texto: "Contenido del documento"
96
+ tipo: "parrafo"
97
+ output: docx_created
98
+
99
+ - step: 5
100
+ action: office_leer_xlsx
101
+ instruction: "Leer un archivo Excel y obtener los datos de cada hoja como JSON"
102
+ params:
103
+ ruta: "path/to/file.xlsx"
104
+ incluir_encabezados: true
105
+ output: xlsx_data
106
+
107
+ - step: 6
108
+ action: office_escribir_xlsx
109
+ instruction: "Generar un archivo Excel con múltiples hojas desde datos JSON"
110
+ params:
111
+ ruta: "path/to/output.xlsx"
112
+ hojas:
113
+ - nombre: "Hoja1"
114
+ datos:
115
+ - col1: "valor"
116
+ col2: "valor"
117
+ output: xlsx_created
118
+
119
+ - step: 7
120
+ action: office_leer_pptx
121
+ instruction: "Leer una presentación PowerPoint y extraer el texto de cada diapositiva"
122
+ params:
123
+ ruta: "path/to/file.pptx"
124
+ output: pptx_content
125
+
126
+ - step: 8
127
+ action: office_escribir_pptx
128
+ instruction: "Generar una presentación PowerPoint con título, viñetas y notas por diapositiva"
129
+ params:
130
+ ruta: "path/to/output.pptx"
131
+ titulo_presentacion: "Mi Presentación"
132
+ diapositivas:
133
+ - titulo: "Intro"
134
+ puntos:
135
+ - "Punto 1"
136
+ - "Punto 2"
137
+ output: pptx_created
138
+
139
+ rules:
140
+ - "Usa office_leer_* para extraer contenido antes de generar una versión nueva"
141
+ - "Siempre confirma la ruta de salida con el usuario antes de sobrescribir un archivo existente"
142
+ - "Para PDFs grandes, usa pagina_inicio/pagina_fin para leer por secciones"
143
+ - "Para Excel, especifica el nombre de hoja con el parámetro 'hoja' si solo necesitas una"
144
+ - "Al escribir DOCX, usa 'tipo: titulo1/titulo2/titulo3' para crear jerarquía de encabezados"
145
+ - "Para presentaciones, usa 'puntos' en lugar de 'contenido' cuando el texto es una lista"
146
+ - "Usa fs_read/fs_exists antes de leer un office file para confirmar que la ruta existe"
147
+
148
+ output_format:
149
+ structure: markdown
150
+ sections:
151
+ - "archivo"
152
+ - "contenido_extraido"
153
+ - "resultado"
154
+ max_length: "Truncar texto extraído a 2000 caracteres si es muy largo, con indicación de páginas/hojas restantes"
155
+
156
+ examples:
157
+ - user_input: "lee el PDF en /documentos/informe.pdf y dime de qué trata"
158
+ expected_behavior: "office_leer_pdf({ ruta: '/documentos/informe.pdf' }) → resume el contenido extraído"
159
+
160
+ - user_input: "crea un PDF con el resumen de la reunión"
161
+ expected_behavior: "office_escribir_pdf({ ruta: 'resumen_reunion.pdf', contenido: '...', titulo: 'Resumen de Reunión' })"
162
+
163
+ - user_input: "pasa los datos del Excel a un formato que pueda entender"
164
+ expected_behavior: "office_leer_xlsx({ ruta: 'datos.xlsx' }) → retorna datos como JSON con estructura de hojas"
165
+
166
+ - user_input: "genera una presentación de 5 slides sobre machine learning"
167
+ expected_behavior: "office_escribir_pptx({ ruta: 'ml_intro.pptx', titulo_presentacion: 'Introducción a ML', diapositivas: [...] })"
168
+
169
+ - user_input: "extrae el texto del contrato en Word"
170
+ expected_behavior: "office_leer_docx({ ruta: 'contrato.docx', incluir_tablas: true }) → retorna texto plano con tablas"
171
+ ---
172
+
173
+ # Office Document Manager Skill
174
+
175
+ ## Cuándo se Activa
176
+
177
+ Esta skill se activa cuando el usuario necesita:
178
+ - **Leer** archivos PDF, Word (.docx), Excel (.xlsx) o PowerPoint (.pptx)
179
+ - **Generar** nuevos archivos en cualquiera de esos formatos
180
+ - **Convertir** contenido entre formatos (ej: texto → PDF, JSON → Excel)
181
+ - **Extraer** datos estructurados de documentos (tablas de Excel, slides de presentación)
182
+
183
+ ## Herramientas Disponibles
184
+
185
+ | Tool | Qué hace | Cuándo usarla |
186
+ |------|----------|---------------|
187
+ | `office_leer_pdf` | Extrae texto + metadata de PDF | Leer informes, contratos, libros en PDF |
188
+ | `office_escribir_pdf` | Genera PDF desde texto | Crear reportes, resúmenes, documentación |
189
+ | `office_leer_docx` | Extrae texto y tablas de Word | Leer documentos, contratos, informes Word |
190
+ | `office_escribir_docx` | Genera Word con estructura | Crear documentos formales con títulos/tablas |
191
+ | `office_leer_xlsx` | Lee hojas de Excel como JSON | Procesar datos, tablas, inventarios |
192
+ | `office_escribir_xlsx` | Genera Excel desde JSON | Exportar datos, crear reportes tabulares |
193
+ | `office_leer_pptx` | Extrae texto de cada slide | Resumir presentaciones, extraer contenido |
194
+ | `office_escribir_pptx` | Genera presentación PowerPoint | Crear slides desde datos o resúmenes |
195
+
196
+ ## Workflow por Caso de Uso
197
+
198
+ ### Leer y resumir un documento
199
+ 1. `office_leer_pdf/docx/xlsx/pptx` → extraer contenido
200
+ 2. Procesar y resumir el texto
201
+ 3. `notify` → enviar resumen al usuario
202
+
203
+ ### Transformar datos a Excel
204
+ 1. Obtener datos (de memoria, herramienta o cálculo)
205
+ 2. Estructurar en `hojas` con `datos` como array de objetos
206
+ 3. `office_escribir_xlsx` → generar archivo
207
+ 4. Confirmar ruta al usuario
208
+
209
+ ### Crear un informe PDF
210
+ 1. Compilar el contenido del informe como texto
211
+ 2. `office_escribir_pdf` → generar con título y márgenes
212
+ 3. Confirmar que el archivo quedó en la ruta esperada
213
+
214
+ ### Generar una presentación
215
+ 1. Definir estructura: título + array de slides (título + puntos)
216
+ 2. `office_escribir_pptx` → generar .pptx
217
+ 3. Opcional: incluir notas del presentador en cada slide
218
+
219
+ ## Parámetros Clave
220
+
221
+ ### `parrafos` para DOCX
222
+ ```json
223
+ [
224
+ { "texto": "Capítulo 1", "tipo": "titulo1" },
225
+ { "texto": "Subtítulo", "tipo": "titulo2" },
226
+ { "texto": "Contenido normal", "tipo": "parrafo" },
227
+ { "texto": "Ítem de lista", "tipo": "lista" },
228
+ { "texto": "Texto importante", "tipo": "parrafo", "negrita": true }
229
+ ]
230
+ ```
231
+
232
+ ### `hojas` para XLSX
233
+ ```json
234
+ [
235
+ {
236
+ "nombre": "Ventas",
237
+ "datos": [
238
+ { "Mes": "Enero", "Total": 5000 },
239
+ { "Mes": "Febrero", "Total": 6200 }
240
+ ]
241
+ }
242
+ ]
243
+ ```
244
+
245
+ ### `diapositivas` para PPTX
246
+ ```json
247
+ [
248
+ {
249
+ "titulo": "¿Qué es Machine Learning?",
250
+ "puntos": ["Subcampo de IA", "Aprende de datos", "Hace predicciones"],
251
+ "notas": "Mencionar el enfoque supervisado y no supervisado"
252
+ }
253
+ ]
254
+ ```
255
+
256
+ ## Errores a Evitar
257
+
258
+ - ❌ Intentar leer un archivo que no existe (verifica con `fs_exists` primero)
259
+ - ❌ Sobrescribir sin confirmar cuando el archivo destino ya existe
260
+ - ❌ Usar `contenido` y `puntos` a la vez en PPTX — `puntos` tiene prioridad
261
+ - ❌ Pasar un array de arrays como `datos` de XLSX cuando se esperan objetos con claves
262
+ - ❌ Intentar leer PDF de más de 100 páginas sin especificar rango (usar `pagina_inicio`/`pagina_fin`)
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: capability_discovery
3
+ description: "Core discovery skill - find any capability with a single keyword"
4
+ version: 1.2.0
5
+ author: Hive Team
6
+ icon: "🔍"
7
+ category: core
8
+ permissions: []
9
+ dependencies: []
10
+ tools: [search_knowledge]
11
+
12
+ triggers:
13
+ - cómo busco herramientas
14
+ - cómo encuentro skills
15
+ - how to find tools
16
+ - search knowledge
17
+ - discovery
18
+ - buscar en la base
19
+ - encontrar herramientas
20
+
21
+ ---
22
+
23
+ # capability_discovery — Sistema de Discovery
24
+
25
+ Arrancás con 7 herramientas esenciales. Todo lo demás se descubre con **search_knowledge**.
26
+
27
+ ## Regla de oro: UNA PALABRA, busca TODO
28
+
29
+ ```
30
+ search_knowledge(query="email")
31
+ ```
32
+
33
+ Eso solo — sin type, sin frases largas — devuelve tools, skills, MCP y playbook relacionados con "email".
34
+
35
+ **Evitá esto:** `search_knowledge(type="tools", query="enviar correo electrónico")` — el motor rankea por relevancia (BM25), así que una frase larga no falla, pero diluye el resultado: cada palabra de más sesga el ranking hacia coincidencias parciales y mezcla resultados menos relevantes.
36
+
37
+ **Preferí esto:** `search_knowledge(query="email")` — una palabra precisa da el resultado más ajustado y encuentra todo lo relacionado.
38
+
39
+ ## Cuándo especificar type
40
+
41
+ Solo si querés filtrar resultados que ya son muchos:
42
+
43
+ ```
44
+ search_knowledge(query="email", type="mcp") → solo herramientas externas de email
45
+ search_knowledge(query="email", type="tools") → solo herramientas nativas de email
46
+ ```
47
+
48
+ Por defecto type="all" — no hace falta especificarlo.
49
+
50
+ ## Regla de prioridad
51
+
52
+ **Preferí herramientas nativas sobre MCP** cuando ambas sirven.
53
+ - Nativas: más rápidas, sin red, siempre disponibles
54
+ - MCP: cuando no hay equivalente nativo
55
+
56
+ ## Flujo de uso
57
+
58
+ 1. Identificá la palabra clave de lo que necesitás
59
+ 2. `search_knowledge(query="<palabra>")` → resultados de todos los tipos
60
+ 3. Cada resultado MCP incluye `server_id`; usalo para identificar la integración y buscar un especialista existente
61
+ 4. Antes del primer uso de un servidor sin especialista, seguí el flujo de consentimiento del system prompt
62
+ 5. Las tools encontradas se inyectan automáticamente en tu contexto para una ejecución directa solo cuando corresponda
63
+
64
+ ---
65
+
66
+ ## Ejemplos
67
+
68
+ ```
69
+ search_knowledge(query="pdf") → tools para leer/escribir PDFs
70
+ search_knowledge(query="browser") → tools de navegación web
71
+ search_knowledge(query="github") → tools MCP de GitHub si están configuradas
72
+ search_knowledge(query="calendar") → tools de Google Calendar
73
+ search_knowledge(query="A2UI") → skills del panel interactivo
74
+ search_knowledge(query="slack") → tools de Slack si están configuradas
75
+ ```
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: browser_automate
3
+ description: "Automate web workflows with navigation, clicks, form filling, and visual verification"
4
+ version: 1.0.0
5
+ author: Hive Team
6
+ icon: "🤖"
7
+ category: web
8
+ permissions:
9
+ - browser_control
10
+ dependencies: []
11
+ tools: [browser_navigate, browser_click, browser_type, browser_screenshot]
12
+
13
+ # Structured skill fields
14
+ triggers:
15
+ - "automatizá el navegador"
16
+ - "automate browser"
17
+ - "completá el formulario"
18
+ - "fill form"
19
+ - "hacé clic en"
20
+ - "click on"
21
+ - "iniciá sesión"
22
+ - "login"
23
+ - "registrate"
24
+ - "sign up"
25
+ - "interactuá con la web"
26
+ - "interact with website"
27
+ - "flujo web"
28
+ - "web workflow"
29
+
30
+ preferred_agents: []
31
+
32
+ steps:
33
+ - step: 1
34
+ action: browser_navigate
35
+ instruction: "Navigate to target URL and wait for page to fully load"
36
+ params:
37
+ url: "target URL"
38
+ output: page_loaded
39
+
40
+ - step: 2
41
+ action: browser_click
42
+ instruction: "Click on elements (buttons, links) to navigate or trigger actions"
43
+ params:
44
+ selector: "CSS selector for element"
45
+ output: click_result
46
+
47
+ - step: 3
48
+ action: browser_type
49
+ instruction: "Type text into form fields (inputs, textareas)"
50
+ params:
51
+ selector: "CSS selector for input"
52
+ text: "text to type"
53
+ output: type_result
54
+
55
+ - step: 4
56
+ action: browser_screenshot
57
+ instruction: "Take screenshot to verify state after interactions"
58
+ output: verification_screenshot
59
+
60
+ rules:
61
+ - "Wait for page to fully load after each navigation or significant interaction"
62
+ - "Use specific, stable CSS selectors (IDs preferred over classes)"
63
+ - "Take screenshots after critical steps for verification"
64
+ - "Handle errors gracefully — element may not exist or be interactable"
65
+ - "For multi-step flows, verify state after each step before proceeding"
66
+
67
+ output_format:
68
+ structure: markdown
69
+ sections:
70
+ - "workflow_steps"
71
+ - "final_state"
72
+ - "screenshot_path"
73
+ max_length: "Summary of automation flow"
74
+
75
+ examples:
76
+ - user_input: "automatizá el login en example.com"
77
+ expected_behavior: "Navigate → type credentials → click submit → screenshot verification"
78
+
79
+ - user_input: "completá el formulario de contacto"
80
+ expected_behavior: "Navigate → type name/email/message → click submit → verify submission"
81
+
82
+ - user_input: "hacé clic en todos los enlaces del menú"
83
+ expected_behavior: "Navigate → click each menu item → screenshot each page"
84
+ ---
85
+
86
+ # Browser Automate Skill
87
+
88
+ ## Cuándo se Activa
89
+
90
+ Esta skill se activa para automatizar flujos de interacción con aplicaciones web: logins, formularios, navegación programática.
91
+
92
+ ## Herramientas Disponibles
93
+
94
+ | Tool | Qué hace | Cuándo usarla |
95
+ |------|----------|---------------|
96
+ | `browser_navigate` | Navega a URL | Inicio de flujo |
97
+ | `browser_click` | Click en elementos | Botones, enlaces, triggers |
98
+ | `browser_type` | Escribe en inputs | Formularios, búsquedas |
99
+ | `browser_screenshot` | Captura estado | Verificación visual |
100
+
101
+ ## Workflow Típico
102
+
103
+ 1. **Navegar** → URL inicial
104
+ 2. **Interactuar** → click/type según flujo
105
+ 3. **Verificar** → screenshot después de acciones críticas
106
+ 4. **Repetir** → para flujos multi-paso
107
+
108
+ ## Mejores Prácticas
109
+
110
+ - Selectores estables (IDs > classes > XPath)
111
+ - Esperar carga después de navegación
112
+ - Verificar estado visual con screenshots
113
+ - Manejar errores de elementos no encontrados
114
+
115
+ ## Errores a Evitar
116
+
117
+ - ❌ Selectores frágiles que cambian
118
+ - ❌ No esperar carga de página
119
+ - ❌ Ignorar errores de elementos
120
+ - ❌ No verificar estado después de acciones
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: browser_scrape
3
+ description: "Navigate to web pages and capture rendered content including screenshots for dynamic sites"
4
+ version: 1.0.0
5
+ author: Hive Team
6
+ icon: "📸"
7
+ category: web
8
+ permissions:
9
+ - browser_control
10
+ dependencies: []
11
+ tools: [browser_navigate, browser_screenshot, web_fetch]
12
+
13
+ # Structured skill fields
14
+ triggers:
15
+ - "capturá el contenido"
16
+ - "scrape content"
17
+ - "obtené la página renderizada"
18
+ - "get rendered page"
19
+ - "sitios dinámicos"
20
+ - "dynamic sites"
21
+ - "web con javascript"
22
+ - "javascript websites"
23
+ - "tomá screenshot y contenido"
24
+ - "screenshot and content"
25
+
26
+ preferred_agents: []
27
+
28
+ steps:
29
+ - step: 1
30
+ action: browser_navigate
31
+ instruction: "Navigate to URL and wait for full page load including JavaScript rendering"
32
+ params:
33
+ url: "target URL"
34
+ output: page_loaded
35
+
36
+ - step: 2
37
+ action: browser_screenshot
38
+ instruction: "Take screenshot to capture visual state of rendered page"
39
+ output: screenshot
40
+
41
+ - step: 3
42
+ action: web_fetch
43
+ instruction: "Extract text content from rendered page as markdown"
44
+ output: extracted_content
45
+
46
+ - step: 4
47
+ action: synthesize
48
+ instruction: "Combine screenshot and text content for comprehensive capture"
49
+ output: scraped_data
50
+
51
+ rules:
52
+ - "Wait for full page load including JavaScript-rendered content"
53
+ - "Take screenshot before extracting text to capture initial state"
54
+ - "For infinite scroll pages, scroll down and capture multiple screenshots"
55
+ - "Respect website terms of service — no aggressive scraping"
56
+ - "Store both screenshot and text for complete record"
57
+
58
+ output_format:
59
+ structure: markdown
60
+ sections:
61
+ - "url"
62
+ - "screenshot_path"
63
+ - "extracted_content"
64
+ - "timestamp"
65
+ max_length: "Full content extraction"
66
+
67
+ examples:
68
+ - user_input: "capturá el contenido de https://example.com/dashboard"
69
+ expected_behavior: "browser_navigate → wait for JS render → browser_screenshot → browser_fetch → return both"
70
+
71
+ - user_input: "obtené la página renderizada de la app"
72
+ expected_behavior: "Navigate → wait for SPA to load → screenshot + fetch content"
73
+
74
+ - user_input: "scrapeá este sitio con javascript"
75
+ expected_behavior: "Full browser render → capture visual and text content"
76
+ ---
77
+
78
+ # Browser Scrape Skill
79
+
80
+ ## Cuándo se Activa
81
+
82
+ Esta skill se activa para sitios web dinámicos que requieren JavaScript rendering, donde el contenido no está disponible en HTML estático.
83
+
84
+ ## Herramientas Disponibles
85
+
86
+ | Tool | Qué hace | Cuándo usarla |
87
+ |------|----------|---------------|
88
+ | `browser_navigate` | Navega y renderiza página completa | Sitios con JavaScript/SPA |
89
+ | `browser_screenshot` | Captura estado visual | Evidencia de contenido renderizado |
90
+ | `web_fetch` | Extrae texto como markdown | Contenido textual de página renderizada |
91
+
92
+ ## Workflow
93
+
94
+ 1. **Navegar** → `browser_navigate({ url })` + esperar renderizado JS
95
+ 2. **Capturar visual** → `browser_screenshot()`
96
+ 3. **Extraer texto** → `web_fetch()`
97
+ 4. **Combinar** → screenshot + texto para scrape completo
98
+
99
+ ## Mejores Prácticas
100
+
101
+ - Esperar renderizado completo de JavaScript
102
+ - Para infinite scroll: hacer scroll y múltiples screenshots
103
+ - Capturar antes y después de interacciones si es dinámico
104
+
105
+ ## Errores a Evitar
106
+
107
+ - ❌ No esperar renderizado JavaScript
108
+ - ❌ Solo capturar HTML estático para sitios SPA
109
+ - ❌ Ignorar términos de servicio del sitio
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: web_monitor
3
+ description: "Monitor changes in web sources and track updates over time with persistent memory"
4
+ version: 1.0.0
5
+ author: Hive Team
6
+ icon: "📡"
7
+ category: web
8
+ permissions:
9
+ - internet_access
10
+ - memory_write
11
+ - memory_read
12
+ dependencies: []
13
+ tools: [web_search, web_fetch, memory_write, memory_read]
14
+
15
+ # Structured skill fields
16
+ triggers:
17
+ - "monitoreá"
18
+ - "monitor"
19
+ - "seguí los cambios"
20
+ - "track changes"
21
+ - "avisame si cambia"
22
+ - "notify if changes"
23
+ - "actualización de"
24
+ - "update on"
25
+ - "novedades de"
26
+ - "news about"
27
+ - "cambios en"
28
+ - "changes in"
29
+
30
+ preferred_agents: []
31
+
32
+ steps:
33
+ - step: 1
34
+ action: memory_read
35
+ instruction: "Read previously stored content for this URL/topic to compare"
36
+ params:
37
+ title: "monitor_{url_or_topic}"
38
+ output: previous_content
39
+
40
+ - step: 2
41
+ action: web_fetch
42
+ instruction: "Fetch current content from monitored URL"
43
+ params:
44
+ url: "monitored URL"
45
+ output: current_content
46
+
47
+ - step: 3
48
+ action: compare
49
+ instruction: "Compare current content with previous version to identify changes"
50
+ output: changes_detected
51
+
52
+ - step: 4
53
+ action: memory_write
54
+ instruction: "Store current content as new baseline for future comparisons"
55
+ params:
56
+ title: "monitor_{url_or_topic}"
57
+ content: "current content + timestamp"
58
+ output: stored
59
+
60
+ - step: 5
61
+ action: notify
62
+ instruction: "If changes detected, notify user with summary of what changed"
63
+ output: notification_sent
64
+
65
+ rules:
66
+ - "Always store baseline on first monitor request"
67
+ - "Compare content systematically — identify additions, removals, modifications"
68
+ - "Notify only if meaningful changes detected (ignore timestamps, ads)"
69
+ - "Store timestamp with each baseline for tracking frequency"
70
+ - "For recurring monitors, use cron.create to schedule automatic checks"
71
+
72
+ output_format:
73
+ structure: markdown
74
+ sections:
75
+ - "url"
76
+ - "change_detected"
77
+ - "summary_of_changes"
78
+ - "timestamp"
79
+ max_length: "Brief summary of changes"
80
+
81
+ examples:
82
+ - user_input: "monitoreá cambios en https://example.com/pricing"
83
+ expected_behavior: "Fetch current pricing → store as baseline → on next check, compare and notify if changed"
84
+
85
+ - user_input: "avisame si hay novedades sobre IA"
86
+ expected_behavior: "web_search('IA news') → compare with stored results → notify if new significant news"
87
+
88
+ - user_input: "seguí los cambios en la documentación de React"
89
+ expected_behavior: "Fetch React docs → store baseline → periodic checks → notify on content changes"
90
+ ---
91
+
92
+ # Web Monitor Skill
93
+
94
+ ## Cuándo se Activa
95
+
96
+ Esta skill se activa cuando el usuario necesita:
97
+ - Monitorear cambios en una URL específica
98
+ - Recibir notificaciones de actualizaciones
99
+ - Seguir novedades sobre un tema
100
+ - Trackear evolución de contenido
101
+
102
+ ## Herramientas Disponibles
103
+
104
+ | Tool | Qué hace | Cuándo usarla |
105
+ |------|----------|---------------|
106
+ | `web_fetch` | Descarga contenido de URL | Obtener contenido actual |
107
+ | `web_search` | Busca novedades | Monitoreo por tema (no URL fija) |
108
+ | `memory_write` | Guarda baseline | Almacenar contenido para comparación |
109
+ | `memory_read` | Recupera baseline anterior | Comparar con contenido actual |
110
+
111
+ ## Workflow
112
+
113
+ 1. **Primera ejecución**: `web_fetch` → `memory_write` (baseline)
114
+ 2. **Chequeos siguientes**: `memory_read` → `web_fetch` → comparar → `notify` si cambia
115
+ 3. **Actualizar baseline**: `memory_write` con nuevo contenido
116
+
117
+ ## Mejores Prácticas
118
+
119
+ - Ignorar cambios menores (timestamps, ads, contenido dinámico irrelevante)
120
+ - Notificar solo cambios significativos
121
+ - Para monitoreo periódico, combinar con `cron.create`
122
+
123
+ ## Errores a Evitar
124
+
125
+ - ❌ No almacenar baseline inicial
126
+ - ❌ Notificar por cambios triviales
127
+ - ❌ No actualizar timestamp de baseline