@desplega.ai/agent-swarm 1.167.0 → 1.168.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-zpvy6321.js → acp-adapter-zhejfecx.js} +2 -2
- package/dist/{actions-fq2zrwtf.js → actions-7jg840nr.js} +11 -11
- package/dist/{amp-adapter-5gbk7501.js → amp-adapter-ye6rnetm.js} +1 -1
- package/dist/{app-nctetn1e.js → app-ffes2kyf.js} +3 -3
- package/dist/{assistant-0aq8gjvj.js → assistant-fhm5smyz.js} +12 -12
- package/dist/{boot-reembed-1ze5853n.js → boot-reembed-20q3nzvg.js} +2 -2
- package/dist/{boot-reembed-fmp5ww69.js → boot-reembed-jvfadhsk.js} +2 -2
- package/dist/{boot-scrub-sweep-cbp8xd4e.js → boot-scrub-sweep-jtfajzve.js} +3 -3
- package/dist/{boot-seeds-22tx8a53.js → boot-seeds-9qt0j8j2.js} +5 -5
- package/dist/{claude-adapter-0jhgeh1d.js → claude-adapter-a8znhthz.js} +3 -3
- package/dist/{claude-sdk-session-wh77rh83.js → claude-sdk-session-7x7chdrs.js} +7590 -7578
- package/dist/{cli-ypgba1a8.js → cli-0jngabtb.js} +1 -1
- package/dist/{cli-tx2zvn23.js → cli-43jg9xdw.js} +3 -3
- package/dist/{cli-6qxmjpem.js → cli-47zfzshm.js} +5 -5
- package/dist/{cli-mkdsy1nq.js → cli-74ez9b66.js} +3 -2
- package/dist/{cli-ykt8f7va.js → cli-9q0bh411.js} +1 -1
- package/dist/{cli-p8rt8spp.js → cli-9q24yyvs.js} +2 -2
- package/dist/{cli-cexctgn5.js → cli-aj1e0h0d.js} +1 -1
- package/dist/{cli-z1dqhc9y.js → cli-bcspch6h.js} +1 -1
- package/dist/{cli-wydz3feg.js → cli-ee0402n1.js} +107 -30
- package/dist/{cli-ty4bzkqr.js → cli-ew0c3a1j.js} +1 -1
- package/dist/{cli-v1pwxreq.js → cli-ewhwpyrb.js} +1 -1
- package/dist/{cli-kw0jcfje.js → cli-fhj4y16f.js} +1 -1
- package/dist/{cli-m7vmeepg.js → cli-fqq06kkb.js} +1 -1
- package/dist/{cli-577bxkf6.js → cli-g6gx2dn1.js} +31 -6
- package/dist/{cli-c8r99akr.js → cli-j05x7pnb.js} +8 -8
- package/dist/{cli-c2tpw9ck.js → cli-jb931ba2.js} +1 -1
- package/dist/{cli-mxry91sa.js → cli-nctfv2yy.js} +72 -3
- package/dist/{cli-ymmc1zxg.js → cli-ng1pmdx6.js} +3 -3
- package/dist/{cli-6vfz44sr.js → cli-p5jqk8fr.js} +1 -1
- package/dist/{cli-qzmzwegq.js → cli-pgehz8e1.js} +4 -4
- package/dist/{cli-cf2vgn9d.js → cli-rr5z1j4p.js} +14 -14
- package/dist/{cli-1yrcfa5s.js → cli-svah6b6w.js} +4 -4
- package/dist/{cli-y0kjpfm9.js → cli-ytmmyj7f.js} +2 -2
- package/dist/{cli-pkj1w46r.js → cli-z48ggfyq.js} +1 -1
- package/dist/cli.js +13 -13
- package/dist/{codex-adapter-cgesnjkr.js → codex-adapter-n63k33d3.js} +2 -2
- package/dist/{codex-session-runner-8kd7ddhr.js → codex-session-runner-xkxfd81a.js} +2 -2
- package/dist/{commands-h6zaaxym.js → commands-q4mfhn51.js} +2 -2
- package/dist/{db-qg3myn53.js → db-1t0bj3pc.js} +2 -2
- package/dist/{dispatcher-7vnwj9qw.js → dispatcher-k1fhavcf.js} +10 -10
- package/dist/{dsh-adapter-tz6hfp5r.js → dsh-adapter-5423p70m.js} +1 -1
- package/dist/{grok-adapter-jdt2dz2s.js → grok-adapter-phrndeb8.js} +3 -3
- package/dist/{handlers-2qtkpncr.js → handlers-59ywqwzh.js} +13 -13
- package/dist/{hook-qnbdgwvd.js → hook-atj0swc2.js} +2 -2
- package/dist/{hook-51yfcgsv.js → hook-mew1chq9.js} +1 -1
- package/dist/{http-jsmtag08.js → http-ef2fnn9v.js} +659 -26
- package/dist/{index-t4g06w93.js → index-48pb9erw.js} +10 -10
- package/dist/{index-ekywyv2v.js → index-9fc2h7ww.js} +10 -10
- package/dist/{index-2t9kesn1.js → index-gr69c43q.js} +2 -2
- package/dist/{index-cx1sb9bq.js → index-h26wjcfy.js} +16 -6
- package/dist/{index-bt8wkv1w.js → index-w2yhye23.js} +11 -11
- package/dist/{keepalive-4aezx4bj.js → keepalive-qhcqz56v.js} +4 -4
- package/dist/{lead-r44bkpm5.js → lead-hpk5r3b1.js} +18 -18
- package/dist/{maintenance-grz5jrzh.js → maintenance-nvkyp2xe.js} +2 -2
- package/dist/{oauth-refresh-sweep-wm4ctjfj.js → oauth-refresh-sweep-ngskthwh.js} +3 -3
- package/dist/{onboard-v60zgqf0.js → onboard-yfnkqhxc.js} +2 -2
- package/dist/{otel-impl-ghh4dyf8.js → otel-impl-hhm64r6m.js} +1 -1
- package/dist/{pricing-refresh-mjrqvnvw.js → pricing-refresh-35f91nx2.js} +4 -4
- package/dist/{rbac-roles-axv4d74x.js → rbac-roles-97w370qj.js} +3 -3
- package/dist/{rbac-roles-fd5tskj9.js → rbac-roles-z6sje3gy.js} +2 -2
- package/dist/{render-v2-k50j33qd.js → render-v2-n4v66bj3.js} +3 -3
- package/dist/{setup-4syh0pd2.js → setup-m3hhyv5f.js} +2 -2
- package/dist/{work-objects-jcdbg8rr.js → work-objects-mxf2c842.js} +13 -13
- package/dist/{worker-x8j8c9sx.js → worker-9t07z1gq.js} +18 -18
- package/openapi.json +72 -1
- package/package.json +3 -3
- package/src/be/script-connections.ts +40 -6
- package/src/be/swarm-config-guard.ts +1 -0
- package/src/extensions/catalog.generated.json +17 -0
- package/src/http/script-connections.ts +35 -0
- package/src/providers/acp-targets.ts +1 -1
- package/src/providers/amp-adapter.ts +1 -1
- package/src/providers/claude-adapter.ts +6 -0
- package/src/providers/claude-background-keepalive.ts +100 -0
- package/src/providers/claude-sdk-session.ts +6 -0
- package/src/providers/dsh-adapter.ts +1 -1
- package/src/scheduler/scheduler.ts +82 -13
- package/src/scripts-runtime/executors/registry.ts +1 -1
- package/src/tests/claude-background-keepalive-wiring.test.ts +220 -0
- package/src/tests/claude-background-keepalive.fixture.ts +162 -0
- package/src/tests/claude-background-keepalive.test.ts +139 -0
- package/src/tests/connection-embedded-auth.test.ts +51 -0
- package/src/tests/docs-index-footprint.test.js +3 -3
- package/src/tests/dsh-adapter.test.ts +1 -1
- package/src/tests/extensions-catalog.test.ts +1 -0
- package/src/tests/extensions-example-slack-reply-gate.test.ts +756 -0
- package/src/tests/schedule-target-type.test.ts +136 -0
- package/src/tests/script-connections-http.test.ts +45 -0
- package/src/tests/script-connections-mcp.test.ts +41 -0
- package/src/tests/script-executor-registry.test.ts +18 -0
- package/src/tests/send-task-self-send.test.ts +107 -0
- package/src/tools/script-connections/tool.ts +35 -3
- package/src/tools/send-task.ts +9 -1
- package/templates/extensions/README.md +1 -0
- package/templates/extensions/slack-reply-gate/README.md +98 -0
- package/templates/extensions/slack-reply-gate/hooks.ts +582 -0
- package/templates/extensions/slack-reply-gate/manifest.json +8 -0
- package/templates/skills/swarm-scripts/SKILL.md +10 -0
- package/templates/skills/swarm-scripts/content.md +10 -0
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
} from "../be/db";
|
|
10
10
|
import { getOAuthApp, upsertAuthorization, upsertOAuthApp } from "../be/db-queries/oauth";
|
|
11
11
|
import {
|
|
12
|
+
deleteScriptConnection,
|
|
12
13
|
getScriptApiConnectionDescriptors,
|
|
13
14
|
getScriptConnectionById,
|
|
14
15
|
listRelationalCredentialBindings,
|
|
@@ -718,3 +719,53 @@ describe("embedded connection auth", () => {
|
|
|
718
719
|
}
|
|
719
720
|
});
|
|
720
721
|
});
|
|
722
|
+
|
|
723
|
+
describe("deleteScriptConnection", () => {
|
|
724
|
+
test("removes the connection, its managed binding, and its derived inline secret", async () => {
|
|
725
|
+
createdConfigKeys.push("connection.deleteVendor.secret");
|
|
726
|
+
const connection = await upsertScriptConnection({
|
|
727
|
+
slug: "deleteVendor",
|
|
728
|
+
kind: "graphql",
|
|
729
|
+
baseUrl: "https://api.vendor.test/graphql",
|
|
730
|
+
allowedHosts: ["api.vendor.test"],
|
|
731
|
+
auth: { type: "bearer", secret: "example-delete-tok-123" },
|
|
732
|
+
});
|
|
733
|
+
createdConnectionIds.push(connection.id);
|
|
734
|
+
expect(await managedBindingFor(connection.id)).not.toBeNull();
|
|
735
|
+
expect(await getSwarmConfigs({ key: "connection.deleteVendor.secret" })).toHaveLength(1);
|
|
736
|
+
|
|
737
|
+
const deleted = await deleteScriptConnection(connection.id);
|
|
738
|
+
|
|
739
|
+
expect(deleted?.id).toBe(connection.id);
|
|
740
|
+
expect(await getScriptConnectionById(connection.id)).toBeNull();
|
|
741
|
+
expect(await managedBindingFor(connection.id)).toBeNull();
|
|
742
|
+
expect(await getSwarmConfigs({ key: "connection.deleteVendor.secret" })).toHaveLength(0);
|
|
743
|
+
});
|
|
744
|
+
|
|
745
|
+
test("keeps a shared configKey secret the connection does not own", async () => {
|
|
746
|
+
createdConfigKeys.push("SHARED_DELETE_VENDOR_KEY");
|
|
747
|
+
await upsertSwarmConfig({
|
|
748
|
+
scope: "global",
|
|
749
|
+
key: "SHARED_DELETE_VENDOR_KEY",
|
|
750
|
+
value: "example-shared-tok",
|
|
751
|
+
isSecret: true,
|
|
752
|
+
});
|
|
753
|
+
const connection = await upsertScriptConnection({
|
|
754
|
+
slug: "sharedDeleteVendor",
|
|
755
|
+
kind: "graphql",
|
|
756
|
+
baseUrl: "https://api.vendor.test/graphql",
|
|
757
|
+
allowedHosts: ["api.vendor.test"],
|
|
758
|
+
auth: { type: "bearer", configKey: "SHARED_DELETE_VENDOR_KEY" },
|
|
759
|
+
});
|
|
760
|
+
createdConnectionIds.push(connection.id);
|
|
761
|
+
|
|
762
|
+
expect((await deleteScriptConnection(connection.id))?.id).toBe(connection.id);
|
|
763
|
+
|
|
764
|
+
expect(await managedBindingFor(connection.id)).toBeNull();
|
|
765
|
+
expect(await getSwarmConfigs({ key: "SHARED_DELETE_VENDOR_KEY" })).toHaveLength(1);
|
|
766
|
+
});
|
|
767
|
+
|
|
768
|
+
test("returns null for an unknown id", async () => {
|
|
769
|
+
expect(await deleteScriptConnection("00000000-0000-4000-8000-000000000000")).toBeNull();
|
|
770
|
+
});
|
|
771
|
+
});
|
|
@@ -78,7 +78,7 @@ describe("docs API index footprint", () => {
|
|
|
78
78
|
expect(tasks).toContain('"path":"/api/task-templates","method":"get"');
|
|
79
79
|
});
|
|
80
80
|
|
|
81
|
-
test("OpenAPI and generated pages keep all
|
|
81
|
+
test("OpenAPI and generated pages keep all 400 operations", async () => {
|
|
82
82
|
const spec = await Bun.file(resolve(repoRoot, "openapi.json")).json();
|
|
83
83
|
const operationKeys = [];
|
|
84
84
|
const tags = new Set();
|
|
@@ -103,8 +103,8 @@ describe("docs API index footprint", () => {
|
|
|
103
103
|
expect(spec.paths["/api/agents/{id}/runtime"]?.get).toBeDefined();
|
|
104
104
|
|
|
105
105
|
const generatedKeys = await generatedOperationKeys();
|
|
106
|
-
expect(operationKeys).toHaveLength(
|
|
107
|
-
expect(generatedKeys).toHaveLength(
|
|
106
|
+
expect(operationKeys).toHaveLength(400);
|
|
107
|
+
expect(generatedKeys).toHaveLength(400);
|
|
108
108
|
expect(new Set(generatedKeys)).toEqual(new Set(operationKeys));
|
|
109
109
|
});
|
|
110
110
|
|
|
@@ -376,7 +376,7 @@ describe("dsh harness", () => {
|
|
|
376
376
|
await rename(join(config.cwd, "dsh"), join(config.cwd, "npx"));
|
|
377
377
|
config.env = { ...config.env, DSH_BINARY: "", PATH: config.cwd };
|
|
378
378
|
await expect(new DshAdapter().createSession(config)).rejects.toThrow(
|
|
379
|
-
"dsh CLI not found. Install @deepseek-ai/dsh@0.2.1-alpha.
|
|
379
|
+
"dsh CLI not found. Install @deepseek-ai/dsh@0.2.1-alpha.2",
|
|
380
380
|
);
|
|
381
381
|
expect(await Bun.file(join(config.cwd, "invocation.json")).exists()).toBe(false);
|
|
382
382
|
});
|