@desplega.ai/agent-swarm 2.5.3 → 2.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acp-adapter-gr2fcyyj.js → acp-adapter-ek38cwsv.js} +4 -4
- package/dist/{actions-wv766ghf.js → actions-92mepq03.js} +17 -17
- package/dist/{amp-adapter-speb906t.js → amp-adapter-9gaxg015.js} +2 -2
- package/dist/{app-ag29n14f.js → app-ctn8gsgx.js} +3 -3
- package/dist/{assistant-3x8bz3eg.js → assistant-zyr5kz47.js} +19 -19
- package/dist/{boot-reembed-jsmfrpzf.js → boot-reembed-dwzfttdr.js} +1 -1
- package/dist/{boot-reembed-5b3d2eea.js → boot-reembed-w75maga2.js} +1 -1
- package/dist/{boot-scrub-sweep-s73gerxy.js → boot-scrub-sweep-e9kq43kf.js} +3 -3
- package/dist/{boot-seeds-5zmax2wr.js → boot-seeds-x28v3fhb.js} +4 -4
- package/dist/{claude-adapter-hswdnm3t.js → claude-adapter-f0afqnne.js} +4 -4
- package/dist/{claude-managed-adapter-cvbzj1h6.js → claude-managed-adapter-x81a7r65.js} +3 -3
- package/dist/{claude-managed-setup-3k8m3hhc.js → claude-managed-setup-bqzwjd9x.js} +1 -1
- package/dist/{claude-sdk-session-fkbyk66x.js → claude-sdk-session-7b7whkaq.js} +9307 -9254
- package/dist/{cli-a5ebc95n.js → cli-0shx9j93.js} +16 -13
- package/dist/{cli-vwn81jbs.js → cli-19202kew.js} +3 -3
- package/dist/{cli-svrj71pg.js → cli-1r5ad7j5.js} +7 -7
- package/dist/{cli-hhxjnjzs.js → cli-25n3mv5d.js} +8 -6
- package/dist/cli-2655k16q.js +140 -0
- package/dist/{cli-hcpj2xqz.js → cli-277c31dw.js} +1 -1
- package/dist/{cli-35gtk1p6.js → cli-4b2z6n0m.js} +29 -7
- package/dist/{cli-40jsnrjm.js → cli-5bnsc0e1.js} +7 -5
- package/dist/{cli-fzcn3d87.js → cli-621ce7kw.js} +1 -1
- package/dist/{cli-s49hpn37.js → cli-64mh9mf3.js} +19 -5
- package/dist/{cli-e8jyq7d8.js → cli-6a1xg1p7.js} +6 -2
- package/dist/{cli-p9rafdrb.js → cli-7p4jxgtt.js} +4 -4
- package/dist/{cli-w1zwctj2.js → cli-9j129brq.js} +9 -3
- package/dist/{cli-ce0ak9ms.js → cli-abs8ndtr.js} +11 -11
- package/dist/{cli-aecdcr77.js → cli-asq5ydm4.js} +123 -50
- package/dist/{cli-n45mr7zh.js → cli-bvpgr9ny.js} +2 -2
- package/dist/{cli-210xd1f4.js → cli-c61mbdds.js} +3 -3
- package/dist/{cli-e5bxnjps.js → cli-c952c7ac.js} +5 -5
- package/dist/{cli-p859hcc8.js → cli-dew6x255.js} +1 -1
- package/dist/{cli-tx00c0h6.js → cli-dqygeeh5.js} +17 -1
- package/dist/{cli-gpv60278.js → cli-e42vss7b.js} +2 -2
- package/dist/{cli-s53vp709.js → cli-eftzyh9y.js} +1 -1
- package/dist/{cli-3ngdk5te.js → cli-ethgy7ha.js} +1 -1
- package/dist/{cli-99xgw26r.js → cli-ff1tm9n9.js} +1 -1
- package/dist/{cli-ewm3pwbq.js → cli-g9vd9ece.js} +37 -12
- package/dist/{cli-jjznk3f7.js → cli-gbfxp48k.js} +62 -28
- package/dist/{cli-z21whrrg.js → cli-gn5af0x5.js} +14 -14
- package/dist/{cli-1fc85mvt.js → cli-gwhjmh8g.js} +4 -4
- package/dist/{cli-avdvgcay.js → cli-hh5we352.js} +24 -5
- package/dist/{cli-0ebey9hg.js → cli-j6rktc91.js} +1 -1
- package/dist/{cli-kxawjrxg.js → cli-jb30dzvk.js} +332 -36
- package/dist/{cli-25j01dpj.js → cli-jbnn4vxb.js} +3 -3
- package/dist/{cli-qzme5949.js → cli-k4tjsdx9.js} +44 -39
- package/dist/{cli-8s5wx3nz.js → cli-m4ecdxvz.js} +40 -13
- package/dist/{cli-ta8bd7th.js → cli-pzatvw94.js} +1 -1
- package/dist/{cli-p6zs9h4y.js → cli-rr7zx19j.js} +767 -249
- package/dist/{cli-502eqv93.js → cli-s682zgqz.js} +1 -1
- package/dist/{cli-fsdprwrg.js → cli-sbwsxvtd.js} +1 -1
- package/dist/{cli-0xk505e8.js → cli-sxgtf5fw.js} +1 -1
- package/dist/{cli-egjggehm.js → cli-tsma7p8v.js} +1 -1
- package/dist/{cli-qgf8emrn.js → cli-wghjkr0e.js} +5 -5
- package/dist/{cli-p0rzjkya.js → cli-wx2nj19m.js} +29 -10
- package/dist/{cli-e2ar4bp1.js → cli-x0f2v69c.js} +111 -42
- package/dist/{cli-y561h5a9.js → cli-xtrz6bzs.js} +5 -5
- package/dist/{cli-gpsz7g88.js → cli-xzfq4at3.js} +7 -7
- package/dist/cli.js +18 -18
- package/dist/{codex-adapter-n8ka66vf.js → codex-adapter-wch12q99.js} +2 -2
- package/dist/{codex-hook-e2he7aca.js → codex-hook-brpnycn5.js} +1 -1
- package/dist/{codex-session-runner-fsebts37.js → codex-session-runner-41pfcr95.js} +2 -2
- package/dist/{commands-t04rt2pc.js → commands-9849dkj6.js} +2 -2
- package/dist/{controller-rgna04r2.js → controller-ja0sd95p.js} +27 -1
- package/dist/{controllers-connect-bqm1rtft.js → controllers-connect-xp05dj6x.js} +16 -16
- package/dist/{cursor-adapter-swr2k95y.js → cursor-adapter-623qxqew.js} +1 -2
- package/dist/{db-a4m7haw0.js → db-47vj40dy.js} +3 -3
- package/dist/{db-24ck09xy.js → db-w759qmx0.js} +2 -2
- package/dist/{dispatcher-nwf9ss0q.js → dispatcher-7b8e4z2j.js} +15 -15
- package/dist/{docker-nfy2gc8t.js → docker-s84hjs91.js} +2 -2
- package/dist/{dsh-adapter-kpdnhjst.js → dsh-adapter-2ezw3xea.js} +1 -2
- package/dist/{external-channel-j1e2p34p.js → external-channel-e2s028da.js} +2 -2
- package/dist/{grok-adapter-qtjz0whk.js → grok-adapter-ys7gaqee.js} +5 -5
- package/dist/{handlers-19xr6dnz.js → handlers-wy1dr6ja.js} +18 -18
- package/dist/{heartbeat-vtesda5d.js → heartbeat-w3mntghj.js} +17 -17
- package/dist/{hook-8wqaszda.js → hook-3jjywnpb.js} +9 -3
- package/dist/{hook-b2hhj6rd.js → hook-g7kvv6x9.js} +3 -2
- package/dist/{http-mxcqhhcs.js → http-tkp7d4kb.js} +267 -75
- package/dist/{index-srg522m6.js → index-1ef1myq2.js} +15 -15
- package/dist/{index-1r8wfpzs.js → index-3n8m9ea2.js} +1 -1
- package/dist/{index-kw2mmat7.js → index-nmm79qgr.js} +17 -17
- package/dist/{index-n1vbvta9.js → index-q7m26kvs.js} +24 -22
- package/dist/{index-spwxjgay.js → index-xdaahthb.js} +15 -15
- package/dist/{keepalive-dsd8rtgx.js → keepalive-v4ta8wgg.js} +3 -3
- package/dist/{lead-zyerk1x2.js → lead-sawnyqxk.js} +33 -33
- package/dist/{maintenance-jqmqwnet.js → maintenance-84n1ex21.js} +1 -1
- package/dist/{oauth-refresh-sweep-q2c3bnvm.js → oauth-refresh-sweep-vjnnandw.js} +2 -2
- package/dist/{onboard-w4yd7s8t.js → onboard-sfmpe4np.js} +2 -2
- package/dist/{opencode-adapter-9tppvxar.js → opencode-adapter-jmpst4q4.js} +3 -3
- package/dist/{otel-impl-f36byzbd.js → otel-impl-v6cc0zve.js} +1 -1
- package/dist/{pi-mono-adapter-tqsge1ay.js → pi-mono-adapter-fk8fkcf6.js} +33 -6
- package/dist/{pricing-refresh-xvak5p4v.js → pricing-refresh-fsk1e1zc.js} +3 -3
- package/dist/{rbac-roles-gfn30fb8.js → rbac-roles-prmkdnkw.js} +2 -2
- package/dist/{rbac-roles-682k2mt5.js → rbac-roles-zxmxqa39.js} +1 -1
- package/dist/{render-v2-hgytz8nn.js → render-v2-pjwxvnkw.js} +3 -3
- package/dist/{resume-2dvq348g.js → resume-frdtgfa0.js} +8 -6
- package/dist/{session-access-7f21ekq9.js → session-access-fpez4y5q.js} +4 -4
- package/dist/{setup-epffxtbk.js → setup-mq6m3m8q.js} +1 -1
- package/dist/{work-objects-xz1a5rqk.js → work-objects-kfahhjsq.js} +18 -18
- package/dist/{worker-42t8emjt.js → worker-v5e5rxj3.js} +33 -33
- package/openapi.json +68 -3
- package/package.json +5 -5
- package/plugin/commands/create-pr.md +2 -2
- package/plugin/pi-skills/create-pr/SKILL.md +2 -2
- package/src/be/db/approvals.ts +48 -0
- package/src/be/db/tasks/write.ts +15 -5
- package/src/be/db/workflow-idempotency.ts +183 -0
- package/src/be/db/workflow-runs.ts +318 -7
- package/src/be/db.ts +67 -17
- package/src/be/migrations/242_workflow_idempotency_keys.sql +40 -0
- package/src/be/sealed-json.ts +1 -0
- package/src/be/seed-scripts/catalog/compound-insights.inline.ts +2 -2
- package/src/be/seed-scripts/catalog/compound-insights.ts +2 -2
- package/src/be/seed-skills/bundled-files.generated.json +1 -1
- package/src/be/sql-connections.ts +7 -1
- package/src/be/swarm-config-guard.ts +2 -0
- package/src/be/users.ts +9 -0
- package/src/commands/controller.ts +33 -0
- package/src/commands/runner.ts +6 -2
- package/src/extensions/apply-task-create.ts +57 -11
- package/src/extensions/contract-types.generated.ts +1 -1
- package/src/extensions/contract.ts +25 -0
- package/src/extensions/dispatcher.ts +4 -0
- package/src/extensions/post-bridge.ts +8 -0
- package/src/hooks/context-bound-note.ts +196 -0
- package/src/hooks/hook.ts +12 -0
- package/src/http/config.ts +48 -16
- package/src/http/idempotency-key.ts +117 -0
- package/src/http/workflows.ts +129 -24
- package/src/prompts/context-bound-note.ts +48 -0
- package/src/prompts/session-templates.ts +25 -1
- package/src/providers/amp-adapter.ts +30 -8
- package/src/providers/claude-adapter.ts +29 -4
- package/src/providers/claude-managed-adapter.ts +26 -0
- package/src/providers/claude-sdk-session.ts +10 -0
- package/src/providers/claude-session-events.ts +13 -0
- package/src/providers/codex-adapter.ts +12 -0
- package/src/providers/opencode-adapter.ts +18 -0
- package/src/providers/pi-mono-adapter.ts +35 -0
- package/src/runtime-providers/docker.ts +6 -2
- package/src/scripts-runtime/types/swarm-extension.d.ts +35 -0
- package/src/tests/amp-adapter.test.ts +97 -0
- package/src/tests/approval-requests.test.ts +10 -7
- package/src/tests/approval-sweeps.test.ts +12 -6
- package/src/tests/base-prompt.test.ts +1 -1
- package/src/tests/claude-hook-output.test.ts +79 -1
- package/src/tests/claude-managed-adapter.test.ts +275 -0
- package/src/tests/codex-adapter.test.ts +163 -0
- package/src/tests/context-bound-note.test.ts +269 -0
- package/src/tests/extensions-pre-task.test.ts +273 -0
- package/src/tests/fetch-resolved-env.test.ts +17 -0
- package/src/tests/fixtures/extensions/record-blocks/hooks.ts +10 -0
- package/src/tests/fixtures/extensions/record-blocks/manifest.json +7 -0
- package/src/tests/fixtures/fake-amp.ts +22 -8
- package/src/tests/fixtures/held-template-render.ts +42 -0
- package/src/tests/fixtures/workflow-idempotency-trigger.child.ts +73 -0
- package/src/tests/openapi-route-headers.test.ts +2 -0
- package/src/tests/opencode-adapter.test.ts +134 -0
- package/src/tests/pi-mono-adapter.test.ts +105 -0
- package/src/tests/prompt-template-session.test.ts +4 -3
- package/src/tests/runner-push-delivery.test.ts +25 -0
- package/src/tests/runtime-controller-liveness.test.ts +133 -0
- package/src/tests/runtime-providers-docker.test.ts +2 -0
- package/src/tests/script-connections.test.ts +3 -0
- package/src/tests/script-run-config-scope.test.ts +91 -3
- package/src/tests/session-logs.test.ts +70 -0
- package/src/tests/sessions-tree.test.ts +37 -0
- package/src/tests/workflow-cascade-cancel.test.ts +1169 -0
- package/src/tests/workflow-foreach-supersede-retry.test.ts +488 -0
- package/src/tests/workflow-idempotency.test.ts +915 -0
- package/src/tools/workflows/cancel-workflow-run.ts +1 -1
- package/src/utils/context-window.ts +8 -6
- package/src/workflows/approval-cancel.ts +15 -13
- package/src/workflows/approval-notifications.ts +5 -1
- package/src/workflows/checkpoint.ts +6 -3
- package/src/workflows/engine.ts +30 -8
- package/src/workflows/executors/foreach.ts +2 -2
- package/src/workflows/foreach-driver.ts +10 -3
- package/src/workflows/foreach-join.ts +29 -6
- package/src/workflows/recovery.ts +6 -1
- package/src/workflows/resume.ts +168 -56
- package/src/workflows/retry-poller.ts +49 -3
- package/src/workflows/task-step-routing.ts +29 -7
- package/templates/ai-toolbox.manifest.json +8 -8
- package/templates/community/open-prompt-showreel/PLAYBOOK.md +5 -6
- package/templates/community/open-prompt-showreel/lead-prompt.md +1 -1
- package/templates/community/open-prompt-showreel/skills/open-prompt-showreel/SKILL.md +4 -4
- package/templates/skills/agent-browser/SKILL.md +4 -4
- package/templates/skills/agent-browser/content.md +4 -4
- package/templates/skills/code-quality/config.json +1 -1
- package/templates/skills/code-quality/content.md +2 -2
- package/templates/skills/delegate-work/content.md +29 -25
- package/templates/skills/delegate-work/files/scripts/codex-exec.sh +5 -5
- package/templates/skills/qa/content.md +2 -2
- package/templates/skills/researching/content.md +2 -0
- package/templates/skills/work-on-task/SKILL.md +1 -1
- package/templates/skills/work-on-task/content.md +1 -1
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
getAuthorizationById,
|
|
3
3
|
listAuthorizationSweepRows,
|
|
4
4
|
init_oauth
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-jb30dzvk.js";
|
|
6
6
|
import {
|
|
7
7
|
forceRefreshAuthorizationOrThrow
|
|
8
|
-
} from "./cli-
|
|
8
|
+
} from "./cli-tsma7p8v.js";
|
|
9
9
|
import {
|
|
10
10
|
scrubSecrets,
|
|
11
11
|
init_secret_scrubber
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
createDefaultSettingsLocal,
|
|
17
17
|
createDefaultMcpJson,
|
|
18
18
|
createHooksConfig
|
|
19
|
-
} from "./cli-
|
|
19
|
+
} from "./cli-s682zgqz.js";
|
|
20
20
|
import {
|
|
21
21
|
getSlackConfiguration,
|
|
22
22
|
isSlackConfigured,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
init_package,
|
|
27
27
|
package_default
|
|
28
|
-
} from "./cli-
|
|
28
|
+
} from "./cli-xtrz6bzs.js";
|
|
29
29
|
import {
|
|
30
30
|
getApiKey,
|
|
31
31
|
init_api_key
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
applyOpenRouterBaseUrlOverride2,
|
|
4
4
|
buildOpenAICompatibleProviderBlock2,
|
|
5
5
|
OpencodeAdapter2
|
|
6
|
-
} from "./cli-
|
|
7
|
-
import"./cli-
|
|
6
|
+
} from "./cli-hh5we352.js";
|
|
7
|
+
import"./cli-c952c7ac.js";
|
|
8
8
|
import"./cli-4bd1rck6.js";
|
|
9
9
|
import"./cli-jc1g9ndz.js";
|
|
10
|
-
import"./cli-a5ebc95n.js";
|
|
11
10
|
import"./cli-mmhj8vd7.js";
|
|
12
11
|
import"./cli-0726awxw.js";
|
|
12
|
+
import"./cli-2655k16q.js";
|
|
13
13
|
import"./cli-bn0rewsy.js";
|
|
14
14
|
import"./cli-3h26v7yj.js";
|
|
15
15
|
import"./cli-qqzmjxkf.js";
|
|
@@ -20,6 +20,10 @@ import {
|
|
|
20
20
|
getBuiltinModels
|
|
21
21
|
} from "./cli-qqzmjxkf.js";
|
|
22
22
|
import"./cli-kvzgak7c.js";
|
|
23
|
+
import {
|
|
24
|
+
contextBoundNoteThreshold,
|
|
25
|
+
createContextBoundNote
|
|
26
|
+
} from "./cli-2655k16q.js";
|
|
23
27
|
import {
|
|
24
28
|
swarmRuntimeInstanceId
|
|
25
29
|
} from "./cli-e8xyjvfc.js";
|
|
@@ -30,7 +34,7 @@ import"./cli-3h26v7yj.js";
|
|
|
30
34
|
import"./cli-0726awxw.js";
|
|
31
35
|
import {
|
|
32
36
|
createSwarmHooksExtension
|
|
33
|
-
} from "./cli-
|
|
37
|
+
} from "./cli-c952c7ac.js";
|
|
34
38
|
import"./cli-kxpfx2xr.js";
|
|
35
39
|
import"./cli-mmhj8vd7.js";
|
|
36
40
|
import {
|
|
@@ -54,16 +58,16 @@ import {
|
|
|
54
58
|
} from "./cli-2dfbv8qr.js";
|
|
55
59
|
import {
|
|
56
60
|
init_templates3
|
|
57
|
-
} from "./cli-
|
|
58
|
-
import {
|
|
59
|
-
resolveTemplateAsync,
|
|
60
|
-
init_resolver
|
|
61
|
-
} from "./cli-tx00c0h6.js";
|
|
61
|
+
} from "./cli-j6rktc91.js";
|
|
62
62
|
import {
|
|
63
63
|
DEFAULT_OPENROUTER_BASE_URL,
|
|
64
64
|
getOpenRouterBaseUrl,
|
|
65
65
|
init_openrouter_base_url
|
|
66
66
|
} from "./cli-dfyv0jdy.js";
|
|
67
|
+
import {
|
|
68
|
+
resolveTemplateAsync,
|
|
69
|
+
init_resolver
|
|
70
|
+
} from "./cli-dqygeeh5.js";
|
|
67
71
|
import {
|
|
68
72
|
snapshotCatalogRows,
|
|
69
73
|
init_runtime_model_catalog
|
|
@@ -585,6 +589,14 @@ function extractPiAssistantText(message) {
|
|
|
585
589
|
function safeLabel(value) {
|
|
586
590
|
return typeof value === "string" && /^[A-Za-z0-9_-]{1,32}$/.test(value) ? value : "other";
|
|
587
591
|
}
|
|
592
|
+
function requestContextTokens(message) {
|
|
593
|
+
const usage = message?.usage;
|
|
594
|
+
if (typeof usage?.input !== "number")
|
|
595
|
+
return;
|
|
596
|
+
const cacheRead = typeof usage.cacheRead === "number" ? usage.cacheRead : 0;
|
|
597
|
+
const cacheWrite = typeof usage.cacheWrite === "number" ? usage.cacheWrite : 0;
|
|
598
|
+
return usage.input + cacheRead + cacheWrite;
|
|
599
|
+
}
|
|
588
600
|
function describeAssistantTurn(message) {
|
|
589
601
|
const msg = message ?? {};
|
|
590
602
|
const blocks = Array.isArray(msg.content) ? msg.content : [];
|
|
@@ -640,6 +652,8 @@ class PiMonoSession {
|
|
|
640
652
|
emptyTurnReprompted = false;
|
|
641
653
|
abortRequested = false;
|
|
642
654
|
disposeModels;
|
|
655
|
+
observeContextBound;
|
|
656
|
+
toolTurnOpen = false;
|
|
643
657
|
constructor(agentSession, config, createdSymlink, appliedReasoningEffort = null, disposeModels = async () => {}) {
|
|
644
658
|
this.agentSession = agentSession;
|
|
645
659
|
this.disposeModels = disposeModels;
|
|
@@ -649,6 +663,12 @@ class PiMonoSession {
|
|
|
649
663
|
this.logFileHandle = Bun.file(config.logFile).writer();
|
|
650
664
|
this._sessionId = agentSession.sessionId;
|
|
651
665
|
this.sessionStartedAt = Date.now();
|
|
666
|
+
this.observeContextBound = createContextBoundNote({
|
|
667
|
+
threshold: contextBoundNoteThreshold(config.env ?? process.env),
|
|
668
|
+
model: () => this.reportedModel(),
|
|
669
|
+
canDeliver: () => this.toolTurnOpen && !this.sessionEnded && !this.abortRequested,
|
|
670
|
+
inject: (note) => this.deliverSteering({ mode: "steer", text: note })
|
|
671
|
+
});
|
|
652
672
|
const piVersion = readPkgVersion("@earendil-works/pi-coding-agent");
|
|
653
673
|
this.emit({
|
|
654
674
|
type: "session_init",
|
|
@@ -690,6 +710,10 @@ class PiMonoSession {
|
|
|
690
710
|
break;
|
|
691
711
|
}
|
|
692
712
|
this.terminalError = null;
|
|
713
|
+
if (turn.hasToolCall) {
|
|
714
|
+
this.toolTurnOpen = true;
|
|
715
|
+
this.observeContextBound(requestContextTokens(event.message));
|
|
716
|
+
}
|
|
693
717
|
if (!turn.hasText && !turn.hasToolCall) {
|
|
694
718
|
const tokens = turn.outputTokens === undefined ? "" : `, outputTokens=${turn.outputTokens}`;
|
|
695
719
|
this.emit({
|
|
@@ -736,6 +760,9 @@ class PiMonoSession {
|
|
|
736
760
|
}
|
|
737
761
|
break;
|
|
738
762
|
}
|
|
763
|
+
case "turn_end":
|
|
764
|
+
this.toolTurnOpen = false;
|
|
765
|
+
break;
|
|
739
766
|
case "tool_execution_start": {
|
|
740
767
|
const status = event.args?.status;
|
|
741
768
|
if (event.toolName.endsWith("store-progress") && typeof status === "string" && TERMINAL_STORE_PROGRESS_STATUSES.has(status)) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
requestModelCatalogRefresh2,
|
|
3
3
|
startPricingRefreshLoop2
|
|
4
|
-
} from "./cli-
|
|
5
|
-
import"./cli-
|
|
6
|
-
import"./cli-
|
|
4
|
+
} from "./cli-bvpgr9ny.js";
|
|
5
|
+
import"./cli-sbwsxvtd.js";
|
|
6
|
+
import"./cli-jb30dzvk.js";
|
|
7
7
|
export {
|
|
8
8
|
requestModelCatalogRefresh2 as requestModelCatalogRefresh,
|
|
9
9
|
startPricingRefreshLoop2 as startPricingRefreshLoop
|
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
isSlackRenderV2Enabled2,
|
|
3
3
|
ensureSlackThreadTree2,
|
|
4
4
|
processSlackRenderV22
|
|
5
|
-
} from "./cli-
|
|
6
|
-
import"./cli-
|
|
7
|
-
import"./cli-
|
|
5
|
+
} from "./cli-abs8ndtr.js";
|
|
6
|
+
import"./cli-eftzyh9y.js";
|
|
7
|
+
import"./cli-jb30dzvk.js";
|
|
8
8
|
export {
|
|
9
9
|
ensureSlackThreadTree2 as ensureSlackThreadTree,
|
|
10
10
|
isSlackRenderV2Enabled2 as isSlackRenderV2Enabled,
|
|
@@ -4,32 +4,34 @@ import {
|
|
|
4
4
|
retryFailedRun2,
|
|
5
5
|
cancelWorkflowRunRows2,
|
|
6
6
|
cancelWorkflowRun2,
|
|
7
|
+
postTreeApprovalCancellations2,
|
|
7
8
|
resumeWaitState2,
|
|
8
9
|
recoverResolvedWaitState2,
|
|
9
10
|
resumeFromChildRun2,
|
|
10
11
|
initWaitBusSubscriptions2,
|
|
11
12
|
subscribeWaitToBus2
|
|
12
|
-
} from "./cli-
|
|
13
|
-
import"./cli-
|
|
13
|
+
} from "./cli-x0f2v69c.js";
|
|
14
|
+
import"./cli-gbfxp48k.js";
|
|
14
15
|
import"./cli-qqzmjxkf.js";
|
|
15
16
|
import"./cli-kxpfx2xr.js";
|
|
16
17
|
import"./cli-e8xyjvfc.js";
|
|
17
18
|
import"./cli-13p25grh.js";
|
|
18
19
|
import"./cli-0adyhvq2.js";
|
|
19
|
-
import"./cli-
|
|
20
|
-
import"./cli-
|
|
21
|
-
import"./cli-
|
|
20
|
+
import"./cli-abs8ndtr.js";
|
|
21
|
+
import"./cli-eftzyh9y.js";
|
|
22
|
+
import"./cli-6a1xg1p7.js";
|
|
22
23
|
import"./cli-rycdaj0a.js";
|
|
23
24
|
import"./cli-445c1vp7.js";
|
|
24
25
|
import"./cli-kvzgak7c.js";
|
|
25
26
|
import"./cli-2nf3b08t.js";
|
|
26
|
-
import"./cli-
|
|
27
|
+
import"./cli-jb30dzvk.js";
|
|
27
28
|
import"./cli-dabehxhp.js";
|
|
28
29
|
export {
|
|
29
30
|
cancelWorkflowRun2 as cancelWorkflowRun,
|
|
30
31
|
cancelWorkflowRunRows2 as cancelWorkflowRunRows,
|
|
31
32
|
finalizeOrWait2 as finalizeOrWait,
|
|
32
33
|
initWaitBusSubscriptions2 as initWaitBusSubscriptions,
|
|
34
|
+
postTreeApprovalCancellations2 as postTreeApprovalCancellations,
|
|
33
35
|
recoverResolvedWaitState2 as recoverResolvedWaitState,
|
|
34
36
|
resumeFromChildRun2 as resumeFromChildRun,
|
|
35
37
|
resumeWaitState2 as resumeWaitState,
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
pathSessionDenial2,
|
|
11
11
|
bodySessionDenial2,
|
|
12
12
|
userAgentIdentityDenial2
|
|
13
|
-
} from "./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
13
|
+
} from "./cli-gwhjmh8g.js";
|
|
14
|
+
import"./cli-6a1xg1p7.js";
|
|
15
|
+
import"./cli-ff1tm9n9.js";
|
|
16
|
+
import"./cli-jb30dzvk.js";
|
|
17
17
|
export {
|
|
18
18
|
SESSION_READ_DENIED2 as SESSION_READ_DENIED,
|
|
19
19
|
SESSION_WRITE_DENIED2 as SESSION_WRITE_DENIED,
|
|
@@ -2,18 +2,18 @@ import {
|
|
|
2
2
|
getAgentById2,
|
|
3
3
|
getTaskById2,
|
|
4
4
|
init_db3
|
|
5
|
-
} from "./cli-
|
|
5
|
+
} from "./cli-jb30dzvk.js";
|
|
6
6
|
import {
|
|
7
7
|
slackTaskOutput,
|
|
8
8
|
getTaskUrl
|
|
9
|
-
} from "./cli-
|
|
9
|
+
} from "./cli-abs8ndtr.js";
|
|
10
10
|
import {
|
|
11
11
|
shouldBlockChannel2
|
|
12
|
-
} from "./cli-
|
|
13
|
-
import"./cli-
|
|
14
|
-
import"./cli-
|
|
15
|
-
import"./cli-
|
|
16
|
-
import"./cli-
|
|
12
|
+
} from "./cli-eftzyh9y.js";
|
|
13
|
+
import"./cli-asq5ydm4.js";
|
|
14
|
+
import"./cli-gbfxp48k.js";
|
|
15
|
+
import"./cli-7p4jxgtt.js";
|
|
16
|
+
import"./cli-tsma7p8v.js";
|
|
17
17
|
import"./cli-3ggwdtb0.js";
|
|
18
18
|
import"./cli-e8xyjvfc.js";
|
|
19
19
|
import"./cli-qqzmjxkf.js";
|
|
@@ -22,26 +22,26 @@ import"./cli-kvzgak7c.js";
|
|
|
22
22
|
import"./cli-445c1vp7.js";
|
|
23
23
|
import"./cli-kxpfx2xr.js";
|
|
24
24
|
import"./cli-dabehxhp.js";
|
|
25
|
-
import"./cli-
|
|
25
|
+
import"./cli-x0f2v69c.js";
|
|
26
26
|
import"./cli-9s05422w.js";
|
|
27
|
-
import"./cli-
|
|
28
|
-
import"./cli-
|
|
27
|
+
import"./cli-sbwsxvtd.js";
|
|
28
|
+
import"./cli-bvpgr9ny.js";
|
|
29
29
|
import"./cli-qz93y3x5.js";
|
|
30
|
-
import"./cli-
|
|
31
|
-
import"./cli-
|
|
30
|
+
import"./cli-ff1tm9n9.js";
|
|
31
|
+
import"./cli-c61mbdds.js";
|
|
32
32
|
import"./cli-g9ypd5en.js";
|
|
33
|
-
import"./cli-
|
|
34
|
-
import"./cli-
|
|
33
|
+
import"./cli-19202kew.js";
|
|
34
|
+
import"./cli-gwhjmh8g.js";
|
|
35
35
|
import"./cli-3h26v7yj.js";
|
|
36
36
|
import"./cli-pasyvjmm.js";
|
|
37
|
-
import"./cli-
|
|
38
|
-
import"./cli-
|
|
37
|
+
import"./cli-jbnn4vxb.js";
|
|
38
|
+
import"./cli-wghjkr0e.js";
|
|
39
39
|
import {
|
|
40
40
|
isUserAllowed2
|
|
41
|
-
} from "./cli-
|
|
41
|
+
} from "./cli-xzfq4at3.js";
|
|
42
42
|
import"./cli-13p25grh.js";
|
|
43
43
|
import"./cli-0adyhvq2.js";
|
|
44
|
-
import"./cli-
|
|
44
|
+
import"./cli-6a1xg1p7.js";
|
|
45
45
|
import"./cli-rycdaj0a.js";
|
|
46
46
|
import {
|
|
47
47
|
isEnvFlagEnabled,
|
|
@@ -1,67 +1,67 @@
|
|
|
1
1
|
import"./cli-qz93y3x5.js";
|
|
2
2
|
import {
|
|
3
3
|
getEnabledCapabilities
|
|
4
|
-
} from "./cli-
|
|
5
|
-
import"./cli-
|
|
6
|
-
import"./cli-
|
|
7
|
-
import"./cli-
|
|
8
|
-
import"./cli-
|
|
9
|
-
import"./cli-
|
|
4
|
+
} from "./cli-asq5ydm4.js";
|
|
5
|
+
import"./cli-jb30dzvk.js";
|
|
6
|
+
import"./cli-ff1tm9n9.js";
|
|
7
|
+
import"./cli-c61mbdds.js";
|
|
8
|
+
import"./cli-sbwsxvtd.js";
|
|
9
|
+
import"./cli-bvpgr9ny.js";
|
|
10
10
|
import"./cli-9s05422w.js";
|
|
11
|
-
import"./cli-
|
|
12
|
-
import"./cli-
|
|
13
|
-
import"./cli-
|
|
11
|
+
import"./cli-dabehxhp.js";
|
|
12
|
+
import"./cli-gbfxp48k.js";
|
|
13
|
+
import"./cli-7p4jxgtt.js";
|
|
14
|
+
import"./cli-tsma7p8v.js";
|
|
14
15
|
import"./cli-3ggwdtb0.js";
|
|
15
16
|
import"./cli-e8xyjvfc.js";
|
|
16
|
-
import"./cli-
|
|
17
|
-
import"./cli-
|
|
17
|
+
import"./cli-abs8ndtr.js";
|
|
18
|
+
import"./cli-eftzyh9y.js";
|
|
18
19
|
import"./cli-qqzmjxkf.js";
|
|
19
20
|
import"./cli-2nf3b08t.js";
|
|
20
21
|
import"./cli-kvzgak7c.js";
|
|
21
22
|
import"./cli-445c1vp7.js";
|
|
22
23
|
import"./cli-kxpfx2xr.js";
|
|
23
|
-
import"./cli-
|
|
24
|
-
import"./cli-
|
|
25
|
-
import"./cli-1fc85mvt.js";
|
|
24
|
+
import"./cli-x0f2v69c.js";
|
|
25
|
+
import"./cli-gwhjmh8g.js";
|
|
26
26
|
import"./cli-g9ypd5en.js";
|
|
27
|
-
import"./cli-
|
|
27
|
+
import"./cli-19202kew.js";
|
|
28
28
|
import"./cli-3h26v7yj.js";
|
|
29
29
|
import"./cli-pasyvjmm.js";
|
|
30
|
-
import"./cli-
|
|
30
|
+
import"./cli-sxgtf5fw.js";
|
|
31
31
|
import"./cli-bn0rewsy.js";
|
|
32
32
|
import"./cli-77cd6gy8.js";
|
|
33
|
-
import"./cli-
|
|
33
|
+
import"./cli-277c31dw.js";
|
|
34
34
|
import {
|
|
35
35
|
runAgent
|
|
36
|
-
} from "./cli-
|
|
37
|
-
import"./cli-a5ebc95n.js";
|
|
36
|
+
} from "./cli-k4tjsdx9.js";
|
|
38
37
|
import"./cli-gx4rm0qx.js";
|
|
39
38
|
import"./cli-5kqnemen.js";
|
|
39
|
+
import"./cli-2655k16q.js";
|
|
40
40
|
import"./cli-jc1g9ndz.js";
|
|
41
|
-
import"./cli-
|
|
42
|
-
import"./cli-
|
|
41
|
+
import"./cli-wx2nj19m.js";
|
|
42
|
+
import"./cli-pzatvw94.js";
|
|
43
43
|
import"./cli-mmhj8vd7.js";
|
|
44
44
|
import"./cli-d82btycs.js";
|
|
45
45
|
import"./cli-0726awxw.js";
|
|
46
|
-
import"./cli-
|
|
47
|
-
import"./cli-
|
|
46
|
+
import"./cli-9j129brq.js";
|
|
47
|
+
import"./cli-g9vd9ece.js";
|
|
48
48
|
import"./cli-4bd1rck6.js";
|
|
49
49
|
import"./cli-vbhgkw9h.js";
|
|
50
|
-
import"./cli-
|
|
51
|
-
import"./cli-
|
|
50
|
+
import"./cli-rr7zx19j.js";
|
|
51
|
+
import"./cli-4b2z6n0m.js";
|
|
52
52
|
import"./cli-kr5tjjtz.js";
|
|
53
|
-
import"./cli-
|
|
54
|
-
import"./cli-
|
|
53
|
+
import"./cli-64mh9mf3.js";
|
|
54
|
+
import"./cli-25n3mv5d.js";
|
|
55
55
|
import"./cli-g1cw7xtt.js";
|
|
56
|
-
import"./cli-
|
|
57
|
-
import"./cli-
|
|
58
|
-
import"./cli-
|
|
59
|
-
import"./cli-
|
|
60
|
-
import"./cli-
|
|
56
|
+
import"./cli-5bnsc0e1.js";
|
|
57
|
+
import"./cli-m4ecdxvz.js";
|
|
58
|
+
import"./cli-c952c7ac.js";
|
|
59
|
+
import"./cli-hh5we352.js";
|
|
60
|
+
import"./cli-621ce7kw.js";
|
|
61
61
|
import"./cli-4zsenjhy.js";
|
|
62
62
|
import"./cli-13p25grh.js";
|
|
63
63
|
import"./cli-0adyhvq2.js";
|
|
64
|
-
import"./cli-
|
|
64
|
+
import"./cli-6a1xg1p7.js";
|
|
65
65
|
import"./cli-rycdaj0a.js";
|
|
66
66
|
|
|
67
67
|
// src/commands/worker.ts
|
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "Agent Swarm API",
|
|
5
|
-
"version": "2.5.
|
|
5
|
+
"version": "2.5.4",
|
|
6
6
|
"description": "Multi-agent orchestration API for Claude Code, Codex, and Gemini CLI. Enables task distribution, agent communication, and service discovery.\n\nMCP tools are documented separately in [MCP.md](./MCP.md)."
|
|
7
7
|
},
|
|
8
8
|
"servers": [
|
|
@@ -61334,6 +61334,19 @@
|
|
|
61334
61334
|
"bearerAuth": []
|
|
61335
61335
|
}
|
|
61336
61336
|
],
|
|
61337
|
+
"parameters": [
|
|
61338
|
+
{
|
|
61339
|
+
"schema": {
|
|
61340
|
+
"type": "string",
|
|
61341
|
+
"pattern": "^[\\x21-\\x7E]{1,255}$",
|
|
61342
|
+
"description": "Optional client-generated key, 1-255 visible ASCII characters (a UUID works). The first request the server accepts under a key creates one workflow; a retry with the same key and an equivalent body gets that request's status and body back (with `Idempotent-Replayed: true`) and changes nothing. The key is scoped to the caller's identity and this operation; it is not a credential. The same key with a different body is a 409. A request rejected before it is accepted (validation, auth, not found, disabled) does not use up the key. Accepted keys do not expire."
|
|
61343
|
+
},
|
|
61344
|
+
"required": false,
|
|
61345
|
+
"description": "Optional client-generated key, 1-255 visible ASCII characters (a UUID works). The first request the server accepts under a key creates one workflow; a retry with the same key and an equivalent body gets that request's status and body back (with `Idempotent-Replayed: true`) and changes nothing. The key is scoped to the caller's identity and this operation; it is not a credential. The same key with a different body is a 409. A request rejected before it is accepted (validation, auth, not found, disabled) does not use up the key. Accepted keys do not expire.",
|
|
61346
|
+
"name": "Idempotency-Key",
|
|
61347
|
+
"in": "header"
|
|
61348
|
+
}
|
|
61349
|
+
],
|
|
61337
61350
|
"requestBody": {
|
|
61338
61351
|
"content": {
|
|
61339
61352
|
"application/json": {
|
|
@@ -61635,7 +61648,27 @@
|
|
|
61635
61648
|
}
|
|
61636
61649
|
},
|
|
61637
61650
|
"400": {
|
|
61638
|
-
"description": "Invalid definition",
|
|
61651
|
+
"description": "Invalid definition, or a malformed Idempotency-Key",
|
|
61652
|
+
"content": {
|
|
61653
|
+
"application/json": {
|
|
61654
|
+
"schema": {
|
|
61655
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
61656
|
+
}
|
|
61657
|
+
}
|
|
61658
|
+
}
|
|
61659
|
+
},
|
|
61660
|
+
"409": {
|
|
61661
|
+
"description": "Idempotency-Key was already used for a different request",
|
|
61662
|
+
"content": {
|
|
61663
|
+
"application/json": {
|
|
61664
|
+
"schema": {
|
|
61665
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
61666
|
+
}
|
|
61667
|
+
}
|
|
61668
|
+
}
|
|
61669
|
+
},
|
|
61670
|
+
"410": {
|
|
61671
|
+
"description": "The workflow created under this Idempotency-Key was deleted",
|
|
61639
61672
|
"content": {
|
|
61640
61673
|
"application/json": {
|
|
61641
61674
|
"schema": {
|
|
@@ -62341,6 +62374,7 @@
|
|
|
62341
62374
|
"/api/workflows/{id}/trigger": {
|
|
62342
62375
|
"post": {
|
|
62343
62376
|
"summary": "Trigger a workflow execution",
|
|
62377
|
+
"description": "With an `Idempotency-Key`, a retry returns the accepted run's `runId` and `skipped` without starting, resuming or waiting for anything, even after the workflow was disabled or edited and whatever state the run is in now.",
|
|
62344
62378
|
"tags": [
|
|
62345
62379
|
"Workflows"
|
|
62346
62380
|
],
|
|
@@ -62357,6 +62391,17 @@
|
|
|
62357
62391
|
"required": true,
|
|
62358
62392
|
"name": "id",
|
|
62359
62393
|
"in": "path"
|
|
62394
|
+
},
|
|
62395
|
+
{
|
|
62396
|
+
"schema": {
|
|
62397
|
+
"type": "string",
|
|
62398
|
+
"pattern": "^[\\x21-\\x7E]{1,255}$",
|
|
62399
|
+
"description": "Optional client-generated key, 1-255 visible ASCII characters (a UUID works). The first request the server accepts under a key starts one run; a retry with the same key and an equivalent body gets that request's status and body back (with `Idempotent-Replayed: true`) and changes nothing. The key is scoped to the caller's identity and this operation; it is not a credential. The same key with a different body is a 409. A request rejected before it is accepted (validation, auth, not found, disabled) does not use up the key. Accepted keys do not expire."
|
|
62400
|
+
},
|
|
62401
|
+
"required": false,
|
|
62402
|
+
"description": "Optional client-generated key, 1-255 visible ASCII characters (a UUID works). The first request the server accepts under a key starts one run; a retry with the same key and an equivalent body gets that request's status and body back (with `Idempotent-Replayed: true`) and changes nothing. The key is scoped to the caller's identity and this operation; it is not a credential. The same key with a different body is a 409. A request rejected before it is accepted (validation, auth, not found, disabled) does not use up the key. Accepted keys do not expire.",
|
|
62403
|
+
"name": "Idempotency-Key",
|
|
62404
|
+
"in": "header"
|
|
62360
62405
|
}
|
|
62361
62406
|
],
|
|
62362
62407
|
"responses": {
|
|
@@ -62383,7 +62428,7 @@
|
|
|
62383
62428
|
}
|
|
62384
62429
|
},
|
|
62385
62430
|
"400": {
|
|
62386
|
-
"description": "Workflow is disabled",
|
|
62431
|
+
"description": "Workflow is disabled, or a malformed Idempotency-Key",
|
|
62387
62432
|
"content": {
|
|
62388
62433
|
"application/json": {
|
|
62389
62434
|
"schema": {
|
|
@@ -62411,6 +62456,26 @@
|
|
|
62411
62456
|
}
|
|
62412
62457
|
}
|
|
62413
62458
|
}
|
|
62459
|
+
},
|
|
62460
|
+
"409": {
|
|
62461
|
+
"description": "Idempotency-Key was already used for a different request",
|
|
62462
|
+
"content": {
|
|
62463
|
+
"application/json": {
|
|
62464
|
+
"schema": {
|
|
62465
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
62466
|
+
}
|
|
62467
|
+
}
|
|
62468
|
+
}
|
|
62469
|
+
},
|
|
62470
|
+
"410": {
|
|
62471
|
+
"description": "The workflow triggered under this Idempotency-Key was deleted",
|
|
62472
|
+
"content": {
|
|
62473
|
+
"application/json": {
|
|
62474
|
+
"schema": {
|
|
62475
|
+
"$ref": "#/components/schemas/ErrorResponse"
|
|
62476
|
+
}
|
|
62477
|
+
}
|
|
62478
|
+
}
|
|
62414
62479
|
}
|
|
62415
62480
|
}
|
|
62416
62481
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@desplega.ai/agent-swarm",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.4",
|
|
4
4
|
"description": "agent-swarm.dev — an open-source operating system for AI work: a lead agent breaks goals into tasks, routes them to specialized workers such as Claude Code or Codex, runs each worker in an isolated container, and preserves shared memory, tools, schedules, and review gates so delegated work compounds across sessions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-swarm.dev",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"config": {
|
|
55
55
|
"name": "agent-swarm"
|
|
56
56
|
},
|
|
57
|
-
"packageManager": "bun@1.4.
|
|
57
|
+
"packageManager": "bun@1.4.4",
|
|
58
58
|
"workspaces": [
|
|
59
59
|
"apps/ui",
|
|
60
60
|
"apps/templates-ui",
|
|
@@ -199,10 +199,10 @@
|
|
|
199
199
|
"bun": ">=1.3.12"
|
|
200
200
|
},
|
|
201
201
|
"dependencies": {
|
|
202
|
-
"@agentclientprotocol/sdk": "2.0.
|
|
202
|
+
"@agentclientprotocol/sdk": "2.0.2",
|
|
203
203
|
"@ai-sdk/openai": "^3.0.41",
|
|
204
|
-
"@anthropic-ai/claude-agent-sdk": "0.3.
|
|
205
|
-
"@anthropic-ai/sdk": "^1.
|
|
204
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.310",
|
|
205
|
+
"@anthropic-ai/sdk": "^1.3.0",
|
|
206
206
|
"@asteasolutions/zod-to-openapi": "^8.0.0",
|
|
207
207
|
"@aws-sdk/client-bedrock": "3.1048.0",
|
|
208
208
|
"@chat-adapter/discord": "4.41.1",
|
|
@@ -31,8 +31,8 @@ You should be working in a repository cloned to `/workspace/personal/<repo-name>
|
|
|
31
31
|
- **Show the change, do not narrate it.** Aim for about 250 prose words; code blocks, mermaid, tables and `<details>` do not count. No file-by-file changelog: that belongs in your task output.
|
|
32
32
|
- **Review map**: build it from `git diff --stat <base>...HEAD`. One row per area, biggest risk first, with `(+N/-M)`, a depth (🔍 deep, 👀 skim, ⏭ skip for tests and generated files) and what could break.
|
|
33
33
|
- **Change outline**: 1 or 2 views of the shape of the change. Pseudocode with `+`/`-` lines for logic, mermaid for flow, a tree with paths on the nodes for structure.
|
|
34
|
-
- **Swarm provenance** (when you run in the swarm): fill it from your task context. Link the task (`$APP_URL/tasks/<taskId>`) and its tree (`$APP_URL/sessions/<rootTaskId>`), the Slack permalink of the ask if the task came from Slack, any workflow run, and the plan or research as
|
|
35
|
-
- **Media**: images and mp4s as GitHub user attachments (`github-attach` skill), docs as `agent-fs share-create`
|
|
34
|
+
- **Swarm provenance** (when you run in the swarm): fill it from your task context. Link the task (`$APP_URL/tasks/<taskId>`) and its tree (`$APP_URL/sessions/<rootTaskId>`), the Slack permalink of the ask if the task came from Slack, any workflow run, and the plan or research as its agent-fs live app link (`${AGENT_FS_LIVE_URL}/file/~/<org>/<drive>/<path>`). These auth-gated links go in this section only.
|
|
35
|
+
- **Media**: images and mp4s as GitHub user attachments (`github-attach` skill), docs as the agent-fs live app link under Swarm provenance (an `agent-fs share-create` link only when the requester asks for one or a reader has no agent-fs login). Never a presigned agent-fs URL for docs or videos.
|
|
36
36
|
6. **Create the PR/MR** using `gh pr create` or `glab mr create`. `gh pr create --body` does not apply the repo template, so write the filled description to a file and pass it with `--body-file <file>`.
|
|
37
37
|
7. **Check CI status** — After creating the PR, wait ~30 seconds, then check CI with `gh pr checks <pr-number>` (GitHub) or `glab mr view --json pipelines` (GitLab). If any check is failing, investigate the failure, fix it, push the fix, and re-check. Repeat until CI is green.
|
|
38
38
|
8. **Report** the PR/MR URL and CI status.
|
|
@@ -31,8 +31,8 @@ You should be working in a repository cloned to `/workspace/personal/<repo-name>
|
|
|
31
31
|
- **Show the change, do not narrate it.** Aim for about 250 prose words; code blocks, mermaid, tables and `<details>` do not count. No file-by-file changelog: that belongs in your task output.
|
|
32
32
|
- **Review map**: build it from `git diff --stat <base>...HEAD`. One row per area, biggest risk first, with `(+N/-M)`, a depth (🔍 deep, 👀 skim, ⏭ skip for tests and generated files) and what could break.
|
|
33
33
|
- **Change outline**: 1 or 2 views of the shape of the change. Pseudocode with `+`/`-` lines for logic, mermaid for flow, a tree with paths on the nodes for structure.
|
|
34
|
-
- **Swarm provenance** (when you run in the swarm): fill it from your task context. Link the task (`$APP_URL/tasks/<taskId>`) and its tree (`$APP_URL/sessions/<rootTaskId>`), the Slack permalink of the ask if the task came from Slack, any workflow run, and the plan or research as
|
|
35
|
-
- **Media**: images and mp4s as GitHub user attachments (`github-attach` skill), docs as `agent-fs share-create`
|
|
34
|
+
- **Swarm provenance** (when you run in the swarm): fill it from your task context. Link the task (`$APP_URL/tasks/<taskId>`) and its tree (`$APP_URL/sessions/<rootTaskId>`), the Slack permalink of the ask if the task came from Slack, any workflow run, and the plan or research as its agent-fs live app link (`${AGENT_FS_LIVE_URL}/file/~/<org>/<drive>/<path>`). These auth-gated links go in this section only.
|
|
35
|
+
- **Media**: images and mp4s as GitHub user attachments (`github-attach` skill), docs as the agent-fs live app link under Swarm provenance (an `agent-fs share-create` link only when the requester asks for one or a reader has no agent-fs login). Never a presigned agent-fs URL for docs or videos.
|
|
36
36
|
6. **Create the PR/MR** using `gh pr create` or `glab mr create`. `gh pr create --body` does not apply the repo template, so write the filled description to a file and pass it with `--body-file <file>`.
|
|
37
37
|
7. **Check CI status** — After creating the PR, wait ~30 seconds, then check CI with `gh pr checks <pr-number>` (GitHub) or `glab mr view --json pipelines` (GitLab). If any check is failing, investigate the failure, fix it, push the fix, and re-check. Repeat until CI is green.
|
|
38
38
|
8. **Report** the PR/MR URL and CI status.
|