@desplega.ai/agent-swarm 1.2.1 → 1.9.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/.claude/settings.local.json +20 -1
- package/.env.docker.example +22 -1
- package/.env.example +17 -0
- package/.github/workflows/docker-publish.yml +92 -0
- package/CONTRIBUTING.md +270 -0
- package/DEPLOYMENT.md +391 -0
- package/Dockerfile.worker +29 -1
- package/FAQ.md +19 -0
- package/LICENSE +21 -0
- package/MCP.md +249 -0
- package/README.md +103 -207
- package/assets/agent-swarm-logo-orange.png +0 -0
- package/assets/agent-swarm-logo.png +0 -0
- package/docker-compose.example.yml +137 -0
- package/docker-entrypoint.sh +223 -7
- package/package.json +8 -3
- package/{cc-plugin → plugin}/.claude-plugin/plugin.json +1 -1
- package/plugin/README.md +1 -0
- package/plugin/agents/.gitkeep +0 -0
- package/plugin/agents/codebase-analyzer.md +143 -0
- package/plugin/agents/codebase-locator.md +122 -0
- package/plugin/agents/codebase-pattern-finder.md +227 -0
- package/plugin/agents/web-search-researcher.md +109 -0
- package/plugin/commands/create-plan.md +415 -0
- package/plugin/commands/implement-plan.md +89 -0
- package/plugin/commands/research.md +200 -0
- package/plugin/commands/start-leader.md +101 -0
- package/plugin/commands/start-worker.md +56 -0
- package/plugin/commands/swarm-chat.md +78 -0
- package/plugin/commands/todos.md +66 -0
- package/plugin/commands/work-on-task.md +44 -0
- package/plugin/skills/.gitkeep +0 -0
- package/scripts/generate-mcp-docs.ts +415 -0
- package/slack-manifest.json +69 -0
- package/src/be/db.ts +1431 -25
- package/src/cli.tsx +135 -11
- package/src/commands/lead.ts +13 -0
- package/src/commands/runner.ts +255 -0
- package/src/commands/worker.ts +8 -220
- package/src/hooks/hook.ts +102 -14
- package/src/http.ts +361 -5
- package/src/prompts/base-prompt.ts +131 -0
- package/src/server.ts +56 -0
- package/src/slack/app.ts +73 -0
- package/src/slack/commands.ts +88 -0
- package/src/slack/handlers.ts +281 -0
- package/src/slack/index.ts +3 -0
- package/src/slack/responses.ts +175 -0
- package/src/slack/router.ts +170 -0
- package/src/slack/types.ts +20 -0
- package/src/slack/watcher.ts +119 -0
- package/src/tools/create-channel.ts +80 -0
- package/src/tools/get-tasks.ts +54 -21
- package/src/tools/join-swarm.ts +28 -4
- package/src/tools/list-channels.ts +37 -0
- package/src/tools/list-services.ts +110 -0
- package/src/tools/poll-task.ts +46 -3
- package/src/tools/post-message.ts +87 -0
- package/src/tools/read-messages.ts +192 -0
- package/src/tools/register-service.ts +118 -0
- package/src/tools/send-task.ts +80 -7
- package/src/tools/store-progress.ts +9 -3
- package/src/tools/task-action.ts +211 -0
- package/src/tools/unregister-service.ts +110 -0
- package/src/tools/update-profile.ts +105 -0
- package/src/tools/update-service-status.ts +118 -0
- package/src/types.ts +110 -3
- package/src/utils/pretty-print.ts +224 -0
- package/thoughts/shared/plans/.gitkeep +0 -0
- package/thoughts/shared/plans/2025-12-18-inverse-teleport.md +1142 -0
- package/thoughts/shared/plans/2025-12-18-slack-integration.md +1195 -0
- package/thoughts/shared/plans/2025-12-19-agent-log-streaming.md +732 -0
- package/thoughts/shared/plans/2025-12-19-role-based-swarm-plugin.md +361 -0
- package/thoughts/shared/plans/2025-12-20-mobile-responsive-ui.md +501 -0
- package/thoughts/shared/plans/2025-12-20-startup-team-swarm.md +560 -0
- package/thoughts/shared/research/.gitkeep +0 -0
- package/thoughts/shared/research/2025-12-18-slack-integration.md +442 -0
- package/thoughts/shared/research/2025-12-19-agent-log-streaming.md +339 -0
- package/thoughts/shared/research/2025-12-19-agent-secrets-cli-research.md +390 -0
- package/thoughts/shared/research/2025-12-21-gemini-cli-integration.md +376 -0
- package/thoughts/shared/research/2025-12-22-setup-experience-improvements.md +264 -0
- package/tsconfig.json +3 -1
- package/ui/bun.lock +692 -0
- package/ui/index.html +22 -0
- package/ui/package.json +32 -0
- package/ui/pnpm-lock.yaml +3034 -0
- package/ui/postcss.config.js +6 -0
- package/ui/public/logo.png +0 -0
- package/ui/src/App.tsx +43 -0
- package/ui/src/components/ActivityFeed.tsx +415 -0
- package/ui/src/components/AgentDetailPanel.tsx +534 -0
- package/ui/src/components/AgentsPanel.tsx +549 -0
- package/ui/src/components/ChatPanel.tsx +1820 -0
- package/ui/src/components/ConfigModal.tsx +232 -0
- package/ui/src/components/Dashboard.tsx +534 -0
- package/ui/src/components/Header.tsx +168 -0
- package/ui/src/components/ServicesPanel.tsx +612 -0
- package/ui/src/components/StatsBar.tsx +288 -0
- package/ui/src/components/StatusBadge.tsx +124 -0
- package/ui/src/components/TaskDetailPanel.tsx +807 -0
- package/ui/src/components/TasksPanel.tsx +575 -0
- package/ui/src/hooks/queries.ts +170 -0
- package/ui/src/index.css +235 -0
- package/ui/src/lib/api.ts +161 -0
- package/ui/src/lib/config.ts +35 -0
- package/ui/src/lib/theme.ts +214 -0
- package/ui/src/lib/utils.ts +48 -0
- package/ui/src/main.tsx +32 -0
- package/ui/src/types/api.ts +164 -0
- package/ui/src/vite-env.d.ts +1 -0
- package/ui/tailwind.config.js +35 -0
- package/ui/tsconfig.json +31 -0
- package/ui/vite.config.ts +22 -0
- package/cc-plugin/README.md +0 -49
- package/cc-plugin/commands/setup-leader.md +0 -73
- package/cc-plugin/commands/start-worker.md +0 -64
- package/docker-compose.worker.yml +0 -35
- package/example-req-meta.json +0 -24
- /package/{cc-plugin → plugin}/hooks/hooks.json +0 -0
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Setup and start an Agent Swarm Worker
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Agent Swarm Worker
|
|
6
|
-
|
|
7
|
-
# Initial disclaimer
|
|
8
|
-
|
|
9
|
-
If the `agent-swarm` MCP server is not configured or disabled, return immediately with the following message:
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
⚠️ The Agent Swarm MCP server is not configured or disabled. Please set up the MCP server to use the Agent Swarm features.
|
|
13
|
-
|
|
14
|
-
I can not serve you, my lord, if the MCP server is not properly configured. Go ask your admin to set it up properly. GTFO.
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Agent Swarm Worker Setup
|
|
18
|
-
|
|
19
|
-
Before you even start you will need to ensure that you are registered in the swarm as a worker agent.
|
|
20
|
-
|
|
21
|
-
To do so, use the `agent-swarm` MCP server and call the `join-swarm` tool providing a name.
|
|
22
|
-
|
|
23
|
-
For the name, check if the user specified one, if not, proceed to use one that fits based on your context (e.g., project name, repo name, etc.).
|
|
24
|
-
|
|
25
|
-
Here are some examples names that are OK:
|
|
26
|
-
|
|
27
|
-
- "Worker Bee 001"
|
|
28
|
-
- "Task Executor Alpha"
|
|
29
|
-
- "Task Executor Beta" (if alpha is taken lol)
|
|
30
|
-
- "Project Assistant"
|
|
31
|
-
- "Bullshit Job Worker #1337"
|
|
32
|
-
- "AI Minion"
|
|
33
|
-
- "Code Monkey"
|
|
34
|
-
- "agent #14"
|
|
35
|
-
|
|
36
|
-
You get the idea. Be creative, but also clear that you are a worker agent.
|
|
37
|
-
|
|
38
|
-
## Agent Swarm Worker Start
|
|
39
|
-
|
|
40
|
-
The first thing you need to do, is use the `get-tasks` tool with `mineOnly` set to true, to check what tasks you might have in progress or assigned to you.
|
|
41
|
-
|
|
42
|
-
If there's a task that is in progress, you should resume working on it!
|
|
43
|
-
|
|
44
|
-
If you have no tasks assigned, you should call the `poll-task` tool to get a new task assigned to you. This will poll for a while and return either with:
|
|
45
|
-
|
|
46
|
-
1. A new task assigned to you
|
|
47
|
-
2. A message indicating there's no tasks available right now
|
|
48
|
-
|
|
49
|
-
If 2, start polling immediately FOREVER. Only stop if you get interrupted by the user, if not, just keep polling.
|
|
50
|
-
|
|
51
|
-
### You got a task assigned!
|
|
52
|
-
|
|
53
|
-
Once you get a task assigned you should immediately start working on it. To do so, you should:
|
|
54
|
-
|
|
55
|
-
1. Call `store-progress` tool to mark the task as "in-progress" with a progress set to something like "Starting work on the task XXX, blah blah"
|
|
56
|
-
2. Start working on the task, providing updates as needed by calling `store-progress` tool, use the `progress` field to indicate what you are doing.
|
|
57
|
-
|
|
58
|
-
If you get interrupted by the user, that is fine, it might happen. Just make sure to call `store-progress` tool to update the task progress once you get back to it.
|
|
59
|
-
|
|
60
|
-
Once you are done, or in a real dead-end, you should call `store-progress` tool to mark the task as "complete" or "failed" as needed.
|
|
61
|
-
|
|
62
|
-
You should always use the `output` and `failureReason` fields to provide context about the task completion or failure.
|
|
63
|
-
|
|
64
|
-
Once you are done (either ok or not), you should go back to polling for new tasks.
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Docker Compose for Agent Swarm Worker
|
|
2
|
-
#
|
|
3
|
-
# Usage:
|
|
4
|
-
# docker-compose -f docker-compose.worker.yml up --build
|
|
5
|
-
#
|
|
6
|
-
# Required environment variables (in .env.docker or passed directly):
|
|
7
|
-
# - CLAUDE_CODE_OAUTH_TOKEN: OAuth token for Claude CLI
|
|
8
|
-
# - API_KEY: API key for MCP server authentication
|
|
9
|
-
#
|
|
10
|
-
# Optional environment variables:
|
|
11
|
-
# - AGENT_ID: UUID for agent identification (assigned on join if not set)
|
|
12
|
-
# - MCP_BASE_URL: MCP server URL (default: http://host.docker.internal:3013)
|
|
13
|
-
# - SESSION_ID: Folder name for logs (auto-generated if not provided)
|
|
14
|
-
# - WORKER_YOLO: If "true", continue on errors (default: false)
|
|
15
|
-
|
|
16
|
-
services:
|
|
17
|
-
worker:
|
|
18
|
-
build:
|
|
19
|
-
context: .
|
|
20
|
-
dockerfile: Dockerfile.worker
|
|
21
|
-
environment:
|
|
22
|
-
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
23
|
-
- API_KEY=${API_KEY}
|
|
24
|
-
- AGENT_ID=${AGENT_ID:-}
|
|
25
|
-
# Use host.docker.internal to reach host's localhost on Mac/Windows
|
|
26
|
-
# On Linux, use --add-host=host.docker.internal:host-gateway or --network host
|
|
27
|
-
- MCP_BASE_URL=${MCP_BASE_URL:-http://host.docker.internal:3013}
|
|
28
|
-
- SESSION_ID=${SESSION_ID:-}
|
|
29
|
-
- WORKER_YOLO=${WORKER_YOLO:-false}
|
|
30
|
-
volumes:
|
|
31
|
-
- ./logs:/logs
|
|
32
|
-
# Optional: mount a workspace directory for persistent work
|
|
33
|
-
# - ./workspace:/workspace
|
|
34
|
-
restart: unless-stopped
|
|
35
|
-
# No port mappings needed - worker only makes outbound connections
|
package/example-req-meta.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"meta": {
|
|
3
|
-
"signal": {},
|
|
4
|
-
"sessionId": "942c8196-66ad-4c1f-b31e-7331ce7f4bb9",
|
|
5
|
-
"_meta": {
|
|
6
|
-
"progressToken": 3
|
|
7
|
-
},
|
|
8
|
-
"requestId": 3,
|
|
9
|
-
"requestInfo": {
|
|
10
|
-
"headers": {
|
|
11
|
-
"accept": "application/json, text/event-stream",
|
|
12
|
-
"accept-encoding": "gzip, deflate, br",
|
|
13
|
-
"authorization": "Bearer 123123",
|
|
14
|
-
"connection": "keep-alive",
|
|
15
|
-
"content-length": "119",
|
|
16
|
-
"content-type": "application/json",
|
|
17
|
-
"host": "localhost:3013",
|
|
18
|
-
"mcp-protocol-version": "2025-11-25",
|
|
19
|
-
"mcp-session-id": "942c8196-66ad-4c1f-b31e-7331ce7f4bb9",
|
|
20
|
-
"user-agent": "node-fetch"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
File without changes
|