@johpaz/hive-sdk 0.0.15 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/README.md +179 -57
  3. package/docs/API-AGENTS.md +9 -9
  4. package/docs/API-CONTEXT-COMPILER.md +13 -13
  5. package/docs/API-DAG-SCHEDULER.md +8 -8
  6. package/docs/API-TOOLS-SKILLS-CHANNELS.md +150 -93
  7. package/docs/API-WORKERS-EVENTS.md +206 -59
  8. package/docs/INDEX.md +99 -50
  9. package/docs/README.md +117 -24
  10. package/docs/TEMPLATE-HIVE-APP.md +360 -0
  11. package/package.json +13 -6
  12. package/packages/cli/bin/hive +2 -0
  13. package/packages/cli/src/commands/add-skill.ts +42 -0
  14. package/packages/cli/src/commands/add-tool.ts +45 -0
  15. package/packages/cli/src/commands/add-worker.ts +49 -0
  16. package/packages/cli/src/commands/create-app-utils.ts +32 -0
  17. package/packages/cli/src/commands/create-app.test.ts +151 -0
  18. package/packages/cli/src/commands/create-app.ts +35 -0
  19. package/packages/cli/src/index.ts +21 -5
  20. package/packages/cli/templates/hive-app/.env.example +17 -0
  21. package/packages/cli/templates/hive-app/docker-compose.yml +20 -0
  22. package/packages/cli/templates/hive-app/hive.config.ts +19 -0
  23. package/packages/cli/templates/hive-app/package.json +16 -0
  24. package/packages/cli/templates/hive-app/src/agents/coordinator.ts +9 -0
  25. package/packages/cli/templates/hive-app/src/main.ts +56 -0
  26. package/packages/core/src/auth/auth.ts +108 -0
  27. package/packages/core/src/auth/index.ts +1 -0
  28. package/packages/core/src/canvas/canvas.test.ts +32 -0
  29. package/packages/core/src/canvas/emitter.ts +1 -1
  30. package/packages/core/src/canvas/index.ts +3 -6
  31. package/packages/core/src/channels/base.ts +154 -0
  32. package/packages/core/src/channels/channels.test.ts +18 -0
  33. package/packages/core/src/channels/discord.ts +273 -0
  34. package/packages/core/src/channels/index.ts +7 -0
  35. package/packages/core/src/channels/manager.ts +450 -0
  36. package/packages/core/src/channels/slack.ts +323 -0
  37. package/packages/core/src/channels/telegram.ts +612 -0
  38. package/packages/core/src/channels/webchat.ts +139 -0
  39. package/packages/core/src/channels/whatsapp.ts +548 -0
  40. package/packages/core/src/events/agent-bus.ts +460 -0
  41. package/packages/core/src/events/event-bus.ts +169 -0
  42. package/packages/core/src/gateway/channel-notify.ts +32 -7
  43. package/packages/core/src/gateway/gateway.test.ts +38 -0
  44. package/packages/core/src/gateway/index.ts +2 -1
  45. package/packages/core/src/gateway/server.ts +139 -0
  46. package/packages/core/src/heartbeat/index.ts +157 -0
  47. package/packages/core/src/index.ts +44 -0
  48. package/packages/core/src/multimodal/index.ts +2 -2
  49. package/packages/core/src/multimodal/vision-service.ts +283 -0
  50. package/packages/core/src/plugins/api.ts +128 -0
  51. package/packages/core/src/plugins/index.ts +2 -0
  52. package/packages/core/src/plugins/loader.ts +365 -0
  53. package/packages/core/src/resilience/circuit-breaker.ts +225 -0
  54. package/packages/core/src/scheduler/CronScheduler.ts +699 -0
  55. package/packages/core/src/scheduler/dag/AgentExecutor.ts +53 -0
  56. package/packages/core/src/scheduler/dag/DAGScheduler.ts +250 -0
  57. package/packages/core/src/scheduler/dag/EventBridge.ts +122 -0
  58. package/packages/core/src/scheduler/dag/TaskGraph.ts +192 -0
  59. package/packages/core/src/scheduler/dag/TaskNode.ts +97 -0
  60. package/packages/core/src/scheduler/dag/TaskResult.ts +22 -0
  61. package/packages/core/src/scheduler/dag/errors.ts +37 -0
  62. package/packages/core/src/scheduler/dag/index.ts +26 -0
  63. package/packages/core/src/scheduler/dag/presets/ResearchPreset.ts +97 -0
  64. package/packages/core/src/scheduler/dag/strategies/ParallelStrategy.ts +21 -0
  65. package/packages/core/src/scheduler/dag/strategies/PriorityStrategy.ts +46 -0
  66. package/packages/core/src/scheduler/index.ts +22 -0
  67. package/packages/core/src/scheduler/integration.ts +237 -0
  68. package/packages/core/src/scheduler/scheduler.test.ts +19 -0
  69. package/packages/core/src/scheduler/types.ts +164 -0
  70. package/packages/core/src/security/google-chat.ts +269 -0
  71. package/packages/core/src/security/index.ts +192 -4
  72. package/packages/core/src/security/rate-limit.ts +270 -0
  73. package/packages/core/src/security/signal.ts +321 -0
  74. package/packages/core/src/storage/crypto.ts +198 -66
  75. package/packages/core/src/storage/storage.test.ts +37 -0
  76. package/packages/core/src/swarm/swarm.test.ts +24 -0
  77. package/packages/core/src/tool-runtime/index.ts +522 -0
  78. package/packages/core/src/tool-runtime/tool-runtime.test.ts +91 -0
  79. package/packages/core/src/tool-runtime/tool-worker.ts +125 -0
  80. package/packages/core/src/voice/index.ts +5 -18
  81. package/packages/core/src/workers/WorkerPool.ts +167 -0
  82. package/packages/core/src/workers/agent.worker.ts +68 -0
  83. package/packages/core/src/workers/createWorker.ts +144 -0
  84. package/packages/core/src/workers/index.ts +5 -0
  85. package/packages/core/src/workers/workers.test.ts +48 -0
  86. package/test/setup-db.ts +2 -2
  87. package/tsconfig.json +2 -1
  88. package/.github/CODEOWNERS +0 -9
  89. package/.github/workflows/publish.yml +0 -89
  90. package/.github/workflows/version-bump.yml +0 -102
  91. package/bun.lock +0 -543
  92. package/bunfig.toml +0 -7
  93. package/packages/core/src/agent/providers.ts +0 -1
  94. package/packages/core/src/gateway/channel-notify.test.ts +0 -14
@@ -1,89 +0,0 @@
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
@@ -1,102 +0,0 @@
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 }}