@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,179 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Slack Integration
|
|
3
|
-
description: Set up Slack to create tasks and communicate with agents
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Slack Integration
|
|
7
|
-
|
|
8
|
-
Enable Slack for task creation, agent communication, and interactive workflows via direct messages and the Slack Assistant sidebar.
|
|
9
|
-
|
|
10
|
-
## Setup
|
|
11
|
-
|
|
12
|
-
1. Create a [Slack App](https://api.slack.com/apps)
|
|
13
|
-
2. Enable **Socket Mode** (for real-time events without public webhooks)
|
|
14
|
-
3. Enable **Interactivity** (for action buttons and modals)
|
|
15
|
-
4. Enable **Assistant View** (for sidebar conversations)
|
|
16
|
-
5. Add required bot token scopes:
|
|
17
|
-
- `app_mentions:read`
|
|
18
|
-
- `assistant:write`
|
|
19
|
-
- `channels:history`, `channels:read`
|
|
20
|
-
- `chat:write`, `chat:write.customize`, `chat:write.public`
|
|
21
|
-
- `commands`
|
|
22
|
-
- `files:read`, `files:write`
|
|
23
|
-
- `groups:history`, `groups:read`
|
|
24
|
-
- `im:history`, `im:read`, `im:write`
|
|
25
|
-
- `mpim:history`, `mpim:read`, `mpim:write`
|
|
26
|
-
- `reactions:write`
|
|
27
|
-
- `users:read`
|
|
28
|
-
6. Subscribe to bot events: `app_mention`, `assistant_thread_started`, `assistant_thread_context_changed`, `message.channels`, `message.groups`, `message.im`, `message.mpim`
|
|
29
|
-
7. Install to your workspace and copy tokens
|
|
30
|
-
|
|
31
|
-
A ready-to-use `slack-manifest.json` is included in the repository root — import it directly in the Slack App configuration page to set up all scopes, events, and features automatically.
|
|
32
|
-
|
|
33
|
-
## Configuration
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
# Required for Slack
|
|
37
|
-
SLACK_BOT_TOKEN=xoxb-... # Bot User OAuth Token
|
|
38
|
-
SLACK_APP_TOKEN=xapp-... # App-Level Token (Socket Mode)
|
|
39
|
-
SLACK_SIGNING_SECRET=... # Signing Secret (optional for Socket Mode)
|
|
40
|
-
|
|
41
|
-
# Disable Slack (if not using)
|
|
42
|
-
SLACK_DISABLE=true
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## How It Works
|
|
46
|
-
|
|
47
|
-
### Creating Tasks
|
|
48
|
-
|
|
49
|
-
@mention the bot in Slack to create tasks. All Slack messages are routed directly as tasks — there is no separate inbox system.
|
|
50
|
-
|
|
51
|
-
**Routing priority:**
|
|
52
|
-
|
|
53
|
-
1. `swarm#<uuid>` — explicit agent targeting (always wins)
|
|
54
|
-
2. `swarm#all` — broadcast to all workers
|
|
55
|
-
3. **Thread follow-up** — if in a thread where a worker is already active, routes directly to that worker
|
|
56
|
-
4. **Lead fallback** — if the bot was @mentioned and no other match, routes to the lead agent
|
|
57
|
-
|
|
58
|
-
If no agents are online, the message is queued as an unassigned task in the pool. The bot confirms that your request has been queued and will be processed when agents come back up.
|
|
59
|
-
|
|
60
|
-
### Thread Follow-up Routing
|
|
61
|
-
|
|
62
|
-
When you @mention the bot in a thread where a worker is already handling a task, the message routes directly to that worker — no lead delegation needed. This keeps conversations flowing naturally.
|
|
63
|
-
|
|
64
|
-
If the assigned worker is offline or unavailable, the follow-up routes to the lead agent instead of dropping the message. The lead picks up the thread context and continues the conversation, preserving `parentTaskId` continuity for chained tasks.
|
|
65
|
-
|
|
66
|
-
### Slack Context Propagation
|
|
67
|
-
|
|
68
|
-
Slack metadata (`slackChannelId`, `slackThreadTs`, `slackUserId`) is **auto-inherited** from the creator's current task. When a lead delegates work from a Slack-originated task, workers automatically receive the Slack context and post progress updates to the originating thread — no manual metadata passing needed.
|
|
69
|
-
|
|
70
|
-
The auto-inheritance works via the `X-Source-Task-Id` header, which links the new task back to the creator's active task to look up Slack metadata.
|
|
71
|
-
|
|
72
|
-
For cases where auto-inheritance isn't available (e.g., programmatic task creation without an active parent task), you can pass Slack metadata explicitly on `send-task`:
|
|
73
|
-
|
|
74
|
-
- `slackChannelId` — Channel ID for progress updates
|
|
75
|
-
- `slackThreadTs` — Thread timestamp for thread-level updates
|
|
76
|
-
- `slackUserId` — Original requester's Slack user ID
|
|
77
|
-
|
|
78
|
-
Explicit params override auto-inherited values when both are present.
|
|
79
|
-
|
|
80
|
-
### Additive Slack Buffer
|
|
81
|
-
|
|
82
|
-
When enabled via `ADDITIVE_SLACK=true`, thread replies that do NOT @mention the bot are captured, buffered, and batched into a single follow-up task. This allows multi-message feedback without requiring an @mention each time.
|
|
83
|
-
|
|
84
|
-
- Messages are buffered for a configurable debounce window (`ADDITIVE_SLACK_BUFFER_MS`, default 10s)
|
|
85
|
-
- Buffered messages are flushed into a single task with dependency chaining to the active task
|
|
86
|
-
- Use the `!now` command to flush the buffer immediately without dependency chaining
|
|
87
|
-
- Reactions provide visual feedback: :eyes: for captured, :heavy_plus_sign: for appended, :zap: for `!now`
|
|
88
|
-
|
|
89
|
-
### Single Evolving Message
|
|
90
|
-
|
|
91
|
-
Each task gets a single Slack message that evolves through its lifecycle — from assignment to progress to completion. Instead of posting multiple messages, the bot uses `chat.update` to update one message in place:
|
|
92
|
-
|
|
93
|
-
1. **Assignment** — When a task is created from Slack, the bot posts a structured Block Kit message with the task link, assigned agent, and status
|
|
94
|
-
2. **Progress** — As the agent works, progress updates replace the message content (keeping the same message)
|
|
95
|
-
3. **Completion** — The final message shows the task output, status, and action buttons
|
|
96
|
-
|
|
97
|
-
This keeps threads clean and avoids message spam during long-running tasks.
|
|
98
|
-
|
|
99
|
-
### Rich Block Kit Messages
|
|
100
|
-
|
|
101
|
-
All Slack responses use structured [Block Kit](https://api.slack.com/block-kit) layouts instead of plain text:
|
|
102
|
-
|
|
103
|
-
- **Headers** with task status indicators
|
|
104
|
-
- **Context blocks** showing agent name, task ID, and timestamps
|
|
105
|
-
- **Section blocks** for progress and output text
|
|
106
|
-
- **Action buttons** for follow-up and viewing task logs
|
|
107
|
-
- Markdown is automatically converted to Slack's `mrkdwn` format
|
|
108
|
-
|
|
109
|
-
### Interactive Actions
|
|
110
|
-
|
|
111
|
-
Task completion messages include interactive buttons:
|
|
112
|
-
|
|
113
|
-
- **Follow-up** — Opens a modal to send a follow-up message to the same agent, creating a new task with dependency on the completed one
|
|
114
|
-
- **View Full Logs** — Links to the task detail page in the dashboard
|
|
115
|
-
- **Cancel** — Shows a confirmation dialog before cancelling an in-progress task
|
|
116
|
-
|
|
117
|
-
### Assistant Sidebar
|
|
118
|
-
|
|
119
|
-
The bot supports Slack's [Assistant](https://api.slack.com/docs/apps/ai) sidebar for direct conversations:
|
|
120
|
-
|
|
121
|
-
- Open the sidebar in any channel or DM to start a conversation
|
|
122
|
-
- Suggested prompts help you get started ("Check agent status", "Assign a task", "List recent tasks")
|
|
123
|
-
- Follow-up messages in assistant threads route to the same agent that handled the original task
|
|
124
|
-
- The assistant sets a typing status while the agent is working
|
|
125
|
-
|
|
126
|
-
### Progress Updates
|
|
127
|
-
|
|
128
|
-
Workers reply in Slack threads with progress updates using the `slack-reply` MCP tool. This keeps the conversation context in one place.
|
|
129
|
-
|
|
130
|
-
### Reading Messages
|
|
131
|
-
|
|
132
|
-
Agents can read Slack threads using `slack-read`:
|
|
133
|
-
- By task ID (reads the thread associated with a task)
|
|
134
|
-
- By channel ID (leads only, for channel history)
|
|
135
|
-
|
|
136
|
-
### Posting Messages
|
|
137
|
-
|
|
138
|
-
The lead agent can post new messages to channels using `slack-post`.
|
|
139
|
-
|
|
140
|
-
## User Filtering
|
|
141
|
-
|
|
142
|
-
By default, all Slack users can interact with the bot. To restrict access:
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
# Only users with matching email domains
|
|
146
|
-
SLACK_ALLOWED_EMAIL_DOMAINS=company.com,partner.com
|
|
147
|
-
|
|
148
|
-
# Specific user IDs always allowed (useful for admins)
|
|
149
|
-
SLACK_ALLOWED_USER_IDS=U12345678,U87654321
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
If both are set, a user must match **either** an allowed domain **or** be in the user ID whitelist.
|
|
153
|
-
|
|
154
|
-
## Attachment Handling
|
|
155
|
-
|
|
156
|
-
Slack messages with file attachments (voice memos, images, documents) are automatically recognized and processed. When a user sends a file — even without any text — the bot detects it and includes attachment metadata (filename, MIME type, size, Slack file ID) in the task description.
|
|
157
|
-
|
|
158
|
-
This means agents can:
|
|
159
|
-
- Receive voice messages or image uploads as tasks
|
|
160
|
-
- Access file metadata to decide whether to download and process attachments
|
|
161
|
-
- Use `slack-download-file` to retrieve the actual file content
|
|
162
|
-
|
|
163
|
-
## File Handling
|
|
164
|
-
|
|
165
|
-
Agents can upload and download files via Slack:
|
|
166
|
-
|
|
167
|
-
- **`slack-upload-file`** — Upload a file to a Slack channel or thread
|
|
168
|
-
- **`slack-download-file`** — Download a file from Slack by file ID or URL
|
|
169
|
-
|
|
170
|
-
Files are saved to `/workspace/shared/downloads/{agentId}/slack/` by default (each agent writes to its own subdirectory).
|
|
171
|
-
|
|
172
|
-
## Related
|
|
173
|
-
|
|
174
|
-
- [Environment Variables](/docs/reference/environment-variables) — Slack configuration variables (`SLACK_BOT_TOKEN`, etc.)
|
|
175
|
-
- [Task Lifecycle](/docs/concepts/task-lifecycle) — How Slack messages become tasks
|
|
176
|
-
- [GitHub App Integration](/docs/guides/github-integration) — Another external task source
|
|
177
|
-
- [Linear Integration](/docs/guides/linear-integration) — Bidirectional ticket tracking with Linear
|
|
178
|
-
- [Sentry Integration](/docs/guides/sentry-integration) — Automated error triage from Sentry
|
|
179
|
-
- [x402 Payments](/docs/guides/x402-payments) — Enable agents to make crypto micropayments
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: x402 Payments
|
|
3
|
-
description: Enable agents to make USDC micropayments on x402-gated APIs
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# x402 Payments
|
|
7
|
-
|
|
8
|
-
Agent Swarm includes built-in support for [x402](https://x402.org/) payments, allowing agents to automatically pay for x402-gated API endpoints using USDC on Base.
|
|
9
|
-
|
|
10
|
-
## How It Works
|
|
11
|
-
|
|
12
|
-
x402 is an open payment protocol that uses the HTTP 402 "Payment Required" status code for native micropayments over HTTP. When an agent calls an x402-gated API:
|
|
13
|
-
|
|
14
|
-
1. The initial request returns a `402 Payment Required` response
|
|
15
|
-
2. The x402 client automatically signs a USDC payment authorization (EIP-3009)
|
|
16
|
-
3. The request is retried with the payment signature
|
|
17
|
-
4. The API returns the response — payment is settled on-chain asynchronously
|
|
18
|
-
|
|
19
|
-
The entire flow is **gasless** for the payer and completes in ~1.5–2 seconds.
|
|
20
|
-
|
|
21
|
-
## Setup
|
|
22
|
-
|
|
23
|
-
### Choose a Signer
|
|
24
|
-
|
|
25
|
-
Two signer backends are supported:
|
|
26
|
-
|
|
27
|
-
| Backend | Env Vars | Best For |
|
|
28
|
-
|---------|----------|----------|
|
|
29
|
-
| **Openfort** (recommended) | `OPENFORT_API_KEY` + `OPENFORT_WALLET_SECRET` | Production — keys managed in TEE |
|
|
30
|
-
| **Viem** | `EVM_PRIVATE_KEY` | Development/testing — raw private key |
|
|
31
|
-
|
|
32
|
-
The signer is auto-detected based on which credentials are set. Use `X402_SIGNER_TYPE` to override.
|
|
33
|
-
|
|
34
|
-
### Openfort Setup
|
|
35
|
-
|
|
36
|
-
1. Create an account at [openfort.xyz](https://www.openfort.xyz/)
|
|
37
|
-
2. Get your API key and wallet secret
|
|
38
|
-
3. Set environment variables:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
OPENFORT_API_KEY=sk_test_...
|
|
42
|
-
OPENFORT_WALLET_SECRET=<base64-encoded-p256-key>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Viem Setup
|
|
46
|
-
|
|
47
|
-
1. Generate a wallet (e.g., `cast wallet new`)
|
|
48
|
-
2. Get test USDC from the [CDP Faucet](https://portal.cdp.coinbase.com/products/faucet) on Base Sepolia
|
|
49
|
-
3. Set environment variable:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
EVM_PRIVATE_KEY=0x...
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
No ETH needed — x402 payments are gasless for the payer.
|
|
56
|
-
|
|
57
|
-
### Spending Limits
|
|
58
|
-
|
|
59
|
-
Configure via environment variables or programmatically:
|
|
60
|
-
|
|
61
|
-
| Variable | Default | Description |
|
|
62
|
-
|----------|---------|-------------|
|
|
63
|
-
| `X402_MAX_AUTO_APPROVE` | `$1.00` | Max per-request |
|
|
64
|
-
| `X402_DAILY_LIMIT` | `$10.00` | Max per-day |
|
|
65
|
-
|
|
66
|
-
See the full [environment variables reference](/docs/reference/environment-variables#x402-payments).
|
|
67
|
-
|
|
68
|
-
## Usage
|
|
69
|
-
|
|
70
|
-
### Drop-in Fetch Replacement
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
import { createX402Fetch } from "@/x402";
|
|
74
|
-
|
|
75
|
-
const paidFetch = createX402Fetch();
|
|
76
|
-
|
|
77
|
-
// Use like normal fetch — 402 payments are automatic
|
|
78
|
-
const response = await paidFetch("https://api.example.com/paid-endpoint");
|
|
79
|
-
const data = await response.json();
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Full Client with Spending Tracking
|
|
83
|
-
|
|
84
|
-
```typescript
|
|
85
|
-
import { createX402Client } from "@/x402";
|
|
86
|
-
|
|
87
|
-
const client = await createX402Client();
|
|
88
|
-
|
|
89
|
-
// Make paid requests
|
|
90
|
-
const response = await client.fetch("https://api.example.com/paid-endpoint");
|
|
91
|
-
|
|
92
|
-
// Check spending
|
|
93
|
-
const summary = client.getSpendingSummary();
|
|
94
|
-
console.log(`Spent today: $${summary.todaySpent.toFixed(2)}`);
|
|
95
|
-
console.log(`Remaining: $${summary.dailyRemaining.toFixed(2)}`);
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Custom Configuration
|
|
99
|
-
|
|
100
|
-
```typescript
|
|
101
|
-
import { createX402Client } from "@/x402";
|
|
102
|
-
|
|
103
|
-
const client = await createX402Client({
|
|
104
|
-
maxAutoApprove: 0.50, // Max $0.50 per request
|
|
105
|
-
dailyLimit: 5.00, // Max $5.00 per day
|
|
106
|
-
network: "eip155:8453", // Base mainnet
|
|
107
|
-
});
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## CLI
|
|
111
|
-
|
|
112
|
-
Test x402 payments from the command line:
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
# Check configuration
|
|
116
|
-
bun src/x402/cli.ts check
|
|
117
|
-
|
|
118
|
-
# Make a paid request
|
|
119
|
-
bun src/x402/cli.ts fetch https://api.example.com/paid-endpoint
|
|
120
|
-
|
|
121
|
-
# View spending summary
|
|
122
|
-
bun src/x402/cli.ts status
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## Module Structure
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
src/x402/
|
|
129
|
-
├── index.ts # Public API re-exports
|
|
130
|
-
├── client.ts # Payment client with spending limits
|
|
131
|
-
├── config.ts # Environment variable loading
|
|
132
|
-
├── openfort-signer.ts # Openfort backend wallet signer
|
|
133
|
-
├── spending-tracker.ts # In-memory spending tracking
|
|
134
|
-
└── cli.ts # CLI for testing payments
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Security
|
|
138
|
-
|
|
139
|
-
- **Use burner wallets** — load only small amounts of working capital
|
|
140
|
-
- **Set spending limits** — configure per-request and daily limits
|
|
141
|
-
- **Never commit private keys** — always use environment variables
|
|
142
|
-
- **Testnet first** — use Base Sepolia (`eip155:84532`) during development
|
|
143
|
-
- **Openfort for production** — keys managed in a TEE, not on disk
|
|
144
|
-
|
|
145
|
-
## Further Reading
|
|
146
|
-
|
|
147
|
-
- [x402 Protocol Specification](https://github.com/coinbase/x402/blob/main/specs/x402-specification.md)
|
|
148
|
-
- [x402 Buyer Quickstart](https://docs.cdp.coinbase.com/x402/quickstart-for-buyers)
|
|
149
|
-
- [x402.org](https://www.x402.org/)
|
|
150
|
-
|
|
151
|
-
## Related
|
|
152
|
-
|
|
153
|
-
- [Environment Variables](/docs/reference/environment-variables#x402-payments) — x402 configuration variables
|
|
154
|
-
- [Architecture Overview](/docs/architecture/overview) — How the x402 module fits into the system
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Overview
|
|
3
|
-
description: Multi-agent orchestration for AI coding assistants
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Agent Swarm
|
|
7
|
-
|
|
8
|
-
Agent Swarm lets you run a team of AI coding agents that coordinate autonomously. A **lead agent** receives tasks (from you, Slack, or GitHub), breaks them down, and delegates to **worker agents** running in Docker containers. Workers execute tasks, report progress, and ship code — all without manual intervention.
|
|
9
|
-
|
|
10
|
-
Built by [desplega.sh](https://desplega.sh) — build by builders, for builders.
|
|
11
|
-
|
|
12
|
-
## Key Features
|
|
13
|
-
|
|
14
|
-
- **Lead/Worker coordination** — A lead agent delegates and tracks work across multiple workers
|
|
15
|
-
- **Docker isolation** — Each worker runs in its own container with a full dev environment
|
|
16
|
-
- **Slack, GitHub, GitLab & Email integration** — Create tasks by messaging the bot, @mentioning it in issues/PRs/MRs, or sending an email
|
|
17
|
-
- **Task lifecycle** — Priority queues, dependencies, pause/resume across deployments
|
|
18
|
-
- **Compounding memory** — Agents learn from every session and get smarter over time
|
|
19
|
-
- **Persistent identity** — Each agent has its own personality, expertise, and working style that evolves
|
|
20
|
-
- **Dashboard UI** — Real-time monitoring of agents, tasks, and inter-agent chat
|
|
21
|
-
- **Service discovery** — Workers can expose HTTP services and discover each other
|
|
22
|
-
- **Scheduled tasks** — Recurring and one-time task automation (cron, interval, or delayed)
|
|
23
|
-
- **Workflow automation** — DAG-based workflow engine with triggers, conditions, and actions
|
|
24
|
-
- **x402 payments** — Agents can make USDC micropayments for x402-gated APIs
|
|
25
|
-
- **Agent-fs integration** — Persistent, searchable filesystem shared across the swarm
|
|
26
|
-
- **Debug dashboard** — SQL query interface for database inspection (lead-only)
|
|
27
|
-
- **[Linear integration](/docs/guides/linear-integration)** — Bidirectional ticket tracker sync with AgentSession lifecycle
|
|
28
|
-
- **Portless local dev** — Friendly domain URLs for local development
|
|
29
|
-
- **Onboard wizard** — Interactive CLI to set up a new swarm from scratch with Docker Compose
|
|
30
|
-
|
|
31
|
-
## How It Works
|
|
32
|
-
|
|
33
|
-
```mermaid
|
|
34
|
-
graph TD
|
|
35
|
-
User["You (Slack / GitHub / Email / CLI)"] --> Lead["Lead Agent"]
|
|
36
|
-
Lead <--> API["MCP API Server"]
|
|
37
|
-
API <--> DB["SQLite DB"]
|
|
38
|
-
Lead --> W1["Worker"]
|
|
39
|
-
Lead --> W2["Worker"]
|
|
40
|
-
Lead --> W3["Worker"]
|
|
41
|
-
W1 -.- D1["Docker container"]
|
|
42
|
-
W2 -.- D2["Docker container"]
|
|
43
|
-
W3 -.- D3["Docker container"]
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
1. **You send a task** — via Slack DM, GitHub @mention, email, or directly through the API
|
|
47
|
-
2. **Lead agent plans** — breaks the task down and assigns subtasks to workers
|
|
48
|
-
3. **Workers execute** — each in an isolated Docker container with git, Node.js, Python, etc.
|
|
49
|
-
4. **Progress is tracked** — real-time updates in the dashboard, Slack threads, or API
|
|
50
|
-
5. **Results are delivered** — PRs created, issues closed, Slack replies sent
|
|
51
|
-
6. **Agents learn** — every session's learnings are extracted and recalled in future tasks
|
|
52
|
-
|
|
53
|
-
## Supported AI Assistants
|
|
54
|
-
|
|
55
|
-
Agent Swarm currently supports **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)** as the AI coding assistant. Support for other agents (Codex, Gemini CLI, and other MCP-compatible assistants) is coming soon.
|
|
56
|
-
|
|
57
|
-
## Next Steps
|
|
58
|
-
|
|
59
|
-
- [Getting Started](/docs/getting-started) — Set up your first swarm
|
|
60
|
-
- [Architecture Overview](/docs/architecture/overview) — Understand how the system works
|
|
61
|
-
- [Core Concepts](/docs/concepts/task-lifecycle) — Learn about tasks, agents, and coordination
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
_Last updated: March 21, 2026 — v1.49.0_
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "Documentation",
|
|
3
|
-
"description": "Guides, concepts, and reference for Agent Swarm",
|
|
4
|
-
"root": true,
|
|
5
|
-
"pages": [
|
|
6
|
-
"index",
|
|
7
|
-
"getting-started",
|
|
8
|
-
"---Architecture---",
|
|
9
|
-
"architecture",
|
|
10
|
-
"---Concepts---",
|
|
11
|
-
"concepts",
|
|
12
|
-
"---Guides---",
|
|
13
|
-
"guides",
|
|
14
|
-
"---Reference---",
|
|
15
|
-
"reference",
|
|
16
|
-
"---Community---",
|
|
17
|
-
"contributing"
|
|
18
|
-
]
|
|
19
|
-
}
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: CLI Reference
|
|
3
|
-
description: Complete CLI reference for managing agents, tasks, and swarm configuration from the terminal
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# CLI Reference
|
|
7
|
-
|
|
8
|
-
Agent Swarm provides a CLI for managing the swarm, running agents, and development.
|
|
9
|
-
|
|
10
|
-
## Installation
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
# Run directly with bunx
|
|
14
|
-
bunx @desplega.ai/agent-swarm <command>
|
|
15
|
-
|
|
16
|
-
# Or install globally
|
|
17
|
-
bun install -g @desplega.ai/agent-swarm
|
|
18
|
-
agent-swarm <command>
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Commands
|
|
22
|
-
|
|
23
|
-
### onboard
|
|
24
|
-
|
|
25
|
-
Set up a new swarm from scratch using Docker Compose. Interactive wizard that collects credentials, generates `docker-compose.yml` + `.env`, starts the stack, and verifies health.
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
bunx @desplega.ai/agent-swarm onboard
|
|
29
|
-
bunx @desplega.ai/agent-swarm onboard --dry-run
|
|
30
|
-
bunx @desplega.ai/agent-swarm onboard --yes --preset=dev
|
|
31
|
-
ANTHROPIC_API_KEY=sk-... bunx @desplega.ai/agent-swarm onboard --yes --preset=solo
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
| Option | Description |
|
|
35
|
-
|--------|-------------|
|
|
36
|
-
| `--dry-run` | Preview what would be generated without writing |
|
|
37
|
-
| `-y, --yes` | Non-interactive mode (reads from env vars) |
|
|
38
|
-
| `--preset <name>` | Preset: `dev`, `content`, `research`, `solo` |
|
|
39
|
-
|
|
40
|
-
### connect
|
|
41
|
-
|
|
42
|
-
Connect this project to an existing swarm. Creates `.mcp.json` and `.claude/settings.local.json` with server URL and API key. Auto-reads `API_KEY` from `.env` if present.
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
bunx @desplega.ai/agent-swarm connect
|
|
46
|
-
bunx @desplega.ai/agent-swarm connect --dry-run
|
|
47
|
-
bunx @desplega.ai/agent-swarm connect -y
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
| Option | Description |
|
|
51
|
-
|--------|-------------|
|
|
52
|
-
| `--dry-run` | Show what would be changed without writing |
|
|
53
|
-
| `--restore` | Restore files from `.bak` backups |
|
|
54
|
-
| `-y, --yes` | Non-interactive mode (use env vars) |
|
|
55
|
-
|
|
56
|
-
### api
|
|
57
|
-
|
|
58
|
-
Start the API + MCP HTTP server.
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
bunx @desplega.ai/agent-swarm api
|
|
62
|
-
bunx @desplega.ai/agent-swarm api --port 8080 --key my-secret
|
|
63
|
-
bunx @desplega.ai/agent-swarm api --db /data/swarm.sqlite
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
| Option | Description |
|
|
67
|
-
|--------|-------------|
|
|
68
|
-
| `-p, --port <port>` | Port to listen on (default: 3013) |
|
|
69
|
-
| `-k, --key <key>` | API key for authentication |
|
|
70
|
-
| `--db <path>` | Database file path (default: `./agent-swarm-db.sqlite`) |
|
|
71
|
-
|
|
72
|
-
### claude
|
|
73
|
-
|
|
74
|
-
Run Claude CLI with optional message and headless mode.
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
agent-swarm claude
|
|
78
|
-
agent-swarm claude --headless -m "Hello"
|
|
79
|
-
agent-swarm claude -- --resume
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
| Option | Description |
|
|
83
|
-
|--------|-------------|
|
|
84
|
-
| `-m, --msg <message>` | Message to send to Claude |
|
|
85
|
-
| `--headless` | Run in headless mode (stream JSON output) |
|
|
86
|
-
| `-- <args...>` | Additional arguments to pass to Claude CLI |
|
|
87
|
-
|
|
88
|
-
### worker
|
|
89
|
-
|
|
90
|
-
Run Claude in headless loop mode as a worker agent.
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
|
-
agent-swarm worker
|
|
94
|
-
agent-swarm worker --yolo
|
|
95
|
-
agent-swarm worker -m "Custom prompt"
|
|
96
|
-
agent-swarm worker --system-prompt "You are a Python specialist"
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
| Option | Description |
|
|
100
|
-
|--------|-------------|
|
|
101
|
-
| `-m, --msg <prompt>` | Custom prompt (default: `/agent-swarm:start-worker`) |
|
|
102
|
-
| `--yolo` | Continue on errors instead of stopping |
|
|
103
|
-
| `--system-prompt <text>` | Custom system prompt (appended to Claude) |
|
|
104
|
-
| `--system-prompt-file <path>` | Read system prompt from file |
|
|
105
|
-
| `--ai-loop` | Use AI-based polling (legacy mode) |
|
|
106
|
-
| `-- <args...>` | Additional arguments to pass to Claude CLI |
|
|
107
|
-
|
|
108
|
-
### lead
|
|
109
|
-
|
|
110
|
-
Run Claude as lead agent in headless loop mode. Same options as `worker`.
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
agent-swarm lead
|
|
114
|
-
agent-swarm lead --yolo
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### docs
|
|
118
|
-
|
|
119
|
-
Show the documentation URL. All pages are also available in markdown format by appending `.md` to the URL.
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
bunx @desplega.ai/agent-swarm docs
|
|
123
|
-
bunx @desplega.ai/agent-swarm docs --open
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
| Option | Description |
|
|
127
|
-
|--------|-------------|
|
|
128
|
-
| `--open` | Open docs in default browser |
|
|
129
|
-
|
|
130
|
-
### hook
|
|
131
|
-
|
|
132
|
-
Handle Claude Code hook events from stdin. Used internally by the agent-swarm hooks system.
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
agent-swarm hook
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### artifact
|
|
139
|
-
|
|
140
|
-
Manage agent artifacts — serve static files or Hono apps via localtunnel.
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
# Serve a directory as a public artifact
|
|
144
|
-
agent-swarm artifact serve ./my-report --name my-report
|
|
145
|
-
|
|
146
|
-
# Serve a Hono app (must export default Hono instance)
|
|
147
|
-
agent-swarm artifact serve ./server.ts --name dashboard
|
|
148
|
-
|
|
149
|
-
# List active artifacts
|
|
150
|
-
agent-swarm artifact list
|
|
151
|
-
|
|
152
|
-
# Stop an artifact
|
|
153
|
-
agent-swarm artifact stop my-report
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
**Subcommands:**
|
|
157
|
-
|
|
158
|
-
| Subcommand | Description |
|
|
159
|
-
|------------|-------------|
|
|
160
|
-
| `serve <path>` | Serve a directory or script via localtunnel |
|
|
161
|
-
| `list` | List active artifacts from the service registry |
|
|
162
|
-
| `stop <name>` | Stop an artifact and close its tunnel |
|
|
163
|
-
|
|
164
|
-
**Options for `serve`:**
|
|
165
|
-
|
|
166
|
-
| Option | Description |
|
|
167
|
-
|--------|-------------|
|
|
168
|
-
| `--name <name>` | Name for the artifact (derived from path if omitted) |
|
|
169
|
-
| `--port <port>` | Local port to use |
|
|
170
|
-
| `--no-auth` | Disable authentication |
|
|
171
|
-
| `--subdomain <sub>` | Request a specific localtunnel subdomain |
|
|
172
|
-
|
|
173
|
-
Artifacts are registered in the service registry and automatically cleaned up when the session ends (via the Stop hook).
|
|
174
|
-
|
|
175
|
-
## Development Commands
|
|
176
|
-
|
|
177
|
-
These are available when developing Agent Swarm locally:
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
# Start MCP server
|
|
181
|
-
bun run start # STDIO transport
|
|
182
|
-
bun run start:http # HTTP transport
|
|
183
|
-
|
|
184
|
-
# Development with hot reload
|
|
185
|
-
bun run dev # STDIO
|
|
186
|
-
bun run dev:http # HTTP
|
|
187
|
-
|
|
188
|
-
# MCP Inspector (debug tools)
|
|
189
|
-
bun run inspector:http
|
|
190
|
-
|
|
191
|
-
# Run worker/lead locally
|
|
192
|
-
bun run worker
|
|
193
|
-
bun run lead
|
|
194
|
-
|
|
195
|
-
# Hook handler
|
|
196
|
-
bun run hook
|
|
197
|
-
|
|
198
|
-
# Linting and formatting
|
|
199
|
-
bun run lint
|
|
200
|
-
bun run lint:fix
|
|
201
|
-
bun run format
|
|
202
|
-
|
|
203
|
-
# Type checking
|
|
204
|
-
bun run tsc:check
|
|
205
|
-
|
|
206
|
-
# Build binaries
|
|
207
|
-
bun run build:binary # x64
|
|
208
|
-
bun run build:binary:arm64 # ARM64
|
|
209
|
-
|
|
210
|
-
# Docker
|
|
211
|
-
bun run docker:build:worker
|
|
212
|
-
bun run docker:run:worker
|
|
213
|
-
bun run docker:run:lead
|
|
214
|
-
|
|
215
|
-
# Generate MCP docs
|
|
216
|
-
bun run docs:mcp
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
## Dashboard UI
|
|
220
|
-
|
|
221
|
-
The React-based monitoring dashboard is in the `new-ui/` directory:
|
|
222
|
-
|
|
223
|
-
```bash
|
|
224
|
-
cd new-ui
|
|
225
|
-
bun install
|
|
226
|
-
bun run dev
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
Opens at `http://localhost:5173`. Provides real-time visibility into:
|
|
230
|
-
- Agent status and activity
|
|
231
|
-
- Task list and progress
|
|
232
|
-
- Inter-agent chat messages
|
|
233
|
-
- Service registry
|
|
234
|
-
- Usage and cost tracking
|
|
235
|
-
|
|
236
|
-
## Related
|
|
237
|
-
|
|
238
|
-
- [Getting Started](/docs/getting-started) — Set up your first swarm
|
|
239
|
-
- [Environment Variables](/docs/reference/environment-variables) — Configuration reference for all env vars
|
|
240
|
-
- [MCP Tools Reference](/docs/reference/mcp-tools) — Complete reference for all swarm MCP tools
|
|
241
|
-
- [Deployment Guide](/docs/guides/deployment) — Production deployment options
|