@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/docker-entrypoint.sh
DELETED
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
set -e
|
|
3
|
-
|
|
4
|
-
# Validate required environment variables
|
|
5
|
-
if [ -z "$CLAUDE_CODE_OAUTH_TOKEN" ]; then
|
|
6
|
-
echo "Error: CLAUDE_CODE_OAUTH_TOKEN environment variable is required"
|
|
7
|
-
exit 1
|
|
8
|
-
fi
|
|
9
|
-
|
|
10
|
-
if [ -z "$API_KEY" ]; then
|
|
11
|
-
echo "Error: API_KEY environment variable is required"
|
|
12
|
-
exit 1
|
|
13
|
-
fi
|
|
14
|
-
|
|
15
|
-
# Role defaults to worker, can be set to "lead"
|
|
16
|
-
ROLE="${AGENT_ROLE:-worker}"
|
|
17
|
-
MCP_URL="${MCP_BASE_URL:-http://host.docker.internal:3013}"
|
|
18
|
-
|
|
19
|
-
# Get version from compiled binary (extract just the version number)
|
|
20
|
-
VERSION=$(/usr/local/bin/agent-swarm version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' || echo "unknown")
|
|
21
|
-
|
|
22
|
-
# Determine YOLO mode based on role
|
|
23
|
-
if [ "$ROLE" = "lead" ]; then
|
|
24
|
-
YOLO_MODE="${LEAD_YOLO:-false}"
|
|
25
|
-
else
|
|
26
|
-
YOLO_MODE="${WORKER_YOLO:-false}"
|
|
27
|
-
fi
|
|
28
|
-
|
|
29
|
-
echo "=== Agent Swarm ${ROLE^} v${VERSION} ==="
|
|
30
|
-
echo "Agent ID: ${AGENT_ID:-<not set>}"
|
|
31
|
-
echo "MCP Base URL: $MCP_URL"
|
|
32
|
-
echo "YOLO Mode: $YOLO_MODE"
|
|
33
|
-
echo "Session ID: ${SESSION_ID:-<auto-generated>}"
|
|
34
|
-
echo "Working Directory: /workspace"
|
|
35
|
-
echo "=========================="
|
|
36
|
-
|
|
37
|
-
# Initialize PM2 daemon for background service management
|
|
38
|
-
echo ""
|
|
39
|
-
echo "=== PM2 Initialization ==="
|
|
40
|
-
echo "PM2 Home: ${PM2_HOME:-~/.pm2}"
|
|
41
|
-
# Ensure PM2 home directory exists (for persistence in /workspace)
|
|
42
|
-
mkdir -p "${PM2_HOME:-$HOME/.pm2}"
|
|
43
|
-
pm2 startup > /dev/null 2>&1 || true
|
|
44
|
-
|
|
45
|
-
# Restore services from ecosystem (database-driven, more reliable than pm2 resurrect)
|
|
46
|
-
ECOSYSTEM_FILE="/workspace/ecosystem.config.js"
|
|
47
|
-
if [ -n "$AGENT_ID" ]; then
|
|
48
|
-
echo "Fetching ecosystem config from MCP server..."
|
|
49
|
-
if curl -s -f -H "Authorization: Bearer ${API_KEY}" \
|
|
50
|
-
-H "X-Agent-ID: ${AGENT_ID}" \
|
|
51
|
-
"${MCP_URL}/ecosystem" > /tmp/ecosystem.json 2>/dev/null; then
|
|
52
|
-
|
|
53
|
-
# Check if there are any apps to start
|
|
54
|
-
APP_COUNT=$(cat /tmp/ecosystem.json | jq -r '.apps | length' 2>/dev/null || echo "0")
|
|
55
|
-
|
|
56
|
-
if [ "$APP_COUNT" -gt "0" ]; then
|
|
57
|
-
echo "Found $APP_COUNT registered service(s)"
|
|
58
|
-
# Convert JSON to JS module
|
|
59
|
-
echo "module.exports = $(cat /tmp/ecosystem.json);" > "$ECOSYSTEM_FILE"
|
|
60
|
-
echo "Starting services from ecosystem file..."
|
|
61
|
-
pm2 start "$ECOSYSTEM_FILE" || true
|
|
62
|
-
pm2 list
|
|
63
|
-
else
|
|
64
|
-
echo "No services registered for this agent"
|
|
65
|
-
fi
|
|
66
|
-
rm -f /tmp/ecosystem.json
|
|
67
|
-
else
|
|
68
|
-
echo "Could not fetch ecosystem config (MCP server may be unavailable)"
|
|
69
|
-
fi
|
|
70
|
-
else
|
|
71
|
-
echo "AGENT_ID not set, skipping ecosystem restore"
|
|
72
|
-
fi
|
|
73
|
-
|
|
74
|
-
# Fallback: try pm2 resurrect for any locally saved processes
|
|
75
|
-
if pm2 resurrect 2>/dev/null; then
|
|
76
|
-
pm2 list 2>/dev/null || true
|
|
77
|
-
fi
|
|
78
|
-
echo "=========================="
|
|
79
|
-
|
|
80
|
-
# Cleanup function for graceful shutdown
|
|
81
|
-
cleanup() {
|
|
82
|
-
echo ""
|
|
83
|
-
echo "Shutting down PM2 processes..."
|
|
84
|
-
pm2 kill 2>/dev/null || true
|
|
85
|
-
}
|
|
86
|
-
trap cleanup EXIT SIGINT SIGTERM
|
|
87
|
-
|
|
88
|
-
# Create .mcp.json in /workspace (project-level config)
|
|
89
|
-
echo "Creating MCP config in /workspace..."
|
|
90
|
-
if [ -n "$AGENT_ID" ]; then
|
|
91
|
-
cat > /workspace/.mcp.json << EOF
|
|
92
|
-
{
|
|
93
|
-
"mcpServers": {
|
|
94
|
-
"agent-swarm": {
|
|
95
|
-
"type": "http",
|
|
96
|
-
"url": "${MCP_URL}/mcp",
|
|
97
|
-
"headers": {
|
|
98
|
-
"Authorization": "Bearer ${API_KEY}",
|
|
99
|
-
"X-Agent-ID": "${AGENT_ID}"
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
EOF
|
|
105
|
-
else
|
|
106
|
-
cat > /workspace/.mcp.json << EOF
|
|
107
|
-
{
|
|
108
|
-
"mcpServers": {
|
|
109
|
-
"agent-swarm": {
|
|
110
|
-
"type": "http",
|
|
111
|
-
"url": "${MCP_URL}/mcp",
|
|
112
|
-
"headers": {
|
|
113
|
-
"Authorization": "Bearer ${API_KEY}"
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
EOF
|
|
119
|
-
fi
|
|
120
|
-
|
|
121
|
-
# Configure GitHub authentication if token is provided
|
|
122
|
-
echo ""
|
|
123
|
-
echo "=== GitHub Authentication ==="
|
|
124
|
-
if [ -n "$GITHUB_TOKEN" ]; then
|
|
125
|
-
echo "Configuring GitHub authentication..."
|
|
126
|
-
|
|
127
|
-
# gh CLI will automatically use GITHUB_TOKEN env var for API calls
|
|
128
|
-
# Just need to configure git to use gh as credential helper
|
|
129
|
-
gh auth setup-git
|
|
130
|
-
|
|
131
|
-
# Set git user config for commits (use env vars or defaults)
|
|
132
|
-
GIT_EMAIL="${GITHUB_EMAIL:-worker-agent@desplega.ai}"
|
|
133
|
-
GIT_NAME="${GITHUB_NAME:-Worker Agent}"
|
|
134
|
-
git config --global user.email "$GIT_EMAIL"
|
|
135
|
-
git config --global user.name "$GIT_NAME"
|
|
136
|
-
|
|
137
|
-
echo "GitHub authentication configured successfully"
|
|
138
|
-
echo "Git user: $GIT_NAME <$GIT_EMAIL>"
|
|
139
|
-
else
|
|
140
|
-
echo "WARNING: GITHUB_TOKEN not set - git push operations will fail"
|
|
141
|
-
fi
|
|
142
|
-
echo "=============================="
|
|
143
|
-
|
|
144
|
-
# Install the desplega-ai marketplace
|
|
145
|
-
echo ""
|
|
146
|
-
echo "=== Marketplace Installation ==="
|
|
147
|
-
|
|
148
|
-
if command -v claude >/dev/null 2>&1; then
|
|
149
|
-
echo "Installing desplega-ai/ai-toolbox marketplace..."
|
|
150
|
-
claude plugin marketplace add desplega-ai/ai-toolbox || echo "Toolbox marketplace add failed, continuing..."
|
|
151
|
-
|
|
152
|
-
echo "Installing plugins from desplega-ai-toolbox..."
|
|
153
|
-
claude plugin install desplega@desplega-ai-toolbox --scope user || echo "Plugin install failed, continuing..."
|
|
154
|
-
claude plugin install agent-swarm@desplega-ai-toolbox --scope user || echo "Plugin install failed, continuing..."
|
|
155
|
-
claude plugin install wts@desplega-ai-toolbox --scope user || echo "Plugin install failed, continuing..."
|
|
156
|
-
|
|
157
|
-
echo "Installing desplega-ai/qa-use marketplace..."
|
|
158
|
-
claude plugin marketplace add desplega-ai/qa-use || echo "qa-use marketplace add failed, continuing..."
|
|
159
|
-
|
|
160
|
-
echo "Installing plugins from desplega.ai..."
|
|
161
|
-
claude plugin install qa-use@desplega.ai --scope user || echo "Plugin install failed, continuing..."
|
|
162
|
-
|
|
163
|
-
echo "Marketplace installation completed"
|
|
164
|
-
else
|
|
165
|
-
echo "WARNING: claude CLI not found, skipping marketplace installation"
|
|
166
|
-
fi
|
|
167
|
-
echo "==============================="
|
|
168
|
-
|
|
169
|
-
# Configure and install ai-tracker for tracking AI vs human code changes
|
|
170
|
-
echo ""
|
|
171
|
-
echo "=== AI Tracker Setup ==="
|
|
172
|
-
if command -v ai-tracker >/dev/null 2>&1; then
|
|
173
|
-
# Create shared tracking directory
|
|
174
|
-
TRACKING_DIR="/workspace/shared/tracking"
|
|
175
|
-
mkdir -p "$TRACKING_DIR"
|
|
176
|
-
|
|
177
|
-
# Set per-agent database path
|
|
178
|
-
if [ -n "$AGENT_ID" ]; then
|
|
179
|
-
export AI_TRACKER_DB_PATH="${TRACKING_DIR}/${AGENT_ID}.db"
|
|
180
|
-
echo "AI Tracker DB Path: $AI_TRACKER_DB_PATH"
|
|
181
|
-
else
|
|
182
|
-
export AI_TRACKER_DB_PATH="${TRACKING_DIR}/default.db"
|
|
183
|
-
echo "AI Tracker DB Path: $AI_TRACKER_DB_PATH (default, AGENT_ID not set)"
|
|
184
|
-
fi
|
|
185
|
-
|
|
186
|
-
# Persist AI_TRACKER_DB_PATH to .bashrc for git hooks and new shell sessions
|
|
187
|
-
# Git hooks spawn fresh shells that don't inherit the exported env var
|
|
188
|
-
if ! grep -q "AI_TRACKER_DB_PATH" ~/.bashrc 2>/dev/null; then
|
|
189
|
-
echo "export AI_TRACKER_DB_PATH=\"${AI_TRACKER_DB_PATH}\"" >> ~/.bashrc
|
|
190
|
-
fi
|
|
191
|
-
|
|
192
|
-
# Install ai-tracker hooks (Claude Code PostToolUse hook + git post-commit hook)
|
|
193
|
-
echo "Installing ai-tracker hooks..."
|
|
194
|
-
ai-tracker install || echo "AI Tracker install failed, continuing..."
|
|
195
|
-
|
|
196
|
-
echo "AI Tracker setup completed"
|
|
197
|
-
else
|
|
198
|
-
echo "WARNING: ai-tracker not found, skipping AI tracking setup"
|
|
199
|
-
fi
|
|
200
|
-
echo "==============================="
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
# Execute startup script if found
|
|
204
|
-
STARTUP_SCRIPT_STRICT="${STARTUP_SCRIPT_STRICT:-true}"
|
|
205
|
-
echo ""
|
|
206
|
-
echo "=== Startup Script Detection (${ROLE}) ==="
|
|
207
|
-
|
|
208
|
-
# Find startup script matching /workspace/start-up.* pattern
|
|
209
|
-
STARTUP_SCRIPT=""
|
|
210
|
-
for pattern in start-up.sh start-up.bash start-up.js start-up.ts start-up.bun start-up; do
|
|
211
|
-
if [ -f "/workspace/${pattern}" ]; then
|
|
212
|
-
STARTUP_SCRIPT="/workspace/${pattern}"
|
|
213
|
-
break
|
|
214
|
-
fi
|
|
215
|
-
done
|
|
216
|
-
|
|
217
|
-
if [ -n "$STARTUP_SCRIPT" ]; then
|
|
218
|
-
echo "Found startup script: $STARTUP_SCRIPT"
|
|
219
|
-
|
|
220
|
-
# Check if file is executable
|
|
221
|
-
if [ ! -x "$STARTUP_SCRIPT" ]; then
|
|
222
|
-
echo "Script is not executable, checking for shebang..."
|
|
223
|
-
fi
|
|
224
|
-
|
|
225
|
-
# Read first line to check for shebang
|
|
226
|
-
FIRST_LINE=$(head -n 1 "$STARTUP_SCRIPT")
|
|
227
|
-
|
|
228
|
-
if [[ "$FIRST_LINE" =~ ^#! ]]; then
|
|
229
|
-
# Has shebang - extract interpreter
|
|
230
|
-
INTERPRETER="${FIRST_LINE#\#!}"
|
|
231
|
-
# Trim whitespace
|
|
232
|
-
INTERPRETER=$(echo "$INTERPRETER" | xargs)
|
|
233
|
-
echo "Detected shebang interpreter: $INTERPRETER"
|
|
234
|
-
|
|
235
|
-
# Check if it's an env-based shebang (#!/usr/bin/env bash)
|
|
236
|
-
if [[ "$INTERPRETER" =~ ^/usr/bin/env ]]; then
|
|
237
|
-
ACTUAL_INTERPRETER=$(echo "$INTERPRETER" | awk '{print $2}')
|
|
238
|
-
echo "Using env interpreter: $ACTUAL_INTERPRETER"
|
|
239
|
-
INTERPRETER="$ACTUAL_INTERPRETER"
|
|
240
|
-
fi
|
|
241
|
-
|
|
242
|
-
echo "Executing startup script with interpreter: $INTERPRETER"
|
|
243
|
-
# Always use the interpreter explicitly to avoid permission issues
|
|
244
|
-
# Use || true to prevent set -e from exiting before we can handle the error
|
|
245
|
-
$INTERPRETER "$STARTUP_SCRIPT" || EXIT_CODE=$?
|
|
246
|
-
EXIT_CODE=${EXIT_CODE:-0}
|
|
247
|
-
else
|
|
248
|
-
# No shebang, try to infer from extension
|
|
249
|
-
EXTENSION="${STARTUP_SCRIPT##*.}"
|
|
250
|
-
echo "No shebang found, inferring from extension: .$EXTENSION"
|
|
251
|
-
|
|
252
|
-
case "$EXTENSION" in
|
|
253
|
-
sh|bash)
|
|
254
|
-
echo "Executing with bash..."
|
|
255
|
-
bash "$STARTUP_SCRIPT" || EXIT_CODE=$?
|
|
256
|
-
;;
|
|
257
|
-
js)
|
|
258
|
-
echo "Executing with node..."
|
|
259
|
-
node "$STARTUP_SCRIPT" || EXIT_CODE=$?
|
|
260
|
-
;;
|
|
261
|
-
ts)
|
|
262
|
-
echo "Executing with bun (TypeScript)..."
|
|
263
|
-
bun run "$STARTUP_SCRIPT" || EXIT_CODE=$?
|
|
264
|
-
;;
|
|
265
|
-
bun)
|
|
266
|
-
echo "Executing with bun..."
|
|
267
|
-
bun run "$STARTUP_SCRIPT" || EXIT_CODE=$?
|
|
268
|
-
;;
|
|
269
|
-
*)
|
|
270
|
-
# Try to execute directly if executable
|
|
271
|
-
if [ -x "$STARTUP_SCRIPT" ]; then
|
|
272
|
-
echo "Executing directly (executable bit set)..."
|
|
273
|
-
"$STARTUP_SCRIPT" || EXIT_CODE=$?
|
|
274
|
-
else
|
|
275
|
-
echo "WARNING: Unknown extension and not executable, trying bash..."
|
|
276
|
-
bash "$STARTUP_SCRIPT" || EXIT_CODE=$?
|
|
277
|
-
fi
|
|
278
|
-
;;
|
|
279
|
-
esac
|
|
280
|
-
EXIT_CODE=${EXIT_CODE:-0}
|
|
281
|
-
fi
|
|
282
|
-
|
|
283
|
-
# Handle exit code
|
|
284
|
-
if [ $EXIT_CODE -ne 0 ]; then
|
|
285
|
-
echo ""
|
|
286
|
-
echo "ERROR: Startup script failed with exit code $EXIT_CODE"
|
|
287
|
-
|
|
288
|
-
if [ "$STARTUP_SCRIPT_STRICT" = "true" ]; then
|
|
289
|
-
echo "STARTUP_SCRIPT_STRICT=true - Exiting..."
|
|
290
|
-
exit $EXIT_CODE
|
|
291
|
-
else
|
|
292
|
-
echo "STARTUP_SCRIPT_STRICT=false - Continuing despite error..."
|
|
293
|
-
fi
|
|
294
|
-
else
|
|
295
|
-
echo "Startup script completed successfully"
|
|
296
|
-
fi
|
|
297
|
-
else
|
|
298
|
-
echo "No startup script found (looked for /workspace/start-up.*)"
|
|
299
|
-
echo "Skipping startup script execution"
|
|
300
|
-
fi
|
|
301
|
-
|
|
302
|
-
echo ""
|
|
303
|
-
echo "=== Workspace Initialization ==="
|
|
304
|
-
|
|
305
|
-
# Configure wts for agent use (no tmux, no auto-Claude)
|
|
306
|
-
echo "Configuring wts for agent mode..."
|
|
307
|
-
mkdir -p /home/worker/.wts
|
|
308
|
-
cat > /home/worker/.wts/config.json << EOF
|
|
309
|
-
{
|
|
310
|
-
"defaults": {
|
|
311
|
-
"autoTmux": false,
|
|
312
|
-
"autoClaude": false
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
EOF
|
|
316
|
-
|
|
317
|
-
PERSONAL_DIR="/workspace/personal"
|
|
318
|
-
mkdir -p "$PERSONAL_DIR"
|
|
319
|
-
|
|
320
|
-
if [ ! -f "$PERSONAL_DIR/todos.md" ]; then
|
|
321
|
-
echo "Creating personal todos.md..."
|
|
322
|
-
cat > "$PERSONAL_DIR/todos.md" << EOF
|
|
323
|
-
# My TODOs
|
|
324
|
-
|
|
325
|
-
## Current
|
|
326
|
-
- [ ] <task here>
|
|
327
|
-
EOF
|
|
328
|
-
else
|
|
329
|
-
echo "Personal todo.md already exists, skipping creation"
|
|
330
|
-
fi
|
|
331
|
-
|
|
332
|
-
SHARED_DIR="/workspace/shared/thoughts"
|
|
333
|
-
|
|
334
|
-
# Create shared thoughts directories
|
|
335
|
-
if [ -n "$AGENT_ID" ]; then
|
|
336
|
-
AGENT_THOUGHTS_DIR="$SHARED_DIR/$AGENT_ID"
|
|
337
|
-
echo "Creating shared thoughts directories for agent ID $AGENT_ID..."
|
|
338
|
-
mkdir -p "$AGENT_THOUGHTS_DIR/plans"
|
|
339
|
-
mkdir -p "$AGENT_THOUGHTS_DIR/research"
|
|
340
|
-
fi
|
|
341
|
-
|
|
342
|
-
# shared always
|
|
343
|
-
echo "Creating shared thoughts directories..."
|
|
344
|
-
mkdir -p "$SHARED_DIR/shared/plans"
|
|
345
|
-
mkdir -p "$SHARED_DIR/shared/research"
|
|
346
|
-
|
|
347
|
-
echo "==============================="
|
|
348
|
-
echo ""
|
|
349
|
-
|
|
350
|
-
# Run the agent using compiled binary
|
|
351
|
-
echo "Starting $ROLE..."
|
|
352
|
-
exec /usr/local/bin/agent-swarm "$ROLE" "$@"
|
package/ecosystem.config.cjs
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
apps: [
|
|
3
|
-
{
|
|
4
|
-
name: "swarm-api",
|
|
5
|
-
script: "bun",
|
|
6
|
-
args: "run start:http",
|
|
7
|
-
cwd: __dirname,
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
name: "swarm-ui",
|
|
11
|
-
script: "pnpm",
|
|
12
|
-
args: ["run", "dev", "--port", "5274"],
|
|
13
|
-
cwd: `${__dirname}/ui`,
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
name: "swarm-lead",
|
|
17
|
-
script: "docker",
|
|
18
|
-
args: [
|
|
19
|
-
"run",
|
|
20
|
-
"--rm",
|
|
21
|
-
"--name",
|
|
22
|
-
"swarm-lead",
|
|
23
|
-
"--env-file",
|
|
24
|
-
".env.docker-lead",
|
|
25
|
-
"-e",
|
|
26
|
-
"AGENT_ROLE=lead",
|
|
27
|
-
"-p",
|
|
28
|
-
"3201:3000",
|
|
29
|
-
"-v",
|
|
30
|
-
"./logs:/logs",
|
|
31
|
-
"-v",
|
|
32
|
-
"./work/shared:/workspace/shared",
|
|
33
|
-
"-v",
|
|
34
|
-
"./work/lead:/workspace/personal",
|
|
35
|
-
"agent-swarm-worker:latest",
|
|
36
|
-
],
|
|
37
|
-
cwd: __dirname,
|
|
38
|
-
autorestart: true,
|
|
39
|
-
restart_delay: 5000,
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: "swarm-worker",
|
|
43
|
-
script: "docker",
|
|
44
|
-
args: [
|
|
45
|
-
"run",
|
|
46
|
-
"--rm",
|
|
47
|
-
"--name",
|
|
48
|
-
"swarm-worker",
|
|
49
|
-
"--env-file",
|
|
50
|
-
".env.docker",
|
|
51
|
-
"-p",
|
|
52
|
-
"3202:3000",
|
|
53
|
-
"-v",
|
|
54
|
-
"./logs:/logs",
|
|
55
|
-
"-v",
|
|
56
|
-
"./work/shared:/workspace/shared",
|
|
57
|
-
"-v",
|
|
58
|
-
"./work/worker-1:/workspace/personal",
|
|
59
|
-
"agent-swarm-worker:latest",
|
|
60
|
-
],
|
|
61
|
-
cwd: __dirname,
|
|
62
|
-
autorestart: true,
|
|
63
|
-
restart_delay: 5000,
|
|
64
|
-
},
|
|
65
|
-
],
|
|
66
|
-
};
|
package/plugin/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Need to work on this, currently not exposed to the CC marketplace, so no need for a README yet.
|
package/plugin/hooks/hooks.json
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"description": "Hookify plugin - User-configurable hooks from .local.md files",
|
|
3
|
-
"hooks": {
|
|
4
|
-
"SessionStart": [
|
|
5
|
-
{
|
|
6
|
-
"matcher": "*",
|
|
7
|
-
"hooks": [
|
|
8
|
-
{
|
|
9
|
-
"type": "command",
|
|
10
|
-
"command": "bunx @desplega.ai/agent-swarm@latest hook"
|
|
11
|
-
}
|
|
12
|
-
]
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
"UserPromptSubmit": [
|
|
16
|
-
{
|
|
17
|
-
"matcher": "*",
|
|
18
|
-
"hooks": [
|
|
19
|
-
{
|
|
20
|
-
"type": "command",
|
|
21
|
-
"command": "bunx @desplega.ai/agent-swarm@latest hook"
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
}
|
|
25
|
-
],
|
|
26
|
-
"PreToolUse": [
|
|
27
|
-
{
|
|
28
|
-
"matcher": "*",
|
|
29
|
-
"hooks": [
|
|
30
|
-
{
|
|
31
|
-
"type": "command",
|
|
32
|
-
"command": "bunx @desplega.ai/agent-swarm@latest hook"
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
}
|
|
36
|
-
],
|
|
37
|
-
"PostToolUse": [
|
|
38
|
-
{
|
|
39
|
-
"matcher": "*",
|
|
40
|
-
"hooks": [
|
|
41
|
-
{
|
|
42
|
-
"type": "command",
|
|
43
|
-
"command": "bunx @desplega.ai/agent-swarm@latest hook"
|
|
44
|
-
}
|
|
45
|
-
]
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
"PreCompact": [
|
|
49
|
-
{
|
|
50
|
-
"matcher": "*",
|
|
51
|
-
"hooks": [
|
|
52
|
-
{
|
|
53
|
-
"type": "command",
|
|
54
|
-
"command": "bunx @desplega.ai/agent-swarm@latest hook"
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
}
|
|
58
|
-
],
|
|
59
|
-
"Stop": [
|
|
60
|
-
{
|
|
61
|
-
"matcher": "*",
|
|
62
|
-
"hooks": [
|
|
63
|
-
{
|
|
64
|
-
"type": "command",
|
|
65
|
-
"command": "bunx @desplega.ai/agent-swarm@latest hook"
|
|
66
|
-
}
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
}
|
package/pyproject.toml
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Minimal pyproject.toml to satisfy GitHub Actions setup-python cache requirement
|
|
2
|
-
# This file is a workaround for: https://github.com/actions/setup-python/issues/XXX
|
|
3
|
-
# The dokploy-deploy-action uses setup-python with pip caching, which requires
|
|
4
|
-
# a pyproject.toml or requirements.txt even though this is a Node.js/TypeScript project.
|
|
5
|
-
|
|
6
|
-
[project]
|
|
7
|
-
name = "agent-swarm-deploy-workaround"
|
|
8
|
-
version = "0.0.0"
|
|
9
|
-
description = "Workaround file for GitHub Actions deployment"
|