@johpaz/hive-sdk 0.0.12 → 0.0.15

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 (199) hide show
  1. package/.github/CODEOWNERS +9 -0
  2. package/.github/workflows/publish.yml +89 -0
  3. package/.github/workflows/version-bump.yml +102 -0
  4. package/CHANGELOG.md +38 -0
  5. package/README.md +158 -0
  6. package/bun.lock +543 -0
  7. package/bunfig.toml +7 -0
  8. package/docs/API-AGENTS.md +316 -0
  9. package/docs/API-CONTEXT-COMPILER.md +252 -0
  10. package/docs/API-DAG-SCHEDULER.md +273 -0
  11. package/docs/API-TOOLS-SKILLS-CHANNELS.md +293 -0
  12. package/docs/API-WORKERS-EVENTS.md +152 -0
  13. package/docs/INDEX.md +141 -0
  14. package/docs/README.md +68 -0
  15. package/package.json +54 -105
  16. package/packages/cli/package.json +17 -0
  17. package/packages/cli/src/commands/init.ts +56 -0
  18. package/packages/cli/src/commands/run.ts +45 -0
  19. package/packages/cli/src/commands/test.ts +42 -0
  20. package/packages/cli/src/commands/trace.ts +55 -0
  21. package/packages/cli/src/index.ts +43 -0
  22. package/packages/core/package.json +58 -0
  23. package/packages/core/src/ace/Curator.ts +158 -0
  24. package/packages/core/src/ace/Reflector.ts +200 -0
  25. package/packages/core/src/ace/Tracer.ts +100 -0
  26. package/packages/core/src/ace/index.ts +4 -0
  27. package/packages/core/src/agent/AgentRunner.ts +699 -0
  28. package/packages/core/src/agent/Compaction.ts +221 -0
  29. package/packages/core/src/agent/ContextCompiler.ts +567 -0
  30. package/packages/core/src/agent/ContextGuard.ts +91 -0
  31. package/packages/core/src/agent/ConversationStore.ts +244 -0
  32. package/packages/core/src/agent/Hooks.ts +166 -0
  33. package/packages/core/src/agent/NativeTools.ts +31 -0
  34. package/packages/core/src/agent/PromptBuilder.ts +169 -0
  35. package/packages/core/src/agent/Service.ts +267 -0
  36. package/packages/core/src/agent/StuckLoop.ts +133 -0
  37. package/packages/core/src/agent/index.ts +12 -0
  38. package/packages/core/src/agent/providers/LLMClient.ts +149 -0
  39. package/packages/core/src/agent/providers/anthropic.ts +212 -0
  40. package/packages/core/src/agent/providers/gemini.ts +215 -0
  41. package/packages/core/src/agent/providers/index.ts +199 -0
  42. package/packages/core/src/agent/providers/interface.ts +195 -0
  43. package/packages/core/src/agent/providers/ollama.ts +175 -0
  44. package/packages/core/src/agent/providers/openai-compat.ts +231 -0
  45. package/packages/core/src/agent/providers.ts +1 -0
  46. package/packages/core/src/agent/selectors/PlaybookSelector.ts +147 -0
  47. package/packages/core/src/agent/selectors/SkillSelector.ts +478 -0
  48. package/packages/core/src/agent/selectors/ToolSelector.ts +577 -0
  49. package/packages/core/src/agent/selectors/index.ts +6 -0
  50. package/packages/core/src/api/createAgent.test.ts +48 -0
  51. package/packages/core/src/api/createAgent.ts +122 -0
  52. package/packages/core/src/api/index.ts +2 -0
  53. package/packages/core/src/canvas/CanvasManager.ts +390 -0
  54. package/packages/core/src/canvas/a2ui-tools.ts +255 -0
  55. package/packages/core/src/canvas/canvas-tools.ts +448 -0
  56. package/packages/core/src/canvas/emitter.ts +149 -0
  57. package/packages/core/src/canvas/index.ts +6 -0
  58. package/packages/core/src/config/index.ts +2 -0
  59. package/packages/core/src/config/loader.ts +554 -0
  60. package/packages/core/src/ethics/EthicsGuard.test.ts +54 -0
  61. package/packages/core/src/ethics/EthicsGuard.ts +66 -0
  62. package/packages/core/src/ethics/index.ts +2 -0
  63. package/packages/core/src/gateway/channel-notify.test.ts +14 -0
  64. package/packages/core/src/gateway/channel-notify.ts +12 -0
  65. package/packages/core/src/gateway/index.ts +1 -0
  66. package/packages/core/src/index.ts +37 -0
  67. package/packages/core/src/mcp/MCPClient.ts +439 -0
  68. package/packages/core/src/mcp/MCPToolAdapter.ts +176 -0
  69. package/packages/core/src/mcp/config.ts +13 -0
  70. package/packages/core/src/mcp/hot-reload.ts +147 -0
  71. package/packages/core/src/mcp/index.ts +11 -0
  72. package/packages/core/src/mcp/logger.ts +42 -0
  73. package/packages/core/src/mcp/singleton.ts +21 -0
  74. package/packages/core/src/mcp/transports/index.ts +67 -0
  75. package/packages/core/src/mcp/transports/sse.ts +241 -0
  76. package/packages/core/src/mcp/transports/websocket.ts +159 -0
  77. package/packages/core/src/memory/Scratchpad.test.ts +47 -0
  78. package/packages/core/src/memory/Scratchpad.ts +37 -0
  79. package/packages/core/src/memory/Storage.ts +6 -0
  80. package/packages/core/src/memory/index.ts +2 -0
  81. package/packages/core/src/multimodal/VisionService.ts +293 -0
  82. package/packages/core/src/multimodal/index.ts +2 -0
  83. package/packages/core/src/multimodal/types.ts +28 -0
  84. package/packages/core/src/security/Pairing.ts +250 -0
  85. package/packages/core/src/security/RateLimit.ts +270 -0
  86. package/packages/core/src/security/index.ts +4 -0
  87. package/packages/core/src/skills/SkillLoader.ts +388 -0
  88. package/packages/core/src/skills/bundled-data.generated.ts +3332 -0
  89. package/packages/core/src/skills/defineSkill.ts +18 -0
  90. package/packages/core/src/skills/index.ts +4 -0
  91. package/packages/core/src/state/index.ts +2 -0
  92. package/packages/core/src/state/store.ts +312 -0
  93. package/packages/core/src/storage/SQLiteStorage.ts +407 -0
  94. package/packages/core/src/storage/crypto.ts +101 -0
  95. package/packages/core/src/storage/index.ts +10 -0
  96. package/packages/core/src/storage/onboarding.ts +1603 -0
  97. package/packages/core/src/storage/schema.ts +689 -0
  98. package/packages/core/src/storage/seed.ts +740 -0
  99. package/packages/core/src/storage/usage.ts +374 -0
  100. package/packages/core/src/swarm/AgentBus.ts +460 -0
  101. package/packages/core/src/swarm/AgentExecutor.ts +53 -0
  102. package/packages/core/src/swarm/Coordinator.ts +251 -0
  103. package/packages/core/src/swarm/EventBridge.ts +122 -0
  104. package/packages/core/src/swarm/EventBus.ts +169 -0
  105. package/packages/core/src/swarm/TaskGraph.ts +192 -0
  106. package/packages/core/src/swarm/TaskNode.ts +97 -0
  107. package/packages/core/src/swarm/TaskResult.ts +22 -0
  108. package/packages/core/src/swarm/WorkerPool.ts +236 -0
  109. package/packages/core/src/swarm/errors.ts +37 -0
  110. package/packages/core/src/swarm/index.ts +30 -0
  111. package/packages/core/src/swarm/presets/HiveLearnPreset.ts +99 -0
  112. package/packages/core/src/swarm/presets/ResearchPreset.ts +97 -0
  113. package/packages/core/src/swarm/presets/index.ts +4 -0
  114. package/packages/core/src/swarm/strategies/ParallelStrategy.ts +21 -0
  115. package/packages/core/src/swarm/strategies/PriorityStrategy.ts +46 -0
  116. package/packages/core/src/swarm/strategies/index.ts +3 -0
  117. package/packages/core/src/swarm/types.ts +164 -0
  118. package/packages/core/src/tools/ToolExecutor.ts +58 -0
  119. package/packages/core/src/tools/ToolRegistry.test.ts +98 -0
  120. package/packages/core/src/tools/ToolRegistry.ts +61 -0
  121. package/packages/core/src/tools/agents/get-available-models.ts +118 -0
  122. package/packages/core/src/tools/agents/index.ts +715 -0
  123. package/packages/core/src/tools/bridge-events.ts +26 -0
  124. package/packages/core/src/tools/canvas/index.ts +375 -0
  125. package/packages/core/src/tools/cli/index.ts +142 -0
  126. package/packages/core/src/tools/codebridge/index.ts +342 -0
  127. package/packages/core/src/tools/core/index.ts +476 -0
  128. package/packages/core/src/tools/cron/index.ts +626 -0
  129. package/packages/core/src/tools/filesystem/fs-delete.ts +78 -0
  130. package/packages/core/src/tools/filesystem/fs-edit.ts +106 -0
  131. package/packages/core/src/tools/filesystem/fs-exists.ts +63 -0
  132. package/packages/core/src/tools/filesystem/fs-glob.ts +108 -0
  133. package/packages/core/src/tools/filesystem/fs-list.ts +129 -0
  134. package/packages/core/src/tools/filesystem/fs-read.ts +72 -0
  135. package/packages/core/src/tools/filesystem/fs-write.ts +67 -0
  136. package/packages/core/src/tools/filesystem/index.ts +34 -0
  137. package/packages/core/src/tools/filesystem/workspace-guard.ts +62 -0
  138. package/packages/core/src/tools/index.ts +231 -0
  139. package/packages/core/src/tools/meeting/index.ts +363 -0
  140. package/packages/core/src/tools/office/index.ts +47 -0
  141. package/packages/core/src/tools/office/office-escribir-docx.ts +192 -0
  142. package/packages/core/src/tools/office/office-escribir-pdf.ts +172 -0
  143. package/packages/core/src/tools/office/office-escribir-pptx.ts +174 -0
  144. package/packages/core/src/tools/office/office-escribir-xlsx.ts +116 -0
  145. package/packages/core/src/tools/office/office-leer-docx.ts +93 -0
  146. package/packages/core/src/tools/office/office-leer-pdf.ts +114 -0
  147. package/packages/core/src/tools/office/office-leer-pptx.ts +136 -0
  148. package/packages/core/src/tools/office/office-leer-xlsx.ts +124 -0
  149. package/packages/core/src/tools/projects/index.ts +37 -0
  150. package/packages/core/src/tools/projects/project-create.ts +94 -0
  151. package/packages/core/src/tools/projects/project-done.ts +66 -0
  152. package/packages/core/src/tools/projects/project-fail.ts +66 -0
  153. package/packages/core/src/tools/projects/project-list.ts +96 -0
  154. package/packages/core/src/tools/projects/project-update.ts +72 -0
  155. package/packages/core/src/tools/projects/task-create.ts +68 -0
  156. package/packages/core/src/tools/projects/task-evaluate.ts +93 -0
  157. package/packages/core/src/tools/projects/task-update.ts +93 -0
  158. package/packages/core/src/tools/types.ts +39 -0
  159. package/packages/core/src/tools/voice/index.ts +104 -0
  160. package/packages/core/src/tools/web/browser-click.ts +78 -0
  161. package/packages/core/src/tools/web/browser-extract.ts +139 -0
  162. package/packages/core/src/tools/web/browser-navigate.ts +106 -0
  163. package/packages/core/src/tools/web/browser-screenshot.ts +87 -0
  164. package/packages/core/src/tools/web/browser-script.ts +88 -0
  165. package/packages/core/src/tools/web/browser-service.ts +554 -0
  166. package/packages/core/src/tools/web/browser-type.ts +101 -0
  167. package/packages/core/src/tools/web/browser-wait.ts +136 -0
  168. package/packages/core/src/tools/web/index.ts +41 -0
  169. package/packages/core/src/tools/web/web-fetch.ts +78 -0
  170. package/packages/core/src/tools/web/web-search.ts +123 -0
  171. package/packages/core/src/utils/benchmark.ts +80 -0
  172. package/packages/core/src/utils/crypto.ts +73 -0
  173. package/packages/core/src/utils/date.ts +42 -0
  174. package/packages/core/src/utils/index.ts +10 -0
  175. package/packages/core/src/utils/logger.ts +389 -0
  176. package/packages/core/src/utils/retry.ts +70 -0
  177. package/packages/core/src/utils/toon.ts +253 -0
  178. package/packages/core/src/voice/index.ts +656 -0
  179. package/test/setup-db.ts +216 -0
  180. package/tsconfig.json +39 -0
  181. package/src/agents.ts +0 -1
  182. package/src/canvas.ts +0 -1
  183. package/src/channels.ts +0 -1
  184. package/src/config.ts +0 -1
  185. package/src/events.ts +0 -1
  186. package/src/gateway.ts +0 -1
  187. package/src/index.ts +0 -304
  188. package/src/mcp.ts +0 -1
  189. package/src/multimodal.ts +0 -1
  190. package/src/scheduler.ts +0 -1
  191. package/src/security.ts +0 -1
  192. package/src/skills.ts +0 -1
  193. package/src/state.ts +0 -1
  194. package/src/storage.ts +0 -1
  195. package/src/tools.ts +0 -1
  196. package/src/tts.ts +0 -1
  197. package/src/types.ts +0 -82
  198. package/src/utils.ts +0 -1
  199. package/src/voice.ts +0 -1
