@sesamespace/hivemind 0.1.0
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/README.md +86 -0
- package/config/TEAM-CHARTER.md +87 -0
- package/config/default.toml +39 -0
- package/dist/__tests__/fleet-integration.test.d.ts +9 -0
- package/dist/__tests__/fleet-integration.test.d.ts.map +1 -0
- package/dist/__tests__/fleet-integration.test.js +201 -0
- package/dist/__tests__/fleet-integration.test.js.map +1 -0
- package/dist/__tests__/fleet.test.d.ts +7 -0
- package/dist/__tests__/fleet.test.d.ts.map +1 -0
- package/dist/__tests__/fleet.test.js +171 -0
- package/dist/__tests__/fleet.test.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +2 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +348 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/agent.d.ts +27 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +217 -0
- package/dist/agent.js.map +1 -0
- package/dist/commands/fleet.d.ts +13 -0
- package/dist/commands/fleet.d.ts.map +1 -0
- package/dist/commands/fleet.js +193 -0
- package/dist/commands/fleet.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +170 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/start.d.ts +2 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +39 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/config.d.ts +44 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +73 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +50 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +153 -0
- package/dist/context.js.map +1 -0
- package/dist/fleet/fleet-manager.d.ts +86 -0
- package/dist/fleet/fleet-manager.d.ts.map +1 -0
- package/dist/fleet/fleet-manager.js +298 -0
- package/dist/fleet/fleet-manager.js.map +1 -0
- package/dist/fleet/memory-sync.d.ts +91 -0
- package/dist/fleet/memory-sync.d.ts.map +1 -0
- package/dist/fleet/memory-sync.js +292 -0
- package/dist/fleet/memory-sync.js.map +1 -0
- package/dist/fleet/primary-client.d.ts +49 -0
- package/dist/fleet/primary-client.d.ts.map +1 -0
- package/dist/fleet/primary-client.js +222 -0
- package/dist/fleet/primary-client.js.map +1 -0
- package/dist/fleet/worker-protocol.d.ts +125 -0
- package/dist/fleet/worker-protocol.d.ts.map +1 -0
- package/dist/fleet/worker-protocol.js +27 -0
- package/dist/fleet/worker-protocol.js.map +1 -0
- package/dist/fleet/worker-server.d.ts +53 -0
- package/dist/fleet/worker-server.d.ts.map +1 -0
- package/dist/fleet/worker-server.js +191 -0
- package/dist/fleet/worker-server.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/llm-client.d.ts +24 -0
- package/dist/llm-client.d.ts.map +1 -0
- package/dist/llm-client.js +40 -0
- package/dist/llm-client.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +41 -0
- package/dist/main.js.map +1 -0
- package/dist/memory-client.d.ts +88 -0
- package/dist/memory-client.d.ts.map +1 -0
- package/dist/memory-client.js +185 -0
- package/dist/memory-client.js.map +1 -0
- package/dist/pipeline.d.ts +2 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +125 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/prompt.d.ts +6 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +75 -0
- package/dist/prompt.js.map +1 -0
- package/dist/sesame.d.ts +33 -0
- package/dist/sesame.d.ts.map +1 -0
- package/dist/sesame.js +67 -0
- package/dist/sesame.js.map +1 -0
- package/dist/start.d.ts +3 -0
- package/dist/start.d.ts.map +1 -0
- package/dist/start.js +20 -0
- package/dist/start.js.map +1 -0
- package/dist/task-engine.d.ts +32 -0
- package/dist/task-engine.d.ts.map +1 -0
- package/dist/task-engine.js +80 -0
- package/dist/task-engine.js.map +1 -0
- package/dist/worker.d.ts +73 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +279 -0
- package/dist/worker.js.map +1 -0
- package/install.sh +186 -0
- package/package.json +36 -0
- package/packages/memory/Cargo.lock +6480 -0
- package/packages/memory/Cargo.toml +21 -0
- package/packages/memory/src/src/context.rs +179 -0
- package/packages/memory/src/src/embeddings.rs +51 -0
- package/packages/memory/src/src/main.rs +626 -0
- package/packages/memory/src/src/promotion.rs +637 -0
- package/packages/memory/src/src/scoring.rs +131 -0
- package/packages/memory/src/src/store.rs +460 -0
- package/packages/memory/src/src/tasks.rs +321 -0
package/install.sh
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Hivemind — One-shot install for macOS (Apple Silicon)
|
|
5
|
+
# Usage: git clone <repo> && cd hivemind && ./install.sh
|
|
6
|
+
|
|
7
|
+
BOLD='\033[1m'
|
|
8
|
+
GREEN='\033[0;32m'
|
|
9
|
+
YELLOW='\033[0;33m'
|
|
10
|
+
RED='\033[0;31m'
|
|
11
|
+
NC='\033[0m'
|
|
12
|
+
|
|
13
|
+
info() { echo -e "${GREEN}[✓]${NC} $1"; }
|
|
14
|
+
warn() { echo -e "${YELLOW}[!]${NC} $1"; }
|
|
15
|
+
err() { echo -e "${RED}[✗]${NC} $1"; }
|
|
16
|
+
step() { echo -e "\n${BOLD}→ $1${NC}"; }
|
|
17
|
+
|
|
18
|
+
echo -e "${BOLD}"
|
|
19
|
+
echo " ╦ ╦╦╦ ╦╔═╗╔╦╗╦╔╗╔╔╦╗"
|
|
20
|
+
echo " ╠═╣║╚╗╔╝║╣ ║║║║║║║ ║║"
|
|
21
|
+
echo " ╩ ╩╩ ╚╝ ╚═╝╩ ╩╩╝╚╝═╩╝"
|
|
22
|
+
echo -e "${NC}"
|
|
23
|
+
echo " Agent Runtime Installer"
|
|
24
|
+
echo ""
|
|
25
|
+
|
|
26
|
+
# --- 1. System dependencies ---
|
|
27
|
+
step "Checking system dependencies"
|
|
28
|
+
|
|
29
|
+
# Homebrew
|
|
30
|
+
if ! command -v brew &>/dev/null; then
|
|
31
|
+
warn "Homebrew not found — installing..."
|
|
32
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
33
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
34
|
+
else
|
|
35
|
+
info "Homebrew found"
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
# Node.js
|
|
39
|
+
if ! command -v node &>/dev/null; then
|
|
40
|
+
warn "Node.js not found — installing via brew..."
|
|
41
|
+
brew install node
|
|
42
|
+
else
|
|
43
|
+
NODE_VER=$(node -v | sed 's/v//' | cut -d. -f1)
|
|
44
|
+
if [ "$NODE_VER" -lt 20 ]; then
|
|
45
|
+
warn "Node.js v${NODE_VER} too old (need ≥20) — upgrading..."
|
|
46
|
+
brew upgrade node
|
|
47
|
+
else
|
|
48
|
+
info "Node.js $(node -v)"
|
|
49
|
+
fi
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# pnpm
|
|
53
|
+
if ! command -v pnpm &>/dev/null; then
|
|
54
|
+
warn "pnpm not found — installing..."
|
|
55
|
+
npm install -g pnpm
|
|
56
|
+
else
|
|
57
|
+
info "pnpm $(pnpm -v)"
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Rust
|
|
61
|
+
if ! command -v cargo &>/dev/null; then
|
|
62
|
+
warn "Rust not found — installing via rustup..."
|
|
63
|
+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
64
|
+
source "$HOME/.cargo/env"
|
|
65
|
+
else
|
|
66
|
+
info "Rust $(rustc --version | awk '{print $2}')"
|
|
67
|
+
fi
|
|
68
|
+
|
|
69
|
+
# Ollama
|
|
70
|
+
if ! command -v ollama &>/dev/null; then
|
|
71
|
+
warn "Ollama not found — installing via brew..."
|
|
72
|
+
brew install ollama
|
|
73
|
+
else
|
|
74
|
+
info "Ollama found"
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
# --- 2. Pull embedding model ---
|
|
78
|
+
step "Setting up Ollama embedding model"
|
|
79
|
+
|
|
80
|
+
# Start Ollama if not running
|
|
81
|
+
if ! curl -s http://localhost:11434/api/tags &>/dev/null; then
|
|
82
|
+
warn "Ollama not running — starting..."
|
|
83
|
+
ollama serve &>/dev/null &
|
|
84
|
+
sleep 3
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
if ollama list 2>/dev/null | grep -q "nomic-embed-text"; then
|
|
88
|
+
info "nomic-embed-text model ready"
|
|
89
|
+
else
|
|
90
|
+
warn "Pulling nomic-embed-text (274MB)..."
|
|
91
|
+
ollama pull nomic-embed-text
|
|
92
|
+
info "nomic-embed-text ready"
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
# --- 3. Build TypeScript packages ---
|
|
96
|
+
step "Installing Node dependencies"
|
|
97
|
+
pnpm install
|
|
98
|
+
info "Dependencies installed"
|
|
99
|
+
|
|
100
|
+
step "Building TypeScript"
|
|
101
|
+
pnpm build
|
|
102
|
+
info "TypeScript build complete"
|
|
103
|
+
|
|
104
|
+
# --- 4. Build Rust memory daemon ---
|
|
105
|
+
step "Building memory daemon (Rust — this takes ~60s first time)"
|
|
106
|
+
cd packages/memory
|
|
107
|
+
cargo build --release 2>&1 | tail -3
|
|
108
|
+
cd ../..
|
|
109
|
+
info "Memory daemon built"
|
|
110
|
+
|
|
111
|
+
# --- 5. Configuration via Sesame ---
|
|
112
|
+
step "Configuring agent via Sesame"
|
|
113
|
+
|
|
114
|
+
if [ -f ".env" ]; then
|
|
115
|
+
info "Existing .env found — keeping it"
|
|
116
|
+
else
|
|
117
|
+
SESAME_KEY="${1:-${SESAME_API_KEY:-}}"
|
|
118
|
+
if [ -z "$SESAME_KEY" ]; then
|
|
119
|
+
read -rp " Sesame API key: " SESAME_KEY
|
|
120
|
+
fi
|
|
121
|
+
node packages/cli/dist/main.js init "$SESAME_KEY"
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
# --- 6. Create launch script ---
|
|
125
|
+
step "Creating launch script"
|
|
126
|
+
|
|
127
|
+
cat > start.sh <<'LAUNCH'
|
|
128
|
+
#!/usr/bin/env bash
|
|
129
|
+
set -euo pipefail
|
|
130
|
+
|
|
131
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
132
|
+
cd "$SCRIPT_DIR"
|
|
133
|
+
|
|
134
|
+
# Load env
|
|
135
|
+
if [ -f .env ]; then
|
|
136
|
+
set -a; source .env; set +a
|
|
137
|
+
fi
|
|
138
|
+
|
|
139
|
+
# Start memory daemon if not running
|
|
140
|
+
if ! curl -s http://localhost:3434/health &>/dev/null; then
|
|
141
|
+
echo "[hivemind] Starting memory daemon..."
|
|
142
|
+
nohup ./packages/memory/target/release/hivemind-memory > /tmp/hivemind-memory.log 2>&1 &
|
|
143
|
+
sleep 2
|
|
144
|
+
if curl -s http://localhost:3434/health &>/dev/null; then
|
|
145
|
+
echo "[hivemind] Memory daemon ready"
|
|
146
|
+
else
|
|
147
|
+
echo "[hivemind] WARNING: Memory daemon failed to start"
|
|
148
|
+
fi
|
|
149
|
+
else
|
|
150
|
+
echo "[hivemind] Memory daemon already running"
|
|
151
|
+
fi
|
|
152
|
+
|
|
153
|
+
# Start Ollama if not running
|
|
154
|
+
if ! curl -s http://localhost:11434/api/tags &>/dev/null; then
|
|
155
|
+
echo "[hivemind] Starting Ollama..."
|
|
156
|
+
ollama serve &>/dev/null &
|
|
157
|
+
sleep 3
|
|
158
|
+
fi
|
|
159
|
+
|
|
160
|
+
# Start agent (auto-restart on crash)
|
|
161
|
+
echo "[hivemind] Starting agent..."
|
|
162
|
+
while true; do
|
|
163
|
+
node packages/cli/dist/main.js start --config config/default.toml
|
|
164
|
+
EXIT_CODE=$?
|
|
165
|
+
echo "[hivemind] Agent exited with code $EXIT_CODE — restarting in 5s..."
|
|
166
|
+
sleep 5
|
|
167
|
+
done
|
|
168
|
+
LAUNCH
|
|
169
|
+
|
|
170
|
+
chmod +x start.sh
|
|
171
|
+
info "Created start.sh (with auto-restart)"
|
|
172
|
+
|
|
173
|
+
# --- Done ---
|
|
174
|
+
echo ""
|
|
175
|
+
echo -e "${GREEN}${BOLD} ✓ Hivemind installed successfully!${NC}"
|
|
176
|
+
echo ""
|
|
177
|
+
echo " To start the agent:"
|
|
178
|
+
echo " ./start.sh"
|
|
179
|
+
echo ""
|
|
180
|
+
echo " To start in background:"
|
|
181
|
+
echo " nohup ./start.sh > /tmp/hivemind.log 2>&1 &"
|
|
182
|
+
echo ""
|
|
183
|
+
echo " Logs:"
|
|
184
|
+
echo " Agent: stdout (or /tmp/hivemind.log)"
|
|
185
|
+
echo " Memory: /tmp/hivemind-memory.log"
|
|
186
|
+
echo ""
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sesamespace/hivemind",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Cognitive architecture for AI agents with multi-layered memory",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"hivemind": "dist/main.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist/",
|
|
11
|
+
"config/",
|
|
12
|
+
"packages/memory/",
|
|
13
|
+
"install.sh",
|
|
14
|
+
"README.md"
|
|
15
|
+
],
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=20.0.0"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@iarna/toml": "^2.2.5",
|
|
21
|
+
"@sesamespace/sdk": "^0.1.6",
|
|
22
|
+
"ws": "^8.18.0"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"hivemind",
|
|
26
|
+
"ai-agent",
|
|
27
|
+
"memory",
|
|
28
|
+
"sesame",
|
|
29
|
+
"cognitive-architecture"
|
|
30
|
+
],
|
|
31
|
+
"license": "UNLICENSED",
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/baileydavis2026/hivemind"
|
|
35
|
+
}
|
|
36
|
+
}
|