@desplega.ai/agent-swarm 1.152.2 → 1.153.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.
Files changed (224) hide show
  1. package/README.md +1 -1
  2. package/dist/{acp-adapter-pfeje2v5.js → acp-adapter-ahmjxhek.js} +4 -4
  3. package/dist/{actions-0sttc7f5.js → actions-jzrfpkmn.js} +30 -26
  4. package/dist/{anthropic-messages-2y8nktar.js → anthropic-messages-9vqsbznt.js} +112 -84
  5. package/dist/{app-p8teva95.js → app-03na2vwb.js} +9 -6
  6. package/dist/{assistant-r45jnsrt.js → assistant-hfkxvhgt.js} +31 -27
  7. package/dist/{azure-openai-responses-f38x2avq.js → azure-openai-responses-04qwdwfq.js} +27 -13
  8. package/dist/{boot-reembed-je26h5y7.js → boot-reembed-c98xrad3.js} +8 -6
  9. package/dist/{boot-reembed-1qmybsd4.js → boot-reembed-zt3qm9xn.js} +9 -7
  10. package/dist/{boot-scrub-logs-gte3h1mm.js → boot-scrub-logs-jcqd8ksj.js} +6 -4
  11. package/dist/{claude-adapter-csc1mzka.js → claude-adapter-mgryg8g3.js} +17 -15
  12. package/dist/{claude-managed-adapter-dsmkcrjy.js → claude-managed-adapter-ea2aga6w.js} +3 -3
  13. package/dist/{claude-sdk-session-fcd6f078.js → claude-sdk-session-jjf4zss1.js} +17 -15
  14. package/dist/{cli-r2fpe7cx.js → cli-00w2c66p.js} +61 -55
  15. package/dist/{cli-fm4ytsdk.js → cli-0d9nbqxf.js} +1 -1
  16. package/dist/cli-0x5qzvkg.js +4279 -0
  17. package/dist/{cli-d3p82erb.js → cli-18amys3y.js} +9 -9
  18. package/dist/{cli-wbyk465z.js → cli-1hwnb4hc.js} +1 -1
  19. package/dist/{cli-xw7vak96.js → cli-3bcmp015.js} +5 -5
  20. package/dist/cli-3er6gcsn.js +1849 -0
  21. package/dist/{cli-c4eeb5q2.js → cli-5b6b62tz.js} +1 -1
  22. package/dist/{cli-4ahpr4sw.js → cli-5mbmvxnn.js} +5 -5
  23. package/dist/{cli-xy1cchaf.js → cli-5taqtpze.js} +235 -8
  24. package/dist/{cli-fmy65jdn.js → cli-6ks9xf1n.js} +7 -5
  25. package/dist/cli-7g9s78jf.js +2827 -0
  26. package/dist/{cli-jew3jda5.js → cli-7pnz2v6s.js} +2 -2
  27. package/dist/{cli-r84ctdxn.js → cli-83wkg402.js} +2 -2
  28. package/dist/{cli-jvy9qgjs.js → cli-a9scg8sv.js} +4 -4
  29. package/dist/{cli-4yc5d8fk.js → cli-avkd6mqv.js} +50 -0
  30. package/dist/{cli-ht5rs63n.js → cli-b2g6mzjc.js} +15 -6
  31. package/dist/{cli-jbmc0r7r.js → cli-bw0dfwkr.js} +1 -1
  32. package/dist/{cli-8wrympd7.js → cli-bzr0ftht.js} +26 -7
  33. package/dist/{cli-wpv5rgg2.js → cli-cdq08v3r.js} +2 -2
  34. package/dist/cli-cgj4hc12.js +18902 -0
  35. package/dist/cli-d6hk10xx.js +14075 -0
  36. package/dist/{cli-zvgj5zg8.js → cli-djvxhnc4.js} +31 -3324
  37. package/dist/{cli-s25avqg9.js → cli-e781c6f9.js} +1 -0
  38. package/dist/{cli-3bpzj8me.js → cli-eazstkad.js} +2 -2
  39. package/dist/{cli-s2qjdd6z.js → cli-eetrvv91.js} +1 -1
  40. package/dist/cli-h38x0qhg.js +6912 -0
  41. package/dist/{cli-9xvdm3bx.js → cli-h60qfasa.js} +742 -278
  42. package/dist/{pi-mono-adapter-jcqt71cg.js → cli-ja7mrygn.js} +67343 -101083
  43. package/dist/{cli-j8dggbcr.js → cli-k0g1sjzm.js} +23 -31
  44. package/dist/{cli-gphgnvpf.js → cli-m04pt18h.js} +2 -2
  45. package/dist/{cli-rgvp6r2x.js → cli-mcnhgnn1.js} +193 -4
  46. package/dist/{cli-j4nv2wqy.js → cli-mzgyhxbe.js} +10 -4
  47. package/dist/{cli-qn042eh7.js → cli-n0q9b7j4.js} +46 -1870
  48. package/dist/cli-n7h1kqpf.js +29 -0
  49. package/dist/{cli-ckz5t2hb.js → cli-nq0kgyxe.js} +5 -5
  50. package/dist/{cli-z3wkng35.js → cli-qrqhc31j.js} +151 -125
  51. package/dist/{cli-56h18ng2.js → cli-r8tdds6s.js} +1 -1
  52. package/dist/{cli-ch38q5z4.js → cli-rj7de4b2.js} +6788 -2541
  53. package/dist/{cli-qd65dvr6.js → cli-s5s1f2yn.js} +56 -40
  54. package/dist/{cli-kj76p1ez.js → cli-scwq51gn.js} +13 -7
  55. package/dist/{cli-2nnd56zt.js → cli-tdh4hjr2.js} +3 -2
  56. package/dist/{cli-c2mk1kgf.js → cli-v4en75c5.js} +8 -1
  57. package/dist/{cli-b9dd0h3k.js → cli-vw03hg5t.js} +3 -2
  58. package/dist/{cli-zvkq5csn.js → cli-ybpp1srm.js} +6 -6
  59. package/dist/cli-yn0a417a.js +4069 -0
  60. package/dist/{cli-gpqcs935.js → cli-ysc1kbet.js} +2 -2
  61. package/dist/{cli-zfzznn7c.js → cli-ytxs7mn1.js} +26 -2
  62. package/dist/cli-zcsyfw2z.js +3335 -0
  63. package/dist/{cli-4j8k1m4w.js → cli-zt1227k1.js} +1162 -192
  64. package/dist/cli-zy5w9gpt.js +230 -0
  65. package/dist/cli.js +26 -34
  66. package/dist/{codex-adapter-fxmpsabw.js → codex-adapter-8548daap.js} +12 -11
  67. package/dist/{codex-session-runner-rr1e47ea.js → codex-session-runner-2dad8p4x.js} +12 -11
  68. package/dist/{commands-0f5rxz51.js → commands-355dbpa8.js} +6 -4
  69. package/dist/{db-r3jxf3wy.js → db-4jjvwz1s.js} +6 -4
  70. package/dist/{dispatcher-06vph6q4.js → dispatcher-ca590nkz.js} +29 -25
  71. package/dist/dsh-adapter-rgvj6ykp.js +19 -0
  72. package/dist/{e2b-413b8t4v.js → e2b-93x1k0j5.js} +6 -7
  73. package/dist/{google-generative-ai-ndjmj5fa.js → google-generative-ai-xtw7tggr.js} +33 -73
  74. package/dist/{google-vertex-fr665tqs.js → google-vertex-zdqpms6n.js} +38 -68
  75. package/dist/{handlers-0hgtc910.js → handlers-2y6dqpvf.js} +32 -28
  76. package/dist/{hook-9kvrv1er.js → hook-0s8knepr.js} +11 -9
  77. package/dist/{hook-fbfhkat3.js → hook-k0gec254.js} +12 -10
  78. package/dist/{http-xbyx8k5j.js → http-jp2nb4zw.js} +300 -237
  79. package/dist/{index-tfsdxyv6.js → index-0wzg3sp3.js} +39 -24
  80. package/dist/{index-rnyahfn5.js → index-3mq6ce93.js} +29 -25
  81. package/dist/{index-jsw3aynb.js → index-42s7eezq.js} +29 -25
  82. package/dist/{cli-pdz9qde4.js → index-9ch1n761.js} +10 -11
  83. package/dist/{index-gpfn1741.js → index-b56xkbc7.js} +8 -6
  84. package/dist/{index-66xz5e9j.js → index-h5gs261z.js} +521 -9
  85. package/dist/{index-2sp0384z.js → index-kkeftv5h.js} +738 -21
  86. package/dist/{index-sgk50mbg.js → index-s37dbevy.js} +30 -26
  87. package/dist/index-w097eg0x.js +5 -0
  88. package/dist/jiti-loader-b4837mtm.js +34 -0
  89. package/dist/jiti-static-loader-q2g5ds0y.js +31267 -0
  90. package/dist/{keepalive-s3xpr7sw.js → keepalive-9pfw7t02.js} +8 -6
  91. package/dist/{lead-rq4n5r16.js → lead-7vcmcdq4.js} +44 -39
  92. package/dist/{maintenance-f0atj1ab.js → maintenance-x277jbpd.js} +9 -7
  93. package/dist/{mistral-conversations-qhr84ph3.js → mistral-conversations-zx0kn554.js} +24 -18
  94. package/dist/{node-x1g4v0pq.js → node-5qtycf6a.js} +16 -11
  95. package/dist/{oauth-refresh-sweep-q0t3bxre.js → oauth-refresh-sweep-5fwa7th2.js} +7 -5
  96. package/dist/{onboard-br5j1kch.js → onboard-17sv0f51.js} +103 -35
  97. package/dist/{openai-codex-responses-wy6a43wd.js → openai-codex-responses-4vjqzvjp.js} +33 -27
  98. package/dist/{openai-completions-32rdwmze.js → openai-completions-pxsmym7g.js} +52 -64
  99. package/dist/{openai-responses-6xwf7bzg.js → openai-responses-tmn0rqp0.js} +23 -24
  100. package/dist/{opencode-adapter-28axqa09.js → opencode-adapter-qbmv4tpy.js} +6 -6
  101. package/dist/{otel-impl-vdqge2nt.js → otel-impl-srjy4be4.js} +4 -4
  102. package/dist/{pi-messages-b1mbr6gp.js → pi-messages-txpjj39q.js} +3 -3
  103. package/dist/pi-mono-adapter-946a0sdd.js +1316 -0
  104. package/dist/{pricing-refresh-hb3691fd.js → pricing-refresh-vetcm563.js} +8 -6
  105. package/dist/{rbac-roles-jh280k9g.js → rbac-roles-cfzgr6r1.js} +8 -6
  106. package/dist/{rbac-roles-t78xt39b.js → rbac-roles-cmxaddmy.js} +7 -5
  107. package/dist/{render-v2-7p8r2ymg.js → render-v2-f9hzff72.js} +9 -6
  108. package/dist/{seed-pricing-hf889enh.js → seed-pricing-jggk6rsy.js} +7 -5
  109. package/dist/{setup-w6mb03jv.js → setup-8mfceb9t.js} +4 -5
  110. package/dist/virtual-modules-ax661xp0.js +54 -0
  111. package/dist/{work-objects-nt8gy1kj.js → work-objects-vdsdcczj.js} +32 -28
  112. package/dist/{worker-dwy617t0.js → worker-cd0nhyv1.js} +44 -39
  113. package/openapi.json +36 -14
  114. package/package.json +6 -6
  115. package/src/be/automation-preflight.ts +6 -4
  116. package/src/be/extensions/db.ts +35 -4
  117. package/src/be/models-catalog.ts +2 -0
  118. package/src/be/modelsdev-cache.json +213 -0
  119. package/src/be/rbac-audit.ts +2 -0
  120. package/src/be/seed-pricing.ts +3 -1
  121. package/src/be/swarm-config-guard.ts +1 -0
  122. package/src/commands/onboard/compose-generator.ts +6 -1
  123. package/src/commands/onboard/env-generator.ts +6 -1
  124. package/src/commands/onboard/manifest.ts +1 -0
  125. package/src/commands/onboard/steps/integration-slack.tsx +56 -16
  126. package/src/commands/onboard/steps/review.tsx +5 -0
  127. package/src/commands/onboard/types.ts +6 -0
  128. package/src/commands/onboard.tsx +5 -1
  129. package/src/commands/provider-credentials.ts +14 -2
  130. package/src/extensions/lifecycle.ts +15 -21
  131. package/src/http/agents.ts +2 -2
  132. package/src/http/config.ts +1 -1
  133. package/src/http/core.ts +5 -3
  134. package/src/http/extensions.ts +108 -34
  135. package/src/http/status.ts +22 -10
  136. package/src/prompts/base-prompt.ts +15 -7
  137. package/src/providers/claude-managed-models.ts +8 -0
  138. package/src/providers/codex-models.ts +15 -1
  139. package/src/providers/dsh-adapter.ts +248 -0
  140. package/src/providers/index.ts +5 -1
  141. package/src/providers/modelsdev-reasoning.json +50 -0
  142. package/src/rbac/legacy-policy.ts +15 -1
  143. package/src/rbac/types.ts +2 -0
  144. package/src/server.ts +7 -1
  145. package/src/slack/app.ts +32 -10
  146. package/src/slack/config.ts +29 -0
  147. package/src/telemetry.ts +2 -3
  148. package/src/tests/agents-harness-provider.test.ts +19 -0
  149. package/src/tests/agents-list-model-display.test.ts +60 -1
  150. package/src/tests/base-prompt.test.ts +25 -0
  151. package/src/tests/claude-managed-adapter.test.ts +6 -0
  152. package/src/tests/codex-gpt6-release.test.ts +97 -0
  153. package/src/tests/config-api-only-keys.test.ts +9 -0
  154. package/src/tests/context-window.test.ts +1 -0
  155. package/src/tests/dsh-adapter.test.ts +276 -0
  156. package/src/tests/e2e-nightly-report.test.ts +3 -3
  157. package/src/tests/e2e-redact.test.ts +2 -0
  158. package/src/tests/env-flag.test.ts +6 -0
  159. package/src/tests/extensions-db.test.ts +41 -0
  160. package/src/tests/extensions-http.test.ts +148 -4
  161. package/src/tests/extensions-lifecycle.test.ts +18 -0
  162. package/src/tests/extensions-mcp-tools.test.ts +9 -5
  163. package/src/tests/internal-ai/complete-structured.test.ts +32 -9
  164. package/src/tests/internal-ai/credentials.test.ts +4 -4
  165. package/src/tests/internal-ai/models.test.ts +20 -0
  166. package/src/tests/migration-046-budgets.test.ts +2 -0
  167. package/src/tests/model-control.test.ts +2 -2
  168. package/src/tests/onboard-compose.test.ts +14 -0
  169. package/src/tests/onboard-env.test.ts +17 -0
  170. package/src/tests/onboard-manifest.test.ts +12 -0
  171. package/src/tests/opus-5-5-registry.test.ts +48 -0
  172. package/src/tests/pricing-refresh.test.ts +1 -1
  173. package/src/tests/pricing-routes.test.ts +15 -3
  174. package/src/tests/provider-registration.test.ts +5 -2
  175. package/src/tests/rbac-admission-e2e.test.ts +54 -0
  176. package/src/tests/rbac-e2e-helpers.ts +2 -0
  177. package/src/tests/rbac-engine.test.ts +32 -0
  178. package/src/tests/rbac-wire-e2e.test.ts +33 -0
  179. package/src/tests/reasoning-effort.test.ts +8 -0
  180. package/src/tests/reload-config.test.ts +33 -0
  181. package/src/tests/session-costs-model-key-normalize.test.ts +1 -0
  182. package/src/tests/slack-config.test.ts +136 -0
  183. package/src/tests/slack-mode-lifecycle.test.ts +69 -0
  184. package/src/tests/status.test.ts +22 -2
  185. package/src/tests/task-tool-preload-mcp.test.ts +3 -1
  186. package/src/tests/telemetry-init.test.ts +18 -0
  187. package/src/tests/workflow-llm.test.ts +3 -3
  188. package/src/tools/extension-common.ts +4 -0
  189. package/src/tools/extension-install.ts +1 -1
  190. package/src/tools/extension-list.ts +4 -3
  191. package/src/types.ts +17 -8
  192. package/src/utils/context-window.ts +1 -0
  193. package/src/utils/credentials.ts +8 -0
  194. package/src/utils/internal-ai/complete-structured.ts +8 -0
  195. package/src/utils/internal-ai/models.ts +5 -5
  196. package/templates/schedules/daily-status-report/content.md +25 -12
  197. package/templates/schedules/daily-workflow-health-audit/content.md +1 -1
  198. package/templates/skills/swarm-extensions/content.md +9 -5
  199. package/dist/cli-4wppfkcm.js +0 -16384
  200. package/dist/cli-55qrx3q8.js +0 -6041
  201. package/dist/cli-cg4vnyh4.js +0 -305
  202. package/dist/cli-jyetr64j.js +0 -52
  203. package/dist/cli-pp9ax9pa.js +0 -520
  204. package/dist/cli-qa66qaf0.js +0 -6076
  205. package/dist/cli-qghpvca2.js +0 -590
  206. package/dist/cli-rembwgt8.js +0 -861
  207. package/dist/cli-tcvj7j2r.js +0 -1971
  208. package/dist/cli-vfcth11k.js +0 -36
  209. package/dist/cli-w1d1bgkk.js +0 -1422
  210. package/dist/cli-y6x0gqtg.js +0 -5977
  211. package/dist/es5-tj3tn4jj.js +0 -844
  212. package/dist/index-1kq5hw2p.js +0 -467
  213. package/dist/index-1p8wdstt.js +0 -7
  214. package/dist/index-8fdjzb2f.js +0 -100
  215. package/dist/index-bxmwzbgw.js +0 -365
  216. package/dist/index-nzerxd5z.js +0 -7
  217. package/dist/index-pyymnzat.js +0 -1168
  218. package/dist/index-qv6atbab.js +0 -619
  219. package/dist/index-rja32qa7.js +0 -801
  220. package/dist/index-tzg5srfp.js +0 -211
  221. package/dist/index-vhncw983.js +0 -90
  222. package/dist/index-xk036zsk.js +0 -859
  223. package/dist/index-zyazbzcb.js +0 -6
  224. package/dist/{claude-managed-setup-48dwg9bv.js → claude-managed-setup-f5pmsyrp.js} +3 -3
