claude-flow-novice 2.18.7 → 2.18.9
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/.claude/cfn-extras/skills/advanced-features/cfn-event-bus/README.md +2 -2
- package/.claude/cfn-extras/skills/advanced-features/cfn-event-bus/SKILL.md +2 -2
- package/.claude/cfn-extras/skills/advanced-features/cfn-event-bus/config.json +1 -1
- package/package.json +1 -1
- package/.claude/core/agent-manager.js +0 -80
- package/.claude/core/agent-manager.js.map +0 -1
- package/.claude/core/config.js +0 -1241
- package/.claude/core/config.js.map +0 -1
- package/.claude/core/event-bus.js +0 -136
- package/.claude/core/event-bus.js.map +0 -1
- package/.claude/core/index.js +0 -6
- package/.claude/core/index.js.map +0 -1
- package/.claude/core/json-persistence.js +0 -112
- package/.claude/core/json-persistence.js.map +0 -1
- package/.claude/core/logger.js +0 -245
- package/.claude/core/logger.js.map +0 -1
- package/.claude/core/orchestrator-fixed.js +0 -236
- package/.claude/core/orchestrator-fixed.js.map +0 -1
- package/.claude/core/orchestrator.js +0 -1136
- package/.claude/core/orchestrator.js.map +0 -1
- package/.claude/core/persistence.js +0 -185
- package/.claude/core/persistence.js.map +0 -1
- package/.claude/core/project-manager.js +0 -80
- package/.claude/core/project-manager.js.map +0 -1
- package/.claude/core/slash-command.js +0 -24
- package/.claude/core/version.js +0 -35
- package/.claude/core/version.js.map +0 -1
- package/.claude/helpers/checkpoint-manager.sh +0 -251
- package/.claude/helpers/github-safe.js +0 -106
- package/.claude/helpers/github-setup.sh +0 -28
- package/.claude/helpers/quick-start.sh +0 -19
- package/.claude/helpers/setup-mcp.sh +0 -18
- package/.claude/helpers/standard-checkpoint-hooks.sh +0 -179
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fixed orchestrator implementation for Claude-Flow
|
|
3
|
-
*/ import { JsonPersistenceManager } from './json-persistence.js';
|
|
4
|
-
export class Orchestrator {
|
|
5
|
-
config;
|
|
6
|
-
eventBus;
|
|
7
|
-
logger;
|
|
8
|
-
agents = new Map();
|
|
9
|
-
tasks = new Map();
|
|
10
|
-
sessions = new Map();
|
|
11
|
-
persistence;
|
|
12
|
-
workflows = new Map();
|
|
13
|
-
started = false;
|
|
14
|
-
constructor(config, eventBus, logger){
|
|
15
|
-
this.config = config;
|
|
16
|
-
this.eventBus = eventBus;
|
|
17
|
-
this.logger = logger;
|
|
18
|
-
this.persistence = new JsonPersistenceManager();
|
|
19
|
-
}
|
|
20
|
-
async start() {
|
|
21
|
-
if (this.started) {
|
|
22
|
-
throw new Error('Orchestrator already started');
|
|
23
|
-
}
|
|
24
|
-
this.logger.info('Starting orchestrator...');
|
|
25
|
-
// Initialize persistence
|
|
26
|
-
await this.persistence.initialize();
|
|
27
|
-
// Load existing agents and tasks from database
|
|
28
|
-
await this.loadFromPersistence();
|
|
29
|
-
// Initialize components
|
|
30
|
-
this.eventBus.emit('system:ready', {
|
|
31
|
-
timestamp: new Date()
|
|
32
|
-
});
|
|
33
|
-
this.started = true;
|
|
34
|
-
this.logger.info('Orchestrator started successfully');
|
|
35
|
-
}
|
|
36
|
-
async loadFromPersistence() {
|
|
37
|
-
// Load agents
|
|
38
|
-
const persistedAgents = await this.persistence.getActiveAgents();
|
|
39
|
-
for (const agent of persistedAgents){
|
|
40
|
-
this.agents.set(agent.id, {
|
|
41
|
-
id: agent.id,
|
|
42
|
-
type: agent.type,
|
|
43
|
-
name: agent.name,
|
|
44
|
-
status: agent.status,
|
|
45
|
-
assignedTasks: [],
|
|
46
|
-
createdAt: agent.createdAt
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
// Load tasks
|
|
50
|
-
const persistedTasks = await this.persistence.getActiveTasks();
|
|
51
|
-
for (const task of persistedTasks){
|
|
52
|
-
this.tasks.set(task.id, {
|
|
53
|
-
id: task.id,
|
|
54
|
-
type: task.type,
|
|
55
|
-
description: task.description,
|
|
56
|
-
status: task.status,
|
|
57
|
-
progress: task.progress,
|
|
58
|
-
assignedAgent: task.assignedAgent,
|
|
59
|
-
error: task.error
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
this.logger.info(`Loaded ${this.agents.size} agents and ${this.tasks.size} tasks from persistence`);
|
|
63
|
-
}
|
|
64
|
-
async stop() {
|
|
65
|
-
if (!this.started) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
this.logger.info('Stopping orchestrator...');
|
|
69
|
-
// Clean up resources
|
|
70
|
-
this.agents.clear();
|
|
71
|
-
this.tasks.clear();
|
|
72
|
-
this.sessions.clear();
|
|
73
|
-
this.workflows.clear();
|
|
74
|
-
// Close persistence
|
|
75
|
-
this.persistence.close();
|
|
76
|
-
this.started = false;
|
|
77
|
-
this.logger.info('Orchestrator stopped');
|
|
78
|
-
}
|
|
79
|
-
async spawnAgent(profile) {
|
|
80
|
-
const agentId = `agent-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
81
|
-
const agent = {
|
|
82
|
-
id: agentId,
|
|
83
|
-
type: profile.type,
|
|
84
|
-
name: profile.name,
|
|
85
|
-
status: 'active',
|
|
86
|
-
assignedTasks: [],
|
|
87
|
-
createdAt: Date.now()
|
|
88
|
-
};
|
|
89
|
-
// Save to persistence
|
|
90
|
-
await this.persistence.saveAgent({
|
|
91
|
-
id: agentId,
|
|
92
|
-
type: profile.type,
|
|
93
|
-
name: profile.name,
|
|
94
|
-
status: 'active',
|
|
95
|
-
capabilities: profile.capabilities,
|
|
96
|
-
systemPrompt: profile.systemPrompt,
|
|
97
|
-
maxConcurrentTasks: profile.maxConcurrentTasks,
|
|
98
|
-
priority: profile.priority,
|
|
99
|
-
createdAt: Date.now()
|
|
100
|
-
});
|
|
101
|
-
this.agents.set(agentId, agent);
|
|
102
|
-
this.eventBus.emit('agent:spawned', {
|
|
103
|
-
agentId,
|
|
104
|
-
profile
|
|
105
|
-
});
|
|
106
|
-
return agentId;
|
|
107
|
-
}
|
|
108
|
-
async terminateAgent(agentId) {
|
|
109
|
-
const agent = this.agents.get(agentId);
|
|
110
|
-
if (!agent) {
|
|
111
|
-
throw new Error(`Agent ${agentId} not found`);
|
|
112
|
-
}
|
|
113
|
-
// Update persistence
|
|
114
|
-
await this.persistence.updateAgentStatus(agentId, 'terminated');
|
|
115
|
-
this.agents.delete(agentId);
|
|
116
|
-
this.eventBus.emit('agent:terminated', {
|
|
117
|
-
agentId,
|
|
118
|
-
reason: 'User requested'
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
getActiveAgents() {
|
|
122
|
-
return Array.from(this.agents.values());
|
|
123
|
-
}
|
|
124
|
-
getAgentInfo(agentId) {
|
|
125
|
-
return this.agents.get(agentId);
|
|
126
|
-
}
|
|
127
|
-
async submitTask(task) {
|
|
128
|
-
const taskId = `task-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
129
|
-
const taskInfo = {
|
|
130
|
-
id: taskId,
|
|
131
|
-
type: task.type,
|
|
132
|
-
description: task.description,
|
|
133
|
-
status: 'pending',
|
|
134
|
-
progress: 0
|
|
135
|
-
};
|
|
136
|
-
// Save to persistence
|
|
137
|
-
await this.persistence.saveTask({
|
|
138
|
-
id: taskId,
|
|
139
|
-
type: task.type,
|
|
140
|
-
description: task.description,
|
|
141
|
-
status: 'pending',
|
|
142
|
-
priority: task.priority,
|
|
143
|
-
dependencies: task.dependencies,
|
|
144
|
-
metadata: task.metadata,
|
|
145
|
-
progress: 0,
|
|
146
|
-
createdAt: Date.now()
|
|
147
|
-
});
|
|
148
|
-
this.tasks.set(taskId, taskInfo);
|
|
149
|
-
this.eventBus.emit('task:created', {
|
|
150
|
-
taskId,
|
|
151
|
-
task
|
|
152
|
-
});
|
|
153
|
-
// Simulate task assignment
|
|
154
|
-
const availableAgents = Array.from(this.agents.values()).filter((a)=>a.status === 'active');
|
|
155
|
-
if (availableAgents.length > 0) {
|
|
156
|
-
const agent = availableAgents[0];
|
|
157
|
-
taskInfo.assignedAgent = agent.id;
|
|
158
|
-
taskInfo.status = 'assigned';
|
|
159
|
-
agent.assignedTasks.push(taskId);
|
|
160
|
-
this.eventBus.emit('task:assigned', {
|
|
161
|
-
taskId,
|
|
162
|
-
agentId: agent.id
|
|
163
|
-
});
|
|
164
|
-
// Update persistence with assignment
|
|
165
|
-
await this.persistence.updateTaskStatus(taskId, 'assigned', agent.id);
|
|
166
|
-
}
|
|
167
|
-
return taskId;
|
|
168
|
-
}
|
|
169
|
-
getTaskQueue() {
|
|
170
|
-
return Array.from(this.tasks.values());
|
|
171
|
-
}
|
|
172
|
-
getTaskStatus(taskId) {
|
|
173
|
-
return this.tasks.get(taskId);
|
|
174
|
-
}
|
|
175
|
-
async cancelTask(taskId) {
|
|
176
|
-
const task = this.tasks.get(taskId);
|
|
177
|
-
if (!task) {
|
|
178
|
-
throw new Error(`Task ${taskId} not found`);
|
|
179
|
-
}
|
|
180
|
-
task.status = 'cancelled';
|
|
181
|
-
this.eventBus.emit('task:cancelled', {
|
|
182
|
-
taskId
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
getActiveSessions() {
|
|
186
|
-
return Array.from(this.sessions.values());
|
|
187
|
-
}
|
|
188
|
-
async terminateSession(sessionId) {
|
|
189
|
-
const session = this.sessions.get(sessionId);
|
|
190
|
-
if (!session) {
|
|
191
|
-
throw new Error(`Session ${sessionId} not found`);
|
|
192
|
-
}
|
|
193
|
-
this.sessions.delete(sessionId);
|
|
194
|
-
this.eventBus.emit('session:terminated', {
|
|
195
|
-
sessionId
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
async executeWorkflow(workflow) {
|
|
199
|
-
const workflowId = `workflow-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
200
|
-
const status = {
|
|
201
|
-
status: 'running',
|
|
202
|
-
progress: 0
|
|
203
|
-
};
|
|
204
|
-
this.workflows.set(workflowId, status);
|
|
205
|
-
this.eventBus.emit('workflow:started', {
|
|
206
|
-
workflowId,
|
|
207
|
-
workflow
|
|
208
|
-
});
|
|
209
|
-
// Simulate workflow execution
|
|
210
|
-
setTimeout(()=>{
|
|
211
|
-
status.status = 'completed';
|
|
212
|
-
status.progress = 100;
|
|
213
|
-
this.eventBus.emit('workflow:completed', {
|
|
214
|
-
workflowId
|
|
215
|
-
});
|
|
216
|
-
}, 5000);
|
|
217
|
-
return workflowId;
|
|
218
|
-
}
|
|
219
|
-
async getWorkflowStatus(workflowId) {
|
|
220
|
-
const status = this.workflows.get(workflowId);
|
|
221
|
-
if (!status) {
|
|
222
|
-
throw new Error(`Workflow ${workflowId} not found`);
|
|
223
|
-
}
|
|
224
|
-
return status;
|
|
225
|
-
}
|
|
226
|
-
async healthCheck() {
|
|
227
|
-
return {
|
|
228
|
-
healthy: this.started,
|
|
229
|
-
memory: true,
|
|
230
|
-
terminalPool: true,
|
|
231
|
-
mcp: this.started
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
//# sourceMappingURL=orchestrator-fixed.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/orchestrator-fixed.ts"],"names":["JsonPersistenceManager","Orchestrator","agents","Map","tasks","sessions","persistence","workflows","started","config","eventBus","logger","start","Error","info","initialize","loadFromPersistence","emit","timestamp","Date","persistedAgents","getActiveAgents","agent","set","id","type","name","status","assignedTasks","createdAt","persistedTasks","getActiveTasks","task","description","progress","assignedAgent","error","size","stop","clear","close","spawnAgent","profile","agentId","now","Math","random","toString","substr","saveAgent","capabilities","systemPrompt","maxConcurrentTasks","priority","terminateAgent","get","updateAgentStatus","delete","reason","Array","from","values","getAgentInfo","submitTask","taskId","taskInfo","saveTask","dependencies","metadata","availableAgents","filter","a","length","push","updateTaskStatus","getTaskQueue","getTaskStatus","cancelTask","getActiveSessions","terminateSession","sessionId","session","executeWorkflow","workflow","workflowId","setTimeout","getWorkflowStatus","healthCheck","healthy","memory","terminalPool","mcp"],"mappings":"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"}
|