@@ -0,0 +1,9 @@
1
+ # Code Owners
2
+ * @anomalyco @johpaz
3
+
4
+ # Reviewers
5
+ /.github/ @anomalyco
6
+ /docs/ @johpaz
7
+ /packages/agent/ @johpaz
8
+ /packages/scheduler/ @johpaz
9
+ /packages/events/ @johpaz
@@ -0,0 +1,89 @@
1
+ name: Publish to NPM
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+ workflow_dispatch:
8
+ inputs:
9
+ version:
10
+ description: 'Version (e.g., 0.0.15)'
11
+ required: true
12
+ type: string
13
+
14
+ permissions:
15
+ contents: write
16
+ id-token: write
17
+
18
+ jobs:
19
+ publish:
20
+ runs-on: ubuntu-latest
21
+ env:
22
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+
26
+ - name: Setup Bun
27
+ uses: oven-sh/setup-bun@v2
28
+ with:
29
+ bun-version: 1.3.13
30
+
31
+ - name: Install dependencies
32
+ run: bun install --frozen-lockfile
33
+
34
+ - name: Type check
35
+ run: bun run typecheck
36
+
37
+ - name: Run tests
38
+ run: bun test packages/core/src/ --timeout 30000
39
+
40
+ - name: Configure NPM token
41
+ run: |
42
+ if [ -z "$NPM_TOKEN" ]; then
43
+ echo "NPM_TOKEN secret is not set"
44
+ exit 1
45
+ fi
46
+ echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc
47
+ env:
48
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
49
+
50
+ - name: Publish to NPM
51
+ run: |
52
+ VERSION="${{ github.event.inputs.version || github.ref_name }}"
53
+ VERSION="${VERSION#v}"
54
+ echo "Publishing version: $VERSION"
55
+
56
+ # Sync version to root package.json
57
+ node -e "
58
+ const p=require('./package.json');
59
+ p.version='$VERSION';
60
+ delete p.private;
61
+ require('fs').writeFileSync('./package.json', JSON.stringify(p,null,2)+'\n')
62
+ "
63
+
64
+ # Sync version to workspace packages (for local consistency)
65
+ for dir in packages/core packages/cli; do
66
+ node -e "
67
+ const p=require('./$dir/package.json');
68
+ p.version='$VERSION';
69
+ require('fs').writeFileSync('./$dir/package.json', JSON.stringify(p,null,2)+'\n')
70
+ "
71
+ done
72
+
73
+ # Publish only the root package (workspace packages are NOT published separately)
74
+ npm publish --access public
75
+
76
+ # Restore private: true to root
77
+ node -e "
78
+ const p=require('./package.json');
79
+ p.private=true;
80
+ require('fs').writeFileSync('./package.json', JSON.stringify(p,null,2)+'\n')
81
+ "
82
+ env:
83
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
84
+
85
+ - name: Create GitHub Release
86
+ if: startsWith(github.ref, 'refs/tags/v')
87
+ env:
88
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
89
+ run: gh release create "${{ github.ref_name }}" --title "Release ${{ github.ref_name }}" --notes "See CHANGELOG.md for details." --draft=false
@@ -0,0 +1,102 @@
1
+ name: Version Bump
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ bump:
7
+ description: 'Type of bump (patch, minor, major)'
8
+ required: true
9
+ default: 'patch'
10
+ type: choice
11
+ options:
12
+ - patch
13
+ - minor
14
+ - major
15
+
16
+ jobs:
17
+ bump:
18
+ runs-on: ubuntu-latest
19
+ outputs:
20
+ new_version: ${{ steps.version.outputs.new_version }}
21
+ tag: ${{ steps.version.outputs.tag }}
22
+
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ with:
26
+ fetch-depth: 0
27
+
28
+ - name: Setup Bun
29
+ uses: oven-sh/setup-bun@v2
30
+
31
+ - name: Calculate new version
32
+ id: version
33
+ run: |
34
+ current=$(node -p "require('./package.json').version")
35
+ echo "Current version: $current"
36
+ IFS='.' read -ra parts <<< "$current"
37
+ major=${parts[0]}; minor=${parts[1]}; patch=${parts[2]}
38
+ case "${{ github.event.inputs.bump }}" in
39
+ major) major=$((major + 1)); minor=0; patch=0 ;;
40
+ minor) minor=$((minor + 1)); patch=0 ;;
41
+ patch) patch=$((patch + 1)) ;;
42
+ esac
43
+ new_version="$major.$minor.$patch"
44
+ echo "New version: $new_version"
45
+ echo "new_version=$new_version" >> $GITHUB_OUTPUT
46
+ echo "tag=v$new_version" >> $GITHUB_OUTPUT
47
+
48
+ - name: Sync version to all workspace packages
49
+ run: |
50
+ VERSION="${{ steps.version.outputs.new_version }}"
51
+
52
+ # Update root
53
+ node -e "
54
+ const p = require('./package.json');
55
+ p.version = '$VERSION';
56
+ require('fs').writeFileSync('./package.json', JSON.stringify(p, null, 2) + '\n');
57
+ "
58
+
59
+ # Update each workspace package
60
+ for pkg in packages/*/package.json; do
61
+ dir=$(dirname "$pkg")
62
+ node -e "
63
+ const p = require('./$dir/package.json');
64
+ p.version = '$VERSION';
65
+ require('fs').writeFileSync('./$dir/package.json', JSON.stringify(p, null, 2) + '\n');
66
+ "
67
+ done
68
+
69
+ - name: Update CHANGELOG
70
+ run: |
71
+ date=$(date +%Y-%m-%d)
72
+ echo "# ${{ steps.version.outputs.new_version }} ($date)" >> CHANGELOG.md
73
+ echo "" >> CHANGELOG.md
74
+ echo "## Changes" >> CHANGELOG.md
75
+ echo "- Version bump" >> CHANGELOG.md
76
+ echo "" >> CHANGELOG.md
77
+
78
+ - name: Create Pull Request
79
+ uses: peter-evans/create-pull-request@v6
80
+ with:
81
+ commit-message: "chore: bump version to ${{ steps.version.outputs.new_version }}"
82
+ branch: bump-version
83
+ delete-branch: true
84
+ title: "Bump version to ${{ steps.version.outputs.new_version }}"
85
+ body: |
86
+ Version bump to ${{ steps.version.outputs.new_version }} for all workspace packages.
87
+ labels: version-bump
88
+
89
+ tag:
90
+ needs: bump
91
+ runs-on: ubuntu-latest
92
+ if: github.event.inputs.bump == ''
93
+
94
+ steps:
95
+ - uses: actions/checkout@v4
96
+ with:
97
+ ref: bump-version
98
+
99
+ - name: Create Git Tag
100
+ run: |
101
+ git tag ${{ needs.bump.outputs.tag }}
102
+ git push origin ${{ needs.bump.outputs.tag }}
package/CHANGELOG.md ADDED
@@ -0,0 +1,38 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.0.10] - 2026-05-02
9
+
10
+ ### Added
11
+ - DAG Scheduler with parallel worker execution
12
+ - Tool selector with FTS5 full-text search
13
+ - Skill selector with semantic triggers
14
+ - Context compiler for agent execution
15
+ - Canvas (ACE) real-time visualization
16
+ - Multi-channel support (Slack, Discord, Telegram, WhatsApp)
17
+ - AgentBus for inter-agent communication
18
+ - SQLite storage with FTS5 built-in
19
+ - 130+ passing tests
20
+
21
+ ### Performance
22
+ - 3x faster than LangChain (Bun runtime)
23
+ - Parallel DAG execution (15x faster than sequential)
24
+ - Streaming TTFT benchmarks
25
+ - Worker metrics (12 tasks/sec throughput)
26
+
27
+ ### Documentation
28
+ - Complete API documentation in docs/
29
+ - README comparison with LangChain
30
+ - Benchmark documentation
31
+
32
+ ## [0.0.9] - 2026-01-01
33
+
34
+ ### Added
35
+ - Initial release
36
+ - Agent execution with LLM providers
37
+ - Basic tool and skill system
38
+ - Gateway server
package/README.md ADDED
@@ -0,0 +1,158 @@
1
+ # Hive SDK
2
+
3
+ <p align="center">
4
+ <img src="https://img.shields.io/badge/Bun-v1.3.13-000000?style=flat&logo=bun" alt="Bun">
5
+ <img src="https://img.shields.io/badge/TypeScript-6.0-blue?style=flat&logo=typescript">
6
+ <img src="https://img.shields.io/badge/License-MIT-green?style=flat">
7
+ </p>
8
+
9
+ Framework de agentes AI con Context Engineering, FTS5, ACE y Swarm — construido nativamente para Bun.
10
+
11
+ ## Paquetes
12
+
13
+ | Paquete | Descripción |
14
+ |---------|-------------|
15
+ | `@hive/core` | Core del framework: agente, tools, skills, MCP, storage, swarm, canvas, ACE |
16
+ | `@hive/cli` | CLI: `hive init`, `hive run`, `hive test`, `hive trace` |
17
+
18
+ ## Instalación
19
+
20
+ ```bash
21
+ git clone https://github.com/anomalyco/hive-sdk.git
22
+ cd hive-sdk
23
+ bun install
24
+ ```
25
+
26
+ ## Inicio Rápido
27
+
28
+ ```typescript
29
+ import { createAgent, defineTool } from "@hive/core";
30
+
31
+ const myTool = defineTool({
32
+ name: "saludar",
33
+ description: "Saluda a alguien",
34
+ execute: async (args: { nombre: string }) => `¡Hola ${args.nombre}!`,
35
+ });
36
+
37
+ const agent = await createAgent({
38
+ name: "asistente",
39
+ provider: "openai",
40
+ model: "gpt-4o-mini",
41
+ tools: [myTool],
42
+ });
43
+
44
+ const respuesta = await agent.run("Saluda a Juan");
45
+ console.log(respuesta);
46
+ ```
47
+
48
+ ## Crear un Swarm (DAG)
49
+
50
+ ```typescript
51
+ import { DAGScheduler, TaskGraph } from "@hive/core";
52
+
53
+ const graph = new TaskGraph([
54
+ { id: "fetch", agentId: "fetcher", taskDescription: "Obtener datos", deps: [] },
55
+ { id: "process", agentId: "processor", taskDescription: "Procesar", deps: ["fetch"] },
56
+ { id: "report", agentId: "reporter", taskDescription: "Reportar", deps: ["process"] },
57
+ ]);
58
+
59
+ const result = await new DAGScheduler().execute(graph);
60
+ ```
61
+
62
+ ## Estructura del Proyecto
63
+
64
+ ```
65
+ hive-sdk/
66
+ ├── packages/
67
+ │ ├── core/ # @hive/core
68
+ │ │ └── src/
69
+ │ │ ├── agent/ # AgentLoop, ContextCompiler, ConversationStore
70
+ │ │ │ ├── providers/ # LLM: OpenAI, Anthropic, Gemini, Ollama
71
+ │ │ │ └── selectors/ # FTS5: ToolSelector, SkillSelector, PlaybookSelector
72
+ │ │ ├── tools/ # ToolRegistry + 66 built-in tools
73
+ │ │ │ ├── filesystem/ web/ projects/ cron/ cli/ agents/
74
+ │ │ │ ├── canvas/ codebridge/ voice/ core/ office/ meeting/
75
+ │ │ │ ├── ToolRegistry.ts # defineTool()
76
+ │ │ │ └── ToolExecutor.ts
77
+ │ │ ├── skills/ # SkillLoader, defineSkill()
78
+ │ │ ├── swarm/ # DAGScheduler, TaskGraph, WorkerPool
79
+ │ │ │ ├── strategies/ # ParallelStrategy, PriorityStrategy
80
+ │ │ │ └── presets/ # HiveLearnPreset, ResearchPreset
81
+ │ │ ├── mcp/ # MCPClientManager, transports (SSE, WS)
82
+ │ │ ├── storage/ # SQLite (bun:sqlite) + FTS5
83
+ │ │ ├── ace/ # Tracer, Reflector, Curator
84
+ │ │ ├── canvas/ # CanvasManager + A2UI tools
85
+ │ │ ├── memory/ # Scratchpad
86
+ │ │ ├── ethics/ # EthicsGuard
87
+ │ │ ├── config/ # loadConfig, loadEnv
88
+ │ │ ├── utils/ # logger, toon, crypto, retry
89
+ │ │ ├── api/ # createAgent()
90
+ │ │ └── index.ts # Public API barrel
91
+ │ │
92
+ │ └── cli/ # @hive/cli
93
+ │ └── src/
94
+ │ ├── index.ts # Entry: hive {init,run,test,trace}
95
+ │ └── commands/
96
+ │ ├── init.ts # hive init
97
+ │ ├── run.ts # hive run
98
+ │ ├── test.ts # hive test
99
+ │ └── trace.ts # hive trace
100
+
101
+ ├── test/ # Test helpers
102
+ │ └── setup-db.ts # DB preload for tests
103
+
104
+ ├── docs/ # Documentación
105
+ ├── tsconfig.json
106
+ └── package.json
107
+ ```
108
+
109
+ ## API Pública
110
+
111
+ ```typescript
112
+ import {
113
+ createAgent, // Crear agente con configuración
114
+ defineTool, // Definir herramienta
115
+ defineSkill, // Definir skill
116
+ ToolRegistry, // Registro de herramientas
117
+ ToolExecutor, // Ejecutor de herramientas
118
+ AgentLoop, // Bucle principal del agente
119
+ runAgent, // Ejecutar agente (streaming)
120
+ runAgentIsolated, // Ejecutar agente aislado (workers)
121
+ DAGScheduler, // Orquestador DAG
122
+ TaskGraph, // Grafo de tareas
123
+ TaskNode, // Nodo del grafo
124
+ MCPClientManager, // Cliente MCP
125
+ EthicsGuard, // Guardián ético
126
+ Scratchpad, // Memoria temporal
127
+ SkillLoader, // Cargador de skills
128
+ initializeDatabase, // Inicializar BD
129
+ loadConfig, // Cargar configuración
130
+ logger, // Logger
131
+ } from "@hive/core";
132
+ ```
133
+
134
+ ## Testing
135
+
136
+ ```bash
137
+ # Todos los tests
138
+ bun test packages/core/src/
139
+
140
+ # Tests con timeout
141
+ bun test --timeout 30000
142
+
143
+ # Tests específicos
144
+ bun test packages/core/src/tools/ToolRegistry.test.ts
145
+ ```
146
+
147
+ ## Variables de Entorno
148
+
149
+ ```bash
150
+ HIVE_DATA_DIR=./data # Directorio de datos
151
+ OPENAI_API_KEY=sk-... # OpenAI
152
+ ANTHROPIC_API_KEY=sk-ant-... # Anthropic
153
+ LOG_LEVEL=info # debug | info | warn | error
154
+ ```
155
+
156
+ ## Licencia
157
+
158
+ MIT © 2024 Anomaly Co.