@desplega.ai/agent-swarm 1.172.0 → 1.173.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acp-adapter-fpecx1g1.js → acp-adapter-ccm9xrep.js} +8 -8
- package/dist/{actions-pw87a1a8.js → actions-sgeyv08k.js} +44 -19
- package/dist/{amp-adapter-8jem2bc0.js → amp-adapter-gpxp3kc9.js} +1 -1
- package/dist/{anthropic-messages-8ee2f22q.js → anthropic-messages-r6czkjv1.js} +7 -7
- package/dist/{app-wmf0m843.js → app-km9qnv2f.js} +6 -4
- package/dist/{assistant-emp1e108.js → assistant-5r8tcvvd.js} +44 -22
- package/dist/{boot-reembed-4ymn9atn.js → boot-reembed-16rv9843.js} +4 -3
- package/dist/{boot-reembed-1de4f4aj.js → boot-reembed-swwzdgd7.js} +4 -3
- package/dist/{boot-scrub-sweep-adhk1s8c.js → boot-scrub-sweep-zkr6vkqb.js} +5 -4
- package/dist/{boot-seeds-8q637aew.js → boot-seeds-d8sp49t2.js} +7 -6
- package/dist/{claude-adapter-t26cv8a4.js → claude-adapter-yzzzh8jp.js} +9 -9
- package/dist/{claude-sdk-session-gsfsh662.js → claude-sdk-session-4whxere4.js} +9458 -9164
- package/dist/{cli-g4f5pj26.js → cli-0a7mm3zp.js} +92 -10
- package/dist/{cli-pj6x9qce.js → cli-0kxf81jj.js} +1 -1
- package/dist/{cli-kb4ehzx5.js → cli-1w0vj3gw.js} +4 -4
- package/dist/{cli-e0a9sk00.js → cli-3nxdmjrc.js} +1 -1
- package/dist/{cli-6jb2rf77.js → cli-42qhyvwx.js} +3 -3
- package/dist/{cli-esnpehf5.js → cli-5er5gjbm.js} +4 -4
- package/dist/{cli-04emfe2q.js → cli-5wpw4rab.js} +1 -1
- package/dist/{cli-aspcaef3.js → cli-6r2f7edk.js} +4 -4
- package/dist/{cli-xczpdp9e.js → cli-6thk4jz3.js} +1 -1
- package/dist/{cli-j6kpj9az.js → cli-7a93cv8c.js} +1458 -48
- package/dist/{cli-k46r9hmk.js → cli-94b48jhk.js} +2 -2
- package/dist/{cli-gp1rtyvk.js → cli-9xf7fdtp.js} +2 -2
- package/dist/{cli-qsztpfry.js → cli-anzdk0z4.js} +1 -1
- package/dist/{cli-cceskcvt.js → cli-b07hr3bt.js} +8 -8
- package/dist/{cli-c2pq2rjb.js → cli-bv2etw2y.js} +2 -2
- package/dist/{cli-hwwvy36w.js → cli-c3rk1v0x.js} +3 -3
- package/dist/{cli-tgpfnm6r.js → cli-fmhj1ehj.js} +53 -13
- package/dist/{cli-r8smj8b8.js → cli-jpc4r224.js} +1 -1
- package/dist/{cli-4nz8p1p5.js → cli-m89t9jdf.js} +5 -5
- package/dist/{cli-bf7485pm.js → cli-na2pxe4f.js} +1 -1
- package/dist/{cli-prrt9fa0.js → cli-ne7smj1b.js} +4 -4
- package/dist/{cli-cf69s3ew.js → cli-nwrdx840.js} +2 -2
- package/dist/cli-p0sg24zp.js +16 -0
- package/dist/{cli-gj81e47t.js → cli-phcqp1b9.js} +1 -1
- package/dist/{cli-5rv1j9ga.js → cli-qm1448f9.js} +51 -5
- package/dist/{cli-8hzfb6xz.js → cli-r0byd61h.js} +7 -7
- package/dist/{cli-nyhb1r6x.js → cli-r4fqfpwf.js} +3 -3
- package/dist/{cli-1hgat6pa.js → cli-rfs4vddv.js} +5 -5
- package/dist/{cli-ztrv9y21.js → cli-rfz2ve55.js} +861 -246
- package/dist/{cli-pstq9888.js → cli-s8z6x4b4.js} +22 -21
- package/dist/{cli-j1pmc07z.js → cli-saqyage0.js} +92 -16
- package/dist/{cli-zxm9p3x4.js → cli-srqq3gc5.js} +1 -1
- package/dist/{cli-9xsmdpdt.js → cli-tcc4wd5d.js} +136 -42
- package/dist/cli-v3zhnxsb.js +263 -0
- package/dist/{cli-388egyf6.js → cli-w1apjecb.js} +1 -1
- package/dist/{cli-g6t9texm.js → cli-wrh08zjd.js} +4 -4
- package/dist/{cli-8vs9trd4.js → cli-x119kdba.js} +1 -1
- package/dist/{cli-nv4zd0b9.js → cli-xc7p7s3g.js} +1 -1
- package/dist/cli.js +16 -16
- package/dist/{codex-adapter-m4tgdysy.js → codex-adapter-r3dn4fp5.js} +6 -6
- package/dist/{codex-session-runner-ymwzm6ea.js → codex-session-runner-fwt793h4.js} +6 -6
- package/dist/{commands-n0hshcvs.js → commands-z8fq9qna.js} +14 -4
- package/dist/{controllers-connect-y07cqcvy.js → controllers-connect-3mf2btyj.js} +21 -19
- package/dist/{db-4w7tmt1g.js → db-qfpq4bt7.js} +4 -3
- package/dist/{db-hkqvrdcb.js → db-yyhqqrbf.js} +5 -4
- package/dist/{dispatcher-5sd69y14.js → dispatcher-x0x7qfcq.js} +20 -18
- package/dist/{dsh-adapter-2h8m4cab.js → dsh-adapter-34etvb5m.js} +1 -1
- package/dist/external-channel-h1fjecwe.js +51 -0
- package/dist/{grok-adapter-8m9yqzbq.js → grok-adapter-e7mr287e.js} +9 -9
- package/dist/{handlers-s20xr10r.js → handlers-znb9n7d4.js} +23 -21
- package/dist/{heartbeat-3k31q4g2.js → heartbeat-bm4qkn8d.js} +22 -20
- package/dist/{hook-gdn6a2fn.js → hook-254r4mza.js} +7 -7
- package/dist/{hook-ygwerrdh.js → hook-xaa3q80s.js} +8 -8
- package/dist/{http-jdteeg81.js → http-3dgrgp8y.js} +135 -64
- package/dist/{index-6ksewd5y.js → index-2ybk7khy.js} +618 -120
- package/dist/{index-tsszt7g9.js → index-bdsqa799.js} +22 -20
- package/dist/{index-e0snym4t.js → index-fx3jqq1e.js} +20 -18
- package/dist/{index-vm3bm9t7.js → index-g2byveez.js} +20 -18
- package/dist/{index-ffqzqgwb.js → index-jd7sejm2.js} +4 -3
- package/dist/{keepalive-jekc896t.js → keepalive-6ywhpja1.js} +6 -5
- package/dist/{lead-4k9s9szx.js → lead-cw45n21s.js} +32 -30
- package/dist/{maintenance-shazch4n.js → maintenance-ss1a1ge9.js} +4 -3
- package/dist/node-c9we95xf.js +1 -1
- package/dist/{oauth-refresh-sweep-5gb36kn8.js → oauth-refresh-sweep-3c6f8vyy.js} +5 -4
- package/dist/{onboard-ydrbnvww.js → onboard-8hzdhc1k.js} +2 -2
- package/dist/{opencode-adapter-5zh0he20.js → opencode-adapter-qbchbcfz.js} +6 -6
- package/dist/{otel-impl-6pf5cv86.js → otel-impl-e6mnvc4v.js} +7 -2
- package/dist/{pi-mono-adapter-ef9wwx9m.js → pi-mono-adapter-3c9g9snh.js} +6 -6
- package/dist/{pricing-refresh-s52nsa5q.js → pricing-refresh-gedkjdw0.js} +6 -5
- package/dist/{rbac-roles-aq3msh4e.js → rbac-roles-dt4vh1yy.js} +4 -3
- package/dist/{rbac-roles-q5gb5e8v.js → rbac-roles-eszdg6pm.js} +5 -4
- package/dist/{render-v2-pd1rg54q.js → render-v2-907cy6sa.js} +6 -4
- package/dist/{resume-gw4a2c6v.js → resume-42stcaz0.js} +11 -9
- package/dist/{setup-jda1ksdh.js → setup-adbc1c10.js} +2 -2
- package/dist/{virtual-modules-b3ga2m65.js → virtual-modules-rtmt494q.js} +3 -3
- package/dist/{work-objects-tb7ycye8.js → work-objects-wpj8ck95.js} +28 -21
- package/dist/{worker-njjccz5d.js → worker-bzdra9rf.js} +32 -30
- package/openapi.json +423 -7
- package/package.json +4 -4
- package/src/apps/catalog.generated.json +1309 -53
- package/src/apps/page-validator.ts +93 -31
- package/src/azure-devops/api.ts +94 -18
- package/src/azure-devops/auth.ts +32 -0
- package/src/azure-devops/boards-sync.ts +708 -0
- package/src/azure-devops/handlers.ts +52 -8
- package/src/azure-devops/html.ts +26 -0
- package/src/azure-devops/index.ts +15 -0
- package/src/azure-devops/templates.ts +86 -0
- package/src/azure-devops/types.ts +65 -1
- package/src/be/db.ts +22 -6
- package/src/be/migrations/213_script_connections_sql.sql +79 -0
- package/src/be/script-connections.ts +47 -8
- package/src/be/seed-skills/bundled-files.generated.json +10 -0
- package/src/be/seed-skills/index.ts +3 -0
- package/src/be/sql-connections.ts +118 -0
- package/src/be/swarm-config-guard.ts +1 -0
- package/src/commands/profile-sync.ts +5 -3
- package/src/commands/runner.ts +6 -2
- package/src/http/mcp-oauth.ts +6 -13
- package/src/http/pages-public.ts +3 -2
- package/src/http/pages.ts +2 -1
- package/src/http/route-def.ts +7 -6
- package/src/http/script-connection-proxy.ts +51 -4
- package/src/http/script-connections.ts +5 -2
- package/src/http/session-cost-recompute.ts +12 -2
- package/src/http/session-data.ts +4 -0
- package/src/http/webhooks.ts +24 -1
- package/src/jira/adf.ts +3 -1
- package/src/kv-reserved-namespaces.ts +2 -0
- package/src/oauth/mcp-wrapper.ts +10 -6
- package/src/otel-impl.ts +2 -1
- package/src/prompts/base-prompt.ts +3 -3
- package/src/providers/acp-targets.ts +1 -1
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/claude-adapter.ts +27 -2
- package/src/providers/claude-flag-settings.ts +121 -0
- package/src/providers/claude-sdk-session.ts +7 -0
- package/src/providers/dsh-adapter.ts +1 -1
- package/src/providers/opencode-adapter.ts +26 -12
- package/src/providers/opencode-billing.ts +86 -0
- package/src/providers/opencode-swarm-plugin.ts +20 -0
- package/src/providers/pricing-sources.md +4 -1
- package/src/providers/types.ts +5 -0
- package/src/scripts-runtime/api-client.ts +15 -1
- package/src/scripts-runtime/api-types.ts +9 -1
- package/src/scripts-runtime/ctx.ts +1 -1
- package/src/scripts-runtime/mcp-client.ts +30 -19
- package/src/slack/actions.ts +29 -1
- package/src/slack/app.ts +14 -2
- package/src/slack/assistant.ts +36 -2
- package/src/slack/channel-join.ts +3 -16
- package/src/slack/commands.ts +9 -1
- package/src/slack/external-channel-egress.ts +113 -0
- package/src/slack/external-channel.ts +309 -0
- package/src/slack/handlers.ts +61 -0
- package/src/slack/render-v2.ts +40 -47
- package/src/slack/work-objects.ts +5 -0
- package/src/tasks/context-key.ts +34 -1
- package/src/telemetry.ts +2 -1
- package/src/tests/apps-catalog-feedback.test.ts +310 -0
- package/src/tests/apps-catalog-inputs.test.ts +70 -0
- package/src/tests/apps-catalog-table.test.ts +113 -0
- package/src/tests/azure-devops-boards-sync.test.ts +584 -0
- package/src/tests/azure-devops-html.test.ts +13 -0
- package/src/tests/azure-devops-webhook-malformed.test.ts +4 -0
- package/src/tests/claude-adapter-binary.test.ts +139 -0
- package/src/tests/claude-flag-settings.test.ts +106 -0
- package/src/tests/claude-sdk-lifecycle.test.ts +142 -1
- package/src/tests/claude-sdk-process.fixture.ts +7 -0
- package/src/tests/context-key.test.ts +32 -0
- package/src/tests/deferred-task-wake.test.ts +52 -4
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/dsh-adapter.test.ts +1 -1
- package/src/tests/fixtures/azure-boards/workitem.commented.json +89 -0
- package/src/tests/fixtures/azure-boards/workitem.created.json +81 -0
- package/src/tests/fixtures/azure-boards/workitem.deleted.json +70 -0
- package/src/tests/fixtures/azure-boards/workitem.restored.json +82 -0
- package/src/tests/fixtures/azure-boards/workitem.updated.json +130 -0
- package/src/tests/fixtures/catalog-feedback-definition.json.txt +860 -0
- package/src/tests/fixtures/catalog-inputs-definition.json.txt +910 -0
- package/src/tests/fixtures/catalog-table-definition.json.txt +468 -0
- package/src/tests/fixtures/runner-identity-refresh.ts +3 -0
- package/src/tests/node-env-runtime.test.ts +98 -0
- package/src/tests/opencode-adapter.test.ts +132 -1
- package/src/tests/opencode-billing.test.ts +28 -0
- package/src/tests/runner-identity-refresh.test.ts +3 -0
- package/src/tests/script-connections-sql.test.ts +675 -0
- package/src/tests/script-connections.test.ts +5 -1
- package/src/tests/session-cost-recompute-unit.test.ts +48 -0
- package/src/tests/slack-channel-join.test.ts +4 -1
- package/src/tests/slack-external-channel-config.test.ts +65 -0
- package/src/tests/slack-external-channel-egress.test.ts +237 -0
- package/src/tests/slack-external-channel-guard.test.ts +280 -0
- package/src/tests/slack-external-channel-tools.test.ts +173 -0
- package/src/tests/slack-external-channel.test.ts +370 -0
- package/src/tests/slack-render-v2.test.ts +86 -10
- package/src/tests/spec-base-url.test.ts +16 -1
- package/src/tests/vendored-openapi.test.ts +16 -1
- package/src/tools/defer-task.ts +17 -0
- package/src/tools/slack-post.ts +6 -0
- package/src/tools/slack-read.ts +8 -0
- package/src/tools/slack-reply.ts +6 -0
- package/src/tools/slack-start-thread.ts +6 -0
- package/src/tools/slack-update.ts +6 -0
- package/src/tools/slack-upload-file.ts +6 -0
- package/src/utils/node-env.ts +24 -0
- package/templates/skills/apps/SKILL.md +742 -0
- package/templates/skills/apps/content.md +52 -21
- package/templates/skills/qa-loom/config.json +14 -0
- package/templates/skills/qa-loom/content.md +187 -0
- package/templates/skills/qa-loom/files/build-loom.mjs +221 -0
- package/templates/skills/qa-loom/files/run-qa.sh +57 -0
- package/templates/skills/slack-interaction/content.md +4 -0
- package/dist/{azure-openai-responses-ap1gwxgr.js → azure-openai-responses-ygfreq4t.js} +5 -5
- package/dist/{cli-4fnb6884.js → cli-h7k0xtry.js} +3 -3
- package/dist/{cli-5rqrj7q0.js → cli-pw7ebjdt.js} +0 -0
- package/dist/{google-generative-ai-7pavrbv7.js → google-generative-ai-szdxbpqg.js} +1 -1
- package/dist/{google-vertex-3f1jk41f.js → google-vertex-qzw3p36d.js} +1 -1
- package/dist/{openai-codex-responses-33qhkkdy.js → openai-codex-responses-3bk0grnr.js} +4 -4
- package/dist/{openai-completions-s88xm3ns.js → openai-completions-5d4jpakc.js} +9 -9
- package/dist/{openai-responses-7xd2f2e2.js → openai-responses-krb51f59.js} +5 -5
- package/dist/{pi-messages-xszk613n.js → pi-messages-x9gzynm1.js} +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runStopHookSessionSummarySubprocess
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-wrh08zjd.js";
|
|
4
4
|
import {
|
|
5
5
|
buildOtelTraceparentEnv,
|
|
6
6
|
isHarnessOtelEnabled
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
import {
|
|
48
48
|
init_file_lock,
|
|
49
49
|
withFileLock
|
|
50
|
-
} from "./cli-
|
|
50
|
+
} from "./cli-r4fqfpwf.js";
|
|
51
51
|
import {
|
|
52
52
|
CLAUDE_CREDENTIALS_HINT,
|
|
53
53
|
init_credentials,
|
|
@@ -94,7 +94,7 @@ import {
|
|
|
94
94
|
writeFile
|
|
95
95
|
} from "node:fs/promises";
|
|
96
96
|
import { homedir } from "node:os";
|
|
97
|
-
import { dirname, join, resolve } from "node:path";
|
|
97
|
+
import { dirname, join, resolve as resolve2 } from "node:path";
|
|
98
98
|
import { promisify } from "node:util";
|
|
99
99
|
init_credentials();
|
|
100
100
|
init_env_flag();
|
|
@@ -167,6 +167,76 @@ class ClaudeBackgroundKeepalive {
|
|
|
167
167
|
}
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
// src/providers/claude-flag-settings.ts
|
|
171
|
+
init_secret_scrubber();
|
|
172
|
+
import { readFileSync } from "node:fs";
|
|
173
|
+
import { resolve } from "node:path";
|
|
174
|
+
var WORKSPACE_CLAUDE_MD_EXCLUDE = "/workspace/CLAUDE.md";
|
|
175
|
+
function claudeFlagSettings() {
|
|
176
|
+
return { claudeMdExcludes: [WORKSPACE_CLAUDE_MD_EXCLUDE] };
|
|
177
|
+
}
|
|
178
|
+
var SETTINGS_FLAG = "--settings";
|
|
179
|
+
|
|
180
|
+
class ClaudeSettingsConfigError extends Error {
|
|
181
|
+
constructor(detail) {
|
|
182
|
+
super(scrubSecrets(`Invalid caller --settings: ${detail}. Refusing to start Claude without the caller's settings.`));
|
|
183
|
+
this.name = "ClaudeSettingsConfigError";
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function isPlainObject(value) {
|
|
187
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
188
|
+
}
|
|
189
|
+
function parseCallerSettings(value, cwd) {
|
|
190
|
+
const inline = value.trimStart().startsWith("{");
|
|
191
|
+
const source = inline ? "inline JSON" : `file ${resolve(cwd, value)}`;
|
|
192
|
+
let parsed;
|
|
193
|
+
try {
|
|
194
|
+
parsed = JSON.parse(inline ? value : readFileSync(resolve(cwd, value), "utf8"));
|
|
195
|
+
} catch (err) {
|
|
196
|
+
const code = err.code;
|
|
197
|
+
throw new ClaudeSettingsConfigError(`${source} ${inline || !code ? "is not valid JSON" : `cannot be read (${code})`}`);
|
|
198
|
+
}
|
|
199
|
+
if (!isPlainObject(parsed)) {
|
|
200
|
+
throw new ClaudeSettingsConfigError(`${source} is not a JSON object`);
|
|
201
|
+
}
|
|
202
|
+
return parsed;
|
|
203
|
+
}
|
|
204
|
+
function mergeClaudeSettingsArgs(argLists, cwd) {
|
|
205
|
+
const merged = {};
|
|
206
|
+
const excludes = new Set;
|
|
207
|
+
const absorb = (value) => {
|
|
208
|
+
if (!value)
|
|
209
|
+
throw new ClaudeSettingsConfigError("--settings has no value");
|
|
210
|
+
const parsed = parseCallerSettings(value, cwd);
|
|
211
|
+
Object.assign(merged, parsed);
|
|
212
|
+
if (Array.isArray(parsed.claudeMdExcludes)) {
|
|
213
|
+
for (const entry of parsed.claudeMdExcludes) {
|
|
214
|
+
if (typeof entry === "string")
|
|
215
|
+
excludes.add(entry);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
const stripped = argLists.map((args) => {
|
|
220
|
+
const passthrough = [];
|
|
221
|
+
for (let i = 0;i < args.length; i++) {
|
|
222
|
+
const arg = args[i] ?? "";
|
|
223
|
+
if (arg === SETTINGS_FLAG) {
|
|
224
|
+
const value = args[i + 1];
|
|
225
|
+
absorb(value?.startsWith("-") ? undefined : value);
|
|
226
|
+
i++;
|
|
227
|
+
} else if (arg.startsWith(`${SETTINGS_FLAG}=`)) {
|
|
228
|
+
absorb(arg.slice(SETTINGS_FLAG.length + 1));
|
|
229
|
+
} else {
|
|
230
|
+
passthrough.push(arg);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return passthrough;
|
|
234
|
+
});
|
|
235
|
+
for (const entry of claudeFlagSettings().claudeMdExcludes)
|
|
236
|
+
excludes.add(entry);
|
|
237
|
+
return { argLists: stripped, settings: { ...merged, claudeMdExcludes: [...excludes] } };
|
|
238
|
+
}
|
|
239
|
+
|
|
170
240
|
// src/providers/claude-session-events.ts
|
|
171
241
|
init_secret_scrubber();
|
|
172
242
|
function finiteNumber(value) {
|
|
@@ -593,7 +663,7 @@ async function resolveClaudeTrustDirs(cwd) {
|
|
|
593
663
|
"core.worktree"
|
|
594
664
|
]).then((r) => r.stdout.trim(), () => "");
|
|
595
665
|
if (configured)
|
|
596
|
-
main =
|
|
666
|
+
main = resolve2(path, configured);
|
|
597
667
|
main = await realpath(main);
|
|
598
668
|
if (await stat(join(main, ".git")).then(() => true, () => false)) {
|
|
599
669
|
if (!dirs.includes(main))
|
|
@@ -782,6 +852,7 @@ class ClaudeSession {
|
|
|
782
852
|
harnessVariantMeta;
|
|
783
853
|
queueSteeringSupported;
|
|
784
854
|
runSessionSummary;
|
|
855
|
+
flagSettings;
|
|
785
856
|
proc;
|
|
786
857
|
stdinWriter;
|
|
787
858
|
listeners = [];
|
|
@@ -797,7 +868,7 @@ class ClaudeSession {
|
|
|
797
868
|
transcript;
|
|
798
869
|
backgroundKeepalive;
|
|
799
870
|
deliverSteering;
|
|
800
|
-
constructor(config, model, taskFilePath, taskFileKey, sessionMcpConfig = null, claudeBinaryArgv = ["claude"], systemPromptFile = null, harnessVariant, harnessVariantMeta, queueSteeringSupported = false, runSessionSummary = runStopHookSessionSummarySubprocess) {
|
|
871
|
+
constructor(config, model, taskFilePath, taskFileKey, sessionMcpConfig = null, claudeBinaryArgv = ["claude"], systemPromptFile = null, harnessVariant, harnessVariantMeta, queueSteeringSupported = false, runSessionSummary = runStopHookSessionSummarySubprocess, flagSettings = claudeFlagSettings()) {
|
|
801
872
|
this.config = config;
|
|
802
873
|
this.model = model;
|
|
803
874
|
this.sessionMcpConfig = sessionMcpConfig;
|
|
@@ -806,6 +877,7 @@ class ClaudeSession {
|
|
|
806
877
|
this.harnessVariantMeta = harnessVariantMeta;
|
|
807
878
|
this.queueSteeringSupported = queueSteeringSupported;
|
|
808
879
|
this.runSessionSummary = runSessionSummary;
|
|
880
|
+
this.flagSettings = flagSettings;
|
|
809
881
|
this.taskFileKey = taskFileKey;
|
|
810
882
|
this.contextWindowSize = getContextWindowSize(model);
|
|
811
883
|
this.systemPromptFile = systemPromptFile;
|
|
@@ -885,7 +957,9 @@ class ClaudeSession {
|
|
|
885
957
|
"--dangerously-skip-permissions",
|
|
886
958
|
"--allow-dangerously-skip-permissions",
|
|
887
959
|
"--permission-mode",
|
|
888
|
-
"bypassPermissions"
|
|
960
|
+
"bypassPermissions",
|
|
961
|
+
"--settings",
|
|
962
|
+
JSON.stringify(this.flagSettings)
|
|
889
963
|
];
|
|
890
964
|
if (this.queueSteeringSupported) {
|
|
891
965
|
cmd.push("--input-format", "stream-json");
|
|
@@ -1116,7 +1190,7 @@ class ClaudeAdapter {
|
|
|
1116
1190
|
if (transport === "sdk" && isClaudeBridgeEffective(sourceEnv)) {
|
|
1117
1191
|
throw new Error("CLAUDE_TRANSPORT=sdk cannot run with an effective Claude Bridge configuration. Select CLI transport or disable the bridge.");
|
|
1118
1192
|
}
|
|
1119
|
-
const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-
|
|
1193
|
+
const claudeSdk = transport === "sdk" ? await import("./claude-sdk-session-4whxere4.js") : undefined;
|
|
1120
1194
|
claudeSdk?.validateClaudeSdkAdditionalArgs([
|
|
1121
1195
|
...claudeBinaryArgv.slice(1),
|
|
1122
1196
|
...config.additionalArgs ?? []
|
|
@@ -1125,7 +1199,14 @@ class ClaudeAdapter {
|
|
|
1125
1199
|
console.warn(`\x1B[33m[claude]\x1B[0m SWARM_USE_CLAUDE_BRIDGE is set but no CLAUDE_CODE_OAUTH_TOKEN is present — falling back to stock 'claude'. claude-bridge requires a subscription/OAuth token (it forwards only the OAuth token to claude and strips ANTHROPIC_*); API-key billing is identical headless vs interactive, so the bridge isn't needed.`);
|
|
1126
1200
|
}
|
|
1127
1201
|
const isLegacyBridgeCompat = isLegacyClaudeBridgeCompatBinary(claudeBinaryRaw);
|
|
1128
|
-
const
|
|
1202
|
+
const [claudeExecutable = "claude", ...claudePrefixArgs] = useClaudeBridge ? withClaudeBridgeAuthArgs(claudeBinaryArgv, sourceEnv) : claudeBinaryArgv;
|
|
1203
|
+
const {
|
|
1204
|
+
argLists: [prefixArgs = [], additionalArgs = []],
|
|
1205
|
+
settings: flagSettings
|
|
1206
|
+
} = mergeClaudeSettingsArgs([claudePrefixArgs, config.additionalArgs ?? []], config.cwd);
|
|
1207
|
+
const effectiveClaudeBinaryArgv = [claudeExecutable, ...prefixArgs];
|
|
1208
|
+
sessionConfig.additionalArgs = additionalArgs;
|
|
1209
|
+
const flagSettingsArgs = ["--settings", JSON.stringify(flagSettings)];
|
|
1129
1210
|
const isInteractiveTmuxClaude = isLegacyBridgeCompat || useClaudeBridge;
|
|
1130
1211
|
const configuredClaudeBinaryRaw = resolveClaudeBinary(sourceEnv);
|
|
1131
1212
|
if (isLegacyClaudeBridgeCompatBinary(configuredClaudeBinaryRaw)) {
|
|
@@ -1170,7 +1251,7 @@ class ClaudeAdapter {
|
|
|
1170
1251
|
const queueSteeringOverride = resolveClaudeQueueSteeringOverride(sourceEnv);
|
|
1171
1252
|
let harnessVersion;
|
|
1172
1253
|
try {
|
|
1173
|
-
const probe = registerProcessGroup(Bun.spawn([...effectiveClaudeBinaryArgv, "--version"], {
|
|
1254
|
+
const probe = registerProcessGroup(Bun.spawn([...effectiveClaudeBinaryArgv, ...flagSettingsArgs, "--version"], {
|
|
1174
1255
|
detached: detachedProcessGroup,
|
|
1175
1256
|
env: sourceEnv,
|
|
1176
1257
|
stdin: "ignore",
|
|
@@ -1206,6 +1287,7 @@ ${stderr}`.trim();
|
|
|
1206
1287
|
taskFileKey,
|
|
1207
1288
|
sessionMcpConfig,
|
|
1208
1289
|
claudeBinaryArgv: effectiveClaudeBinaryArgv,
|
|
1290
|
+
settings: flagSettings,
|
|
1209
1291
|
systemPromptFile,
|
|
1210
1292
|
harnessVariant,
|
|
1211
1293
|
harnessVariantMeta,
|
|
@@ -1213,7 +1295,7 @@ ${stderr}`.trim();
|
|
|
1213
1295
|
runSessionSummary: this.runSessionSummary
|
|
1214
1296
|
});
|
|
1215
1297
|
}
|
|
1216
|
-
return new ClaudeSession(sessionConfig, model, taskFilePath, taskFileKey, sessionMcpConfig, effectiveClaudeBinaryArgv, systemPromptFile, harnessVariant, harnessVariantMeta, queueSteeringSupported, this.runSessionSummary);
|
|
1298
|
+
return new ClaudeSession(sessionConfig, model, taskFilePath, taskFileKey, sessionMcpConfig, effectiveClaudeBinaryArgv, systemPromptFile, harnessVariant, harnessVariantMeta, queueSteeringSupported, this.runSessionSummary, flagSettings);
|
|
1217
1299
|
}
|
|
1218
1300
|
async canResume(_sessionId) {
|
|
1219
1301
|
return true;
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
resolveValidationPort,
|
|
9
9
|
systemOneRetryViolations,
|
|
10
10
|
systemOneUnresolvedError
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-6r2f7edk.js";
|
|
12
12
|
import {
|
|
13
13
|
WorkflowReplayStateError,
|
|
14
14
|
cancelPendingApprovalRequestsForRun,
|
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
telemetry,
|
|
52
52
|
updateWorkflowRun,
|
|
53
53
|
updateWorkflowRunStep
|
|
54
|
-
} from "./cli-
|
|
54
|
+
} from "./cli-fmhj1ehj.js";
|
|
55
55
|
import {
|
|
56
56
|
RetryPolicySchema,
|
|
57
57
|
init_types
|
|
@@ -317,7 +317,7 @@ async function notifyAutomationPreflightFailure(preflight) {
|
|
|
317
317
|
return;
|
|
318
318
|
}
|
|
319
319
|
try {
|
|
320
|
-
const { getSlackApp } = await import("./app-
|
|
320
|
+
const { getSlackApp } = await import("./app-km9qnv2f.js");
|
|
321
321
|
const app = getSlackApp();
|
|
322
322
|
if (!app) {
|
|
323
323
|
console.warn("[Automation Preflight] Slack not available, cannot send notification");
|
|
@@ -1458,7 +1458,7 @@ async function runClaimedStep(def, runId, ctx, node, registry, existingStep, ste
|
|
|
1458
1458
|
if ("async" in result && result.async) {
|
|
1459
1459
|
const waiting = await checkpointStepWaiting(runId, stepId, ctx);
|
|
1460
1460
|
if (waiting && result.waitFor === "workflow.child.finished") {
|
|
1461
|
-
const { resumeFromChildRun } = await import("./resume-
|
|
1461
|
+
const { resumeFromChildRun } = await import("./resume-42stcaz0.js");
|
|
1462
1462
|
await resumeFromChildRun(stepId, registry);
|
|
1463
1463
|
}
|
|
1464
1464
|
return { outcome: waiting ? "waiting" : "completed", successors: [] };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
seedPricingFromModelsDev
|
|
3
|
-
} from "./cli-
|
|
3
|
+
} from "./cli-jpc4r224.js";
|
|
4
4
|
import {
|
|
5
5
|
ensureRbacSeedsSynced,
|
|
6
6
|
init_rbac_roles
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-anzdk0z4.js";
|
|
8
8
|
import {
|
|
9
9
|
getDb,
|
|
10
10
|
init_db1 as init_db
|
|
11
|
-
} from "./cli-
|
|
11
|
+
} from "./cli-fmhj1ehj.js";
|
|
12
12
|
|
|
13
13
|
// src/be/boot-seeds.ts
|
|
14
14
|
init_db();
|
|
@@ -7,7 +7,7 @@ var package_default;
|
|
|
7
7
|
var init_package = __esm(() => {
|
|
8
8
|
package_default = {
|
|
9
9
|
name: "@desplega.ai/agent-swarm",
|
|
10
|
-
version: "1.
|
|
10
|
+
version: "1.173.0",
|
|
11
11
|
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.",
|
|
12
12
|
keywords: [
|
|
13
13
|
"agent-swarm.dev",
|
|
@@ -191,8 +191,8 @@ var init_package = __esm(() => {
|
|
|
191
191
|
"@desplega/model-catalog": "workspace:*",
|
|
192
192
|
"@desplega/model-routing": "workspace:*",
|
|
193
193
|
"@faker-js/faker": "^10.4.0",
|
|
194
|
-
"@opencode/plugin": "2.0.
|
|
195
|
-
"@opencode/sdk": "2.0.
|
|
194
|
+
"@opencode/plugin": "2.0.29",
|
|
195
|
+
"@opencode/sdk": "2.0.29",
|
|
196
196
|
"@oxlint/plugins": "1.78.0",
|
|
197
197
|
"@types/bun": "latest",
|
|
198
198
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
@@ -212,7 +212,7 @@ var init_package = __esm(() => {
|
|
|
212
212
|
dependencies: {
|
|
213
213
|
"@agentclientprotocol/sdk": "1.8.0",
|
|
214
214
|
"@ai-sdk/openai": "^3.0.41",
|
|
215
|
-
"@anthropic-ai/claude-agent-sdk": "0.3.
|
|
215
|
+
"@anthropic-ai/claude-agent-sdk": "0.3.299",
|
|
216
216
|
"@anthropic-ai/sdk": "^0.133.0",
|
|
217
217
|
"@asteasolutions/zod-to-openapi": "^8.0.0",
|
|
218
218
|
"@aws-sdk/client-bedrock": "3.1048.0",
|
|
@@ -36,7 +36,7 @@ import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
|
36
36
|
import { tmpdir } from "node:os";
|
|
37
37
|
import { join } from "node:path";
|
|
38
38
|
init_secret_scrubber();
|
|
39
|
-
var AMP_PACKAGE = "@ampcode/cli@0.0.
|
|
39
|
+
var AMP_PACKAGE = "@ampcode/cli@0.0.1791979242-g144271";
|
|
40
40
|
var AMP_MCP_SERVER_NAME = "agent-swarm";
|
|
41
41
|
var AMP_PLUGIN_MODE_KEY = "agent-swarm";
|
|
42
42
|
var AMP_LIVE_TEST_TIMEOUT_MS = 5000;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_MODEL,
|
|
3
3
|
resolveCredential
|
|
4
|
-
} from "./cli-
|
|
4
|
+
} from "./cli-6thk4jz3.js";
|
|
5
5
|
import {
|
|
6
6
|
getSlackApp
|
|
7
|
-
} from "./cli-
|
|
7
|
+
} from "./cli-tcc4wd5d.js";
|
|
8
8
|
import {
|
|
9
9
|
claimApprovalCancellationNotification,
|
|
10
10
|
completeApprovalCancellationNotificationClaim,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
getTaskById,
|
|
13
13
|
init_db1 as init_db,
|
|
14
14
|
releaseApprovalCancellationNotificationClaim
|
|
15
|
-
} from "./cli-
|
|
15
|
+
} from "./cli-fmhj1ehj.js";
|
|
16
16
|
import {
|
|
17
17
|
TERMINAL_TASK_STATUSES,
|
|
18
18
|
init_types
|
|
@@ -433,7 +433,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
|
|
|
433
433
|
}
|
|
434
434
|
if (notification.channel === "slack") {
|
|
435
435
|
try {
|
|
436
|
-
const { getSlackApp: getSlackApp2 } = await import("./app-
|
|
436
|
+
const { getSlackApp: getSlackApp2 } = await import("./app-km9qnv2f.js");
|
|
437
437
|
const slackApp = getSlackApp2();
|
|
438
438
|
if (!slackApp) {
|
|
439
439
|
console.warn("[HITL] Slack not initialized — cannot send notification");
|