@desplega.ai/agent-swarm 2.7.0 → 2.7.1
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/dist/{acp-adapter-ma1js5n7.js → acp-adapter-8dn5tq56.js} +6 -6
- package/dist/{actions-1vhmtvg9.js → actions-3r6gw7dy.js} +18 -18
- package/dist/{amp-adapter-sxqqvmdk.js → amp-adapter-wjtq413p.js} +3 -3
- package/dist/{anthropic-messages-txs190dd.js → anthropic-messages-n4cby1rz.js} +4 -4
- package/dist/{app-mwx1d5a9.js → app-d53yhykk.js} +3 -3
- package/dist/{assistant-yx1p6g82.js → assistant-ksrawj3k.js} +20 -20
- package/dist/{boot-reembed-7h78vmvv.js → boot-reembed-fxfw17m2.js} +10 -3
- package/dist/{boot-reembed-5h37a2c2.js → boot-reembed-k5y5xbj0.js} +15 -8
- package/dist/{boot-scrub-sweep-8mawd4gw.js → boot-scrub-sweep-se41j9fd.js} +3 -3
- package/dist/{boot-seeds-ca84dhnn.js → boot-seeds-r3kwwv8b.js} +4 -4
- package/dist/{claude-adapter-wqt4hfkq.js → claude-adapter-ahmyf231.js} +7 -7
- package/dist/{claude-managed-adapter-6fjqtr2z.js → claude-managed-adapter-5knamegc.js} +3 -3
- package/dist/{claude-managed-setup-rqv98sea.js → claude-managed-setup-mdc7dy6b.js} +2 -2
- package/dist/{claude-sdk-session-f29f3b2x.js → claude-sdk-session-n5wen9zk.js} +8728 -8599
- package/dist/{cli-m5e802r7.js → cli-0dqtv2jg.js} +2 -2
- package/dist/{cli-e1595bgx.js → cli-0tww7dnz.js} +2 -2
- package/dist/{cli-2y7v133v.js → cli-0w4e4v58.js} +7 -7
- package/dist/{cli-d20qvpr2.js → cli-2sjm3t4r.js} +1 -1
- package/dist/{cli-gf2850q7.js → cli-3cywb44q.js} +18 -1
- package/dist/{cli-8wkb09q5.js → cli-3k9jej0c.js} +2 -2
- package/dist/{cli-twctnkng.js → cli-3v2cyqb8.js} +3 -3
- package/dist/{cli-he9gbdx0.js → cli-5qt9vzmq.js} +39 -20
- package/dist/{cli-a6ds2epe.js → cli-5rp1w4cr.js} +1 -1
- package/dist/{cli-6srv653c.js → cli-6vwjsetx.js} +4 -4
- package/dist/{cli-1hhbzkbb.js → cli-6w2yrrc0.js} +8 -8
- package/dist/{cli-f12mr20z.js → cli-75tdydgv.js} +1 -1
- package/dist/{cli-j3y0x2n4.js → cli-8feswf2v.js} +43 -33
- package/dist/{cli-07q03xm2.js → cli-8wd3mbyj.js} +1 -1
- package/dist/{cli-ymjpkxgn.js → cli-9csfthbw.js} +8 -6
- package/dist/{cli-f1e0ptjj.js → cli-b41p764a.js} +21 -2
- package/dist/{cli-kv7sbc2c.js → cli-c1t533hh.js} +3 -3
- package/dist/{cli-54sj64fc.js → cli-c28jxpcv.js} +1 -1
- package/dist/{cli-8mbc9za9.js → cli-cb50g9cd.js} +1 -1
- package/dist/{cli-c668vvcf.js → cli-d8gaphtr.js} +1 -1
- package/dist/{cli-86ehn4s5.js → cli-dgtfysne.js} +2 -2
- package/dist/{cli-sjctjr48.js → cli-dscnhn18.js} +1 -1
- package/dist/{cli-j0ppywdr.js → cli-dv11pgpv.js} +12 -12
- package/dist/{cli-1m9x8dr5.js → cli-ekptgk2m.js} +5 -5
- package/dist/{cli-9gsm2rzp.js → cli-f3mzy662.js} +17 -17
- package/dist/{cli-s0mgx214.js → cli-fk7k8s9x.js} +2 -2
- package/dist/{cli-vbhgkw9h.js → cli-h3e7bhvn.js} +3 -3
- package/dist/{cli-yd2nreqw.js → cli-hkxqdmnb.js} +2 -2
- package/dist/{cli-8wmj18cz.js → cli-hpkvgdad.js} +7 -4
- package/dist/{cli-wqr7cea4.js → cli-hq2v4rr5.js} +37 -9
- package/dist/{cli-sgqm2582.js → cli-k1zb7raw.js} +5 -5
- package/dist/{cli-4rvr7zfx.js → cli-k4awgvzm.js} +5 -0
- package/dist/{cli-ay40dnj3.js → cli-k7d3hvya.js} +2 -2
- package/dist/{cli-j9bpmykh.js → cli-kbtdftbw.js} +5 -5
- package/dist/{cli-x37r7qwf.js → cli-kj69b9tw.js} +25 -5
- package/dist/{cli-gsfk58nw.js → cli-kk9jy4nm.js} +1 -1
- package/dist/{cli-39aet655.js → cli-m52t4cta.js} +1 -1
- package/dist/{cli-h5jeg46p.js → cli-mdadewqp.js} +5 -5
- package/dist/{cli-a89zdqz9.js → cli-nf6k60sn.js} +1 -1
- package/dist/{cli-v6shg7na.js → cli-nzdf09js.js} +1 -1
- package/dist/{cli-rr7zx19j.js → cli-prcyzecg.js} +12 -12
- package/dist/{cli-6a9qfa8b.js → cli-pzafyqtk.js} +118 -48
- package/dist/{cli-48gxjmcz.js → cli-qvaa1gjp.js} +87 -24
- package/dist/{cli-qj442fws.js → cli-rg4b2g6j.js} +1 -1
- package/dist/{cli-aypd09nf.js → cli-rm66vqdz.js} +1 -1
- package/dist/{cli-9pshx6rd.js → cli-s504c3w7.js} +1 -1
- package/dist/{cli-ptfq202x.js → cli-swkx9jm2.js} +3 -3
- package/dist/{cli-m30k9777.js → cli-thsaq4pd.js} +16 -16
- package/dist/{cli-60sty27p.js → cli-twjnyvs8.js} +2 -2
- package/dist/{cli-rd5m70gj.js → cli-typdpe8g.js} +4 -4
- package/dist/{cli-yxbsmx56.js → cli-vg8pwmsd.js} +6 -6
- package/dist/{cli-s09j9vp5.js → cli-vhpckzvp.js} +1 -1
- package/dist/{cli-dv97kdzv.js → cli-wdxgsdz5.js} +2 -2
- package/dist/{cli-7a6p4e65.js → cli-wtjg6je3.js} +1 -1
- package/dist/{cli-b3yzyc57.js → cli-x3cngb1h.js} +44 -12
- package/dist/{cli-6mgdba42.js → cli-xbz6mcg4.js} +2 -2
- package/dist/{cli-2pvzmas1.js → cli-y4tdxsqb.js} +3 -3
- package/dist/{cli-f4dbh7a5.js → cli-yqrsp3ny.js} +7 -7
- package/dist/cli.js +27 -19
- package/dist/{codex-adapter-zk59x2zh.js → codex-adapter-7wepzq15.js} +5 -5
- package/dist/{codex-hook-xyjhvxwd.js → codex-hook-pbdh4xhx.js} +2 -2
- package/dist/{codex-session-runner-kh6s4j3n.js → codex-session-runner-02sb49e4.js} +5 -5
- package/dist/{commands-68et1qv2.js → commands-3rcspxct.js} +2 -2
- package/dist/{controller-fyrbnzg4.js → controller-8ar4avd6.js} +3 -3
- package/dist/{controllers-connect-nep9h2xv.js → controllers-connect-ajvh9h0v.js} +19 -19
- package/dist/{cursor-adapter-yss3pg7t.js → cursor-adapter-gd0sa7bh.js} +1 -1
- package/dist/{db-28gjyvxj.js → db-dv9j7ts5.js} +2 -2
- package/dist/{db-8ftwvzba.js → db-z26vgdvj.js} +3 -3
- package/dist/{dispatcher-hayexmkr.js → dispatcher-8m0htjq8.js} +17 -17
- package/dist/{dsh-adapter-46wawff9.js → dsh-adapter-y8gyk130.js} +1 -1
- package/dist/{e2b-fn3zacvt.js → e2b-74vg9b7e.js} +1 -1
- package/dist/{e2b-222hsajc.js → e2b-jyay8wzn.js} +1 -1
- package/dist/{easter-egg-3d-8d1e0h4m.js → easter-egg-3d-28f880xx.js} +1 -1
- package/dist/{execute-cjrfxfnm.js → execute-9seb79vh.js} +1 -1
- package/dist/{external-channel-xbmxcg09.js → external-channel-smz7jyth.js} +2 -2
- package/dist/{getMachineId-bsd-brn0xym3.js → getMachineId-bsd-whfre6gr.js} +3 -3
- package/dist/{getMachineId-darwin-t339sfxm.js → getMachineId-darwin-5zjynb19.js} +3 -3
- package/dist/{getMachineId-linux-5eq95d8b.js → getMachineId-linux-8mksrrsq.js} +3 -3
- package/dist/{getMachineId-unsupported-qavrtc7j.js → getMachineId-unsupported-fxtqsdt2.js} +3 -3
- package/dist/{getMachineId-win-q7fe1wx7.js → getMachineId-win-nzfmz857.js} +3 -3
- package/dist/{grok-adapter-ag4wks2a.js → grok-adapter-z0nnvtbn.js} +7 -7
- package/dist/handlers-pspryh6g.js +41 -0
- package/dist/{heartbeat-psfvcgwp.js → heartbeat-f928aqyp.js} +20 -20
- package/dist/{hook-cyq4mryn.js → hook-d7c605r4.js} +7 -7
- package/dist/{hook-8pz04697.js → hook-q9hv5xf9.js} +5 -5
- package/dist/{http-haj1nd6k.js → http-q6j4k989.js} +934 -180
- package/dist/{index-z5h22pes.js → index-5nb266jr.js} +17 -17
- package/dist/{index-ysd45kgc.js → index-8fxt5eah.js} +10 -10
- package/dist/{index-zgvqzjsw.js → index-cekzwhez.js} +5 -5
- package/dist/{index-zyq8ct52.js → index-ch0c1xff.js} +17 -17
- package/dist/{index-syvhnvtw.js → index-ebnjhxh1.js} +1 -1
- package/dist/{index-y1ajx04a.js → index-ed8dy8rn.js} +20 -20
- package/dist/{index-jwt2bj6f.js → index-ejqdkkqx.js} +11 -10
- package/dist/{index-dr94zbnh.js → index-farm1zsn.js} +32661 -29443
- package/dist/{index-q52f47pe.js → index-yn1yxg85.js} +1 -1
- package/dist/{keepalive-xdvsamvj.js → keepalive-zzc3hks1.js} +3 -3
- package/dist/{lead-hqg57kdp.js → lead-c0pjcaw4.js} +36 -36
- package/dist/{maintenance-4y2xzh3a.js → maintenance-kqsxzpzx.js} +1 -1
- package/dist/{oauth-refresh-sweep-jd4r7zbs.js → oauth-refresh-sweep-7qt0g55z.js} +2 -2
- package/dist/{onboard-18447q9q.js → onboard-k7x13fqg.js} +118 -5
- package/dist/{opencode-adapter-26b2frdf.js → opencode-adapter-tqvrtter.js} +5 -5
- package/dist/{otel-impl-f9tgr8yw.js → otel-impl-sqkf6k3b.js} +97 -97
- package/dist/{pi-mono-adapter-qn6qbga1.js → pi-mono-adapter-m2qnafxm.js} +63 -9
- package/dist/{pricing-refresh-dw2tgb53.js → pricing-refresh-wkpwhgvs.js} +3 -3
- package/dist/{rbac-roles-s4nwj2m3.js → rbac-roles-dpn0c0wj.js} +7 -4
- package/dist/{rbac-roles-aygm2760.js → rbac-roles-wk7xd6a6.js} +2 -2
- package/dist/{render-v2-yfvdfr0x.js → render-v2-ex2m4g2k.js} +3 -3
- package/dist/{resume-1bmvjbf3.js → resume-725g9b0b.js} +7 -7
- package/dist/{runtime-f7tpzedy.js → runtime-kajas15g.js} +1 -1
- package/dist/{session-access-r5garej6.js → session-access-0j2ezjje.js} +8 -4
- package/dist/{session-source-backfill-424wzv0r.js → session-source-backfill-62202awe.js} +2 -2
- package/dist/{setup-8tygvxkq.js → setup-9sj11ax6.js} +1 -1
- package/dist/{virtual-modules-xsw323b3.js → virtual-modules-c6fcq6zr.js} +2 -2
- package/dist/{work-objects-ggnghpgf.js → work-objects-0y07495y.js} +20 -20
- package/dist/{worker-sqjd1nqf.js → worker-d4q9sqbc.js} +36 -36
- package/openapi.json +1070 -9
- package/package.json +3 -3
- package/src/be/connector-codes.ts +65 -22
- package/src/be/memory/boot-reembed.ts +4 -1
- package/src/be/memory/constants.ts +6 -0
- package/src/be/memory/embedding-recovery.ts +48 -0
- package/src/be/memory/index-content.ts +5 -2
- package/src/be/memory/providers/openai-embedding.ts +65 -14
- package/src/be/memory/task-learning.ts +110 -8
- package/src/be/memory/types.ts +13 -2
- package/src/be/migrations/246_connector_code_kind.sql +11 -0
- package/src/be/onboarding.ts +125 -15
- package/src/be/rbac-roles.ts +4 -1
- package/src/be/scripts/embeddings.ts +2 -2
- package/src/be/seed/agent-fs-provision.ts +75 -14
- package/src/be/swarm-config-guard.ts +3 -0
- package/src/cli.tsx +9 -0
- package/src/comb/config.ts +6 -1
- package/src/commands/onboard/agent-fs-version.ts +5 -0
- package/src/commands/onboard/compose-generator.ts +112 -1
- package/src/commands/onboard/env-generator.ts +9 -0
- package/src/commands/onboard/tei-image.ts +12 -0
- package/src/commands/onboard/types.ts +7 -0
- package/src/commands/onboard.tsx +11 -1
- package/src/commands/runner.ts +14 -1
- package/src/http/agentfs-proxy.ts +369 -0
- package/src/http/all-routes.ts +1 -0
- package/src/http/codex-oauth-device.ts +8 -1
- package/src/http/fs.ts +64 -10
- package/src/http/inbox-state.ts +27 -1
- package/src/http/index.ts +4 -1
- package/src/http/memory.ts +7 -4
- package/src/http/onboarding.ts +139 -11
- package/src/http/session-access.ts +24 -0
- package/src/http/sessions.ts +10 -6
- package/src/http/tasks.ts +85 -11
- package/src/http/telemetry-ui.ts +1 -1
- package/src/http/user-roles.ts +4 -1
- package/src/http/users.ts +272 -3
- package/src/http/utils.ts +22 -3
- package/src/prompts/base-prompt.ts +24 -9
- package/src/prompts/session-templates.ts +26 -2
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/codex-adapter.ts +6 -1
- package/src/providers/cursor-adapter.ts +1 -1
- package/src/providers/pi-mono-adapter.ts +58 -3
- package/src/rbac/legacy-policy.ts +1 -0
- package/src/rbac/permissions.ts +4 -0
- package/src/tests/agent-fs-provision-seeder.test.ts +261 -92
- package/src/tests/agentfs-proxy.test.ts +1106 -0
- package/src/tests/base-prompt.test.ts +69 -2
- package/src/tests/codex-adapter.test.ts +46 -8
- package/src/tests/codex-oauth-device.test.ts +12 -1
- package/src/tests/comb-config-guard.test.ts +20 -0
- package/src/tests/comb-links.test.ts +79 -1
- package/src/tests/comb-status.test.ts +44 -0
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/fixtures/onboard/baseline-states.ts +68 -0
- package/src/tests/fixtures/onboard/content.compose.yml.txt +190 -0
- package/src/tests/fixtures/onboard/content.env.txt +29 -0
- package/src/tests/fixtures/onboard/dev.compose.yml.txt +155 -0
- package/src/tests/fixtures/onboard/dev.env.txt +28 -0
- package/src/tests/fixtures/onboard/full-all.compose.yml.txt +582 -0
- package/src/tests/fixtures/onboard/full-all.env.txt +59 -0
- package/src/tests/fixtures/onboard/full.compose.yml.txt +435 -0
- package/src/tests/fixtures/onboard/full.env.txt +36 -0
- package/src/tests/fixtures/onboard/research.compose.yml.txt +155 -0
- package/src/tests/fixtures/onboard/research.env.txt +28 -0
- package/src/tests/fixtures/onboard/solo.compose.yml.txt +85 -0
- package/src/tests/fixtures/onboard/solo.env.txt +26 -0
- package/src/tests/http-log-scrubbing.test.ts +34 -1
- package/src/tests/http-task-write-ownership.test.ts +5 -1
- package/src/tests/invites-http.test.ts +464 -0
- package/src/tests/memory-embedding-input-cap.test.ts +122 -1
- package/src/tests/memory-embedding-recovery.test.ts +137 -0
- package/src/tests/onboard-compose.test.ts +142 -0
- package/src/tests/onboard-env.test.ts +24 -0
- package/src/tests/onboard-non-interactive.test.ts +29 -0
- package/src/tests/onboard-tei-image.test.ts +36 -0
- package/src/tests/onboarding.test.ts +451 -4
- package/src/tests/openai-embedding-provider.test.ts +105 -2
- package/src/tests/pi-mono-session-cost-on-abort.test.ts +270 -0
- package/src/tests/preload-env.test.ts +4 -0
- package/src/tests/preload.ts +4 -0
- package/src/tests/prompt-template-session.test.ts +19 -3
- package/src/tests/rbac-admission-e2e.test.ts +22 -6
- package/src/tests/rbac-admission.test.ts +342 -4
- package/src/tests/rbac-engine.test.ts +1 -0
- package/src/tests/rbac-roles.test.ts +9 -1
- package/src/tests/send-task-requester-gate.test.ts +64 -3
- package/src/tests/sessions-move.test.ts +39 -1
- package/src/tests/store-progress-learning.test.ts +95 -2
- package/src/tests/whoami-route.test.ts +41 -0
- package/src/tools/inject-learning.ts +1 -1
- package/src/tools/memory-edit.ts +1 -1
- package/src/tools/memory-search.ts +1 -1
- package/src/tools/store-progress.ts +5 -1
- package/src/tools/utils.ts +12 -1
- package/src/utils/constants.ts +39 -0
- package/src/utils/task-attachment-links.ts +15 -3
- package/templates/skills/swarm-docs/content.md +1 -1
- package/dist/handlers-tzmevqb5.js +0 -41
- package/dist/{azure-openai-responses-9kfwhmn7.js → azure-openai-responses-43asa23s.js} +0 -0
- package/dist/{node-vxx896fa.js → node-t28cc56b.js} +0 -0
- package/dist/{openai-codex-responses-79s8xnbh.js → openai-codex-responses-jhr3sjtm.js} +3 -3
- package/dist/{openai-completions-tdbyts0x.js → openai-completions-gs6yn37k.js} +3 -3
- /package/dist/{openai-responses-dm3t5vqp.js → openai-responses-jqm9vwwk.js} +0 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Docker Compose for Agent Swarm
|
|
2
|
+
# Generated by `agent-swarm onboard`
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# docker compose --env-file .env up -d
|
|
6
|
+
#
|
|
7
|
+
# Image version: set AGENT_SWARM_VERSION in .env to a published release.
|
|
8
|
+
# Blank falls back to `latest`, which moves on every commit to main and is
|
|
9
|
+
# not a release. Releases: https://github.com/desplega-ai/agent-swarm/releases
|
|
10
|
+
# Upgrade/rollback (migrations are forward-only, so back up first):
|
|
11
|
+
# https://github.com/desplega-ai/agent-swarm/blob/main/skills/agent-swarm/references/upgrade.md
|
|
12
|
+
|
|
13
|
+
services:
|
|
14
|
+
swarm-api:
|
|
15
|
+
image: "ghcr.io/desplega-ai/agent-swarm:${AGENT_SWARM_VERSION:-latest}"
|
|
16
|
+
container_name: swarm-api
|
|
17
|
+
pull_policy: always
|
|
18
|
+
stop_grace_period: 60s
|
|
19
|
+
|
|
20
|
+
environment:
|
|
21
|
+
- API_KEY=${API_KEY}
|
|
22
|
+
- INSTALL_METHOD=${INSTALL_METHOD}
|
|
23
|
+
- INSTALL_PRESET=${INSTALL_PRESET:-}
|
|
24
|
+
- MEMORY_HYBRID_SEARCH=${MEMORY_HYBRID_SEARCH-1}
|
|
25
|
+
- MEMORY_GRAPH_EXPANSION=${MEMORY_GRAPH_EXPANSION-1}
|
|
26
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
27
|
+
- MEMORY_DEMOTION_FLOOR=${MEMORY_DEMOTION_FLOOR-1.0}
|
|
28
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
29
|
+
- MCP_BASE_URL=http://localhost:3013
|
|
30
|
+
- APP_URL=https://app.agent-swarm.dev
|
|
31
|
+
|
|
32
|
+
ports:
|
|
33
|
+
- "3013:3013"
|
|
34
|
+
|
|
35
|
+
volumes:
|
|
36
|
+
- swarm_data:/app/data
|
|
37
|
+
|
|
38
|
+
healthcheck:
|
|
39
|
+
test: ["CMD-SHELL", "curl -f http://localhost:3013/health || exit 1"]
|
|
40
|
+
interval: 10s
|
|
41
|
+
timeout: 5s
|
|
42
|
+
retries: 3
|
|
43
|
+
start_period: 15s
|
|
44
|
+
|
|
45
|
+
restart: unless-stopped
|
|
46
|
+
|
|
47
|
+
lead:
|
|
48
|
+
image: "ghcr.io/desplega-ai/agent-swarm-worker:${AGENT_SWARM_VERSION:-latest}"
|
|
49
|
+
container_name: swarm-lead
|
|
50
|
+
pull_policy: always
|
|
51
|
+
stop_grace_period: 60s
|
|
52
|
+
|
|
53
|
+
depends_on:
|
|
54
|
+
swarm-api:
|
|
55
|
+
condition: service_healthy
|
|
56
|
+
|
|
57
|
+
environment:
|
|
58
|
+
- HARNESS_PROVIDER=${HARNESS_PROVIDER}
|
|
59
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
60
|
+
- API_KEY=${API_KEY}
|
|
61
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
62
|
+
- AGENT_ID=00000000-0000-4000-8000-000000000001
|
|
63
|
+
- AGENT_NAME=Lead
|
|
64
|
+
- AGENT_ROLE=lead
|
|
65
|
+
- TEMPLATE_ID=official/lead
|
|
66
|
+
- MCP_BASE_URL=http://swarm-api:3013
|
|
67
|
+
- YOLO=true
|
|
68
|
+
- SWARM_URL=http://swarm-api:3013
|
|
69
|
+
- MAX_CONCURRENT_TASKS=2
|
|
70
|
+
|
|
71
|
+
ports:
|
|
72
|
+
- "3201:3000"
|
|
73
|
+
|
|
74
|
+
volumes:
|
|
75
|
+
- swarm_logs:/logs
|
|
76
|
+
- swarm_shared:/workspace/shared
|
|
77
|
+
- swarm_lead:/workspace/personal
|
|
78
|
+
|
|
79
|
+
restart: unless-stopped
|
|
80
|
+
|
|
81
|
+
worker-content-writer:
|
|
82
|
+
image: "ghcr.io/desplega-ai/agent-swarm-worker:${AGENT_SWARM_VERSION:-latest}"
|
|
83
|
+
container_name: swarm-worker-content-writer
|
|
84
|
+
pull_policy: always
|
|
85
|
+
stop_grace_period: 60s
|
|
86
|
+
|
|
87
|
+
depends_on:
|
|
88
|
+
swarm-api:
|
|
89
|
+
condition: service_healthy
|
|
90
|
+
|
|
91
|
+
environment:
|
|
92
|
+
- HARNESS_PROVIDER=${HARNESS_PROVIDER}
|
|
93
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
94
|
+
- API_KEY=${API_KEY}
|
|
95
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
96
|
+
- AGENT_ID=00000000-0000-4000-8000-000000000002
|
|
97
|
+
- AGENT_NAME=Content Writer
|
|
98
|
+
- AGENT_ROLE=worker
|
|
99
|
+
- TEMPLATE_ID=official/content-writer
|
|
100
|
+
- MCP_BASE_URL=http://swarm-api:3013
|
|
101
|
+
- YOLO=true
|
|
102
|
+
- SWARM_URL=http://swarm-api:3013
|
|
103
|
+
- MAX_CONCURRENT_TASKS=1
|
|
104
|
+
|
|
105
|
+
ports:
|
|
106
|
+
- "3202:3000"
|
|
107
|
+
|
|
108
|
+
volumes:
|
|
109
|
+
- swarm_logs:/logs
|
|
110
|
+
- swarm_shared:/workspace/shared
|
|
111
|
+
- swarm_worker_content_writer:/workspace/personal
|
|
112
|
+
|
|
113
|
+
restart: unless-stopped
|
|
114
|
+
|
|
115
|
+
worker-content-reviewer:
|
|
116
|
+
image: "ghcr.io/desplega-ai/agent-swarm-worker:${AGENT_SWARM_VERSION:-latest}"
|
|
117
|
+
container_name: swarm-worker-content-reviewer
|
|
118
|
+
pull_policy: always
|
|
119
|
+
stop_grace_period: 60s
|
|
120
|
+
|
|
121
|
+
depends_on:
|
|
122
|
+
swarm-api:
|
|
123
|
+
condition: service_healthy
|
|
124
|
+
|
|
125
|
+
environment:
|
|
126
|
+
- HARNESS_PROVIDER=${HARNESS_PROVIDER}
|
|
127
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
128
|
+
- API_KEY=${API_KEY}
|
|
129
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
130
|
+
- AGENT_ID=00000000-0000-4000-8000-000000000003
|
|
131
|
+
- AGENT_NAME=Content Reviewer
|
|
132
|
+
- AGENT_ROLE=worker
|
|
133
|
+
- TEMPLATE_ID=official/content-reviewer
|
|
134
|
+
- MCP_BASE_URL=http://swarm-api:3013
|
|
135
|
+
- YOLO=true
|
|
136
|
+
- SWARM_URL=http://swarm-api:3013
|
|
137
|
+
- MAX_CONCURRENT_TASKS=1
|
|
138
|
+
|
|
139
|
+
ports:
|
|
140
|
+
- "3203:3000"
|
|
141
|
+
|
|
142
|
+
volumes:
|
|
143
|
+
- swarm_logs:/logs
|
|
144
|
+
- swarm_shared:/workspace/shared
|
|
145
|
+
- swarm_worker_content_reviewer:/workspace/personal
|
|
146
|
+
|
|
147
|
+
restart: unless-stopped
|
|
148
|
+
|
|
149
|
+
worker-content-strategist:
|
|
150
|
+
image: "ghcr.io/desplega-ai/agent-swarm-worker:${AGENT_SWARM_VERSION:-latest}"
|
|
151
|
+
container_name: swarm-worker-content-strategist
|
|
152
|
+
pull_policy: always
|
|
153
|
+
stop_grace_period: 60s
|
|
154
|
+
|
|
155
|
+
depends_on:
|
|
156
|
+
swarm-api:
|
|
157
|
+
condition: service_healthy
|
|
158
|
+
|
|
159
|
+
environment:
|
|
160
|
+
- HARNESS_PROVIDER=${HARNESS_PROVIDER}
|
|
161
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
162
|
+
- API_KEY=${API_KEY}
|
|
163
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
164
|
+
- AGENT_ID=00000000-0000-4000-8000-000000000004
|
|
165
|
+
- AGENT_NAME=Content Strategist
|
|
166
|
+
- AGENT_ROLE=worker
|
|
167
|
+
- TEMPLATE_ID=official/content-strategist
|
|
168
|
+
- MCP_BASE_URL=http://swarm-api:3013
|
|
169
|
+
- YOLO=true
|
|
170
|
+
- SWARM_URL=http://swarm-api:3013
|
|
171
|
+
- MAX_CONCURRENT_TASKS=1
|
|
172
|
+
|
|
173
|
+
ports:
|
|
174
|
+
- "3204:3000"
|
|
175
|
+
|
|
176
|
+
volumes:
|
|
177
|
+
- swarm_logs:/logs
|
|
178
|
+
- swarm_shared:/workspace/shared
|
|
179
|
+
- swarm_worker_content_strategist:/workspace/personal
|
|
180
|
+
|
|
181
|
+
restart: unless-stopped
|
|
182
|
+
|
|
183
|
+
volumes:
|
|
184
|
+
swarm_data:
|
|
185
|
+
swarm_logs:
|
|
186
|
+
swarm_shared:
|
|
187
|
+
swarm_lead:
|
|
188
|
+
swarm_worker_content_writer:
|
|
189
|
+
swarm_worker_content_reviewer:
|
|
190
|
+
swarm_worker_content_strategist:
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# === Core ===
|
|
2
|
+
API_KEY=example-test-api-key
|
|
3
|
+
MCP_BASE_URL=http://localhost:3013
|
|
4
|
+
APP_URL=https://app.agent-swarm.dev
|
|
5
|
+
# Pin a release, e.g. AGENT_SWARM_VERSION=1.150.0. Blank tracks `latest`.
|
|
6
|
+
AGENT_SWARM_VERSION=
|
|
7
|
+
INSTALL_METHOD=onboard_noninteractive
|
|
8
|
+
INSTALL_PRESET=content
|
|
9
|
+
|
|
10
|
+
# New-deployment memory preset: retrieval, citation ratings, self-rating hints.
|
|
11
|
+
# Set MEMORY_RATERS= to disable all raters; leave SKIP_SESSION_SUMMARY unset.
|
|
12
|
+
MEMORY_HYBRID_SEARCH=1
|
|
13
|
+
MEMORY_GRAPH_EXPANSION=1
|
|
14
|
+
MEMORY_RATERS=implicit-citation,explicit-self
|
|
15
|
+
MEMORY_DEMOTION_FLOOR=1.0
|
|
16
|
+
|
|
17
|
+
# === Authentication ===
|
|
18
|
+
HARNESS_PROVIDER=claude
|
|
19
|
+
CLAUDE_CODE_OAUTH_TOKEN=example-test-oauth
|
|
20
|
+
|
|
21
|
+
# === Integrations ===
|
|
22
|
+
GITHUB_DISABLE=true
|
|
23
|
+
SLACK_DISABLE=true
|
|
24
|
+
|
|
25
|
+
# === Agent IDs (for reference) ===
|
|
26
|
+
# lead = 00000000-0000-4000-8000-000000000001
|
|
27
|
+
# worker-content-writer = 00000000-0000-4000-8000-000000000002
|
|
28
|
+
# worker-content-reviewer = 00000000-0000-4000-8000-000000000003
|
|
29
|
+
# worker-content-strategist = 00000000-0000-4000-8000-000000000004
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Docker Compose for Agent Swarm
|
|
2
|
+
# Generated by `agent-swarm onboard`
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
# docker compose --env-file .env up -d
|
|
6
|
+
#
|
|
7
|
+
# Image version: set AGENT_SWARM_VERSION in .env to a published release.
|
|
8
|
+
# Blank falls back to `latest`, which moves on every commit to main and is
|
|
9
|
+
# not a release. Releases: https://github.com/desplega-ai/agent-swarm/releases
|
|
10
|
+
# Upgrade/rollback (migrations are forward-only, so back up first):
|
|
11
|
+
# https://github.com/desplega-ai/agent-swarm/blob/main/skills/agent-swarm/references/upgrade.md
|
|
12
|
+
|
|
13
|
+
services:
|
|
14
|
+
swarm-api:
|
|
15
|
+
image: "ghcr.io/desplega-ai/agent-swarm:${AGENT_SWARM_VERSION:-latest}"
|
|
16
|
+
container_name: swarm-api
|
|
17
|
+
pull_policy: always
|
|
18
|
+
stop_grace_period: 60s
|
|
19
|
+
|
|
20
|
+
environment:
|
|
21
|
+
- API_KEY=${API_KEY}
|
|
22
|
+
- INSTALL_METHOD=${INSTALL_METHOD}
|
|
23
|
+
- INSTALL_PRESET=${INSTALL_PRESET:-}
|
|
24
|
+
- MEMORY_HYBRID_SEARCH=${MEMORY_HYBRID_SEARCH-1}
|
|
25
|
+
- MEMORY_GRAPH_EXPANSION=${MEMORY_GRAPH_EXPANSION-1}
|
|
26
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
27
|
+
- MEMORY_DEMOTION_FLOOR=${MEMORY_DEMOTION_FLOOR-1.0}
|
|
28
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
29
|
+
- MCP_BASE_URL=http://localhost:3013
|
|
30
|
+
- APP_URL=https://app.agent-swarm.dev
|
|
31
|
+
|
|
32
|
+
ports:
|
|
33
|
+
- "3013:3013"
|
|
34
|
+
|
|
35
|
+
volumes:
|
|
36
|
+
- swarm_data:/app/data
|
|
37
|
+
|
|
38
|
+
healthcheck:
|
|
39
|
+
test: ["CMD-SHELL", "curl -f http://localhost:3013/health || exit 1"]
|
|
40
|
+
interval: 10s
|
|
41
|
+
timeout: 5s
|
|
42
|
+
retries: 3
|
|
43
|
+
start_period: 15s
|
|
44
|
+
|
|
45
|
+
restart: unless-stopped
|
|
46
|
+
|
|
47
|
+
lead:
|
|
48
|
+
image: "ghcr.io/desplega-ai/agent-swarm-worker:${AGENT_SWARM_VERSION:-latest}"
|
|
49
|
+
container_name: swarm-lead
|
|
50
|
+
pull_policy: always
|
|
51
|
+
stop_grace_period: 60s
|
|
52
|
+
|
|
53
|
+
depends_on:
|
|
54
|
+
swarm-api:
|
|
55
|
+
condition: service_healthy
|
|
56
|
+
|
|
57
|
+
environment:
|
|
58
|
+
- HARNESS_PROVIDER=${HARNESS_PROVIDER}
|
|
59
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
60
|
+
- API_KEY=${API_KEY}
|
|
61
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
62
|
+
- AGENT_ID=00000000-0000-4000-8000-000000000001
|
|
63
|
+
- AGENT_NAME=Lead
|
|
64
|
+
- AGENT_ROLE=lead
|
|
65
|
+
- TEMPLATE_ID=official/lead
|
|
66
|
+
- MCP_BASE_URL=http://swarm-api:3013
|
|
67
|
+
- YOLO=true
|
|
68
|
+
- SWARM_URL=http://swarm-api:3013
|
|
69
|
+
- MAX_CONCURRENT_TASKS=2
|
|
70
|
+
|
|
71
|
+
ports:
|
|
72
|
+
- "3201:3000"
|
|
73
|
+
|
|
74
|
+
volumes:
|
|
75
|
+
- swarm_logs:/logs
|
|
76
|
+
- swarm_shared:/workspace/shared
|
|
77
|
+
- swarm_lead:/workspace/personal
|
|
78
|
+
|
|
79
|
+
restart: unless-stopped
|
|
80
|
+
|
|
81
|
+
worker-coder-1:
|
|
82
|
+
image: "ghcr.io/desplega-ai/agent-swarm-worker:${AGENT_SWARM_VERSION:-latest}"
|
|
83
|
+
container_name: swarm-worker-coder-1
|
|
84
|
+
pull_policy: always
|
|
85
|
+
stop_grace_period: 60s
|
|
86
|
+
|
|
87
|
+
depends_on:
|
|
88
|
+
swarm-api:
|
|
89
|
+
condition: service_healthy
|
|
90
|
+
|
|
91
|
+
environment:
|
|
92
|
+
- HARNESS_PROVIDER=${HARNESS_PROVIDER}
|
|
93
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
94
|
+
- API_KEY=${API_KEY}
|
|
95
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
96
|
+
- AGENT_ID=00000000-0000-4000-8000-000000000002
|
|
97
|
+
- AGENT_NAME=Coder 1
|
|
98
|
+
- AGENT_ROLE=worker
|
|
99
|
+
- TEMPLATE_ID=official/coder
|
|
100
|
+
- MCP_BASE_URL=http://swarm-api:3013
|
|
101
|
+
- YOLO=true
|
|
102
|
+
- SWARM_URL=http://swarm-api:3013
|
|
103
|
+
- MAX_CONCURRENT_TASKS=1
|
|
104
|
+
|
|
105
|
+
ports:
|
|
106
|
+
- "3202:3000"
|
|
107
|
+
|
|
108
|
+
volumes:
|
|
109
|
+
- swarm_logs:/logs
|
|
110
|
+
- swarm_shared:/workspace/shared
|
|
111
|
+
- swarm_worker_coder_1:/workspace/personal
|
|
112
|
+
|
|
113
|
+
restart: unless-stopped
|
|
114
|
+
|
|
115
|
+
worker-coder-2:
|
|
116
|
+
image: "ghcr.io/desplega-ai/agent-swarm-worker:${AGENT_SWARM_VERSION:-latest}"
|
|
117
|
+
container_name: swarm-worker-coder-2
|
|
118
|
+
pull_policy: always
|
|
119
|
+
stop_grace_period: 60s
|
|
120
|
+
|
|
121
|
+
depends_on:
|
|
122
|
+
swarm-api:
|
|
123
|
+
condition: service_healthy
|
|
124
|
+
|
|
125
|
+
environment:
|
|
126
|
+
- HARNESS_PROVIDER=${HARNESS_PROVIDER}
|
|
127
|
+
- CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN}
|
|
128
|
+
- API_KEY=${API_KEY}
|
|
129
|
+
- MEMORY_RATERS=${MEMORY_RATERS-implicit-citation,explicit-self}
|
|
130
|
+
- AGENT_ID=00000000-0000-4000-8000-000000000003
|
|
131
|
+
- AGENT_NAME=Coder 2
|
|
132
|
+
- AGENT_ROLE=worker
|
|
133
|
+
- TEMPLATE_ID=official/coder
|
|
134
|
+
- MCP_BASE_URL=http://swarm-api:3013
|
|
135
|
+
- YOLO=true
|
|
136
|
+
- SWARM_URL=http://swarm-api:3013
|
|
137
|
+
- MAX_CONCURRENT_TASKS=1
|
|
138
|
+
|
|
139
|
+
ports:
|
|
140
|
+
- "3203:3000"
|
|
141
|
+
|
|
142
|
+
volumes:
|
|
143
|
+
- swarm_logs:/logs
|
|
144
|
+
- swarm_shared:/workspace/shared
|
|
145
|
+
- swarm_worker_coder_2:/workspace/personal
|
|
146
|
+
|
|
147
|
+
restart: unless-stopped
|
|
148
|
+
|
|
149
|
+
volumes:
|
|
150
|
+
swarm_data:
|
|
151
|
+
swarm_logs:
|
|
152
|
+
swarm_shared:
|
|
153
|
+
swarm_lead:
|
|
154
|
+
swarm_worker_coder_1:
|
|
155
|
+
swarm_worker_coder_2:
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# === Core ===
|
|
2
|
+
API_KEY=example-test-api-key
|
|
3
|
+
MCP_BASE_URL=http://localhost:3013
|
|
4
|
+
APP_URL=https://app.agent-swarm.dev
|
|
5
|
+
# Pin a release, e.g. AGENT_SWARM_VERSION=1.150.0. Blank tracks `latest`.
|
|
6
|
+
AGENT_SWARM_VERSION=
|
|
7
|
+
INSTALL_METHOD=onboard_noninteractive
|
|
8
|
+
INSTALL_PRESET=dev
|
|
9
|
+
|
|
10
|
+
# New-deployment memory preset: retrieval, citation ratings, self-rating hints.
|
|
11
|
+
# Set MEMORY_RATERS= to disable all raters; leave SKIP_SESSION_SUMMARY unset.
|
|
12
|
+
MEMORY_HYBRID_SEARCH=1
|
|
13
|
+
MEMORY_GRAPH_EXPANSION=1
|
|
14
|
+
MEMORY_RATERS=implicit-citation,explicit-self
|
|
15
|
+
MEMORY_DEMOTION_FLOOR=1.0
|
|
16
|
+
|
|
17
|
+
# === Authentication ===
|
|
18
|
+
HARNESS_PROVIDER=claude
|
|
19
|
+
CLAUDE_CODE_OAUTH_TOKEN=example-test-oauth
|
|
20
|
+
|
|
21
|
+
# === Integrations ===
|
|
22
|
+
GITHUB_DISABLE=true
|
|
23
|
+
SLACK_DISABLE=true
|
|
24
|
+
|
|
25
|
+
# === Agent IDs (for reference) ===
|
|
26
|
+
# lead = 00000000-0000-4000-8000-000000000001
|
|
27
|
+
# worker-coder-1 = 00000000-0000-4000-8000-000000000002
|
|
28
|
+
# worker-coder-2 = 00000000-0000-4000-8000-000000000003
|