@desplega.ai/agent-swarm 2.6.0 → 2.7.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 +2 -0
- package/dist/{acp-adapter-dgfakfpw.js → acp-adapter-ma1js5n7.js} +6 -6
- package/dist/{actions-fbqma8aa.js → actions-1vhmtvg9.js} +18 -18
- package/dist/{amp-adapter-en0jy6hs.js → amp-adapter-sxqqvmdk.js} +3 -3
- package/dist/{app-k8a5cgpp.js → app-mwx1d5a9.js} +3 -3
- package/dist/{assistant-a16433gr.js → assistant-yx1p6g82.js} +20 -20
- package/dist/{boot-reembed-f4nn561n.js → boot-reembed-5h37a2c2.js} +1 -1
- package/dist/{boot-reembed-6c1sjfnr.js → boot-reembed-7h78vmvv.js} +2 -1
- package/dist/{boot-scrub-sweep-d4w9gajf.js → boot-scrub-sweep-8mawd4gw.js} +3 -3
- package/dist/{boot-seeds-9bmkspyw.js → boot-seeds-ca84dhnn.js} +4 -4
- package/dist/{claude-adapter-nys1kjxa.js → claude-adapter-wqt4hfkq.js} +7 -7
- package/dist/{claude-managed-adapter-55207973.js → claude-managed-adapter-6fjqtr2z.js} +2 -2
- package/dist/{claude-managed-setup-3cm35gey.js → claude-managed-setup-rqv98sea.js} +2 -2
- package/dist/{claude-sdk-session-nw5yd8cp.js → claude-sdk-session-f29f3b2x.js} +7 -7
- package/dist/{cli-sxgtf5fw.js → cli-07q03xm2.js} +1 -1
- package/dist/{cli-k21gx5ht.js → cli-1hhbzkbb.js} +6 -6
- package/dist/{cli-v49fkghp.js → cli-1m9x8dr5.js} +1 -1
- package/dist/{cli-24j1jeeb.js → cli-2pvzmas1.js} +3 -3
- package/dist/{cli-w2656ka1.js → cli-2y7v133v.js} +7 -7
- package/dist/{cli-g8ka5j4j.js → cli-48gxjmcz.js} +94 -36
- package/dist/{cli-2sjhpsns.js → cli-54sj64fc.js} +1 -1
- package/dist/{cli-aj8djyqt.js → cli-60sty27p.js} +2 -2
- package/dist/{cli-4hxrf0p4.js → cli-6a9qfa8b.js} +308 -47
- package/dist/{cli-n7asmce6.js → cli-6mgdba42.js} +3 -3
- package/dist/{cli-gf95q3bm.js → cli-6srv653c.js} +3 -3
- package/dist/{cli-9abdgn5t.js → cli-86ehn4s5.js} +3 -3
- package/dist/{cli-bqztfyve.js → cli-8mbc9za9.js} +1 -1
- package/dist/{cli-a2rr0fmg.js → cli-8wmj18cz.js} +1 -1
- package/dist/{cli-c2habvsf.js → cli-9gsm2rzp.js} +8 -8
- package/dist/{cli-4rf0f5vg.js → cli-9pshx6rd.js} +4 -2
- package/dist/{cli-abkm71vr.js → cli-a6ds2epe.js} +1 -1
- package/dist/{cli-esakngh8.js → cli-a89zdqz9.js} +1 -1
- package/dist/{cli-3ndmpxxv.js → cli-ay40dnj3.js} +2 -2
- package/dist/{cli-kf4jree9.js → cli-aypd09nf.js} +1 -1
- package/dist/{cli-6y51ryva.js → cli-b3yzyc57.js} +1 -1
- package/dist/{cli-ag2yrnt5.js → cli-c668vvcf.js} +2 -2
- package/dist/{cli-5sckpqcx.js → cli-d20qvpr2.js} +1 -1
- package/dist/{cli-a34pr3w1.js → cli-e1595bgx.js} +2 -2
- package/dist/{cli-m70bajzr.js → cli-f12mr20z.js} +1 -1
- package/dist/{cli-dqygeeh5.js → cli-f1e0ptjj.js} +10 -1
- package/dist/{cli-mvjz5an3.js → cli-f4dbh7a5.js} +7 -7
- package/dist/{cli-az25fn5f.js → cli-gsfk58nw.js} +2 -2
- package/dist/{cli-1tem6ns9.js → cli-gt4h8cxw.js} +3 -2
- package/dist/{cli-cz37jqss.js → cli-h5jeg46p.js} +2 -2
- package/dist/{cli-emhjcj2y.js → cli-he9gbdx0.js} +60 -10
- package/dist/{cli-3fwqy71j.js → cli-j0ppywdr.js} +38 -31
- package/dist/{cli-5rj83bam.js → cli-j3y0x2n4.js} +34 -33
- package/dist/{cli-3gfvmzht.js → cli-j9bpmykh.js} +73 -25
- package/dist/{cli-m5a9m0ak.js → cli-kv7sbc2c.js} +3 -3
- package/dist/{cli-g20jjwt4.js → cli-m30k9777.js} +12 -12
- package/dist/{cli-683y0b3a.js → cli-m5e802r7.js} +2 -2
- package/dist/{cli-nn6vx2mq.js → cli-ptfq202x.js} +5 -3
- package/dist/{cli-d2dpf95n.js → cli-qj442fws.js} +1 -1
- package/dist/{cli-03gg9pd1.js → cli-rd5m70gj.js} +4 -4
- package/dist/{cli-gnsb1zxa.js → cli-s09j9vp5.js} +1 -1
- package/dist/{cli-zqne1qcj.js → cli-s0mgx214.js} +2 -2
- package/dist/{cli-sqma6vw1.js → cli-sgqm2582.js} +5 -5
- package/dist/{cli-nq677csy.js → cli-sjctjr48.js} +1 -1
- package/dist/{cli-3aqd4jaa.js → cli-twctnkng.js} +3 -3
- package/dist/{cli-j6rktc91.js → cli-v6shg7na.js} +1 -1
- package/dist/{cli-7enjwya9.js → cli-vz78s5wm.js} +1 -1
- package/dist/{cli-art7c1zh.js → cli-wqr7cea4.js} +4 -4
- package/dist/{cli-hfeb68z4.js → cli-x37r7qwf.js} +11 -3
- package/dist/{cli-ffvsj2qw.js → cli-yd2nreqw.js} +2 -2
- package/dist/{cli-ca6banwz.js → cli-ymjpkxgn.js} +6 -6
- package/dist/{cli-mtnj4fwa.js → cli-yxbsmx56.js} +5 -5
- package/dist/cli.js +18 -16
- package/dist/{codex-adapter-d95q4qsn.js → codex-adapter-zk59x2zh.js} +5 -5
- package/dist/{codex-hook-brpnycn5.js → codex-hook-xyjhvxwd.js} +1 -1
- package/dist/{codex-session-runner-gdwd8h0c.js → codex-session-runner-kh6s4j3n.js} +5 -5
- package/dist/{commands-jqmgk54b.js → commands-68et1qv2.js} +2 -2
- package/dist/{controller-z3jq589f.js → controller-fyrbnzg4.js} +2 -2
- package/dist/{controllers-connect-r2za39ef.js → controllers-connect-nep9h2xv.js} +19 -19
- package/dist/{cursor-adapter-4mr4jgkw.js → cursor-adapter-yss3pg7t.js} +1 -1
- package/dist/{db-w36wwb5g.js → db-28gjyvxj.js} +2 -2
- package/dist/{db-ppv2tze7.js → db-8ftwvzba.js} +3 -3
- package/dist/{dispatcher-pv5h77vf.js → dispatcher-hayexmkr.js} +17 -17
- package/dist/{dsh-adapter-d4pdpb3r.js → dsh-adapter-46wawff9.js} +1 -1
- package/dist/{easter-egg-3d-4sp4dvmc.js → easter-egg-3d-8d1e0h4m.js} +1 -1
- package/dist/{execute-jev839y1.js → execute-cjrfxfnm.js} +1 -1
- package/dist/{external-channel-y6nkzhnn.js → external-channel-xbmxcg09.js} +2 -2
- package/dist/{grok-adapter-t08b9ntm.js → grok-adapter-ag4wks2a.js} +7 -7
- package/dist/handlers-tzmevqb5.js +41 -0
- package/dist/{heartbeat-vn31xwdk.js → heartbeat-psfvcgwp.js} +20 -20
- package/dist/{hook-6d0zbvvt.js → hook-8pz04697.js} +5 -5
- package/dist/{hook-cpjs8q51.js → hook-cyq4mryn.js} +6 -6
- package/dist/{http-9c6medda.js → http-haj1nd6k.js} +109 -114
- package/dist/{index-qhjf2htm.js → index-jwt2bj6f.js} +261 -96
- package/dist/{index-g6k9tctj.js → index-q52f47pe.js} +1 -1
- package/dist/{index-pkma1yf8.js → index-syvhnvtw.js} +1 -1
- package/dist/{index-yqgbfgaj.js → index-y1ajx04a.js} +20 -20
- package/dist/{index-k0yt1tvq.js → index-z5h22pes.js} +17 -17
- package/dist/{index-38t35h0n.js → index-zyq8ct52.js} +17 -17
- package/dist/{keepalive-em0117bp.js → keepalive-xdvsamvj.js} +3 -3
- package/dist/{lead-23e7z59t.js → lead-hqg57kdp.js} +35 -35
- package/dist/{maintenance-kbme3qy9.js → maintenance-4y2xzh3a.js} +1 -1
- package/dist/{oauth-refresh-sweep-xysj4yse.js → oauth-refresh-sweep-jd4r7zbs.js} +8 -3
- package/dist/{onboard-p6q0vz97.js → onboard-18447q9q.js} +5 -5
- package/dist/{opencode-adapter-esv3k9yn.js → opencode-adapter-26b2frdf.js} +5 -5
- package/dist/{otel-impl-54qhqh1z.js → otel-impl-f9tgr8yw.js} +1 -1
- package/dist/{pi-mono-adapter-mymbwhj0.js → pi-mono-adapter-qn6qbga1.js} +33 -12
- package/dist/{pricing-refresh-yb75wv33.js → pricing-refresh-dw2tgb53.js} +3 -3
- package/dist/{rbac-roles-1vp2mw4p.js → rbac-roles-aygm2760.js} +2 -2
- package/dist/{rbac-roles-dexhc9x8.js → rbac-roles-s4nwj2m3.js} +1 -1
- package/dist/{render-v2-tjay5hhf.js → render-v2-yfvdfr0x.js} +3 -3
- package/dist/{resume-8ayf37g5.js → resume-1bmvjbf3.js} +7 -7
- package/dist/{runtime-hqe5cqcd.js → runtime-f7tpzedy.js} +1 -1
- package/dist/{session-access-fdhp987s.js → session-access-r5garej6.js} +4 -4
- package/dist/{session-source-backfill-qgtc86z1.js → session-source-backfill-424wzv0r.js} +2 -2
- package/dist/{setup-4rrmqcq3.js → setup-8tygvxkq.js} +1 -1
- package/dist/{virtual-modules-52km00d6.js → virtual-modules-xsw323b3.js} +2 -2
- package/dist/{work-objects-p28fgd70.js → work-objects-ggnghpgf.js} +20 -20
- package/dist/{worker-e3w7vye1.js → worker-sqjd1nqf.js} +35 -35
- package/openapi.json +69 -1
- package/package.json +5 -3
- package/src/be/automation-preflight.ts +2 -0
- package/src/be/db/api-keys.ts +9 -0
- package/src/be/db/workflow-runs.ts +36 -5
- package/src/be/db.ts +80 -22
- package/src/be/memory/task-learning.ts +155 -0
- package/src/be/migrations/245_script_executor.sql +3 -0
- package/src/be/oauth-refresh-sweep.ts +2 -1
- package/src/be/scripts/boot-reembed.ts +2 -0
- package/src/be/scripts/db.ts +14 -4
- package/src/be/scripts/embeddings.ts +2 -0
- package/src/be/scripts/run-saved.ts +1 -0
- package/src/be/scripts/typecheck.ts +9 -3
- package/src/be/seed-skills/index.ts +7 -0
- package/src/commands/onboard/compose-generator.ts +5 -3
- package/src/commands/provider-credentials.ts +2 -1
- package/src/heartbeat/heartbeat.ts +14 -1
- package/src/heartbeat/script-runner-probe.ts +47 -0
- package/src/http/api-keys.ts +24 -9
- package/src/http/idempotency-key.ts +1 -1
- package/src/http/index.ts +3 -3
- package/src/http/pages-public.ts +38 -5
- package/src/http/scripts.ts +27 -0
- package/src/http/workflows.ts +10 -0
- package/src/http/x.ts +5 -0
- package/src/prompts/base-prompt.ts +21 -1
- package/src/prompts/session-templates.ts +17 -3
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/dsh-adapter.ts +1 -1
- package/src/providers/pi-mono-adapter.ts +41 -11
- package/src/scheduler/scheduler.ts +2 -1
- package/src/scripts-runtime/eval-harness.ts +8 -1
- package/src/scripts-runtime/executors/native.ts +22 -16
- package/src/scripts-runtime/executors/quickjs-prelude.ts +103 -1
- package/src/scripts-runtime/executors/quickjs-runner.ts +2 -1
- package/src/scripts-runtime/executors/quickjs.ts +7 -0
- package/src/scripts-runtime/executors/registry.ts +32 -0
- package/src/scripts-runtime/executors/types.ts +7 -0
- package/src/scripts-runtime/host-validated-args.ts +133 -0
- package/src/scripts-runtime/loader.ts +30 -3
- package/src/scripts-runtime/swarm-sdk.ts +9 -2
- package/src/scripts-runtime/types/stdlib.d.ts +9 -1
- package/src/scripts-runtime/types/swarm-sdk.d.ts +9 -1
- package/src/tests/api-key-status-by-suffix.test.ts +242 -0
- package/src/tests/base-prompt.test.ts +70 -2
- package/src/tests/community-linear-delivery-loop.test.ts +2099 -0
- package/src/tests/credential-check.test.ts +4 -2
- package/src/tests/docs-index.test.ts +135 -0
- package/src/tests/dsh-adapter.test.ts +1 -1
- package/src/tests/fetch-resolved-env.test.ts +16 -2
- package/src/tests/heartbeat-checklist.test.ts +89 -0
- package/src/tests/heartbeat-script-runner-probe.test.ts +83 -0
- package/src/tests/oauth-refresh-sweep.test.ts +34 -1
- package/src/tests/onboard-compose.test.ts +20 -0
- package/src/tests/opencode-adapter.test.ts +2 -1
- package/src/tests/pages-frame-ancestors.test.ts +162 -0
- package/src/tests/pi-codemode.test.ts +2 -1
- package/src/tests/pi-mono-adapter.test.ts +54 -0
- package/src/tests/pi-native-mcp.test.ts +13 -1
- package/src/tests/pi-tool-exposure.test.ts +8 -8
- package/src/tests/probe-tool-schema-tokens.test.ts +144 -0
- package/src/tests/prompt-template-session.test.ts +4 -3
- package/src/tests/request-composition-derive.test.ts +329 -0
- package/src/tests/script-connections.test.ts +2 -0
- package/src/tests/script-executor-conformance.test.ts +36 -1
- package/src/tests/script-executor-quickjs-pool.test.ts +50 -0
- package/src/tests/script-executor-quickjs.test.ts +140 -0
- package/src/tests/script-host-validated-args-native.test.ts +196 -0
- package/src/tests/script-per-script-executor.test.ts +415 -0
- package/src/tests/scripts-external-api.test.ts +45 -0
- package/src/tests/sdk-allowlist.test.ts +3 -2
- package/src/tests/self-improvement.test.ts +4 -4
- package/src/tests/store-progress-learning.test.ts +288 -0
- package/src/tests/ui-logs-parser.test.ts +180 -0
- package/src/tests/workflow-engine-v2.test.ts +116 -1
- package/src/tests/workflow-mcp-trigger-schema.test.ts +209 -0
- package/src/tests/workflow-run-finished-event.test.ts +263 -0
- package/src/tests/workflow-swarm-script.test.ts +34 -0
- package/src/tools/script-common.ts +1 -0
- package/src/tools/script-run.ts +7 -0
- package/src/tools/script-upsert.ts +7 -0
- package/src/tools/store-progress.ts +67 -1
- package/src/tools/workflows/trigger-workflow.ts +104 -10
- package/src/types.ts +12 -1
- package/src/utils/credentials.ts +5 -2
- package/src/workflows/engine.ts +18 -16
- package/src/workflows/executors/swarm-script.ts +5 -0
- package/src/workflows/foreach-driver.ts +5 -11
- package/src/workflows/node-timeout.ts +30 -0
- package/templates/community/linear-delivery-loop/PLAYBOOK.md +323 -0
- package/templates/community/linear-delivery-loop/README.md +38 -0
- package/templates/community/linear-delivery-loop/config.example.json +31 -0
- package/templates/community/linear-delivery-loop/lead-prompt.md +34 -0
- package/templates/community/linear-delivery-loop/schedule.json +10 -0
- package/templates/community/linear-delivery-loop/scripts/linear-delivery-setup.ts +148 -0
- package/templates/community/linear-delivery-loop/scripts/linear-delivery-tick.ts +1781 -0
- package/templates/skills/swarm-docs/config.json +14 -0
- package/templates/skills/swarm-docs/content.md +144 -0
- package/dist/handlers-eqsnmv95.js +0 -41
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
pathSessionDenial2,
|
|
11
11
|
bodySessionDenial2,
|
|
12
12
|
userAgentIdentityDenial2
|
|
13
|
-
} from "./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
13
|
+
} from "./cli-wqr7cea4.js";
|
|
14
|
+
import"./cli-a89zdqz9.js";
|
|
15
|
+
import"./cli-8wmj18cz.js";
|
|
16
|
+
import"./cli-48gxjmcz.js";
|
|
17
17
|
export {
|
|
18
18
|
SESSION_READ_DENIED2 as SESSION_READ_DENIED,
|
|
19
19
|
SESSION_WRITE_DENIED2 as SESSION_WRITE_DENIED,
|
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
moveTaskChainKeyInTx2,
|
|
8
8
|
init_session_moves,
|
|
9
9
|
init_db3
|
|
10
|
-
} from "./cli-
|
|
10
|
+
} from "./cli-48gxjmcz.js";
|
|
11
11
|
import {
|
|
12
12
|
normalizeAssetKey,
|
|
13
13
|
defaultAssetKey,
|
|
14
14
|
init_key
|
|
15
|
-
} from "./cli-
|
|
15
|
+
} from "./cli-9pshx6rd.js";
|
|
16
16
|
import {
|
|
17
17
|
scrubSecrets,
|
|
18
18
|
init_secret_scrubber
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
exports_compile,
|
|
5
5
|
exports_all,
|
|
6
6
|
exports_compat
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-1m9x8dr5.js";
|
|
8
8
|
import {
|
|
9
9
|
exports_models
|
|
10
10
|
} from "./cli-2nf3b08t.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
exports_dist,
|
|
15
15
|
exports_dist2,
|
|
16
16
|
exports_dist3
|
|
17
|
-
} from "./cli-
|
|
17
|
+
} from "./cli-2y7v133v.js";
|
|
18
18
|
import"./cli-13p25grh.js";
|
|
19
19
|
import"./cli-0adyhvq2.js";
|
|
20
20
|
import"./cli-rycdaj0a.js";
|
|
@@ -2,46 +2,46 @@ import {
|
|
|
2
2
|
getAgentById2,
|
|
3
3
|
getTaskById2,
|
|
4
4
|
init_db3
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-48gxjmcz.js";
|
|
6
6
|
import {
|
|
7
7
|
slackTaskOutput,
|
|
8
8
|
getTaskUrl
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-m30k9777.js";
|
|
10
10
|
import {
|
|
11
11
|
shouldBlockChannel2
|
|
12
|
-
} from "./cli-
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
12
|
+
} from "./cli-s09j9vp5.js";
|
|
13
|
+
import"./cli-6a9qfa8b.js";
|
|
14
|
+
import"./cli-j0ppywdr.js";
|
|
15
|
+
import"./cli-j9bpmykh.js";
|
|
16
|
+
import"./cli-aypd09nf.js";
|
|
17
17
|
import"./cli-3ggwdtb0.js";
|
|
18
18
|
import"./cli-e8xyjvfc.js";
|
|
19
|
-
import"./cli-
|
|
19
|
+
import"./cli-1m9x8dr5.js";
|
|
20
20
|
import"./cli-2nf3b08t.js";
|
|
21
21
|
import"./cli-kvzgak7c.js";
|
|
22
22
|
import"./cli-445c1vp7.js";
|
|
23
23
|
import"./cli-0z1xjzwa.js";
|
|
24
24
|
import"./cli-kt907da6.js";
|
|
25
|
-
import"./cli-
|
|
26
|
-
import"./cli-
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-
|
|
25
|
+
import"./cli-twctnkng.js";
|
|
26
|
+
import"./cli-8mbc9za9.js";
|
|
27
|
+
import"./cli-d20qvpr2.js";
|
|
28
|
+
import"./cli-60sty27p.js";
|
|
29
29
|
import"./cli-qz93y3x5.js";
|
|
30
|
-
import"./cli-
|
|
31
|
-
import"./cli-
|
|
30
|
+
import"./cli-8wmj18cz.js";
|
|
31
|
+
import"./cli-rd5m70gj.js";
|
|
32
32
|
import"./cli-g9ypd5en.js";
|
|
33
|
-
import"./cli-
|
|
34
|
-
import"./cli-
|
|
33
|
+
import"./cli-6srv653c.js";
|
|
34
|
+
import"./cli-wqr7cea4.js";
|
|
35
35
|
import"./cli-3h26v7yj.js";
|
|
36
36
|
import"./cli-737pyqxr.js";
|
|
37
|
-
import"./cli-
|
|
38
|
-
import"./cli-
|
|
37
|
+
import"./cli-2pvzmas1.js";
|
|
38
|
+
import"./cli-sgqm2582.js";
|
|
39
39
|
import {
|
|
40
40
|
isUserAllowed2
|
|
41
|
-
} from "./cli-
|
|
41
|
+
} from "./cli-f4dbh7a5.js";
|
|
42
42
|
import"./cli-13p25grh.js";
|
|
43
43
|
import"./cli-0adyhvq2.js";
|
|
44
|
-
import"./cli-
|
|
44
|
+
import"./cli-a89zdqz9.js";
|
|
45
45
|
import"./cli-rycdaj0a.js";
|
|
46
46
|
import {
|
|
47
47
|
isEnvFlagEnabled,
|
|
@@ -1,67 +1,67 @@
|
|
|
1
1
|
import"./cli-qz93y3x5.js";
|
|
2
2
|
import {
|
|
3
3
|
getEnabledCapabilities
|
|
4
|
-
} from "./cli-
|
|
5
|
-
import"./cli-
|
|
6
|
-
import"./cli-
|
|
7
|
-
import"./cli-
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
10
|
-
import"./cli-
|
|
4
|
+
} from "./cli-6a9qfa8b.js";
|
|
5
|
+
import"./cli-48gxjmcz.js";
|
|
6
|
+
import"./cli-8wmj18cz.js";
|
|
7
|
+
import"./cli-rd5m70gj.js";
|
|
8
|
+
import"./cli-d20qvpr2.js";
|
|
9
|
+
import"./cli-60sty27p.js";
|
|
10
|
+
import"./cli-8mbc9za9.js";
|
|
11
11
|
import"./cli-kt907da6.js";
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
12
|
+
import"./cli-j0ppywdr.js";
|
|
13
|
+
import"./cli-j9bpmykh.js";
|
|
14
|
+
import"./cli-aypd09nf.js";
|
|
15
15
|
import"./cli-3ggwdtb0.js";
|
|
16
16
|
import"./cli-e8xyjvfc.js";
|
|
17
|
-
import"./cli-
|
|
18
|
-
import"./cli-
|
|
19
|
-
import"./cli-
|
|
17
|
+
import"./cli-m30k9777.js";
|
|
18
|
+
import"./cli-s09j9vp5.js";
|
|
19
|
+
import"./cli-1m9x8dr5.js";
|
|
20
20
|
import"./cli-2nf3b08t.js";
|
|
21
21
|
import"./cli-kvzgak7c.js";
|
|
22
22
|
import"./cli-445c1vp7.js";
|
|
23
23
|
import"./cli-0z1xjzwa.js";
|
|
24
|
-
import"./cli-
|
|
25
|
-
import"./cli-
|
|
24
|
+
import"./cli-twctnkng.js";
|
|
25
|
+
import"./cli-wqr7cea4.js";
|
|
26
26
|
import"./cli-g9ypd5en.js";
|
|
27
|
-
import"./cli-
|
|
27
|
+
import"./cli-6srv653c.js";
|
|
28
28
|
import"./cli-3h26v7yj.js";
|
|
29
29
|
import"./cli-737pyqxr.js";
|
|
30
|
-
import"./cli-
|
|
30
|
+
import"./cli-07q03xm2.js";
|
|
31
31
|
import"./cli-c081bj3b.js";
|
|
32
32
|
import"./cli-77cd6gy8.js";
|
|
33
|
-
import"./cli-
|
|
33
|
+
import"./cli-6mgdba42.js";
|
|
34
34
|
import {
|
|
35
35
|
runAgent
|
|
36
|
-
} from "./cli-
|
|
37
|
-
import"./cli-
|
|
36
|
+
} from "./cli-j3y0x2n4.js";
|
|
37
|
+
import"./cli-vz78s5wm.js";
|
|
38
38
|
import"./cli-yvy48785.js";
|
|
39
|
-
import"./cli-
|
|
39
|
+
import"./cli-sjctjr48.js";
|
|
40
40
|
import"./cli-jc1g9ndz.js";
|
|
41
|
-
import"./cli-
|
|
42
|
-
import"./cli-
|
|
43
|
-
import"./cli-
|
|
41
|
+
import"./cli-kv7sbc2c.js";
|
|
42
|
+
import"./cli-54sj64fc.js";
|
|
43
|
+
import"./cli-c668vvcf.js";
|
|
44
44
|
import"./cli-d82btycs.js";
|
|
45
45
|
import"./cli-0726awxw.js";
|
|
46
|
-
import"./cli-
|
|
47
|
-
import"./cli-
|
|
46
|
+
import"./cli-yxbsmx56.js";
|
|
47
|
+
import"./cli-1hhbzkbb.js";
|
|
48
48
|
import"./cli-4bd1rck6.js";
|
|
49
49
|
import"./cli-vbhgkw9h.js";
|
|
50
50
|
import"./cli-rr7zx19j.js";
|
|
51
|
-
import"./cli-
|
|
51
|
+
import"./cli-yd2nreqw.js";
|
|
52
52
|
import"./cli-kr5tjjtz.js";
|
|
53
|
-
import"./cli-
|
|
54
|
-
import"./cli-
|
|
53
|
+
import"./cli-ymjpkxgn.js";
|
|
54
|
+
import"./cli-h5jeg46p.js";
|
|
55
55
|
import"./cli-39rrw8yp.js";
|
|
56
|
-
import"./cli-
|
|
57
|
-
import"./cli-
|
|
58
|
-
import"./cli-
|
|
59
|
-
import"./cli-
|
|
60
|
-
import"./cli-
|
|
56
|
+
import"./cli-gsfk58nw.js";
|
|
57
|
+
import"./cli-s0mgx214.js";
|
|
58
|
+
import"./cli-e1595bgx.js";
|
|
59
|
+
import"./cli-86ehn4s5.js";
|
|
60
|
+
import"./cli-f12mr20z.js";
|
|
61
61
|
import"./cli-4zsenjhy.js";
|
|
62
62
|
import"./cli-13p25grh.js";
|
|
63
63
|
import"./cli-0adyhvq2.js";
|
|
64
|
-
import"./cli-
|
|
64
|
+
import"./cli-a89zdqz9.js";
|
|
65
65
|
import"./cli-rycdaj0a.js";
|
|
66
66
|
|
|
67
67
|
// src/commands/worker.ts
|
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Agent Swarm API",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.7.0",
|
|
6
6
|
"description": "Multi-agent orchestration API for Claude Code, Codex, and Gemini CLI. Enables task distribution, agent communication, and service discovery.\n\nMCP tools are documented separately in [MCP.md](./MCP.md)."
|
|
7
7
|
},
|
|
8
8
|
"servers": [
|
|
@@ -19601,6 +19601,14 @@
|
|
|
19601
19601
|
"required": false,
|
|
19602
19602
|
"name": "model",
|
|
19603
19603
|
"in": "query"
|
|
19604
|
+
},
|
|
19605
|
+
{
|
|
19606
|
+
"schema": {
|
|
19607
|
+
"type": "string"
|
|
19608
|
+
},
|
|
19609
|
+
"required": false,
|
|
19610
|
+
"name": "keySuffixes",
|
|
19611
|
+
"in": "query"
|
|
19604
19612
|
}
|
|
19605
19613
|
],
|
|
19606
19614
|
"responses": {
|
|
@@ -54036,6 +54044,17 @@
|
|
|
54036
54044
|
"workspace-rw"
|
|
54037
54045
|
],
|
|
54038
54046
|
"default": "none"
|
|
54047
|
+
},
|
|
54048
|
+
"executor": {
|
|
54049
|
+
"type": [
|
|
54050
|
+
"string",
|
|
54051
|
+
"null"
|
|
54052
|
+
],
|
|
54053
|
+
"enum": [
|
|
54054
|
+
"native",
|
|
54055
|
+
"quickjs",
|
|
54056
|
+
null
|
|
54057
|
+
]
|
|
54039
54058
|
}
|
|
54040
54059
|
},
|
|
54041
54060
|
"required": [
|
|
@@ -54163,6 +54182,17 @@
|
|
|
54163
54182
|
],
|
|
54164
54183
|
"default": "none"
|
|
54165
54184
|
},
|
|
54185
|
+
"executor": {
|
|
54186
|
+
"type": [
|
|
54187
|
+
"string",
|
|
54188
|
+
"null"
|
|
54189
|
+
],
|
|
54190
|
+
"enum": [
|
|
54191
|
+
"native",
|
|
54192
|
+
"quickjs",
|
|
54193
|
+
null
|
|
54194
|
+
]
|
|
54195
|
+
},
|
|
54166
54196
|
"idempotencyKey": {
|
|
54167
54197
|
"type": "string",
|
|
54168
54198
|
"maxLength": 200
|
|
@@ -54749,6 +54779,18 @@
|
|
|
54749
54779
|
"workspace-rw"
|
|
54750
54780
|
]
|
|
54751
54781
|
},
|
|
54782
|
+
"executor": {
|
|
54783
|
+
"type": [
|
|
54784
|
+
"string",
|
|
54785
|
+
"null"
|
|
54786
|
+
],
|
|
54787
|
+
"enum": [
|
|
54788
|
+
"native",
|
|
54789
|
+
"quickjs",
|
|
54790
|
+
null
|
|
54791
|
+
],
|
|
54792
|
+
"default": null
|
|
54793
|
+
},
|
|
54752
54794
|
"createdByAgentId": {
|
|
54753
54795
|
"type": [
|
|
54754
54796
|
"string",
|
|
@@ -54924,6 +54966,18 @@
|
|
|
54924
54966
|
"workspace-rw"
|
|
54925
54967
|
]
|
|
54926
54968
|
},
|
|
54969
|
+
"executor": {
|
|
54970
|
+
"type": [
|
|
54971
|
+
"string",
|
|
54972
|
+
"null"
|
|
54973
|
+
],
|
|
54974
|
+
"enum": [
|
|
54975
|
+
"native",
|
|
54976
|
+
"quickjs",
|
|
54977
|
+
null
|
|
54978
|
+
],
|
|
54979
|
+
"default": null
|
|
54980
|
+
},
|
|
54927
54981
|
"createdByAgentId": {
|
|
54928
54982
|
"type": [
|
|
54929
54983
|
"string",
|
|
@@ -63521,6 +63575,20 @@
|
|
|
63521
63575
|
"name": "id",
|
|
63522
63576
|
"in": "path"
|
|
63523
63577
|
},
|
|
63578
|
+
{
|
|
63579
|
+
"schema": {
|
|
63580
|
+
"type": "string",
|
|
63581
|
+
"enum": [
|
|
63582
|
+
"true",
|
|
63583
|
+
"false"
|
|
63584
|
+
],
|
|
63585
|
+
"description": "Default true: respond after the run's instant steps ran, when it finishes or parks at its first async step. false: respond as soon as the run is committed and walk it in the background."
|
|
63586
|
+
},
|
|
63587
|
+
"required": false,
|
|
63588
|
+
"description": "Default true: respond after the run's instant steps ran, when it finishes or parks at its first async step. false: respond as soon as the run is committed and walk it in the background.",
|
|
63589
|
+
"name": "wait",
|
|
63590
|
+
"in": "query"
|
|
63591
|
+
},
|
|
63524
63592
|
{
|
|
63525
63593
|
"schema": {
|
|
63526
63594
|
"type": "string",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@desplega.ai/agent-swarm",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-swarm.dev",
|
|
@@ -80,6 +80,8 @@
|
|
|
80
80
|
"sync:ai-toolbox-skills": "bun scripts/sync-ai-toolbox-skills.ts",
|
|
81
81
|
"check:ai-toolbox-skills": "bun scripts/sync-ai-toolbox-skills.ts --check",
|
|
82
82
|
"check:skill-sources": "bun scripts/check-skill-sources.ts",
|
|
83
|
+
"build:docs-index": "bun scripts/build-docs-index.ts",
|
|
84
|
+
"check:docs-index": "bun scripts/build-docs-index.ts --check",
|
|
83
85
|
"check:operator-skill": "bun scripts/check-operator-skill.ts",
|
|
84
86
|
"sync:telemetry-contract": "bun scripts/sync-telemetry-contract.ts",
|
|
85
87
|
"check:telemetry-contract": "bun scripts/sync-telemetry-contract.ts --check",
|
|
@@ -185,7 +187,7 @@
|
|
|
185
187
|
"@oxlint/plugins": "1.78.0",
|
|
186
188
|
"@types/bun": "latest",
|
|
187
189
|
"dependency-cruiser": "^18.0.0",
|
|
188
|
-
"happy-dom": "^
|
|
190
|
+
"happy-dom": "^21.0.4",
|
|
189
191
|
"konsistent": "1.0.0-beta.1",
|
|
190
192
|
"openapi-typescript": "^7",
|
|
191
193
|
"oxlint": "1.78.0",
|
|
@@ -210,7 +212,7 @@
|
|
|
210
212
|
"@chat-adapter/teams": "4.41.1",
|
|
211
213
|
"@chat-adapter/telegram": "4.41.1",
|
|
212
214
|
"@cursor/sdk": "1.0.40",
|
|
213
|
-
"@desplega.ai/agent-fs-just-bash": "0.18.
|
|
215
|
+
"@desplega.ai/agent-fs-just-bash": "0.18.9",
|
|
214
216
|
"@desplega.ai/business-use": "^0.4.2",
|
|
215
217
|
"@earendil-works/pi-agent-core": "^1.4.0",
|
|
216
218
|
"@earendil-works/pi-ai": "^1.4.0",
|
|
@@ -3,6 +3,7 @@ import { getSlackConfiguration, isSlackConfigured } from "../slack/config";
|
|
|
3
3
|
import { isEnvFlagEnabled } from "../utils/env-flag";
|
|
4
4
|
import { scrubSecrets } from "../utils/secret-scrubber";
|
|
5
5
|
import { getDbClient } from "./db";
|
|
6
|
+
import { emitRunFinished } from "./db/workflow-runs";
|
|
6
7
|
import { getOAuthApp, getOAuthTokens } from "./db-queries/oauth";
|
|
7
8
|
import { scrubJsonValue } from "./scrub-json";
|
|
8
9
|
|
|
@@ -446,6 +447,7 @@ export async function recordWorkflowPreflightFailure(input: {
|
|
|
446
447
|
timestamp,
|
|
447
448
|
],
|
|
448
449
|
);
|
|
450
|
+
emitRunFinished(runId, input.workflowId, "failed");
|
|
449
451
|
// Claimed in this transaction, which also sees every child failure run
|
|
450
452
|
// committed before it: concurrent failures alert exactly once a day.
|
|
451
453
|
return {
|
package/src/be/db/api-keys.ts
CHANGED
|
@@ -110,6 +110,15 @@ export async function recordKeyValidation(
|
|
|
110
110
|
now,
|
|
111
111
|
],
|
|
112
112
|
);
|
|
113
|
+
// A passing test clears the key's rejection in every scope, since the
|
|
114
|
+
// suffix read in `getAvailableKeyIndices` matches them all.
|
|
115
|
+
if (key.ok) {
|
|
116
|
+
await tx.run(
|
|
117
|
+
`UPDATE api_key_status SET lastValidationError = NULL, lastValidationFailedAt = NULL, updatedAt = ?
|
|
118
|
+
WHERE keyType = ? AND keySuffix = ? AND lastValidationFailedAt IS NOT NULL`,
|
|
119
|
+
[now, keyType, key.keySuffix],
|
|
120
|
+
);
|
|
121
|
+
}
|
|
113
122
|
}
|
|
114
123
|
if (options.retireAbsent === false) return;
|
|
115
124
|
const placeholders = keys.map(() => "?").join(", ");
|
|
@@ -465,7 +465,8 @@ export async function disarmWorkflowTreeRetries(
|
|
|
465
465
|
/**
|
|
466
466
|
* Mark the given runs that are still running or waiting `cancelled`, without
|
|
467
467
|
* the per-run `workflow.child.finished` wake-up: it is for runs whose parent
|
|
468
|
-
* step the same cancel closes.
|
|
468
|
+
* step the same cancel closes. Each run it cancels still emits
|
|
469
|
+
* `workflow.run.finished`. A terminal run keeps its status and reason.
|
|
469
470
|
*/
|
|
470
471
|
export async function cancelLiveWorkflowTreeRuns(
|
|
471
472
|
runIds: string[],
|
|
@@ -473,12 +474,14 @@ export async function cancelLiveWorkflowTreeRuns(
|
|
|
473
474
|
finishedAt: string,
|
|
474
475
|
): Promise<void> {
|
|
475
476
|
await forEachChunk(runIds, async (chunk, placeholders) => {
|
|
476
|
-
await getDbClient().
|
|
477
|
+
const cancelled = await getDbClient().query<{ id: string; workflowId: string }>(
|
|
477
478
|
`UPDATE workflow_runs
|
|
478
479
|
SET status = 'cancelled', error = ?, finishedAt = ?, lastUpdatedAt = ?
|
|
479
|
-
WHERE id IN (${placeholders}) AND status IN ('running', 'waiting')
|
|
480
|
+
WHERE id IN (${placeholders}) AND status IN ('running', 'waiting')
|
|
481
|
+
RETURNING id, workflowId`,
|
|
480
482
|
[scrubSecrets(reason), finishedAt, finishedAt, ...chunk],
|
|
481
483
|
);
|
|
484
|
+
for (const run of cancelled) emitRunFinished(run.id, run.workflowId, "cancelled");
|
|
482
485
|
});
|
|
483
486
|
}
|
|
484
487
|
|
|
@@ -643,14 +646,42 @@ export function emitChildRunFinished(
|
|
|
643
646
|
}
|
|
644
647
|
|
|
645
648
|
function emitAfterCommit(childRunId: string, parentStepId: string): void {
|
|
649
|
+
emitBusEventAfterCommit("workflow.child.finished", { childRunId, parentStepId });
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
/** Bus event every run emits once when it turns terminal. */
|
|
653
|
+
export const WORKFLOW_RUN_FINISHED_EVENT = "workflow.run.finished";
|
|
654
|
+
|
|
655
|
+
export function isTerminalWorkflowRunStatus(status: WorkflowRunStatus): boolean {
|
|
656
|
+
return TERMINAL_STATUSES.has(status);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* Announce after commit that a run turned terminal, top-level and child runs
|
|
661
|
+
* alike, so an event-mode `wait` can resume when any run ends. Callers emit
|
|
662
|
+
* only when a live run (running or waiting) turns terminal, never on a later
|
|
663
|
+
* update of a run that is already terminal. The id is `runId`, never `workflowRunId` or
|
|
664
|
+
* `_runId`: those would put the finished run in the waiting run's own `run`
|
|
665
|
+
* scope, so waiters use scope `global` and filter on `runId`.
|
|
666
|
+
*/
|
|
667
|
+
export function emitRunFinished(
|
|
668
|
+
runId: string,
|
|
669
|
+
workflowId: string,
|
|
670
|
+
status: WorkflowRunStatus,
|
|
671
|
+
): void {
|
|
672
|
+
if (!TERMINAL_STATUSES.has(status)) return;
|
|
673
|
+
emitBusEventAfterCommit(WORKFLOW_RUN_FINISHED_EVENT, { runId, workflowId, status });
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
function emitBusEventAfterCommit(event: string, payload: Record<string, unknown>): void {
|
|
646
677
|
getDbClient().afterCommit(() => {
|
|
647
678
|
import("../../workflows/event-bus")
|
|
648
679
|
.then(({ workflowEventBus }) => {
|
|
649
|
-
workflowEventBus.emit(
|
|
680
|
+
workflowEventBus.emit(event, payload);
|
|
650
681
|
})
|
|
651
682
|
.catch((err) =>
|
|
652
683
|
console.error(
|
|
653
|
-
|
|
684
|
+
`[db] ${event} event not emitted:`,
|
|
654
685
|
scrubSecrets(err instanceof Error ? err.message : String(err)),
|
|
655
686
|
),
|
|
656
687
|
);
|