@desplega.ai/agent-swarm 1.20.0 → 1.51.2
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 +271 -169
- package/openapi.json +5015 -0
- package/package.json +40 -7
- package/plugin/commands/close-issue.md +7 -3
- package/plugin/commands/create-pr.md +18 -12
- package/plugin/commands/implement-issue.md +7 -3
- package/plugin/commands/respond-github.md +8 -4
- package/plugin/commands/review-pr.md +44 -10
- package/plugin/commands/start-leader.md +1 -3
- package/plugin/commands/start-worker.md +1 -3
- package/plugin/commands/work-on-task.md +22 -3
- package/plugin/pi-skills/close-issue/SKILL.md +90 -0
- package/plugin/pi-skills/create-pr/SKILL.md +99 -0
- package/plugin/pi-skills/implement-issue/SKILL.md +135 -0
- package/plugin/pi-skills/investigate-sentry-issue/SKILL.md +138 -0
- package/plugin/pi-skills/respond-github/SKILL.md +98 -0
- package/plugin/pi-skills/review-offered-task/SKILL.md +45 -0
- package/plugin/pi-skills/review-pr/SKILL.md +261 -0
- package/plugin/pi-skills/start-leader/SKILL.md +121 -0
- package/plugin/pi-skills/start-worker/SKILL.md +60 -0
- package/plugin/pi-skills/swarm-chat/SKILL.md +82 -0
- package/plugin/pi-skills/todos/SKILL.md +66 -0
- package/plugin/pi-skills/work-on-task/SKILL.md +65 -0
- package/plugin/skills/artifacts/examples/approval-flow.ts +34 -0
- package/plugin/skills/artifacts/examples/hono-dashboard.ts +31 -0
- package/plugin/skills/artifacts/examples/multi-artifact.ts +20 -0
- package/plugin/skills/artifacts/examples/static-report.sh +17 -0
- package/plugin/skills/artifacts/skill.md +71 -0
- package/src/agentmail/app.ts +65 -0
- package/src/agentmail/handlers.ts +262 -0
- package/src/agentmail/index.ts +9 -0
- package/src/agentmail/templates.ts +111 -0
- package/src/agentmail/types.ts +51 -0
- package/src/artifact-sdk/browser-sdk.ts +30 -0
- package/src/artifact-sdk/index.ts +2 -0
- package/src/artifact-sdk/localtunnel.d.ts +20 -0
- package/src/artifact-sdk/port.ts +12 -0
- package/src/artifact-sdk/server.ts +156 -0
- package/src/artifact-sdk/tunnel.ts +19 -0
- package/src/be/chunking.ts +193 -0
- package/src/be/db-queries/oauth.ts +90 -0
- package/src/be/db-queries/tracker.ts +182 -0
- package/src/be/db.ts +3327 -784
- package/src/be/embedding.ts +80 -0
- package/src/be/migrations/001_initial.sql +409 -0
- package/src/be/migrations/002_one_time_schedules.sql +59 -0
- package/src/be/migrations/003_workflows.sql +51 -0
- package/src/be/migrations/004_workflow_source.sql +81 -0
- package/src/be/migrations/005_epic_next_steps.sql +2 -0
- package/src/be/migrations/006_vcs_provider.sql +94 -0
- package/src/be/migrations/007_task_dir.sql +2 -0
- package/src/be/migrations/008_workflow_redesign.sql +85 -0
- package/src/be/migrations/009_tracker_integration.sql +144 -0
- package/src/be/migrations/010_step_diagnostics.sql +1 -0
- package/src/be/migrations/011_step_next_port.sql +1 -0
- package/src/be/migrations/012_trigger_schema.sql +1 -0
- package/src/be/migrations/013_task_output_schema.sql +2 -0
- package/src/be/migrations/014_prompt_templates.sql +33 -0
- package/src/be/migrations/015_workflow_workspace.sql +3 -0
- package/src/be/migrations/016_active_session_runner_session.sql +4 -0
- package/src/be/migrations/017_channel_activity_cursors.sql +6 -0
- package/src/be/migrations/018_fix_seed_double_version.sql +30 -0
- package/src/be/migrations/runner.ts +188 -0
- package/src/be/seed.ts +62 -0
- package/src/cli.tsx +231 -299
- package/src/commands/artifact.ts +241 -0
- package/src/commands/onboard/compose-generator.ts +169 -0
- package/src/commands/onboard/env-generator.ts +79 -0
- package/src/commands/onboard/manifest.ts +37 -0
- package/src/commands/onboard/presets.ts +85 -0
- package/src/commands/onboard/service-names.ts +47 -0
- package/src/commands/onboard/steps/core-credentials.tsx +111 -0
- package/src/commands/onboard/steps/custom-templates.tsx +168 -0
- package/src/commands/onboard/steps/generate.tsx +154 -0
- package/src/commands/onboard/steps/harness-credentials.tsx +195 -0
- package/src/commands/onboard/steps/harness.tsx +21 -0
- package/src/commands/onboard/steps/health-check.tsx +171 -0
- package/src/commands/onboard/steps/integration-github.tsx +105 -0
- package/src/commands/onboard/steps/integration-gitlab.tsx +79 -0
- package/src/commands/onboard/steps/integration-menu.tsx +58 -0
- package/src/commands/onboard/steps/integration-sentry.tsx +79 -0
- package/src/commands/onboard/steps/integration-slack.tsx +165 -0
- package/src/commands/onboard/steps/post-connect.tsx +145 -0
- package/src/commands/onboard/steps/post-dashboard.tsx +34 -0
- package/src/commands/onboard/steps/post-task.tsx +103 -0
- package/src/commands/onboard/steps/prereq-check.tsx +178 -0
- package/src/commands/onboard/steps/review.tsx +82 -0
- package/src/commands/onboard/steps/start.tsx +97 -0
- package/src/commands/onboard/templates.ts +34 -0
- package/src/commands/onboard/types.ts +259 -0
- package/src/commands/onboard.tsx +425 -0
- package/src/commands/runner.ts +1540 -630
- package/src/commands/setup.tsx +23 -38
- package/src/commands/shared/client-config.ts +41 -0
- package/src/commands/templates.ts +172 -0
- package/src/github/app.ts +8 -0
- package/src/github/handlers.ts +384 -151
- package/src/github/index.ts +1 -0
- package/src/github/mentions-aliases.test.ts +73 -0
- package/src/github/mentions.test.ts +3 -3
- package/src/github/mentions.ts +32 -6
- package/src/github/templates.ts +398 -0
- package/src/github/types.ts +1 -0
- package/src/gitlab/auth.ts +63 -0
- package/src/gitlab/handlers.ts +368 -0
- package/src/gitlab/index.ts +19 -0
- package/src/gitlab/reactions.ts +104 -0
- package/src/gitlab/templates.ts +140 -0
- package/src/gitlab/types.ts +130 -0
- package/src/heartbeat/heartbeat.ts +434 -0
- package/src/heartbeat/index.ts +1 -0
- package/src/heartbeat/templates.ts +30 -0
- package/src/hooks/hook.ts +555 -4
- package/src/hooks/tool-loop-detection.test.ts +158 -0
- package/src/hooks/tool-loop-detection.ts +167 -0
- package/src/http/active-sessions.ts +199 -0
- package/src/http/agents.ts +328 -0
- package/src/http/config.ts +191 -0
- package/src/http/core.ts +309 -0
- package/src/http/db-query.ts +91 -0
- package/src/http/ecosystem.ts +63 -0
- package/src/http/epics.ts +460 -0
- package/src/http/index.ts +216 -0
- package/src/http/mcp.ts +77 -0
- package/src/http/memory.ts +168 -0
- package/src/http/openapi.ts +109 -0
- package/src/http/poll.ts +299 -0
- package/src/http/prompt-templates.ts +412 -0
- package/src/http/repos.ts +195 -0
- package/src/http/route-def.ts +123 -0
- package/src/http/schedules.ts +426 -0
- package/src/http/session-data.ts +241 -0
- package/src/http/stats.ts +174 -0
- package/src/http/tasks.ts +468 -0
- package/src/http/trackers/index.ts +10 -0
- package/src/http/trackers/linear.ts +187 -0
- package/src/http/types.ts +12 -0
- package/src/http/utils.ts +87 -0
- package/src/http/webhooks.ts +432 -0
- package/src/http/workflows.ts +530 -0
- package/src/http.ts +1 -1890
- package/src/linear/README.md +65 -0
- package/src/linear/app.ts +48 -0
- package/src/linear/client.ts +18 -0
- package/src/linear/index.ts +1 -0
- package/src/linear/oauth.ts +35 -0
- package/src/linear/outbound.ts +212 -0
- package/src/linear/sync.ts +567 -0
- package/src/linear/templates.ts +47 -0
- package/src/linear/types.ts +7 -0
- package/src/linear/webhook.ts +104 -0
- package/src/oauth/README.md +66 -0
- package/src/oauth/index.ts +6 -0
- package/src/oauth/wrapper.ts +204 -0
- package/src/prompts/base-prompt.ts +150 -265
- package/src/prompts/defaults.ts +196 -0
- package/src/prompts/registry.ts +57 -0
- package/src/prompts/resolver.ts +296 -0
- package/src/prompts/session-templates.ts +604 -0
- package/src/providers/claude-adapter.ts +442 -0
- package/src/providers/index.ts +24 -0
- package/src/providers/pi-mono-adapter.ts +442 -0
- package/src/providers/pi-mono-extension.ts +624 -0
- package/src/providers/pi-mono-mcp-client.ts +124 -0
- package/src/providers/types.ts +75 -0
- package/src/scheduler/scheduler.test.ts +2 -0
- package/src/scheduler/scheduler.ts +231 -40
- package/src/server.ts +97 -6
- package/src/slack/HEURISTICS.md +105 -0
- package/src/slack/actions.ts +133 -0
- package/src/slack/app.ts +7 -0
- package/src/slack/assistant.ts +118 -0
- package/src/slack/blocks.ts +233 -0
- package/src/slack/channel-activity.ts +177 -0
- package/src/slack/commands.ts +31 -17
- package/src/slack/files.ts +1 -1
- package/src/slack/handlers.test.ts +114 -1
- package/src/slack/handlers.ts +230 -55
- package/src/slack/responses.ts +120 -67
- package/src/slack/router.ts +17 -99
- package/src/slack/templates.ts +55 -0
- package/src/slack/thread-buffer.ts +213 -0
- package/src/slack/watcher.ts +119 -4
- package/src/tests/agent-activity.test.ts +247 -0
- package/src/tests/agentmail-filters.test.ts +97 -0
- package/src/tests/artifact-sdk.test.ts +800 -0
- package/src/tests/base-prompt.test.ts +264 -0
- package/src/tests/build-pi-skills.test.ts +127 -0
- package/src/tests/channel-activity.test.ts +363 -0
- package/src/tests/claude-adapter.test.ts +126 -0
- package/src/tests/context-versioning.test.ts +425 -0
- package/src/tests/db-queries-oauth.test.ts +197 -0
- package/src/tests/db-queries-tracker.test.ts +230 -0
- package/src/tests/epics.test.ts +3 -3
- package/src/tests/error-tracker.test.ts +368 -0
- package/src/tests/fetch-resolved-env.test.ts +167 -0
- package/src/tests/generate-default-claude-md.test.ts +9 -1
- package/src/tests/generate-identity-templates.test.ts +124 -0
- package/src/tests/gitlab-auth.test.ts +109 -0
- package/src/tests/gitlab-handlers.test.ts +691 -0
- package/src/tests/gitlab-vcs-db.test.ts +177 -0
- package/src/tests/heartbeat.test.ts +364 -0
- package/src/tests/http-api-integration.test.ts +1698 -0
- package/src/tests/linear-outbound-sync.test.ts +200 -0
- package/src/tests/linear-webhook.test.ts +406 -0
- package/src/tests/match-route.test.ts +187 -0
- package/src/tests/memory.test.ts +737 -0
- package/src/tests/migration-runner-regressions.test.ts +86 -0
- package/src/tests/model-control.test.ts +338 -0
- package/src/tests/oauth-wrapper.test.ts +147 -0
- package/src/tests/onboard-compose.test.ts +138 -0
- package/src/tests/onboard-env.test.ts +174 -0
- package/src/tests/onboard-manifest.test.ts +137 -0
- package/src/tests/pi-mono-adapter.test.ts +234 -0
- package/src/tests/pool-session-logs.test.ts +199 -0
- package/src/tests/progress-dedup.test.ts +98 -0
- package/src/tests/prompt-template-github.test.ts +682 -0
- package/src/tests/prompt-template-remaining.test.ts +504 -0
- package/src/tests/prompt-template-resolver.test.ts +621 -0
- package/src/tests/prompt-template-session.test.ts +363 -0
- package/src/tests/prompt-templates-db.test.ts +616 -0
- package/src/tests/provider-adapter.test.ts +122 -0
- package/src/tests/provider-command-format.test.ts +98 -0
- package/src/tests/reload-config.test.ts +170 -0
- package/src/tests/runner-polling-api.test.ts +25 -20
- package/src/tests/scheduled-tasks.test.ts +104 -0
- package/src/tests/scheduler-backoff.test.ts +166 -0
- package/src/tests/self-improvement.test.ts +541 -0
- package/src/tests/session-attach.test.ts +536 -0
- package/src/tests/session-costs.test.ts +267 -1
- package/src/tests/slack-actions.test.ts +133 -0
- package/src/tests/slack-assistant.test.ts +136 -0
- package/src/tests/slack-blocks.test.ts +246 -0
- package/src/tests/slack-metadata-inheritance.test.ts +243 -0
- package/src/tests/slack-queue-offline.test.ts +174 -0
- package/src/tests/slack-router.test.ts +181 -0
- package/src/tests/slack-thread-buffer.test.ts +305 -0
- package/src/tests/slack-thread-followups.test.ts +298 -0
- package/src/tests/slack-watcher.test.ts +101 -0
- package/src/tests/structured-output.test.ts +307 -0
- package/src/tests/swarm-repos.test.ts +198 -0
- package/src/tests/task-cancellation.test.ts +6 -4
- package/src/tests/task-working-dir.test.ts +176 -0
- package/src/tests/template-fetch.test.ts +490 -0
- package/src/tests/tool-annotations.test.ts +371 -0
- package/src/tests/tracker-tools.test.ts +184 -0
- package/src/tests/update-profile-agentid.test.ts +248 -0
- package/src/tests/update-profile-api.test.ts +143 -3
- package/src/tests/update-profile-auth.test.ts +195 -0
- package/src/tests/validation-adapters.test.ts +86 -0
- package/src/tests/vcs-provider.test.ts +27 -0
- package/src/tests/workflow-agent-task.test.ts +196 -0
- package/src/tests/workflow-async-v2.test.ts +508 -0
- package/src/tests/workflow-convergence.test.ts +541 -0
- package/src/tests/workflow-definition-validation.test.ts +366 -0
- package/src/tests/workflow-engine-v2.test.ts +691 -0
- package/src/tests/workflow-executors.test.ts +736 -0
- package/src/tests/workflow-http-v2.test.ts +599 -0
- package/src/tests/workflow-integration-io.test.ts +902 -0
- package/src/tests/workflow-io-schemas.test.ts +624 -0
- package/src/tests/workflow-registry.test.ts +592 -0
- package/src/tests/workflow-retry-v2.test.ts +401 -0
- package/src/tests/workflow-retry-validation.test.ts +282 -0
- package/src/tests/workflow-schedule-trigger.test.ts +104 -0
- package/src/tests/workflow-template.test.ts +288 -0
- package/src/tests/workflow-trigger-schema.test.ts +359 -0
- package/src/tests/workflow-triggers-v2.test.ts +264 -0
- package/src/tests/workflow-versions.test.ts +208 -0
- package/src/tests/workflow-workspace.test.ts +272 -0
- package/src/tests/x402-client.test.ts +117 -0
- package/src/tests/x402-config.test.ts +182 -0
- package/src/tests/x402-spending-tracker.test.ts +185 -0
- package/src/tools/cancel-task.ts +2 -0
- package/src/tools/context-diff.ts +171 -0
- package/src/tools/context-history.ts +138 -0
- package/src/tools/create-channel.ts +1 -0
- package/src/tools/db-query.ts +78 -0
- package/src/tools/delete-channel.ts +132 -0
- package/src/tools/epics/assign-task-to-epic.ts +1 -0
- package/src/tools/epics/create-epic.ts +3 -2
- package/src/tools/epics/delete-epic.ts +2 -0
- package/src/tools/epics/get-epic-details.ts +2 -0
- package/src/tools/epics/list-epics.ts +2 -0
- package/src/tools/epics/unassign-task-from-epic.ts +1 -0
- package/src/tools/epics/update-epic.ts +7 -4
- package/src/tools/get-swarm.ts +2 -0
- package/src/tools/get-task-details.ts +2 -0
- package/src/tools/get-tasks.ts +27 -1
- package/src/tools/inject-learning.ts +106 -0
- package/src/tools/join-swarm.ts +17 -7
- package/src/tools/list-channels.ts +2 -0
- package/src/tools/list-services.ts +2 -0
- package/src/tools/memory-get.ts +56 -0
- package/src/tools/memory-search.ts +131 -0
- package/src/tools/my-agent-info.ts +2 -0
- package/src/tools/poll-task.ts +2 -20
- package/src/tools/post-message.ts +1 -0
- package/src/tools/prompt-templates/delete.ts +86 -0
- package/src/tools/prompt-templates/get.ts +89 -0
- package/src/tools/prompt-templates/index.ts +5 -0
- package/src/tools/prompt-templates/list.ts +95 -0
- package/src/tools/prompt-templates/preview.ts +84 -0
- package/src/tools/prompt-templates/set.ts +117 -0
- package/src/tools/read-messages.ts +2 -0
- package/src/tools/register-agentmail-inbox.ts +166 -0
- package/src/tools/register-service.ts +2 -0
- package/src/tools/schedules/create-schedule.ts +134 -24
- package/src/tools/schedules/delete-schedule.ts +2 -0
- package/src/tools/schedules/list-schedules.ts +20 -4
- package/src/tools/schedules/run-schedule-now.ts +1 -0
- package/src/tools/schedules/update-schedule.ts +49 -17
- package/src/tools/send-task.ts +132 -10
- package/src/tools/slack-download-file.ts +4 -2
- package/src/tools/slack-list-channels.ts +2 -0
- package/src/tools/slack-post.ts +2 -0
- package/src/tools/slack-read.ts +2 -0
- package/src/tools/slack-reply.ts +2 -0
- package/src/tools/slack-upload-file.ts +2 -0
- package/src/tools/store-progress.ts +205 -4
- package/src/tools/swarm-config/delete-config.ts +87 -0
- package/src/tools/swarm-config/get-config.ts +108 -0
- package/src/tools/swarm-config/index.ts +4 -0
- package/src/tools/swarm-config/list-config.ts +99 -0
- package/src/tools/swarm-config/set-config.ts +118 -0
- package/src/tools/task-action.ts +50 -5
- package/src/tools/task-dedup.ts +97 -0
- package/src/tools/templates.ts +53 -0
- package/src/tools/tool-config.ts +124 -0
- package/src/tools/tracker/index.ts +6 -0
- package/src/tools/tracker/tracker-link-epic.ts +64 -0
- package/src/tools/tracker/tracker-link-task.ts +64 -0
- package/src/tools/tracker/tracker-map-agent.ts +57 -0
- package/src/tools/tracker/tracker-status.ts +56 -0
- package/src/tools/tracker/tracker-sync-status.ts +42 -0
- package/src/tools/tracker/tracker-unlink.ts +41 -0
- package/src/tools/unregister-service.ts +2 -0
- package/src/tools/update-profile.ts +172 -17
- package/src/tools/update-service-status.ts +2 -0
- package/src/tools/utils.ts +10 -1
- package/src/tools/workflows/create-workflow.ts +129 -0
- package/src/tools/workflows/delete-workflow.ts +42 -0
- package/src/tools/workflows/get-workflow-run.ts +59 -0
- package/src/tools/workflows/get-workflow.ts +53 -0
- package/src/tools/workflows/index.ts +9 -0
- package/src/tools/workflows/list-workflow-runs.ts +48 -0
- package/src/tools/workflows/list-workflows.ts +42 -0
- package/src/tools/workflows/retry-workflow-run.ts +40 -0
- package/src/tools/workflows/trigger-workflow.ts +96 -0
- package/src/tools/workflows/update-workflow.ts +133 -0
- package/src/tracker/types.ts +51 -0
- package/src/types.ts +530 -14
- package/src/utils/credentials.test.ts +156 -0
- package/src/utils/credentials.ts +50 -0
- package/src/utils/error-tracker.ts +190 -0
- package/src/vcs/index.ts +15 -0
- package/src/vcs/types.ts +5 -0
- package/src/workflows/checkpoint.ts +121 -0
- package/src/workflows/cooldown.ts +28 -0
- package/src/workflows/definition.ts +235 -0
- package/src/workflows/engine.ts +580 -0
- package/src/workflows/event-bus.ts +29 -0
- package/src/workflows/executors/agent-task.ts +103 -0
- package/src/workflows/executors/base.ts +86 -0
- package/src/workflows/executors/code-match.ts +88 -0
- package/src/workflows/executors/index.ts +16 -0
- package/src/workflows/executors/notify.ts +93 -0
- package/src/workflows/executors/property-match.ts +104 -0
- package/src/workflows/executors/raw-llm.ts +83 -0
- package/src/workflows/executors/registry.ts +76 -0
- package/src/workflows/executors/script.ts +103 -0
- package/src/workflows/executors/validate.ts +215 -0
- package/src/workflows/executors/vcs.ts +58 -0
- package/src/workflows/index.ts +61 -0
- package/src/workflows/input.ts +46 -0
- package/src/workflows/json-schema-validator.ts +118 -0
- package/src/workflows/recovery.ts +139 -0
- package/src/workflows/resume.ts +229 -0
- package/src/workflows/retry-poller.ts +216 -0
- package/src/workflows/template.ts +74 -0
- package/src/workflows/templates.ts +86 -0
- package/src/workflows/triggers.ts +124 -0
- package/src/workflows/validation.ts +104 -0
- package/src/workflows/version.ts +44 -0
- package/src/x402/cli.ts +140 -0
- package/src/x402/client.ts +192 -0
- package/src/x402/config.ts +131 -0
- package/src/x402/index.ts +37 -0
- package/src/x402/openfort-signer.ts +83 -0
- package/src/x402/spending-tracker.ts +109 -0
- package/templates/official/coder/CLAUDE.md +49 -0
- package/templates/official/coder/IDENTITY.md +28 -0
- package/templates/official/coder/SOUL.md +43 -0
- package/templates/official/coder/TOOLS.md +40 -0
- package/templates/official/coder/config.json +23 -0
- package/templates/official/coder/start-up.sh +23 -0
- package/templates/official/content-reviewer/CLAUDE.md +68 -0
- package/templates/official/content-reviewer/IDENTITY.md +28 -0
- package/templates/official/content-reviewer/SOUL.md +44 -0
- package/templates/official/content-reviewer/TOOLS.md +37 -0
- package/templates/official/content-reviewer/config.json +23 -0
- package/templates/official/content-reviewer/start-up.sh +23 -0
- package/templates/official/content-strategist/CLAUDE.md +63 -0
- package/templates/official/content-strategist/IDENTITY.md +33 -0
- package/templates/official/content-strategist/SOUL.md +48 -0
- package/templates/official/content-strategist/TOOLS.md +47 -0
- package/templates/official/content-strategist/config.json +23 -0
- package/templates/official/content-strategist/start-up.sh +23 -0
- package/templates/official/content-writer/CLAUDE.md +72 -0
- package/templates/official/content-writer/IDENTITY.md +30 -0
- package/templates/official/content-writer/SOUL.md +46 -0
- package/templates/official/content-writer/TOOLS.md +44 -0
- package/templates/official/content-writer/config.json +23 -0
- package/templates/official/content-writer/start-up.sh +23 -0
- package/templates/official/forward-deployed-engineer/CLAUDE.md +54 -0
- package/templates/official/forward-deployed-engineer/IDENTITY.md +37 -0
- package/templates/official/forward-deployed-engineer/SOUL.md +55 -0
- package/templates/official/forward-deployed-engineer/config.json +21 -0
- package/templates/official/lead/CLAUDE.md +33 -0
- package/templates/official/lead/IDENTITY.md +36 -0
- package/templates/official/lead/SOUL.md +51 -0
- package/templates/official/lead/config.json +22 -0
- package/templates/official/researcher/CLAUDE.md +46 -0
- package/templates/official/researcher/IDENTITY.md +28 -0
- package/templates/official/researcher/SOUL.md +43 -0
- package/templates/official/researcher/config.json +21 -0
- package/templates/official/reviewer/CLAUDE.md +63 -0
- package/templates/official/reviewer/IDENTITY.md +28 -0
- package/templates/official/reviewer/SOUL.md +45 -0
- package/templates/official/reviewer/config.json +21 -0
- package/templates/official/tester/CLAUDE.md +53 -0
- package/templates/official/tester/IDENTITY.md +28 -0
- package/templates/official/tester/SOUL.md +55 -0
- package/templates/official/tester/config.json +21 -0
- package/templates/schema.ts +35 -0
- package/.claude/settings.local.json +0 -115
- package/.dockerignore +0 -61
- package/.editorconfig +0 -15
- package/.env.docker.example +0 -39
- package/.env.example +0 -40
- package/.github/workflows/ci.yml +0 -76
- package/.github/workflows/docker-and-deploy.yml +0 -117
- package/.wts-config.json +0 -4
- package/.wts-setup.ts +0 -102
- package/CLAUDE.md +0 -104
- package/CONTRIBUTING.md +0 -270
- package/DEPLOYMENT.md +0 -605
- package/Dockerfile +0 -57
- package/Dockerfile.worker +0 -157
- package/FAQ.md +0 -19
- package/MCP.md +0 -406
- package/UI.md +0 -40
- package/assets/agent-swarm-logo-orange.png +0 -0
- package/assets/agent-swarm-logo.png +0 -0
- package/assets/agent-swarm.mp4 +0 -0
- package/assets/agent-swarm.png +0 -0
- package/biome.json +0 -39
- package/deploy/DEPLOY.md +0 -60
- package/deploy/agent-swarm.service +0 -17
- package/deploy/docker-push.ts +0 -30
- package/deploy/install.ts +0 -85
- package/deploy/prod-db.ts +0 -42
- package/deploy/uninstall.ts +0 -12
- package/deploy/update.ts +0 -21
- package/docker-compose.example.yml +0 -159
- package/docker-entrypoint.sh +0 -352
- package/ecosystem.config.cjs +0 -66
- package/plugin/README.md +0 -1
- package/plugin/hooks/hooks.json +0 -71
- package/pyproject.toml +0 -9
- package/scripts/generate-mcp-docs.ts +0 -415
- package/slack-manifest.json +0 -71
- package/src/tests/get-inbox-message.test.ts +0 -145
- package/src/tools/get-inbox-message.ts +0 -89
- package/src/tools/inbox-delegate.ts +0 -113
- package/thoughts/shared/plans/2025-12-18-slack-integration.md +0 -1195
- package/thoughts/shared/plans/2025-12-19-agent-log-streaming.md +0 -732
- package/thoughts/shared/plans/2025-12-19-role-based-swarm-plugin.md +0 -361
- package/thoughts/shared/plans/2025-12-20-mobile-responsive-ui.md +0 -501
- package/thoughts/shared/plans/2025-12-20-startup-team-swarm.md +0 -560
- package/thoughts/shared/plans/2025-12-23-runner-level-polling.md +0 -934
- package/thoughts/shared/plans/2025-12-23-runner-session-logs.md +0 -1000
- package/thoughts/shared/plans/2025-12-23-worker-lead-spawn-triggers.md +0 -568
- package/thoughts/shared/plans/2026-01-09-inverse-teleport.md +0 -1516
- package/thoughts/shared/plans/2026-01-12-agent-rename-pm2-control.md +0 -1133
- package/thoughts/shared/plans/2026-01-12-github-app-integration.md +0 -380
- package/thoughts/shared/plans/2026-01-12-lead-inbox-model.md +0 -876
- package/thoughts/shared/plans/2026-01-12-ralph-wiggum-integration.md +0 -463
- package/thoughts/shared/plans/2026-01-13-agent-concurrency.md +0 -691
- package/thoughts/shared/plans/2026-01-13-github-assignment-handling.md +0 -690
- package/thoughts/shared/plans/2026-01-13-prevent-duplicate-trigger-processing.md +0 -1071
- package/thoughts/shared/plans/2026-01-14-fix-slack-thread-context.md +0 -507
- package/thoughts/shared/plans/2026-01-15-scheduled-tasks-implementation.md +0 -565
- package/thoughts/shared/plans/2026-01-15-usage-cost-tracking-ui.md +0 -1479
- package/thoughts/shared/plans/2026-01-16-epics-feature-implementation.md +0 -1230
- package/thoughts/shared/research/.gitkeep +0 -0
- package/thoughts/shared/research/2025-01-09-inverse-teleport-plan-review.md +0 -420
- package/thoughts/shared/research/2025-12-18-slack-integration.md +0 -442
- package/thoughts/shared/research/2025-12-19-agent-log-streaming.md +0 -339
- package/thoughts/shared/research/2025-12-19-agent-secrets-cli-research.md +0 -390
- package/thoughts/shared/research/2025-12-21-gemini-cli-integration.md +0 -376
- package/thoughts/shared/research/2025-12-22-runner-loop-architecture.md +0 -582
- package/thoughts/shared/research/2025-12-22-setup-experience-improvements.md +0 -264
- package/thoughts/shared/research/2026-01-13-lead-duplicate-trigger-processing.md +0 -223
- package/thoughts/shared/research/2026-01-14-lead-slack-thread-context.md +0 -277
- package/thoughts/shared/research/2026-01-15-ai-tracker-agent-swarm-integration.md +0 -376
- package/thoughts/shared/research/2026-01-15-auto-starting-processes-in-worker-containers.md +0 -787
- package/thoughts/shared/research/2026-01-15-scheduled-tasks.md +0 -390
- package/thoughts/shared/research/2026-01-16-epics-feature-research.md +0 -437
- package/thoughts/taras/plans/2026-01-22-agent-swarm-schemas.md +0 -98
- package/thoughts/taras/plans/2026-01-28-per-worker-claude-md.md +0 -617
- package/thoughts/taras/plans/2026-01-28-sentry-cli-integration.md +0 -214
- package/thoughts/taras/research/2026-01-22-vercel-cli-integration.md +0 -287
- package/thoughts/taras/research/2026-01-27-excessive-polling-issue.md +0 -311
- package/thoughts/taras/research/2026-01-28-per-worker-claude-md.md +0 -383
- package/thoughts/taras/research/2026-01-28-sentry-cli-integration.md +0 -240
- package/tsconfig.json +0 -37
- package/ui/CLAUDE.md +0 -49
- package/ui/bun.lock +0 -771
- package/ui/index.html +0 -22
- package/ui/package-lock.json +0 -5290
- package/ui/package.json +0 -33
- package/ui/pnpm-lock.yaml +0 -3341
- package/ui/postcss.config.js +0 -6
- package/ui/public/logo.png +0 -0
- package/ui/src/App.tsx +0 -63
- package/ui/src/components/ActivityFeed.tsx +0 -440
- package/ui/src/components/AgentDetailPanel.tsx +0 -733
- package/ui/src/components/AgentsPanel.tsx +0 -815
- package/ui/src/components/ChatPanel.tsx +0 -1920
- package/ui/src/components/ConfigModal.tsx +0 -253
- package/ui/src/components/Dashboard.tsx +0 -832
- package/ui/src/components/EditAgentProfileModal.tsx +0 -433
- package/ui/src/components/EpicDetailPage.tsx +0 -741
- package/ui/src/components/EpicsPanel.tsx +0 -566
- package/ui/src/components/Header.tsx +0 -160
- package/ui/src/components/JsonViewer.tsx +0 -171
- package/ui/src/components/ScheduledTaskDetailPanel.tsx +0 -517
- package/ui/src/components/ScheduledTasksPanel.tsx +0 -639
- package/ui/src/components/ServicesPanel.tsx +0 -622
- package/ui/src/components/SessionLogPanel.tsx +0 -1219
- package/ui/src/components/StatsBar.tsx +0 -321
- package/ui/src/components/StatusBadge.tsx +0 -168
- package/ui/src/components/TaskDetailPanel.tsx +0 -903
- package/ui/src/components/TasksPanel.tsx +0 -614
- package/ui/src/components/UsageCharts.tsx +0 -216
- package/ui/src/components/UsageTab.tsx +0 -394
- package/ui/src/hooks/queries.ts +0 -353
- package/ui/src/hooks/useAutoScroll.ts +0 -83
- package/ui/src/index.css +0 -257
- package/ui/src/lib/api.ts +0 -268
- package/ui/src/lib/config.ts +0 -35
- package/ui/src/lib/contentPreview.ts +0 -208
- package/ui/src/lib/theme.ts +0 -214
- package/ui/src/lib/utils.ts +0 -88
- package/ui/src/main.tsx +0 -28
- package/ui/src/types/api.ts +0 -323
- package/ui/src/vite-env.d.ts +0 -1
- package/ui/tailwind.config.js +0 -37
- package/ui/tsconfig.json +0 -31
- package/ui/vite.config.ts +0 -35
- /package/{thoughts/shared/plans → templates/community}/.gitkeep +0 -0
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@desplega.ai/agent-swarm",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.51.2",
|
|
4
|
+
"description": "Multi-agent orchestration for Claude Code, Codex, Gemini CLI, and other AI coding assistants",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"author": "desplega.
|
|
6
|
+
"author": "desplega.sh <contact@desplega.sh>",
|
|
7
7
|
"maintainers": [
|
|
8
8
|
{
|
|
9
9
|
"name": "Taras",
|
|
10
|
-
"email": "t@desplega.
|
|
10
|
+
"email": "t@desplega.sh"
|
|
11
11
|
}
|
|
12
12
|
],
|
|
13
13
|
"repository": {
|
|
@@ -21,6 +21,15 @@
|
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
|
+
"files": [
|
|
25
|
+
"src/",
|
|
26
|
+
"plugin/commands/",
|
|
27
|
+
"plugin/agents/",
|
|
28
|
+
"plugin/skills/",
|
|
29
|
+
"plugin/pi-skills/",
|
|
30
|
+
"templates/",
|
|
31
|
+
"openapi.json"
|
|
32
|
+
],
|
|
24
33
|
"module": "src/http.ts",
|
|
25
34
|
"type": "module",
|
|
26
35
|
"bin": {
|
|
@@ -31,7 +40,9 @@
|
|
|
31
40
|
"name": "agent-swarm"
|
|
32
41
|
},
|
|
33
42
|
"scripts": {
|
|
43
|
+
"build:pi-skills": "bun run plugin/build-pi-skills.ts",
|
|
34
44
|
"tsc:check": "bun tsc --noEmit",
|
|
45
|
+
"check:db-boundary": "bash scripts/check-db-boundary.sh",
|
|
35
46
|
"cli": "bun src/cli.tsx",
|
|
36
47
|
"hook": "bun src/hooks/hook.ts",
|
|
37
48
|
"claude": "bun src/cli.tsx claude",
|
|
@@ -41,11 +52,12 @@
|
|
|
41
52
|
"lead": "bun src/cli.tsx lead",
|
|
42
53
|
"lead:yolo": "bun src/cli.tsx lead --yolo",
|
|
43
54
|
"dev": "bun --hot src/stdio.ts",
|
|
44
|
-
"dev:http": "bun --hot src/http.ts",
|
|
55
|
+
"dev:http": "portless api.swarm bun --hot src/http.ts",
|
|
45
56
|
"start": "bun src/stdio.ts",
|
|
46
57
|
"start:http": "bun src/http.ts",
|
|
58
|
+
"start:portless": "portless api.swarm bun src/http.ts",
|
|
47
59
|
"inspector": "bunx @modelcontextprotocol/inspector --transport stdio bun src/stdio.ts",
|
|
48
|
-
"inspector:http": "bunx @modelcontextprotocol/inspector --transport http
|
|
60
|
+
"inspector:http": "bunx @modelcontextprotocol/inspector --transport http https://api.swarm.localhost:1355/mcp",
|
|
49
61
|
"lint": "biome check src",
|
|
50
62
|
"lint:fix": "biome check --write src",
|
|
51
63
|
"format": "biome format --write src",
|
|
@@ -58,7 +70,10 @@
|
|
|
58
70
|
"deploy:update": "bun deploy/update.ts",
|
|
59
71
|
"deploy:uninstall": "bun deploy/uninstall.ts",
|
|
60
72
|
"deploy:docker": "bun deploy/docker-push.ts",
|
|
73
|
+
"e2e:workflows": "bun scripts/e2e-workflow-test.ts",
|
|
74
|
+
"e2e:workflows:docker": "bun scripts/e2e-workflow-test.ts --with-docker",
|
|
61
75
|
"docs:mcp": "bun scripts/generate-mcp-docs.ts",
|
|
76
|
+
"docs:openapi": "bun scripts/generate-openapi.ts",
|
|
62
77
|
"pm2-start": "pm2 start ecosystem.config.cjs",
|
|
63
78
|
"pm2-stop": "pm2 stop ecosystem.config.cjs",
|
|
64
79
|
"pm2-restart": "pm2 restart ecosystem.config.cjs",
|
|
@@ -76,15 +91,33 @@
|
|
|
76
91
|
"bun": ">=1.0.26"
|
|
77
92
|
},
|
|
78
93
|
"dependencies": {
|
|
94
|
+
"@ai-sdk/openai": "^3.0.41",
|
|
95
|
+
"@asteasolutions/zod-to-openapi": "^8.0.0",
|
|
96
|
+
"@desplega.ai/localtunnel": "^2.2.0",
|
|
79
97
|
"@inkjs/ui": "^2.0.0",
|
|
98
|
+
"@linear/sdk": "^77.0.0",
|
|
99
|
+
"@mariozechner/pi-agent-core": "^0.57.1",
|
|
100
|
+
"@mariozechner/pi-ai": "^0.57.1",
|
|
101
|
+
"@mariozechner/pi-coding-agent": "^0.57.1",
|
|
80
102
|
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
103
|
+
"@openfort/openfort-node": "^0.9.1",
|
|
81
104
|
"@slack/bolt": "^4.6.0",
|
|
82
105
|
"@types/react": "^19.2.7",
|
|
106
|
+
"@x402/core": "^2.5.0",
|
|
107
|
+
"@x402/evm": "^2.5.0",
|
|
108
|
+
"@x402/fetch": "^2.5.0",
|
|
109
|
+
"ai": "^6.0.116",
|
|
83
110
|
"cron-parser": "^5.4.0",
|
|
84
111
|
"date-fns": "^4.1.0",
|
|
112
|
+
"hono": "^4.12.3",
|
|
85
113
|
"ink": "^6.5.1",
|
|
114
|
+
"oauth4webapi": "^3.8.5",
|
|
115
|
+
"openai": "^6.22.0",
|
|
86
116
|
"react": "^19.2.3",
|
|
87
117
|
"react-devtools-core": "^7.0.1",
|
|
88
|
-
"
|
|
118
|
+
"svix": "^1.62.0",
|
|
119
|
+
"viem": "^2.46.3",
|
|
120
|
+
"zod": "^4.2.1",
|
|
121
|
+
"zod-to-json-schema": "^3.25.1"
|
|
89
122
|
}
|
|
90
123
|
}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Close a GitHub issue with a summary comment
|
|
2
|
+
description: Close a GitHub or GitLab issue with a summary comment
|
|
3
3
|
argument-hint: <issue-number-or-url>
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Close Issue
|
|
7
7
|
|
|
8
|
-
Close a GitHub issue with an appropriate closing comment summarizing the resolution.
|
|
8
|
+
Close a GitHub or GitLab issue with an appropriate closing comment summarizing the resolution.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the URL or remote to determine the VCS provider:
|
|
11
|
+
- If GitHub → use `gh issue close` / `gh issue comment`
|
|
12
|
+
- If GitLab → use `glab issue close` / `glab issue note`
|
|
9
13
|
|
|
10
14
|
## Arguments
|
|
11
15
|
|
|
12
|
-
- `issue-number-or-url`: Either an issue number (e.g., `123`) or a full
|
|
16
|
+
- `issue-number-or-url`: Either an issue number (e.g., `123`) or a full issue URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
|
|
13
17
|
|
|
14
18
|
## Workflow
|
|
15
19
|
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Create a GitHub
|
|
2
|
+
description: Create a pull request (GitHub) or merge request (GitLab) from the current branch
|
|
3
3
|
argument-hint: [base-branch]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Create Pull Request
|
|
6
|
+
# Create Pull Request / Merge Request
|
|
7
7
|
|
|
8
|
-
Create a GitHub
|
|
8
|
+
Create a pull request (GitHub) or merge request (GitLab) from the current branch with an auto-generated title and description.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the remote URL to determine the VCS provider:
|
|
11
|
+
- If the remote contains `github.com` → use `gh` CLI
|
|
12
|
+
- If the remote contains `gitlab.com` or `gitlab.` → use `glab` CLI
|
|
9
13
|
|
|
10
14
|
## Arguments
|
|
11
15
|
|
|
@@ -62,8 +66,9 @@ Based on the commits and changes:
|
|
|
62
66
|
- Any testing done
|
|
63
67
|
- Related issues (if applicable)
|
|
64
68
|
|
|
65
|
-
### 6. Create the PR
|
|
69
|
+
### 6. Create the PR/MR
|
|
66
70
|
|
|
71
|
+
**For GitHub:**
|
|
67
72
|
```bash
|
|
68
73
|
gh pr create \
|
|
69
74
|
--title "Your generated title" \
|
|
@@ -71,19 +76,20 @@ gh pr create \
|
|
|
71
76
|
--base main
|
|
72
77
|
```
|
|
73
78
|
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
**For GitLab:**
|
|
76
80
|
```bash
|
|
77
|
-
|
|
81
|
+
glab mr create \
|
|
82
|
+
--title "Your generated title" \
|
|
83
|
+
--description "Your generated description" \
|
|
84
|
+
--target-branch main
|
|
78
85
|
```
|
|
79
86
|
|
|
80
|
-
### 7. Report the PR URL
|
|
87
|
+
### 7. Report the PR/MR URL
|
|
81
88
|
|
|
82
|
-
After creation, provide the
|
|
89
|
+
After creation, provide the URL to the user:
|
|
83
90
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
```
|
|
91
|
+
**GitHub:** `gh pr view --json url --jq '.url'`
|
|
92
|
+
**GitLab:** `glab mr view --web`
|
|
87
93
|
|
|
88
94
|
## Tips
|
|
89
95
|
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Implement a GitHub issue and create a
|
|
2
|
+
description: Implement a GitHub issue or GitLab issue and create a PR/MR
|
|
3
3
|
argument-hint: <issue-number-or-url>
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Implement Issue
|
|
7
7
|
|
|
8
|
-
Read a GitHub issue, implement the requested changes, and create a pull request.
|
|
8
|
+
Read a GitHub or GitLab issue, implement the requested changes, and create a pull request / merge request.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the URL or remote to determine the VCS provider:
|
|
11
|
+
- If GitHub → use `gh issue view` / `gh pr create`
|
|
12
|
+
- If GitLab → use `glab issue view` / `glab mr create`
|
|
9
13
|
|
|
10
14
|
## Arguments
|
|
11
15
|
|
|
12
|
-
- `issue-number-or-url`: Either an issue number (e.g., `123`) or a full
|
|
16
|
+
- `issue-number-or-url`: Either an issue number (e.g., `123`) or a full URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
|
|
13
17
|
|
|
14
18
|
## Workflow
|
|
15
19
|
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Respond to a GitHub issue or
|
|
2
|
+
description: Respond to a GitHub issue/PR or GitLab issue/MR
|
|
3
3
|
argument-hint: <issue-or-pr-number-or-url>
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Respond to
|
|
6
|
+
# Respond to VCS Issue/PR/MR
|
|
7
7
|
|
|
8
|
-
Post a response to a GitHub issue or
|
|
8
|
+
Post a response to a GitHub issue/PR or GitLab issue/MR.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the URL or remote to determine the VCS provider:
|
|
11
|
+
- If GitHub → use `gh issue comment` / `gh pr comment`
|
|
12
|
+
- If GitLab → use `glab issue note` / `glab mr note`
|
|
9
13
|
|
|
10
14
|
## Arguments
|
|
11
15
|
|
|
12
|
-
- `issue-or-pr-number-or-url`: Either a number (e.g., `123`) or a full
|
|
16
|
+
- `issue-or-pr-number-or-url`: Either a number (e.g., `123`) or a full URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
|
|
13
17
|
|
|
14
18
|
## Workflow
|
|
15
19
|
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Review a GitHub
|
|
3
|
-
argument-hint: <pr-number-or-url>
|
|
2
|
+
description: Review a pull request (GitHub) or merge request (GitLab) and provide detailed feedback
|
|
3
|
+
argument-hint: <pr-or-mr-number-or-url>
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Review Pull Request
|
|
6
|
+
# Review Pull Request / Merge Request
|
|
7
7
|
|
|
8
|
-
Review a GitHub
|
|
8
|
+
Review a pull request (GitHub) or merge request (GitLab) by analyzing the changes and providing structured feedback.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the remote URL or the provided URL to determine the VCS provider:
|
|
11
|
+
- If GitHub → use `gh pr` commands
|
|
12
|
+
- If GitLab → use `glab mr` commands
|
|
9
13
|
|
|
10
14
|
## Arguments
|
|
11
15
|
|
|
@@ -51,21 +55,51 @@ gh pr view <pr-number> --json title,body,author,headRefName,baseRefName,addition
|
|
|
51
55
|
gh pr diff <pr-number>
|
|
52
56
|
```
|
|
53
57
|
|
|
54
|
-
### 6.
|
|
58
|
+
### 6. Check CI Status (MANDATORY)
|
|
59
|
+
|
|
60
|
+
Before analyzing the code, check if CI checks are passing:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# GitHub
|
|
64
|
+
gh pr checks <pr-number>
|
|
65
|
+
|
|
66
|
+
# GitLab
|
|
67
|
+
glab mr view <mr-number> --json pipelines
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**If CI checks are failing, this is an automatic REQUEST_CHANGES.** Do not approve a PR with failing CI. Include the failing check names and any relevant error details in your review.
|
|
71
|
+
|
|
72
|
+
### 7. Verify Tests Are Included (MANDATORY)
|
|
73
|
+
|
|
74
|
+
Check that the PR includes test changes:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Look for test files in the diff
|
|
78
|
+
gh pr diff <pr-number> | grep -E '^\+\+\+ b/.*\.(test|spec)\.' || echo "NO TEST FILES CHANGED"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**If the PR modifies code but does not add or update tests, this is an automatic REQUEST_CHANGES.** Every code change must include corresponding tests. The only exceptions are:
|
|
82
|
+
- Pure documentation changes (README, comments only)
|
|
83
|
+
- Configuration-only changes (CI config, linter config, env files)
|
|
84
|
+
- Dependency version bumps with no code changes
|
|
85
|
+
|
|
86
|
+
When requesting changes for missing tests, be specific about what tests are needed.
|
|
87
|
+
|
|
88
|
+
### 8. Analyze the Changes
|
|
55
89
|
|
|
56
90
|
Review the diff for:
|
|
57
91
|
- **Security issues**: SQL injection, XSS, command injection, secrets in code
|
|
58
92
|
- **Logic errors**: Off-by-one errors, null handling, edge cases
|
|
59
93
|
- **Performance concerns**: N+1 queries, unnecessary loops, memory leaks
|
|
60
94
|
- **Code quality**: Naming, complexity, duplication, missing error handling
|
|
61
|
-
- **Test coverage**: Are
|
|
95
|
+
- **Test coverage**: Are the included tests sufficient? Do they cover edge cases?
|
|
62
96
|
|
|
63
97
|
You can also:
|
|
64
98
|
- Run the test suite locally to verify tests pass
|
|
65
99
|
- Check for TypeScript errors with `bun tsc --noEmit` or equivalent
|
|
66
100
|
- Review the actual files in context, not just the diff
|
|
67
101
|
|
|
68
|
-
###
|
|
102
|
+
### 9. Provide Structured Feedback
|
|
69
103
|
|
|
70
104
|
Format your review as:
|
|
71
105
|
|
|
@@ -92,7 +126,7 @@ Format your review as:
|
|
|
92
126
|
<Overall recommendation>
|
|
93
127
|
```
|
|
94
128
|
|
|
95
|
-
###
|
|
129
|
+
### 10. Optionally Post the Review
|
|
96
130
|
|
|
97
131
|
If the user wants to post the review to GitHub:
|
|
98
132
|
|
|
@@ -104,7 +138,7 @@ gh pr review <pr-number> --request-changes --body "Your review message"
|
|
|
104
138
|
gh pr review <pr-number> --comment --body "Your review message"
|
|
105
139
|
```
|
|
106
140
|
|
|
107
|
-
###
|
|
141
|
+
### 11. Post Inline Comments on Specific Lines
|
|
108
142
|
|
|
109
143
|
For more detailed feedback, you can post inline comments directly on specific lines of code using the GitHub API:
|
|
110
144
|
|
|
@@ -162,7 +196,7 @@ gh api repos/owner/repo/pulls/123/comments \
|
|
|
162
196
|
-f body="⚠️ SQL injection risk: Use parameterized queries instead of string interpolation."
|
|
163
197
|
```
|
|
164
198
|
|
|
165
|
-
###
|
|
199
|
+
### 12. Re-reviewing and Resolving Comments
|
|
166
200
|
|
|
167
201
|
When the PR author makes changes in response to your review:
|
|
168
202
|
|
|
@@ -9,9 +9,7 @@ description: Start the Agent Swarm Leader
|
|
|
9
9
|
If the `agent-swarm` MCP server is not configured or disabled, return immediately with the following message:
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
⚠️ The Agent Swarm MCP server is not configured or disabled. Please
|
|
13
|
-
|
|
14
|
-
Are you dumb or something? Go ask your admin to set it up properly. GTFO.
|
|
12
|
+
⚠️ The Agent Swarm MCP server is not configured or disabled. Please run `bunx @desplega.ai/agent-swarm setup` to configure it.
|
|
15
13
|
```
|
|
16
14
|
|
|
17
15
|
## Initial Setup
|
|
@@ -9,9 +9,7 @@ description: Start an Agent Swarm Worker
|
|
|
9
9
|
If the `agent-swarm` MCP server is not configured or disabled, return immediately with the following message:
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
⚠️ The Agent Swarm MCP server is not configured or disabled. Please
|
|
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.
|
|
12
|
+
⚠️ The Agent Swarm MCP server is not configured or disabled. Please run `bunx @desplega.ai/agent-swarm setup` to configure it.
|
|
15
13
|
```
|
|
16
14
|
|
|
17
15
|
## Agent Swarm Worker Setup
|
|
@@ -9,11 +9,19 @@ If no `taskId` is provided, you should call the `poll-task` tool to get a new ta
|
|
|
9
9
|
|
|
10
10
|
## Workflow
|
|
11
11
|
|
|
12
|
-
Once you get a task assigned, you need to
|
|
12
|
+
Once you get a task assigned, you need to immediately start working on it. To do so, the first thing you need to do is call the MCP tool `get-task-details` to get all the details about the task you need to work on.
|
|
13
13
|
|
|
14
14
|
Once you have the task details, you should:
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
<!-- claude-only -->
|
|
17
|
+
1. **Recall relevant memories (REQUIRED):** Before starting any work, search your memory for relevant context:
|
|
18
|
+
- Use `memory-search` with the task description as query
|
|
19
|
+
- If the task has an epicId, also search with the epic name/goal
|
|
20
|
+
- Review any returned memories — they may contain solutions, patterns, or warnings from previous tasks
|
|
21
|
+
- Use `memory-get` on any highly relevant results to get full details
|
|
22
|
+
- This step is NOT optional. Past learnings compound your effectiveness.
|
|
23
|
+
<!-- /claude-only -->
|
|
24
|
+
2. Figure out if you need to use any of the available commands to help you with your work (see below for available commands)
|
|
17
25
|
2. Use the `/todos` command to add a new todo item indicating you are starting to work on the task (e.g. "Work on task XXX: <short description>"). This will help on restarts, as it will be easier to remember what you were doing.
|
|
18
26
|
3. 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". Additionally use `/swarm-chat` command to notify the swarm, human and lead when applicable. Do not be too verbose, nor spammy.
|
|
19
27
|
4. Start working on the task, providing updates as needed by calling `store-progress` tool, use the `progress` field to indicate what you are doing.
|
|
@@ -50,4 +58,15 @@ Once you are done, or in a real dead-end, you should call `store-progress` tool
|
|
|
50
58
|
|
|
51
59
|
If you used the `/todos` command to add a todo item when starting the task, make sure to mark it as completed or remove it as needed.
|
|
52
60
|
|
|
53
|
-
Once you are done (either ok or not), finish the session by just replying "DONE".
|
|
61
|
+
Once you are done (either ok or not), perform the Post-Task Reflection below, then finish the session by just replying "DONE".
|
|
62
|
+
|
|
63
|
+
### Post-Task Reflection (REQUIRED)
|
|
64
|
+
|
|
65
|
+
After calling `store-progress` to complete or fail a task, do the following before finishing:
|
|
66
|
+
|
|
67
|
+
1. **Transferable learning?** If you learned something reusable (a pattern, a gotcha, a fix), write it to `/workspace/personal/memory/<descriptive-name>.md`
|
|
68
|
+
2. **Swarm-relevant?** If the learning applies to all agents (not just you), write it to `/workspace/shared/memory/<your-id>/<descriptive-name>.md` so all agents can find it via `memory-search`
|
|
69
|
+
3. **Identity update?** If you discovered a new area of expertise or working style preference, update your IDENTITY.md
|
|
70
|
+
4. **Tools update?** If you found a new service, API, or tool, update your TOOLS.md
|
|
71
|
+
|
|
72
|
+
Skip this section ONLY if the task was trivially simple (single file edit, no debugging, no new knowledge gained).
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: close-issue
|
|
3
|
+
description: Close a GitHub or GitLab issue with a summary comment
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Close Issue
|
|
7
|
+
|
|
8
|
+
Close a GitHub or GitLab issue with an appropriate closing comment summarizing the resolution.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the URL or remote to determine the VCS provider:
|
|
11
|
+
- If GitHub → use `gh issue close` / `gh issue comment`
|
|
12
|
+
- If GitLab → use `glab issue close` / `glab issue note`
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
- `issue-number-or-url`: Either an issue number (e.g., `123`) or a full issue URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
### 1. Parse the Input
|
|
21
|
+
|
|
22
|
+
If given a URL, extract the owner, repo, and issue number. If given just a number, use the current repository context.
|
|
23
|
+
|
|
24
|
+
### 2. Ensure Repository is Cloned Locally
|
|
25
|
+
|
|
26
|
+
Make sure the repository is available in your personal workspace:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
REPO_PATH=/workspace/personal/<repo-name>
|
|
30
|
+
|
|
31
|
+
if [ ! -d "$REPO_PATH" ]; then
|
|
32
|
+
gh repo clone <owner>/<repo> "$REPO_PATH"
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
cd "$REPO_PATH"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 3. Get Issue Details
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
gh issue view <issue-number> --json title,body,author,labels,comments
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 4. Understand the Context
|
|
45
|
+
|
|
46
|
+
Review:
|
|
47
|
+
- What was the original issue about?
|
|
48
|
+
- What work was done to resolve it?
|
|
49
|
+
- Were there any related PRs or commits?
|
|
50
|
+
|
|
51
|
+
Check for related PRs:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
gh pr list --search "fixes #<issue-number>" --json number,title,state
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 5. Generate Closing Comment
|
|
58
|
+
|
|
59
|
+
Write a closing comment that includes:
|
|
60
|
+
- Brief summary of what was done
|
|
61
|
+
- Reference to any PRs that addressed the issue
|
|
62
|
+
- Any follow-up items or notes
|
|
63
|
+
|
|
64
|
+
### 6. Post Comment and Close
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Add the closing comment
|
|
68
|
+
gh issue comment <issue-number> --body "Your closing comment"
|
|
69
|
+
|
|
70
|
+
# Close the issue
|
|
71
|
+
gh issue close <issue-number>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Or combine with a reason:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
gh issue close <issue-number> --comment "Your closing comment" --reason completed
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Closing Reasons
|
|
81
|
+
|
|
82
|
+
- `completed` - The issue was resolved
|
|
83
|
+
- `not_planned` - Won't fix / out of scope / duplicate
|
|
84
|
+
|
|
85
|
+
## Tips
|
|
86
|
+
|
|
87
|
+
- Always explain why the issue is being closed
|
|
88
|
+
- Reference specific PRs or commits when applicable
|
|
89
|
+
- If closing as "not planned", explain the reasoning
|
|
90
|
+
- Be respectful - someone took time to report the issue
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-pr
|
|
3
|
+
description: Create a pull request (GitHub) or merge request (GitLab) from the current branch
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create Pull Request / Merge Request
|
|
7
|
+
|
|
8
|
+
Create a pull request (GitHub) or merge request (GitLab) from the current branch with an auto-generated title and description.
|
|
9
|
+
|
|
10
|
+
**Provider detection:** Check the remote URL to determine the VCS provider:
|
|
11
|
+
- If the remote contains `github.com` → use `gh` CLI
|
|
12
|
+
- If the remote contains `gitlab.com` or `gitlab.` → use `glab` CLI
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
- `base-branch` (optional): The branch to merge into (defaults to `main` or the repo's default branch)
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
You should be working in a repository cloned to `/workspace/personal/<repo-name>`.
|
|
21
|
+
|
|
22
|
+
## Workflow
|
|
23
|
+
|
|
24
|
+
### 1. Verify Working Directory
|
|
25
|
+
|
|
26
|
+
Ensure you're in a git repository:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git rev-parse --is-inside-work-tree
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 2. Check Branch Status
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Get current branch
|
|
36
|
+
git branch --show-current
|
|
37
|
+
|
|
38
|
+
# Ensure we're not on main/master
|
|
39
|
+
# Ensure there are commits to push
|
|
40
|
+
git log origin/main..HEAD --oneline
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 3. Push the Branch
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
git push -u origin HEAD
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 4. Gather Context for PR Description
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Get commit messages since diverging from base
|
|
53
|
+
git log origin/main..HEAD --pretty=format:"%s%n%b"
|
|
54
|
+
|
|
55
|
+
# Get changed files
|
|
56
|
+
git diff --stat origin/main..HEAD
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 5. Generate PR Title and Description
|
|
60
|
+
|
|
61
|
+
Based on the commits and changes:
|
|
62
|
+
- **Title**: Concise summary of the changes (use conventional commit style if the repo uses it)
|
|
63
|
+
- **Description**:
|
|
64
|
+
- Summary of what changed and why
|
|
65
|
+
- List of notable changes
|
|
66
|
+
- Any testing done
|
|
67
|
+
- Related issues (if applicable)
|
|
68
|
+
|
|
69
|
+
### 6. Create the PR/MR
|
|
70
|
+
|
|
71
|
+
**For GitHub:**
|
|
72
|
+
```bash
|
|
73
|
+
gh pr create \
|
|
74
|
+
--title "Your generated title" \
|
|
75
|
+
--body "Your generated description" \
|
|
76
|
+
--base main
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**For GitLab:**
|
|
80
|
+
```bash
|
|
81
|
+
glab mr create \
|
|
82
|
+
--title "Your generated title" \
|
|
83
|
+
--description "Your generated description" \
|
|
84
|
+
--target-branch main
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 7. Report the PR/MR URL
|
|
88
|
+
|
|
89
|
+
After creation, provide the URL to the user:
|
|
90
|
+
|
|
91
|
+
**GitHub:** `gh pr view --json url --jq '.url'`
|
|
92
|
+
**GitLab:** `glab mr view --web`
|
|
93
|
+
|
|
94
|
+
## Tips
|
|
95
|
+
|
|
96
|
+
- Link related issues using `Fixes #123` or `Closes #123` in the description
|
|
97
|
+
- Include a test plan if the changes are significant
|
|
98
|
+
- Keep PRs focused - one logical change per PR
|
|
99
|
+
- If the branch has many commits, consider summarizing the overall change rather than listing each commit
|