@blackms/aistack 1.0.10 → 1.0.12
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/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/spawner.d.ts +19 -0
- package/dist/agents/spawner.d.ts.map +1 -1
- package/dist/agents/spawner.js +75 -0
- package/dist/agents/spawner.js.map +1 -1
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +138 -1
- package/dist/cli/commands/agent.js.map +1 -1
- 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>
|
package/dist/agents/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Agents module exports
|
|
3
3
|
*/
|
|
4
4
|
export { getAgentDefinition, listAgentTypes, listAgentDefinitions, registerAgent, unregisterAgent, hasAgentType, getAgentCount as getRegisteredAgentCount, clearCustomAgents, } from './registry.js';
|
|
5
|
-
export { spawnAgent, getAgent, getAgentByName, listAgents, updateAgentStatus, stopAgent, stopAgentByName, stopAllAgents, getAgentCount as getActiveAgentCount, getAgentsByStatus, clearAgents, getAgentPrompt, getAgentCapabilities, type SpawnOptions, } from './spawner.js';
|
|
5
|
+
export { spawnAgent, getAgent, getAgentByName, listAgents, updateAgentStatus, stopAgent, stopAgentByName, stopAllAgents, getAgentCount as getActiveAgentCount, getAgentsByStatus, clearAgents, getAgentPrompt, getAgentCapabilities, executeAgent, runAgent, type SpawnOptions, type ExecuteOptions, type ExecuteResult, } from './spawner.js';
|
|
6
6
|
export * from './definitions/index.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,IAAI,uBAAuB,EACxC,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,IAAI,mBAAmB,EACpC,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,IAAI,uBAAuB,EACxC,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,IAAI,mBAAmB,EACpC,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AAEtB,cAAc,wBAAwB,CAAC"}
|
package/dist/agents/index.js
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Agents module exports
|
|
3
3
|
*/
|
|
4
4
|
export { getAgentDefinition, listAgentTypes, listAgentDefinitions, registerAgent, unregisterAgent, hasAgentType, getAgentCount as getRegisteredAgentCount, clearCustomAgents, } from './registry.js';
|
|
5
|
-
export { spawnAgent, getAgent, getAgentByName, listAgents, updateAgentStatus, stopAgent, stopAgentByName, stopAllAgents, getAgentCount as getActiveAgentCount, getAgentsByStatus, clearAgents, getAgentPrompt, getAgentCapabilities, } from './spawner.js';
|
|
5
|
+
export { spawnAgent, getAgent, getAgentByName, listAgents, updateAgentStatus, stopAgent, stopAgentByName, stopAllAgents, getAgentCount as getActiveAgentCount, getAgentsByStatus, clearAgents, getAgentPrompt, getAgentCapabilities, executeAgent, runAgent, } from './spawner.js';
|
|
6
6
|
export * from './definitions/index.js';
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/agents/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,IAAI,uBAAuB,EACxC,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,IAAI,mBAAmB,EACpC,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,aAAa,IAAI,uBAAuB,EACxC,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,IAAI,mBAAmB,EACpC,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,QAAQ,GAIT,MAAM,cAAc,CAAC;AAEtB,cAAc,wBAAwB,CAAC"}
|
package/dist/agents/spawner.d.ts
CHANGED
|
@@ -59,4 +59,23 @@ export declare function getAgentPrompt(type: string): string | null;
|
|
|
59
59
|
* Get agent capabilities
|
|
60
60
|
*/
|
|
61
61
|
export declare function getAgentCapabilities(type: string): string[] | null;
|
|
62
|
+
export interface ExecuteOptions {
|
|
63
|
+
provider?: string;
|
|
64
|
+
model?: string;
|
|
65
|
+
context?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface ExecuteResult {
|
|
68
|
+
agentId: string;
|
|
69
|
+
response: string;
|
|
70
|
+
model: string;
|
|
71
|
+
duration: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Execute a task with an agent using a CLI provider
|
|
75
|
+
*/
|
|
76
|
+
export declare function executeAgent(agentId: string, task: string, config: AgentStackConfig, options?: ExecuteOptions): Promise<ExecuteResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Spawn and execute in one step (convenience function)
|
|
79
|
+
*/
|
|
80
|
+
export declare function runAgent(type: string, task: string, config: AgentStackConfig, options?: SpawnOptions & ExecuteOptions): Promise<ExecuteResult>;
|
|
62
81
|
//# sourceMappingURL=spawner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../src/agents/spawner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../src/agents/spawner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAc5F,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,EAC1B,OAAO,CAAC,EAAE,gBAAgB,GACzB,YAAY,CAkCd;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAIhE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAU7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAO1E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAU7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAYxD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAYxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,EAAE,CAUrE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAIlE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAoExB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,YAAY,GAAG,cAAmB,GAC1C,OAAO,CAAC,aAAa,CAAC,CASxB"}
|
package/dist/agents/spawner.js
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { getAgentDefinition, hasAgentType } from './registry.js';
|
|
6
|
+
import { getProvider } from '../providers/index.js';
|
|
7
|
+
import { ClaudeCodeProvider, GeminiCLIProvider, CodexProvider } from '../providers/cli-providers.js';
|
|
6
8
|
import { logger } from '../utils/logger.js';
|
|
7
9
|
const log = logger.child('spawner');
|
|
8
10
|
// Active agents
|
|
@@ -166,4 +168,77 @@ export function getAgentCapabilities(type) {
|
|
|
166
168
|
return null;
|
|
167
169
|
return definition.capabilities;
|
|
168
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Execute a task with an agent using a CLI provider
|
|
173
|
+
*/
|
|
174
|
+
export async function executeAgent(agentId, task, config, options = {}) {
|
|
175
|
+
const agent = activeAgents.get(agentId);
|
|
176
|
+
if (!agent) {
|
|
177
|
+
throw new Error(`Agent not found: ${agentId}`);
|
|
178
|
+
}
|
|
179
|
+
const definition = getAgentDefinition(agent.type);
|
|
180
|
+
if (!definition) {
|
|
181
|
+
throw new Error(`Agent definition not found: ${agent.type}`);
|
|
182
|
+
}
|
|
183
|
+
// Get the provider
|
|
184
|
+
const providerName = options.provider ?? config.providers.default;
|
|
185
|
+
const provider = getProvider(providerName, config);
|
|
186
|
+
if (!provider) {
|
|
187
|
+
throw new Error(`Provider '${providerName}' is not configured`);
|
|
188
|
+
}
|
|
189
|
+
// Check if CLI provider is available
|
|
190
|
+
if (provider instanceof ClaudeCodeProvider || provider instanceof GeminiCLIProvider || provider instanceof CodexProvider) {
|
|
191
|
+
if (!provider.isAvailable()) {
|
|
192
|
+
throw new Error(`Provider '${providerName}' CLI is not installed or not available`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Build messages
|
|
196
|
+
const messages = [
|
|
197
|
+
{ role: 'system', content: definition.systemPrompt },
|
|
198
|
+
];
|
|
199
|
+
// Add context if provided
|
|
200
|
+
if (options.context) {
|
|
201
|
+
messages.push({ role: 'user', content: `Context:\n${options.context}` });
|
|
202
|
+
messages.push({ role: 'assistant', content: 'I understand the context. What would you like me to do?' });
|
|
203
|
+
}
|
|
204
|
+
// Add the task
|
|
205
|
+
messages.push({ role: 'user', content: task });
|
|
206
|
+
// Update agent status
|
|
207
|
+
updateAgentStatus(agentId, 'running');
|
|
208
|
+
const startTime = Date.now();
|
|
209
|
+
try {
|
|
210
|
+
log.info('Executing agent task', { agentId, type: agent.type, provider: providerName });
|
|
211
|
+
const response = await provider.chat(messages, { model: options.model });
|
|
212
|
+
const duration = Date.now() - startTime;
|
|
213
|
+
updateAgentStatus(agentId, 'idle');
|
|
214
|
+
log.info('Agent task completed', { agentId, duration, model: response.model });
|
|
215
|
+
return {
|
|
216
|
+
agentId,
|
|
217
|
+
response: response.content,
|
|
218
|
+
model: response.model,
|
|
219
|
+
duration,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
updateAgentStatus(agentId, 'failed');
|
|
224
|
+
log.error('Agent task failed', {
|
|
225
|
+
agentId,
|
|
226
|
+
error: error instanceof Error ? error.message : String(error)
|
|
227
|
+
});
|
|
228
|
+
throw error;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Spawn and execute in one step (convenience function)
|
|
233
|
+
*/
|
|
234
|
+
export async function runAgent(type, task, config, options = {}) {
|
|
235
|
+
const agent = spawnAgent(type, options, config);
|
|
236
|
+
try {
|
|
237
|
+
return await executeAgent(agent.id, task, config, options);
|
|
238
|
+
}
|
|
239
|
+
finally {
|
|
240
|
+
// Optionally stop agent after execution
|
|
241
|
+
// stopAgent(agent.id);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
169
244
|
//# sourceMappingURL=spawner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/agents/spawner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/agents/spawner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,kBAAkB,IAAI,OAAO,CAsV5C"}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* agent command - Manage agents
|
|
3
3
|
*/
|
|
4
4
|
import { Command } from 'commander';
|
|
5
|
-
import { spawnAgent, getAgent, getAgentByName, listAgents, stopAgent, stopAgentByName, getAgentPrompt, } from '../../agents/spawner.js';
|
|
5
|
+
import { spawnAgent, getAgent, getAgentByName, listAgents, stopAgent, stopAgentByName, getAgentPrompt, runAgent, executeAgent, } from '../../agents/spawner.js';
|
|
6
6
|
import { listAgentTypes, getAgentDefinition } from '../../agents/registry.js';
|
|
7
7
|
import { getConfig } from '../../utils/config.js';
|
|
8
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
8
9
|
export function createAgentCommand() {
|
|
9
10
|
const command = new Command('agent')
|
|
10
11
|
.description('Manage agents');
|
|
@@ -139,6 +140,142 @@ export function createAgentCommand() {
|
|
|
139
140
|
console.log(`${type.padEnd(14)}${def?.description ?? ''}`);
|
|
140
141
|
}
|
|
141
142
|
});
|
|
143
|
+
// run subcommand - execute a task with an agent
|
|
144
|
+
command
|
|
145
|
+
.command('run')
|
|
146
|
+
.description('Run a task with an agent using a CLI provider')
|
|
147
|
+
.requiredOption('-t, --type <type>', 'Agent type (coder, researcher, tester, reviewer, architect, coordinator, analyst)')
|
|
148
|
+
.requiredOption('-p, --prompt <prompt>', 'Task prompt or @file to read from file')
|
|
149
|
+
.option('-n, --name <name>', 'Agent name')
|
|
150
|
+
.option('--provider <provider>', 'Provider to use (claude-code, gemini-cli, codex, anthropic, openai, ollama)')
|
|
151
|
+
.option('--model <model>', 'Model to use')
|
|
152
|
+
.option('--context <context>', 'Additional context or @file to read from file')
|
|
153
|
+
.option('--show-prompt', 'Show the agent system prompt before running')
|
|
154
|
+
.action(async (options) => {
|
|
155
|
+
const { type, prompt: rawPrompt, name, provider, model, context: rawContext, showPrompt, } = options;
|
|
156
|
+
try {
|
|
157
|
+
const config = getConfig();
|
|
158
|
+
// Read prompt from file if it starts with @
|
|
159
|
+
let prompt = rawPrompt;
|
|
160
|
+
if (rawPrompt.startsWith('@')) {
|
|
161
|
+
const filePath = rawPrompt.slice(1);
|
|
162
|
+
if (!existsSync(filePath)) {
|
|
163
|
+
console.error(`Error: File not found: ${filePath}`);
|
|
164
|
+
process.exit(1);
|
|
165
|
+
}
|
|
166
|
+
prompt = readFileSync(filePath, 'utf-8');
|
|
167
|
+
}
|
|
168
|
+
// Read context from file if it starts with @
|
|
169
|
+
let context = rawContext;
|
|
170
|
+
if (rawContext?.startsWith('@')) {
|
|
171
|
+
const filePath = rawContext.slice(1);
|
|
172
|
+
if (!existsSync(filePath)) {
|
|
173
|
+
console.error(`Error: Context file not found: ${filePath}`);
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
context = readFileSync(filePath, 'utf-8');
|
|
177
|
+
}
|
|
178
|
+
// Show system prompt if requested
|
|
179
|
+
if (showPrompt) {
|
|
180
|
+
const systemPrompt = getAgentPrompt(type);
|
|
181
|
+
if (systemPrompt) {
|
|
182
|
+
console.log('System Prompt:');
|
|
183
|
+
console.log('─'.repeat(60));
|
|
184
|
+
console.log(systemPrompt);
|
|
185
|
+
console.log('─'.repeat(60));
|
|
186
|
+
console.log('');
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
console.log(`Running ${type} agent with ${provider ?? config.providers.default} provider...\n`);
|
|
190
|
+
const result = await runAgent(type, prompt, config, {
|
|
191
|
+
name,
|
|
192
|
+
provider,
|
|
193
|
+
model,
|
|
194
|
+
context,
|
|
195
|
+
});
|
|
196
|
+
console.log('─'.repeat(60));
|
|
197
|
+
console.log('Response:');
|
|
198
|
+
console.log('─'.repeat(60));
|
|
199
|
+
console.log(result.response);
|
|
200
|
+
console.log('─'.repeat(60));
|
|
201
|
+
console.log(`\nAgent: ${result.agentId}`);
|
|
202
|
+
console.log(`Model: ${result.model}`);
|
|
203
|
+
console.log(`Duration: ${(result.duration / 1000).toFixed(2)}s`);
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
207
|
+
process.exit(1);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
// exec subcommand - execute a task with an existing agent
|
|
211
|
+
command
|
|
212
|
+
.command('exec')
|
|
213
|
+
.description('Execute a task with an existing agent')
|
|
214
|
+
.requiredOption('-p, --prompt <prompt>', 'Task prompt or @file to read from file')
|
|
215
|
+
.option('-i, --id <id>', 'Agent ID')
|
|
216
|
+
.option('-n, --name <name>', 'Agent name')
|
|
217
|
+
.option('--provider <provider>', 'Provider to use')
|
|
218
|
+
.option('--model <model>', 'Model to use')
|
|
219
|
+
.option('--context <context>', 'Additional context or @file to read from file')
|
|
220
|
+
.action(async (options) => {
|
|
221
|
+
const { prompt: rawPrompt, id, name, provider, model, context: rawContext, } = options;
|
|
222
|
+
if (!id && !name) {
|
|
223
|
+
console.error('Error: Either --id or --name is required');
|
|
224
|
+
process.exit(1);
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
const config = getConfig();
|
|
228
|
+
// Find agent
|
|
229
|
+
let agent = null;
|
|
230
|
+
if (id) {
|
|
231
|
+
agent = getAgent(id);
|
|
232
|
+
}
|
|
233
|
+
else if (name) {
|
|
234
|
+
agent = getAgentByName(name);
|
|
235
|
+
}
|
|
236
|
+
if (!agent) {
|
|
237
|
+
console.error('Error: Agent not found');
|
|
238
|
+
process.exit(1);
|
|
239
|
+
}
|
|
240
|
+
// Read prompt from file if it starts with @
|
|
241
|
+
let prompt = rawPrompt;
|
|
242
|
+
if (rawPrompt.startsWith('@')) {
|
|
243
|
+
const filePath = rawPrompt.slice(1);
|
|
244
|
+
if (!existsSync(filePath)) {
|
|
245
|
+
console.error(`Error: File not found: ${filePath}`);
|
|
246
|
+
process.exit(1);
|
|
247
|
+
}
|
|
248
|
+
prompt = readFileSync(filePath, 'utf-8');
|
|
249
|
+
}
|
|
250
|
+
// Read context from file if it starts with @
|
|
251
|
+
let context = rawContext;
|
|
252
|
+
if (rawContext?.startsWith('@')) {
|
|
253
|
+
const filePath = rawContext.slice(1);
|
|
254
|
+
if (!existsSync(filePath)) {
|
|
255
|
+
console.error(`Error: Context file not found: ${filePath}`);
|
|
256
|
+
process.exit(1);
|
|
257
|
+
}
|
|
258
|
+
context = readFileSync(filePath, 'utf-8');
|
|
259
|
+
}
|
|
260
|
+
console.log(`Executing task with ${agent.type} agent (${agent.name})...\n`);
|
|
261
|
+
const result = await executeAgent(agent.id, prompt, config, {
|
|
262
|
+
provider,
|
|
263
|
+
model,
|
|
264
|
+
context,
|
|
265
|
+
});
|
|
266
|
+
console.log('─'.repeat(60));
|
|
267
|
+
console.log('Response:');
|
|
268
|
+
console.log('─'.repeat(60));
|
|
269
|
+
console.log(result.response);
|
|
270
|
+
console.log('─'.repeat(60));
|
|
271
|
+
console.log(`\nModel: ${result.model}`);
|
|
272
|
+
console.log(`Duration: ${(result.duration / 1000).toFixed(2)}s`);
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
276
|
+
process.exit(1);
|
|
277
|
+
}
|
|
278
|
+
});
|
|
142
279
|
return command;
|
|
143
280
|
}
|
|
144
281
|
//# sourceMappingURL=agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"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"}
|