@desplega.ai/agent-swarm 2.6.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/README.md +2 -0
- package/dist/{acp-adapter-dgfakfpw.js → acp-adapter-8dn5tq56.js} +6 -6
- package/dist/{actions-fbqma8aa.js → actions-3r6gw7dy.js} +18 -18
- package/dist/{amp-adapter-en0jy6hs.js → amp-adapter-wjtq413p.js} +3 -3
- package/dist/{anthropic-messages-txs190dd.js → anthropic-messages-n4cby1rz.js} +4 -4
- package/dist/{app-k8a5cgpp.js → app-d53yhykk.js} +3 -3
- package/dist/{assistant-a16433gr.js → assistant-ksrawj3k.js} +20 -20
- package/dist/{boot-reembed-6c1sjfnr.js → boot-reembed-fxfw17m2.js} +11 -3
- package/dist/{boot-reembed-f4nn561n.js → boot-reembed-k5y5xbj0.js} +15 -8
- package/dist/{boot-scrub-sweep-d4w9gajf.js → boot-scrub-sweep-se41j9fd.js} +3 -3
- package/dist/{boot-seeds-9bmkspyw.js → boot-seeds-r3kwwv8b.js} +4 -4
- package/dist/{claude-adapter-nys1kjxa.js → claude-adapter-ahmyf231.js} +8 -8
- package/dist/{claude-managed-adapter-55207973.js → claude-managed-adapter-5knamegc.js} +3 -3
- package/dist/{claude-managed-setup-3cm35gey.js → claude-managed-setup-mdc7dy6b.js} +3 -3
- package/dist/{claude-sdk-session-nw5yd8cp.js → claude-sdk-session-n5wen9zk.js} +8729 -8600
- package/dist/{cli-683y0b3a.js → cli-0dqtv2jg.js} +2 -2
- package/dist/{cli-a34pr3w1.js → cli-0tww7dnz.js} +2 -2
- package/dist/{cli-w2656ka1.js → cli-0w4e4v58.js} +7 -7
- package/dist/{cli-5sckpqcx.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-3aqd4jaa.js → cli-3v2cyqb8.js} +3 -3
- package/dist/{cli-emhjcj2y.js → cli-5qt9vzmq.js} +89 -20
- package/dist/{cli-abkm71vr.js → cli-5rp1w4cr.js} +1 -1
- package/dist/{cli-gf95q3bm.js → cli-6vwjsetx.js} +4 -4
- package/dist/{cli-k21gx5ht.js → cli-6w2yrrc0.js} +10 -10
- package/dist/{cli-m70bajzr.js → cli-75tdydgv.js} +1 -1
- package/dist/{cli-5rj83bam.js → cli-8feswf2v.js} +47 -36
- package/dist/{cli-sxgtf5fw.js → cli-8wd3mbyj.js} +1 -1
- package/dist/{cli-ca6banwz.js → cli-9csfthbw.js} +10 -8
- package/dist/{cli-dqygeeh5.js → cli-b41p764a.js} +31 -3
- package/dist/{cli-m5a9m0ak.js → cli-c1t533hh.js} +3 -3
- package/dist/{cli-2sjhpsns.js → cli-c28jxpcv.js} +1 -1
- package/dist/{cli-bqztfyve.js → cli-cb50g9cd.js} +1 -1
- package/dist/{cli-ag2yrnt5.js → cli-d8gaphtr.js} +2 -2
- package/dist/{cli-9abdgn5t.js → cli-dgtfysne.js} +3 -3
- package/dist/{cli-nq677csy.js → cli-dscnhn18.js} +1 -1
- package/dist/{cli-3fwqy71j.js → cli-dv11pgpv.js} +39 -32
- package/dist/{cli-v49fkghp.js → cli-ekptgk2m.js} +6 -6
- package/dist/{cli-c2habvsf.js → cli-f3mzy662.js} +17 -17
- package/dist/{cli-zqne1qcj.js → cli-fk7k8s9x.js} +2 -2
- package/dist/{cli-1tem6ns9.js → cli-gt4h8cxw.js} +3 -2
- package/dist/{cli-vbhgkw9h.js → cli-h3e7bhvn.js} +3 -3
- package/dist/{cli-ffvsj2qw.js → cli-hkxqdmnb.js} +3 -3
- package/dist/{cli-a2rr0fmg.js → cli-hpkvgdad.js} +7 -4
- package/dist/{cli-art7c1zh.js → cli-hq2v4rr5.js} +37 -9
- package/dist/{cli-sqma6vw1.js → cli-k1zb7raw.js} +5 -5
- package/dist/{cli-4rvr7zfx.js → cli-k4awgvzm.js} +5 -0
- package/dist/{cli-3ndmpxxv.js → cli-k7d3hvya.js} +2 -2
- package/dist/{cli-3gfvmzht.js → cli-kbtdftbw.js} +74 -26
- package/dist/{cli-hfeb68z4.js → cli-kj69b9tw.js} +34 -6
- package/dist/{cli-az25fn5f.js → cli-kk9jy4nm.js} +2 -2
- package/dist/{cli-39aet655.js → cli-m52t4cta.js} +1 -1
- package/dist/{cli-cz37jqss.js → cli-mdadewqp.js} +5 -5
- package/dist/{cli-esakngh8.js → cli-nf6k60sn.js} +1 -1
- package/dist/{cli-j6rktc91.js → cli-nzdf09js.js} +1 -1
- package/dist/{cli-rr7zx19j.js → cli-prcyzecg.js} +12 -12
- package/dist/{cli-4hxrf0p4.js → cli-pzafyqtk.js} +393 -62
- package/dist/{cli-g8ka5j4j.js → cli-qvaa1gjp.js} +173 -52
- package/dist/{cli-d2dpf95n.js → cli-rg4b2g6j.js} +1 -1
- package/dist/{cli-kf4jree9.js → cli-rm66vqdz.js} +1 -1
- package/dist/{cli-4rf0f5vg.js → cli-s504c3w7.js} +5 -3
- package/dist/{cli-nn6vx2mq.js → cli-swkx9jm2.js} +7 -5
- package/dist/{cli-g20jjwt4.js → cli-thsaq4pd.js} +16 -16
- package/dist/{cli-aj8djyqt.js → cli-twjnyvs8.js} +2 -2
- package/dist/{cli-03gg9pd1.js → cli-typdpe8g.js} +4 -4
- package/dist/{cli-mtnj4fwa.js → cli-vg8pwmsd.js} +6 -6
- package/dist/{cli-gnsb1zxa.js → cli-vhpckzvp.js} +1 -1
- package/dist/{cli-7enjwya9.js → cli-vz78s5wm.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-6y51ryva.js → cli-x3cngb1h.js} +44 -12
- package/dist/{cli-n7asmce6.js → cli-xbz6mcg4.js} +3 -3
- package/dist/{cli-24j1jeeb.js → cli-y4tdxsqb.js} +3 -3
- package/dist/{cli-mvjz5an3.js → cli-yqrsp3ny.js} +7 -7
- package/dist/cli.js +31 -21
- package/dist/{codex-adapter-d95q4qsn.js → codex-adapter-7wepzq15.js} +6 -6
- package/dist/{codex-hook-brpnycn5.js → codex-hook-pbdh4xhx.js} +2 -2
- package/dist/{codex-session-runner-gdwd8h0c.js → codex-session-runner-02sb49e4.js} +6 -6
- package/dist/{commands-jqmgk54b.js → commands-3rcspxct.js} +2 -2
- package/dist/{controller-z3jq589f.js → controller-8ar4avd6.js} +3 -3
- package/dist/{controllers-connect-r2za39ef.js → controllers-connect-ajvh9h0v.js} +19 -19
- package/dist/{cursor-adapter-4mr4jgkw.js → cursor-adapter-gd0sa7bh.js} +1 -1
- package/dist/{db-w36wwb5g.js → db-dv9j7ts5.js} +2 -2
- package/dist/{db-ppv2tze7.js → db-z26vgdvj.js} +3 -3
- package/dist/{dispatcher-pv5h77vf.js → dispatcher-8m0htjq8.js} +17 -17
- package/dist/{dsh-adapter-d4pdpb3r.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-4sp4dvmc.js → easter-egg-3d-28f880xx.js} +1 -1
- package/dist/{execute-jev839y1.js → execute-9seb79vh.js} +1 -1
- package/dist/{external-channel-y6nkzhnn.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-t08b9ntm.js → grok-adapter-z0nnvtbn.js} +7 -7
- package/dist/handlers-pspryh6g.js +41 -0
- package/dist/{heartbeat-vn31xwdk.js → heartbeat-f928aqyp.js} +20 -20
- package/dist/{hook-cpjs8q51.js → hook-d7c605r4.js} +7 -7
- package/dist/{hook-6d0zbvvt.js → hook-q9hv5xf9.js} +5 -5
- package/dist/{http-9c6medda.js → http-q6j4k989.js} +1000 -251
- package/dist/{index-k0yt1tvq.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-38t35h0n.js → index-ch0c1xff.js} +17 -17
- package/dist/{index-pkma1yf8.js → index-ebnjhxh1.js} +1 -1
- package/dist/{index-yqgbfgaj.js → index-ed8dy8rn.js} +20 -20
- package/dist/{index-qhjf2htm.js → index-ejqdkkqx.js} +262 -96
- package/dist/{index-dr94zbnh.js → index-farm1zsn.js} +32661 -29443
- package/dist/{index-g6k9tctj.js → index-yn1yxg85.js} +1 -1
- package/dist/{keepalive-em0117bp.js → keepalive-zzc3hks1.js} +3 -3
- package/dist/lead-c0pjcaw4.js +79 -0
- package/dist/{maintenance-kbme3qy9.js → maintenance-kqsxzpzx.js} +1 -1
- package/dist/{oauth-refresh-sweep-xysj4yse.js → oauth-refresh-sweep-7qt0g55z.js} +8 -3
- package/dist/{onboard-p6q0vz97.js → onboard-k7x13fqg.js} +121 -8
- package/dist/{opencode-adapter-esv3k9yn.js → opencode-adapter-tqvrtter.js} +5 -5
- package/dist/{otel-impl-54qhqh1z.js → otel-impl-sqkf6k3b.js} +97 -97
- package/dist/{pi-mono-adapter-mymbwhj0.js → pi-mono-adapter-m2qnafxm.js} +89 -14
- package/dist/{pricing-refresh-yb75wv33.js → pricing-refresh-wkpwhgvs.js} +3 -3
- package/dist/{rbac-roles-dexhc9x8.js → rbac-roles-dpn0c0wj.js} +7 -4
- package/dist/{rbac-roles-1vp2mw4p.js → rbac-roles-wk7xd6a6.js} +2 -2
- package/dist/{render-v2-tjay5hhf.js → render-v2-ex2m4g2k.js} +3 -3
- package/dist/{resume-8ayf37g5.js → resume-725g9b0b.js} +7 -7
- package/dist/{runtime-hqe5cqcd.js → runtime-kajas15g.js} +1 -1
- package/dist/{session-access-fdhp987s.js → session-access-0j2ezjje.js} +8 -4
- package/dist/{session-source-backfill-qgtc86z1.js → session-source-backfill-62202awe.js} +2 -2
- package/dist/{setup-4rrmqcq3.js → setup-9sj11ax6.js} +1 -1
- package/dist/{virtual-modules-52km00d6.js → virtual-modules-c6fcq6zr.js} +2 -2
- package/dist/{work-objects-p28fgd70.js → work-objects-0y07495y.js} +20 -20
- package/dist/worker-d4q9sqbc.js +79 -0
- package/openapi.json +1536 -407
- package/package.json +7 -5
- package/src/be/automation-preflight.ts +2 -0
- package/src/be/connector-codes.ts +65 -22
- 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/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 +257 -0
- package/src/be/memory/types.ts +13 -2
- package/src/be/migrations/245_script_executor.sql +3 -0
- package/src/be/migrations/246_connector_code_kind.sql +11 -0
- package/src/be/oauth-refresh-sweep.ts +2 -1
- package/src/be/onboarding.ts +125 -15
- package/src/be/rbac-roles.ts +4 -1
- package/src/be/scripts/boot-reembed.ts +2 -0
- package/src/be/scripts/db.ts +14 -4
- package/src/be/scripts/embeddings.ts +4 -2
- package/src/be/scripts/run-saved.ts +1 -0
- package/src/be/scripts/typecheck.ts +9 -3
- package/src/be/seed/agent-fs-provision.ts +75 -14
- package/src/be/seed-skills/index.ts +7 -0
- 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 +117 -4
- 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/provider-credentials.ts +2 -1
- package/src/commands/runner.ts +14 -1
- package/src/heartbeat/heartbeat.ts +14 -1
- package/src/heartbeat/script-runner-probe.ts +47 -0
- package/src/http/agentfs-proxy.ts +369 -0
- package/src/http/all-routes.ts +1 -0
- package/src/http/api-keys.ts +24 -9
- package/src/http/codex-oauth-device.ts +8 -1
- package/src/http/fs.ts +64 -10
- package/src/http/idempotency-key.ts +1 -1
- package/src/http/inbox-state.ts +27 -1
- package/src/http/index.ts +7 -4
- package/src/http/memory.ts +7 -4
- package/src/http/onboarding.ts +139 -11
- package/src/http/pages-public.ts +38 -5
- package/src/http/scripts.ts +27 -0
- 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/http/workflows.ts +10 -0
- package/src/http/x.ts +5 -0
- package/src/prompts/base-prompt.ts +45 -10
- package/src/prompts/session-templates.ts +43 -5
- 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/dsh-adapter.ts +1 -1
- package/src/providers/pi-mono-adapter.ts +99 -14
- package/src/rbac/legacy-policy.ts +1 -0
- package/src/rbac/permissions.ts +4 -0
- 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/agent-fs-provision-seeder.test.ts +261 -92
- package/src/tests/agentfs-proxy.test.ts +1106 -0
- package/src/tests/api-key-status-by-suffix.test.ts +242 -0
- package/src/tests/base-prompt.test.ts +139 -4
- 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/community-linear-delivery-loop.test.ts +2099 -0
- package/src/tests/credential-check.test.ts +4 -2
- package/src/tests/docs-index-footprint.test.js +3 -3
- 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/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/heartbeat-checklist.test.ts +89 -0
- package/src/tests/heartbeat-script-runner-probe.test.ts +83 -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/oauth-refresh-sweep.test.ts +34 -1
- package/src/tests/onboard-compose.test.ts +162 -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/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-mono-session-cost-on-abort.test.ts +270 -0
- package/src/tests/pi-native-mcp.test.ts +13 -1
- package/src/tests/pi-tool-exposure.test.ts +8 -8
- package/src/tests/preload-env.test.ts +4 -0
- package/src/tests/preload.ts +4 -0
- package/src/tests/probe-tool-schema-tokens.test.ts +144 -0
- package/src/tests/prompt-template-session.test.ts +20 -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/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/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 +381 -0
- package/src/tests/ui-logs-parser.test.ts +180 -0
- package/src/tests/whoami-route.test.ts +41 -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/inject-learning.ts +1 -1
- package/src/tools/memory-edit.ts +1 -1
- package/src/tools/memory-search.ts +1 -1
- 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 +71 -1
- package/src/tools/utils.ts +12 -1
- package/src/tools/workflows/trigger-workflow.ts +104 -10
- package/src/types.ts +12 -1
- package/src/utils/constants.ts +39 -0
- package/src/utils/credentials.ts +5 -2
- package/src/utils/task-attachment-links.ts +15 -3
- 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
- package/dist/lead-23e7z59t.js +0 -79
- package/dist/worker-e3w7vye1.js +0 -79
- 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
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
extractArgsJsonSchema,
|
|
6
6
|
typecheckScript,
|
|
7
7
|
parseSkillContent
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-kbtdftbw.js";
|
|
9
9
|
import {
|
|
10
10
|
getDbClient2,
|
|
11
11
|
computeContentHash2,
|
|
@@ -26,19 +26,20 @@ import {
|
|
|
26
26
|
deleteSkill2,
|
|
27
27
|
getSkillByName2,
|
|
28
28
|
init_db3
|
|
29
|
-
} from "./cli-
|
|
30
|
-
import"./cli-
|
|
29
|
+
} from "./cli-qvaa1gjp.js";
|
|
30
|
+
import"./cli-rm66vqdz.js";
|
|
31
31
|
import"./cli-3ggwdtb0.js";
|
|
32
|
+
import"./cli-hpkvgdad.js";
|
|
32
33
|
import {
|
|
33
34
|
agentFsProvisionSeeder
|
|
34
|
-
} from "./cli-
|
|
35
|
+
} from "./cli-x3cngb1h.js";
|
|
35
36
|
import"./cli-e8xyjvfc.js";
|
|
36
37
|
import {
|
|
37
38
|
validateDefinition
|
|
38
|
-
} from "./cli-
|
|
39
|
-
import"./cli-
|
|
40
|
-
import"./cli-
|
|
41
|
-
import"./cli-
|
|
39
|
+
} from "./cli-dv11pgpv.js";
|
|
40
|
+
import"./cli-thsaq4pd.js";
|
|
41
|
+
import"./cli-vhpckzvp.js";
|
|
42
|
+
import"./cli-ekptgk2m.js";
|
|
42
43
|
import"./cli-2nf3b08t.js";
|
|
43
44
|
import"./cli-kvzgak7c.js";
|
|
44
45
|
import"./cli-445c1vp7.js";
|
|
@@ -48,7 +49,7 @@ import {
|
|
|
48
49
|
} from "./cli-691vz9mk.js";
|
|
49
50
|
import"./cli-13p25grh.js";
|
|
50
51
|
import"./cli-0adyhvq2.js";
|
|
51
|
-
import"./cli-
|
|
52
|
+
import"./cli-nf6k60sn.js";
|
|
52
53
|
import"./cli-rycdaj0a.js";
|
|
53
54
|
import {
|
|
54
55
|
__toESM
|
|
@@ -11056,8 +11057,172 @@ var config_default42 = `{
|
|
|
11056
11057
|
// templates/skills/step-running/content.md
|
|
11057
11058
|
var content_default42 = "# Step Running\n\nYou execute a single step of a DAG plan as an atomic background sub-agent. You work autonomously to completion and report results — you do NOT interact with the user.\n\nThis is the DAG sibling of `phase-running`. The execution model and atomicity contract are identical; the differences are:\n- You receive a **step file path** (`step-<n>.md`), not a plan path + phase number.\n- You **claim the step atomically** via the step's frontmatter `status` field before doing work, and release it on completion / failure. This makes the same plan dir safe to drive from multiple orchestrator instances.\n\n## Execution Model\n\nThis skill runs inside a background `Agent` (sub-agent). v-implementing (or a user invoking `/run-step`) spawns it via the Agent tool with `run_in_background: true`.\n\nThe step agent receives:\n- **Step path**: full path to `step-<n>.md`\n- **Plan dir**: full path to the parent plan directory (read `root.md` from here for plan-level context)\n- **Agent ID**: unique identifier for this sub-agent (e.g. orchestrator session ID + step ID + timestamp). Used for atomic claim + stale-claim detection.\n- **Relevant context**: any extra context from the caller\n\n## Concurrency: Atomic Claim\n\nBefore doing any work, claim the step:\n\n1. Read the step file's frontmatter.\n2. **If `status: done`** — report `Status: skipped` and exit. The step is already finished.\n3. **If `status: claimed`** and `assignee` differs from your agent ID:\n - Fresh claim (`claimed_at` within last hour): report `Status: blocked` (reason: `claimed by <other-id>`) and exit.\n - Stale claim (>1h): proceed and overwrite — the previous worker likely died.\n4. **Otherwise** (`status: ready`, or stale `claimed`): rewrite the frontmatter block in a single `Edit` so the write is atomic-enough for filesystem-based coordination. Set:\n - `status: claimed`\n - `assignee: <your-agent-id>`\n - `claimed_at: <ISO timestamp UTC>`\n5. Re-read the file. If `assignee` is not yours, another worker raced you — report `Status: blocked` (reason: `lost claim race`) and exit.\n\nOn terminal transitions, set frontmatter:\n- **Completed**: `status: done`, clear `assignee` and `claimed_at`.\n- **Blocked or failed (retry-able)**: `status: ready`, clear `assignee` and `claimed_at`. The orchestrator (or another worker) can retry.\n- **Failed (non-retry-able)**: leave `status: claimed` so the orchestrator can investigate; include the reason in the report.\n\nFor true cross-machine atomicity (NFS, etc.), the caller is responsible for rendezvous (e.g. a shared lock service). The single-Edit pattern is good-enough for local filesystem and well-behaved network filesystems.\n\n## Autonomy\n\nStep agents always run as **Autopilot** within the sub-agent. The calling context controls outer autonomy and human checkpoints.\n\n**CRITICAL**: Step agents do NOT use AskUserQuestion. If something is ambiguous, report `Status: blocked` with details. The caller handles all user interaction.\n\n## Process Steps\n\n### Step 1: Load Context\n\n1. **Claim the step** (see \"Concurrency: Atomic Claim\"). Stop here on any non-claim outcome.\n2. Read the full step file.\n3. Read `root.md` from the plan dir for plan-level context: Overview, Current State, Desired End State, Implementation Approach, Global Verification.\n4. Read all files mentioned in the step's \"Changes Required\" section.\n\n### Step 2: Pre-flight Check\n\n| Check | Action if failed |\n|-------|-----------------|\n| All `depends_on` steps have `status: done` | Scheduler bug — release claim, report `blocked` |\n| No merge conflicts in target files | Release claim, report `blocked` |\n| Files/dirs from depended-on steps exist | Release claim, report `blocked` |\n\n### Step 3: Execute Step\n\nImplement the changes described in the step's \"Changes Required\" section. Adapt to minor mismatches; report `blocked` for significant ones.\n\n### Step 4: Run Verification\n\nSame three-bucket pattern as `phase-running`:\n1. **Automated Verification** (runnable commands): run each, record pass/fail. On failure, attempt one fix-and-retry.\n2. **Automated QA** (agent-driven scenarios — browser-use, screenshot diff, CLI walkthrough): execute, record pass/fail per item.\n3. **Manual Verification**: leave unchecked. Caller handles with the user.\n4. **QA Spec (linked doc)**: if present, report `QA Doc: <path>`. Do not execute scenarios inline.\n\n### Step 5: Update Step File\n\n- Check off (`- [x]`) Automated Verification + Automated QA items that passed.\n- Do NOT check off Manual Verification items.\n- Update frontmatter `status` per \"Concurrency: Atomic Claim\" terminal-transition rules.\n- Update `last_updated` / `last_updated_by` frontmatter fields if present.\n\n### Step 6: Report Results\n\n**Completed:**\n```\nStatus: completed\nStep: step-N - <Name>\nFinal frontmatter status: done\nFiles changed: [list]\nAutomated Verification: N/M passed\n- [x] [Check 1] — passed\nAutomated QA: N/M passed\n- [x] [Scenario 1] — passed\nQA Doc: <path> | n/a\nManual verification needed:\n- [ ] [Manual check 1]\n```\n\n**Blocked / failed:** mirror `phase-running`'s shape, plus a `Final frontmatter status:` line so the orchestrator knows whether the step is released for retry (`ready`) or held for investigation (`claimed`).\n\n## Atomicity Contract\n\n- No interactive questions.\n- No partial states left unexplained.\n- Frontmatter `status` always reflects the final state at exit.\n- Report includes enough detail for the caller to decide next steps.\n\n## Context Handoff Pattern\n\n| Direction | Data |\n|-----------|------|\n| **Caller → Step Agent** | Step path + plan dir + agent ID + autonomy mode |\n| **Step Agent reads** | Step file + root.md + files in Changes Required |\n| **Step Agent writes** | Frontmatter status transitions + checkboxes + code changes |\n| **Step Agent → Caller** | Status + changed files + verification results + final frontmatter status |\n| **Caller handles** | Manual verification, cross-step coordination, QA doc execution, human checkpoints |\n";
|
|
11058
11059
|
|
|
11059
|
-
// templates/skills/swarm-
|
|
11060
|
+
// templates/skills/swarm-docs/config.json
|
|
11060
11061
|
var config_default43 = `{
|
|
11062
|
+
"kind": "skill",
|
|
11063
|
+
"name": "swarm-docs",
|
|
11064
|
+
"displayName": "Swarm Docs",
|
|
11065
|
+
"slug": "swarm-docs",
|
|
11066
|
+
"title": "Swarm Docs",
|
|
11067
|
+
"description": "docs.agent-swarm.dev index: general docs, guides and playbooks, when to offer a playbook or guide to a person, and how to fetch a page. Load on demand: when no existing skill, workflow, schedule or memory covers a person's request, or they ask where something is documented.",
|
|
11068
|
+
"version": "1.0.0",
|
|
11069
|
+
"category": "skills",
|
|
11070
|
+
"placeholders": [],
|
|
11071
|
+
"runAllSeedersCandidate": true,
|
|
11072
|
+
"systemDefault": true,
|
|
11073
|
+
"tags": ["docs", "playbooks", "guides", "lead"]
|
|
11074
|
+
}
|
|
11075
|
+
`;
|
|
11076
|
+
|
|
11077
|
+
// templates/skills/swarm-docs/content.md
|
|
11078
|
+
var content_default43 = `# Swarm docs
|
|
11079
|
+
|
|
11080
|
+
docs.agent-swarm.dev documents Agent Swarm: general docs, guides, and playbooks. A playbook is a tested way to run the swarm for one job (on-call, PR review, DORA metrics). Its page lists the agents, workflows, schedules and scripts to set up. The index below is generated from the docs frontmatter and ships with this release, so you can read it offline.
|
|
11081
|
+
|
|
11082
|
+
## When to load this skill
|
|
11083
|
+
|
|
11084
|
+
Load it on demand. Load it when a person asks for something that no skill, workflow, schedule or memory of yours covers, or asks where something is documented. When you already know how to handle the ask, handle it and leave the docs out.
|
|
11085
|
+
|
|
11086
|
+
## Offer a page (lead)
|
|
11087
|
+
|
|
11088
|
+
Follow these rules when you reply to a person.
|
|
11089
|
+
|
|
11090
|
+
1. Offer only in a reply to a person's request (Slack, DM, dashboard, email). Never offer in a heartbeat, schedule, workflow step, worker follow-up, or task output.
|
|
11091
|
+
2. Offer only on a clear match with an entry's \`when\` line, and never on a \`not when\` match. With two candidates, offer the better one. Never offer a list.
|
|
11092
|
+
3. Make at most one offer per reply. Offer a page at most once per thread, and never again after a no.
|
|
11093
|
+
4. Skip the offer when the setup is already in place (\`list-workflows\` or the schedules list shows it), when one of your skills already covers the ask, or when the person already chose an approach.
|
|
11094
|
+
5. Put the offer in one sentence at the end, with the title and the link: "This matches the [Open Oncall playbook](https://docs.agent-swarm.dev/docs/playbooks/open-oncall). Want me to set it up that way?" For a setup request, wait for the answer before you build. For a question, answer it and add the link without asking.
|
|
11095
|
+
6. On yes, delegate to a worker: "Follow <page URL>. Read the page with the \`swarm-docs\` skill." Name the template when the entry has one.
|
|
11096
|
+
|
|
11097
|
+
Entries marked "reference" are never offered. Read them when a task touches their topic.
|
|
11098
|
+
|
|
11099
|
+
## Read a page (any agent)
|
|
11100
|
+
|
|
11101
|
+
Fetch the page as markdown: \`curl -fsSL https://docs.agent-swarm.dev/llms.mdx/docs/<slug>\`, where \`<slug>\` is the path after \`/docs/\` in the index link. Follow the page; it names the agents, templates, schedules and scripts to create.
|
|
11102
|
+
|
|
11103
|
+
- A 404 means the slug changed after this release. Fetch \`https://docs.agent-swarm.dev/llms.txt\` and find the page by title.
|
|
11104
|
+
- When the site is unreachable (an offline or air-gapped install), say so in one line, give the page URL, and ask the requester to attach the page. An operator can host \`docs-site/\` from the agent-swarm repo as a mirror and edit this skill to point at it; the edit survives reseed.
|
|
11105
|
+
- A \`template\` entry names a template that ships with the swarm (\`templates/<id>\` in the agent-swarm repo). Prefer it over writing the setup from scratch.
|
|
11106
|
+
|
|
11107
|
+
<!-- docs-index:start -->
|
|
11108
|
+
<!-- Generated by \`bun run build:docs-index\` from the docs frontmatter. Do not edit by hand. -->
|
|
11109
|
+
|
|
11110
|
+
## Playbooks
|
|
11111
|
+
|
|
11112
|
+
- [Playbooks](https://docs.agent-swarm.dev/docs/playbooks). Reference.
|
|
11113
|
+
- [The rulebook our lead agent wrote for itself](https://docs.agent-swarm.dev/docs/playbooks/lead-agent-rulebook). Reference.
|
|
11114
|
+
- [Feature Development](https://docs.agent-swarm.dev/docs/playbooks/feature-development). When: Someone wants feature requests from Slack or Linear turned into reviewed pull requests end to end.
|
|
11115
|
+
- [Lead Prospecting](https://docs.agent-swarm.dev/docs/playbooks/lead-prospecting). When: Someone wants prospects found and outreach drafted on a schedule, with a person approving before anything sends.
|
|
11116
|
+
- [Content Generation](https://docs.agent-swarm.dev/docs/playbooks/content-generation). When: Someone wants blog posts, social posts, comparison pages or release notes written on a regular cadence.
|
|
11117
|
+
- [UX Command Center](https://docs.agent-swarm.dev/docs/playbooks/ux-command-center). When: Someone wants regular UX audits of their product and proposals for usability fixes.
|
|
11118
|
+
- [Proactive Customer Support](https://docs.agent-swarm.dev/docs/playbooks/proactive-customer-support). When: Someone wants an agent per key customer that remembers the account and prepares briefings or value reports.
|
|
11119
|
+
- [Observability Alert Management](https://docs.agent-swarm.dev/docs/playbooks/code-health-alert-management). When: Someone wants Datadog, Sentry, New Relic or SigNoz alerts filtered for noise, plus recurring production health audits. Not when: Alerts that page a person and should be investigated and fixed as they fire; offer Open Oncall instead.
|
|
11120
|
+
- [Code Health](https://docs.agent-swarm.dev/docs/playbooks/code-health-reports). When: Someone wants a recurring report on code hotspots, churn or technical debt in a repository. Template: \`community/code-health-reports\`.
|
|
11121
|
+
- [DORA Metrics](https://docs.agent-swarm.dev/docs/playbooks/dora-metrics). When: Someone wants deploy frequency, lead time or other DORA metrics reported on a schedule. Template: \`community/dora-metrics\`.
|
|
11122
|
+
- [Reports from Multiple Sources](https://docs.agent-swarm.dev/docs/playbooks/reports-multiple-sources). When: Someone wants business questions answered across their warehouse, analytics, billing and other data, with charts.
|
|
11123
|
+
- [Self-Documenting & Release Reports](https://docs.agent-swarm.dev/docs/playbooks/self-documenting-release-reports). When: Someone wants docs kept current, release notes written from commits, or release videos made.
|
|
11124
|
+
- [Open-Prompt Showreel Videos](https://docs.agent-swarm.dev/docs/playbooks/open-prompt-showreel). When: Someone wants a motion-graphics or showreel video made from a prompt. Template: \`community/open-prompt-showreel\`.
|
|
11125
|
+
- [Email Domain Health](https://docs.agent-swarm.dev/docs/playbooks/email-domain-health). When: Someone wants the domains they send email from watched for SPF, DKIM, DMARC or blocklist problems.
|
|
11126
|
+
- [Open Oncall](https://docs.agent-swarm.dev/docs/playbooks/open-oncall). When: Someone wants alerts from PagerDuty, Datadog, Sentry or a webhook investigated and fixed, with a person approving each fix. Not when: A one-off question about a single incident.
|
|
11127
|
+
- [PR Review](https://docs.agent-swarm.dev/docs/playbooks/pr-review). When: Someone wants every pull request reviewed automatically before a person looks at it.
|
|
11128
|
+
- [Linear Delivery Loop](https://docs.agent-swarm.dev/docs/playbooks/linear-delivery-loop). When: Someone wants agents to take Linear issues through implementation, CI and review to merged pull requests, with a person approving each one. Template: \`community/linear-delivery-loop\`.
|
|
11129
|
+
- [Hot Patterns](https://docs.agent-swarm.dev/docs/playbooks/patterns). Reference.
|
|
11130
|
+
- [Pattern: Litmus Tests (LLM-as-Judge Quality Gates)](https://docs.agent-swarm.dev/docs/playbooks/patterns/litmus-tests). When: Someone wants one agent to check another agent's output against a rubric before it ships.
|
|
11131
|
+
- [Pattern: Drain Loops (Stacked PRs + Merge Loop)](https://docs.agent-swarm.dev/docs/playbooks/patterns/drain-loops). When: Someone wants a large change split into small stacked pull requests and merged in order.
|
|
11132
|
+
- [Pattern: HITL Gates (Human-in-the-Loop Approval)](https://docs.agent-swarm.dev/docs/playbooks/patterns/hitl-gates). When: Someone wants a workflow to wait for a person's approval before it sends, merges, deletes or posts.
|
|
11133
|
+
- [Pattern: Per-Customer Working Directories](https://docs.agent-swarm.dev/docs/playbooks/patterns/per-customer-working-directories). When: Someone wants agents to keep long-lived notes per customer or account.
|
|
11134
|
+
- [Pattern: No-op When Nothing Changed](https://docs.agent-swarm.dev/docs/playbooks/patterns/no-op-workflows). When: Someone wants a scheduled job that stays silent when nothing changed.
|
|
11135
|
+
|
|
11136
|
+
## Guides
|
|
11137
|
+
|
|
11138
|
+
- [Deployment Guide](https://docs.agent-swarm.dev/docs/guides/deployment). When: Someone wants to run Agent Swarm on their own server with Docker Compose.
|
|
11139
|
+
- [Kubernetes and Helm](https://docs.agent-swarm.dev/docs/guides/kubernetes). When: Someone wants to install Agent Swarm on Kubernetes.
|
|
11140
|
+
- [Rootless Podman](https://docs.agent-swarm.dev/docs/guides/podman-rootless). When: Someone wants to run Agent Swarm under rootless Podman.
|
|
11141
|
+
- [Published Artifacts](https://docs.agent-swarm.dev/docs/guides/published-artifacts). Reference.
|
|
11142
|
+
- [Asset Namespaces](https://docs.agent-swarm.dev/docs/guides/asset-namespaces). Reference.
|
|
11143
|
+
- [agent-fs Co-deployment](https://docs.agent-swarm.dev/docs/guides/agent-fs-co-deployment). When: Someone wants shared persistent files for agents on a self-hosted swarm.
|
|
11144
|
+
- [Self-Hosted SSO](https://docs.agent-swarm.dev/docs/guides/self-hosted-sso). When: Someone wants their self-hosted swarm dashboard behind single sign-on.
|
|
11145
|
+
- [E2B Provider Smoke Tests](https://docs.agent-swarm.dev/docs/guides/e2b-provider-smoke-tests). Reference.
|
|
11146
|
+
- [Evals Harness](https://docs.agent-swarm.dev/docs/guides/evals-harness). Reference.
|
|
11147
|
+
- [Personalization & Status](https://docs.agent-swarm.dev/docs/guides/personalization). Reference.
|
|
11148
|
+
- [Secrets Encryption](https://docs.agent-swarm.dev/docs/guides/secrets-encryption). When: Someone asks how swarm secrets are stored, encrypted or backed up.
|
|
11149
|
+
- [Harness Configuration](https://docs.agent-swarm.dev/docs/guides/harness-configuration). When: Someone wants agents to run on a different AI provider or coding CLI.
|
|
11150
|
+
- [Provider Capability Matrix](https://docs.agent-swarm.dev/docs/guides/provider-capability-matrix). Reference.
|
|
11151
|
+
- [Adding a Harness Provider](https://docs.agent-swarm.dev/docs/guides/harness-providers). Reference.
|
|
11152
|
+
- [Steer a Running Task](https://docs.agent-swarm.dev/docs/guides/task-steering). Reference.
|
|
11153
|
+
- [Claude Code Mod](https://docs.agent-swarm.dev/docs/guides/claude-code-mod). Reference.
|
|
11154
|
+
- [Observability with OpenTelemetry](https://docs.agent-swarm.dev/docs/guides/observability-opentelemetry). When: Someone wants swarm traces and metrics in SigNoz or another OpenTelemetry backend.
|
|
11155
|
+
- [Host Requirements & Disk Cleanup](https://docs.agent-swarm.dev/docs/guides/host-requirements). When: Someone asks how big a host their self-hosted swarm needs, or their disk is filling up with Docker images.
|
|
11156
|
+
- [Performance & Resource Sizing](https://docs.agent-swarm.dev/docs/guides/performance-resource-sizing). Reference.
|
|
11157
|
+
- [Cost & context computation](https://docs.agent-swarm.dev/docs/guides/cost-and-context-computation). Reference.
|
|
11158
|
+
- [Extensions](https://docs.agent-swarm.dev/docs/guides/extensions). Reference.
|
|
11159
|
+
- [Scripts runtime](https://docs.agent-swarm.dev/docs/guides/scripts-runtime). Reference.
|
|
11160
|
+
- [Agent capabilities and tool allowlist](https://docs.agent-swarm.dev/docs/guides/agent-capabilities). Reference.
|
|
11161
|
+
- [Scripts-only mode (code-mode)](https://docs.agent-swarm.dev/docs/guides/scripts-only-mode). Reference.
|
|
11162
|
+
- [Script connections](https://docs.agent-swarm.dev/docs/guides/script-connections). When: Someone wants the swarm to call an external API, with credentials kept out of the code.
|
|
11163
|
+
- [OAuth callback migration](https://docs.agent-swarm.dev/docs/guides/oauth-callback-migration). Reference.
|
|
11164
|
+
- [Scripts as external APIs](https://docs.agent-swarm.dev/docs/guides/scripts-external-apis). When: Someone wants a swarm script exposed as a public HTTP endpoint or webhook receiver.
|
|
11165
|
+
- [Scripts credential broker](https://docs.agent-swarm.dev/docs/guides/scripts-credential-broker). Reference.
|
|
11166
|
+
- [One-off Script Workflow Runs](https://docs.agent-swarm.dev/docs/guides/script-workflow-runs). Reference.
|
|
11167
|
+
- [Claude Bridge](https://docs.agent-swarm.dev/docs/guides/claude-bridge-experimental). Reference.
|
|
11168
|
+
- [Worker Credential Recovery](https://docs.agent-swarm.dev/docs/guides/worker-credential-recovery). Reference.
|
|
11169
|
+
- [Model Gateways](https://docs.agent-swarm.dev/docs/guides/provider-auth/model-gateways). Reference.
|
|
11170
|
+
- [Codex OAuth](https://docs.agent-swarm.dev/docs/guides/provider-auth/codex-oauth). Reference.
|
|
11171
|
+
- [Cursor](https://docs.agent-swarm.dev/docs/guides/provider-auth/cursor). Reference.
|
|
11172
|
+
- [Amp](https://docs.agent-swarm.dev/docs/guides/provider-auth/amp). Reference.
|
|
11173
|
+
- [Grok](https://docs.agent-swarm.dev/docs/guides/provider-auth/grok). Reference.
|
|
11174
|
+
- [DeepSeek Harness (dsh)](https://docs.agent-swarm.dev/docs/guides/provider-auth/dsh). Reference.
|
|
11175
|
+
- [x402 Payments](https://docs.agent-swarm.dev/docs/guides/x402-payments). Reference.
|
|
11176
|
+
- [Multi-runtime agents](https://docs.agent-swarm.dev/docs/guides/multi-runtime-agents). Reference.
|
|
11177
|
+
- [Runtime pools (beta)](https://docs.agent-swarm.dev/docs/guides/runtime-pools). Reference.
|
|
11178
|
+
|
|
11179
|
+
## Other docs
|
|
11180
|
+
|
|
11181
|
+
- [Introduction](https://docs.agent-swarm.dev/docs)
|
|
11182
|
+
- [Getting Started](https://docs.agent-swarm.dev/docs/getting-started)
|
|
11183
|
+
- [Architecture Overview](https://docs.agent-swarm.dev/docs/architecture/overview)
|
|
11184
|
+
- [Agent Identity & Configuration](https://docs.agent-swarm.dev/docs/architecture/agents)
|
|
11185
|
+
- [Memory System](https://docs.agent-swarm.dev/docs/architecture/memory)
|
|
11186
|
+
- [Hook System](https://docs.agent-swarm.dev/docs/architecture/hooks)
|
|
11187
|
+
- [Task Lifecycle](https://docs.agent-swarm.dev/docs/concepts/task-lifecycle)
|
|
11188
|
+
- [Scheduled Tasks](https://docs.agent-swarm.dev/docs/concepts/scheduling)
|
|
11189
|
+
- [Workflows](https://docs.agent-swarm.dev/docs/concepts/workflows)
|
|
11190
|
+
- [Team Collaboration](https://docs.agent-swarm.dev/docs/features/team-collaboration)
|
|
11191
|
+
- [Apps](https://docs.agent-swarm.dev/docs/apps)
|
|
11192
|
+
- [App concepts](https://docs.agent-swarm.dev/docs/apps/concepts)
|
|
11193
|
+
- [Build an App](https://docs.agent-swarm.dev/docs/apps/build-an-app)
|
|
11194
|
+
- [App recipes](https://docs.agent-swarm.dev/docs/apps/recipes)
|
|
11195
|
+
- [Overview](https://docs.agent-swarm.dev/docs/ui)
|
|
11196
|
+
- [Sessions](https://docs.agent-swarm.dev/docs/ui/sessions)
|
|
11197
|
+
- [Configuration](https://docs.agent-swarm.dev/docs/ui/configuration)
|
|
11198
|
+
- [Comb](https://docs.agent-swarm.dev/docs/ui/comb)
|
|
11199
|
+
- [Integrations](https://docs.agent-swarm.dev/docs/integrations)
|
|
11200
|
+
- [Slack Integration](https://docs.agent-swarm.dev/docs/integrations/slack)
|
|
11201
|
+
- [GitHub App Integration](https://docs.agent-swarm.dev/docs/integrations/github)
|
|
11202
|
+
- [GitLab Integration](https://docs.agent-swarm.dev/docs/integrations/gitlab)
|
|
11203
|
+
- [Azure DevOps Integration](https://docs.agent-swarm.dev/docs/integrations/azure-devops)
|
|
11204
|
+
- [Bitbucket Integration](https://docs.agent-swarm.dev/docs/integrations/bitbucket)
|
|
11205
|
+
- [Linear](https://docs.agent-swarm.dev/docs/integrations/linear)
|
|
11206
|
+
- [Jira Integration](https://docs.agent-swarm.dev/docs/integrations/jira)
|
|
11207
|
+
- [Sentry Integration](https://docs.agent-swarm.dev/docs/integrations/sentry)
|
|
11208
|
+
- [AgentMail Integration](https://docs.agent-swarm.dev/docs/integrations/agentmail)
|
|
11209
|
+
- [Kapso (WhatsApp)](https://docs.agent-swarm.dev/docs/integrations/kapso)
|
|
11210
|
+
- [Chat SDK](https://docs.agent-swarm.dev/docs/integrations/chat-sdk)
|
|
11211
|
+
- [Composio](https://docs.agent-swarm.dev/docs/integrations/composio)
|
|
11212
|
+
- [Salesforce](https://docs.agent-swarm.dev/docs/integrations/salesforce)
|
|
11213
|
+
- [Microsoft Graph](https://docs.agent-swarm.dev/docs/integrations/microsoft-graph)
|
|
11214
|
+
- [Serply Search](https://docs.agent-swarm.dev/docs/integrations/serply)
|
|
11215
|
+
- [MCP Tools Reference](https://docs.agent-swarm.dev/docs/reference/mcp-tools)
|
|
11216
|
+
- [Environment Variables](https://docs.agent-swarm.dev/docs/reference/environment-variables)
|
|
11217
|
+
- [CLI Reference](https://docs.agent-swarm.dev/docs/reference/cli)
|
|
11218
|
+
- [The \`x\` command](https://docs.agent-swarm.dev/docs/reference/x-command)
|
|
11219
|
+
- [Telemetry](https://docs.agent-swarm.dev/docs/reference/telemetry)
|
|
11220
|
+
- [Contributing](https://docs.agent-swarm.dev/docs/contributing)
|
|
11221
|
+
<!-- docs-index:end -->
|
|
11222
|
+
`;
|
|
11223
|
+
|
|
11224
|
+
// templates/skills/swarm-extensions/config.json
|
|
11225
|
+
var config_default44 = `{
|
|
11061
11226
|
"kind": "skill",
|
|
11062
11227
|
"name": "swarm-extensions",
|
|
11063
11228
|
"displayName": "Swarm Extensions",
|
|
@@ -11074,7 +11239,7 @@ var config_default43 = `{
|
|
|
11074
11239
|
`;
|
|
11075
11240
|
|
|
11076
11241
|
// templates/skills/swarm-extensions/content.md
|
|
11077
|
-
var
|
|
11242
|
+
var content_default44 = `# Swarm Extensions
|
|
11078
11243
|
|
|
11079
11244
|
An extension is a trusted TypeScript hook bundle that runs inside the swarm API server. Use one when a rule must apply to the whole swarm: block or rewrite new tasks, route Slack channels, suppress follow-ups, change stalled-task remediation, guard tool calls, or react after a task or tool call finishes.
|
|
11080
11245
|
|
|
@@ -11255,10 +11420,10 @@ export default extension;
|
|
|
11255
11420
|
`;
|
|
11256
11421
|
|
|
11257
11422
|
// templates/skills/swarm-scripts/config.json
|
|
11258
|
-
var
|
|
11423
|
+
var config_default45 = '{\n "kind": "skill",\n "name": "swarm-scripts",\n "displayName": "Swarm Scripts",\n "slug": "swarm-scripts",\n "title": "Swarm Scripts",\n "description": "Bulk, repeat, fan-out, or data-heavy work: write and run swarm scripts (inline `script-run`, named `script-upsert`, durable `launch-script-run`). Covers the script-vs-tool rubric, the authoring contract (`args` first, `ctx` second), the seed catalog, connections and secrets, files and bash over the agent-fs drive (`ctx.fs`, `ctx.sh`), `db_query`, and exposing a script as an API.",\n "version": "1.3.0",\n "category": "skills",\n "placeholders": [],\n "runAllSeedersCandidate": true,\n "systemDefault": true,\n "tags": ["scripts", "automation", "context"]\n}\n';
|
|
11259
11424
|
|
|
11260
11425
|
// templates/skills/swarm-scripts/content.md
|
|
11261
|
-
var
|
|
11426
|
+
var content_default45 = `# Swarm Scripts
|
|
11262
11427
|
|
|
11263
11428
|
A swarm script is TypeScript that runs out of process with a typed Swarm SDK. Only its return value enters your context. Use one when direct tool calls would repeat, flood your context, or need deterministic processing over many records.
|
|
11264
11429
|
|
|
@@ -11453,7 +11618,7 @@ A named script can serve \`POST /api/x/script/<id>\` for callers outside the swa
|
|
|
11453
11618
|
`;
|
|
11454
11619
|
|
|
11455
11620
|
// templates/skills/tackle-gh-comments/config.json
|
|
11456
|
-
var
|
|
11621
|
+
var config_default46 = `{
|
|
11457
11622
|
"category": "skills",
|
|
11458
11623
|
"description": "Work through every review comment on a GitHub PR — fetch the threads, verify each claim against the code, fix what is real, then reply and mark each thread resolved before pushing. Use when the user says \\"tackle the PR comments\\", \\"address the review\\", \\"handle the bot comments\\", \\"check the comments on the PR\\", \\"resolve the review threads\\", or invokes /tackle-gh-comments. Project-agnostic; works in any repo with a GitHub remote.",
|
|
11459
11624
|
"displayName": "Tackle GH Comments",
|
|
@@ -11474,7 +11639,7 @@ var config_default45 = `{
|
|
|
11474
11639
|
`;
|
|
11475
11640
|
|
|
11476
11641
|
// templates/skills/tackle-gh-comments/content.md
|
|
11477
|
-
var
|
|
11642
|
+
var content_default46 = `# Tackle GitHub PR comments
|
|
11478
11643
|
|
|
11479
11644
|
Review threads and their resolved state live **only in GraphQL**. The REST API
|
|
11480
11645
|
cannot read \`isResolved\` and cannot resolve a thread, and \`gh pr view --comments\`
|
|
@@ -11593,7 +11758,7 @@ committed, and the branch is pushed.
|
|
|
11593
11758
|
`;
|
|
11594
11759
|
|
|
11595
11760
|
// templates/skills/taste-minimalist-skill/config.json
|
|
11596
|
-
var
|
|
11761
|
+
var config_default47 = `{
|
|
11597
11762
|
"kind": "skill",
|
|
11598
11763
|
"name": "taste-minimalist-skill",
|
|
11599
11764
|
"displayName": "Taste Minimalist Skill",
|
|
@@ -11615,7 +11780,7 @@ var config_default46 = `{
|
|
|
11615
11780
|
`;
|
|
11616
11781
|
|
|
11617
11782
|
// templates/skills/taste-minimalist-skill/content.md
|
|
11618
|
-
var
|
|
11783
|
+
var content_default47 = `> Vendored from [taste-skill](https://github.com/Leonxlnx/taste-skill) / [tasteskill.dev](https://www.tasteskill.dev/) at commit 06d6028b5c623016c59ce8536f578e5a1127b499.
|
|
11619
11784
|
> Upstream license: MIT, Copyright (c) 2026 Leonxlnx. See ../TASTE-SKILL-LICENSE.
|
|
11620
11785
|
|
|
11621
11786
|
# Protocol: Premium Utilitarian Minimalism UI Architect
|
|
@@ -11701,7 +11866,7 @@ When tasked with writing frontend code (HTML, React, Tailwind, Vue) or designing
|
|
|
11701
11866
|
`;
|
|
11702
11867
|
|
|
11703
11868
|
// templates/skills/tdd-planning/config.json
|
|
11704
|
-
var
|
|
11869
|
+
var config_default48 = `{
|
|
11705
11870
|
"category": "skills",
|
|
11706
11871
|
"description": "TDD-focused implementation planning. Creates plans with strict Red-Green-Commit/Rollback cycles for each step.",
|
|
11707
11872
|
"displayName": "TDD Planning",
|
|
@@ -11722,7 +11887,7 @@ var config_default47 = `{
|
|
|
11722
11887
|
`;
|
|
11723
11888
|
|
|
11724
11889
|
// templates/skills/tdd-planning/content.md
|
|
11725
|
-
var
|
|
11890
|
+
var content_default48 = `# TDD Planning
|
|
11726
11891
|
|
|
11727
11892
|
You are creating implementation plans that follow a strict Test-Driven Development approach. Every implementation step follows the TDD cycle: **RED → GREEN → COMMIT/ROLLBACK**.
|
|
11728
11893
|
|
|
@@ -11984,7 +12149,7 @@ Before finalizing any TDD plan, verify:
|
|
|
11984
12149
|
`;
|
|
11985
12150
|
|
|
11986
12151
|
// templates/skills/v-implementing/config.json
|
|
11987
|
-
var
|
|
12152
|
+
var config_default49 = `{
|
|
11988
12153
|
"category": "skills",
|
|
11989
12154
|
"description": "Parallel DAG-plan implementation skill. Reads a v-planning plan directory (root.md + step-<n>.md files), topologically schedules ready steps, and fans them out as parallel sub-agents. Use whenever the user invokes /v-implement, points at a plan directory produced by /v-plan, or asks to \\"run the parallel plan\\", \\"implement the DAG\\", or \\"fan out the steps\\" — even without those exact words. For linear plans (single .md file), use \`implementing\` instead.",
|
|
11990
12155
|
"displayName": "V-Implementing",
|
|
@@ -12005,10 +12170,10 @@ var config_default48 = `{
|
|
|
12005
12170
|
`;
|
|
12006
12171
|
|
|
12007
12172
|
// templates/skills/v-implementing/content.md
|
|
12008
|
-
var content_default48 = "# v-implementing\n\nYou are implementing an approved DAG-structured plan produced by `v-planning`. The plan is a directory with `root.md` + one `step-<n>.md` per node. Your job is to act as a **topological scheduler**: at each tick, find steps whose dependencies are all done, fan them out as parallel sub-agents (one per ready step), wait, repeat — until the DAG is drained. Then run Global Verification.\n\nThis is the parallel sibling of `implementing`. The orchestration model is the same (sub-agents do the work, main session coordinates), only the scheduler is different.\n\n## Working Agreement\n\n**All user-facing questions go through `AskUserQuestion`** — see `desplega:ask-user` for conventions. Never ask in chat as plain bullets.\n\n**All read/research/validation work goes through sub-agents** — keep raw tool output out of the main session. Default to `run_in_background: true`. The fan-out scheduler below is built on this.\n\nThe autonomy mode (below) controls how often you check in. AskUserQuestion is always the mechanism.\n\nFile-review is on by default — when significant changes land in a step (or wave), invoke `/file-review:file-review <path>` for inline feedback (skip only if Autopilot).\n\n## Autonomy Mode\n\n| Mode | Behavior |\n|------|----------|\n| **Autopilot** | Drain the DAG without pausing. Only stop on blocker / failed step. |\n| **Critical** (Default) | Pause when each *wave* of parallel steps completes; wait for manual verification before unlocking the next wave. |\n| **Verbose** | Pause after each individual step (even within a wave). |\n\n## Initial Setup Questions\n\nAfter understanding the plan and before the scheduler loop starts, gather implementation-specific details (skip in Autopilot):\n\n### 1. Branch / Worktree Setup\n\nCheck the current branch: `git branch --show-current`. Then check if the `wts` plugin is installed (look for `wts:wts` in available skills).\n\n**If wts is installed**, use **AskUserQuestion**:\n\n| Question | Options |\n|----------|---------|\n| \"You're on `<current-branch>`. Where would you like to implement?\" | 1. Continue on current branch, 2. Create a new branch, 3. Create a wts worktree |\n\n**If wts is not installed**, drop the worktree option.\n\n### 2. Commit Strategy\n\nUse **AskUserQuestion**:\n\n| Question | Options |\n|----------|---------|\n| \"How would you like to handle commits during parallel implementation?\" | 1. Commit after each step completes (Recommended), 2. Commit at the end (single commit), 3. Let me decide as I go |\n\nIf \"Commit after each step\" is selected, after a step's manual verification passes, create a commit: `[step-N] <step name>`.\n\n### 3. Orchestration Mode (only if the `Workflow` tool is available)\n\n| Question | Options |\n|----------|---------|\n| \"Run the DAG waves as Workflow scripts? (deterministic scheduling, parallel steps as agent() calls)\" | 1. Yes — Workflow waves, 2. No — Agent fan-out (Default) |\n\nA \"yes\" is the explicit opt-in the Workflow tool requires. If opted in, each wave of the scheduler loop below runs as one Workflow script — a `parallel()` of `agent()` calls, one per ready step, with `model`/`effort` per `desplega:delegate-work`. Everything else is unchanged: step agents still follow the `step-running` contract (atomic frontmatter claim, three-bucket verification), and autonomy-mode pause points sit **between** Workflow invocations, never inside one. In Autopilot these questions are skipped, so there is no opt-in — use Agent fan-out unless the user pre-authorized workflows.\n\n### 4. Code Review Mode\n\n| Question | Options |\n|----------|---------|\n| \"Run an automatic code review after each wave?\" | 1. Automatic two-axis review per wave (Recommended), 2. Only at the end (single review after the DAG drains), 3. Off — I'll review myself |\n\nIn **Autopilot**, skip the question and default to automatic per-wave review.\n\n## Getting Started\n\nGiven a plan directory path:\n\n1. **Read `root.md` fully** (no `limit`/`offset`). Capture: Overview, Current State, Desired End State, Implementation Approach, Global Verification.\n2. **Read every `step-<n>.md`'s frontmatter** to build the dependency graph (`id`, `depends_on`). You don't need to read step bodies up front — the sub-agents will do that.\n3. **Validate the DAG:**\n - No cycles\n - Every `depends_on` ID exists as a step file\n - At least one step has `depends_on: []` (otherwise nothing can start)\n4. **Set `root.md` frontmatter `status: in-progress`.**\n5. **Build a TodoWrite list** with one entry per step, marked `pending`.\n6. **Resume support:** if any step's body has `- [x]` boxes already (or its frontmatter says `status: completed` if the user added it), trust them and treat that step as `done`.\n\nIf no path given, ask via AskUserQuestion.\n\n## The Scheduler Loop\n\nThe scheduler reads each step's frontmatter `status` (`ready` | `claimed` | `done`) and `depends_on`. The frontmatter `status` field is the **single source of truth** — multiple orchestrator instances on the same plan dir coordinate through it (each `desplega:step-running` sub-agent atomically claims its step before doing work).\n\n```\nwhile any step has status != done:\n ready = [step for step in steps\n if step.status == \"ready\"\n and all(dep.status == \"done\" for dep in step.depends_on)]\n if not ready:\n # DAG drained, OR every remaining undone step is claimed by another worker\n if any step has status == claimed: wait for in-flight claims to resolve\n else: report stuck (likely cycle or unrecoverable failure)\n continue\n fan out each step in `ready` as a parallel `desplega:step-running` sub-agent\n wait for the wave to complete\n review reports; step-running has already updated frontmatter\n (status: done on success, status: ready on retry-able failure, status: claimed if held for investigation)\n if Critical mode: pause for manual verification of newly-completed steps\n if any failed: stop and ask user how to proceed\n```\n\n### Spawning a Step Sub-agent\n\nUse the `Agent` tool with `run_in_background: true`, invoking `desplega:step-running`. Pass:\n\n- **Step path**: full path to `step-<n>.md`\n- **Plan dir**: full path to the parent plan directory\n- **Agent ID**: unique ID for this sub-agent (e.g. orchestrator session ID + step ID + timestamp). step-running uses this for atomic claim + stale-claim detection.\n- **Plan-level context** (optional): a quick brief from `root.md`. step-running re-reads `root.md` itself, so this is just to reduce round-trips.\n\n`step-running` owns:\n- Atomic claim (rewrite frontmatter `status: ready` → `status: claimed, assignee: <agent-id>, claimed_at: <ts>`)\n- Three-bucket verification (Automated Verification, Automated QA, QA Doc identification)\n- Terminal status transition (`status: done` on success, `status: ready` on retry-able failure)\n- Reporting back\n\nThe orchestrator does NOT do step work itself — it delegates. See `desplega:step-running` for the full sub-agent contract.\n\n**Executor routing**: if the `desplega:delegate-work` skill is available, pick each step's executor per its routing matrix instead of defaulting to a `step-running` sub-agent — a step may route to a Codex variant (one worktree per parallel slice) or a specific Claude model tier. Only the executor choice changes; the scheduler, frontmatter claim protocol, and all other semantics here stay unchanged. When a step routes to Codex, the orchestrator owns the frontmatter bookkeeping that `step-running` would normally do (Codex must not edit plan files).\n\n### Wave Completion\n\nWhen a wave finishes:\n1. **Review each agent's report.** Mark steps `done` only if `completed` was reported.\n2. **Run the wave code review** (unless review mode is Off) — invoke `desplega:code-reviewing` on the wave's combined diff: Standards + Spec axes as parallel background sub-agents (routed per `desplega:delegate-work`), spec source = the completed steps' bodies and Success Criteria. Critical findings block those steps' commits — fix and re-verify first. If \"Only at the end\" was selected, run one review over the full diff after the DAG drains instead.\n3. **Handle `QA Doc: <path>`** — for each step that reported a QA doc, invoke `desplega:qa` against that path. The Automated QA bucket inside the step is already handled by the sub-agent; only the linked doc needs separate orchestration here. (`QA: n/a` → proceed normally.)\n4. **Manual verification (if not Autopilot)** — present manual verification items from each completed step's body. Wait for user confirmation. Don't tick manual boxes until confirmed.\n5. **Commits (if commit-per-step was selected)** — after a step's manual verification passes, create a commit: `[step-N] <step name>`.\n6. **Loop** — recompute `ready` and start the next wave.\n\n## Handling Failures and Mismatches\n\nIf a sub-agent reports `failed` or `blocked`, or you spot a mismatch between plan and reality:\n\n| Question | Options |\n|----------|---------|\n| \"[step-N] [issue]. How should I proceed?\" | 1. Adapt step (edit step-N.md and retry), 2. Retry as-is, 3. Skip and continue (mark step blocked), 4. Stop the run |\n\nIn Autopilot mode, use best judgment, document the decision in the step file, and continue if non-fatal.\n\n## After the DAG Drains\n\nWhen every step is `done`:\n\n1. Run **Global Verification** from `root.md`. Tick automated checks; surface manual checks to the user.\n2. Set `root.md` frontmatter `status: completed`.\n3. Offer post-implementation auditing: \"Would you like me to run `/verify-plan` and `/review` on the plan directory?\"\n4. If commit-per-step was off, offer to create a single bundled commit now.\n5. If the work ships as a GitHub PR: once review comments land, address them with `desplega:tackle-gh-comments` (fetch threads, verify each claim, fix, reply, resolve — push last).\n\n## Important Guidelines\n\n1. **One step = one sub-agent.** Don't bundle steps into a single agent even if they're in the same wave — fan-out is the whole point.\n2. **Plan-level context goes to every sub-agent.** Sibling step bodies do not.\n3. **The DAG is canonical via step frontmatter** — if `root.md`'s table is out of sync, trust the frontmatter.\n4. **Resume works step-granular.** If the user re-runs `/v-implement` mid-DAG, completed steps stay completed; only undone ones rerun.\n5. **Don't tick manual checkboxes** until the user confirms — automated boxes can be ticked by the sub-agent or the orchestrator.\n\n## Review Integration\n\nIf `file-review` is available and the user opted in:\n- After each step's significant code changes, invoke `/file-review:file-review <changed-file>`.\n- Process feedback with `file-review:process-review` before treating the step as done.\n- Skip in Autopilot.\n";
|
|
12173
|
+
var content_default49 = "# v-implementing\n\nYou are implementing an approved DAG-structured plan produced by `v-planning`. The plan is a directory with `root.md` + one `step-<n>.md` per node. Your job is to act as a **topological scheduler**: at each tick, find steps whose dependencies are all done, fan them out as parallel sub-agents (one per ready step), wait, repeat — until the DAG is drained. Then run Global Verification.\n\nThis is the parallel sibling of `implementing`. The orchestration model is the same (sub-agents do the work, main session coordinates), only the scheduler is different.\n\n## Working Agreement\n\n**All user-facing questions go through `AskUserQuestion`** — see `desplega:ask-user` for conventions. Never ask in chat as plain bullets.\n\n**All read/research/validation work goes through sub-agents** — keep raw tool output out of the main session. Default to `run_in_background: true`. The fan-out scheduler below is built on this.\n\nThe autonomy mode (below) controls how often you check in. AskUserQuestion is always the mechanism.\n\nFile-review is on by default — when significant changes land in a step (or wave), invoke `/file-review:file-review <path>` for inline feedback (skip only if Autopilot).\n\n## Autonomy Mode\n\n| Mode | Behavior |\n|------|----------|\n| **Autopilot** | Drain the DAG without pausing. Only stop on blocker / failed step. |\n| **Critical** (Default) | Pause when each *wave* of parallel steps completes; wait for manual verification before unlocking the next wave. |\n| **Verbose** | Pause after each individual step (even within a wave). |\n\n## Initial Setup Questions\n\nAfter understanding the plan and before the scheduler loop starts, gather implementation-specific details (skip in Autopilot):\n\n### 1. Branch / Worktree Setup\n\nCheck the current branch: `git branch --show-current`. Then check if the `wts` plugin is installed (look for `wts:wts` in available skills).\n\n**If wts is installed**, use **AskUserQuestion**:\n\n| Question | Options |\n|----------|---------|\n| \"You're on `<current-branch>`. Where would you like to implement?\" | 1. Continue on current branch, 2. Create a new branch, 3. Create a wts worktree |\n\n**If wts is not installed**, drop the worktree option.\n\n### 2. Commit Strategy\n\nUse **AskUserQuestion**:\n\n| Question | Options |\n|----------|---------|\n| \"How would you like to handle commits during parallel implementation?\" | 1. Commit after each step completes (Recommended), 2. Commit at the end (single commit), 3. Let me decide as I go |\n\nIf \"Commit after each step\" is selected, after a step's manual verification passes, create a commit: `[step-N] <step name>`.\n\n### 3. Orchestration Mode (only if the `Workflow` tool is available)\n\n| Question | Options |\n|----------|---------|\n| \"Run the DAG waves as Workflow scripts? (deterministic scheduling, parallel steps as agent() calls)\" | 1. Yes — Workflow waves, 2. No — Agent fan-out (Default) |\n\nA \"yes\" is the explicit opt-in the Workflow tool requires. If opted in, each wave of the scheduler loop below runs as one Workflow script — a `parallel()` of `agent()` calls, one per ready step, with `model`/`effort` per `desplega:delegate-work`. Everything else is unchanged: step agents still follow the `step-running` contract (atomic frontmatter claim, three-bucket verification), and autonomy-mode pause points sit **between** Workflow invocations, never inside one. In Autopilot these questions are skipped, so there is no opt-in — use Agent fan-out unless the user pre-authorized workflows.\n\n### 4. Code Review Mode\n\n| Question | Options |\n|----------|---------|\n| \"Run an automatic code review after each wave?\" | 1. Automatic two-axis review per wave (Recommended), 2. Only at the end (single review after the DAG drains), 3. Off — I'll review myself |\n\nIn **Autopilot**, skip the question and default to automatic per-wave review.\n\n## Getting Started\n\nGiven a plan directory path:\n\n1. **Read `root.md` fully** (no `limit`/`offset`). Capture: Overview, Current State, Desired End State, Implementation Approach, Global Verification.\n2. **Read every `step-<n>.md`'s frontmatter** to build the dependency graph (`id`, `depends_on`). You don't need to read step bodies up front — the sub-agents will do that.\n3. **Validate the DAG:**\n - No cycles\n - Every `depends_on` ID exists as a step file\n - At least one step has `depends_on: []` (otherwise nothing can start)\n4. **Set `root.md` frontmatter `status: in-progress`.**\n5. **Build a TodoWrite list** with one entry per step, marked `pending`.\n6. **Resume support:** if any step's body has `- [x]` boxes already (or its frontmatter says `status: completed` if the user added it), trust them and treat that step as `done`.\n\nIf no path given, ask via AskUserQuestion.\n\n## The Scheduler Loop\n\nThe scheduler reads each step's frontmatter `status` (`ready` | `claimed` | `done`) and `depends_on`. The frontmatter `status` field is the **single source of truth** — multiple orchestrator instances on the same plan dir coordinate through it (each `desplega:step-running` sub-agent atomically claims its step before doing work).\n\n```\nwhile any step has status != done:\n ready = [step for step in steps\n if step.status == \"ready\"\n and all(dep.status == \"done\" for dep in step.depends_on)]\n if not ready:\n # DAG drained, OR every remaining undone step is claimed by another worker\n if any step has status == claimed: wait for in-flight claims to resolve\n else: report stuck (likely cycle or unrecoverable failure)\n continue\n fan out each step in `ready` as a parallel `desplega:step-running` sub-agent\n wait for the wave to complete\n review reports; step-running has already updated frontmatter\n (status: done on success, status: ready on retry-able failure, status: claimed if held for investigation)\n if Critical mode: pause for manual verification of newly-completed steps\n if any failed: stop and ask user how to proceed\n```\n\n### Spawning a Step Sub-agent\n\nUse the `Agent` tool with `run_in_background: true`, invoking `desplega:step-running`. Pass:\n\n- **Step path**: full path to `step-<n>.md`\n- **Plan dir**: full path to the parent plan directory\n- **Agent ID**: unique ID for this sub-agent (e.g. orchestrator session ID + step ID + timestamp). step-running uses this for atomic claim + stale-claim detection.\n- **Plan-level context** (optional): a quick brief from `root.md`. step-running re-reads `root.md` itself, so this is just to reduce round-trips.\n\n`step-running` owns:\n- Atomic claim (rewrite frontmatter `status: ready` → `status: claimed, assignee: <agent-id>, claimed_at: <ts>`)\n- Three-bucket verification (Automated Verification, Automated QA, QA Doc identification)\n- Terminal status transition (`status: done` on success, `status: ready` on retry-able failure)\n- Reporting back\n\nThe orchestrator does NOT do step work itself — it delegates. See `desplega:step-running` for the full sub-agent contract.\n\n**Executor routing**: if the `desplega:delegate-work` skill is available, pick each step's executor per its routing matrix instead of defaulting to a `step-running` sub-agent — a step may route to a Codex variant (one worktree per parallel slice) or a specific Claude model tier. Only the executor choice changes; the scheduler, frontmatter claim protocol, and all other semantics here stay unchanged. When a step routes to Codex, the orchestrator owns the frontmatter bookkeeping that `step-running` would normally do (Codex must not edit plan files).\n\n### Wave Completion\n\nWhen a wave finishes:\n1. **Review each agent's report.** Mark steps `done` only if `completed` was reported.\n2. **Run the wave code review** (unless review mode is Off) — invoke `desplega:code-reviewing` on the wave's combined diff: Standards + Spec axes as parallel background sub-agents (routed per `desplega:delegate-work`), spec source = the completed steps' bodies and Success Criteria. Critical findings block those steps' commits — fix and re-verify first. If \"Only at the end\" was selected, run one review over the full diff after the DAG drains instead.\n3. **Handle `QA Doc: <path>`** — for each step that reported a QA doc, invoke `desplega:qa` against that path. The Automated QA bucket inside the step is already handled by the sub-agent; only the linked doc needs separate orchestration here. (`QA: n/a` → proceed normally.)\n4. **Manual verification (if not Autopilot)** — present manual verification items from each completed step's body. Wait for user confirmation. Don't tick manual boxes until confirmed.\n5. **Commits (if commit-per-step was selected)** — after a step's manual verification passes, create a commit: `[step-N] <step name>`.\n6. **Loop** — recompute `ready` and start the next wave.\n\n## Handling Failures and Mismatches\n\nIf a sub-agent reports `failed` or `blocked`, or you spot a mismatch between plan and reality:\n\n| Question | Options |\n|----------|---------|\n| \"[step-N] [issue]. How should I proceed?\" | 1. Adapt step (edit step-N.md and retry), 2. Retry as-is, 3. Skip and continue (mark step blocked), 4. Stop the run |\n\nIn Autopilot mode, use best judgment, document the decision in the step file, and continue if non-fatal.\n\n## After the DAG Drains\n\nWhen every step is `done`:\n\n1. Run **Global Verification** from `root.md`. Tick automated checks; surface manual checks to the user.\n2. Set `root.md` frontmatter `status: completed`.\n3. Offer post-implementation auditing: \"Would you like me to run `/verify-plan` and `/review` on the plan directory?\"\n4. If commit-per-step was off, offer to create a single bundled commit now.\n5. If the work ships as a GitHub PR: once review comments land, address them with `desplega:tackle-gh-comments` (fetch threads, verify each claim, fix, reply, resolve — push last).\n\n## Important Guidelines\n\n1. **One step = one sub-agent.** Don't bundle steps into a single agent even if they're in the same wave — fan-out is the whole point.\n2. **Plan-level context goes to every sub-agent.** Sibling step bodies do not.\n3. **The DAG is canonical via step frontmatter** — if `root.md`'s table is out of sync, trust the frontmatter.\n4. **Resume works step-granular.** If the user re-runs `/v-implement` mid-DAG, completed steps stay completed; only undone ones rerun.\n5. **Don't tick manual checkboxes** until the user confirms — automated boxes can be ticked by the sub-agent or the orchestrator.\n\n## Review Integration\n\nIf `file-review` is available and the user opted in:\n- After each step's significant code changes, invoke `/file-review:file-review <changed-file>`.\n- Process feedback with `file-review:process-review` before treating the step as done.\n- Skip in Autopilot.\n";
|
|
12009
12174
|
|
|
12010
12175
|
// templates/skills/v-planning/config.json
|
|
12011
|
-
var
|
|
12176
|
+
var config_default50 = `{
|
|
12012
12177
|
"category": "skills",
|
|
12013
12178
|
"description": "Vertical / parallel implementation planning skill. Creates DAG-structured plan directories where each step is an independent, QA-able vertical slice that sub-agents can pick up and implement in parallel. Use whenever the user wants a plan that fans out (multiple independent features), invokes /v-plan, or asks for a \\"parallel plan\\", \\"DAG plan\\", \\"vertical plan\\", or \\"plan that can be parallelized\\" — even if they don't say those exact words. Prefer the linear \`planning\` skill for strictly sequential work.",
|
|
12014
12179
|
"displayName": "V-Planning",
|
|
@@ -12029,7 +12194,7 @@ var config_default49 = `{
|
|
|
12029
12194
|
`;
|
|
12030
12195
|
|
|
12031
12196
|
// templates/skills/v-planning/content.md
|
|
12032
|
-
var
|
|
12197
|
+
var content_default50 = `# v-planning
|
|
12033
12198
|
|
|
12034
12199
|
You create implementation plans as a **DAG of vertical steps** — each step a complete, QA-able slice of value (DB + API + UI + tests for one feature). The DAG captures feature-level dependencies, so independent steps can be implemented in parallel by sub-agents.
|
|
12035
12200
|
|
|
@@ -12120,7 +12285,7 @@ Structure validation runs automatically (rule 9, Haiku sub-agent).
|
|
|
12120
12285
|
`;
|
|
12121
12286
|
|
|
12122
12287
|
// templates/skills/verifying/config.json
|
|
12123
|
-
var
|
|
12288
|
+
var config_default51 = `{
|
|
12124
12289
|
"category": "skills",
|
|
12125
12290
|
"description": "Post-implementation plan verification. Cross-references plans against actual changes for completeness and accuracy.",
|
|
12126
12291
|
"displayName": "Verifying",
|
|
@@ -12141,7 +12306,7 @@ var config_default50 = `{
|
|
|
12141
12306
|
`;
|
|
12142
12307
|
|
|
12143
12308
|
// templates/skills/verifying/content.md
|
|
12144
|
-
var
|
|
12309
|
+
var content_default51 = `# Verifying
|
|
12145
12310
|
|
|
12146
12311
|
You are performing a post-implementation audit of a plan, cross-referencing it against actual changes to ensure nothing was missed, nothing is stale, and the implementation matches what was planned.
|
|
12147
12312
|
|
|
@@ -12289,7 +12454,7 @@ File-review is on by default (unless Autopilot):
|
|
|
12289
12454
|
`;
|
|
12290
12455
|
|
|
12291
12456
|
// templates/skills/work-on-task/config.json
|
|
12292
|
-
var
|
|
12457
|
+
var config_default52 = `{
|
|
12293
12458
|
"kind": "skill",
|
|
12294
12459
|
"name": "work-on-task",
|
|
12295
12460
|
"displayName": "Work On Task",
|
|
@@ -12306,10 +12471,10 @@ var config_default51 = `{
|
|
|
12306
12471
|
`;
|
|
12307
12472
|
|
|
12308
12473
|
// templates/skills/work-on-task/content.md
|
|
12309
|
-
var
|
|
12474
|
+
var content_default52 = "# Working on a task\n\nThe taskId follows the command. Without one, call `get-tasks` with `mineOnly: true` and take your `pending` or `in_progress` task. If there is none, say so and stop.\n\nThis message carries the task text, its attachments, its output format, and memories from past sessions. If it does not (you invoked this command yourself, or the context was compacted), run the `task-context-gathering` script with the taskId.\n\nWhen the task names a skill (`researching`, `planning`, `implementing`), use it. Otherwise work directly.\n\nFinish the task with one of the four endings in your operating contract: `completed`, `defer-task`, `request-human-input`, or `failed`. Then stop.\n\nResuming (a resume task, or work cut by a graceful shutdown): read the parent's last progress line, then re-read live state once (PR state and head SHA, branch, `git status`) before new work. Re-run controls only if the head moved. Never redo a pushed commit or open a second PR for the same branch. Store a progress line with branch, PR number and head SHA each time you push. A document task has no branch: its live state is the brief's agent-fs output path and the task attachments. Run `agent-fs ls` on that path, download any partial and extend it. Then list the task's local work directory: a shutdown can leave the newest draft only there, or leave cache files half-written. Parse every cache file, delete the ones that fail, and re-run only the stages whose output is missing. Never re-run collection steps that already produced artifacts. A render task (video, image, generated page) has no branch either: its live state is the local project directory plus the brief's agent-fs output. List both; timestamps are hints only. Before reusing an output, verify that it exists, is complete and valid, and corresponds to the current sources and render settings (for example, using recorded input/settings hashes). Download remote output and verify its bytes and provenance; agent-fs listing dates alone do not establish freshness. Re-render missing, invalid, incomplete or stale output. Hand over the live app link `${AGENT_FS_LIVE_URL}/file/~/<org>/<drive>/<path>` by default. Use a share link only when the requester asked for one or the reader has no agent-fs login: then reuse a usable one, and create a missing one or replace an expired, revoked or view-exhausted one without re-rendering a valid unchanged output. A task that covers several PRs re-reads every PR in scope (state, mergedAt, head SHA), not only the first: a PR that merged during the shutdown takes no more pushes. If your task's `model` differs from the parent's, say so in the output, because the result's provenance changed.\n\nWrite times in replies, outputs and defer notes in the requester's timezone when the Requester Profile names one, never raw UTC.\n\nIf the user interrupts, follow their instructions. To resume, call `/work-on-task <taskId>` again.\n";
|
|
12310
12475
|
|
|
12311
12476
|
// templates/skills/workflow-iterate/config.json
|
|
12312
|
-
var
|
|
12477
|
+
var config_default53 = `{
|
|
12313
12478
|
"kind": "skill",
|
|
12314
12479
|
"name": "workflow-iterate",
|
|
12315
12480
|
"displayName": "Workflow Iteration",
|
|
@@ -12331,7 +12496,7 @@ var config_default52 = `{
|
|
|
12331
12496
|
`;
|
|
12332
12497
|
|
|
12333
12498
|
// templates/skills/workflow-iterate/content.md
|
|
12334
|
-
var
|
|
12499
|
+
var content_default53 = `# Workflow Iteration
|
|
12335
12500
|
|
|
12336
12501
|
Use this skill when you need to change an existing workflow without breaking live runs. The goal is to make small, verified revisions: inspect the current workflow, diagnose the failing step, patch only the required node or edge, trigger a realistic run, and keep iterating until the run reaches the intended terminal state.
|
|
12337
12502
|
|
|
@@ -12608,7 +12773,7 @@ The same rules apply to a standalone \`request-human-input\` call.
|
|
|
12608
12773
|
`;
|
|
12609
12774
|
|
|
12610
12775
|
// templates/skills/workflow-structured-output/config.json
|
|
12611
|
-
var
|
|
12776
|
+
var config_default54 = `{
|
|
12612
12777
|
"kind": "skill",
|
|
12613
12778
|
"name": "workflow-structured-output",
|
|
12614
12779
|
"displayName": "Workflow Structured Output",
|
|
@@ -12625,10 +12790,10 @@ var config_default53 = `{
|
|
|
12625
12790
|
`;
|
|
12626
12791
|
|
|
12627
12792
|
// templates/skills/workflow-structured-output/content.md
|
|
12628
|
-
var
|
|
12793
|
+
var content_default54 = '# Workflow Structured Output\n\n> **Companion skill — `workflow-iterate` (author-side).** This skill is for *workers* assigned a task spawned by an `agent-task` workflow node with an `outputSchema`. The author-side counterpart `workflow-iterate` covers how the workflow defines that schema, why gates downstream depend on it, and how to debug failed runs. If you ever need to understand *why* a particular schema is shaped the way it is — or you\'re switching from worker to author mode — read `workflow-iterate`.\n\n## Failure reason → fix (read this first)\n\nIf you see this failure reason on a task, the fix is always the same:\n\n| failureReason contains | What it means | Fix |\n|---|---|---|\n| `Task has an outputSchema but no output was provided` | You called `store-progress` without an `output` when the task required a JSON object matching `outputSchema` | Re-call `store-progress` with `status: "completed"` and `output` = a **stringified JSON** matching the schema exactly |\n| `Task output must be valid JSON` / `Task output does not match the outputSchema` | You passed invalid JSON, omitted required fields, or used the wrong types | Re-read the schema, include every `required` field with the exact key names, re-call `store-progress` |\n\n**You can re-call `store-progress` even after a rejection.** Your prior progress updates do not count as the final output. Fix the JSON and try again.\n\n## Pre-flight checklist (run through before calling store-progress)\n\n1. **Do the task details contain an actual `outputSchema`?** If yes, runtime\n enforcement is active: continue with that exact schema.\n2. **If there is no `outputSchema`, does the user provide an explicit JSON Output\n Format or interface?** Honor it as the requested output contract even though\n the runner is not enforcing an `outputSchema`.\n3. **Are workflow origin or tags such as `deterministic`, `litmus`, `validation`,\n or `context` the only signals?** They are heuristics only. Re-read the task\n details for an actual schema or explicit format. If neither exists, do not\n invent one; plain-text output is allowed.\n4. **Can I quote the exact required shape from the task details?** Use its exact\n keys and types, with every required field and no guessed renames.\n5. **Is my `output` a string (stringified JSON), not an object?** For a structured\n contract, `store-progress.output` should be a JSON string.\n6. **Only after the applicable contract is clear:** call `store-progress` with\n `status: "completed"` and the stringified JSON, or use plain text when no\n structured contract exists.\n\nIf the required shape is unclear, re-read the task details. Never synthesize a\nschema from tags or workflow origin.\n\n## Why this exists\n\nWhen a task has an actual `outputSchema`, the runner validates\n`store-progress.output` against it and rejects missing output, invalid JSON, or\nschema mismatches with one of the current messages listed above. A JSON Output\nFormat or interface without `task.outputSchema` remains a user instruction, but\nit is not the same runtime enforcement mechanism. Missing the distinction can\nturn completed work into a rejected terminal update, so check the task contract\nbefore reporting completion.\n\n## How to spot a structured-output task\n\nTreat these signals differently:\n\n- An actual `task.outputSchema` means JSON is runtime-enforced.\n- An explicit "Output Format", "Return a JSON object", or TypeScript/JSON\n interface is a user contract to return that shape, even without runtime\n enforcement.\n- Tags such as `deterministic`, `litmus`, `validation`, `releases`, or `context`,\n and `source = workflow`, only tell you to inspect the task details carefully.\n They do not prove a schema exists.\n\nWhen in doubt, re-read the task details and its `outputSchema`. Do not invent a\nschema or required fields.\n\n## How to complete correctly\n\n1. **Build the JSON object** that matches the actual `outputSchema` or explicit\n user-provided JSON format. Include every required field and use the exact key\n names from that contract.\n2. **Stringify it** — `store-progress.output` must be a string, not an object. Use `JSON.stringify(obj)` in your head.\n3. **Call store-progress** with `status: "completed"` and that JSON string as `output`.\n\n### Example — skip case\n\nTask has schema `{skip: bool, reason?: str, contextPath?: str, ...}` and you\'re skipping because the release already exists:\n\n```\nstore-progress(\n taskId,\n status="completed",\n output=\'{"skip":true,"reason":"Release already exists for this week"}\'\n)\n```\n\n### Example — full run\n\n```\nstore-progress(\n taskId,\n status="completed",\n output=\'{"skip":false,"contextPath":"release-runs/2026-04-20/context.json","commitCount":42,"repos":["example-repo"],"repoPatternsSource":"cache","dateRange":"2026-04-13 to 2026-04-20"}\'\n)\n```\n\n### Example — litmus / validation verdict\n\n```\nstore-progress(\n taskId,\n status="completed",\n output=\'{"verdict":"publish","reason":"5 user-facing changes; threshold met"}\'\n)\n```\n\n## Anti-patterns for an `outputSchema` task\n\n- `output: "Done. Context written to agent-fs at release-runs/2026-04-20/context.json"`\n- `output: "Published release notes for week of 2026-04-20"`\n- `output: "Verdict: publish"`\n- Calling `store-progress` with `status: "completed"` and no `output` at all\n- JSON that\'s missing any `required` field from the schema\n- JSON with extra keys instead of the schema\'s exact keys\n\n## Recovery if you realize mid-task\n\nIf you\'ve done all the work but forgot the JSON contract, just call `store-progress` again with the correct JSON string in `output`. Your prior progress updates don\'t count as the final output.\n\n## Verify before completing\n\nRead your task description once more. Find the schema. Build the JSON. Then complete. Takes 30 seconds. Saves a workflow re-run.\n\n## See also\n\n- **`workflow-iterate`** — the author-side counterpart of this skill. Read it if you\'re editing the workflow that produced this task, or want to understand why this particular schema is shaped the way it is (which gates downstream depend on it, etc.).\n';
|
|
12629
12794
|
|
|
12630
12795
|
// templates/skills/wts-expert/config.json
|
|
12631
|
-
var
|
|
12796
|
+
var config_default55 = `{
|
|
12632
12797
|
"category": "skills",
|
|
12633
12798
|
"description": "Git worktree management expert for @desplega.ai/wts. Use when the user asks about git worktrees, wts commands, worktree workflows, or wants help managing multiple branches simultaneously.",
|
|
12634
12799
|
"displayName": "WTS Expert",
|
|
@@ -12649,7 +12814,7 @@ var config_default54 = `{
|
|
|
12649
12814
|
`;
|
|
12650
12815
|
|
|
12651
12816
|
// templates/skills/wts-expert/content.md
|
|
12652
|
-
var
|
|
12817
|
+
var content_default55 = `# WTS Expert
|
|
12653
12818
|
|
|
12654
12819
|
You are an expert on \`@desplega.ai/wts\`, a CLI tool for managing Git worktrees with tmux integration, Claude Code launcher support, and GitHub PR creation.
|
|
12655
12820
|
|
|
@@ -15629,11 +15794,11 @@ var BUILT_IN_SKILL_SOURCES = [
|
|
|
15629
15794
|
{ config: config_default37, body: content_default37 },
|
|
15630
15795
|
{ config: config_default38, body: content_default38 },
|
|
15631
15796
|
{ config: config_default43, body: content_default43 },
|
|
15797
|
+
{ config: config_default44, body: content_default44 },
|
|
15632
15798
|
{ config: config_default39, body: content_default39 },
|
|
15633
15799
|
{ config: config_default40, body: content_default40 },
|
|
15634
15800
|
{ config: config_default41, body: content_default41 },
|
|
15635
15801
|
{ config: config_default42, body: content_default42 },
|
|
15636
|
-
{ config: config_default44, body: content_default44 },
|
|
15637
15802
|
{ config: config_default45, body: content_default45 },
|
|
15638
15803
|
{ config: config_default46, body: content_default46 },
|
|
15639
15804
|
{ config: config_default47, body: content_default47 },
|
|
@@ -15643,7 +15808,8 @@ var BUILT_IN_SKILL_SOURCES = [
|
|
|
15643
15808
|
{ config: config_default51, body: content_default51 },
|
|
15644
15809
|
{ config: config_default52, body: content_default52 },
|
|
15645
15810
|
{ config: config_default53, body: content_default53 },
|
|
15646
|
-
{ config: config_default54, body: content_default54 }
|
|
15811
|
+
{ config: config_default54, body: content_default54 },
|
|
15812
|
+
{ config: config_default55, body: content_default55 }
|
|
15647
15813
|
];
|
|
15648
15814
|
function canonicalFiles(files) {
|
|
15649
15815
|
return [...files].sort((a, b) => a.path.localeCompare(b.path)).map((file) => `${file.path}
|
|
@@ -15897,7 +16063,7 @@ async function runSeeders(seeders, opts) {
|
|
|
15897
16063
|
var import_cron_parser = __toESM(require_dist2(), 1);
|
|
15898
16064
|
|
|
15899
16065
|
// templates/schedules/daily-blocker-digest/config.json
|
|
15900
|
-
var
|
|
16066
|
+
var config_default56 = `{
|
|
15901
16067
|
"kind": "schedule",
|
|
15902
16068
|
"name": "daily-blocker-digest",
|
|
15903
16069
|
"displayName": "Daily Blocker Digest",
|
|
@@ -15919,7 +16085,7 @@ var config_default55 = `{
|
|
|
15919
16085
|
`;
|
|
15920
16086
|
|
|
15921
16087
|
// templates/schedules/daily-blocker-digest/content.md
|
|
15922
|
-
var
|
|
16088
|
+
var content_default56 = `# Daily Blocker Digest
|
|
15923
16089
|
|
|
15924
16090
|
Delivery uses configured admin channels with an in-app fallback.
|
|
15925
16091
|
|
|
@@ -16088,7 +16254,7 @@ Call \`store-progress\` with status \`completed\` and an output paragraph coveri
|
|
|
16088
16254
|
`;
|
|
16089
16255
|
|
|
16090
16256
|
// templates/schedules/daily-compounding-reflection/config.json
|
|
16091
|
-
var
|
|
16257
|
+
var config_default57 = `{
|
|
16092
16258
|
"kind": "schedule",
|
|
16093
16259
|
"name": "daily-compounding-reflection",
|
|
16094
16260
|
"displayName": "Daily Evolution",
|
|
@@ -16111,7 +16277,7 @@ var config_default56 = `{
|
|
|
16111
16277
|
`;
|
|
16112
16278
|
|
|
16113
16279
|
// templates/schedules/daily-compounding-reflection/content.md
|
|
16114
|
-
var
|
|
16280
|
+
var content_default57 = `# Daily Compounding Reflection
|
|
16115
16281
|
|
|
16116
16282
|
Delivery uses configured admin channels with an in-app fallback.
|
|
16117
16283
|
|
|
@@ -16336,7 +16502,7 @@ If you have zero changes across all three folds and zero deferred items, somethi
|
|
|
16336
16502
|
`;
|
|
16337
16503
|
|
|
16338
16504
|
// templates/schedules/daily-hn-briefing/config.json
|
|
16339
|
-
var
|
|
16505
|
+
var config_default58 = `{
|
|
16340
16506
|
"kind": "schedule",
|
|
16341
16507
|
"name": "daily-hn-briefing",
|
|
16342
16508
|
"displayName": "Daily Hacker News Briefing",
|
|
@@ -16353,7 +16519,7 @@ var config_default57 = `{
|
|
|
16353
16519
|
`;
|
|
16354
16520
|
|
|
16355
16521
|
// templates/schedules/daily-hn-briefing/content.md
|
|
16356
|
-
var
|
|
16522
|
+
var content_default58 = `# Daily Hacker News Briefing
|
|
16357
16523
|
|
|
16358
16524
|
Template parameters: {{REPORT_EMAIL}}
|
|
16359
16525
|
|
|
@@ -16455,7 +16621,7 @@ IMPORTANT:
|
|
|
16455
16621
|
`;
|
|
16456
16622
|
|
|
16457
16623
|
// templates/schedules/daily-status-report/config.json
|
|
16458
|
-
var
|
|
16624
|
+
var config_default59 = `{
|
|
16459
16625
|
"kind": "schedule",
|
|
16460
16626
|
"name": "daily-status-report",
|
|
16461
16627
|
"displayName": "Daily Status Report",
|
|
@@ -16477,7 +16643,7 @@ var config_default58 = `{
|
|
|
16477
16643
|
`;
|
|
16478
16644
|
|
|
16479
16645
|
// templates/schedules/daily-status-report/content.md
|
|
16480
|
-
var
|
|
16646
|
+
var content_default59 = `# Daily Status Report
|
|
16481
16647
|
|
|
16482
16648
|
Give the operator one daily read on whether the swarm is healthy: what's running, what's failed, what's waiting on them.
|
|
16483
16649
|
|
|
@@ -16573,7 +16739,7 @@ More than 3 qualify ⇒ post the 3 that matter and put the rest in the task outp
|
|
|
16573
16739
|
`;
|
|
16574
16740
|
|
|
16575
16741
|
// templates/schedules/daily-swarm-update-check/config.json
|
|
16576
|
-
var
|
|
16742
|
+
var config_default60 = `{
|
|
16577
16743
|
"kind": "schedule",
|
|
16578
16744
|
"name": "daily-swarm-update-check",
|
|
16579
16745
|
"displayName": "Daily Agent-Swarm Update Check",
|
|
@@ -16595,7 +16761,7 @@ var config_default59 = `{
|
|
|
16595
16761
|
`;
|
|
16596
16762
|
|
|
16597
16763
|
// templates/schedules/daily-swarm-update-check/content.md
|
|
16598
|
-
var
|
|
16764
|
+
var content_default60 = `# Daily Agent-Swarm Update Check
|
|
16599
16765
|
|
|
16600
16766
|
Zero-config auto-update watchdog: compares the swarm's own running version against the latest published GitHub release of \`desplega-ai/agent-swarm\`, and flags the operator when an upgrade is available. No placeholders and no integration required — every install gets this by default.
|
|
16601
16767
|
|
|
@@ -16647,7 +16813,7 @@ Do not attempt the upgrade yourself — this schedule only detects and reports.
|
|
|
16647
16813
|
`;
|
|
16648
16814
|
|
|
16649
16815
|
// templates/schedules/daily-workflow-health-audit/config.json
|
|
16650
|
-
var
|
|
16816
|
+
var config_default61 = `{
|
|
16651
16817
|
"kind": "schedule",
|
|
16652
16818
|
"name": "daily-workflow-health-audit",
|
|
16653
16819
|
"displayName": "Daily Workflow Health Audit",
|
|
@@ -16669,7 +16835,7 @@ var config_default60 = `{
|
|
|
16669
16835
|
`;
|
|
16670
16836
|
|
|
16671
16837
|
// templates/schedules/daily-workflow-health-audit/content.md
|
|
16672
|
-
var
|
|
16838
|
+
var content_default61 = `# Daily Workflow Health Audit
|
|
16673
16839
|
|
|
16674
16840
|
Delivery uses configured admin channels with an in-app fallback.
|
|
16675
16841
|
|
|
@@ -16863,7 +17029,7 @@ Omit any section whose count is 0. **HARD CEILING 700 characters — not the 400
|
|
|
16863
17029
|
`;
|
|
16864
17030
|
|
|
16865
17031
|
// templates/schedules/gtm-weekly-review/config.json
|
|
16866
|
-
var
|
|
17032
|
+
var config_default62 = `{
|
|
16867
17033
|
"kind": "schedule",
|
|
16868
17034
|
"name": "gtm-weekly-review",
|
|
16869
17035
|
"displayName": "Weekly GTM Metrics Review",
|
|
@@ -16880,7 +17046,7 @@ var config_default61 = `{
|
|
|
16880
17046
|
`;
|
|
16881
17047
|
|
|
16882
17048
|
// templates/schedules/gtm-weekly-review/content.md
|
|
16883
|
-
var
|
|
17049
|
+
var content_default62 = `Template parameters: {{REPO_URL}}, {{GSC_PROPERTY}}
|
|
16884
17050
|
|
|
16885
17051
|
# Weekly GTM Metrics Review
|
|
16886
17052
|
|
|
@@ -16961,7 +17127,7 @@ This is part of your team's GTM goal; update the goal statement before enabling
|
|
|
16961
17127
|
`;
|
|
16962
17128
|
|
|
16963
17129
|
// templates/schedules/weekly-code-health-reports/config.json
|
|
16964
|
-
var
|
|
17130
|
+
var config_default63 = `{
|
|
16965
17131
|
"kind": "schedule",
|
|
16966
17132
|
"name": "weekly-code-health-reports",
|
|
16967
17133
|
"displayName": "Weekly Code Health Reports",
|
|
@@ -16978,7 +17144,7 @@ var config_default62 = `{
|
|
|
16978
17144
|
`;
|
|
16979
17145
|
|
|
16980
17146
|
// templates/schedules/weekly-code-health-reports/content.md
|
|
16981
|
-
var
|
|
17147
|
+
var content_default63 = `# Weekly Code Health Reports
|
|
16982
17148
|
|
|
16983
17149
|
Template parameters: {{REPO_URL}}, {{BRANCH}}, {{SCOPE_PATH}}, {{REPORT_NAME}}, {{PAGE_ID}}
|
|
16984
17150
|
|
|
@@ -17043,7 +17209,7 @@ Call \`store-progress\` with status \`completed\` and an output summary that inc
|
|
|
17043
17209
|
`;
|
|
17044
17210
|
|
|
17045
17211
|
// templates/schedules/weekly-dependabot-triage/config.json
|
|
17046
|
-
var
|
|
17212
|
+
var config_default64 = `{
|
|
17047
17213
|
"kind": "schedule",
|
|
17048
17214
|
"name": "weekly-dependabot-triage",
|
|
17049
17215
|
"displayName": "Weekly Dependency Triage",
|
|
@@ -17060,7 +17226,7 @@ var config_default63 = `{
|
|
|
17060
17226
|
`;
|
|
17061
17227
|
|
|
17062
17228
|
// templates/schedules/weekly-dependabot-triage/content.md
|
|
17063
|
-
var
|
|
17229
|
+
var content_default64 = `# Weekly Dependency Triage
|
|
17064
17230
|
|
|
17065
17231
|
Template parameters: {{SLACK_CHANNEL_ID}}, {{REPO_URL}}, {{TIMEZONE}}
|
|
17066
17232
|
|
|
@@ -17114,7 +17280,7 @@ Call \`store-progress\` with status \`completed\` and an output summary listing
|
|
|
17114
17280
|
`;
|
|
17115
17281
|
|
|
17116
17282
|
// templates/schedules/weekly-dora-metrics/config.json
|
|
17117
|
-
var
|
|
17283
|
+
var config_default65 = `{
|
|
17118
17284
|
"kind": "schedule",
|
|
17119
17285
|
"name": "weekly-dora-metrics",
|
|
17120
17286
|
"displayName": "Weekly DORA Metrics",
|
|
@@ -17131,7 +17297,7 @@ var config_default64 = `{
|
|
|
17131
17297
|
`;
|
|
17132
17298
|
|
|
17133
17299
|
// templates/schedules/weekly-dora-metrics/content.md
|
|
17134
|
-
var
|
|
17300
|
+
var content_default65 = `# Weekly DORA Metrics
|
|
17135
17301
|
|
|
17136
17302
|
Template parameters: {{REPO_URL}}, {{BRANCH}}, {{TAG_PATTERN}}, {{REPORT_NAME}}, {{PAGE_ID}}
|
|
17137
17303
|
|
|
@@ -17197,7 +17363,7 @@ Call \`store-progress\` with status \`completed\` and an output summary that inc
|
|
|
17197
17363
|
`;
|
|
17198
17364
|
|
|
17199
17365
|
// templates/schedules/weekly-harness-upgrade-check/config.json
|
|
17200
|
-
var
|
|
17366
|
+
var config_default66 = `{
|
|
17201
17367
|
"kind": "schedule",
|
|
17202
17368
|
"name": "weekly-harness-upgrade-check",
|
|
17203
17369
|
"displayName": "Weekly Harness Upgrade Check",
|
|
@@ -17214,7 +17380,7 @@ var config_default65 = `{
|
|
|
17214
17380
|
`;
|
|
17215
17381
|
|
|
17216
17382
|
// templates/schedules/weekly-harness-upgrade-check/content.md
|
|
17217
|
-
var
|
|
17383
|
+
var content_default66 = '# Weekly Harness Upgrade Check\n\nThis is a topology-preserving, anonymized port of the live Sunday schedule. It keeps its bundle, deduplication, baseline, partial-fallback, and CI acceptance behavior.\n\n```json\n{"cron":"0 16 * * 0","timezone":"UTC","agentRole":"lead","enabled":true}\n```\n\n**Weekly Harness Upgrade — self-hosted repository Dockerfile.worker**\n\nRepo: `{{REPO_URL}}` (working dir: `/workspace/repo`)\nFile: `Dockerfile.worker`\n\nThe worker image pins these harnesses via `ARG`. Each week, check upstream for new versions and open ONE PR bundling ALL outdated harness bumps together ({{PR_REVIEWER}}\'s preference — bump ALL in one PR per run, do NOT stagger one-per-run).\n\n| ARG | Source | Sync requirement |\n|---|---|---|\n| `CLAUDE_CODE_VERSION` | npm `@anthropic-ai/claude-code` | none |\n| `PI_CODING_AGENT_VERSION` | npm `@earendil-works/pi-coding-agent` | MUST match `@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, and `@earendil-works/pi-coding-agent` in `package.json` (family-pin, all same version) — bump all together |\n| `CODEX_VERSION` | npm `@openai/codex` | MUST match direct `@openai/codex` in `package.json` (enforced by `scripts/check-codex-default-model.sh`) |\n| `OPENCODE_VERSION` | npm `@opencode/sdk` | Installs both `@opencode/cli` and `@opencode/sdk`. MUST match `@opencode/sdk` and `@opencode/plugin` in `package.json` devDependencies. OpenCode 2 ships under the `@opencode/*` scope; never take a version from `opencode-ai`, `@opencode-ai/sdk`, or the `sst/opencode` GitHub releases (still the 1.x line, which would be a downgrade) |\n\n## Steps\n\n1. `cd /workspace/repo && git fetch origin && git checkout main && git pull --ff-only`\n2. Read current pinned versions from `Dockerfile.worker` (the `ARG` lines) and from `package.json` (for the pi family + `@openai/codex` + `@opencode/sdk`).\n3. For each harness, fetch the latest version:\n - npm claude-code: `npm view @anthropic-ai/claude-code version`\n - npm pi: `npm view @earendil-works/pi-coding-agent version` (use the SAME version for `@earendil-works/pi-agent-core` and `@earendil-works/pi-ai` — they\'re a family pin)\n - npm codex: `npm view @openai/codex version`\n - npm opencode: `npm view @opencode/sdk version` (one version for `@opencode/cli`, `@opencode/sdk`, `@opencode/plugin`)\n4. Check for an existing open bundled PR — `gh pr list --search "harness upgrade in:title" --state open --repo {{REPO_URL}}`. Look at the branch prefix `harness-upgrade/`. If one is already open AND was created within the last 48h (sibling schedule may have just opened it), skip and complete with `"Skipped: sibling harness upgrade PR already open"` + the existing PR URL.\n5. Collect ALL outdated harnesses. If none are outdated, complete with output `"All harnesses up to date as of YYYY-MM-DD"` (no PR).\n6. Branch: `harness-upgrade/weekly-YYYY-MM-DD` (e.g. `harness-upgrade/weekly-2026-06-03`).\n7. Edit `Dockerfile.worker` — bump every outdated ARG. Also update `package.json`:\n - Codex: bump direct `@openai/codex` to match `CODEX_VERSION`.\n - Pi family: bump `@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, and `@earendil-works/pi-coding-agent` to the same new version as `PI_CODING_AGENT_VERSION`.\n - Opencode: bump `@opencode/sdk` and `@opencode/plugin` (devDependencies) to match `OPENCODE_VERSION`.\n Then re-run `bun install` so `bun.lock` updates.\n8. Local verification (all must pass before pushing):\n ```bash\n bun install --frozen-lockfile\n bun run lint\n bun run tsc:check\n bun test\n bash scripts/check-db-boundary.sh\n ```\n For Codex bumps: also run `bash scripts/check-codex-default-model.sh` (CI runs it too). It fails when `ARG CODEX_VERSION` differs from the direct `@openai/codex` pin in `package.json`, or when the Dockerfile\'s baseline `model = "..."` differs from `CODEX_DEFAULT_MODEL` in `src/providers/codex-models.ts`.\n Note: do NOT run `docker build -f Dockerfile.worker .` locally — the runner lacks docker. CI\'s `docker-worker-build` job is the acceptance gate.\n9. If any local check fails, apply the **partial-bundle fallback** before giving up — one harness must never block the others:\n **BASELINE FIRST — do this before ANY isolation work.** A red gate does NOT mean the bumps broke anything. Re-run the EXACT failing command on a pristine `origin/main` worktree with zero bumps applied (`git worktree add /tmp/hb-baseline origin/main && cd /tmp/hb-baseline && bun install --frozen-lockfile`) and compare. If the SAME checks fail with the SAME assertions and the same pass/skip/fail totals, the failure is **PRE-EXISTING and unrelated to the bumps** ⇒ it does NOT block this PR, and you must NOT attempt isolation for it. Proceed to step 10, open the PR, and add a `## Pre-existing failures (also fail on origin/main)` section quoting the verbatim error plus both totals (baseline vs branch) so the reviewer can see they match. Only a failure that is RED on your branch and GREEN on baseline was caused by a bump — apply a–d below to that failure ONLY. A gate that is red on origin/main is never a reason to skip the weekly bump.\n a. Isolate which harness\'s bump caused it. The error usually names the package; if not, revert bumps one at a time until the step-8 gate passes.\n b. Revert ONLY that harness — its `Dockerfile.worker` ARG **and** its `package.json` pins (respect the family/sync requirements in the table above) — then re-run `bun install` and the FULL step-8 gate.\n c. Gate green ⇒ open the PR with the remaining harnesses and add a `## Held back` section naming the excluded harness, current → attempted version, and the VERBATIM error. Name it in your `store-progress` output too.\n d. Gate still red with that harness reverted, OR the failure cannot be isolated to one harness ⇒ do NOT open a PR; report via `store-progress` with `failureReason`.\n Migrating an upstream API break (a removed option, a renamed export, a moved type) is still OUT OF SCOPE for this routine — hold that harness back per (c) rather than changing code here.\n10. Push the branch and open a PR:\n - Title: `chore(docker): bump harnesses (weekly YYYY-MM-DD)` — or list the bumps, e.g. `chore(docker): bump claude-code, pi, opencode (weekly YYYY-MM-DD)`.\n - Body: include a table of current → new versions for every harness bumped, link to each upstream changelog (e.g. https://github.com/anthropics/claude-code/releases/tag/v<X.Y.Z>), and the local verification output (or "all green").\n - Add `{{PR_REVIEWER}}` as a reviewer.\n - DO NOT merge — {{PR_REVIEWER}} reviews and merges.\n11. Verify CI on the PR — wait for the merge-gate workflow to start, confirm at least the `docker-worker-build` job is queued/passing. If CI fails, comment on the PR with the failure log and leave the branch for human review.\n\n## Constraints\n\n- **ONE bundled PR per run.** Bump every outdated harness in the same PR — do not stagger one-per-run. The ONLY permitted exclusion is a harness held back by the step-9 partial-bundle fallback, which must be declared in the PR body.\n- **No `--no-verify`, no force pushes.**\n- If a harness has a major-version bump (e.g. 2.x → 3.x), still bundle it but flag clearly in the PR description that this is a major bump and may need extra review.\n- Pi family-pin: all three pi packages MUST be the same version. If they drift in the lockfile, fix the drift in the same PR.\n\n## Sibling-schedule coordination\nThis schedule has a sibling — `weekly-harness-upgrade-check-wed` (Wednesday 05:00 BCN). If a sibling-opened PR is OPEN and `< 48h` old, step 4 skips. This is the dedup gate. Don\'t change branch-naming heuristics in a way that breaks the dedup.\n\n## Output\n\n`store-progress` with `status: "completed"` and `output` containing:\n- The PR URL (if one was opened) + the table of harnesses bumped, OR\n- "No-op: all harnesses up to date as of YYYY-MM-DD" with the version table, OR\n- "Skipped: sibling harness upgrade PR already open" with the existing PR URL.\n';
|
|
17218
17384
|
|
|
17219
17385
|
// src/be/seed/schedules-seeder.ts
|
|
17220
17386
|
init_db3();
|
|
@@ -17236,7 +17402,7 @@ function resolveSeededEnabled(params) {
|
|
|
17236
17402
|
}
|
|
17237
17403
|
|
|
17238
17404
|
// templates/workflows/alerts-triage/config.json
|
|
17239
|
-
var
|
|
17405
|
+
var config_default67 = `{
|
|
17240
17406
|
"kind": "workflow",
|
|
17241
17407
|
"name": "alerts-triage",
|
|
17242
17408
|
"displayName": "Alerts Triage",
|
|
@@ -17253,7 +17419,7 @@ var config_default66 = `{
|
|
|
17253
17419
|
`;
|
|
17254
17420
|
|
|
17255
17421
|
// templates/workflows/alerts-triage/content.md
|
|
17256
|
-
var
|
|
17422
|
+
var content_default67 = `# Alerts Triage
|
|
17257
17423
|
|
|
17258
17424
|
The Slack handler emits \`slack.message\`; this workflow keeps the event-driven path and deduplicates work after the channel filter.
|
|
17259
17425
|
|
|
@@ -17273,7 +17439,7 @@ The Slack handler emits \`slack.message\`; this workflow keeps the event-driven
|
|
|
17273
17439
|
`;
|
|
17274
17440
|
|
|
17275
17441
|
// templates/workflows/autopilot/config.json
|
|
17276
|
-
var
|
|
17442
|
+
var config_default68 = `{
|
|
17277
17443
|
"kind": "workflow",
|
|
17278
17444
|
"name": "autopilot",
|
|
17279
17445
|
"displayName": "Autopilot Feature Pipeline",
|
|
@@ -17290,7 +17456,7 @@ var config_default67 = `{
|
|
|
17290
17456
|
`;
|
|
17291
17457
|
|
|
17292
17458
|
// templates/workflows/autopilot/content.md
|
|
17293
|
-
var
|
|
17459
|
+
var content_default68 = `# Autopilot Feature Pipeline
|
|
17294
17460
|
|
|
17295
17461
|
Template parameter: {{REPO_URL}}
|
|
17296
17462
|
|
|
@@ -17302,7 +17468,7 @@ Use this workflow as a canonical feature delivery pipeline. Customize roles and
|
|
|
17302
17468
|
`;
|
|
17303
17469
|
|
|
17304
17470
|
// templates/workflows/claude-code-changelog-watch/config.json
|
|
17305
|
-
var
|
|
17471
|
+
var config_default69 = `{
|
|
17306
17472
|
"kind": "workflow",
|
|
17307
17473
|
"name": "claude-code-changelog-watch",
|
|
17308
17474
|
"displayName": "Claude Code Changelog Watch",
|
|
@@ -17319,10 +17485,10 @@ var config_default68 = `{
|
|
|
17319
17485
|
`;
|
|
17320
17486
|
|
|
17321
17487
|
// templates/workflows/claude-code-changelog-watch/content.md
|
|
17322
|
-
var
|
|
17488
|
+
var content_default69 = '# Claude Code Changelog Watch\n\nThis topology-preserving self-hosted port removes installation-specific identities, endpoints, and credentials while retaining the live workflow\'s nodes, edges, input mappings, guards, retries, cooldown, and triggers. Configure the declared template parameters and integrations before enabling it.\n\nPrerequisite: the `check` and `commit` nodes run the global script `claude-code-changelog-check`, which is not seeded. Author it before enabling the workflow, or every run fails at the first node.\n\n```json\n{"name":"claude-code-changelog-watch","description":"Changelog watcher with deduplication: fetch, gate on a new version, publish an in-app receipt plus any configured delivery providers, then commit the version marker.","nodes":[{"id":"check","type":"swarm-script","label":"Fetch changelog + compare vs KV","config":{"scriptName":"claude-code-changelog-check","scope":"global","args":{"mode":"check"}},"next":"gate"},{"id":"gate","type":"property-match","label":"Gate: only continue on a new version","config":{"mode":"all","conditions":[{"field":"check.result.isNew","op":"eq","value":true}]},"next":{"true":"post"}},{"id":"post","type":"agent-task","label":"Post new version to Slack","config":{"model":"sonnet","tags":["changelog","claude-code","workflow"],"priority":50,"template":"**Claude Code new version announcement**\\n\\nA new Claude Code version was detected by the claude-code-changelog-watch workflow.\\n\\nNew version: {{check.result.latestVersion}} (released {{check.result.releaseDate}}, previous known: {{check.result.lastKnown}})\\n\\nRaw release notes:\\n{{check.result.section}}\\n\\nSteps:\\n1. ONE `slack-post` to the configured Slack notification target, **max 400 chars**:\\n\\n```\\n:rocket: *Claude Code {{check.result.latestVersion}}* — <the one change that matters to us, one line>\\n<https://code.claude.com/docs/en/changelog|changelog>\\n```\\n\\nRules:\\n- **One line.** Pick the single item that affects how we run the swarm (a fix we were hitting, a flag we use, a breaking change). Not 3-5 bullets.\\n- If a second item genuinely matters, one more bullet. Never more than two.\\n- **Routine release with nothing relevant to us ⇒ still post, but the one line is just the headline feature.** Never paste the release notes.\\n- No preamble, no \\"is out!\\", no per-surface breakdown (VSCode/CLI/SDK), no closing line.\\n\\n2. Complete with output \\"Posted Claude Code {{check.result.latestVersion}} to in-app activity and configured delivery providers.\\" plus the charCount.\\n\\nDo NOT update any version state — the workflow\'s commit node handles that after you complete. Do NOT post more than once."},"next":"commit","inputs":{"check":"check"}},{"id":"commit","type":"swarm-script","label":"Commit new version to KV","config":{"scriptName":"claude-code-changelog-check","scope":"global","args":{"mode":"commit","version":"{{check.result.latestVersion}}"}},"inputs":{"check":"check"}}],"onNodeFailure":"fail"}\n```\n\n\n\n\n';
|
|
17323
17489
|
|
|
17324
17490
|
// templates/workflows/competitor-radar/config.json
|
|
17325
|
-
var
|
|
17491
|
+
var config_default70 = `{
|
|
17326
17492
|
"kind": "workflow",
|
|
17327
17493
|
"name": "competitor-radar",
|
|
17328
17494
|
"displayName": "Competitor Radar",
|
|
@@ -17339,7 +17505,7 @@ var config_default69 = `{
|
|
|
17339
17505
|
`;
|
|
17340
17506
|
|
|
17341
17507
|
// templates/workflows/competitor-radar/content.md
|
|
17342
|
-
var
|
|
17508
|
+
var content_default70 = `# Competitor Radar
|
|
17343
17509
|
|
|
17344
17510
|
This self-hosted port retains the scheduled, fixture, extraction, gap-analysis, litmus, cooldown, and bounded-report behavior. Its pinned GSC helper is embedded in the workflow, so it does not fetch executable code from Desplega infrastructure.
|
|
17345
17511
|
|
|
@@ -17349,7 +17515,7 @@ This self-hosted port retains the scheduled, fixture, extraction, gap-analysis,
|
|
|
17349
17515
|
`;
|
|
17350
17516
|
|
|
17351
17517
|
// templates/workflows/docs-site-releases/config.json
|
|
17352
|
-
var
|
|
17518
|
+
var config_default71 = `{
|
|
17353
17519
|
"kind": "workflow",
|
|
17354
17520
|
"name": "docs-site-releases",
|
|
17355
17521
|
"displayName": "Documentation Release Notes",
|
|
@@ -17366,7 +17532,7 @@ var config_default70 = `{
|
|
|
17366
17532
|
`;
|
|
17367
17533
|
|
|
17368
17534
|
// templates/workflows/docs-site-releases/content.md
|
|
17369
|
-
var
|
|
17535
|
+
var content_default71 = `# Documentation Release Notes
|
|
17370
17536
|
|
|
17371
17537
|
This topology-preserving self-hosted port removes installation-specific identities, endpoints, and credentials while retaining the live workflow's nodes, edges, input mappings, guards, retries, cooldown, and triggers. Configure the declared template parameters and integrations before enabling it.
|
|
17372
17538
|
|
|
@@ -17381,7 +17547,7 @@ This topology-preserving self-hosted port removes installation-specific identiti
|
|
|
17381
17547
|
`;
|
|
17382
17548
|
|
|
17383
17549
|
// templates/workflows/gsc-topic-miner/config.json
|
|
17384
|
-
var
|
|
17550
|
+
var config_default72 = `{
|
|
17385
17551
|
"kind": "workflow",
|
|
17386
17552
|
"name": "gsc-topic-miner",
|
|
17387
17553
|
"displayName": "Search Topic Miner",
|
|
@@ -17398,7 +17564,7 @@ var config_default71 = `{
|
|
|
17398
17564
|
`;
|
|
17399
17565
|
|
|
17400
17566
|
// templates/workflows/gsc-topic-miner/content.md
|
|
17401
|
-
var
|
|
17567
|
+
var content_default72 = `# Search Topic Miner
|
|
17402
17568
|
|
|
17403
17569
|
This template uses only the configured GSC and agent-fs integrations. The deferred seeder creates the weekly schedule binding; no installation-specific schedule ID is shipped.
|
|
17404
17570
|
|
|
@@ -17408,7 +17574,7 @@ This template uses only the configured GSC and agent-fs integrations. The deferr
|
|
|
17408
17574
|
`;
|
|
17409
17575
|
|
|
17410
17576
|
// templates/workflows/linear-drain-loop/config.json
|
|
17411
|
-
var
|
|
17577
|
+
var config_default73 = `{
|
|
17412
17578
|
"kind": "workflow",
|
|
17413
17579
|
"name": "linear-drain-loop",
|
|
17414
17580
|
"displayName": "Linear Drain Loop",
|
|
@@ -17430,7 +17596,7 @@ var config_default72 = `{
|
|
|
17430
17596
|
`;
|
|
17431
17597
|
|
|
17432
17598
|
// templates/workflows/linear-drain-loop/content.md
|
|
17433
|
-
var
|
|
17599
|
+
var content_default73 = `# Linear Drain Loop
|
|
17434
17600
|
|
|
17435
17601
|
Template parameter: {{LINEAR_PROJECT_ID}}
|
|
17436
17602
|
|
|
@@ -17475,7 +17641,7 @@ Blocked and ambiguous items are explicitly left alone — the dispatch node surf
|
|
|
17475
17641
|
`;
|
|
17476
17642
|
|
|
17477
17643
|
// templates/workflows/llm-safe-release-context/config.json
|
|
17478
|
-
var
|
|
17644
|
+
var config_default74 = `{
|
|
17479
17645
|
"kind": "workflow",
|
|
17480
17646
|
"name": "llm-safe-release-context",
|
|
17481
17647
|
"displayName": "LLM-Safe Release Context",
|
|
@@ -17492,7 +17658,7 @@ var config_default73 = `{
|
|
|
17492
17658
|
`;
|
|
17493
17659
|
|
|
17494
17660
|
// templates/workflows/llm-safe-release-context/content.md
|
|
17495
|
-
var
|
|
17661
|
+
var content_default74 = `# LLM-Safe Release Context
|
|
17496
17662
|
|
|
17497
17663
|
Template parameters: {{ORG_ID}}, {{REPO_URL}}
|
|
17498
17664
|
|
|
@@ -17566,7 +17732,7 @@ This avoids the common failure mode where a large \`context.json\` fills the mod
|
|
|
17566
17732
|
`;
|
|
17567
17733
|
|
|
17568
17734
|
// templates/workflows/pr-review-status-sweep/config.json
|
|
17569
|
-
var
|
|
17735
|
+
var config_default75 = `{
|
|
17570
17736
|
"kind": "workflow",
|
|
17571
17737
|
"name": "pr-review-status-sweep",
|
|
17572
17738
|
"displayName": "PR Review Status Sweep",
|
|
@@ -17583,7 +17749,7 @@ var config_default74 = `{
|
|
|
17583
17749
|
`;
|
|
17584
17750
|
|
|
17585
17751
|
// templates/workflows/pr-review-status-sweep/content.md
|
|
17586
|
-
var
|
|
17752
|
+
var content_default75 = `# PR Review Status Sweep
|
|
17587
17753
|
|
|
17588
17754
|
This topology-preserving self-hosted port removes installation-specific identities, endpoints, and credentials while retaining the live workflow's nodes, edges, input mappings, guards, retries, cooldown, and triggers. Configure the declared template parameters and integrations before enabling it.
|
|
17589
17755
|
|
|
@@ -17598,7 +17764,7 @@ Prerequisite: the \`sweep\` node runs the agent-scoped script \`pr-review-status
|
|
|
17598
17764
|
`;
|
|
17599
17765
|
|
|
17600
17766
|
// templates/workflows/ralph-loop/config.json
|
|
17601
|
-
var
|
|
17767
|
+
var config_default76 = `{
|
|
17602
17768
|
"kind": "workflow",
|
|
17603
17769
|
"name": "ralph-loop",
|
|
17604
17770
|
"displayName": "Iterative Review Loop",
|
|
@@ -17615,7 +17781,7 @@ var config_default75 = `{
|
|
|
17615
17781
|
`;
|
|
17616
17782
|
|
|
17617
17783
|
// templates/workflows/ralph-loop/content.md
|
|
17618
|
-
var
|
|
17784
|
+
var content_default76 = `# Iterative Review Loop
|
|
17619
17785
|
|
|
17620
17786
|
Template parameter: {{REPO_URL}}
|
|
17621
17787
|
|
|
@@ -17666,19 +17832,19 @@ The \`maxIterations\` parameter is declarative: the reviewer signals PASS when d
|
|
|
17666
17832
|
init_db3();
|
|
17667
17833
|
var asText2 = (value) => value;
|
|
17668
17834
|
var BUILT_IN_WORKFLOW_SOURCES = [
|
|
17669
|
-
{ config: asText2(config_default66), content: asText2(content_default66) },
|
|
17670
17835
|
{ config: asText2(config_default67), content: asText2(content_default67) },
|
|
17836
|
+
{ config: asText2(config_default68), content: asText2(content_default68) },
|
|
17671
17837
|
{
|
|
17672
|
-
config: asText2(
|
|
17673
|
-
content: asText2(
|
|
17838
|
+
config: asText2(config_default69),
|
|
17839
|
+
content: asText2(content_default69)
|
|
17674
17840
|
},
|
|
17675
|
-
{ config: asText2(config_default69), content: asText2(content_default69) },
|
|
17676
17841
|
{ config: asText2(config_default70), content: asText2(content_default70) },
|
|
17677
17842
|
{ config: asText2(config_default71), content: asText2(content_default71) },
|
|
17678
17843
|
{ config: asText2(config_default72), content: asText2(content_default72) },
|
|
17679
17844
|
{ config: asText2(config_default73), content: asText2(content_default73) },
|
|
17680
17845
|
{ config: asText2(config_default74), content: asText2(content_default74) },
|
|
17681
|
-
{ config: asText2(config_default75), content: asText2(content_default75) }
|
|
17846
|
+
{ config: asText2(config_default75), content: asText2(content_default75) },
|
|
17847
|
+
{ config: asText2(config_default76), content: asText2(content_default76) }
|
|
17682
17848
|
];
|
|
17683
17849
|
function sortJson(value) {
|
|
17684
17850
|
if (Array.isArray(value))
|
|
@@ -17794,34 +17960,34 @@ var workflowsSeeder = createWorkflowsSeeder();
|
|
|
17794
17960
|
// src/be/seed/schedules-seeder.ts
|
|
17795
17961
|
var asText3 = (value) => value;
|
|
17796
17962
|
var BUILT_IN_SCHEDULE_SOURCES = [
|
|
17797
|
-
{ config: asText3(
|
|
17963
|
+
{ config: asText3(config_default56), content: asText3(content_default56) },
|
|
17798
17964
|
{
|
|
17799
|
-
config: asText3(
|
|
17800
|
-
content: asText3(
|
|
17965
|
+
config: asText3(config_default57),
|
|
17966
|
+
content: asText3(content_default57)
|
|
17801
17967
|
},
|
|
17802
|
-
{ config: asText3(config_default57), content: asText3(content_default57) },
|
|
17803
17968
|
{ config: asText3(config_default58), content: asText3(content_default58) },
|
|
17804
|
-
{
|
|
17805
|
-
config: asText3(config_default59),
|
|
17806
|
-
content: asText3(content_default59)
|
|
17807
|
-
},
|
|
17969
|
+
{ config: asText3(config_default59), content: asText3(content_default59) },
|
|
17808
17970
|
{
|
|
17809
17971
|
config: asText3(config_default60),
|
|
17810
17972
|
content: asText3(content_default60)
|
|
17811
17973
|
},
|
|
17812
|
-
{ config: asText3(config_default61), content: asText3(content_default61) },
|
|
17813
17974
|
{
|
|
17814
|
-
config: asText3(
|
|
17815
|
-
content: asText3(
|
|
17975
|
+
config: asText3(config_default61),
|
|
17976
|
+
content: asText3(content_default61)
|
|
17816
17977
|
},
|
|
17978
|
+
{ config: asText3(config_default62), content: asText3(content_default62) },
|
|
17817
17979
|
{
|
|
17818
17980
|
config: asText3(config_default63),
|
|
17819
17981
|
content: asText3(content_default63)
|
|
17820
17982
|
},
|
|
17821
|
-
{ config: asText3(config_default64), content: asText3(content_default64) },
|
|
17822
17983
|
{
|
|
17823
|
-
config: asText3(
|
|
17824
|
-
content: asText3(
|
|
17984
|
+
config: asText3(config_default64),
|
|
17985
|
+
content: asText3(content_default64)
|
|
17986
|
+
},
|
|
17987
|
+
{ config: asText3(config_default65), content: asText3(content_default65) },
|
|
17988
|
+
{
|
|
17989
|
+
config: asText3(config_default66),
|
|
17990
|
+
content: asText3(content_default66)
|
|
17825
17991
|
}
|
|
17826
17992
|
];
|
|
17827
17993
|
function parseScheduleSource(source) {
|