@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,98 @@
1
+ ---
2
+ name: task_orchestrator
3
+ description: "Orchestrate tasks across multiple workers with delegation, status tracking, and bus communication"
4
+ version: 1.2.0
5
+ author: Hive Team
6
+ icon: "🎻"
7
+ category: agents
8
+ permissions:
9
+ - agent_manage
10
+ - agent_bus
11
+ dependencies: []
12
+ tools: [get_available_models, task_delegate, task_list, task_status, agent_find, agent_create, bus_publish, bus_read]
13
+
14
+ # Structured skill fields
15
+ triggers:
16
+ - "delegá esta tarea"
17
+ - "delegate task"
18
+ - "orquestá los workers"
19
+ - "orchestrate workers"
20
+ - "coordiná el equipo"
21
+ - "coordinate team"
22
+ - "estado de las tareas"
23
+ - "task status"
24
+ - "comunicá los workers"
25
+ - "communicate workers"
26
+ - "mensaje al bus"
27
+ - "bus message"
28
+ - "tarea en paralelo"
29
+ - "parallel tasks"
30
+
31
+ preferred_agents: []
32
+ ---
33
+ # Task Orchestrator — referencia operativa
34
+
35
+ La doctrina de orquestación (descomponer → delegar en paralelo → terminar el turno → sintetizar en el fan-in) está en tu system prompt. Esta skill es la referencia de las herramientas.
36
+
37
+ ## Herramientas
38
+
39
+ | Tool | Qué hace | Cuándo |
40
+ |------|----------|--------|
41
+ | `task_delegate` | Persiste y asigna una tarea a un worker | Delegar. Preferí `mode="async"` |
42
+ | `agent_find` | Descubre workers del catálogo y propios | Antes de delegar. Nunca para comprobar ejecución |
43
+ | `task_list` | Lista ejecuciones reales persistidas | El usuario pregunta y no conocés IDs |
44
+ | `task_status` | Estado de tareas por ID | El usuario pide estado antes del fan-in |
45
+ | `get_available_models` | Providers y modelos activos | Antes de crear un worker |
46
+ | `agent_create` | Crea un worker nuevo | Último recurso: nada del catálogo sirve |
47
+ | `bus_publish` / `bus_read` | Mensajes entre workers | Dependencias entre workers en vuelo |
48
+
49
+ ## Fan-out
50
+
51
+ ```javascript
52
+ // Tres partes independientes → tres llamadas en la MISMA respuesta
53
+ task_delegate({ worker_id: "web_researcher", task_description: "...", mode: "async" })
54
+ task_delegate({ worker_id: "office_document_agent", task_description: "...", mode: "async" })
55
+ task_delegate({ worker_id: "schedule_automation_agent", task_description: "...", mode: "async" })
56
+ ```
57
+
58
+ Cada llamada devuelve `task_id`, `job_id` y `run_id`: prueba de que la tarea quedó persistida.
59
+
60
+ ## Fan-in
61
+
62
+ Hive te reinvoca con:
63
+
64
+ ```
65
+ [Sistema] Todas las tareas delegadas de este turno alcanzaron estado terminal.
66
+ [{ task_id, worker_id, task, ok, result, error }, ...]
67
+ ```
68
+
69
+ Sintetizá una sola respuesta. Las entradas con `ok: false` se reportan con su motivo real.
70
+
71
+ ## Crear un worker (último recurso)
72
+
73
+ ```javascript
74
+ get_available_models({ capabilities: "analysis" })
75
+ // → [{ providerId: "anthropic", modelId: "claude-sonnet-4-6", ... }]
76
+
77
+ agent_create({
78
+ name: "data_analyst",
79
+ description: "Experto en análisis de datos",
80
+ system_prompt: "Sos analista de datos experto...",
81
+ tools_json: ["web_search", "web_fetch", "save_note"],
82
+ providerId: "anthropic", // OBLIGATORIO
83
+ modelId: "claude-sonnet-4-6", // OBLIGATORIO
84
+ })
85
+ ```
86
+
87
+ Para una integración MCP sin especialista, pedí autorización primero. Si el usuario acepta, creá un worker con `mcp_server_id`; si participan varios servidores, creá o reutilizá uno por servidor. Nunca pases servidores MCP dinámicos a `task_delegate`.
88
+
89
+ ## Errores a evitar
90
+
91
+ - ❌ Serializar tareas independientes en vez de fan-out paralelo
92
+ - ❌ Polling con `task_status` esperando el resultado — el fan-in llega solo
93
+ - ❌ Declarar éxito antes de recibir el `[Sistema]`, o presentar `ok=false` como éxito
94
+ - ❌ Reportar éxito sin revisar `acceptance`/`checks` de la entrega, o ignorar un `checks.status="failed"`
95
+ - ❌ Corregir a mano lo que `task_revise` puede reencolar en el mismo worker
96
+ - ❌ Crear un worker que el catálogo ya cubre
97
+ - ❌ Delegar saludos, preguntas simples o la conversación
98
+ - ❌ Usar `delegate_task`, `find_agent`, `create_agent`, `get_task_status`, `publish_to_bus`, `get_bus_messages` — **no existen**
@@ -0,0 +1,132 @@
1
+ ---
2
+ name: api_client
3
+ description: "Make HTTP requests to REST APIs using curl-like methods (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS)"
4
+ version: 1.0.0
5
+ author: Hive Team
6
+ icon: "🌐"
7
+ category: api
8
+ permissions:
9
+ - internet_access
10
+ dependencies: []
11
+ tools: [api_request]
12
+
13
+ # Structured skill fields
14
+ triggers:
15
+ - "llama a la api"
16
+ - "llama al api"
17
+ - "consume la api"
18
+ - "haz una petición"
19
+ - "haz un request"
20
+ - "envía un post"
21
+ - "envía un put"
22
+ - "envía un delete"
23
+ - "curl"
24
+ - "api request"
25
+ - "rest api"
26
+ - "endpoint"
27
+ - "webhook"
28
+ - "integrar con api"
29
+ - "conectar con api"
30
+ - "obtener datos de api"
31
+ - "enviar datos a api"
32
+
33
+ preferred_agents: []
34
+
35
+ steps:
36
+ - step: 1
37
+ action: api_request
38
+ instruction: "Call the API endpoint with the correct HTTP method, headers, and body. Always include Content-Type and Authorization if required by the API."
39
+ params:
40
+ method: "GET | POST | PUT | DELETE | PATCH"
41
+ url: "https://api.example.com/endpoint"
42
+ headers:
43
+ Content-Type: "application/json"
44
+ Authorization: "Bearer TOKEN_IF_NEEDED"
45
+ body: '{"key":"value"}'
46
+ output: api_response
47
+
48
+ - step: 2
49
+ action: validate
50
+ instruction: "Check the response status. If 2xx, extract and present the data. If 4xx/5xx, analyze the error and suggest fixes (missing auth, wrong payload, rate limit)."
51
+ output: validated_result
52
+
53
+ rules:
54
+ - "Always use api_request instead of web_fetch when you need custom headers, body, or non-GET methods"
55
+ - "Never expose API keys or tokens in the final response to the user — mention they are handled securely"
56
+ - "If the API returns JSON, parse and present it in a readable format (tables, lists, markdown)"
57
+ - "For paginated APIs, indicate if more pages exist and offer to fetch them"
58
+ - "Respect rate limits — if a 429 is returned, wait and retry or inform the user"
59
+ - "Always include the Content-Type header when sending a body (usually application/json)"
60
+ - "Use query_params object instead of manually appending to the URL"
61
+ - "If the user provides a curl command, translate it into api_request parameters"
62
+
63
+ output_format:
64
+ structure: markdown
65
+ sections:
66
+ - "summary"
67
+ - "request_details"
68
+ - "response_data"
69
+ - "next_steps"
70
+ max_length: "800 words unless user requests full raw response"
71
+
72
+ examples:
73
+ - user_input: "haz un get a https://api.github.com/users/octocat"
74
+ expected_behavior: "api_request({ method: 'GET', url: 'https://api.github.com/users/octocat' }) → parse JSON → show key fields"
75
+
76
+ - user_input: "envía un post a https://httpbin.org/post con {nombre: 'Juan'}"
77
+ expected_behavior: "api_request({ method: 'POST', url: 'https://httpbin.org/post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({nombre:'Juan'}) }) → show response"
78
+
79
+ - user_input: "actualiza el recurso 123 en la API con {status: 'active'}"
80
+ expected_behavior: "api_request({ method: 'PUT', url: '.../123', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ...' }, body: JSON.stringify({status:'active'}) }) → confirm update"
81
+
82
+ - user_input: "curl -X DELETE https://api.example.com/items/456 -H 'Authorization: Bearer token123'"
83
+ expected_behavior: "Translate curl to api_request({ method: 'DELETE', url: 'https://api.example.com/items/456', headers: { 'Authorization': 'Bearer token123' } }) → confirm deletion"
84
+ ---
85
+
86
+ # API Client Skill
87
+
88
+ ## Cuándo se Activa
89
+
90
+ Esta skill se activa cuando el usuario necesita interactuar con una API REST: consultar datos, crear recursos, actualizar, eliminar, o cualquier operación HTTP.
91
+
92
+ ## Herramientas Disponibles
93
+
94
+ | Tool | Qué hace | Cuándo usarla |
95
+ |------|----------|---------------|
96
+ | `api_request` | Realiza peticiones HTTP completas (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS) con headers, body, query params y timeout | Siempre que necesites llamar un endpoint REST, webhook, o servicio externo |
97
+
98
+ ## Parámetros de api_request
99
+
100
+ - `method` (requerido): GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
101
+ - `url` (requerido): URL completa del endpoint
102
+ - `headers` (opcional): objeto con headers HTTP. Ej: `{ "Authorization": "Bearer TOKEN", "Content-Type": "application/json" }`
103
+ - `body` (opcional): cuerpo de la petición como string. Para JSON, enviar JSON.stringify(objeto)
104
+ - `query_params` (opcional): parámetros de query que se codificarán automáticamente en la URL
105
+ - `timeout_ms` (opcional): timeout en ms. Default: 30000. Máx: 120000
106
+
107
+ ## Diferencia con web_fetch
108
+
109
+ - `web_fetch`: solo GET, sin headers custom, ideal para scraping de páginas web
110
+ - `api_request`: cualquier método HTTP, headers custom, body, query params — ideal para APIs REST
111
+
112
+ ## Workflow
113
+
114
+ 1. **Identificar endpoint y método** → Determinar URL, método, headers necesarios
115
+ 2. **Construir request** → `api_request({ method, url, headers, body })`
116
+ 3. **Validar respuesta** → Si 2xx: extraer datos. Si error: analizar y sugerir fix
117
+ 4. **Presentar resultados** → JSON parseado en formato legible, no crudo a menos que se pida
118
+
119
+ ## Mejores Prácticas
120
+
121
+ - Siempre enviar `Content-Type: application/json` cuando el body es JSON
122
+ - Usar `query_params` en lugar de append manual a la URL
123
+ - No exponer tokens/secrets en la respuesta final al usuario
124
+ - Si la API requiere auth, pedirla al usuario o usar variables de entorno
125
+ - Para errores 4xx, revisar: auth, formato del body, campos requeridos, rate limits
126
+
127
+ ## Errores a Evitar
128
+
129
+ - ❌ Usar web_fetch para POST/PUT/DELETE con headers
130
+ - ❌ Enviar objetos directamente en body (debe ser string)
131
+ - ❌ Olvidar Content-Type al enviar JSON
132
+ - ❌ Exponer API keys en la respuesta visible
@@ -0,0 +1,135 @@
1
+ ---
2
+ name: cli_pipeline
3
+ description: "Execute shell commands and pipe output to files for logging and further processing"
4
+ version: 1.0.0
5
+ author: Hive Team
6
+ icon: "🔗"
7
+ category: cli
8
+ permissions:
9
+ - shell_exec
10
+ - filesystem_write
11
+ dependencies: []
12
+ tools: [cli_exec, fs_write]
13
+
14
+ # Structured skill fields
15
+ triggers:
16
+ - "guardá el output"
17
+ - "save output"
18
+ - "pipeline"
19
+ - "pipe to file"
20
+ - "redireccioná el output"
21
+ - "redirect output"
22
+ - "log del comando"
23
+ - "command log"
24
+ - "ejecutá y guardá"
25
+ - "run and save"
26
+ - "resultado en archivo"
27
+ - "result to file"
28
+
29
+ preferred_agents: []
30
+
31
+ steps:
32
+ - step: 1
33
+ action: validate_command
34
+ instruction: "Validate command is safe and appropriate for pipeline execution"
35
+ output: validated_command
36
+
37
+ - step: 2
38
+ action: cli_exec
39
+ instruction: "Execute command and capture full output (stdout + stderr)"
40
+ params:
41
+ command: "validated command"
42
+ timeout: "appropriate timeout"
43
+ output: command_output
44
+
45
+ - step: 3
46
+ action: format_output
47
+ instruction: "Format output for file storage: add timestamp, command, execution time"
48
+ output: formatted_output
49
+
50
+ - step: 4
51
+ action: fs_write
52
+ instruction: "Write output to specified file path"
53
+ params:
54
+ path: "logs/command_YYYY-MM-DD_HH-MM-SS.log"
55
+ content: "formatted output"
56
+ output: file_written
57
+
58
+ rules:
59
+ - "Capture both stdout and stderr for complete logging"
60
+ - "Add metadata: timestamp, command, execution time, exitCode"
61
+ - "Use descriptive filenames with timestamps for logs"
62
+ - "For large outputs, write incrementally or split files"
63
+ - "Confirm file path before writing"
64
+
65
+ output_format:
66
+ structure: markdown
67
+ sections:
68
+ - "command"
69
+ - "timestamp"
70
+ - "exit_code"
71
+ - "execution_time"
72
+ - "output_file"
73
+ max_length: "Full logged output"
74
+
75
+ examples:
76
+ - user_input: "ejecutá npm install y guardá el output en logs/install.log"
77
+ expected_behavior: "cli_exec({ command: 'npm install' }) → format with metadata → fs_write({ path: 'logs/install.log' })"
78
+
79
+ - user_input: "corré los tests y guardá el resultado"
80
+ expected_behavior: "cli_exec({ command: 'npm test' }) → capture full output → write to timestamped log file"
81
+
82
+ - user_input: "hacé un pipeline de git log a archivo"
83
+ expected_behavior: "cli_exec({ command: 'git log --oneline' }) → write to 'logs/git_log_YYYY-MM-DD.md'"
84
+ ---
85
+
86
+ # CLI Pipeline Skill
87
+
88
+ ## Cuándo se Activa
89
+
90
+ Para ejecutar comandos y guardar el output en archivos para logging o procesamiento posterior.
91
+
92
+ ## Herramientas Disponibles
93
+
94
+ | Tool | Qué hace | Cuándo usarla |
95
+ |------|----------|---------------|
96
+ | `cli_exec` | Ejecuta un comando con timeout y captura su salida | Comandos autorizados |
97
+ | `fs_write` | Escribe un archivo dentro del workspace | Guardar output |
98
+
99
+ ## Workflow
100
+
101
+ 1. **Validar comando** → Seguro para ejecución
102
+ 2. **Ejecutar** → Capturar stdout + stderr
103
+ 3. **Formatear** → Agregar timestamp, comando, metadata
104
+ 4. **Escribir** → `fs_write({ path, content })`
105
+
106
+ ## Formato de Log
107
+
108
+ ```markdown
109
+ # Command Log
110
+
111
+ **Command**: npm install
112
+ **Timestamp**: 2025-03-09 14:30:00
113
+ **Exit Code**: 0
114
+ **Execution Time**: 45.2s
115
+
116
+ ---
117
+
118
+ ## Output
119
+
120
+ [stdout content...]
121
+ [stderr if any...]
122
+ ```
123
+
124
+ ## Mejores Prácticas
125
+
126
+ - Filenames con timestamp para tracking
127
+ - Incluir metadata completa (exitCode, tiempo)
128
+ - Capturar stdout y stderr
129
+ - Para outputs grandes, escribir incrementalmente
130
+
131
+ ## Errores a Evitar
132
+
133
+ - ❌ No incluir metadata en log
134
+ - ❌ Filenames genéricos sin timestamp
135
+ - ❌ No capturar stderr
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: cli_safe_exec
3
+ description: "Execute shell commands safely with error handling, timeouts, and output validation"
4
+ version: 1.0.0
5
+ author: Hive Team
6
+ icon: "💻"
7
+ category: cli
8
+ permissions:
9
+ - shell_exec
10
+ dependencies: []
11
+ tools: [cli_exec]
12
+
13
+ # Structured skill fields
14
+ triggers:
15
+ - "ejecutá este comando"
16
+ - "run this command"
17
+ - "corré el comando"
18
+ - "execute command"
19
+ - "terminal"
20
+ - "bash"
21
+ - "shell"
22
+ - "npm"
23
+ - "yarn"
24
+ - "bun"
25
+ - "git"
26
+ - "docker"
27
+ - "comando de sistema"
28
+ - "system command"
29
+
30
+ preferred_agents: []
31
+
32
+ steps:
33
+ - step: 1
34
+ action: validate_command
35
+ instruction: "Validate command is safe. Check for destructive operations (rm, DROP, DELETE)"
36
+ output: validated_command
37
+
38
+ - step: 2
39
+ action: exec or terminal
40
+ instruction: "Execute with appropriate timeout. Use exec for simple, terminal for complex"
41
+ params:
42
+ command: "validated command"
43
+ timeout: 30-300 seconds
44
+ output: command_result
45
+
46
+ - step: 3
47
+ action: parse_result
48
+ instruction: "Parse stdout and stderr. Check exitCode (0=success)"
49
+ output: parsed_output
50
+
51
+ - step: 4
52
+ action: handle_error
53
+ instruction: "If failed, analyze error and suggest fixes or retry options"
54
+ output: error_handling
55
+
56
+ rules:
57
+ - "NEVER use for scheduled tasks — use cron.create instead"
58
+ - "Prefer read-only commands when possible"
59
+ - "Confirm before destructive operations (rm, DROP, DELETE, --force)"
60
+ - "Set appropriate timeout: 30s simple, 120s builds, 300s heavy"
61
+ - "Always check exitCode — non-zero means failure"
62
+ - "Use absolute paths for reliability"
63
+
64
+ output_format:
65
+ structure: markdown
66
+ sections:
67
+ - "command"
68
+ - "exit_code"
69
+ - "stdout"
70
+ - "stderr"
71
+ - "execution_time"
72
+ max_length: "Full output with analysis"
73
+
74
+ examples:
75
+ - user_input: "ejecutá npm install"
76
+ expected_behavior: "exec({ command: 'npm install', timeout: 120 }) → check exitCode → return installation summary"
77
+
78
+ - user_input: "corré los tests"
79
+ expected_behavior: "exec({ command: 'npm test', timeout: 180 }) → parse results → report pass/fail count"
80
+
81
+ - user_input: "hacé git status"
82
+ expected_behavior: "exec({ command: 'git status' }) → return current branch and changes"
83
+ ---
84
+
85
+ # CLI Safe Exec Skill
86
+
87
+ ## Cuándo se Activa
88
+
89
+ Para ejecutar comandos de shell de forma segura con manejo de errores y timeouts.
90
+
91
+ ## Herramientas Disponibles
92
+
93
+ | Tool | Qué hace | Cuándo usarla |
94
+ |------|----------|---------------|
95
+ | `exec` | Ejecuta con validación y timeout | Comandos simples (<30s) |
96
+ | `terminal` | Ejecuta con entorno completo | Comandos complejos, Git, npm |
97
+
98
+ ## ⚠️ ADVERTENCIA CRÍTICA
99
+
100
+ **NUNCA usar para tareas programadas** — usar `cron.create` en su lugar.
101
+
102
+ ## Workflow
103
+
104
+ 1. **Validar** → Comando es seguro, no destructivo
105
+ 2. **Ejecutar** → `exec` o `terminal` con timeout apropiado
106
+ 3. **Parsear** → Check exitCode, stdout, stderr
107
+ 4. **Manejar error** → Si falló, analizar y sugerir fixes
108
+
109
+ ## Timeouts Apropiados
110
+
111
+ | Tipo | Timeout |
112
+ |------|---------|
113
+ | Listar archivos | 10s |
114
+ | Git operations | 30s |
115
+ | npm install | 120s |
116
+ | npm run build | 120s |
117
+ | npm test | 180s |
118
+ | Docker builds | 300s |
119
+
120
+ ## Errores a Evitar
121
+
122
+ - ❌ Usar para cron (usar cron.create)
123
+ - ❌ Sin timeout apropiado
124
+ - ❌ Ignorar exitCode
125
+ - ❌ Comandos destructivos sin confirmar
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: software_engineering
3
+ description: "Implement, debug, and verify scoped software changes in an existing repository"
4
+ version: 1.0.0
5
+ author: Hive Team
6
+ icon: "🛠️"
7
+ category: cli
8
+ permissions: [filesystem_read, filesystem_write, shell_exec]
9
+ dependencies: []
10
+ tools: [fs_read, fs_write, fs_edit, fs_list, fs_glob, fs_exists, cli_exec]
11
+ triggers: [implementar código, corregir bug, ejecutar tests, implement code, fix bug]
12
+ preferred_agents: [software_engineer]
13
+ ---
14
+
15
+ # Ingeniería de software
16
+
17
+ 1. Inspecciona estructura, convenciones y cambios existentes.
18
+ 2. Determina la causa o el cambio mínimo antes de editar.
19
+ 3. Conserva cambios ajenos y limita el diff al objetivo.
20
+ 4. Ejecuta tests, typecheck o build proporcionales al riesgo.
21
+ 5. Entrega archivos cambiados, comandos ejecutados, resultados y riesgos.
22
+
23
+ No publiques, no delegues y no uses comandos destructivos sin autorización explícita.