@@ -0,0 +1,230 @@
1
+ import {
2
+ resolveSlashSkillPrompt
3
+ } from "./cli-r94z9p1z.js";
4
+ import {
5
+ getOpenRouterBaseUrl
6
+ } from "./cli-3dpj7atn.js";
7
+ import {
8
+ detachedProcessGroup,
9
+ registerProcessGroup,
10
+ terminateProcessGroup
11
+ } from "./cli-y89t4nca.js";
12
+ import {
13
+ DEFAULT_MODEL_TIER_MAP,
14
+ init_types
15
+ } from "./cli-zcsyfw2z.js";
16
+ import {
17
+ init_secret_scrubber,
18
+ registerVolatileSecret,
19
+ scrubSecrets
20
+ } from "./cli-r2ap2czm.js";
21
+
22
+ // src/providers/dsh-adapter.ts
23
+ init_types();
24
+ import { mkdtemp, rm, writeFile } from "node:fs/promises";
25
+ import { tmpdir } from "node:os";
26
+ import { join } from "node:path";
27
+ init_secret_scrubber();
28
+ var DSH_PACKAGE = "@deepseek-ai/dsh@0.1.7-alpha.2";
29
+ function checkDshCredentials(env) {
30
+ return env.DEEPSEEK_API_KEY?.trim() || env.OPENROUTER_API_KEY?.trim() ? { ready: true, missing: [], satisfiedBy: "env" } : {
31
+ ready: false,
32
+ missing: ["DEEPSEEK_API_KEY", "OPENROUTER_API_KEY"],
33
+ hint: "Set DEEPSEEK_API_KEY or OPENROUTER_API_KEY for dsh."
34
+ };
35
+ }
36
+
37
+ class DshSession {
38
+ proc;
39
+ directory;
40
+ sessionId;
41
+ listeners = [];
42
+ pending = [];
43
+ output;
44
+ failure;
45
+ stderr = "";
46
+ aborted = false;
47
+ completion;
48
+ constructor(proc, directory, prompt) {
49
+ this.proc = proc;
50
+ this.directory = directory;
51
+ this.completion = this.run(prompt);
52
+ }
53
+ onEvent(listener) {
54
+ this.listeners.push(listener);
55
+ for (const event of this.pending.splice(0))
56
+ listener(event);
57
+ }
58
+ emit(event) {
59
+ if (this.listeners.length === 0)
60
+ this.pending.push(event);
61
+ else
62
+ for (const listener of this.listeners)
63
+ listener(event);
64
+ }
65
+ consumeLine(line) {
66
+ if (!line.trim())
67
+ return;
68
+ const clean = scrubSecrets(line);
69
+ this.emit({ type: "raw_log", content: clean });
70
+ try {
71
+ const event = JSON.parse(clean);
72
+ if (event.type === "session" && typeof event.sessionId === "string") {
73
+ this.sessionId = event.sessionId;
74
+ this.emit({ type: "session_init", sessionId: event.sessionId, provider: "dsh" });
75
+ } else if (event.type === "text" && typeof event.text === "string") {
76
+ this.emit({ type: "message", role: "assistant", content: event.text });
77
+ } else if (event.type === "final" && typeof event.text === "string") {
78
+ this.output = event.text;
79
+ } else if (event.type === "error" && typeof event.message === "string") {
80
+ this.failure = event.message;
81
+ } else if (event.type === "status" && typeof event.phase === "string") {
82
+ this.emit({ type: "progress", message: event.phase });
83
+ if (event.phase === "turn_end" && event.reason?.kind !== "completed") {
84
+ this.failure = typeof event.reason?.error?.message === "string" ? event.reason.error.message : `dsh turn ended: ${event.reason?.kind ?? "unknown"}`;
85
+ }
86
+ }
87
+ } catch {
88
+ this.failure = "dsh emitted invalid JSON output";
89
+ }
90
+ }
91
+ async readStdout() {
92
+ const decoder = new TextDecoder;
93
+ let buffer = "";
94
+ for await (const chunk of this.proc.stdout) {
95
+ buffer += decoder.decode(chunk, { stream: true });
96
+ let newline = buffer.indexOf(`
97
+ `);
98
+ while (newline >= 0) {
99
+ this.consumeLine(buffer.slice(0, newline));
100
+ buffer = buffer.slice(newline + 1);
101
+ newline = buffer.indexOf(`
102
+ `);
103
+ }
104
+ }
105
+ this.consumeLine(buffer + decoder.decode());
106
+ }
107
+ async readStderr() {
108
+ const decoder = new TextDecoder;
109
+ for await (const chunk of this.proc.stderr) {
110
+ const content = scrubSecrets(decoder.decode(chunk, { stream: true }));
111
+ this.stderr = (this.stderr + content).slice(-8000);
112
+ this.emit({ type: "raw_stderr", content });
113
+ }
114
+ }
115
+ async run(prompt) {
116
+ try {
117
+ const [exitCode] = await Promise.all([
118
+ this.proc.exited,
119
+ this.readStdout(),
120
+ this.readStderr(),
121
+ (async () => {
122
+ this.proc.stdin.write(prompt);
123
+ await this.proc.stdin.end();
124
+ })()
125
+ ]);
126
+ const isError = this.aborted || exitCode !== 0 || !!this.failure || this.output === undefined;
127
+ const failureReason = isError ? this.aborted ? "dsh session aborted" : this.failure || this.stderr.trim() || `dsh exited ${exitCode} without a final result` : undefined;
128
+ if (failureReason)
129
+ this.emit({ type: "error", message: failureReason });
130
+ return {
131
+ exitCode: isError ? exitCode || 1 : 0,
132
+ sessionId: this.sessionId,
133
+ output: this.output,
134
+ isError,
135
+ failureReason
136
+ };
137
+ } catch (error) {
138
+ await terminateProcessGroup(this.proc.pid);
139
+ const failureReason = scrubSecrets(String(error));
140
+ this.emit({ type: "error", message: failureReason });
141
+ return { exitCode: 1, sessionId: this.sessionId, isError: true, failureReason };
142
+ } finally {
143
+ await rm(this.directory, { recursive: true, force: true });
144
+ }
145
+ }
146
+ waitForCompletion() {
147
+ return this.completion;
148
+ }
149
+ async abort() {
150
+ this.aborted = true;
151
+ await terminateProcessGroup(this.proc.pid);
152
+ }
153
+ }
154
+
155
+ class DshAdapter {
156
+ name = "dsh";
157
+ traits = {
158
+ hasMcp: false,
159
+ nativeSkillDiscovery: false,
160
+ hasLocalEnvironment: true,
161
+ steerModes: []
162
+ };
163
+ async createSession(config) {
164
+ const env = { ...process.env, ...config.env };
165
+ if (!checkDshCredentials(env).ready) {
166
+ throw new Error("dsh requires DEEPSEEK_API_KEY or OPENROUTER_API_KEY");
167
+ }
168
+ const model = config.model || DEFAULT_MODEL_TIER_MAP.dsh.regular;
169
+ const openrouter = model.startsWith("openrouter/");
170
+ const modelId = openrouter ? model.slice("openrouter/".length) : model;
171
+ const keyEnv = openrouter ? "OPENROUTER_API_KEY" : "DEEPSEEK_API_KEY";
172
+ if (!modelId.trim())
173
+ throw new Error("dsh requires a model ID after openrouter/");
174
+ if (!env[keyEnv]?.trim())
175
+ throw new Error(`dsh model ${model} requires ${keyEnv}`);
176
+ const binary = env.DSH_BINARY || Bun.which("dsh", { PATH: env.PATH });
177
+ if (!binary) {
178
+ throw new Error(`dsh CLI not found. Install ${DSH_PACKAGE} during image provisioning or set DSH_BINARY to a trusted executable.`);
179
+ }
180
+ registerVolatileSecret(env[keyEnv], keyEnv);
181
+ const prompt = await resolveSlashSkillPrompt(config.prompt, {
182
+ providerLabel: "dsh",
183
+ skillsDir: join(env.HOME ?? "/home/worker", ".agents", "skills")
184
+ });
185
+ const directory = await mkdtemp(join(tmpdir(), "swarm-dsh-"));
186
+ try {
187
+ const patchPath = join(directory, "patch.json");
188
+ await writeFile(patchPath, JSON.stringify([
189
+ {
190
+ id: "agent-default-model",
191
+ config: { provider: openrouter ? "openrouter" : "deepseek-official", model: modelId }
192
+ },
193
+ { id: "system-prompt", config: { personaPrefix: config.systemPrompt } },
194
+ openrouter ? {
195
+ id: "llm-pi-ai",
196
+ config: {
197
+ providers: {
198
+ openrouter: {
199
+ apiKeyEnv: keyEnv,
200
+ baseURL: getOpenRouterBaseUrl(env),
201
+ api: "openai-completions",
202
+ models: [{ id: modelId }]
203
+ }
204
+ }
205
+ }
206
+ } : { id: "llm-deepseek", config: { apiKeyEnv: keyEnv } }
207
+ ]), { mode: 384 });
208
+ const proc = registerProcessGroup(Bun.spawn([binary, "--profile", "headless", "--patch", patchPath, "--json", "-"], {
209
+ cwd: config.cwd,
210
+ env,
211
+ stdin: "pipe",
212
+ stdout: "pipe",
213
+ stderr: "pipe",
214
+ detached: detachedProcessGroup
215
+ }));
216
+ return new DshSession(proc, directory, prompt);
217
+ } catch (error) {
218
+ await rm(directory, { recursive: true, force: true });
219
+ throw error;
220
+ }
221
+ }
222
+ async canResume(_sessionId) {
223
+ return false;
224
+ }
225
+ formatCommand(commandName) {
226
+ return `/${commandName}`;
227
+ }
228
+ }
229
+
230
+ export { DSH_PACKAGE, checkDshCredentials, DshAdapter };
package/dist/cli.js CHANGED
@@ -8,34 +8,26 @@ import {
8
8
  require_react_development,
9
9
  require_react_jsx_dev_runtime_development,
10
10
  use_app_default
11
- } from "./cli-4j8k1m4w.js";
11
+ } from "./cli-zt1227k1.js";
12
12
  import"./cli-pw9rj5t9.js";
