@praveencs/agent 0.9.30 → 0.10.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 +55 -9
- package/ROADMAP.md +42 -50
- package/agent-skills/README.md +192 -0
- package/agent-skills/plugins/aws/plugin.json +22 -0
- package/agent-skills/plugins/aws/skills/aws-manager.md +17 -0
- package/agent-skills/plugins/aws/tools/aws.js +152 -0
- package/agent-skills/plugins/discord/plugin.json +22 -0
- package/agent-skills/plugins/discord/skills/discord-manager.md +15 -0
- package/agent-skills/plugins/discord/tools/discord.js +150 -0
- package/agent-skills/plugins/docker/plugin.json +21 -0
- package/agent-skills/plugins/docker/skills/docker-manager.md +15 -0
- package/agent-skills/plugins/docker/tools/docker.js +135 -0
- package/agent-skills/plugins/firebase/plugin.json +22 -0
- package/agent-skills/plugins/firebase/skills/firebase-manager.md +14 -0
- package/agent-skills/plugins/firebase/tools/firebase.js +157 -0
- package/agent-skills/plugins/github/plugin.json +23 -0
- package/agent-skills/plugins/github/skills/github-manager.md +15 -0
- package/agent-skills/plugins/github/tools/github.js +133 -0
- package/agent-skills/plugins/huggingface/plugin.json +22 -0
- package/agent-skills/plugins/huggingface/skills/huggingface-manager.md +16 -0
- package/agent-skills/plugins/huggingface/tools/huggingface.js +149 -0
- package/agent-skills/plugins/linear/plugin.json +22 -0
- package/agent-skills/plugins/linear/skills/linear-manager.md +16 -0
- package/agent-skills/plugins/linear/tools/linear.js +199 -0
- package/agent-skills/plugins/mongodb/plugin.json +21 -0
- package/agent-skills/plugins/mongodb/skills/mongodb-manager.md +14 -0
- package/agent-skills/plugins/mongodb/tools/mongodb.js +123 -0
- package/agent-skills/plugins/notion/plugin.json +22 -0
- package/agent-skills/plugins/notion/skills/notion-manager.md +16 -0
- package/agent-skills/plugins/notion/tools/notion.js +158 -0
- package/agent-skills/plugins/openai/plugin.json +23 -0
- package/agent-skills/plugins/openai/skills/openai-manager.md +15 -0
- package/agent-skills/plugins/openai/tools/openai.js +137 -0
- package/agent-skills/plugins/resend/plugin.json +21 -0
- package/agent-skills/plugins/resend/skills/resend-manager.md +15 -0
- package/agent-skills/plugins/resend/tools/resend.js +102 -0
- package/agent-skills/plugins/slack/plugin.json +22 -0
- package/agent-skills/plugins/slack/skills/slack-manager.md +15 -0
- package/agent-skills/plugins/slack/tools/slack.js +168 -0
- package/agent-skills/plugins/stripe/plugin.json +22 -0
- package/agent-skills/plugins/stripe/skills/stripe-manager.md +16 -0
- package/agent-skills/plugins/stripe/tools/stripe.js +174 -0
- package/agent-skills/plugins/supabase/plugin.json +22 -0
- package/agent-skills/plugins/supabase/skills/supabase-manager.md +16 -0
- package/agent-skills/plugins/supabase/tools/supabase.js +153 -0
- package/agent-skills/plugins/telegram/plugin.json +21 -0
- package/agent-skills/plugins/telegram/skills/telegram-manager.md +14 -0
- package/agent-skills/plugins/telegram/tools/telegram.js +131 -0
- package/agent-skills/plugins/vercel/plugin.json +22 -0
- package/agent-skills/plugins/vercel/skills/vercel-manager.md +15 -0
- package/agent-skills/plugins/vercel/tools/vercel.js +145 -0
- package/agent-skills/registry.json +675 -0
- package/agent-skills/skills/api-tester/prompt.md +27 -0
- package/agent-skills/skills/api-tester/skill.json +16 -0
- package/agent-skills/skills/backup/prompt.md +12 -0
- package/agent-skills/skills/backup/skill.json +1 -0
- package/agent-skills/skills/code-review/prompt.md +29 -0
- package/agent-skills/skills/code-review/skill.json +18 -0
- package/agent-skills/skills/create-note/prompt.md +21 -0
- package/agent-skills/skills/create-note/skill.json +15 -0
- package/agent-skills/skills/cron-scheduler/prompt.md +25 -0
- package/agent-skills/skills/cron-scheduler/skill.json +1 -0
- package/agent-skills/skills/db-query/prompt.md +12 -0
- package/agent-skills/skills/db-query/skill.json +1 -0
- package/agent-skills/skills/docker-deploy/prompt.md +21 -0
- package/agent-skills/skills/docker-deploy/skill.json +16 -0
- package/agent-skills/skills/file-organizer/prompt.md +32 -0
- package/agent-skills/skills/file-organizer/skill.json +19 -0
- package/agent-skills/skills/git-commit/prompt.md +21 -0
- package/agent-skills/skills/git-commit/skill.json +17 -0
- package/agent-skills/skills/log-analyzer/prompt.md +16 -0
- package/agent-skills/skills/log-analyzer/skill.json +1 -0
- package/agent-skills/skills/npm-publish/prompt.md +24 -0
- package/agent-skills/skills/npm-publish/skill.json +20 -0
- package/agent-skills/skills/open-vscode/prompt.md +8 -0
- package/agent-skills/skills/open-vscode/skill.json +15 -0
- package/agent-skills/skills/project-scaffold/prompt.md +43 -0
- package/agent-skills/skills/project-scaffold/skill.json +17 -0
- package/agent-skills/skills/send-email/prompt.md +19 -0
- package/agent-skills/skills/send-email/send.js +60 -0
- package/agent-skills/skills/send-email/skill.json +16 -0
- package/agent-skills/skills/system-monitor/prompt.md +27 -0
- package/agent-skills/skills/system-monitor/skill.json +15 -0
- package/agent-skills/skills/web-search/prompt.md +26 -0
- package/agent-skills/skills/web-search/skill.json +16 -0
- package/dist/src/cli/commands/desktop.d.ts +3 -0
- package/dist/src/cli/commands/desktop.d.ts.map +1 -0
- package/dist/src/cli/commands/desktop.js +80 -0
- package/dist/src/cli/commands/desktop.js.map +1 -0
- package/dist/src/cli/commands/multimodal.d.ts +3 -0
- package/dist/src/cli/commands/multimodal.d.ts.map +1 -0
- package/dist/src/cli/commands/multimodal.js +78 -0
- package/dist/src/cli/commands/multimodal.js.map +1 -0
- package/dist/src/cli/commands/sandbox.d.ts +3 -0
- package/dist/src/cli/commands/sandbox.d.ts.map +1 -0
- package/dist/src/cli/commands/sandbox.js +89 -0
- package/dist/src/cli/commands/sandbox.js.map +1 -0
- package/dist/src/cli/commands/swarm.d.ts +3 -0
- package/dist/src/cli/commands/swarm.d.ts.map +1 -0
- package/dist/src/cli/commands/swarm.js +120 -0
- package/dist/src/cli/commands/swarm.js.map +1 -0
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +8 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/config/defaults.d.ts.map +1 -1
- package/dist/src/config/defaults.js +42 -0
- package/dist/src/config/defaults.js.map +1 -1
- package/dist/src/config/schema.d.ts +261 -0
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +58 -0
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/desktop/engine.d.ts +42 -0
- package/dist/src/desktop/engine.d.ts.map +1 -0
- package/dist/src/desktop/engine.js +77 -0
- package/dist/src/desktop/engine.js.map +1 -0
- package/dist/src/desktop/index.d.ts +6 -0
- package/dist/src/desktop/index.d.ts.map +1 -0
- package/dist/src/desktop/index.js +6 -0
- package/dist/src/desktop/index.js.map +1 -0
- package/dist/src/desktop/input.d.ts +20 -0
- package/dist/src/desktop/input.d.ts.map +1 -0
- package/dist/src/desktop/input.js +160 -0
- package/dist/src/desktop/input.js.map +1 -0
- package/dist/src/desktop/screen.d.ts +17 -0
- package/dist/src/desktop/screen.d.ts.map +1 -0
- package/dist/src/desktop/screen.js +120 -0
- package/dist/src/desktop/screen.js.map +1 -0
- package/dist/src/desktop/types.d.ts +50 -0
- package/dist/src/desktop/types.d.ts.map +1 -0
- package/dist/src/desktop/types.js +10 -0
- package/dist/src/desktop/types.js.map +1 -0
- package/dist/src/multimodal/engine.d.ts +33 -0
- package/dist/src/multimodal/engine.d.ts.map +1 -0
- package/dist/src/multimodal/engine.js +63 -0
- package/dist/src/multimodal/engine.js.map +1 -0
- package/dist/src/multimodal/index.d.ts +7 -0
- package/dist/src/multimodal/index.d.ts.map +1 -0
- package/dist/src/multimodal/index.js +7 -0
- package/dist/src/multimodal/index.js.map +1 -0
- package/dist/src/multimodal/tts.d.ts +11 -0
- package/dist/src/multimodal/tts.d.ts.map +1 -0
- package/dist/src/multimodal/tts.js +48 -0
- package/dist/src/multimodal/tts.js.map +1 -0
- package/dist/src/multimodal/types.d.ts +55 -0
- package/dist/src/multimodal/types.d.ts.map +1 -0
- package/dist/src/multimodal/types.js +20 -0
- package/dist/src/multimodal/types.js.map +1 -0
- package/dist/src/multimodal/vision.d.ts +15 -0
- package/dist/src/multimodal/vision.d.ts.map +1 -0
- package/dist/src/multimodal/vision.js +98 -0
- package/dist/src/multimodal/vision.js.map +1 -0
- package/dist/src/multimodal/voice.d.ts +11 -0
- package/dist/src/multimodal/voice.d.ts.map +1 -0
- package/dist/src/multimodal/voice.js +43 -0
- package/dist/src/multimodal/voice.js.map +1 -0
- package/dist/src/plans/types.d.ts +18 -18
- package/dist/src/sandbox/docker.d.ts +42 -0
- package/dist/src/sandbox/docker.d.ts.map +1 -0
- package/dist/src/sandbox/docker.js +131 -0
- package/dist/src/sandbox/docker.js.map +1 -0
- package/dist/src/sandbox/engine.d.ts +50 -0
- package/dist/src/sandbox/engine.d.ts.map +1 -0
- package/dist/src/sandbox/engine.js +133 -0
- package/dist/src/sandbox/engine.js.map +1 -0
- package/dist/src/sandbox/index.d.ts +5 -0
- package/dist/src/sandbox/index.d.ts.map +1 -0
- package/dist/src/sandbox/index.js +5 -0
- package/dist/src/sandbox/index.js.map +1 -0
- package/dist/src/sandbox/types.d.ts +41 -0
- package/dist/src/sandbox/types.d.ts.map +1 -0
- package/dist/src/sandbox/types.js +12 -0
- package/dist/src/sandbox/types.js.map +1 -0
- package/dist/src/scripts/types.d.ts +2 -2
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +133 -0
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/swarm/bus.d.ts +27 -0
- package/dist/src/swarm/bus.d.ts.map +1 -0
- package/dist/src/swarm/bus.js +64 -0
- package/dist/src/swarm/bus.js.map +1 -0
- package/dist/src/swarm/index.d.ts +6 -0
- package/dist/src/swarm/index.d.ts.map +1 -0
- package/dist/src/swarm/index.js +6 -0
- package/dist/src/swarm/index.js.map +1 -0
- package/dist/src/swarm/orchestrator.d.ts +79 -0
- package/dist/src/swarm/orchestrator.d.ts.map +1 -0
- package/dist/src/swarm/orchestrator.js +271 -0
- package/dist/src/swarm/orchestrator.js.map +1 -0
- package/dist/src/swarm/roles.d.ts +18 -0
- package/dist/src/swarm/roles.d.ts.map +1 -0
- package/dist/src/swarm/roles.js +83 -0
- package/dist/src/swarm/roles.js.map +1 -0
- package/dist/src/swarm/types.d.ts +58 -0
- package/dist/src/swarm/types.d.ts.map +1 -0
- package/dist/src/swarm/types.js +10 -0
- package/dist/src/swarm/types.js.map +1 -0
- package/dist/src/tools/core/cmd.d.ts.map +1 -1
- package/dist/src/tools/core/cmd.js +28 -0
- package/dist/src/tools/core/cmd.js.map +1 -1
- package/docs/DOCUMENTATION.md +137 -0
- package/package.json +3 -1
- package/studio/README.md +73 -0
- package/studio/eslint.config.js +23 -0
- package/studio/index.html +13 -0
- package/studio/package-lock.json +4350 -0
- package/studio/package.json +44 -0
- package/studio/postcss.config.js +6 -0
- package/studio/public/vite.svg +1 -0
- package/studio/src/App.tsx +243 -0
- package/studio/src/assets/react.svg +1 -0
- package/studio/src/components/Capabilities.tsx +80 -0
- package/studio/src/components/CommandsManager.tsx +94 -0
- package/studio/src/components/CostDashboard.tsx +182 -0
- package/studio/src/components/CredentialCapture.tsx +196 -0
- package/studio/src/components/CredentialsManager.tsx +257 -0
- package/studio/src/components/DaemonPanel.tsx +91 -0
- package/studio/src/components/DesktopPanel.tsx +118 -0
- package/studio/src/components/GoalTemplates.tsx +190 -0
- package/studio/src/components/GoalsPanel.tsx +235 -0
- package/studio/src/components/MemoryExplorer.tsx +152 -0
- package/studio/src/components/MultimodalPanel.tsx +150 -0
- package/studio/src/components/NotificationsPanel.tsx +175 -0
- package/studio/src/components/PluginsManager.tsx +60 -0
- package/studio/src/components/SandboxPanel.tsx +118 -0
- package/studio/src/components/ScriptsManager.tsx +269 -0
- package/studio/src/components/SkillsManager.tsx +123 -0
- package/studio/src/components/SwarmPanel.tsx +149 -0
- package/studio/src/components/TaskStreaming.tsx +189 -0
- package/studio/src/components/Terminal.tsx +200 -0
- package/studio/src/index.css +51 -0
- package/studio/src/main.tsx +13 -0
- package/studio/tailwind.config.js +47 -0
- package/studio/tsconfig.app.json +28 -0
- package/studio/tsconfig.json +7 -0
- package/studio/tsconfig.node.json +26 -0
- package/studio/vite.config.ts +7 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// ─── Inter-Agent Message Bus ───
|
|
2
|
+
// Event-driven pub/sub for swarm agent communication.
|
|
3
|
+
import { EventEmitter } from 'node:events';
|
|
4
|
+
import { randomUUID } from 'node:crypto';
|
|
5
|
+
export class MessageBus extends EventEmitter {
|
|
6
|
+
messages = [];
|
|
7
|
+
subscriptions = new Map(); // agentId -> Set of types
|
|
8
|
+
/**
|
|
9
|
+
* Send a message from one agent to another (or broadcast).
|
|
10
|
+
*/
|
|
11
|
+
send(from, to, type, payload) {
|
|
12
|
+
const message = {
|
|
13
|
+
id: randomUUID(),
|
|
14
|
+
from,
|
|
15
|
+
to,
|
|
16
|
+
type,
|
|
17
|
+
payload,
|
|
18
|
+
timestamp: new Date(),
|
|
19
|
+
};
|
|
20
|
+
this.messages.push(message);
|
|
21
|
+
// Emit to specific agent
|
|
22
|
+
if (to === 'broadcast') {
|
|
23
|
+
this.emit('broadcast', message);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.emit(`agent:${to}`, message);
|
|
27
|
+
}
|
|
28
|
+
// Emit globally for monitoring
|
|
29
|
+
this.emit('message', message);
|
|
30
|
+
return message;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Subscribe an agent to receive messages.
|
|
34
|
+
*/
|
|
35
|
+
subscribe(agentId, callback) {
|
|
36
|
+
this.on(`agent:${agentId}`, callback);
|
|
37
|
+
this.on('broadcast', (msg) => {
|
|
38
|
+
// Don't echo broadcasts back to sender
|
|
39
|
+
if (msg.from !== agentId)
|
|
40
|
+
callback(msg);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get message history for an agent.
|
|
45
|
+
*/
|
|
46
|
+
getHistory(agentId) {
|
|
47
|
+
return this.messages.filter(m => m.from === agentId || m.to === agentId || m.to === 'broadcast');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get all messages.
|
|
51
|
+
*/
|
|
52
|
+
getAllMessages() {
|
|
53
|
+
return [...this.messages];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Clear all messages and listeners.
|
|
57
|
+
*/
|
|
58
|
+
reset() {
|
|
59
|
+
this.messages = [];
|
|
60
|
+
this.subscriptions.clear();
|
|
61
|
+
this.removeAllListeners();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../../../src/swarm/bus.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,sDAAsD;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,OAAO,UAAW,SAAQ,YAAY;IAChC,QAAQ,GAAmB,EAAE,CAAC;IAC9B,aAAa,GAA6B,IAAI,GAAG,EAAE,CAAC,CAAC,0BAA0B;IAEvF;;OAEG;IACH,IAAI,CAAC,IAAY,EAAE,EAAU,EAAE,IAAsB,EAAE,OAAgB;QACnE,MAAM,OAAO,GAAiB;YAC1B,EAAE,EAAE,UAAU,EAAE;YAChB,IAAI;YACJ,EAAE;YACF,IAAI;YACJ,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5B,yBAAyB;QACzB,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAe,EAAE,QAAqC;QAC5D,IAAI,CAAC,EAAE,CAAC,SAAS,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,GAAiB,EAAE,EAAE;YACvC,uCAAuC;YACvC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IACrG,CAAC;IAED;;OAEG;IACH,cAAc;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;CACJ"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { SwarmOrchestrator, getSwarmOrchestrator, initSwarmOrchestrator } from './orchestrator.js';
|
|
2
|
+
export { MessageBus } from './bus.js';
|
|
3
|
+
export { BUILT_IN_ROLES, getRole, getAllRoles } from './roles.js';
|
|
4
|
+
export type { SwarmConfig, SwarmState, SwarmAgent, AgentTask, AgentRole, SwarmMessage, SwarmMessageType, } from './types.js';
|
|
5
|
+
export { DEFAULT_SWARM_CONFIG } from './types.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/swarm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EACR,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAC9C,SAAS,EAAE,YAAY,EAAE,gBAAgB,GAC5C,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// ─── Swarm Module Index ───
|
|
2
|
+
export { SwarmOrchestrator, getSwarmOrchestrator, initSwarmOrchestrator } from './orchestrator.js';
|
|
3
|
+
export { MessageBus } from './bus.js';
|
|
4
|
+
export { BUILT_IN_ROLES, getRole, getAllRoles } from './roles.js';
|
|
5
|
+
export { DEFAULT_SWARM_CONFIG } from './types.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/swarm/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKlE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { SwarmConfig, SwarmState, SwarmAgent, AgentTask, AgentRole } from './types.js';
|
|
2
|
+
export declare class SwarmOrchestrator {
|
|
3
|
+
private config;
|
|
4
|
+
private bus;
|
|
5
|
+
private state;
|
|
6
|
+
private taskCallbacks;
|
|
7
|
+
constructor(config?: Partial<SwarmConfig>);
|
|
8
|
+
/** Current swarm state */
|
|
9
|
+
get swarmState(): SwarmState;
|
|
10
|
+
/** Whether the swarm is actively processing */
|
|
11
|
+
get isActive(): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Start a swarm session for a given goal.
|
|
14
|
+
* The orchestrator will:
|
|
15
|
+
* 1. Spawn a planner agent
|
|
16
|
+
* 2. Let the planner decompose the goal into tasks
|
|
17
|
+
* 3. Spawn specialist agents for each task
|
|
18
|
+
* 4. Coordinate execution and collect results
|
|
19
|
+
*/
|
|
20
|
+
run(goal: string): Promise<SwarmState>;
|
|
21
|
+
/**
|
|
22
|
+
* Spawn a new agent with a specific role.
|
|
23
|
+
*/
|
|
24
|
+
spawnAgent(role: AgentRole, name?: string): SwarmAgent;
|
|
25
|
+
/**
|
|
26
|
+
* Create a task and add it to the task queue.
|
|
27
|
+
*/
|
|
28
|
+
createTask(opts: {
|
|
29
|
+
description: string;
|
|
30
|
+
role: AgentRole;
|
|
31
|
+
parentTaskId?: string;
|
|
32
|
+
}): AgentTask;
|
|
33
|
+
/**
|
|
34
|
+
* Assign a task to a specific agent.
|
|
35
|
+
*/
|
|
36
|
+
assignTask(taskId: string, agentId: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* Complete a task with a result.
|
|
39
|
+
*/
|
|
40
|
+
completeTask(taskId: string, result: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Fail a task with an error.
|
|
43
|
+
*/
|
|
44
|
+
failTask(taskId: string, error: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* Handle delegation: an agent requests spawning a sub-agent.
|
|
47
|
+
*/
|
|
48
|
+
delegate(fromAgentId: string, role: AgentRole, description: string): AgentTask;
|
|
49
|
+
/**
|
|
50
|
+
* Get a status summary for display.
|
|
51
|
+
*/
|
|
52
|
+
getStatus(): {
|
|
53
|
+
swarmId: string;
|
|
54
|
+
status: string;
|
|
55
|
+
goal?: string;
|
|
56
|
+
agents: Array<{
|
|
57
|
+
id: string;
|
|
58
|
+
role: string;
|
|
59
|
+
status: string;
|
|
60
|
+
task?: string;
|
|
61
|
+
}>;
|
|
62
|
+
tasks: Array<{
|
|
63
|
+
id: string;
|
|
64
|
+
role: string;
|
|
65
|
+
status: string;
|
|
66
|
+
assignedTo?: string;
|
|
67
|
+
}>;
|
|
68
|
+
uptime?: number;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Stop the swarm and clean up.
|
|
72
|
+
*/
|
|
73
|
+
stop(): void;
|
|
74
|
+
private handleMessage;
|
|
75
|
+
private handleAgentMessage;
|
|
76
|
+
}
|
|
77
|
+
export declare function getSwarmOrchestrator(): SwarmOrchestrator | null;
|
|
78
|
+
export declare function initSwarmOrchestrator(config?: Partial<SwarmConfig>): SwarmOrchestrator;
|
|
79
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/swarm/orchestrator.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAC9C,SAAS,EACZ,MAAM,YAAY,CAAC;AAGpB,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,aAAa,CAAoD;gBAE7D,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;IAWzC,0BAA0B;IAC1B,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,+CAA+C;IAC/C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;;;;;OAOG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqC5C;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU;IA0BtD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,SAAS,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,GAAG,SAAS;IAcb;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAkBjD;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAmClD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAoB7C;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS;IAyB9E;;OAEG;IACH,SAAS,IAAI;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC3E,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChF,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB;IAuBD;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,kBAAkB;CAU7B;AAKD,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAE/D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,iBAAiB,CAGtF"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
// ─── Swarm Orchestrator ───
|
|
2
|
+
// Coordinates multiple specialized agents to accomplish complex goals.
|
|
3
|
+
// Decomposes goals into tasks, spawns agents, routes messages, and collects results.
|
|
4
|
+
import { randomUUID } from 'node:crypto';
|
|
5
|
+
import { MessageBus } from './bus.js';
|
|
6
|
+
import { getRole } from './roles.js';
|
|
7
|
+
import { DEFAULT_SWARM_CONFIG } from './types.js';
|
|
8
|
+
export class SwarmOrchestrator {
|
|
9
|
+
config;
|
|
10
|
+
bus;
|
|
11
|
+
state;
|
|
12
|
+
taskCallbacks = new Map();
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.config = { ...DEFAULT_SWARM_CONFIG, ...config };
|
|
15
|
+
this.bus = new MessageBus();
|
|
16
|
+
this.state = {
|
|
17
|
+
id: randomUUID(),
|
|
18
|
+
status: 'idle',
|
|
19
|
+
agents: [],
|
|
20
|
+
tasks: [],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** Current swarm state */
|
|
24
|
+
get swarmState() {
|
|
25
|
+
return { ...this.state };
|
|
26
|
+
}
|
|
27
|
+
/** Whether the swarm is actively processing */
|
|
28
|
+
get isActive() {
|
|
29
|
+
return this.state.status === 'running';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Start a swarm session for a given goal.
|
|
33
|
+
* The orchestrator will:
|
|
34
|
+
* 1. Spawn a planner agent
|
|
35
|
+
* 2. Let the planner decompose the goal into tasks
|
|
36
|
+
* 3. Spawn specialist agents for each task
|
|
37
|
+
* 4. Coordinate execution and collect results
|
|
38
|
+
*/
|
|
39
|
+
async run(goal) {
|
|
40
|
+
this.state.status = 'running';
|
|
41
|
+
this.state.goalDescription = goal;
|
|
42
|
+
this.state.startedAt = new Date();
|
|
43
|
+
try {
|
|
44
|
+
// Phase 1: Planning
|
|
45
|
+
const plannerAgent = this.spawnAgent('planner');
|
|
46
|
+
const planTask = this.createTask({
|
|
47
|
+
description: `Analyze and decompose the following goal into actionable tasks:\n\n${goal}`,
|
|
48
|
+
role: 'planner',
|
|
49
|
+
});
|
|
50
|
+
this.assignTask(planTask.id, plannerAgent.id);
|
|
51
|
+
// Phase 2: The planner will produce subtasks via the message bus
|
|
52
|
+
// In a full implementation, this would invoke the LLM per agent.
|
|
53
|
+
// For now, we set up the coordination framework.
|
|
54
|
+
// Monitor the bus for task completions
|
|
55
|
+
this.bus.on('message', (msg) => {
|
|
56
|
+
this.handleMessage(msg);
|
|
57
|
+
});
|
|
58
|
+
// Phase 3: Mark orchestrator as ready
|
|
59
|
+
this.bus.send('orchestrator', 'broadcast', 'status_update', {
|
|
60
|
+
status: 'Swarm initialized',
|
|
61
|
+
goal,
|
|
62
|
+
agents: this.state.agents.length,
|
|
63
|
+
});
|
|
64
|
+
return this.state;
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
this.state.status = 'failed';
|
|
68
|
+
throw err;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Spawn a new agent with a specific role.
|
|
73
|
+
*/
|
|
74
|
+
spawnAgent(role, name) {
|
|
75
|
+
if (this.state.agents.length >= this.config.maxAgents) {
|
|
76
|
+
throw new Error(`Max agents (${this.config.maxAgents}) reached. Increase swarm.maxAgents in config.`);
|
|
77
|
+
}
|
|
78
|
+
const roleDef = getRole(role);
|
|
79
|
+
const agent = {
|
|
80
|
+
id: `agent-${role}-${randomUUID().slice(0, 8)}`,
|
|
81
|
+
role,
|
|
82
|
+
name: name || roleDef?.name || role,
|
|
83
|
+
status: 'idle',
|
|
84
|
+
model: this.config.model,
|
|
85
|
+
depth: 0,
|
|
86
|
+
completedTasks: 0,
|
|
87
|
+
};
|
|
88
|
+
this.state.agents.push(agent);
|
|
89
|
+
// Subscribe agent to the message bus
|
|
90
|
+
this.bus.subscribe(agent.id, (msg) => {
|
|
91
|
+
this.handleAgentMessage(agent.id, msg);
|
|
92
|
+
});
|
|
93
|
+
return agent;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create a task and add it to the task queue.
|
|
97
|
+
*/
|
|
98
|
+
createTask(opts) {
|
|
99
|
+
const task = {
|
|
100
|
+
id: `task-${randomUUID().slice(0, 8)}`,
|
|
101
|
+
description: opts.description,
|
|
102
|
+
role: opts.role,
|
|
103
|
+
status: 'pending',
|
|
104
|
+
createdAt: new Date(),
|
|
105
|
+
parentTaskId: opts.parentTaskId,
|
|
106
|
+
};
|
|
107
|
+
this.state.tasks.push(task);
|
|
108
|
+
return task;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Assign a task to a specific agent.
|
|
112
|
+
*/
|
|
113
|
+
assignTask(taskId, agentId) {
|
|
114
|
+
const task = this.state.tasks.find(t => t.id === taskId);
|
|
115
|
+
const agent = this.state.agents.find(a => a.id === agentId);
|
|
116
|
+
if (!task || !agent)
|
|
117
|
+
throw new Error('Task or agent not found');
|
|
118
|
+
task.assignedTo = agentId;
|
|
119
|
+
task.status = 'running';
|
|
120
|
+
agent.status = 'busy';
|
|
121
|
+
agent.currentTask = taskId;
|
|
122
|
+
this.bus.send('orchestrator', agentId, 'task_assign', {
|
|
123
|
+
taskId: task.id,
|
|
124
|
+
description: task.description,
|
|
125
|
+
role: task.role,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Complete a task with a result.
|
|
130
|
+
*/
|
|
131
|
+
completeTask(taskId, result) {
|
|
132
|
+
const task = this.state.tasks.find(t => t.id === taskId);
|
|
133
|
+
if (!task)
|
|
134
|
+
return;
|
|
135
|
+
task.status = 'completed';
|
|
136
|
+
task.result = result;
|
|
137
|
+
task.completedAt = new Date();
|
|
138
|
+
const agent = this.state.agents.find(a => a.id === task.assignedTo);
|
|
139
|
+
if (agent) {
|
|
140
|
+
agent.status = 'idle';
|
|
141
|
+
agent.currentTask = undefined;
|
|
142
|
+
agent.completedTasks++;
|
|
143
|
+
}
|
|
144
|
+
this.bus.send(task.assignedTo || 'unknown', 'orchestrator', 'task_result', {
|
|
145
|
+
taskId,
|
|
146
|
+
result,
|
|
147
|
+
});
|
|
148
|
+
// Check if all tasks are done
|
|
149
|
+
const allDone = this.state.tasks.every(t => t.status === 'completed' || t.status === 'failed');
|
|
150
|
+
if (allDone && this.state.tasks.length > 0) {
|
|
151
|
+
this.state.status = 'completed';
|
|
152
|
+
this.state.completedAt = new Date();
|
|
153
|
+
}
|
|
154
|
+
// Resolve any waiting callbacks
|
|
155
|
+
const cb = this.taskCallbacks.get(taskId);
|
|
156
|
+
if (cb) {
|
|
157
|
+
cb(result);
|
|
158
|
+
this.taskCallbacks.delete(taskId);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Fail a task with an error.
|
|
163
|
+
*/
|
|
164
|
+
failTask(taskId, error) {
|
|
165
|
+
const task = this.state.tasks.find(t => t.id === taskId);
|
|
166
|
+
if (!task)
|
|
167
|
+
return;
|
|
168
|
+
task.status = 'failed';
|
|
169
|
+
task.error = error;
|
|
170
|
+
task.completedAt = new Date();
|
|
171
|
+
const agent = this.state.agents.find(a => a.id === task.assignedTo);
|
|
172
|
+
if (agent) {
|
|
173
|
+
agent.status = 'error';
|
|
174
|
+
agent.currentTask = undefined;
|
|
175
|
+
}
|
|
176
|
+
this.bus.send(task.assignedTo || 'unknown', 'orchestrator', 'task_error', {
|
|
177
|
+
taskId,
|
|
178
|
+
error,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Handle delegation: an agent requests spawning a sub-agent.
|
|
183
|
+
*/
|
|
184
|
+
delegate(fromAgentId, role, description) {
|
|
185
|
+
const fromAgent = this.state.agents.find(a => a.id === fromAgentId);
|
|
186
|
+
if (!fromAgent)
|
|
187
|
+
throw new Error(`Agent ${fromAgentId} not found`);
|
|
188
|
+
if (fromAgent.depth >= this.config.maxDelegationDepth) {
|
|
189
|
+
throw new Error(`Max delegation depth (${this.config.maxDelegationDepth}) reached`);
|
|
190
|
+
}
|
|
191
|
+
if (!this.config.allowDelegation) {
|
|
192
|
+
throw new Error('Delegation is disabled in swarm config');
|
|
193
|
+
}
|
|
194
|
+
const subAgent = this.spawnAgent(role);
|
|
195
|
+
subAgent.depth = fromAgent.depth + 1;
|
|
196
|
+
const task = this.createTask({
|
|
197
|
+
description,
|
|
198
|
+
role,
|
|
199
|
+
parentTaskId: fromAgent.currentTask,
|
|
200
|
+
});
|
|
201
|
+
this.assignTask(task.id, subAgent.id);
|
|
202
|
+
return task;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Get a status summary for display.
|
|
206
|
+
*/
|
|
207
|
+
getStatus() {
|
|
208
|
+
return {
|
|
209
|
+
swarmId: this.state.id,
|
|
210
|
+
status: this.state.status,
|
|
211
|
+
goal: this.state.goalDescription,
|
|
212
|
+
agents: this.state.agents.map(a => ({
|
|
213
|
+
id: a.id,
|
|
214
|
+
role: a.role,
|
|
215
|
+
status: a.status,
|
|
216
|
+
task: a.currentTask,
|
|
217
|
+
})),
|
|
218
|
+
tasks: this.state.tasks.map(t => ({
|
|
219
|
+
id: t.id,
|
|
220
|
+
role: t.role,
|
|
221
|
+
status: t.status,
|
|
222
|
+
assignedTo: t.assignedTo,
|
|
223
|
+
})),
|
|
224
|
+
uptime: this.state.startedAt
|
|
225
|
+
? Date.now() - this.state.startedAt.getTime()
|
|
226
|
+
: undefined,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Stop the swarm and clean up.
|
|
231
|
+
*/
|
|
232
|
+
stop() {
|
|
233
|
+
this.state.status = 'idle';
|
|
234
|
+
this.state.completedAt = new Date();
|
|
235
|
+
this.bus.reset();
|
|
236
|
+
}
|
|
237
|
+
// ─── Internal message handling ───
|
|
238
|
+
handleMessage(msg) {
|
|
239
|
+
if (msg.type === 'delegate') {
|
|
240
|
+
const { role, description } = msg.payload;
|
|
241
|
+
try {
|
|
242
|
+
this.delegate(msg.from, role, description);
|
|
243
|
+
}
|
|
244
|
+
catch (err) {
|
|
245
|
+
this.bus.send('orchestrator', msg.from, 'task_error', {
|
|
246
|
+
error: err.message,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
handleAgentMessage(_agentId, msg) {
|
|
252
|
+
if (msg.type === 'task_result') {
|
|
253
|
+
const { taskId, result } = msg.payload;
|
|
254
|
+
this.completeTask(taskId, result);
|
|
255
|
+
}
|
|
256
|
+
if (msg.type === 'task_error') {
|
|
257
|
+
const { taskId, error } = msg.payload;
|
|
258
|
+
this.failTask(taskId, error);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// ─── Singleton ───
|
|
263
|
+
let swarmInstance = null;
|
|
264
|
+
export function getSwarmOrchestrator() {
|
|
265
|
+
return swarmInstance;
|
|
266
|
+
}
|
|
267
|
+
export function initSwarmOrchestrator(config) {
|
|
268
|
+
swarmInstance = new SwarmOrchestrator(config);
|
|
269
|
+
return swarmInstance;
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/swarm/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AgentRole } from './types.js';
|
|
2
|
+
export interface RoleDefinition {
|
|
3
|
+
role: AgentRole;
|
|
4
|
+
name: string;
|
|
5
|
+
systemPrompt: string;
|
|
6
|
+
capabilities: string[];
|
|
7
|
+
tools: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare const BUILT_IN_ROLES: Record<string, RoleDefinition>;
|
|
10
|
+
/**
|
|
11
|
+
* Get a role definition by name.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getRole(role: AgentRole): RoleDefinition | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Get all available roles.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getAllRoles(): RoleDefinition[];
|
|
18
|
+
//# sourceMappingURL=roles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../../src/swarm/roles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAuEzD,CAAC;AAEF;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,SAAS,CAEnE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// ─── Built-in Agent Role Definitions ───
|
|
2
|
+
// System prompts and capabilities for each specialized agent role.
|
|
3
|
+
export const BUILT_IN_ROLES = {
|
|
4
|
+
planner: {
|
|
5
|
+
role: 'planner',
|
|
6
|
+
name: 'Planner',
|
|
7
|
+
systemPrompt: `You are the Planner agent in a multi-agent swarm. Your job is to:
|
|
8
|
+
1. Analyze the high-level goal and break it into concrete, actionable tasks
|
|
9
|
+
2. Assign tasks to the appropriate specialist agents (coder, researcher, tester, reviewer)
|
|
10
|
+
3. Define dependencies between tasks and the correct execution order
|
|
11
|
+
4. Monitor progress and re-plan if tasks fail or new information emerges
|
|
12
|
+
|
|
13
|
+
Output your plan as a JSON array of tasks with: description, role, dependencies.
|
|
14
|
+
Do NOT write code yourself — delegate to the coder agent.`,
|
|
15
|
+
capabilities: ['task_decomposition', 'delegation', 'planning'],
|
|
16
|
+
tools: ['fs.read', 'project.detect'],
|
|
17
|
+
},
|
|
18
|
+
coder: {
|
|
19
|
+
role: 'coder',
|
|
20
|
+
name: 'Coder',
|
|
21
|
+
systemPrompt: `You are the Coder agent in a multi-agent swarm. Your job is to:
|
|
22
|
+
1. Write high-quality, production-ready code to complete assigned tasks
|
|
23
|
+
2. Follow existing code conventions and patterns in the project
|
|
24
|
+
3. Create new files or modify existing ones as needed
|
|
25
|
+
4. Report back with a summary of all files changed
|
|
26
|
+
|
|
27
|
+
Always write clean, well-documented code. Test your changes mentally before submitting.`,
|
|
28
|
+
capabilities: ['code_generation', 'file_editing', 'refactoring'],
|
|
29
|
+
tools: ['fs.read', 'fs.write', 'fs.search', 'cmd.run', 'git.diff'],
|
|
30
|
+
},
|
|
31
|
+
reviewer: {
|
|
32
|
+
role: 'reviewer',
|
|
33
|
+
name: 'Reviewer',
|
|
34
|
+
systemPrompt: `You are the Reviewer agent in a multi-agent swarm. Your job is to:
|
|
35
|
+
1. Review code changes submitted by the coder agent
|
|
36
|
+
2. Check for bugs, security issues, performance problems, and style violations
|
|
37
|
+
3. Verify that changes align with the original task requirements
|
|
38
|
+
4. Approve changes or request specific fixes with clear explanations
|
|
39
|
+
|
|
40
|
+
Be thorough but constructive. Focus on correctness and maintainability.`,
|
|
41
|
+
capabilities: ['code_review', 'bug_detection', 'security_analysis'],
|
|
42
|
+
tools: ['fs.read', 'fs.search', 'git.diff'],
|
|
43
|
+
},
|
|
44
|
+
researcher: {
|
|
45
|
+
role: 'researcher',
|
|
46
|
+
name: 'Researcher',
|
|
47
|
+
systemPrompt: `You are the Researcher agent in a multi-agent swarm. Your job is to:
|
|
48
|
+
1. Gather information needed by other agents (API docs, library usage, best practices)
|
|
49
|
+
2. Analyze existing code to understand patterns and conventions
|
|
50
|
+
3. Provide technical recommendations based on research findings
|
|
51
|
+
4. Summarize findings clearly for the planner and coder agents
|
|
52
|
+
|
|
53
|
+
Be thorough and cite your sources. Focus on actionable insights.`,
|
|
54
|
+
capabilities: ['information_gathering', 'code_analysis', 'documentation'],
|
|
55
|
+
tools: ['fs.read', 'fs.search', 'cmd.run'],
|
|
56
|
+
},
|
|
57
|
+
tester: {
|
|
58
|
+
role: 'tester',
|
|
59
|
+
name: 'Tester',
|
|
60
|
+
systemPrompt: `You are the Tester agent in a multi-agent swarm. Your job is to:
|
|
61
|
+
1. Write and run tests for code changes
|
|
62
|
+
2. Verify that the implementation meets the task requirements
|
|
63
|
+
3. Run existing test suites and report results
|
|
64
|
+
4. Identify edge cases and potential failure modes
|
|
65
|
+
|
|
66
|
+
Report test results clearly: what passed, what failed, and what needs fixing.`,
|
|
67
|
+
capabilities: ['test_writing', 'test_execution', 'verification'],
|
|
68
|
+
tools: ['fs.read', 'fs.write', 'cmd.run'],
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Get a role definition by name.
|
|
73
|
+
*/
|
|
74
|
+
export function getRole(role) {
|
|
75
|
+
return BUILT_IN_ROLES[role];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get all available roles.
|
|
79
|
+
*/
|
|
80
|
+
export function getAllRoles() {
|
|
81
|
+
return Object.values(BUILT_IN_ROLES);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=roles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/swarm/roles.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,mEAAmE;AAYnE,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC1D,OAAO,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,YAAY,EAAE;;;;;;;0DAOoC;QAClD,YAAY,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,UAAU,CAAC;QAC9D,KAAK,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC;KACvC;IAED,KAAK,EAAE;QACH,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,YAAY,EAAE;;;;;;wFAMkE;QAChF,YAAY,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,aAAa,CAAC;QAChE,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC;KACrE;IAED,QAAQ,EAAE;QACN,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE;;;;;;wEAMkD;QAChE,YAAY,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,mBAAmB,CAAC;QACnE,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC;KAC9C;IAED,UAAU,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE;;;;;;iEAM2C;QACzD,YAAY,EAAE,CAAC,uBAAuB,EAAE,eAAe,EAAE,eAAe,CAAC;QACzE,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;KAC7C;IAED,MAAM,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE;;;;;;8EAMwD;QACtE,YAAY,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,cAAc,CAAC;QAChE,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC;KAC5C;CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAe;IACnC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export type AgentRole = 'planner' | 'coder' | 'reviewer' | 'researcher' | 'tester' | 'custom';
|
|
2
|
+
export interface SwarmConfig {
|
|
3
|
+
/** Enable swarm mode */
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
/** Max concurrent agents */
|
|
6
|
+
maxAgents: number;
|
|
7
|
+
/** Default model for swarm agents */
|
|
8
|
+
model: string;
|
|
9
|
+
/** Whether agents can spawn sub-agents */
|
|
10
|
+
allowDelegation: boolean;
|
|
11
|
+
/** Max depth of delegation chain */
|
|
12
|
+
maxDelegationDepth: number;
|
|
13
|
+
/** Timeout for each agent task (ms) */
|
|
14
|
+
agentTimeout: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const DEFAULT_SWARM_CONFIG: SwarmConfig;
|
|
17
|
+
export interface SwarmMessage {
|
|
18
|
+
id: string;
|
|
19
|
+
from: string;
|
|
20
|
+
to: string;
|
|
21
|
+
type: SwarmMessageType;
|
|
22
|
+
payload: unknown;
|
|
23
|
+
timestamp: Date;
|
|
24
|
+
}
|
|
25
|
+
export type SwarmMessageType = 'task_assign' | 'task_result' | 'task_error' | 'delegate' | 'status_update' | 'artifact' | 'review_request' | 'review_response' | 'broadcast';
|
|
26
|
+
export interface AgentTask {
|
|
27
|
+
id: string;
|
|
28
|
+
description: string;
|
|
29
|
+
role: AgentRole;
|
|
30
|
+
assignedTo?: string;
|
|
31
|
+
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
32
|
+
result?: string;
|
|
33
|
+
error?: string;
|
|
34
|
+
createdAt: Date;
|
|
35
|
+
completedAt?: Date;
|
|
36
|
+
parentTaskId?: string;
|
|
37
|
+
subtasks?: string[];
|
|
38
|
+
}
|
|
39
|
+
export interface SwarmAgent {
|
|
40
|
+
id: string;
|
|
41
|
+
role: AgentRole;
|
|
42
|
+
name: string;
|
|
43
|
+
status: 'idle' | 'busy' | 'done' | 'error';
|
|
44
|
+
currentTask?: string;
|
|
45
|
+
model: string;
|
|
46
|
+
depth: number;
|
|
47
|
+
completedTasks: number;
|
|
48
|
+
}
|
|
49
|
+
export interface SwarmState {
|
|
50
|
+
id: string;
|
|
51
|
+
status: 'idle' | 'running' | 'completed' | 'failed';
|
|
52
|
+
agents: SwarmAgent[];
|
|
53
|
+
tasks: AgentTask[];
|
|
54
|
+
startedAt?: Date;
|
|
55
|
+
completedAt?: Date;
|
|
56
|
+
goalDescription?: string;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/swarm/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9F,MAAM,WAAW,WAAW;IACxB,wBAAwB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,eAAe,EAAE,OAAO,CAAC;IACzB,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,EAAE,WAOlC,CAAC;AAEF,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GACtB,aAAa,GACb,aAAa,GACb,YAAY,GACZ,UAAU,GACV,eAAe,GACf,UAAU,GACV,gBAAgB,GAChB,iBAAiB,GACjB,WAAW,CAAC;AAElB,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACpD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/swarm/types.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAmBtB,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC7C,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,QAAQ;IACf,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM;CACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../../../src/tools/core/cmd.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../../../src/tools/core/cmd.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD,eAAO,MAAM,MAAM,EAAE,cAAc,CAC/B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAClG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA2EvD,CAAC;AAEF,eAAO,MAAM,QAAQ;aA9EN,MAAM;WAAS,MAAM,EAAE;UAAQ,MAAM;cAAY,MAAM;UAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;YACtF,MAAM;YAAU,MAAM;cAAY,MAAM;IA6EtB,CAAC"}
|