@blackms/aistack 1.0.9 → 1.0.11
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 +255 -210
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,62 +2,124 @@
|
|
|
2
2
|
|
|
3
3
|
# aistack
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Multi-Agent Orchestration for Claude Code
|
|
6
6
|
|
|
7
7
|
[](https://github.com/blackms/aistack/actions/workflows/ci.yml)
|
|
8
|
+
[](https://codecov.io/gh/blackms/aistack)
|
|
8
9
|
[](https://www.npmjs.com/package/@blackms/aistack)
|
|
9
10
|
[](https://www.npmjs.com/package/@blackms/aistack)
|
|
10
|
-
[](https://bundlephobia.com/package/@blackms/aistack)
|
|
11
|
-
[](https://codecov.io/gh/blackms/aistack)
|
|
12
11
|
[](LICENSE)
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
<br/>
|
|
14
|
+
|
|
15
|
+
**Production-ready agent orchestration with persistent memory and MCP integration.**
|
|
17
16
|
|
|
18
17
|
<br/>
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
[Get Started](#-quick-start) · [Architecture](#-architecture) · [API Reference](#-mcp-tools) · [Documentation](./docs)
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
<br/>
|
|
23
22
|
|
|
24
23
|
</div>
|
|
25
24
|
|
|
26
25
|
---
|
|
27
26
|
|
|
28
|
-
##
|
|
27
|
+
## Why aistack?
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
Coordinate specialized AI agents through Claude Code with persistent context, hierarchical task management, and seamless extensibility.
|
|
31
30
|
|
|
32
31
|
```
|
|
33
|
-
7 agents
|
|
32
|
+
7 agents · 30 MCP tools · 3 LLM providers · SQLite + FTS5 · Plugin system
|
|
34
33
|
```
|
|
35
34
|
|
|
36
35
|
---
|
|
37
36
|
|
|
38
|
-
##
|
|
37
|
+
## Tech Stack
|
|
38
|
+
|
|
39
|
+
<table>
|
|
40
|
+
<tr>
|
|
41
|
+
<td align="center" width="96">
|
|
42
|
+
<img src="https://cdn.simpleicons.org/nodedotjs/339933" width="48" height="48" alt="Node.js" />
|
|
43
|
+
<br/>Node.js 20+
|
|
44
|
+
</td>
|
|
45
|
+
<td align="center" width="96">
|
|
46
|
+
<img src="https://cdn.simpleicons.org/typescript/3178C6" width="48" height="48" alt="TypeScript" />
|
|
47
|
+
<br/>TypeScript
|
|
48
|
+
</td>
|
|
49
|
+
<td align="center" width="96">
|
|
50
|
+
<img src="https://cdn.simpleicons.org/sqlite/003B57" width="48" height="48" alt="SQLite" />
|
|
51
|
+
<br/>SQLite
|
|
52
|
+
</td>
|
|
53
|
+
<td align="center" width="96">
|
|
54
|
+
<img src="https://cdn.simpleicons.org/anthropic/191919" width="48" height="48" alt="Anthropic" />
|
|
55
|
+
<br/>Anthropic
|
|
56
|
+
</td>
|
|
57
|
+
<td align="center" width="96">
|
|
58
|
+
<img src="https://cdn.simpleicons.org/openai/412991" width="48" height="48" alt="OpenAI" />
|
|
59
|
+
<br/>OpenAI
|
|
60
|
+
</td>
|
|
61
|
+
<td align="center" width="96">
|
|
62
|
+
<img src="https://cdn.simpleicons.org/ollama/000000" width="48" height="48" alt="Ollama" />
|
|
63
|
+
<br/>Ollama
|
|
64
|
+
</td>
|
|
65
|
+
</tr>
|
|
66
|
+
</table>
|
|
39
67
|
|
|
40
|
-
|
|
41
|
-
npm install @blackms/aistack
|
|
42
|
-
```
|
|
68
|
+
---
|
|
43
69
|
|
|
44
|
-
|
|
70
|
+
## Features
|
|
71
|
+
|
|
72
|
+
| Feature | Description |
|
|
73
|
+
|---------|-------------|
|
|
74
|
+
| **Specialized Agents** | 7 built-in agent types: coder, researcher, tester, reviewer, architect, coordinator, analyst |
|
|
75
|
+
| **Persistent Memory** | SQLite with FTS5 full-text search and optional vector embeddings |
|
|
76
|
+
| **MCP Integration** | 30 tools exposed via Model Context Protocol for Claude Code |
|
|
77
|
+
| **Hierarchical Coordination** | Task queue, message bus, and coordinator pattern |
|
|
78
|
+
| **Multi-Provider Support** | Anthropic, OpenAI, and Ollama with unified interface |
|
|
79
|
+
| **Plugin System** | Runtime extensibility for agents, tools, hooks, and providers |
|
|
80
|
+
| **Workflow Engine** | Multi-phase workflows with adversarial validation |
|
|
45
81
|
|
|
46
82
|
---
|
|
47
83
|
|
|
48
84
|
## Quick Start
|
|
49
85
|
|
|
86
|
+
### Installation
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm install @blackms/aistack
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Initialize & Connect
|
|
93
|
+
|
|
50
94
|
```bash
|
|
51
95
|
# Initialize project
|
|
52
96
|
npx @blackms/aistack init
|
|
53
97
|
|
|
54
|
-
# Add
|
|
98
|
+
# Add to Claude Code
|
|
55
99
|
claude mcp add aistack -- npx @blackms/aistack mcp start
|
|
56
100
|
|
|
57
|
-
#
|
|
101
|
+
# Verify installation
|
|
58
102
|
npx @blackms/aistack status
|
|
59
103
|
```
|
|
60
104
|
|
|
105
|
+
### Configuration
|
|
106
|
+
|
|
107
|
+
Create `aistack.config.json`:
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"version": "1.0.0",
|
|
112
|
+
"providers": {
|
|
113
|
+
"default": "anthropic",
|
|
114
|
+
"anthropic": { "apiKey": "${ANTHROPIC_API_KEY}" }
|
|
115
|
+
},
|
|
116
|
+
"memory": {
|
|
117
|
+
"path": "./data/aistack.db",
|
|
118
|
+
"vectorSearch": { "enabled": false }
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
61
123
|
---
|
|
62
124
|
|
|
63
125
|
## Architecture
|
|
@@ -65,110 +127,127 @@ npx @blackms/aistack status
|
|
|
65
127
|
```mermaid
|
|
66
128
|
graph TB
|
|
67
129
|
subgraph "Claude Code"
|
|
68
|
-
CC[Claude Code
|
|
130
|
+
CC[Claude Code IDE]
|
|
69
131
|
end
|
|
70
132
|
|
|
71
133
|
subgraph "aistack"
|
|
72
|
-
MCP[MCP Server<br
|
|
134
|
+
MCP["MCP Server<br/><small>stdio transport</small>"]
|
|
73
135
|
|
|
74
|
-
subgraph "Core"
|
|
136
|
+
subgraph Core["Core Services"]
|
|
75
137
|
AM[Agent Manager]
|
|
76
138
|
MM[Memory Manager]
|
|
77
139
|
TQ[Task Queue]
|
|
78
140
|
MB[Message Bus]
|
|
79
141
|
end
|
|
80
142
|
|
|
81
|
-
subgraph
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
143
|
+
subgraph Agents["Agent Pool"]
|
|
144
|
+
direction LR
|
|
145
|
+
A1[Coder]
|
|
146
|
+
A2[Tester]
|
|
147
|
+
A3[Reviewer]
|
|
148
|
+
A4[Architect]
|
|
149
|
+
A5[Researcher]
|
|
150
|
+
A6[Coordinator]
|
|
151
|
+
A7[Analyst]
|
|
89
152
|
end
|
|
90
153
|
|
|
91
|
-
subgraph
|
|
154
|
+
subgraph Storage["Persistence"]
|
|
92
155
|
SQL[(SQLite)]
|
|
93
156
|
FTS[FTS5 Index]
|
|
94
|
-
VEC[Vector Store
|
|
157
|
+
VEC[Vector Store]
|
|
95
158
|
end
|
|
96
159
|
|
|
97
|
-
subgraph "Providers"
|
|
160
|
+
subgraph Providers["LLM Providers"]
|
|
98
161
|
ANT[Anthropic]
|
|
99
162
|
OAI[OpenAI]
|
|
100
163
|
OLL[Ollama]
|
|
101
164
|
end
|
|
102
165
|
end
|
|
103
166
|
|
|
104
|
-
CC <-->|MCP Protocol| MCP
|
|
105
|
-
MCP --> AM
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
COORD --> CODER
|
|
111
|
-
COORD --> TEST
|
|
112
|
-
COORD --> REV
|
|
113
|
-
COORD --> ARCH
|
|
114
|
-
COORD --> RES
|
|
115
|
-
COORD --> ANAL
|
|
116
|
-
MM --> SQL
|
|
117
|
-
MM --> FTS
|
|
118
|
-
MM --> VEC
|
|
119
|
-
AM --> ANT
|
|
120
|
-
AM --> OAI
|
|
121
|
-
AM --> OLL
|
|
167
|
+
CC <-->|"MCP Protocol"| MCP
|
|
168
|
+
MCP --> AM & MM
|
|
169
|
+
AM --> TQ --> MB
|
|
170
|
+
MB --> A1 & A2 & A3 & A4 & A5 & A6 & A7
|
|
171
|
+
MM --> SQL --> FTS & VEC
|
|
172
|
+
AM -.-> ANT & OAI & OLL
|
|
122
173
|
```
|
|
123
174
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
## Core Modules
|
|
127
|
-
|
|
128
|
-
| Module | Description |
|
|
129
|
-
|--------|-------------|
|
|
130
|
-
| **agents** | 7 built-in agent types with capabilities and system prompts |
|
|
131
|
-
| **memory** | SQLite store with FTS5 full-text search and optional vector embeddings |
|
|
132
|
-
| **mcp** | MCP server exposing 30 tools via stdio transport |
|
|
133
|
-
| **coordination** | Hierarchical coordinator, task queue, and message bus |
|
|
134
|
-
| **providers** | Anthropic, OpenAI, and Ollama LLM integrations |
|
|
135
|
-
| **hooks** | 5 lifecycle events: session-start, session-end, pre-task, post-task, workflow |
|
|
136
|
-
| **plugins** | Runtime extensibility for agents, tools, and hooks |
|
|
175
|
+
### Request Flow
|
|
137
176
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
177
|
+
```mermaid
|
|
178
|
+
sequenceDiagram
|
|
179
|
+
participant CC as Claude Code
|
|
180
|
+
participant MCP as MCP Server
|
|
181
|
+
participant AM as Agent Manager
|
|
182
|
+
participant MM as Memory
|
|
183
|
+
participant DB as SQLite
|
|
184
|
+
|
|
185
|
+
CC->>MCP: agent_spawn("coder")
|
|
186
|
+
MCP->>AM: spawnAgent("coder")
|
|
187
|
+
AM-->>MCP: SpawnedAgent
|
|
188
|
+
MCP-->>CC: { id, type, status }
|
|
189
|
+
|
|
190
|
+
CC->>MCP: memory_store(key, content)
|
|
191
|
+
MCP->>MM: store(key, content)
|
|
192
|
+
MM->>DB: INSERT/UPDATE
|
|
193
|
+
DB-->>MM: MemoryEntry
|
|
194
|
+
MM-->>MCP: { success: true }
|
|
195
|
+
MCP-->>CC: { entry }
|
|
196
|
+
|
|
197
|
+
CC->>MCP: memory_search(query)
|
|
198
|
+
MCP->>MM: search(query)
|
|
199
|
+
MM->>DB: FTS5 MATCH
|
|
200
|
+
DB-->>MM: Results
|
|
201
|
+
MM-->>MCP: SearchResults
|
|
202
|
+
MCP-->>CC: { results }
|
|
203
|
+
```
|
|
158
204
|
|
|
159
205
|
---
|
|
160
206
|
|
|
161
207
|
## Agents
|
|
162
208
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
209
|
+
<table>
|
|
210
|
+
<tr>
|
|
211
|
+
<th>Agent</th>
|
|
212
|
+
<th>Purpose</th>
|
|
213
|
+
<th>Capabilities</th>
|
|
214
|
+
</tr>
|
|
215
|
+
<tr>
|
|
216
|
+
<td><b>coder</b></td>
|
|
217
|
+
<td>Write and modify code</td>
|
|
218
|
+
<td><code>write-code</code> <code>edit-code</code> <code>refactor</code> <code>debug</code> <code>implement-features</code></td>
|
|
219
|
+
</tr>
|
|
220
|
+
<tr>
|
|
221
|
+
<td><b>researcher</b></td>
|
|
222
|
+
<td>Gather information</td>
|
|
223
|
+
<td><code>search-code</code> <code>read-documentation</code> <code>analyze-patterns</code> <code>gather-requirements</code> <code>explore-codebase</code></td>
|
|
224
|
+
</tr>
|
|
225
|
+
<tr>
|
|
226
|
+
<td><b>tester</b></td>
|
|
227
|
+
<td>Test and validate</td>
|
|
228
|
+
<td><code>write-tests</code> <code>run-tests</code> <code>identify-edge-cases</code> <code>coverage-analysis</code> <code>test-debugging</code></td>
|
|
229
|
+
</tr>
|
|
230
|
+
<tr>
|
|
231
|
+
<td><b>reviewer</b></td>
|
|
232
|
+
<td>Quality assurance</td>
|
|
233
|
+
<td><code>code-review</code> <code>security-review</code> <code>performance-review</code> <code>best-practices</code> <code>feedback</code></td>
|
|
234
|
+
</tr>
|
|
235
|
+
<tr>
|
|
236
|
+
<td><b>architect</b></td>
|
|
237
|
+
<td>System design</td>
|
|
238
|
+
<td><code>system-design</code> <code>technical-decisions</code> <code>architecture-review</code> <code>documentation</code> <code>trade-off-analysis</code></td>
|
|
239
|
+
</tr>
|
|
240
|
+
<tr>
|
|
241
|
+
<td><b>coordinator</b></td>
|
|
242
|
+
<td>Orchestrate work</td>
|
|
243
|
+
<td><code>task-decomposition</code> <code>agent-coordination</code> <code>progress-tracking</code> <code>result-synthesis</code> <code>workflow-management</code></td>
|
|
244
|
+
</tr>
|
|
245
|
+
<tr>
|
|
246
|
+
<td><b>analyst</b></td>
|
|
247
|
+
<td>Data insights</td>
|
|
248
|
+
<td><code>data-analysis</code> <code>performance-profiling</code> <code>metrics-collection</code> <code>trend-analysis</code> <code>reporting</code></td>
|
|
249
|
+
</tr>
|
|
250
|
+
</table>
|
|
172
251
|
|
|
173
252
|
---
|
|
174
253
|
|
|
@@ -176,94 +255,43 @@ graph TB
|
|
|
176
255
|
|
|
177
256
|
### Agent Tools (6)
|
|
178
257
|
```
|
|
179
|
-
agent_spawn
|
|
180
|
-
agent_status
|
|
258
|
+
agent_spawn agent_list agent_stop
|
|
259
|
+
agent_status agent_types agent_update_status
|
|
181
260
|
```
|
|
182
261
|
|
|
183
262
|
### Memory Tools (5)
|
|
184
263
|
```
|
|
185
|
-
memory_store
|
|
186
|
-
memory_list
|
|
264
|
+
memory_store memory_search memory_get
|
|
265
|
+
memory_list memory_delete
|
|
187
266
|
```
|
|
188
267
|
|
|
189
268
|
### Task Tools (5)
|
|
190
269
|
```
|
|
191
|
-
task_create
|
|
192
|
-
task_list
|
|
270
|
+
task_create task_assign task_complete
|
|
271
|
+
task_list task_get
|
|
193
272
|
```
|
|
194
273
|
|
|
195
274
|
### Session Tools (4)
|
|
196
275
|
```
|
|
197
|
-
session_start
|
|
276
|
+
session_start session_end session_status
|
|
198
277
|
session_active
|
|
199
278
|
```
|
|
200
279
|
|
|
201
280
|
### System Tools (3)
|
|
202
281
|
```
|
|
203
|
-
system_status
|
|
282
|
+
system_status system_health system_config
|
|
204
283
|
```
|
|
205
284
|
|
|
206
285
|
### GitHub Tools (7)
|
|
207
286
|
```
|
|
208
|
-
github_issue_create
|
|
209
|
-
github_pr_create
|
|
287
|
+
github_issue_create github_issue_list github_issue_get
|
|
288
|
+
github_pr_create github_pr_list github_pr_get
|
|
210
289
|
github_repo_info
|
|
211
290
|
```
|
|
212
291
|
|
|
213
292
|
---
|
|
214
293
|
|
|
215
|
-
##
|
|
216
|
-
|
|
217
|
-
Create `aistack.config.json`:
|
|
218
|
-
|
|
219
|
-
```json
|
|
220
|
-
{
|
|
221
|
-
"version": "1.0.0",
|
|
222
|
-
"memory": {
|
|
223
|
-
"path": "./data/aistack.db",
|
|
224
|
-
"defaultNamespace": "default",
|
|
225
|
-
"vectorSearch": {
|
|
226
|
-
"enabled": false,
|
|
227
|
-
"provider": "openai",
|
|
228
|
-
"model": "text-embedding-3-small"
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
"providers": {
|
|
232
|
-
"default": "anthropic",
|
|
233
|
-
"anthropic": {
|
|
234
|
-
"apiKey": "${ANTHROPIC_API_KEY}"
|
|
235
|
-
},
|
|
236
|
-
"openai": {
|
|
237
|
-
"apiKey": "${OPENAI_API_KEY}"
|
|
238
|
-
},
|
|
239
|
-
"ollama": {
|
|
240
|
-
"baseUrl": "http://localhost:11434"
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
"agents": {
|
|
244
|
-
"maxConcurrent": 5,
|
|
245
|
-
"defaultTimeout": 300
|
|
246
|
-
},
|
|
247
|
-
"github": {
|
|
248
|
-
"enabled": false,
|
|
249
|
-
"useGhCli": true
|
|
250
|
-
},
|
|
251
|
-
"hooks": {
|
|
252
|
-
"sessionStart": true,
|
|
253
|
-
"sessionEnd": true,
|
|
254
|
-
"preTask": true,
|
|
255
|
-
"postTask": true
|
|
256
|
-
},
|
|
257
|
-
"plugins": {
|
|
258
|
-
"enabled": true,
|
|
259
|
-
"directory": "./plugins"
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
## Programmatic Usage
|
|
294
|
+
## Programmatic API
|
|
267
295
|
|
|
268
296
|
```typescript
|
|
269
297
|
import {
|
|
@@ -273,39 +301,33 @@ import {
|
|
|
273
301
|
getConfig,
|
|
274
302
|
} from '@blackms/aistack';
|
|
275
303
|
|
|
276
|
-
// Load configuration
|
|
277
|
-
const config = getConfig();
|
|
278
|
-
|
|
279
304
|
// Spawn an agent
|
|
280
305
|
const agent = spawnAgent('coder', { name: 'my-coder' });
|
|
281
306
|
|
|
282
|
-
// Use memory
|
|
283
|
-
const memory = getMemoryManager(
|
|
284
|
-
await memory.store('
|
|
307
|
+
// Use memory with search
|
|
308
|
+
const memory = getMemoryManager(getConfig());
|
|
309
|
+
await memory.store('pattern', 'Use dependency injection', {
|
|
285
310
|
namespace: 'architecture'
|
|
286
311
|
});
|
|
287
312
|
const results = await memory.search('injection');
|
|
288
313
|
|
|
289
314
|
// Start MCP server
|
|
290
|
-
const server = await startMCPServer(
|
|
315
|
+
const server = await startMCPServer(getConfig());
|
|
291
316
|
```
|
|
292
317
|
|
|
293
318
|
### Submodule Imports
|
|
294
319
|
|
|
295
320
|
```typescript
|
|
296
|
-
// Memory only
|
|
297
321
|
import { MemoryManager } from '@blackms/aistack/memory';
|
|
298
|
-
|
|
299
|
-
// Agents only
|
|
300
|
-
import { spawnAgent, listAgentTypes, getAgentDefinition } from '@blackms/aistack/agents';
|
|
301
|
-
|
|
302
|
-
// MCP server only
|
|
322
|
+
import { spawnAgent, listAgentTypes } from '@blackms/aistack/agents';
|
|
303
323
|
import { startMCPServer } from '@blackms/aistack/mcp';
|
|
304
324
|
```
|
|
305
325
|
|
|
306
326
|
---
|
|
307
327
|
|
|
308
|
-
## Plugin
|
|
328
|
+
## Plugin System
|
|
329
|
+
|
|
330
|
+
Extend aistack with custom agents, tools, and hooks:
|
|
309
331
|
|
|
310
332
|
```typescript
|
|
311
333
|
import type { AgentStackPlugin } from '@blackms/aistack';
|
|
@@ -325,41 +347,42 @@ export default {
|
|
|
325
347
|
tools: [{
|
|
326
348
|
name: 'custom_tool',
|
|
327
349
|
description: 'A custom MCP tool',
|
|
328
|
-
inputSchema: {
|
|
329
|
-
type: 'object',
|
|
330
|
-
properties: {
|
|
331
|
-
input: { type: 'string' }
|
|
332
|
-
}
|
|
333
|
-
},
|
|
350
|
+
inputSchema: { type: 'object', properties: { input: { type: 'string' } } },
|
|
334
351
|
handler: async (params) => ({ result: 'done' })
|
|
335
352
|
}],
|
|
336
353
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
handler: async (ctx) => {
|
|
340
|
-
console.log('Task completed:', ctx.taskId);
|
|
341
|
-
}
|
|
342
|
-
}],
|
|
343
|
-
|
|
344
|
-
async init(config) {
|
|
345
|
-
// Setup logic
|
|
346
|
-
},
|
|
347
|
-
|
|
348
|
-
async cleanup() {
|
|
349
|
-
// Teardown logic
|
|
350
|
-
}
|
|
354
|
+
async init(config) { /* setup */ },
|
|
355
|
+
async cleanup() { /* teardown */ }
|
|
351
356
|
} satisfies AgentStackPlugin;
|
|
352
357
|
```
|
|
353
358
|
|
|
354
359
|
---
|
|
355
360
|
|
|
356
|
-
##
|
|
361
|
+
## CLI Reference
|
|
357
362
|
|
|
358
|
-
|
|
|
359
|
-
|
|
360
|
-
|
|
|
361
|
-
|
|
|
362
|
-
|
|
|
363
|
+
| Command | Description |
|
|
364
|
+
|---------|-------------|
|
|
365
|
+
| `init` | Initialize project structure |
|
|
366
|
+
| `agent spawn -t <type>` | Spawn agent |
|
|
367
|
+
| `agent list` | List active agents |
|
|
368
|
+
| `agent stop -n <name>` | Stop agent |
|
|
369
|
+
| `agent types` | Show available types |
|
|
370
|
+
| `memory store -k <key> -c <content>` | Store entry |
|
|
371
|
+
| `memory search -q <query>` | Search memory |
|
|
372
|
+
| `memory list` | List entries |
|
|
373
|
+
| `mcp start` | Start MCP server |
|
|
374
|
+
| `workflow run <name>` | Run workflow |
|
|
375
|
+
| `status` | System status |
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## LLM Providers
|
|
380
|
+
|
|
381
|
+
| Provider | Default Model | Embeddings |
|
|
382
|
+
|----------|---------------|------------|
|
|
383
|
+
| **Anthropic** | claude-sonnet-4-20250514 | - |
|
|
384
|
+
| **OpenAI** | gpt-4o | text-embedding-3-small |
|
|
385
|
+
| **Ollama** | llama3.2 | nomic-embed-text |
|
|
363
386
|
|
|
364
387
|
---
|
|
365
388
|
|
|
@@ -367,15 +390,16 @@ export default {
|
|
|
367
390
|
|
|
368
391
|
```
|
|
369
392
|
src/
|
|
370
|
-
├── agents/ # Agent
|
|
371
|
-
├── cli/ # CLI commands
|
|
393
|
+
├── agents/ # Agent registry, spawner, definitions
|
|
394
|
+
├── cli/ # CLI commands
|
|
372
395
|
├── coordination/ # Task queue, message bus, topology
|
|
373
396
|
├── github/ # GitHub integration
|
|
374
397
|
├── hooks/ # Lifecycle hooks
|
|
375
|
-
├── mcp/ # MCP server and tools
|
|
398
|
+
├── mcp/ # MCP server and 30 tools
|
|
376
399
|
├── memory/ # SQLite, FTS5, vector search
|
|
377
400
|
├── plugins/ # Plugin loader and registry
|
|
378
401
|
├── providers/ # LLM provider implementations
|
|
402
|
+
├── workflows/ # Workflow engine
|
|
379
403
|
└── utils/ # Config, logger, validation
|
|
380
404
|
```
|
|
381
405
|
|
|
@@ -384,32 +408,53 @@ src/
|
|
|
384
408
|
## Development
|
|
385
409
|
|
|
386
410
|
```bash
|
|
387
|
-
# Install dependencies
|
|
388
|
-
npm
|
|
411
|
+
npm install # Install dependencies
|
|
412
|
+
npm run build # Build
|
|
413
|
+
npm test # Run tests
|
|
414
|
+
npm run test:coverage # With coverage
|
|
415
|
+
npm run typecheck # Type check
|
|
416
|
+
npm run lint # Lint
|
|
417
|
+
```
|
|
389
418
|
|
|
390
|
-
|
|
391
|
-
npm run build
|
|
419
|
+
---
|
|
392
420
|
|
|
393
|
-
|
|
394
|
-
npm test
|
|
421
|
+
## Roadmap
|
|
395
422
|
|
|
396
|
-
|
|
397
|
-
|
|
423
|
+
| Priority | Feature |
|
|
424
|
+
|----------|---------|
|
|
425
|
+
| **P1** | HTTP transport for MCP server |
|
|
426
|
+
| **P1** | Streaming responses |
|
|
427
|
+
| **P2** | Agent state persistence |
|
|
428
|
+
| **P2** | Built-in workflow templates |
|
|
429
|
+
| **P3** | Web dashboard |
|
|
430
|
+
| **P3** | Metrics and observability |
|
|
398
431
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
432
|
+
<sub>Roadmap items are planned features, not current capabilities.</sub>
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
## Contributing
|
|
437
|
+
|
|
438
|
+
1. Fork the repository
|
|
439
|
+
2. Create a feature branch (`git checkout -b feature/amazing`)
|
|
440
|
+
3. Commit changes (`git commit -m 'Add amazing feature'`)
|
|
441
|
+
4. Push to branch (`git push origin feature/amazing`)
|
|
442
|
+
5. Open a Pull Request
|
|
443
|
+
|
|
444
|
+
All PRs must pass CI (tests, lint, typecheck, build).
|
|
402
445
|
|
|
403
446
|
---
|
|
404
447
|
|
|
405
448
|
## License
|
|
406
449
|
|
|
407
|
-
MIT
|
|
450
|
+
[MIT](LICENSE) © 2024
|
|
408
451
|
|
|
409
452
|
---
|
|
410
453
|
|
|
411
454
|
<div align="center">
|
|
412
455
|
|
|
413
|
-
**[Documentation](https://github.com/blackms/aistack)**
|
|
456
|
+
**[Documentation](./docs)** · **[Issues](https://github.com/blackms/aistack/issues)** · **[Discussions](https://github.com/blackms/aistack/discussions)**
|
|
457
|
+
|
|
458
|
+
<sub>Built with TypeScript · Made for Claude Code</sub>
|
|
414
459
|
|
|
415
460
|
</div>
|