@desplega.ai/agent-swarm 1.49.0 → 1.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/openapi.json +2070 -728
- package/package.json +10 -1
- package/src/agentmail/handlers.ts +65 -10
- package/src/agentmail/templates.ts +111 -0
- package/src/be/db.ts +1233 -7
- 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/019_skills.sql +65 -0
- package/src/be/migrations/020_approval_requests.sql +41 -0
- package/src/be/seed.ts +62 -0
- package/src/be/skill-parser.ts +70 -0
- package/src/be/skill-sync.ts +106 -0
- package/src/commands/runner.ts +320 -132
- package/src/commands/templates.ts +172 -0
- package/src/github/handlers.ts +292 -77
- 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/gitlab/handlers.ts +63 -22
- package/src/gitlab/templates.ts +140 -0
- package/src/heartbeat/heartbeat.ts +19 -10
- package/src/heartbeat/templates.ts +30 -0
- package/src/http/active-sessions.ts +27 -0
- package/src/http/approval-requests.ts +247 -0
- package/src/http/config.ts +3 -3
- package/src/http/index.ts +9 -2
- package/src/http/poll.ts +135 -14
- package/src/http/prompt-templates.ts +412 -0
- package/src/http/schedules.ts +35 -0
- package/src/http/skills.ts +479 -0
- package/src/http/workflows.ts +8 -0
- package/src/linear/sync.ts +28 -4
- package/src/linear/templates.ts +47 -0
- package/src/prompts/base-prompt.ts +41 -490
- 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 +15 -2
- package/src/providers/pi-mono-extension.ts +5 -1
- package/src/scheduler/scheduler.ts +125 -91
- package/src/server.ts +44 -0
- package/src/slack/assistant.ts +7 -4
- package/src/slack/channel-activity.ts +177 -0
- package/src/slack/handlers.ts +21 -6
- package/src/slack/templates.ts +55 -0
- package/src/tests/approval-requests.test.ts +735 -0
- package/src/tests/artifact-sdk.test.ts +12 -12
- package/src/tests/base-prompt.test.ts +49 -49
- package/src/tests/channel-activity.test.ts +363 -0
- package/src/tests/heartbeat.test.ts +1 -0
- package/src/tests/linear-webhook.test.ts +7 -3
- package/src/tests/pool-session-logs.test.ts +199 -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/self-improvement.test.ts +8 -7
- package/src/tests/skill-parser.test.ts +178 -0
- package/src/tests/skill-sync.test.ts +171 -0
- package/src/tests/slack-metadata-inheritance.test.ts +1 -1
- package/src/tests/slack-thread-followups.test.ts +1 -1
- package/src/tests/structured-output.test.ts +0 -4
- package/src/tests/tool-annotations.test.ts +2 -1
- package/src/tests/update-profile-agentid.test.ts +248 -0
- package/src/tests/update-profile-auth.test.ts +195 -0
- package/src/tests/workflow-async-v2.test.ts +126 -4
- package/src/tests/workflow-definition-validation.test.ts +76 -0
- package/src/tests/workflow-executors.test.ts +4 -2
- package/src/tests/workflow-retry-v2.test.ts +1 -1
- package/src/tests/workflow-schedule-trigger.test.ts +104 -0
- package/src/tests/workflow-workspace.test.ts +272 -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/request-human-input.ts +106 -0
- package/src/tools/skills/index.ts +11 -0
- package/src/tools/skills/skill-create.ts +105 -0
- package/src/tools/skills/skill-delete.ts +67 -0
- package/src/tools/skills/skill-get.ts +75 -0
- package/src/tools/skills/skill-install-remote.ts +152 -0
- package/src/tools/skills/skill-install.ts +101 -0
- package/src/tools/skills/skill-list.ts +77 -0
- package/src/tools/skills/skill-publish.ts +123 -0
- package/src/tools/skills/skill-search.ts +43 -0
- package/src/tools/skills/skill-sync-remote.ts +128 -0
- package/src/tools/skills/skill-uninstall.ts +60 -0
- package/src/tools/skills/skill-update.ts +128 -0
- package/src/tools/store-progress.ts +22 -4
- package/src/tools/task-action.ts +20 -0
- package/src/tools/templates.ts +53 -0
- package/src/tools/tool-config.ts +23 -0
- package/src/tools/update-profile.ts +106 -34
- package/src/tools/workflows/create-workflow.ts +19 -1
- package/src/tools/workflows/update-workflow.ts +16 -1
- package/src/types.ts +109 -2
- package/src/workflows/definition.ts +30 -12
- package/src/workflows/engine.ts +40 -14
- package/src/workflows/executors/agent-task.ts +14 -3
- package/src/workflows/executors/human-in-the-loop.ts +160 -0
- package/src/workflows/executors/registry.ts +2 -0
- package/src/workflows/index.ts +1 -1
- package/src/workflows/recovery.ts +72 -0
- package/src/workflows/resume.ts +162 -12
- package/src/workflows/triggers.ts +31 -2
- package/src/workflows/version.ts +2 -0
- package/.claude/settings.json +0 -84
- package/.claude/settings.local.json +0 -117
- package/.dockerignore +0 -61
- package/.editorconfig +0 -15
- package/.entire/settings.json +0 -4
- package/.env.docker.example +0 -56
- package/.env.example +0 -78
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -78
- package/.github/ISSUE_TEMPLATE/community-template.yml +0 -77
- package/.github/ISSUE_TEMPLATE/config.yml +0 -8
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -60
- package/.github/PULL_REQUEST_TEMPLATE/community-template.md +0 -29
- package/.github/workflows/ci.yml +0 -52
- package/.github/workflows/docker-and-deploy.yml +0 -132
- package/.github/workflows/merge-gate.yml +0 -233
- package/.opencode/plugins/entire.ts +0 -133
- package/.superset/config.json +0 -6
- package/.wts-config.json +0 -4
- package/.wts-setup.ts +0 -171
- package/CHANGELOG.md +0 -447
- package/CLAUDE.md +0 -521
- package/CONTRIBUTING.md +0 -315
- package/DEPLOYMENT.md +0 -622
- package/Dockerfile +0 -65
- package/Dockerfile.worker +0 -189
- package/MCP.md +0 -841
- package/UI.md +0 -40
- package/api-entrypoint.sh +0 -56
- 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/depot.json +0 -1
- package/docker-compose.example.yml +0 -350
- package/docker-compose.local.yml +0 -119
- package/docker-entrypoint.sh +0 -632
- package/docs-site/app/api/search/route.ts +0 -4
- package/docs-site/app/docs/[[...slug]]/page.tsx +0 -87
- package/docs-site/app/docs/layout.tsx +0 -12
- package/docs-site/app/globals.css +0 -24
- package/docs-site/app/layout.config.tsx +0 -34
- package/docs-site/app/layout.tsx +0 -119
- package/docs-site/app/llms-full.txt/route.ts +0 -11
- package/docs-site/app/llms.mdx/docs/[[...slug]]/route.ts +0 -24
- package/docs-site/app/llms.txt/route.ts +0 -8
- package/docs-site/app/page.tsx +0 -5
- package/docs-site/app/robots.ts +0 -13
- package/docs-site/app/sitemap.ts +0 -37
- package/docs-site/components/api-page.client.tsx +0 -4
- package/docs-site/components/api-page.tsx +0 -7
- package/docs-site/components/mdx/mermaid.tsx +0 -55
- package/docs-site/content/docs/(documentation)/architecture/agents.mdx +0 -117
- package/docs-site/content/docs/(documentation)/architecture/hooks.mdx +0 -77
- package/docs-site/content/docs/(documentation)/architecture/memory.mdx +0 -96
- package/docs-site/content/docs/(documentation)/architecture/meta.json +0 -4
- package/docs-site/content/docs/(documentation)/architecture/overview.mdx +0 -172
- package/docs-site/content/docs/(documentation)/concepts/epics.mdx +0 -98
- package/docs-site/content/docs/(documentation)/concepts/meta.json +0 -4
- package/docs-site/content/docs/(documentation)/concepts/scheduling.mdx +0 -136
- package/docs-site/content/docs/(documentation)/concepts/services.mdx +0 -104
- package/docs-site/content/docs/(documentation)/concepts/task-lifecycle.mdx +0 -148
- package/docs-site/content/docs/(documentation)/concepts/workflows.mdx +0 -209
- package/docs-site/content/docs/(documentation)/contributing.mdx +0 -158
- package/docs-site/content/docs/(documentation)/getting-started.mdx +0 -157
- package/docs-site/content/docs/(documentation)/guides/agentmail-integration.mdx +0 -79
- package/docs-site/content/docs/(documentation)/guides/deployment.mdx +0 -171
- package/docs-site/content/docs/(documentation)/guides/github-integration.mdx +0 -81
- package/docs-site/content/docs/(documentation)/guides/gitlab-integration.mdx +0 -93
- package/docs-site/content/docs/(documentation)/guides/linear-integration.mdx +0 -98
- package/docs-site/content/docs/(documentation)/guides/meta.json +0 -13
- package/docs-site/content/docs/(documentation)/guides/sentry-integration.mdx +0 -52
- package/docs-site/content/docs/(documentation)/guides/slack-integration.mdx +0 -179
- package/docs-site/content/docs/(documentation)/guides/x402-payments.mdx +0 -154
- package/docs-site/content/docs/(documentation)/index.mdx +0 -65
- package/docs-site/content/docs/(documentation)/meta.json +0 -19
- package/docs-site/content/docs/(documentation)/reference/cli.mdx +0 -241
- package/docs-site/content/docs/(documentation)/reference/environment-variables.mdx +0 -205
- package/docs-site/content/docs/(documentation)/reference/mcp-tools.mdx +0 -449
- package/docs-site/content/docs/(documentation)/reference/meta.json +0 -4
- package/docs-site/content/docs/api-reference/active-sessions.mdx +0 -9
- package/docs-site/content/docs/api-reference/agents.mdx +0 -9
- package/docs-site/content/docs/api-reference/channels.mdx +0 -9
- package/docs-site/content/docs/api-reference/config.mdx +0 -9
- package/docs-site/content/docs/api-reference/debug.mdx +0 -9
- package/docs-site/content/docs/api-reference/ecosystem.mdx +0 -9
- package/docs-site/content/docs/api-reference/epics.mdx +0 -9
- package/docs-site/content/docs/api-reference/index.mdx +0 -32
- package/docs-site/content/docs/api-reference/memory.mdx +0 -9
- package/docs-site/content/docs/api-reference/meta.json +0 -25
- package/docs-site/content/docs/api-reference/poll.mdx +0 -9
- package/docs-site/content/docs/api-reference/repos.mdx +0 -9
- package/docs-site/content/docs/api-reference/schedules.mdx +0 -9
- package/docs-site/content/docs/api-reference/session-data.mdx +0 -9
- package/docs-site/content/docs/api-reference/stats.mdx +0 -9
- package/docs-site/content/docs/api-reference/tasks.mdx +0 -9
- package/docs-site/content/docs/api-reference/trackers.mdx +0 -9
- package/docs-site/content/docs/api-reference/webhooks.mdx +0 -9
- package/docs-site/content/docs/api-reference/workflows.mdx +0 -9
- package/docs-site/content/docs/meta.json +0 -3
- package/docs-site/lib/get-llm-text.ts +0 -10
- package/docs-site/lib/openapi.ts +0 -23
- package/docs-site/lib/source.ts +0 -8
- package/docs-site/mdx-components.tsx +0 -13
- package/docs-site/next.config.mjs +0 -29
- package/docs-site/package.json +0 -35
- package/docs-site/pnpm-lock.yaml +0 -5407
- package/docs-site/postcss.config.mjs +0 -8
- package/docs-site/public/logo.png +0 -0
- package/docs-site/scripts/generate-docs.ts +0 -171
- package/docs-site/source.config.ts +0 -17
- package/docs-site/tsconfig.json +0 -46
- package/ecosystem.config.cjs +0 -66
- package/landing/next.config.ts +0 -14
- package/landing/package.json +0 -31
- package/landing/pnpm-lock.yaml +0 -1091
- package/landing/postcss.config.mjs +0 -8
- package/landing/public/apple-touch-icon.png +0 -0
- package/landing/public/favicon.ico +0 -0
- package/landing/public/logo.png +0 -0
- package/landing/public/og-image.png +0 -0
- package/landing/public/omghost-desplega.svg +0 -30
- package/landing/public/omghost-openfort.svg +0 -9
- package/landing/src/app/actions/waitlist.ts +0 -25
- package/landing/src/app/blog/openfort-hackathon/page.tsx +0 -863
- package/landing/src/app/blog/page.tsx +0 -162
- package/landing/src/app/blog/swarm-metrics/page.tsx +0 -685
- package/landing/src/app/examples/page.tsx +0 -174
- package/landing/src/app/examples/x402/page.tsx +0 -456
- package/landing/src/app/globals.css +0 -122
- package/landing/src/app/layout.tsx +0 -134
- package/landing/src/app/page.tsx +0 -27
- package/landing/src/app/robots.ts +0 -13
- package/landing/src/app/sitemap.ts +0 -44
- package/landing/src/components/architecture.tsx +0 -163
- package/landing/src/components/cta.tsx +0 -52
- package/landing/src/components/features.tsx +0 -160
- package/landing/src/components/footer.tsx +0 -100
- package/landing/src/components/hero.tsx +0 -217
- package/landing/src/components/how-it-works.tsx +0 -165
- package/landing/src/components/navbar.tsx +0 -147
- package/landing/src/components/waitlist.tsx +0 -110
- package/landing/src/components/why-choose.tsx +0 -149
- package/landing/src/components/workshops.tsx +0 -328
- package/landing/src/lib/utils.ts +0 -6
- package/landing/tsconfig.json +0 -41
- package/misc/transcripts/2026-03-09-pi-mono-e2e-verification.md +0 -154
- package/new-ui/CLAUDE.md +0 -92
- package/new-ui/README.md +0 -73
- package/new-ui/biome.json +0 -42
- package/new-ui/components.json +0 -21
- package/new-ui/index.html +0 -25
- package/new-ui/package.json +0 -49
- package/new-ui/pnpm-lock.yaml +0 -4845
- package/new-ui/public/logo.png +0 -0
- package/new-ui/src/api/client.ts +0 -814
- package/new-ui/src/api/hooks/index.ts +0 -64
- package/new-ui/src/api/hooks/use-agents.ts +0 -58
- package/new-ui/src/api/hooks/use-channels.ts +0 -115
- package/new-ui/src/api/hooks/use-config-api.ts +0 -46
- package/new-ui/src/api/hooks/use-costs.ts +0 -122
- package/new-ui/src/api/hooks/use-db-query.ts +0 -29
- package/new-ui/src/api/hooks/use-epics.ts +0 -75
- package/new-ui/src/api/hooks/use-repos.ts +0 -61
- package/new-ui/src/api/hooks/use-schedules.ts +0 -81
- package/new-ui/src/api/hooks/use-services.ts +0 -16
- package/new-ui/src/api/hooks/use-stats.ts +0 -27
- package/new-ui/src/api/hooks/use-tasks.ts +0 -89
- package/new-ui/src/api/hooks/use-workflows.ts +0 -109
- package/new-ui/src/api/types.ts +0 -549
- package/new-ui/src/app/App.tsx +0 -13
- package/new-ui/src/app/providers.tsx +0 -32
- package/new-ui/src/app/router.tsx +0 -52
- package/new-ui/src/components/layout/app-header.tsx +0 -47
- package/new-ui/src/components/layout/app-sidebar.tsx +0 -128
- package/new-ui/src/components/layout/breadcrumbs.tsx +0 -57
- package/new-ui/src/components/layout/config-guard.tsx +0 -22
- package/new-ui/src/components/layout/root-layout.tsx +0 -40
- package/new-ui/src/components/layout/swarm-switcher.tsx +0 -85
- package/new-ui/src/components/shared/command-menu.tsx +0 -131
- package/new-ui/src/components/shared/data-grid.tsx +0 -141
- package/new-ui/src/components/shared/empty-state.tsx +0 -24
- package/new-ui/src/components/shared/error-boundary.tsx +0 -72
- package/new-ui/src/components/shared/json-viewer.tsx +0 -47
- package/new-ui/src/components/shared/name-connection-modal.tsx +0 -99
- package/new-ui/src/components/shared/page-skeleton.tsx +0 -16
- package/new-ui/src/components/shared/session-log-viewer.tsx +0 -364
- package/new-ui/src/components/shared/stats-bar.tsx +0 -132
- package/new-ui/src/components/shared/status-badge.tsx +0 -131
- package/new-ui/src/components/shared/usage-summary.tsx +0 -179
- package/new-ui/src/components/ui/alert-dialog.tsx +0 -176
- package/new-ui/src/components/ui/alert.tsx +0 -60
- package/new-ui/src/components/ui/avatar.tsx +0 -96
- package/new-ui/src/components/ui/badge.tsx +0 -46
- package/new-ui/src/components/ui/button.tsx +0 -62
- package/new-ui/src/components/ui/card.tsx +0 -75
- package/new-ui/src/components/ui/command.tsx +0 -160
- package/new-ui/src/components/ui/dialog.tsx +0 -143
- package/new-ui/src/components/ui/dropdown-menu.tsx +0 -226
- package/new-ui/src/components/ui/input.tsx +0 -21
- package/new-ui/src/components/ui/label.tsx +0 -19
- package/new-ui/src/components/ui/progress.tsx +0 -26
- package/new-ui/src/components/ui/scroll-area.tsx +0 -54
- package/new-ui/src/components/ui/select.tsx +0 -175
- package/new-ui/src/components/ui/separator.tsx +0 -28
- package/new-ui/src/components/ui/sheet.tsx +0 -132
- package/new-ui/src/components/ui/sidebar.tsx +0 -691
- package/new-ui/src/components/ui/skeleton.tsx +0 -13
- package/new-ui/src/components/ui/sonner.tsx +0 -35
- package/new-ui/src/components/ui/switch.tsx +0 -33
- package/new-ui/src/components/ui/table.tsx +0 -92
- package/new-ui/src/components/ui/tabs.tsx +0 -79
- package/new-ui/src/components/ui/textarea.tsx +0 -18
- package/new-ui/src/components/ui/tooltip.tsx +0 -51
- package/new-ui/src/components/workflows/action-node.tsx +0 -53
- package/new-ui/src/components/workflows/condition-node.tsx +0 -50
- package/new-ui/src/components/workflows/graph-utils.ts +0 -124
- package/new-ui/src/components/workflows/json-tree.tsx +0 -189
- package/new-ui/src/components/workflows/node-styles.ts +0 -10
- package/new-ui/src/components/workflows/step-detail-sheet.tsx +0 -87
- package/new-ui/src/components/workflows/trigger-node.tsx +0 -41
- package/new-ui/src/components/workflows/workflow-graph.tsx +0 -65
- package/new-ui/src/hooks/use-auto-scroll.ts +0 -82
- package/new-ui/src/hooks/use-config.ts +0 -203
- package/new-ui/src/hooks/use-keyboard-shortcuts.ts +0 -41
- package/new-ui/src/hooks/use-mobile.ts +0 -19
- package/new-ui/src/hooks/use-theme.ts +0 -60
- package/new-ui/src/lib/config.ts +0 -188
- package/new-ui/src/lib/slugs.ts +0 -71
- package/new-ui/src/lib/utils.ts +0 -120
- package/new-ui/src/main.tsx +0 -11
- package/new-ui/src/pages/agents/[id]/page.tsx +0 -492
- package/new-ui/src/pages/agents/page.tsx +0 -134
- package/new-ui/src/pages/chat/page.tsx +0 -674
- package/new-ui/src/pages/config/page.tsx +0 -1109
- package/new-ui/src/pages/dashboard/page.tsx +0 -454
- package/new-ui/src/pages/debug/page.tsx +0 -275
- package/new-ui/src/pages/epics/[id]/page.tsx +0 -809
- package/new-ui/src/pages/epics/page.tsx +0 -321
- package/new-ui/src/pages/not-found/page.tsx +0 -18
- package/new-ui/src/pages/repos/page.tsx +0 -369
- package/new-ui/src/pages/schedules/[id]/page.tsx +0 -664
- package/new-ui/src/pages/schedules/page.tsx +0 -477
- package/new-ui/src/pages/services/page.tsx +0 -128
- package/new-ui/src/pages/tasks/[id]/page.tsx +0 -670
- package/new-ui/src/pages/tasks/page.tsx +0 -592
- package/new-ui/src/pages/usage/page.tsx +0 -195
- package/new-ui/src/pages/workflow-runs/[id]/page.tsx +0 -363
- package/new-ui/src/pages/workflows/[id]/page.tsx +0 -417
- package/new-ui/src/pages/workflows/page.tsx +0 -266
- package/new-ui/src/styles/ag-grid.css +0 -36
- package/new-ui/src/styles/globals.css +0 -213
- package/new-ui/test-results/.last-run.json +0 -4
- package/new-ui/tsconfig.app.json +0 -34
- package/new-ui/tsconfig.json +0 -4
- package/new-ui/tsconfig.node.json +0 -26
- package/new-ui/vercel.json +0 -4
- package/new-ui/vite.config.ts +0 -28
- package/plugin/README.md +0 -1
- package/plugin/build-pi-skills.ts +0 -233
- package/plugin/hooks/hooks.json +0 -71
- package/prek.toml +0 -75
- package/pyproject.toml +0 -9
- package/scripts/check-db-boundary.sh +0 -60
- package/scripts/e2e-docker-provider.ts +0 -820
- package/scripts/e2e-io-schemas-test.ts +0 -807
- package/scripts/e2e-provider-test.ts +0 -220
- package/scripts/e2e-workflow-redesign.sh +0 -229
- package/scripts/e2e-workflow-test.sh +0 -285
- package/scripts/e2e-workflow-test.ts +0 -857
- package/scripts/generate-mcp-docs.ts +0 -415
- package/scripts/generate-openapi.ts +0 -26
- package/scripts/measure-tool-tokens.ts +0 -118
- package/scripts/x402-e2e-test.ts +0 -195
- package/scripts/x402-test-server.ts +0 -236
- package/scripts/x402-testnet-e2e.ts +0 -668
- package/slack-manifest.json +0 -88
- package/templates-ui/README.md +0 -46
- package/templates-ui/components.json +0 -17
- package/templates-ui/eslint.config.mjs +0 -18
- package/templates-ui/next.config.ts +0 -7
- package/templates-ui/package.json +0 -35
- package/templates-ui/pnpm-lock.yaml +0 -4571
- package/templates-ui/postcss.config.mjs +0 -7
- package/templates-ui/public/file.svg +0 -1
- package/templates-ui/public/globe.svg +0 -1
- package/templates-ui/public/logo.png +0 -0
- package/templates-ui/public/next.svg +0 -1
- package/templates-ui/public/vercel.svg +0 -1
- package/templates-ui/public/window.svg +0 -1
- package/templates-ui/src/app/[category]/[name]/page.tsx +0 -89
- package/templates-ui/src/app/api/templates/[...slug]/route.ts +0 -52
- package/templates-ui/src/app/api/templates/route.ts +0 -18
- package/templates-ui/src/app/builder/page.tsx +0 -37
- package/templates-ui/src/app/globals.css +0 -94
- package/templates-ui/src/app/layout.tsx +0 -79
- package/templates-ui/src/app/page.tsx +0 -38
- package/templates-ui/src/app/robots.ts +0 -11
- package/templates-ui/src/app/sitemap.ts +0 -31
- package/templates-ui/src/components/compose-builder.tsx +0 -442
- package/templates-ui/src/components/compose-preview.tsx +0 -117
- package/templates-ui/src/components/file-preview.tsx +0 -77
- package/templates-ui/src/components/footer.tsx +0 -40
- package/templates-ui/src/components/header.tsx +0 -41
- package/templates-ui/src/components/template-card.tsx +0 -87
- package/templates-ui/src/components/template-detail.tsx +0 -125
- package/templates-ui/src/components/template-gallery.tsx +0 -263
- package/templates-ui/src/components/ui/badge.tsx +0 -36
- package/templates-ui/src/components/ui/button.tsx +0 -57
- package/templates-ui/src/components/ui/card.tsx +0 -76
- package/templates-ui/src/components/ui/separator.tsx +0 -31
- package/templates-ui/src/components/ui/tooltip.tsx +0 -32
- package/templates-ui/src/lib/compose-generator.ts +0 -241
- package/templates-ui/src/lib/templates.ts +0 -137
- package/templates-ui/src/lib/utils.ts +0 -6
- package/templates-ui/tsconfig.json +0 -34
- package/thoughts/research/2026-02-28-openfort-viem-x402-research.md +0 -679
- package/thoughts/research/2026-02-28-x402-payments-research.md +0 -686
- package/thoughts/researcher/plans/2026-02-20-agent-self-improvement-plan.md +0 -282
- package/thoughts/researcher/research/2026-02-20-agent-self-improvement.md +0 -492
- package/thoughts/shared/plans/.gitkeep +0 -0
- 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/plans/2026-02-26-mcp-tool-context-reduction.md +0 -282
- package/thoughts/shared/plans/2026-03-02-claude-context-mode-integration.md +0 -328
- package/thoughts/shared/plans/2026-03-02-code-level-heartbeat.md +0 -224
- 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/shared/research/2026-02-26-cliffy-mcp-tools.md +0 -159
- package/thoughts/shared/research/2026-03-03-database-migration-system-refactor.md +0 -337
- package/thoughts/swarm-researcher/plans/2026-02-23-openclaw-improvements-plan.md +0 -778
- package/thoughts/swarm-researcher/plans/2026-02-26-artifacts-localtunnel-plan.md +0 -1269
- package/thoughts/swarm-researcher/research/2026-02-23-openclaw-vs-agent-swarm-comparison.md +0 -411
- package/thoughts/swarm-researcher/research/2026-02-26-artifacts-localtunnel.md +0 -724
- package/thoughts/taras/brainstorms/2026-03-20-prompt-template-registry.md +0 -443
- package/thoughts/taras/brainstorms/2026-03-20-setup-cli-onboarding.md +0 -307
- 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/plans/2026-02-20-auto-improvement.md +0 -803
- package/thoughts/taras/plans/2026-02-20-env-management.md +0 -538
- package/thoughts/taras/plans/2026-02-20-memory-system.md +0 -882
- package/thoughts/taras/plans/2026-02-20-repos-knowledge.md +0 -806
- package/thoughts/taras/plans/2026-02-20-session-attach.md +0 -647
- package/thoughts/taras/plans/2026-02-20-worker-identity.md +0 -820
- package/thoughts/taras/plans/2026-02-25-feat-new-ui-visual-redesign-plan.md +0 -768
- package/thoughts/taras/plans/2026-03-04-fix-buildSystemPrompt-missing-fields.md +0 -77
- package/thoughts/taras/plans/2026-03-04-new-ui-missing-actions.md +0 -543
- package/thoughts/taras/plans/2026-03-06-one-time-scheduled-tasks.md +0 -373
- package/thoughts/taras/plans/2026-03-08-memory-self-improvement-enhancements.md +0 -512
- package/thoughts/taras/plans/2026-03-08-pi-mono-provider-implementation.md +0 -919
- package/thoughts/taras/plans/2026-03-09-templates-registry.md +0 -723
- package/thoughts/taras/plans/2026-03-10-task-working-directory.md +0 -371
- package/thoughts/taras/plans/2026-03-11-archil-per-agent-write-strategy.md +0 -621
- package/thoughts/taras/plans/2026-03-12-eliminate-inbox-route-to-tasks.md +0 -61
- package/thoughts/taras/plans/2026-03-12-slack-thread-followup-additive.md +0 -488
- package/thoughts/taras/plans/2026-03-13-slack-ai-improvements.md +0 -644
- package/thoughts/taras/plans/2026-03-16-route-wrapper-openapi.md +0 -636
- package/thoughts/taras/plans/2026-03-17-multi-api-config.md +0 -444
- package/thoughts/taras/plans/2026-03-18-agent-fs-integration.md +0 -591
- package/thoughts/taras/plans/2026-03-18-debug-db-explorer.md +0 -446
- package/thoughts/taras/plans/2026-03-18-workflow-redesign.md +0 -987
- package/thoughts/taras/plans/2026-03-19-compound-learnings.md +0 -403
- package/thoughts/taras/plans/2026-03-19-ticket-tracker-linear-integration.md +0 -860
- package/thoughts/taras/plans/2026-03-19-workflow-io-schemas-and-bugs.md +0 -899
- package/thoughts/taras/plans/2026-03-20-setup-cli-onboarding.md +0 -874
- package/thoughts/taras/plans/2026-03-20-workflow-structured-output-validation-workspace.md +0 -723
- 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/thoughts/taras/research/2026-02-19-agent-native-swarm-architecture.md +0 -390
- package/thoughts/taras/research/2026-02-19-swarm-gaps-implementation.md +0 -594
- package/thoughts/taras/research/2026-02-25-dashboard-ui-design-best-practices.md +0 -825
- package/thoughts/taras/research/2026-02-26-task-detail-page-redesign.md +0 -393
- package/thoughts/taras/research/2026-03-03-new-ui-missing-actions.md +0 -168
- package/thoughts/taras/research/2026-03-05-pi-mono-provider-research.md +0 -230
- package/thoughts/taras/research/2026-03-06-workflow-engine-design.md +0 -445
- package/thoughts/taras/research/2026-03-08-drive-loop-concept.md +0 -375
- package/thoughts/taras/research/2026-03-08-pi-mono-deep-dive.md +0 -869
- package/thoughts/taras/research/2026-03-09-templates-registry.md +0 -373
- package/thoughts/taras/research/2026-03-10-agent-working-directory.md +0 -223
- package/thoughts/taras/research/2026-03-10-configurable-event-prompts.md +0 -339
- package/thoughts/taras/research/2026-03-11-archil-production-setup.md +0 -181
- package/thoughts/taras/research/2026-03-11-archil-shared-disk-write-strategies.md +0 -437
- package/thoughts/taras/research/2026-03-13-slack-ai-features.md +0 -258
- package/thoughts/taras/research/2026-03-16-openapi-docs-generation.md +0 -335
- package/thoughts/taras/research/2026-03-16-route-wrapper-openapi.md +0 -670
- package/thoughts/taras/research/2026-03-16-slack-thread-followups-e2e.md +0 -54
- package/thoughts/taras/research/2026-03-18-agent-fs-integration.md +0 -558
- package/thoughts/taras/research/2026-03-18-linear-integration-finalization.md +0 -526
- package/thoughts/taras/research/2026-03-18-workflow-redesign.md +0 -797
- package/thoughts/taras/research/2026-03-19-workflow-node-io-schemas-and-bugs.md +0 -563
- package/thoughts/taras/research/2026-03-19-workflow-structured-output-validation-workspace.md +0 -486
- package/thoughts/taras/research/2026-03-20-prompt-template-registry.md +0 -469
- package/tsconfig.json +0 -37
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: AgentMail Integration
|
|
3
|
-
description: Set up AgentMail to give each agent its own email inbox for receiving newsletters, notifications, and external messages
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# AgentMail Integration
|
|
7
|
-
|
|
8
|
-
Give your agents email addresses via [AgentMail](https://agentmail.to). Emails are routed to agents as tasks or inbox messages.
|
|
9
|
-
|
|
10
|
-
## Setup
|
|
11
|
-
|
|
12
|
-
1. Create an account at [AgentMail](https://agentmail.to)
|
|
13
|
-
2. Set up a webhook pointing to your server
|
|
14
|
-
|
|
15
|
-
**Webhook URL:** `https://your-server.com/api/agentmail/webhook`
|
|
16
|
-
|
|
17
|
-
## Configuration
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
AGENTMAIL_WEBHOOK_SECRET=your-svix-secret
|
|
21
|
-
|
|
22
|
-
# Optional: filter incoming webhooks by domain
|
|
23
|
-
AGENTMAIL_INBOX_DOMAIN_FILTER=yourdomain.com
|
|
24
|
-
AGENTMAIL_SENDER_DOMAIN_FILTER=gmail.com,company.com
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
### Domain Filtering
|
|
28
|
-
|
|
29
|
-
You can restrict which emails are processed using domain filters:
|
|
30
|
-
|
|
31
|
-
- **`AGENTMAIL_INBOX_DOMAIN_FILTER`** — Only process webhooks for inboxes on the specified domains. Emails to inboxes on other domains are silently dropped.
|
|
32
|
-
- **`AGENTMAIL_SENDER_DOMAIN_FILTER`** — Only process emails from senders on the specified domains. Emails from other sender domains are silently dropped.
|
|
33
|
-
|
|
34
|
-
Both accept comma-separated domain lists and are optional. When not set, all domains are allowed.
|
|
35
|
-
|
|
36
|
-
## How It Works
|
|
37
|
-
|
|
38
|
-
### Email Routing
|
|
39
|
-
|
|
40
|
-
Agents self-register which inboxes they receive mail from using the `register-agentmail-inbox` MCP tool.
|
|
41
|
-
|
|
42
|
-
- **Emails to a worker's inbox** become tasks
|
|
43
|
-
- **Emails to a lead's inbox** become inbox messages for triage
|
|
44
|
-
- **Follow-up emails in the same thread** are automatically routed to the same agent
|
|
45
|
-
|
|
46
|
-
### Registering an Inbox
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
register-agentmail-inbox(
|
|
50
|
-
action: "register",
|
|
51
|
-
inboxId: "inb_xxx",
|
|
52
|
-
inboxEmail: "worker@yourdomain.com"
|
|
53
|
-
)
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### Managing Inboxes
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
# List your registered inboxes
|
|
60
|
-
register-agentmail-inbox(action: "list")
|
|
61
|
-
|
|
62
|
-
# Unregister an inbox
|
|
63
|
-
register-agentmail-inbox(action: "unregister", inboxId: "inb_xxx")
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Sending Email
|
|
67
|
-
|
|
68
|
-
Agents can send emails using AgentMail MCP tools:
|
|
69
|
-
|
|
70
|
-
- `send_message` — Send a new email
|
|
71
|
-
- `reply_to_message` — Reply to an existing thread
|
|
72
|
-
- `forward_message` — Forward an email
|
|
73
|
-
- `list_threads` — List email threads in an inbox
|
|
74
|
-
|
|
75
|
-
## Related
|
|
76
|
-
|
|
77
|
-
- [Environment Variables](/docs/reference/environment-variables) — AgentMail configuration (`AGENTMAIL_WEBHOOK_SECRET`, domain filters)
|
|
78
|
-
- [Task Lifecycle](/docs/concepts/task-lifecycle) — How emails become tasks
|
|
79
|
-
- [Slack Integration](/docs/guides/slack-integration) — Another external task source
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Deployment Guide
|
|
3
|
-
description: Deploy Agent Swarm to production with Docker Compose, configure networking, secrets, and persistent storage
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Deployment Guide
|
|
7
|
-
|
|
8
|
-
Agent Swarm supports multiple deployment options, from Docker Compose to systemd services.
|
|
9
|
-
|
|
10
|
-
## Docker Compose (Recommended)
|
|
11
|
-
|
|
12
|
-
The easiest way to deploy a full swarm with API, workers, and lead agent.
|
|
13
|
-
|
|
14
|
-
### Quick Start
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
cp docker-compose.example.yml docker-compose.yml
|
|
18
|
-
cp .env.docker.example .env
|
|
19
|
-
# Edit .env with your values
|
|
20
|
-
docker-compose up -d
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
### ARM Compatibility (Apple Silicon)
|
|
24
|
-
|
|
25
|
-
All services in the docker-compose files include `platform: linux/amd64` to avoid `no matching manifest for linux/arm64/v8` errors on Apple Silicon Macs. The Docker images are built for `linux/amd64` and run via Rosetta emulation.
|
|
26
|
-
|
|
27
|
-
### What's Included
|
|
28
|
-
|
|
29
|
-
The example `docker-compose.yml` sets up:
|
|
30
|
-
|
|
31
|
-
- **API service** (port 3013) — MCP HTTP server
|
|
32
|
-
- **2 Worker agents** — Containerized Claude workers
|
|
33
|
-
- **1 Lead agent** — Coordinator agent
|
|
34
|
-
|
|
35
|
-
### Volumes
|
|
36
|
-
|
|
37
|
-
| Volume | Purpose |
|
|
38
|
-
|--------|---------|
|
|
39
|
-
| `swarm_api` | SQLite database persistence |
|
|
40
|
-
| `swarm_logs` | Session logs |
|
|
41
|
-
| `swarm_shared` | Shared workspace between agents |
|
|
42
|
-
| `swarm_lead` | Lead agent's personal workspace |
|
|
43
|
-
| `swarm_worker_*` | Personal workspace per worker |
|
|
44
|
-
|
|
45
|
-
### Graceful Shutdown
|
|
46
|
-
|
|
47
|
-
The docker-compose example uses `stop_grace_period: 60s` to allow graceful task pause during deployments. When a container receives SIGTERM:
|
|
48
|
-
|
|
49
|
-
1. In-progress tasks are **paused** (not failed)
|
|
50
|
-
2. Task state and progress are preserved
|
|
51
|
-
3. After restart, paused tasks are automatically **resumed** with context
|
|
52
|
-
|
|
53
|
-
Use stable `AGENT_ID` values for each worker to enable task resume after restarts.
|
|
54
|
-
|
|
55
|
-
### Pre-installed Agent Tools
|
|
56
|
-
|
|
57
|
-
Worker containers include several tools pre-installed:
|
|
58
|
-
|
|
59
|
-
- **`wts`** — Git worktree manager for isolated branch work
|
|
60
|
-
- **`agent-fs`** — Persistent, searchable filesystem shared across the swarm (auto-configured on first boot when `AGENT_FS_API_URL` is set). Also available as a Claude plugin.
|
|
61
|
-
- **`qa-use`** — Browser-based UI testing tool
|
|
62
|
-
- **`context-mode`** — Context window compression for data-heavy operations
|
|
63
|
-
|
|
64
|
-
### Claude Code Version
|
|
65
|
-
|
|
66
|
-
Claude Code is installed via `npm install -g @anthropic-ai/claude-code@VERSION` with a pinned version (build arg `CLAUDE_CODE_VERSION`). To update the version, change the `CLAUDE_CODE_VERSION` ARG in `Dockerfile.worker` and rebuild.
|
|
67
|
-
|
|
68
|
-
### Corepack
|
|
69
|
-
|
|
70
|
-
The worker image sets `COREPACK_HOME=/home/worker/.corepack` to avoid permission errors when running npm/pnpm/yarn as the non-root worker user.
|
|
71
|
-
|
|
72
|
-
## Docker Worker
|
|
73
|
-
|
|
74
|
-
### Pull from Registry
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
docker pull ghcr.io/desplega-ai/agent-swarm-worker:latest
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Run
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
docker run --rm -it \
|
|
84
|
-
-e CLAUDE_CODE_OAUTH_TOKEN=your-token \
|
|
85
|
-
-e API_KEY=your-api-key \
|
|
86
|
-
-v ./logs:/logs \
|
|
87
|
-
-v ./work:/workspace \
|
|
88
|
-
ghcr.io/desplega-ai/agent-swarm-worker
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### With Custom System Prompt
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
docker run --rm -it \
|
|
95
|
-
-e CLAUDE_CODE_OAUTH_TOKEN=your-token \
|
|
96
|
-
-e API_KEY=your-api-key \
|
|
97
|
-
-e SYSTEM_PROMPT="You are a Python specialist" \
|
|
98
|
-
-v ./logs:/logs \
|
|
99
|
-
-v ./work:/workspace \
|
|
100
|
-
ghcr.io/desplega-ai/agent-swarm-worker
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## Server Deployment (systemd)
|
|
104
|
-
|
|
105
|
-
Deploy the MCP server to a Linux host with systemd.
|
|
106
|
-
|
|
107
|
-
### Prerequisites
|
|
108
|
-
|
|
109
|
-
- Linux with systemd
|
|
110
|
-
- Bun installed (`curl -fsSL https://bun.sh/install | bash`)
|
|
111
|
-
|
|
112
|
-
### Install
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
git clone https://github.com/desplega-ai/agent-swarm.git
|
|
116
|
-
cd agent-swarm
|
|
117
|
-
sudo bun deploy/install.ts
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
This will:
|
|
121
|
-
- Copy files to `/opt/agent-swarm`
|
|
122
|
-
- Create `.env` file (edit to set `API_KEY`)
|
|
123
|
-
- Install systemd service with health checks every 30s
|
|
124
|
-
- Start the service on port 3013
|
|
125
|
-
|
|
126
|
-
### Management
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
sudo systemctl status agent-swarm # Check status
|
|
130
|
-
sudo journalctl -u agent-swarm -f # View logs
|
|
131
|
-
sudo systemctl restart agent-swarm # Restart
|
|
132
|
-
sudo systemctl stop agent-swarm # Stop
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Update
|
|
136
|
-
|
|
137
|
-
```bash
|
|
138
|
-
git pull
|
|
139
|
-
sudo bun deploy/update.ts
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Graceful Shutdown Configuration
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
# Grace period before force-pausing tasks (milliseconds)
|
|
146
|
-
SHUTDOWN_TIMEOUT=30000
|
|
147
|
-
|
|
148
|
-
# Docker compose stop grace period (should be >= SHUTDOWN_TIMEOUT + buffer)
|
|
149
|
-
stop_grace_period: 60s
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Resume Behavior
|
|
153
|
-
|
|
154
|
-
When a worker starts, it:
|
|
155
|
-
1. Registers with the MCP server
|
|
156
|
-
2. Checks for paused tasks assigned to its `AGENT_ID`
|
|
157
|
-
3. Resumes each paused task with original context and progress
|
|
158
|
-
|
|
159
|
-
### Best Practices
|
|
160
|
-
|
|
161
|
-
- **Use stable Agent IDs** — Set explicit `AGENT_ID` for each worker
|
|
162
|
-
- **Save progress regularly** — Workers should call `store-progress` during long tasks
|
|
163
|
-
- **Test deployments** — Verify tasks resume correctly in staging first
|
|
164
|
-
|
|
165
|
-
## Related
|
|
166
|
-
|
|
167
|
-
- [Getting Started](/docs/getting-started) — Initial setup and first deployment
|
|
168
|
-
- [Environment Variables](/docs/reference/environment-variables) — All configuration options
|
|
169
|
-
- [Architecture Overview](/docs/architecture/overview) — How the system components fit together
|
|
170
|
-
- [Task Lifecycle](/docs/concepts/task-lifecycle) — Graceful shutdown and task resume behavior
|
|
171
|
-
- [x402 Payments](/docs/guides/x402-payments) — Enable agents to make USDC micropayments
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: GitHub App Integration
|
|
3
|
-
description: Set up GitHub webhooks for automated task creation from PR reviews, issues, and @mentions
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# GitHub App Integration
|
|
7
|
-
|
|
8
|
-
Enable GitHub webhooks for automated task creation from PR reviews, issue assignments, and @mentions.
|
|
9
|
-
|
|
10
|
-
## Setup
|
|
11
|
-
|
|
12
|
-
1. Create a [GitHub App](https://github.com/settings/apps/new)
|
|
13
|
-
2. Set webhook URL: `https://your-server.com/api/github/webhook`
|
|
14
|
-
3. Generate a webhook secret
|
|
15
|
-
|
|
16
|
-
### Required Permissions
|
|
17
|
-
|
|
18
|
-
- **Issues**: Read & Write
|
|
19
|
-
- **Pull requests**: Read & Write
|
|
20
|
-
|
|
21
|
-
### Subscribe to Events
|
|
22
|
-
|
|
23
|
-
- Issues
|
|
24
|
-
- Issue comments
|
|
25
|
-
- Pull requests
|
|
26
|
-
- Pull request reviews
|
|
27
|
-
- Pull request review comments
|
|
28
|
-
- Check runs
|
|
29
|
-
- Check suites
|
|
30
|
-
- Workflow runs
|
|
31
|
-
|
|
32
|
-
## Configuration
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
# Required for GitHub webhooks
|
|
36
|
-
GITHUB_WEBHOOK_SECRET=your-webhook-secret
|
|
37
|
-
|
|
38
|
-
# Optional: Bot name for @mentions (default: agent-swarm-bot)
|
|
39
|
-
GITHUB_BOT_NAME=your-bot-name
|
|
40
|
-
|
|
41
|
-
# Optional: Enable bot reactions (requires GitHub App)
|
|
42
|
-
GITHUB_APP_ID=123456
|
|
43
|
-
GITHUB_APP_PRIVATE_KEY=base64-encoded-key
|
|
44
|
-
|
|
45
|
-
# Optional: Disable GitHub integration
|
|
46
|
-
GITHUB_DISABLE=true
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Supported Events
|
|
50
|
-
|
|
51
|
-
| Event | What happens |
|
|
52
|
-
|-------|-------------|
|
|
53
|
-
| Bot assigned to PR/issue | Creates a task for the lead agent |
|
|
54
|
-
| Review requested from bot | Creates a review task |
|
|
55
|
-
| `@bot-name` in comment/issue/PR | Creates a task with the mention context |
|
|
56
|
-
| PR review submitted (on bot's PR) | Creates a notification task with review feedback |
|
|
57
|
-
| CI failure (on PRs with existing tasks) | Creates a CI notification task |
|
|
58
|
-
|
|
59
|
-
## Bot Reactions
|
|
60
|
-
|
|
61
|
-
If GitHub App credentials are provided (`GITHUB_APP_ID` and `GITHUB_APP_PRIVATE_KEY`), the bot can react to comments and issues with emoji to acknowledge receipt.
|
|
62
|
-
|
|
63
|
-
## Worker Git Configuration
|
|
64
|
-
|
|
65
|
-
Workers need git credentials to create PRs and push code:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
GITHUB_TOKEN=your-github-token # For git operations
|
|
69
|
-
GITHUB_EMAIL=worker@desplega.ai # Git commit email
|
|
70
|
-
GITHUB_NAME=Worker Agent # Git commit name
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Related
|
|
74
|
-
|
|
75
|
-
- [GitLab Integration](/docs/guides/gitlab-integration) — GitLab webhook support (same adapter pattern)
|
|
76
|
-
- [Linear Integration](/docs/guides/linear-integration) — Bidirectional ticket tracking with Linear
|
|
77
|
-
- [Environment Variables](/docs/reference/environment-variables) — GitHub configuration variables
|
|
78
|
-
- [Task Lifecycle](/docs/concepts/task-lifecycle) — How GitHub events become tasks
|
|
79
|
-
- [Slack Integration](/docs/guides/slack-integration) — Another external task source
|
|
80
|
-
- [Sentry Integration](/docs/guides/sentry-integration) — Automated error triage from Sentry
|
|
81
|
-
- [AgentMail Integration](/docs/guides/agentmail-integration) — Give agents email addresses
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: GitLab Integration
|
|
3
|
-
description: Set up GitLab webhooks for automated task creation from merge requests, issues, and comments
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# GitLab Integration
|
|
7
|
-
|
|
8
|
-
Agent Swarm supports GitLab alongside GitHub through a provider adapter pattern. GitLab webhooks create tasks from MR reviews, issue assignments, and @mentions — just like the GitHub integration.
|
|
9
|
-
|
|
10
|
-
## Setup
|
|
11
|
-
|
|
12
|
-
1. Go to your GitLab project or group **Settings > Webhooks**
|
|
13
|
-
2. Set the webhook URL: `https://your-server.com/api/gitlab/webhook`
|
|
14
|
-
3. Set a secret token for verification
|
|
15
|
-
4. Select the events you want to receive
|
|
16
|
-
|
|
17
|
-
### Events to Enable
|
|
18
|
-
|
|
19
|
-
- **Merge request events**
|
|
20
|
-
- **Issue events**
|
|
21
|
-
- **Note (comment) events**
|
|
22
|
-
- **Pipeline events**
|
|
23
|
-
|
|
24
|
-
## Configuration
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
# Required for GitLab webhooks
|
|
28
|
-
GITLAB_WEBHOOK_SECRET=your-webhook-secret
|
|
29
|
-
|
|
30
|
-
# GitLab API access (PAT or Group Access Token)
|
|
31
|
-
GITLAB_TOKEN=your-gitlab-token
|
|
32
|
-
|
|
33
|
-
# Optional: GitLab instance URL (default: https://gitlab.com)
|
|
34
|
-
GITLAB_URL=https://gitlab.com
|
|
35
|
-
|
|
36
|
-
# Optional: Bot name for @mentions (default: agent-swarm-bot)
|
|
37
|
-
GITLAB_BOT_NAME=your-bot-name
|
|
38
|
-
|
|
39
|
-
# Optional: Disable GitLab integration
|
|
40
|
-
GITLAB_DISABLE=true
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Supported Events
|
|
44
|
-
|
|
45
|
-
| Event | What happens |
|
|
46
|
-
|-------|-------------|
|
|
47
|
-
| Bot assigned to MR/issue | Creates a task for the lead agent |
|
|
48
|
-
| `@bot-name` in comment/issue/MR | Creates a task with the mention context |
|
|
49
|
-
| Pipeline failure (on MRs with existing tasks) | Creates a CI notification task |
|
|
50
|
-
|
|
51
|
-
## Worker Git Configuration
|
|
52
|
-
|
|
53
|
-
Workers have `glab` CLI pre-installed for GitLab operations. Configure git credentials for GitLab repos:
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
GITLAB_TOKEN=your-gitlab-token # For git operations and glab CLI
|
|
57
|
-
GITLAB_EMAIL=worker@example.com # Git commit email for GitLab repos
|
|
58
|
-
GITLAB_NAME=Worker Agent # Git commit name for GitLab repos
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
The runner automatically detects whether a task targets a GitHub or GitLab repository and uses the appropriate CLI tool (`gh` or `glab`).
|
|
62
|
-
|
|
63
|
-
## VCS Provider Detection
|
|
64
|
-
|
|
65
|
-
Agent Swarm uses a provider adapter pattern to support both GitHub and GitLab. When a task is created from a webhook event, the `vcsProvider` field is set automatically. Workers use this to select the right CLI:
|
|
66
|
-
|
|
67
|
-
| Operation | GitHub (`gh`) | GitLab (`glab`) |
|
|
68
|
-
|---|---|---|
|
|
69
|
-
| Create PR/MR | `gh pr create` | `glab mr create` |
|
|
70
|
-
| View PR/MR | `gh pr view` | `glab mr view` |
|
|
71
|
-
| Review | `gh pr review` | `glab mr approve` / `glab mr note` |
|
|
72
|
-
| Comment on issue | `gh issue comment` | `glab issue note` |
|
|
73
|
-
| Clone | `gh repo clone` | `glab repo clone` |
|
|
74
|
-
|
|
75
|
-
## Workflow Triggers
|
|
76
|
-
|
|
77
|
-
GitLab events can trigger [workflows](/docs/concepts/workflows):
|
|
78
|
-
|
|
79
|
-
- `gitlab.merge_request.opened`
|
|
80
|
-
- `gitlab.merge_request.merged`
|
|
81
|
-
- `gitlab.merge_request.closed`
|
|
82
|
-
- `gitlab.issue.opened`
|
|
83
|
-
- `gitlab.issue.closed`
|
|
84
|
-
- `gitlab.note.created`
|
|
85
|
-
- `gitlab.pipeline.failed`
|
|
86
|
-
- `gitlab.pipeline.success`
|
|
87
|
-
|
|
88
|
-
## Related
|
|
89
|
-
|
|
90
|
-
- [GitHub Integration](/docs/guides/github-integration) — GitHub webhook setup
|
|
91
|
-
- [Environment Variables](/docs/reference/environment-variables) — GitLab configuration variables
|
|
92
|
-
- [Workflows](/docs/concepts/workflows) — Automate actions on GitLab events
|
|
93
|
-
- [Task Lifecycle](/docs/concepts/task-lifecycle) — How webhook events become tasks
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Linear Integration
|
|
3
|
-
description: Connect Agent Swarm to Linear for bidirectional ticket tracking with AgentSession support
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Linear Integration
|
|
7
|
-
|
|
8
|
-
Agent Swarm integrates with [Linear](https://linear.app) as the first provider in its generic ticket tracker framework. The integration enables bidirectional sync between Linear issues/sessions and swarm tasks.
|
|
9
|
-
|
|
10
|
-
## Features
|
|
11
|
-
|
|
12
|
-
- **OAuth-based authentication** — PKCE flow via the generic `oauth4webapi` module
|
|
13
|
-
- **AgentSession support** — Agents appear as participants in Linear's agent panel, with thought/action/response/error activity posts
|
|
14
|
-
- **Bidirectional sync** — Task completion/failure syncs back to Linear; Linear follow-up messages create new swarm tasks
|
|
15
|
-
- **Webhook handling** — HMAC-SHA256 verified webhooks with Linear-Delivery header dedup (5-min TTL)
|
|
16
|
-
- **Dashboard linking** — `externalUrls` on sessions link back to the swarm dashboard
|
|
17
|
-
|
|
18
|
-
## Setup
|
|
19
|
-
|
|
20
|
-
### 1. Create a Linear OAuth App
|
|
21
|
-
|
|
22
|
-
1. Go to Linear > Settings > API > Applications
|
|
23
|
-
2. Create a new application with:
|
|
24
|
-
- **Actor**: Application
|
|
25
|
-
- **Callback URL**: `http://localhost:3013/api/trackers/linear/callback` (or your production URL)
|
|
26
|
-
- **Webhook URL**: `http://localhost:3013/api/trackers/linear/webhook`
|
|
27
|
-
3. Enable "Agent session events" in webhook settings
|
|
28
|
-
4. Copy the Client ID, Client Secret, and Webhook Signing Secret
|
|
29
|
-
|
|
30
|
-
### 2. Configure Environment
|
|
31
|
-
|
|
32
|
-
Add to your `.env`:
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
LINEAR_CLIENT_ID=your-client-id
|
|
36
|
-
LINEAR_CLIENT_SECRET=your-client-secret
|
|
37
|
-
LINEAR_REDIRECT_URI=http://localhost:3013/api/trackers/linear/callback
|
|
38
|
-
LINEAR_SIGNING_SECRET=your-webhook-signing-secret
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
With portless:
|
|
42
|
-
```bash
|
|
43
|
-
LINEAR_REDIRECT_URI=https://api.swarm.localhost:1355/api/trackers/linear/callback
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 3. Complete OAuth
|
|
47
|
-
|
|
48
|
-
Start the server and visit `/api/trackers/linear/authorize` in your browser to complete the OAuth flow.
|
|
49
|
-
|
|
50
|
-
## How It Works
|
|
51
|
-
|
|
52
|
-
### Inbound (Linear to Swarm)
|
|
53
|
-
|
|
54
|
-
1. A user creates an AgentSession in Linear (assigns work to the agent)
|
|
55
|
-
2. Linear sends a webhook to `/api/trackers/linear/webhook`
|
|
56
|
-
3. The webhook handler creates a swarm task linked to the Linear session
|
|
57
|
-
4. The agent acknowledges the session and begins work
|
|
58
|
-
|
|
59
|
-
### Outbound (Swarm to Linear)
|
|
60
|
-
|
|
61
|
-
1. Agent posts activities (thoughts, actions, responses, errors) to the Linear session
|
|
62
|
-
2. On task completion, the response activity is posted and the session is auto-completed
|
|
63
|
-
3. On task failure, an error activity is posted
|
|
64
|
-
4. `externalUrls` are set on the session, linking to the swarm dashboard
|
|
65
|
-
|
|
66
|
-
### Follow-up Messages
|
|
67
|
-
|
|
68
|
-
When a user sends a follow-up message in a Linear agent chat:
|
|
69
|
-
1. Linear fires a `prompted` event webhook
|
|
70
|
-
2. The handler creates a new swarm task with the follow-up context
|
|
71
|
-
3. The agent processes the follow-up and responds via session activities
|
|
72
|
-
|
|
73
|
-
## MCP Tools
|
|
74
|
-
|
|
75
|
-
| Tool | Description |
|
|
76
|
-
|------|-------------|
|
|
77
|
-
| `tracker-status` | Check tracker connection status |
|
|
78
|
-
| `tracker-link-task` | Link a swarm task to a Linear issue |
|
|
79
|
-
| `tracker-link-epic` | Link a swarm epic to a Linear project |
|
|
80
|
-
| `tracker-unlink` | Remove a tracker link |
|
|
81
|
-
| `tracker-sync-status` | View sync status for linked items |
|
|
82
|
-
| `tracker-map-agent` | Map a swarm agent to a Linear user for assignment routing |
|
|
83
|
-
|
|
84
|
-
## Architecture
|
|
85
|
-
|
|
86
|
-
The integration is built on a generic tracker abstraction:
|
|
87
|
-
|
|
88
|
-
- **`src/oauth/`** — Reusable OAuth module with `oauth_apps`/`oauth_tokens` tables and PKCE support
|
|
89
|
-
- **`src/be/db-queries/tracker.ts`** — Generic `tracker_sync` and `tracker_agent_mapping` tables
|
|
90
|
-
- **Linear provider** — Implements the tracker interface with Linear-specific webhook handling and AgentSession lifecycle
|
|
91
|
-
|
|
92
|
-
This design makes it straightforward to add other ticket trackers (Jira, GitHub Issues, etc.) in the future.
|
|
93
|
-
|
|
94
|
-
## Related
|
|
95
|
-
|
|
96
|
-
- [Environment Variables](/docs/reference/environment-variables#linear-integration) — Linear configuration reference
|
|
97
|
-
- [Task Lifecycle](/docs/concepts/task-lifecycle) — How tasks created from Linear flow through the swarm
|
|
98
|
-
- [Architecture Overview](/docs/architecture/overview) — System architecture including integrations
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Sentry Integration
|
|
3
|
-
description: Enable agents to investigate and triage Sentry issues
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Sentry Integration
|
|
7
|
-
|
|
8
|
-
Docker workers include `sentry-cli` pre-installed, enabling agents to investigate and triage Sentry issues directly.
|
|
9
|
-
|
|
10
|
-
## Setup
|
|
11
|
-
|
|
12
|
-
1. Create an Organization Auth Token at `https://sentry.io/settings/{org}/auth-tokens/` with scopes:
|
|
13
|
-
- `event:read` — Read issues and events
|
|
14
|
-
- `project:read` — Read project data
|
|
15
|
-
- `org:read` — Read organization info
|
|
16
|
-
|
|
17
|
-
2. Add to your worker environment:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
SENTRY_AUTH_TOKEN=your-auth-token
|
|
21
|
-
SENTRY_ORG=your-org-slug
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
3. Verify authentication in a worker:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
sentry-cli info
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Usage
|
|
31
|
-
|
|
32
|
-
Workers can use the `/investigate-sentry-issue` command to:
|
|
33
|
-
- Get issue details and stacktraces
|
|
34
|
-
- Analyze breadcrumbs and context
|
|
35
|
-
- Resolve, mute, or unresolve issues
|
|
36
|
-
|
|
37
|
-
### Examples
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
/investigate-sentry-issue https://sentry.io/organizations/myorg/issues/123456/
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Or just the issue ID:
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
/investigate-sentry-issue 123456
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Related
|
|
50
|
-
|
|
51
|
-
- [Environment Variables](/docs/reference/environment-variables) — Sentry configuration (`SENTRY_AUTH_TOKEN`, `SENTRY_ORG`)
|
|
52
|
-
- [Task Lifecycle](/docs/concepts/task-lifecycle) — How Sentry issues become tasks
|