13
- import"./cli-pp9ax9pa.js";
14
13
  import {
15
14
  bedrockProviderModule
16
- } from "./cli-y6x0gqtg.js";
17
- import"./cli-cg4vnyh4.js";
15
+ } from "./cli-h38x0qhg.js";
16
+ import"./cli-yn0a417a.js";
17
+ import"./cli-cgj4hc12.js";
18
18
  import"./cli-txgcknmy.js";
19
19
  import"./cli-6map995v.js";
20
- import"./cli-j8dggbcr.js";
20
+ import"./cli-k0g1sjzm.js";
21
21
  import"./cli-y2apkfe2.js";
22
22
  import"./cli-vapyk8sw.js";
23
- import"./cli-pdz9qde4.js";
24
23
  import {
25
24
  setBedrockProviderModule
26
- } from "./cli-c4eeb5q2.js";
27
- import"./cli-rgvp6r2x.js";
25
+ } from "./cli-5b6b62tz.js";
28
26
  import"./cli-btbzvq95.js";
29
27
  import"./cli-1m2e086m.js";
30
- import"./cli-8wrympd7.js";
28
+ import"./cli-mcnhgnn1.js";
29
+ import"./cli-bzr0ftht.js";
31
30
  import"./cli-bd957dgb.js";
32
- import"./cli-jyetr64j.js";
33
- import"./cli-w1d1bgkk.js";
34
- import"./cli-qghpvca2.js";
35
- import"./cli-55qrx3q8.js";
36
- import"./cli-rembwgt8.js";
37
- import"./cli-tcvj7j2r.js";
38
- import"./cli-qa66qaf0.js";
39
31
  import {
40
32
  __commonJS,
41
33
  __require,
@@ -65,7 +57,7 @@ var import_react = __toESM(require_react(), 1);
65
57
  // package.json
66
58
  var package_default = {
67
59
  name: "@desplega.ai/agent-swarm",
68
- version: "1.152.2",
60
+ version: "1.153.0",
69
61
  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.",
70
62
  keywords: [
71
63
  "agent-swarm.dev",
@@ -253,14 +245,14 @@ var package_default = {
253
245
  "@aws-sdk/client-bedrock": "3.1048.0",
254
246
  "@desplega.ai/business-use": "^0.4.2",
255
247
  "@desplega.ai/localtunnel": "^2.2.0",
256
- "@earendil-works/pi-agent-core": "^0.85.1",
257
- "@earendil-works/pi-ai": "^0.85.1",
258
- "@earendil-works/pi-coding-agent": "^0.85.1",
248
+ "@earendil-works/pi-agent-core": "^0.87.1",
249
+ "@earendil-works/pi-ai": "^0.87.1",
250
+ "@earendil-works/pi-coding-agent": "^0.87.1",
259
251
  "@inkjs/ui": "^2.0.0",
260
252
  "@linear/sdk": "^77.0.0",
261
253
  "@modelcontextprotocol/sdk": "1.29.0",
262
- "@openai/codex": "0.154.0",
263
- "@opencode-ai/sdk": "^1.18.31",
254
+ "@openai/codex": "0.156.1",
255
+ "@opencode-ai/sdk": "^1.18.32",
264
256
  "@openfort/openfort-node": "^0.9.1",
265
257
  "@opentelemetry/api": "^1.9.1",
266
258
  "@opentelemetry/exporter-metrics-otlp-http": "^0.218.0",
@@ -742,7 +734,7 @@ function McpServer({ port, apiKey, dbPath }) {
742
734
  if (dbPath) {
743
735
  process.env.DATABASE_PATH = dbPath;
744
736
  }
745
- import("./http-xbyx8k5j.js").then(() => {
737
+ import("./http-jp2nb4zw.js").then(() => {
746
738
  setStatus("running");
747
739
  }).catch((err) => {
748
740
  setStatus("error");
@@ -828,7 +820,7 @@ function WorkerRunner({
828
820
  }) {
829
821
  const { exit } = use_app_default();
830
822
  import_react.useEffect(() => {
831
- import("./worker-dwy617t0.js").then(({ runWorker }) => runWorker({
823
+ import("./worker-cd0nhyv1.js").then(({ runWorker }) => runWorker({
832
824
  prompt: prompt || undefined,
833
825
  yolo,
834
826
  systemPrompt: systemPrompt || undefined,
@@ -845,7 +837,7 @@ function WorkerRunner({
845
837
  function LeadRunner({ prompt, yolo, systemPrompt, systemPromptFile, additionalArgs }) {
846
838
  const { exit } = use_app_default();
847
839
  import_react.useEffect(() => {
848
- import("./lead-rq4n5r16.js").then(({ runLead }) => runLead({
840
+ import("./lead-7vcmcdq4.js").then(({ runLead }) => runLead({
849
841
  prompt: prompt || undefined,
850
842
  yolo,
851
843
  systemPrompt: systemPrompt || undefined,
@@ -885,8 +877,8 @@ function LazyComponent({
885
877
  }
886
878
  return import_react.createElement(Component, props);
887
879
  }
888
- var loadOnboard = () => import("./onboard-br5j1kch.js").then(({ Onboard }) => Onboard);
889
- var loadConnect = () => import("./setup-w6mb03jv.js").then(({ Setup }) => Setup);
880
+ var loadOnboard = () => import("./onboard-17sv0f51.js").then(({ Onboard }) => Onboard);
881
+ var loadConnect = () => import("./setup-8mfceb9t.js").then(({ Setup }) => Setup);
890
882
  function UnknownCommand({ command }) {
891
883
  const { exit } = use_app_default();
892
884
  import_react.useEffect(() => {
@@ -1007,14 +999,14 @@ ${binName} docs \u2014 v${package_default.version}
1007
999
  }
1008
1000
  process.exit(0);
1009
1001
  } else if (args.command === "hook") {
1010
- const { runHook } = await import("./hook-fbfhkat3.js");
1002
+ const { runHook } = await import("./hook-k0gec254.js");
1011
1003
  await runHook();
1012
1004
  } else if (args.command === "codex-hook") {
1013
1005
  const { handleCodexHook } = await import("./codex-hook-8jexc34x.js");
1014
1006
  await handleCodexHook();
1015
1007
  process.exit(0);
1016
1008
  } else if (args.command === "session-summary-stdin") {
1017
- const { runSessionSummaryFromStdin } = await import("./hook-9kvrv1er.js");
1009
+ const { runSessionSummaryFromStdin } = await import("./hook-0s8knepr.js");
1018
1010
  await runSessionSummaryFromStdin();
1019
1011
  process.exit(process.exitCode ?? 0);
1020
1012
  } else if (args.command === "artifact") {
@@ -1035,7 +1027,7 @@ ${binName} docs \u2014 v${package_default.version}
1035
1027
  printHelp("scripts");
1036
1028
  process.exit(scriptsArgs[0] === "reembed" || args.showHelp ? 0 : 1);
1037
1029
  }
1038
- const { runScriptsMaintenanceCommand } = await import("./maintenance-f0atj1ab.js");
1030
+ const { runScriptsMaintenanceCommand } = await import("./maintenance-x277jbpd.js");
1039
1031
  await runScriptsMaintenanceCommand(scriptsArgs);
1040
1032
  console.log("Scripts re-embedded.");
1041
1033
  } else if (args.command === "rbac") {
@@ -1045,21 +1037,21 @@ ${binName} docs \u2014 v${package_default.version}
1045
1037
  printHelp("rbac");
1046
1038
  process.exit(args.showHelp ? 0 : 1);
1047
1039
  }
1048
- const { runRbacCliCommand } = await import("./rbac-roles-t78xt39b.js");
1040
+ const { runRbacCliCommand } = await import("./rbac-roles-cmxaddmy.js");
1049
1041
  await runRbacCliCommand(rbacArgs);
1050
1042
  } else if (args.command === "codex-login") {
1051
1043
  const { runCodexLogin } = await import("./codex-login-vx7ghkzj.js");
1052
1044
  const codexLoginArgs = process.argv.slice(process.argv.indexOf("codex-login") + 1);
1053
1045
  await runCodexLogin(codexLoginArgs);
1054
1046
  } else if (args.command === "codex-session-runner") {
1055
- const { runCodexSessionRunner } = await import("./codex-session-runner-rr1e47ea.js");
1047
+ const { runCodexSessionRunner } = await import("./codex-session-runner-2dad8p4x.js");
1056
1048
  await runCodexSessionRunner();
1057
1049
  } else if (args.command === "claude-managed-setup") {
1058
- const { runClaudeManagedSetup } = await import("./claude-managed-setup-48dwg9bv.js");
1050
+ const { runClaudeManagedSetup } = await import("./claude-managed-setup-f5pmsyrp.js");
1059
1051
  const setupArgs = process.argv.slice(process.argv.indexOf("claude-managed-setup") + 1);
1060
1052
  await runClaudeManagedSetup(setupArgs);
1061
1053
  } else if (args.command === "e2b") {
1062
- const { runE2BCommand } = await import("./e2b-413b8t4v.js");
1054
+ const { runE2BCommand } = await import("./e2b-93x1k0j5.js");
1063
1055
  const e2bArgs = process.argv.slice(process.argv.indexOf("e2b") + 1);
1064
1056
  await runE2BCommand(e2bArgs);
1065
1057
  } else {
@@ -6,34 +6,35 @@ import {
6
6
  createInProcessCodexSession,
7
7
  resolveCodexAuthMode,
8
8
  resolveCodexRunnerArgv
9
- } from "./cli-xy1cchaf.js";
9
+ } from "./cli-5taqtpze.js";
10
10
  import"./cli-hsxj0yar.js";
11
11
  import"./cli-r94z9p1z.js";
12
+ import"./cli-2djtr51b.js";
12
13
  import"./cli-b5b30yzk.js";
13
14
  import"./cli-zm7njwzd.js";
14
- import"./cli-s25avqg9.js";
15
- import"./cli-2djtr51b.js";
16
- import"./cli-j4nv2wqy.js";
15
+ import"./cli-e781c6f9.js";
16
+ import"./cli-mzgyhxbe.js";
17
17
  import"./cli-hp1n6zq3.js";
18
- import"./cli-4yc5d8fk.js";
19
- import"./cli-4wppfkcm.js";
18
+ import"./cli-avkd6mqv.js";
19
+ import"./cli-7g9s78jf.js";
20
20
  import"./cli-e7d20cty.js";
21
21
  import"./cli-re8z5p8p.js";
22
22
  import"./cli-3dpj7atn.js";
23
+ import"./cli-d6hk10xx.js";
23
24
  import"./cli-y89t4nca.js";
24
25
  import"./cli-f14fvzag.js";
25
26
  import"./cli-bsakbbkm.js";
26
27
  import"./cli-ej6gbxfb.js";
27
28
  import"./cli-sd0mxa3c.js";
28
29
  import"./cli-w5e1d1vv.js";
29
- import"./cli-zvkq5csn.js";
30
+ import"./cli-ybpp1srm.js";
30
31
  import"./cli-r2ap2czm.js";
31
- import"./cli-knd276ed.js";
32
- import"./cli-c4eeb5q2.js";
33
- import"./cli-rgvp6r2x.js";
32
+ import"./cli-5b6b62tz.js";
34
33
  import"./cli-btbzvq95.js";
35
34
  import"./cli-1m2e086m.js";
36
- import"./cli-8wrympd7.js";
35
+ import"./cli-mcnhgnn1.js";
36
+ import"./cli-bzr0ftht.js";
37
+ import"./cli-knd276ed.js";
37
38
  import"./cli-bc05qbss.js";
38
39
  export {
39
40
  CodexAdapter,
@@ -1,36 +1,37 @@
1
1
  import {
2
2
  createInProcessCodexSession
3
- } from "./cli-xy1cchaf.js";
3
+ } from "./cli-5taqtpze.js";
4
4
  import"./cli-hsxj0yar.js";
5
5
  import"./cli-r94z9p1z.js";
6
+ import"./cli-2djtr51b.js";
6
7
  import"./cli-b5b30yzk.js";
7
8
  import"./cli-zm7njwzd.js";
8
- import"./cli-s25avqg9.js";
9
- import"./cli-2djtr51b.js";
10
- import"./cli-j4nv2wqy.js";
9
+ import"./cli-e781c6f9.js";
10
+ import"./cli-mzgyhxbe.js";
11
11
  import"./cli-hp1n6zq3.js";
12
- import"./cli-4yc5d8fk.js";
13
- import"./cli-4wppfkcm.js";
12
+ import"./cli-avkd6mqv.js";
13
+ import"./cli-7g9s78jf.js";
14
14
  import"./cli-e7d20cty.js";
15
15
  import"./cli-re8z5p8p.js";
16
16
  import"./cli-3dpj7atn.js";
17
+ import"./cli-d6hk10xx.js";
17
18
  import"./cli-y89t4nca.js";
18
19
  import"./cli-f14fvzag.js";
19
20
  import"./cli-bsakbbkm.js";
20
21
  import"./cli-ej6gbxfb.js";
21
22
  import"./cli-sd0mxa3c.js";
22
23
  import"./cli-w5e1d1vv.js";
23
- import"./cli-zvkq5csn.js";
24
+ import"./cli-ybpp1srm.js";
24
25
  import {
25
26
  init_secret_scrubber,
26
27
  scrubSecrets
27
28
  } from "./cli-r2ap2czm.js";
28
- import"./cli-knd276ed.js";
29
- import"./cli-c4eeb5q2.js";
30
- import"./cli-rgvp6r2x.js";
29
+ import"./cli-5b6b62tz.js";
31
30
  import"./cli-btbzvq95.js";
32
31
  import"./cli-1m2e086m.js";
33
- import"./cli-8wrympd7.js";
32
+ import"./cli-mcnhgnn1.js";
33
+ import"./cli-bzr0ftht.js";
34
+ import"./cli-knd276ed.js";
34
35
  import"./cli-bc05qbss.js";
35
36
 
36
37
  // src/commands/codex-session-runner.ts
@@ -2,18 +2,20 @@ import {
2
2
  getAllAgents,
3
3
  getAllTasks,
4
4
  init_db
5
- } from "./cli-zvgj5zg8.js";
6
- import"./cli-ht5rs63n.js";
5
+ } from "./cli-djvxhnc4.js";
6
+ import"./cli-zcsyfw2z.js";
7
+ import"./cli-b2g6mzjc.js";
7
8
  import"./cli-z61ykvam.js";
9
+ import"./cli-v4en75c5.js";
8
10
  import"./cli-dv6cdjs2.js";
9
- import"./cli-c2mk1kgf.js";
11
+ import"./cli-n7h1kqpf.js";
10
12
  import {
11
13
  init_env_flag,
12
14
  isEnvFlagEnabled
13
15
  } from "./cli-ej6gbxfb.js";
14
16
  import"./cli-sd0mxa3c.js";
15
17
  import"./cli-w5e1d1vv.js";
16
- import"./cli-zvkq5csn.js";
18
+ import"./cli-ybpp1srm.js";
17
19
  import"./cli-r2ap2czm.js";
18
20
  import"./cli-zf8jjwex.js";
19
21
  import"./cli-bc05qbss.js";
@@ -455,20 +455,22 @@ import {
455
455
  upsertSkillFiles,
456
456
  upsertSwarmConfig,
457
457
  withFavoriteFlags
458
- } from "./cli-zvgj5zg8.js";
458
+ } from "./cli-djvxhnc4.js";
459
+ import"./cli-zcsyfw2z.js";
459
460
  import {
460
461
  generateDefaultClaudeMd,
461
462
  generateDefaultIdentityMd,
462
463
  generateDefaultSoulMd,
463
464
  generateDefaultToolsMd
464
- } from "./cli-ht5rs63n.js";
465
+ } from "./cli-b2g6mzjc.js";
465
466
  import"./cli-z61ykvam.js";
467
+ import"./cli-v4en75c5.js";
466
468
  import"./cli-dv6cdjs2.js";
467
- import"./cli-c2mk1kgf.js";
469
+ import"./cli-n7h1kqpf.js";
468
470
  import"./cli-ej6gbxfb.js";
469
471
  import"./cli-sd0mxa3c.js";
470
472
  import"./cli-w5e1d1vv.js";
471
- import"./cli-zvkq5csn.js";
473
+ import"./cli-ybpp1srm.js";
472
474
  import"./cli-r2ap2czm.js";
473
475
  import"./cli-zf8jjwex.js";
474
476
  import"./cli-bc05qbss.js";
@@ -11,52 +11,56 @@ import {
11
11
  resolveBridgeCallOrigin,
12
12
  runContext,
13
13
  unregister
14
- } from "./cli-z3wkng35.js";
14
+ } from "./cli-qrqhc31j.js";
15
15
  import"./cli-0z2v4nhw.js";
16
- import"./cli-4wppfkcm.js";
16
+ import"./cli-7g9s78jf.js";
17
17
  import"./cli-e7d20cty.js";
18
18
  import"./cli-re8z5p8p.js";
19
19
  import"./cli-3dpj7atn.js";
20
- import"./cli-b9dd0h3k.js";
21
- import"./cli-r84ctdxn.js";
22
- import"./cli-zfzznn7c.js";
23
- import"./cli-fmy65jdn.js";
20
+ import"./cli-d6hk10xx.js";
21
+ import"./cli-vw03hg5t.js";
22
+ import"./cli-tdh4hjr2.js";
23
+ import"./cli-83wkg402.js";
24
+ import"./cli-ytxs7mn1.js";
25
+ import"./cli-6ks9xf1n.js";
24
26
  import"./cli-epan13p1.js";
25
27
  import"./cli-y89t4nca.js";
26
28
  import"./cli-f14fvzag.js";
27
- import"./cli-fad8m16k.js";
28
- import"./cli-56h18ng2.js";
29
- import"./cli-2nnd56zt.js";
29
+ import"./cli-r8tdds6s.js";
30
30
  import"./cli-bsakbbkm.js";
31
- import"./cli-gpqcs935.js";
31
+ import"./cli-fad8m16k.js";
32
+ import"./cli-jsp14b6c.js";
33
+ import"./cli-ysc1kbet.js";
34
+ import"./cli-7pnz2v6s.js";
35
+ import"./cli-0d9nbqxf.js";
36
+ import"./cli-aehm1rbq.js";
32
37
  import"./cli-51tf7ac3.js";
33
- import"./cli-qn042eh7.js";
38
+ import"./cli-n0q9b7j4.js";
34
39
  import"./cli-q51yprfq.js";
40
+ import"./cli-3er6gcsn.js";
35
41
  import"./cli-yatxqynm.js";
36
- import"./cli-jew3jda5.js";
37
- import"./cli-fm4ytsdk.js";
38
- import"./cli-aehm1rbq.js";
39
42
  import"./cli-2658f6at.js";
40
- import"./cli-jsp14b6c.js";
41
- import"./cli-zvgj5zg8.js";
42
- import"./cli-ht5rs63n.js";
43
+ import"./cli-djvxhnc4.js";
44
+ import"./cli-zcsyfw2z.js";
45
+ import"./cli-b2g6mzjc.js";
43
46
  import"./cli-z61ykvam.js";
47
+ import"./cli-v4en75c5.js";
44
48
  import"./cli-dv6cdjs2.js";
45
- import"./cli-c2mk1kgf.js";
49
+ import"./cli-n7h1kqpf.js";
46
50
  import"./cli-ej6gbxfb.js";
47
51
  import"./cli-sd0mxa3c.js";
48
52
  import"./cli-w5e1d1vv.js";
49
- import"./cli-zvkq5csn.js";
53
+ import"./cli-ybpp1srm.js";
50
54
  import"./cli-r2ap2czm.js";
51
- import"./cli-pzxba7gw.js";
52
- import"./cli-f7kvq46p.js";
53
- import"./cli-zf8jjwex.js";
54
- import"./cli-c4eeb5q2.js";
55
- import"./cli-rgvp6r2x.js";
55
+ import"./cli-5b6b62tz.js";
56
56
  import"./cli-btbzvq95.js";
57
57
  import"./cli-1m2e086m.js";
58
- import"./cli-8wrympd7.js";
58
+ import"./cli-mcnhgnn1.js";
59
+ import"./cli-bzr0ftht.js";
59
60
  import"./cli-bd957dgb.js";
61
+ import"./cli-pzxba7gw.js";
62
+ import"./cli-f7kvq46p.js";
63
+ import"./cli-zf8jjwex.js";
60
64
  import"./cli-bc05qbss.js";
61
65
  export {
62
66
  ExtensionAbortedError,
@@ -0,0 +1,19 @@
1
+ import {
2
+ DSH_PACKAGE,
3
+ DshAdapter,
4
+ checkDshCredentials
5
+ } from "./cli-zy5w9gpt.js";
6
+ import"./cli-r94z9p1z.js";
7
+ import"./cli-3dpj7atn.js";
8
+ import"./cli-y89t4nca.js";
9
+ import"./cli-zcsyfw2z.js";
10
+ import"./cli-dv6cdjs2.js";
11
+ import"./cli-sd0mxa3c.js";
12
+ import"./cli-w5e1d1vv.js";
13
+ import"./cli-r2ap2czm.js";
14
+ import"./cli-bc05qbss.js";
15
+ export {
16
+ DSH_PACKAGE,
17
+ DshAdapter,
18
+ checkDshCredentials
19
+ };