@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,160 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import React from "react";
|
|
4
|
-
import { motion } from "framer-motion";
|
|
5
|
-
import {
|
|
6
|
-
Brain,
|
|
7
|
-
Network,
|
|
8
|
-
Layers,
|
|
9
|
-
Clock,
|
|
10
|
-
Database,
|
|
11
|
-
Workflow,
|
|
12
|
-
Users,
|
|
13
|
-
Zap,
|
|
14
|
-
Blocks,
|
|
15
|
-
} from "lucide-react";
|
|
16
|
-
|
|
17
|
-
const features: {
|
|
18
|
-
icon: React.ComponentType<{ className?: string }>;
|
|
19
|
-
title: string;
|
|
20
|
-
description: string;
|
|
21
|
-
color: string;
|
|
22
|
-
link?: string;
|
|
23
|
-
}[] = [
|
|
24
|
-
{
|
|
25
|
-
icon: Network,
|
|
26
|
-
title: "Lead-Worker Orchestration",
|
|
27
|
-
description:
|
|
28
|
-
"A lead agent coordinates specialized workers. Tasks are delegated, tracked, and completed autonomously — like a team that never sleeps.",
|
|
29
|
-
color: "from-amber-500 to-orange-500",
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
icon: Brain,
|
|
33
|
-
title: "Persistent Memory",
|
|
34
|
-
description:
|
|
35
|
-
"Agents remember across sessions. Solutions, patterns, and mistakes are stored and searchable — knowledge truly compounds over time.",
|
|
36
|
-
color: "from-violet-500 to-purple-500",
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
icon: Layers,
|
|
40
|
-
title: "Identity & Soul",
|
|
41
|
-
description:
|
|
42
|
-
"Each agent has personality files — SOUL.md and IDENTITY.md — that define who they are and evolve as they work. They become someone.",
|
|
43
|
-
color: "from-blue-500 to-cyan-500",
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
icon: Workflow,
|
|
47
|
-
title: "Task Lifecycle",
|
|
48
|
-
description:
|
|
49
|
-
"Tasks flow through a rich lifecycle: unassigned, offered, claimed, in-progress, reviewing, completed. Full traceability at every step.",
|
|
50
|
-
color: "from-emerald-500 to-teal-500",
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
icon: Blocks,
|
|
54
|
-
title: "Agent Templates",
|
|
55
|
-
description:
|
|
56
|
-
"Start from pre-built templates — Lead, Coder, Researcher, Reviewer, Tester, and more. Or create your own and share them with the community.",
|
|
57
|
-
color: "from-rose-500 to-pink-500",
|
|
58
|
-
link: "https://templates.agent-swarm.dev",
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
icon: Database,
|
|
62
|
-
title: "Epics & Scheduling",
|
|
63
|
-
description:
|
|
64
|
-
"Organize work into epics with progress tracking. Schedule recurring tasks with cron expressions. The swarm runs while you sleep.",
|
|
65
|
-
color: "from-amber-600 to-yellow-500",
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
icon: Users,
|
|
69
|
-
title: "Slack Integration",
|
|
70
|
-
description:
|
|
71
|
-
"Talk to the swarm from Slack. Mention the bot, get progress updates in threads, delegate work — all from your existing workflow.",
|
|
72
|
-
color: "from-indigo-500 to-blue-500",
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
icon: Zap,
|
|
76
|
-
title: "MCP-Native",
|
|
77
|
-
description:
|
|
78
|
-
"Built on the Model Context Protocol. Every capability is a tool. Agents discover and invoke each other's services seamlessly.",
|
|
79
|
-
color: "from-orange-500 to-red-500",
|
|
80
|
-
},
|
|
81
|
-
];
|
|
82
|
-
|
|
83
|
-
const container = {
|
|
84
|
-
hidden: {},
|
|
85
|
-
show: {
|
|
86
|
-
transition: { staggerChildren: 0.08 },
|
|
87
|
-
},
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
const item = {
|
|
91
|
-
hidden: { opacity: 0, y: 24 },
|
|
92
|
-
show: { opacity: 1, y: 0, transition: { duration: 0.5, ease: "easeOut" as const } },
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
export function Features() {
|
|
96
|
-
return (
|
|
97
|
-
<section id="features" className="relative py-32 overflow-hidden">
|
|
98
|
-
<div className="absolute inset-0 bg-gradient-to-b from-white via-amber-50/30 to-white" />
|
|
99
|
-
|
|
100
|
-
<div className="relative mx-auto max-w-6xl px-6">
|
|
101
|
-
<motion.div
|
|
102
|
-
initial={{ opacity: 0, y: 20 }}
|
|
103
|
-
whileInView={{ opacity: 1, y: 0 }}
|
|
104
|
-
viewport={{ once: true, margin: "-100px" }}
|
|
105
|
-
transition={{ duration: 0.6 }}
|
|
106
|
-
className="text-center mb-20"
|
|
107
|
-
>
|
|
108
|
-
<span className="inline-block text-sm font-semibold text-amber-700 tracking-wider uppercase mb-4">
|
|
109
|
-
Capabilities
|
|
110
|
-
</span>
|
|
111
|
-
<h2 className="text-4xl sm:text-5xl font-bold tracking-tight mb-6">
|
|
112
|
-
Everything a swarm needs
|
|
113
|
-
</h2>
|
|
114
|
-
<p className="text-lg text-zinc-500 max-w-2xl mx-auto">
|
|
115
|
-
From task delegation to persistent memory, Agent Swarm provides the
|
|
116
|
-
full infrastructure for autonomous multi-agent coordination.
|
|
117
|
-
</p>
|
|
118
|
-
</motion.div>
|
|
119
|
-
|
|
120
|
-
<motion.div
|
|
121
|
-
variants={container}
|
|
122
|
-
initial="hidden"
|
|
123
|
-
whileInView="show"
|
|
124
|
-
viewport={{ once: true, margin: "-50px" }}
|
|
125
|
-
className="grid sm:grid-cols-2 lg:grid-cols-4 gap-6"
|
|
126
|
-
>
|
|
127
|
-
{features.map((feature) => {
|
|
128
|
-
const Wrapper = feature.link ? "a" : "div";
|
|
129
|
-
const linkProps = feature.link
|
|
130
|
-
? { href: feature.link, target: "_blank" as const, rel: "noopener noreferrer" }
|
|
131
|
-
: {};
|
|
132
|
-
return (
|
|
133
|
-
<motion.div
|
|
134
|
-
key={feature.title}
|
|
135
|
-
variants={item}
|
|
136
|
-
>
|
|
137
|
-
<Wrapper
|
|
138
|
-
{...linkProps}
|
|
139
|
-
className="group relative block rounded-2xl bg-white border border-zinc-100 p-6 hover:border-zinc-200 hover:shadow-xl hover:shadow-zinc-100/50 transition-all duration-300 h-full"
|
|
140
|
-
>
|
|
141
|
-
<div
|
|
142
|
-
className={`inline-flex items-center justify-center w-10 h-10 rounded-xl bg-gradient-to-br ${feature.color} mb-4 shadow-lg`}
|
|
143
|
-
>
|
|
144
|
-
<feature.icon className="w-5 h-5 text-white" />
|
|
145
|
-
</div>
|
|
146
|
-
<h3 className="text-base font-semibold text-zinc-900 mb-2">
|
|
147
|
-
{feature.title}
|
|
148
|
-
</h3>
|
|
149
|
-
<p className="text-sm text-zinc-500 leading-relaxed">
|
|
150
|
-
{feature.description}
|
|
151
|
-
</p>
|
|
152
|
-
</Wrapper>
|
|
153
|
-
</motion.div>
|
|
154
|
-
);
|
|
155
|
-
})}
|
|
156
|
-
</motion.div>
|
|
157
|
-
</div>
|
|
158
|
-
</section>
|
|
159
|
-
);
|
|
160
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import Image from "next/image";
|
|
2
|
-
import Link from "next/link";
|
|
3
|
-
import { Github, BookOpen, ExternalLink, LayoutDashboard, Sparkles, PenLine, Blocks } from "lucide-react";
|
|
4
|
-
|
|
5
|
-
export function Footer() {
|
|
6
|
-
return (
|
|
7
|
-
<footer className="border-t border-zinc-100 bg-white">
|
|
8
|
-
<div className="mx-auto max-w-6xl px-6 py-12">
|
|
9
|
-
<div className="flex flex-col md:flex-row items-center justify-between gap-6">
|
|
10
|
-
<div className="flex items-center gap-3">
|
|
11
|
-
<Image src="/logo.png" alt="Agent Swarm" width={28} height={28} className="rounded-lg" />
|
|
12
|
-
<div>
|
|
13
|
-
<div className="text-sm font-semibold text-zinc-900">
|
|
14
|
-
Agent Swarm
|
|
15
|
-
</div>
|
|
16
|
-
<div className="text-xs text-zinc-400">
|
|
17
|
-
Built by{" "}
|
|
18
|
-
<a
|
|
19
|
-
href="https://desplega.sh"
|
|
20
|
-
target="_blank"
|
|
21
|
-
rel="noopener noreferrer"
|
|
22
|
-
className="text-amber-600 hover:text-amber-700 transition-colors inline-flex items-center gap-0.5"
|
|
23
|
-
>
|
|
24
|
-
desplega.sh
|
|
25
|
-
<ExternalLink className="w-3 h-3" />
|
|
26
|
-
</a>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
<div className="flex flex-wrap items-center justify-center gap-x-6 gap-y-3">
|
|
32
|
-
<a
|
|
33
|
-
href="https://github.com/desplega-ai/agent-swarm"
|
|
34
|
-
target="_blank"
|
|
35
|
-
rel="noopener noreferrer"
|
|
36
|
-
className="flex items-center gap-1.5 text-sm text-zinc-500 hover:text-zinc-700 transition-colors"
|
|
37
|
-
>
|
|
38
|
-
<Github className="w-4 h-4" />
|
|
39
|
-
GitHub
|
|
40
|
-
</a>
|
|
41
|
-
<a
|
|
42
|
-
href="https://docs.agent-swarm.dev"
|
|
43
|
-
className="flex items-center gap-1.5 text-sm text-zinc-500 hover:text-zinc-700 transition-colors"
|
|
44
|
-
>
|
|
45
|
-
<BookOpen className="w-4 h-4" />
|
|
46
|
-
Docs
|
|
47
|
-
</a>
|
|
48
|
-
<Link
|
|
49
|
-
href="/blog"
|
|
50
|
-
className="flex items-center gap-1.5 text-sm text-zinc-500 hover:text-zinc-700 transition-colors"
|
|
51
|
-
>
|
|
52
|
-
<PenLine className="w-4 h-4" />
|
|
53
|
-
Blog
|
|
54
|
-
</Link>
|
|
55
|
-
<Link
|
|
56
|
-
href="/examples"
|
|
57
|
-
className="flex items-center gap-1.5 text-sm text-zinc-500 hover:text-zinc-700 transition-colors"
|
|
58
|
-
>
|
|
59
|
-
<Sparkles className="w-4 h-4" />
|
|
60
|
-
Examples
|
|
61
|
-
</Link>
|
|
62
|
-
<a
|
|
63
|
-
href="https://templates.agent-swarm.dev"
|
|
64
|
-
target="_blank"
|
|
65
|
-
rel="noopener noreferrer"
|
|
66
|
-
className="flex items-center gap-1.5 text-sm text-zinc-500 hover:text-zinc-700 transition-colors"
|
|
67
|
-
>
|
|
68
|
-
<Blocks className="w-4 h-4" />
|
|
69
|
-
Templates
|
|
70
|
-
</a>
|
|
71
|
-
<a
|
|
72
|
-
href="https://app.agent-swarm.dev"
|
|
73
|
-
target="_blank"
|
|
74
|
-
rel="noopener noreferrer"
|
|
75
|
-
className="flex items-center gap-1.5 text-sm text-zinc-500 hover:text-zinc-700 transition-colors"
|
|
76
|
-
>
|
|
77
|
-
<LayoutDashboard className="w-4 h-4" />
|
|
78
|
-
Dashboard
|
|
79
|
-
</a>
|
|
80
|
-
<a
|
|
81
|
-
href="https://desplega.sh"
|
|
82
|
-
target="_blank"
|
|
83
|
-
rel="noopener noreferrer"
|
|
84
|
-
className="flex items-center gap-1.5 text-sm text-zinc-500 hover:text-zinc-700 transition-colors"
|
|
85
|
-
>
|
|
86
|
-
<ExternalLink className="w-4 h-4" />
|
|
87
|
-
desplega.sh
|
|
88
|
-
</a>
|
|
89
|
-
</div>
|
|
90
|
-
</div>
|
|
91
|
-
|
|
92
|
-
<div className="mt-8 pt-6 border-t border-zinc-100 text-center">
|
|
93
|
-
<p className="text-xs text-zinc-400">
|
|
94
|
-
MIT License · Open source multi-agent orchestration for Claude Code
|
|
95
|
-
</p>
|
|
96
|
-
</div>
|
|
97
|
-
</div>
|
|
98
|
-
</footer>
|
|
99
|
-
);
|
|
100
|
-
}
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { motion } from "framer-motion";
|
|
4
|
-
import { ArrowRight, Github, Sparkles } from "lucide-react";
|
|
5
|
-
|
|
6
|
-
function SwarmVisualization() {
|
|
7
|
-
const nodes = [
|
|
8
|
-
{ x: 50, y: 50, label: "Lead", size: 18, delay: 0 },
|
|
9
|
-
{ x: 20, y: 25, label: "W1", size: 12, delay: 0.2 },
|
|
10
|
-
{ x: 80, y: 20, label: "W2", size: 12, delay: 0.4 },
|
|
11
|
-
{ x: 15, y: 70, label: "W3", size: 12, delay: 0.6 },
|
|
12
|
-
{ x: 85, y: 75, label: "W4", size: 12, delay: 0.8 },
|
|
13
|
-
{ x: 50, y: 85, label: "W5", size: 12, delay: 1.0 },
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
const connections = [
|
|
17
|
-
[0, 1], [0, 2], [0, 3], [0, 4], [0, 5],
|
|
18
|
-
[1, 2], [3, 4], [4, 5],
|
|
19
|
-
];
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<div className="relative w-full aspect-square max-w-lg mx-auto">
|
|
23
|
-
<div className="absolute inset-0 rounded-full bg-gradient-to-br from-amber-100/50 to-amber-50/20 blur-3xl" />
|
|
24
|
-
|
|
25
|
-
<svg viewBox="0 0 100 100" className="relative w-full h-full">
|
|
26
|
-
{connections.map(([from, to], i) => (
|
|
27
|
-
<motion.line
|
|
28
|
-
key={i}
|
|
29
|
-
x1={nodes[from].x}
|
|
30
|
-
y1={nodes[from].y}
|
|
31
|
-
x2={nodes[to].x}
|
|
32
|
-
y2={nodes[to].y}
|
|
33
|
-
stroke="url(#lineGrad)"
|
|
34
|
-
strokeWidth="0.3"
|
|
35
|
-
initial={{ pathLength: 0, opacity: 0 }}
|
|
36
|
-
animate={{ pathLength: 1, opacity: 0.4 }}
|
|
37
|
-
transition={{ duration: 1.5, delay: 0.5 + i * 0.1, ease: "easeOut" }}
|
|
38
|
-
/>
|
|
39
|
-
))}
|
|
40
|
-
|
|
41
|
-
{/* Animated data particles along connections */}
|
|
42
|
-
{connections.slice(0, 5).map(([from, to], i) => (
|
|
43
|
-
<motion.circle
|
|
44
|
-
key={`particle-${i}`}
|
|
45
|
-
r="0.8"
|
|
46
|
-
fill="oklch(0.769 0.188 70.08)"
|
|
47
|
-
initial={{ opacity: 0 }}
|
|
48
|
-
animate={{
|
|
49
|
-
cx: [nodes[from].x, nodes[to].x],
|
|
50
|
-
cy: [nodes[from].y, nodes[to].y],
|
|
51
|
-
opacity: [0, 1, 1, 0],
|
|
52
|
-
}}
|
|
53
|
-
transition={{
|
|
54
|
-
duration: 2,
|
|
55
|
-
delay: 1.5 + i * 0.6,
|
|
56
|
-
repeat: Infinity,
|
|
57
|
-
repeatDelay: 2,
|
|
58
|
-
ease: "easeInOut",
|
|
59
|
-
}}
|
|
60
|
-
/>
|
|
61
|
-
))}
|
|
62
|
-
|
|
63
|
-
{nodes.map((node, i) => (
|
|
64
|
-
<motion.g
|
|
65
|
-
key={i}
|
|
66
|
-
initial={{ scale: 0, opacity: 0 }}
|
|
67
|
-
animate={{ scale: 1, opacity: 1 }}
|
|
68
|
-
transition={{ duration: 0.5, delay: node.delay, type: "spring", stiffness: 200 }}
|
|
69
|
-
>
|
|
70
|
-
<motion.circle
|
|
71
|
-
cx={node.x}
|
|
72
|
-
cy={node.y}
|
|
73
|
-
r={node.size * 0.8}
|
|
74
|
-
fill="none"
|
|
75
|
-
stroke="oklch(0.555 0.163 48.998)"
|
|
76
|
-
strokeWidth="0.15"
|
|
77
|
-
animate={{ r: [node.size * 0.8, node.size * 1.2, node.size * 0.8] }}
|
|
78
|
-
transition={{ duration: 3, repeat: Infinity, delay: node.delay }}
|
|
79
|
-
opacity={0.2}
|
|
80
|
-
/>
|
|
81
|
-
<circle
|
|
82
|
-
cx={node.x}
|
|
83
|
-
cy={node.y}
|
|
84
|
-
r={node.size * 0.5}
|
|
85
|
-
fill={i === 0 ? "oklch(0.555 0.163 48.998)" : "oklch(0.967 0.001 286.375)"}
|
|
86
|
-
stroke={i === 0 ? "oklch(0.473 0.137 46.201)" : "oklch(0.92 0.004 286.32)"}
|
|
87
|
-
strokeWidth="0.5"
|
|
88
|
-
/>
|
|
89
|
-
<text
|
|
90
|
-
x={node.x}
|
|
91
|
-
y={node.y + 1.2}
|
|
92
|
-
textAnchor="middle"
|
|
93
|
-
fontSize="3"
|
|
94
|
-
fontWeight={i === 0 ? "700" : "500"}
|
|
95
|
-
fill={i === 0 ? "white" : "oklch(0.552 0.016 285.938)"}
|
|
96
|
-
fontFamily="Space Grotesk, sans-serif"
|
|
97
|
-
>
|
|
98
|
-
{node.label}
|
|
99
|
-
</text>
|
|
100
|
-
</motion.g>
|
|
101
|
-
))}
|
|
102
|
-
|
|
103
|
-
<defs>
|
|
104
|
-
<linearGradient id="lineGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
105
|
-
<stop offset="0%" stopColor="oklch(0.555 0.163 48.998)" />
|
|
106
|
-
<stop offset="100%" stopColor="oklch(0.769 0.188 70.08)" />
|
|
107
|
-
</linearGradient>
|
|
108
|
-
</defs>
|
|
109
|
-
</svg>
|
|
110
|
-
</div>
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export function Hero() {
|
|
115
|
-
return (
|
|
116
|
-
<section className="relative min-h-screen flex items-center overflow-hidden">
|
|
117
|
-
{/* Background grid */}
|
|
118
|
-
<div className="absolute inset-0 grid-bg opacity-40" />
|
|
119
|
-
|
|
120
|
-
{/* Gradient orbs */}
|
|
121
|
-
<div className="absolute top-20 -left-40 w-96 h-96 rounded-full bg-amber-200/20 blur-[100px] animate-pulse-glow" />
|
|
122
|
-
<div className="absolute bottom-20 -right-40 w-96 h-96 rounded-full bg-amber-300/15 blur-[100px] animate-pulse-glow" style={{ animationDelay: "1.5s" }} />
|
|
123
|
-
|
|
124
|
-
<div className="relative mx-auto max-w-6xl px-6 pt-32 pb-20 w-full">
|
|
125
|
-
<div className="grid lg:grid-cols-2 gap-16 items-center">
|
|
126
|
-
<div>
|
|
127
|
-
<motion.div
|
|
128
|
-
initial={{ opacity: 0, y: 20 }}
|
|
129
|
-
animate={{ opacity: 1, y: 0 }}
|
|
130
|
-
transition={{ duration: 0.6 }}
|
|
131
|
-
className="inline-flex items-center gap-2 rounded-full bg-amber-50 border border-amber-200/60 px-4 py-1.5 mb-8"
|
|
132
|
-
>
|
|
133
|
-
<Sparkles className="w-4 h-4 text-amber-600" />
|
|
134
|
-
<span className="text-sm font-medium text-amber-800">
|
|
135
|
-
Open Source · MCP-Powered
|
|
136
|
-
</span>
|
|
137
|
-
</motion.div>
|
|
138
|
-
|
|
139
|
-
<motion.h1
|
|
140
|
-
initial={{ opacity: 0, y: 20 }}
|
|
141
|
-
animate={{ opacity: 1, y: 0 }}
|
|
142
|
-
transition={{ duration: 0.6, delay: 0.1 }}
|
|
143
|
-
className="text-5xl sm:text-6xl lg:text-7xl font-bold tracking-tight leading-[1.05] mb-6"
|
|
144
|
-
>
|
|
145
|
-
Intelligence that{" "}
|
|
146
|
-
<span className="gradient-text">compounds</span>
|
|
147
|
-
</motion.h1>
|
|
148
|
-
|
|
149
|
-
<motion.p
|
|
150
|
-
initial={{ opacity: 0, y: 20 }}
|
|
151
|
-
animate={{ opacity: 1, y: 0 }}
|
|
152
|
-
transition={{ duration: 0.6, delay: 0.2 }}
|
|
153
|
-
className="text-lg sm:text-xl text-zinc-500 leading-relaxed mb-10 max-w-xl"
|
|
154
|
-
>
|
|
155
|
-
Orchestrate autonomous AI agents that learn, remember, and get
|
|
156
|
-
smarter with every session. A lead coordinates workers. Memory
|
|
157
|
-
persists. Knowledge compounds.
|
|
158
|
-
</motion.p>
|
|
159
|
-
|
|
160
|
-
<motion.div
|
|
161
|
-
initial={{ opacity: 0, y: 20 }}
|
|
162
|
-
animate={{ opacity: 1, y: 0 }}
|
|
163
|
-
transition={{ duration: 0.6, delay: 0.3 }}
|
|
164
|
-
className="flex flex-wrap gap-4"
|
|
165
|
-
>
|
|
166
|
-
<a
|
|
167
|
-
href="https://docs.agent-swarm.dev/docs/getting-started"
|
|
168
|
-
className="group inline-flex items-center gap-2 rounded-xl bg-zinc-900 px-6 py-3 text-sm font-semibold text-white hover:bg-zinc-800 transition-all shadow-xl shadow-zinc-900/20 hover:shadow-zinc-900/30"
|
|
169
|
-
>
|
|
170
|
-
Get Started
|
|
171
|
-
<ArrowRight className="w-4 h-4 group-hover:translate-x-0.5 transition-transform" />
|
|
172
|
-
</a>
|
|
173
|
-
<a
|
|
174
|
-
href="https://github.com/desplega-ai/agent-swarm"
|
|
175
|
-
target="_blank"
|
|
176
|
-
rel="noopener noreferrer"
|
|
177
|
-
className="inline-flex items-center gap-2 rounded-xl bg-white px-6 py-3 text-sm font-semibold text-zinc-700 border border-zinc-200 hover:border-zinc-300 hover:bg-zinc-50 transition-all shadow-sm"
|
|
178
|
-
>
|
|
179
|
-
<Github className="w-4 h-4" />
|
|
180
|
-
GitHub
|
|
181
|
-
</a>
|
|
182
|
-
</motion.div>
|
|
183
|
-
|
|
184
|
-
<motion.div
|
|
185
|
-
initial={{ opacity: 0 }}
|
|
186
|
-
animate={{ opacity: 1 }}
|
|
187
|
-
transition={{ duration: 0.6, delay: 0.5 }}
|
|
188
|
-
className="mt-10 flex items-center gap-6 text-sm text-zinc-400"
|
|
189
|
-
>
|
|
190
|
-
<div className="flex items-center gap-2">
|
|
191
|
-
<div className="w-2 h-2 rounded-full bg-emerald-400 animate-pulse" />
|
|
192
|
-
TypeScript
|
|
193
|
-
</div>
|
|
194
|
-
<div className="flex items-center gap-2">
|
|
195
|
-
<div className="w-2 h-2 rounded-full bg-amber-400 animate-pulse" style={{ animationDelay: "0.5s" }} />
|
|
196
|
-
MCP Protocol
|
|
197
|
-
</div>
|
|
198
|
-
<div className="flex items-center gap-2">
|
|
199
|
-
<div className="w-2 h-2 rounded-full bg-blue-400 animate-pulse" style={{ animationDelay: "1s" }} />
|
|
200
|
-
Claude Code
|
|
201
|
-
</div>
|
|
202
|
-
</motion.div>
|
|
203
|
-
</div>
|
|
204
|
-
|
|
205
|
-
<motion.div
|
|
206
|
-
initial={{ opacity: 0, scale: 0.9 }}
|
|
207
|
-
animate={{ opacity: 1, scale: 1 }}
|
|
208
|
-
transition={{ duration: 0.8, delay: 0.3 }}
|
|
209
|
-
className="hidden lg:block"
|
|
210
|
-
>
|
|
211
|
-
<SwarmVisualization />
|
|
212
|
-
</motion.div>
|
|
213
|
-
</div>
|
|
214
|
-
</div>
|
|
215
|
-
</section>
|
|
216
|
-
);
|
|
217
|
-
}
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { motion } from "framer-motion";
|
|
4
|
-
|
|
5
|
-
const steps = [
|
|
6
|
-
{
|
|
7
|
-
number: "01",
|
|
8
|
-
title: "Deploy the Swarm",
|
|
9
|
-
description:
|
|
10
|
-
"Clone the repo, configure your environment, and run docker compose up. The API server, lead agent, and workers start in isolated containers — each with their own identity, capabilities, and workspace.",
|
|
11
|
-
visual: (
|
|
12
|
-
<div className="font-mono text-xs leading-relaxed text-zinc-600">
|
|
13
|
-
<div className="text-zinc-400"># Clone and configure</div>
|
|
14
|
-
<div>
|
|
15
|
-
<span className="text-amber-600">$</span> git clone github.com/desplega-ai/agent-swarm
|
|
16
|
-
</div>
|
|
17
|
-
<div>
|
|
18
|
-
<span className="text-amber-600">$</span> cp .env.docker.example .env
|
|
19
|
-
</div>
|
|
20
|
-
<div className="mt-2 text-zinc-400"># Start the swarm</div>
|
|
21
|
-
<div>
|
|
22
|
-
<span className="text-amber-600">$</span> docker compose up -d
|
|
23
|
-
</div>
|
|
24
|
-
<div className="mt-2 text-emerald-600">
|
|
25
|
-
✓ API server running on :3013
|
|
26
|
-
</div>
|
|
27
|
-
<div className="text-emerald-600">
|
|
28
|
-
✓ Lead agent online
|
|
29
|
-
</div>
|
|
30
|
-
<div className="text-emerald-600">
|
|
31
|
-
✓ 2 workers connected
|
|
32
|
-
</div>
|
|
33
|
-
</div>
|
|
34
|
-
),
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
number: "02",
|
|
38
|
-
title: "Delegate Tasks",
|
|
39
|
-
description:
|
|
40
|
-
"The lead agent breaks down work and assigns tasks to specialized workers. Tasks can be sent directly, offered for acceptance, or pooled for anyone to claim.",
|
|
41
|
-
visual: (
|
|
42
|
-
<div className="space-y-2">
|
|
43
|
-
{[
|
|
44
|
-
{ task: "Implement auth flow", agent: "Picateclas", status: "in_progress", color: "bg-blue-100 text-blue-700" },
|
|
45
|
-
{ task: "Write API tests", agent: "Codebot", status: "pending", color: "bg-amber-100 text-amber-700" },
|
|
46
|
-
{ task: "Update docs", agent: "Pool", status: "unassigned", color: "bg-zinc-100 text-zinc-600" },
|
|
47
|
-
].map((t) => (
|
|
48
|
-
<div
|
|
49
|
-
key={t.task}
|
|
50
|
-
className="flex items-center justify-between rounded-lg border border-zinc-100 bg-white px-3 py-2"
|
|
51
|
-
>
|
|
52
|
-
<div>
|
|
53
|
-
<div className="text-xs font-medium text-zinc-800">{t.task}</div>
|
|
54
|
-
<div className="text-xs text-zinc-400">{t.agent}</div>
|
|
55
|
-
</div>
|
|
56
|
-
<span className={`text-xs font-medium px-2 py-0.5 rounded-full ${t.color}`}>
|
|
57
|
-
{t.status}
|
|
58
|
-
</span>
|
|
59
|
-
</div>
|
|
60
|
-
))}
|
|
61
|
-
</div>
|
|
62
|
-
),
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
number: "03",
|
|
66
|
-
title: "Knowledge Compounds",
|
|
67
|
-
description:
|
|
68
|
-
"Every completed task generates memories. Every session enriches the agent's identity. The swarm doesn't just work — it learns. Each session builds on all that came before.",
|
|
69
|
-
visual: (
|
|
70
|
-
<div className="space-y-3">
|
|
71
|
-
<div className="flex items-start gap-2">
|
|
72
|
-
<div className="mt-1 w-1.5 h-1.5 rounded-full bg-amber-500 shrink-0" />
|
|
73
|
-
<div className="text-xs text-zinc-600">
|
|
74
|
-
<span className="font-medium text-zinc-800">Memory saved:</span>{" "}
|
|
75
|
-
“The API requires Bearer prefix on all auth headers”
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
<div className="flex items-start gap-2">
|
|
79
|
-
<div className="mt-1 w-1.5 h-1.5 rounded-full bg-violet-500 shrink-0" />
|
|
80
|
-
<div className="text-xs text-zinc-600">
|
|
81
|
-
<span className="font-medium text-zinc-800">Identity evolved:</span>{" "}
|
|
82
|
-
Added “auth specialist” to capabilities
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
<div className="flex items-start gap-2">
|
|
86
|
-
<div className="mt-1 w-1.5 h-1.5 rounded-full bg-emerald-500 shrink-0" />
|
|
87
|
-
<div className="text-xs text-zinc-600">
|
|
88
|
-
<span className="font-medium text-zinc-800">Pattern learned:</span>{" "}
|
|
89
|
-
Session continuity via parentTaskId
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
<div className="mt-3 rounded-lg bg-gradient-to-r from-amber-50 to-amber-100/50 border border-amber-200/50 px-3 py-2">
|
|
93
|
-
<div className="text-xs font-medium text-amber-800">
|
|
94
|
-
Session 47 — 3x faster than session 1
|
|
95
|
-
</div>
|
|
96
|
-
<div className="mt-1 w-full bg-amber-200/50 rounded-full h-1.5">
|
|
97
|
-
<div className="bg-gradient-to-r from-amber-500 to-amber-600 h-1.5 rounded-full" style={{ width: "78%" }} />
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
</div>
|
|
101
|
-
),
|
|
102
|
-
},
|
|
103
|
-
];
|
|
104
|
-
|
|
105
|
-
export function HowItWorks() {
|
|
106
|
-
return (
|
|
107
|
-
<section id="how-it-works" className="relative py-32">
|
|
108
|
-
<div className="mx-auto max-w-6xl px-6">
|
|
109
|
-
<motion.div
|
|
110
|
-
initial={{ opacity: 0, y: 20 }}
|
|
111
|
-
whileInView={{ opacity: 1, y: 0 }}
|
|
112
|
-
viewport={{ once: true, margin: "-100px" }}
|
|
113
|
-
transition={{ duration: 0.6 }}
|
|
114
|
-
className="text-center mb-20"
|
|
115
|
-
>
|
|
116
|
-
<span className="inline-block text-sm font-semibold text-amber-700 tracking-wider uppercase mb-4">
|
|
117
|
-
How It Works
|
|
118
|
-
</span>
|
|
119
|
-
<h2 className="text-4xl sm:text-5xl font-bold tracking-tight mb-6">
|
|
120
|
-
From setup to compounding
|
|
121
|
-
</h2>
|
|
122
|
-
<p className="text-lg text-zinc-500 max-w-2xl mx-auto">
|
|
123
|
-
Three steps to a swarm that gets smarter every day.
|
|
124
|
-
</p>
|
|
125
|
-
</motion.div>
|
|
126
|
-
|
|
127
|
-
<div className="space-y-24">
|
|
128
|
-
{steps.map((step, i) => (
|
|
129
|
-
<motion.div
|
|
130
|
-
key={step.number}
|
|
131
|
-
initial={{ opacity: 0, y: 40 }}
|
|
132
|
-
whileInView={{ opacity: 1, y: 0 }}
|
|
133
|
-
viewport={{ once: true, margin: "-80px" }}
|
|
134
|
-
transition={{ duration: 0.6 }}
|
|
135
|
-
className={`grid lg:grid-cols-2 gap-12 items-center ${
|
|
136
|
-
i % 2 === 1 ? "lg:direction-rtl" : ""
|
|
137
|
-
}`}
|
|
138
|
-
>
|
|
139
|
-
<div className={i % 2 === 1 ? "lg:order-2" : ""}>
|
|
140
|
-
<div className="flex items-center gap-4 mb-4">
|
|
141
|
-
<span className="text-5xl font-bold text-amber-200/80 font-mono">
|
|
142
|
-
{step.number}
|
|
143
|
-
</span>
|
|
144
|
-
<div className="h-px flex-1 bg-gradient-to-r from-amber-200 to-transparent" />
|
|
145
|
-
</div>
|
|
146
|
-
<h3 className="text-2xl sm:text-3xl font-bold text-zinc-900 mb-4">
|
|
147
|
-
{step.title}
|
|
148
|
-
</h3>
|
|
149
|
-
<p className="text-base text-zinc-500 leading-relaxed">
|
|
150
|
-
{step.description}
|
|
151
|
-
</p>
|
|
152
|
-
</div>
|
|
153
|
-
|
|
154
|
-
<div className={`${i % 2 === 1 ? "lg:order-1" : ""}`}>
|
|
155
|
-
<div className="rounded-2xl bg-zinc-50 border border-zinc-100 p-6">
|
|
156
|
-
{step.visual}
|
|
157
|
-
</div>
|
|
158
|
-
</div>
|
|
159
|
-
</motion.div>
|
|
160
|
-
))}
|
|
161
|
-
</div>
|
|
162
|
-
</div>
|
|
163
|
-
</section>
|
|
164
|
-
);
|
|
165
|
-
}
|