@johpaz/hive-sdk 0.0.14 → 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.
- package/.github/CODEOWNERS +9 -0
- package/.github/workflows/publish.yml +89 -0
- package/.github/workflows/version-bump.yml +102 -0
- package/CHANGELOG.md +38 -0
- package/README.md +158 -0
- package/bun.lock +543 -0
- package/bunfig.toml +7 -0
- package/docs/API-AGENTS.md +316 -0
- package/docs/API-CONTEXT-COMPILER.md +252 -0
- package/docs/API-DAG-SCHEDULER.md +273 -0
- package/docs/API-TOOLS-SKILLS-CHANNELS.md +293 -0
- package/docs/API-WORKERS-EVENTS.md +152 -0
- package/docs/INDEX.md +141 -0
- package/docs/README.md +68 -0
- package/package.json +54 -105
- package/packages/cli/package.json +17 -0
- package/packages/cli/src/commands/init.ts +56 -0
- package/packages/cli/src/commands/run.ts +45 -0
- package/packages/cli/src/commands/test.ts +42 -0
- package/packages/cli/src/commands/trace.ts +55 -0
- package/packages/cli/src/index.ts +43 -0
- package/packages/core/package.json +58 -0
- package/packages/core/src/ace/Curator.ts +158 -0
- package/packages/core/src/ace/Reflector.ts +200 -0
- package/packages/core/src/ace/Tracer.ts +100 -0
- package/packages/core/src/ace/index.ts +4 -0
- package/packages/core/src/agent/AgentRunner.ts +699 -0
- package/packages/core/src/agent/Compaction.ts +221 -0
- package/packages/core/src/agent/ContextCompiler.ts +567 -0
- package/packages/core/src/agent/ContextGuard.ts +91 -0
- package/packages/core/src/agent/ConversationStore.ts +244 -0
- package/packages/core/src/agent/Hooks.ts +166 -0
- package/packages/core/src/agent/NativeTools.ts +31 -0
- package/packages/core/src/agent/PromptBuilder.ts +169 -0
- package/packages/core/src/agent/Service.ts +267 -0
- package/packages/core/src/agent/StuckLoop.ts +133 -0
- package/packages/core/src/agent/index.ts +12 -0
- package/packages/core/src/agent/providers/LLMClient.ts +149 -0
- package/packages/core/src/agent/providers/anthropic.ts +212 -0
- package/packages/core/src/agent/providers/gemini.ts +215 -0
- package/packages/core/src/agent/providers/index.ts +199 -0
- package/packages/core/src/agent/providers/interface.ts +195 -0
- package/packages/core/src/agent/providers/ollama.ts +175 -0
- package/packages/core/src/agent/providers/openai-compat.ts +231 -0
- package/packages/core/src/agent/providers.ts +1 -0
- package/packages/core/src/agent/selectors/PlaybookSelector.ts +147 -0
- package/packages/core/src/agent/selectors/SkillSelector.ts +478 -0
- package/packages/core/src/agent/selectors/ToolSelector.ts +577 -0
- package/packages/core/src/agent/selectors/index.ts +6 -0
- package/packages/core/src/api/createAgent.test.ts +48 -0
- package/packages/core/src/api/createAgent.ts +122 -0
- package/packages/core/src/api/index.ts +2 -0
- package/packages/core/src/canvas/CanvasManager.ts +390 -0
- package/packages/core/src/canvas/a2ui-tools.ts +255 -0
- package/packages/core/src/canvas/canvas-tools.ts +448 -0
- package/packages/core/src/canvas/emitter.ts +149 -0
- package/packages/core/src/canvas/index.ts +6 -0
- package/packages/core/src/config/index.ts +2 -0
- package/packages/core/src/config/loader.ts +554 -0
- package/packages/core/src/ethics/EthicsGuard.test.ts +54 -0
- package/packages/core/src/ethics/EthicsGuard.ts +66 -0
- package/packages/core/src/ethics/index.ts +2 -0
- package/packages/core/src/gateway/channel-notify.test.ts +14 -0
- package/packages/core/src/gateway/channel-notify.ts +12 -0
- package/packages/core/src/gateway/index.ts +1 -0
- package/packages/core/src/index.ts +37 -0
- package/packages/core/src/mcp/MCPClient.ts +439 -0
- package/packages/core/src/mcp/MCPToolAdapter.ts +176 -0
- package/packages/core/src/mcp/config.ts +13 -0
- package/packages/core/src/mcp/hot-reload.ts +147 -0
- package/packages/core/src/mcp/index.ts +11 -0
- package/packages/core/src/mcp/logger.ts +42 -0
- package/packages/core/src/mcp/singleton.ts +21 -0
- package/packages/core/src/mcp/transports/index.ts +67 -0
- package/packages/core/src/mcp/transports/sse.ts +241 -0
- package/packages/core/src/mcp/transports/websocket.ts +159 -0
- package/packages/core/src/memory/Scratchpad.test.ts +47 -0
- package/packages/core/src/memory/Scratchpad.ts +37 -0
- package/packages/core/src/memory/Storage.ts +6 -0
- package/packages/core/src/memory/index.ts +2 -0
- package/packages/core/src/multimodal/VisionService.ts +293 -0
- package/packages/core/src/multimodal/index.ts +2 -0
- package/packages/core/src/multimodal/types.ts +28 -0
- package/packages/core/src/security/Pairing.ts +250 -0
- package/packages/core/src/security/RateLimit.ts +270 -0
- package/packages/core/src/security/index.ts +4 -0
- package/packages/core/src/skills/SkillLoader.ts +388 -0
- package/packages/core/src/skills/bundled-data.generated.ts +3332 -0
- package/packages/core/src/skills/defineSkill.ts +18 -0
- package/packages/core/src/skills/index.ts +4 -0
- package/packages/core/src/state/index.ts +2 -0
- package/packages/core/src/state/store.ts +312 -0
- package/packages/core/src/storage/SQLiteStorage.ts +407 -0
- package/packages/core/src/storage/crypto.ts +101 -0
- package/packages/core/src/storage/index.ts +10 -0
- package/packages/core/src/storage/onboarding.ts +1603 -0
- package/packages/core/src/storage/schema.ts +689 -0
- package/packages/core/src/storage/seed.ts +740 -0
- package/packages/core/src/storage/usage.ts +374 -0
- package/packages/core/src/swarm/AgentBus.ts +460 -0
- package/packages/core/src/swarm/AgentExecutor.ts +53 -0
- package/packages/core/src/swarm/Coordinator.ts +251 -0
- package/packages/core/src/swarm/EventBridge.ts +122 -0
- package/packages/core/src/swarm/EventBus.ts +169 -0
- package/packages/core/src/swarm/TaskGraph.ts +192 -0
- package/packages/core/src/swarm/TaskNode.ts +97 -0
- package/packages/core/src/swarm/TaskResult.ts +22 -0
- package/packages/core/src/swarm/WorkerPool.ts +236 -0
- package/packages/core/src/swarm/errors.ts +37 -0
- package/packages/core/src/swarm/index.ts +30 -0
- package/packages/core/src/swarm/presets/HiveLearnPreset.ts +99 -0
- package/packages/core/src/swarm/presets/ResearchPreset.ts +97 -0
- package/packages/core/src/swarm/presets/index.ts +4 -0
- package/packages/core/src/swarm/strategies/ParallelStrategy.ts +21 -0
- package/packages/core/src/swarm/strategies/PriorityStrategy.ts +46 -0
- package/packages/core/src/swarm/strategies/index.ts +3 -0
- package/packages/core/src/swarm/types.ts +164 -0
- package/packages/core/src/tools/ToolExecutor.ts +58 -0
- package/packages/core/src/tools/ToolRegistry.test.ts +98 -0
- package/packages/core/src/tools/ToolRegistry.ts +61 -0
- package/packages/core/src/tools/agents/get-available-models.ts +118 -0
- package/packages/core/src/tools/agents/index.ts +715 -0
- package/packages/core/src/tools/bridge-events.ts +26 -0
- package/packages/core/src/tools/canvas/index.ts +375 -0
- package/packages/core/src/tools/cli/index.ts +142 -0
- package/packages/core/src/tools/codebridge/index.ts +342 -0
- package/packages/core/src/tools/core/index.ts +476 -0
- package/packages/core/src/tools/cron/index.ts +626 -0
- package/packages/core/src/tools/filesystem/fs-delete.ts +78 -0
- package/packages/core/src/tools/filesystem/fs-edit.ts +106 -0
- package/packages/core/src/tools/filesystem/fs-exists.ts +63 -0
- package/packages/core/src/tools/filesystem/fs-glob.ts +108 -0
- package/packages/core/src/tools/filesystem/fs-list.ts +129 -0
- package/packages/core/src/tools/filesystem/fs-read.ts +72 -0
- package/packages/core/src/tools/filesystem/fs-write.ts +67 -0
- package/packages/core/src/tools/filesystem/index.ts +34 -0
- package/packages/core/src/tools/filesystem/workspace-guard.ts +62 -0
- package/packages/core/src/tools/index.ts +231 -0
- package/packages/core/src/tools/meeting/index.ts +363 -0
- package/packages/core/src/tools/office/index.ts +47 -0
- package/packages/core/src/tools/office/office-escribir-docx.ts +192 -0
- package/packages/core/src/tools/office/office-escribir-pdf.ts +172 -0
- package/packages/core/src/tools/office/office-escribir-pptx.ts +174 -0
- package/packages/core/src/tools/office/office-escribir-xlsx.ts +116 -0
- package/packages/core/src/tools/office/office-leer-docx.ts +93 -0
- package/packages/core/src/tools/office/office-leer-pdf.ts +114 -0
- package/packages/core/src/tools/office/office-leer-pptx.ts +136 -0
- package/packages/core/src/tools/office/office-leer-xlsx.ts +124 -0
- package/packages/core/src/tools/projects/index.ts +37 -0
- package/packages/core/src/tools/projects/project-create.ts +94 -0
- package/packages/core/src/tools/projects/project-done.ts +66 -0
- package/packages/core/src/tools/projects/project-fail.ts +66 -0
- package/packages/core/src/tools/projects/project-list.ts +96 -0
- package/packages/core/src/tools/projects/project-update.ts +72 -0
- package/packages/core/src/tools/projects/task-create.ts +68 -0
- package/packages/core/src/tools/projects/task-evaluate.ts +93 -0
- package/packages/core/src/tools/projects/task-update.ts +93 -0
- package/packages/core/src/tools/types.ts +39 -0
- package/packages/core/src/tools/voice/index.ts +104 -0
- package/packages/core/src/tools/web/browser-click.ts +78 -0
- package/packages/core/src/tools/web/browser-extract.ts +139 -0
- package/packages/core/src/tools/web/browser-navigate.ts +106 -0
- package/packages/core/src/tools/web/browser-screenshot.ts +87 -0
- package/packages/core/src/tools/web/browser-script.ts +88 -0
- package/packages/core/src/tools/web/browser-service.ts +554 -0
- package/packages/core/src/tools/web/browser-type.ts +101 -0
- package/packages/core/src/tools/web/browser-wait.ts +136 -0
- package/packages/core/src/tools/web/index.ts +41 -0
- package/packages/core/src/tools/web/web-fetch.ts +78 -0
- package/packages/core/src/tools/web/web-search.ts +123 -0
- package/packages/core/src/utils/benchmark.ts +80 -0
- package/packages/core/src/utils/crypto.ts +73 -0
- package/packages/core/src/utils/date.ts +42 -0
- package/packages/core/src/utils/index.ts +10 -0
- package/packages/core/src/utils/logger.ts +389 -0
- package/packages/core/src/utils/retry.ts +70 -0
- package/packages/core/src/utils/toon.ts +253 -0
- package/packages/core/src/voice/index.ts +656 -0
- package/test/setup-db.ts +216 -0
- package/tsconfig.json +39 -0
- package/src/agents.ts +0 -1
- package/src/canvas.ts +0 -1
- package/src/channels.ts +0 -1
- package/src/config.ts +0 -1
- package/src/events.ts +0 -1
- package/src/gateway.ts +0 -1
- package/src/index.ts +0 -304
- package/src/mcp.ts +0 -1
- package/src/multimodal.ts +0 -1
- package/src/scheduler.ts +0 -1
- package/src/security.ts +0 -1
- package/src/skills.ts +0 -1
- package/src/state.ts +0 -1
- package/src/storage.ts +0 -1
- package/src/tools.ts +0 -1
- package/src/tts.ts +0 -1
- package/src/types.ts +0 -82
- package/src/utils.ts +0 -1
- package/src/voice.ts +0 -1
|
@@ -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.
|