@desplega.ai/agent-swarm 1.121.0 → 1.121.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/{actions-mwshtkf7.js → actions-99h2dh5e.js} +5 -5
  2. package/dist/{app-skbty91x.js → app-9gfdk9me.js} +3 -3
  3. package/dist/{assistant-tg7dhfj8.js → assistant-mabq9kz7.js} +8 -8
  4. package/dist/{boot-reembed-q5x0xpcp.js → boot-reembed-3vr2amzp.js} +4 -4
  5. package/dist/{boot-reembed-ntjmeyh2.js → boot-reembed-ya33nge3.js} +3 -3
  6. package/dist/{boot-scrub-logs-5gznsfbe.js → boot-scrub-logs-2nmz7fzw.js} +2 -2
  7. package/dist/{cli-vp9r4ap4.js → cli-02m8v96c.js} +2 -2
  8. package/dist/{cli-6s3ytc5x.js → cli-16dv125e.js} +27 -2
  9. package/dist/{cli-0df2g86x.js → cli-2846g99z.js} +1 -1
  10. package/dist/cli-3dpj7atn.js +11 -0
  11. package/dist/{cli-vg3zrw6h.js → cli-3t4nvx1x.js} +4 -4
  12. package/dist/{cli-1728qh70.js → cli-5jd04m23.js} +1 -1
  13. package/dist/{cli-srjqn7fd.js → cli-7bk7s2sx.js} +1 -1
  14. package/dist/{cli-3fxqwfh3.js → cli-9hewdgzb.js} +5 -5
  15. package/dist/{cli-95rbe11h.js → cli-avxs2rp9.js} +12 -9
  16. package/dist/{cli-46etyprn.js → cli-dn5ycmtw.js} +1 -1
  17. package/dist/{cli-3b1ayz83.js → cli-dwqakg2b.js} +5 -5
  18. package/dist/{cli-072t49hf.js → cli-e0zbndab.js} +3 -3
  19. package/dist/{cli-p9w7kb3h.js → cli-fxdhzkqx.js} +1 -1
  20. package/dist/{cli-nf7sadev.js → cli-gahmct71.js} +2 -2
  21. package/dist/{cli-7pzae66m.js → cli-kwjx3f1v.js} +1 -1
  22. package/dist/{cli-g9vva2qh.js → cli-kx7vsvg0.js} +1 -1
  23. package/dist/{cli-avw9ev3x.js → cli-msyrqt1f.js} +14 -11
  24. package/dist/{cli-b2mqkg1h.js → cli-ng0gr9rz.js} +2 -2
  25. package/dist/{cli-s8bdcke2.js → cli-p8qcm631.js} +1 -1
  26. package/dist/{cli-tv7vekye.js → cli-qfh6pmvm.js} +1 -1
  27. package/dist/{cli-agdrxyex.js → cli-rjn06qph.js} +1 -1
  28. package/dist/{cli-dmzv0986.js → cli-vh3h1grg.js} +10 -1
  29. package/dist/{cli-ghq3v4c9.js → cli-w4crd8gx.js} +1 -1
  30. package/dist/{cli-gdpx70nc.js → cli-yhwn2vjm.js} +19 -19
  31. package/dist/{cli-4pfweq4x.js → cli-yy9sm7c1.js} +5 -5
  32. package/dist/{cli-5hpvd15x.js → cli-yyqpn0gc.js} +2 -2
  33. package/dist/{cli-ky8esb8t.js → cli-zm78xp1y.js} +3 -3
  34. package/dist/{cli-7pt9sc83.js → cli-zweca3q3.js} +3 -2
  35. package/dist/cli.js +10 -10
  36. package/dist/{codex-adapter-mmy741zd.js → codex-adapter-0kv2meed.js} +3 -2
  37. package/dist/{codex-session-runner-sazmx9zt.js → codex-session-runner-m1e1v4r0.js} +3 -2
  38. package/dist/{commands-cxxye5e4.js → commands-hty4156r.js} +2 -2
  39. package/dist/{db-ab1954b7.js → db-kyeq3t7h.js} +2 -2
  40. package/dist/{handlers-fmfe2343.js → handlers-fxvqnp6s.js} +8 -8
  41. package/dist/{hook-ygnw3cvt.js → hook-j4ksm2fy.js} +3 -2
  42. package/dist/{http-kactcc0z.js → http-m7fq6kbc.js} +35 -34
  43. package/dist/{index-g86j2yt5.js → index-62g7ym5y.js} +7 -7
  44. package/dist/{index-6erq0wvk.js → index-mbaa4yn7.js} +11 -10
  45. package/dist/{index-gmzs6a2q.js → index-r2tmg4ts.js} +10 -9
  46. package/dist/{index-hmp82wn0.js → index-rqxt0515.js} +12 -11
  47. package/dist/{keepalive-3cvt26dw.js → keepalive-acgfgbk8.js} +5 -5
  48. package/dist/{lead-ysf26cjr.js → lead-r3pnbky3.js} +23 -22
  49. package/dist/{maintenance-9npwptbb.js → maintenance-4tqr6va0.js} +4 -4
  50. package/dist/{oauth-refresh-sweep-0r2v76vw.js → oauth-refresh-sweep-5714hq77.js} +4 -4
  51. package/dist/{onboard-ddb1674a.js → onboard-s5x8zjqd.js} +2 -2
  52. package/dist/{opencode-adapter-h6rkxwrk.js → opencode-adapter-s3nhtp9m.js} +4 -1
  53. package/dist/{otel-impl-b43bkq8e.js → otel-impl-8g0741yr.js} +1 -1
  54. package/dist/{pi-mono-adapter-ke789738.js → pi-mono-adapter-k3z6e5fn.js} +102 -4
  55. package/dist/{pricing-refresh-2rqf114z.js → pricing-refresh-09ty42xr.js} +4 -4
  56. package/dist/{rbac-roles-5wkhc8xv.js → rbac-roles-2hjvj3q0.js} +3 -3
  57. package/dist/{rbac-roles-6vtafvzb.js → rbac-roles-q38w8rne.js} +2 -2
  58. package/dist/{seed-pricing-23wrb873.js → seed-pricing-wzx03625.js} +3 -3
  59. package/dist/{setup-6rny4fk6.js → setup-4hmnc9fz.js} +2 -2
  60. package/dist/{worker-yapewe14.js → worker-efef96pc.js} +23 -22
  61. package/openapi.json +1 -1
  62. package/package.json +1 -1
  63. package/src/be/memory/constants.ts +7 -6
  64. package/src/be/memory/graph-expansion.ts +3 -3
  65. package/src/be/memory/raters/llm-summarizer.ts +10 -2
  66. package/src/commands/provider-credentials.ts +2 -1
  67. package/src/http/memory.ts +2 -1
  68. package/src/providers/codex-adapter.ts +3 -0
  69. package/src/providers/opencode-adapter.ts +40 -0
  70. package/src/providers/pi-mono-adapter.ts +179 -1
  71. package/src/providers/pi-mono-extension.ts +9 -0
  72. package/src/tests/agent-avatar-resolution.test.ts +170 -0
  73. package/src/tests/memory-feature-flags.test.ts +45 -0
  74. package/src/tests/memory-rater-llm-summarizer.test.ts +24 -0
  75. package/src/tests/opencode-plugin.test.ts +43 -0
  76. package/src/tests/openrouter-base-url.test.ts +256 -0
  77. package/src/tests/pi-mono-adapter.test.ts +90 -0
  78. package/src/tools/memory-search.ts +2 -1
  79. package/src/utils/internal-ai/complete-structured.ts +19 -1
  80. package/src/utils/internal-ai/summarize-session.ts +7 -0
  81. package/src/utils/openrouter-base-url.ts +28 -0
  82. package/src/workflows/executors/raw-llm.ts +2 -1
  83. package/src/workflows/executors/validate.ts +2 -1
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  resolveSlackUserId
3
- } from "./cli-nf7sadev.js";
4
- import"./cli-srjqn7fd.js";
3
+ } from "./cli-gahmct71.js";
4
+ import"./cli-7bk7s2sx.js";
5
5
  import {
6
6
  createTaskWithSiblingAwareness
7
- } from "./cli-s8bdcke2.js";
7
+ } from "./cli-p8qcm631.js";
8
8
  import {
9
9
  buildCancelledBlocks,
10
10
  getTaskLink
@@ -19,9 +19,9 @@ import {
19
19
  init_context_key,
20
20
  init_db,
21
21
  slackContextKey
22
- } from "./cli-0df2g86x.js";
22
+ } from "./cli-2846g99z.js";
23
23
  import"./cli-z2zcxes1.js";
24
- import"./cli-46etyprn.js";
24
+ import"./cli-dn5ycmtw.js";
25
25
  import"./cli-4j2mrzag.js";
26
26
  import"./cli-bw80ck94.js";
27
27
  import"./cli-xz9aq0rf.js";
@@ -3,15 +3,15 @@ import {
3
3
  initSlackApp,
4
4
  startSlackApp,
5
5
  stopSlackApp
6
- } from "./cli-3b1ayz83.js";
6
+ } from "./cli-dwqakg2b.js";
7
7
  import"./cli-rkndnn90.js";
8
8
  import"./cli-b0p7rfnd.js";
9
9
  import"./cli-ma04faw5.js";
10
10
  import"./cli-wspgs9bt.js";
11
11
  import"./cli-dh55d5fg.js";
12
- import"./cli-0df2g86x.js";
12
+ import"./cli-2846g99z.js";
13
13
  import"./cli-z2zcxes1.js";
14
- import"./cli-46etyprn.js";
14
+ import"./cli-dn5ycmtw.js";
15
15
  import"./cli-4j2mrzag.js";
16
16
  import"./cli-bw80ck94.js";
17
17
  import"./cli-xz9aq0rf.js";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  bufferThreadMessage,
3
3
  wasEventSeen
4
- } from "./cli-4pfweq4x.js";
4
+ } from "./cli-yy9sm7c1.js";
5
5
  import {
6
6
  hasOtherUserMention
7
- } from "./cli-g9vva2qh.js";
7
+ } from "./cli-kx7vsvg0.js";
8
8
  import {
9
9
  resolveSlackUserId,
10
10
  rewriteSlackMentions
11
- } from "./cli-nf7sadev.js";
12
- import"./cli-srjqn7fd.js";
11
+ } from "./cli-gahmct71.js";
12
+ import"./cli-7bk7s2sx.js";
13
13
  import {
14
14
  createTaskWithSiblingAwareness
15
- } from "./cli-s8bdcke2.js";
15
+ } from "./cli-p8qcm631.js";
16
16
  import {
17
17
  require_dist
18
- } from "./cli-3b1ayz83.js";
18
+ } from "./cli-dwqakg2b.js";
19
19
  import"./cli-rkndnn90.js";
20
20
  import"./cli-b0p7rfnd.js";
21
21
  import"./cli-ma04faw5.js";
@@ -30,9 +30,9 @@ import {
30
30
  init_resolver,
31
31
  resolveTemplate,
32
32
  slackContextKey
33
- } from "./cli-0df2g86x.js";
33
+ } from "./cli-2846g99z.js";
34
34
  import"./cli-z2zcxes1.js";
35
- import"./cli-46etyprn.js";
35
+ import"./cli-dn5ycmtw.js";
36
36
  import"./cli-4j2mrzag.js";
37
37
  import"./cli-bw80ck94.js";
38
38
  import"./cli-xz9aq0rf.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  embedScript,
3
3
  embeddingProvider
4
- } from "./cli-5hpvd15x.js";
5
- import"./cli-3fxqwfh3.js";
4
+ } from "./cli-yyqpn0gc.js";
5
+ import"./cli-9hewdgzb.js";
6
6
  import"./cli-q25ejbyn.js";
7
7
  import {
8
8
  getDb,
9
9
  init_db
10
- } from "./cli-0df2g86x.js";
10
+ } from "./cli-2846g99z.js";
11
11
  import"./cli-z2zcxes1.js";
12
- import"./cli-46etyprn.js";
12
+ import"./cli-dn5ycmtw.js";
13
13
  import"./cli-4j2mrzag.js";
14
14
  import"./cli-bw80ck94.js";
15
15
  import"./cli-xz9aq0rf.js";
@@ -3,14 +3,14 @@ import {
3
3
  getEmbeddingProvider,
4
4
  getMemoryStore,
5
5
  init_constants
6
- } from "./cli-3fxqwfh3.js";
6
+ } from "./cli-9hewdgzb.js";
7
7
  import"./cli-q25ejbyn.js";
8
8
  import {
9
9
  getDb,
10
10
  init_db
11
- } from "./cli-0df2g86x.js";
11
+ } from "./cli-2846g99z.js";
12
12
  import"./cli-z2zcxes1.js";
13
- import"./cli-46etyprn.js";
13
+ import"./cli-dn5ycmtw.js";
14
14
  import"./cli-4j2mrzag.js";
15
15
  import"./cli-bw80ck94.js";
16
16
  import"./cli-xz9aq0rf.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getDb,
3
3
  init_db
4
- } from "./cli-0df2g86x.js";
4
+ } from "./cli-2846g99z.js";
5
5
  import"./cli-z2zcxes1.js";
6
- import"./cli-46etyprn.js";
6
+ import"./cli-dn5ycmtw.js";
7
7
  import {
8
8
  init_secret_scrubber,
9
9
  scrubSecrets
@@ -2,7 +2,7 @@ import {
2
2
  getScriptApiTypes,
3
3
  getScriptMcpTypes,
4
4
  require_typescript
5
- } from "./cli-072t49hf.js";
5
+ } from "./cli-e0zbndab.js";
6
6
  import {
7
7
  deleteSwarmConfigByKey,
8
8
  getAgentById,
@@ -11,7 +11,7 @@ import {
11
11
  getSwarmConfigs,
12
12
  init_db,
13
13
  upsertSwarmConfig
14
- } from "./cli-0df2g86x.js";
14
+ } from "./cli-2846g99z.js";
15
15
  import {
16
16
  init_secret_scrubber,
17
17
  scrubSecrets
@@ -21,6 +21,10 @@ import {
21
21
  import {
22
22
  applyReasoningEffort
23
23
  } from "./cli-e61fs2hp.js";
24
+ import {
25
+ DEFAULT_OPENROUTER_BASE_URL,
26
+ getOpenRouterBaseUrl
27
+ } from "./cli-3dpj7atn.js";
24
28
  import {
25
29
  init_credentials,
26
30
  validateOpencodeCredentials
@@ -1646,6 +1650,21 @@ async function readSpawnOutput(stream) {
1646
1650
  function formatUnknownError(err) {
1647
1651
  return err instanceof Error ? err.message : String(err);
1648
1652
  }
1653
+ function applyOpenRouterBaseUrlOverride(opencodeConfig, env = process.env) {
1654
+ const openRouterBaseUrl = getOpenRouterBaseUrl(env);
1655
+ if (openRouterBaseUrl === DEFAULT_OPENROUTER_BASE_URL)
1656
+ return;
1657
+ opencodeConfig.provider = {
1658
+ ...opencodeConfig.provider,
1659
+ openrouter: {
1660
+ ...opencodeConfig.provider?.openrouter,
1661
+ options: {
1662
+ ...opencodeConfig.provider?.openrouter?.options,
1663
+ baseURL: openRouterBaseUrl
1664
+ }
1665
+ }
1666
+ };
1667
+ }
1649
1668
  async function refreshOpenRouterModelCache(opencodeConfig, configFilePath, dataHomePath) {
1650
1669
  const binary = process.env.OPENCODE_BINARY || "opencode";
1651
1670
  const proc = Bun.spawn([binary, "models", "--refresh", "openrouter"], {
@@ -2072,6 +2091,7 @@ class OpencodeAdapter {
2072
2091
  }
2073
2092
  };
2074
2093
  }
2094
+ applyOpenRouterBaseUrlOverride(opencodeConfig, config.env ?? process.env);
2075
2095
  try {
2076
2096
  await Bun.write(configFilePath, JSON.stringify(opencodeConfig, null, 2));
2077
2097
  } catch {}
@@ -2081,13 +2101,18 @@ class OpencodeAdapter {
2081
2101
  SWARM_API_KEY: process.env.SWARM_API_KEY,
2082
2102
  SWARM_AGENT_ID: process.env.SWARM_AGENT_ID,
2083
2103
  SWARM_TASK_ID: process.env.SWARM_TASK_ID,
2084
- SWARM_IS_LEAD: process.env.SWARM_IS_LEAD
2104
+ SWARM_IS_LEAD: process.env.SWARM_IS_LEAD,
2105
+ OPENROUTER_BASE_URL: process.env.OPENROUTER_BASE_URL
2085
2106
  };
2086
2107
  process.env.SWARM_API_URL = config.apiUrl;
2087
2108
  process.env.SWARM_API_KEY = config.apiKey;
2088
2109
  process.env.SWARM_AGENT_ID = config.agentId;
2089
2110
  process.env.SWARM_TASK_ID = config.taskId;
2090
2111
  process.env.SWARM_IS_LEAD = config.role === "lead" ? "true" : "false";
2112
+ const spawnOpenRouterBaseUrl = getOpenRouterBaseUrl(config.env ?? process.env);
2113
+ if (spawnOpenRouterBaseUrl !== DEFAULT_OPENROUTER_BASE_URL) {
2114
+ process.env.OPENROUTER_BASE_URL = spawnOpenRouterBaseUrl;
2115
+ }
2091
2116
  process.env.CONTEXT_MODE_EXTERNAL_MCP_NUDGE_EVERY = CTX_MODE_NUDGE_EVERY;
2092
2117
  const prevOpencodeConfig = process.env.OPENCODE_CONFIG;
2093
2118
  process.env.OPENCODE_CONFIG = configFilePath;
@@ -2198,4 +2223,4 @@ class OpencodeAdapter {
2198
2223
  }
2199
2224
  }
2200
2225
 
2201
- export { checkOpencodeCredentials, _setOpenRouterModelCacheRefreshForTests, resolveContextModePluginPath, OpencodeSession, OpencodeAdapter };
2226
+ export { checkOpencodeCredentials, applyOpenRouterBaseUrlOverride, _setOpenRouterModelCacheRefreshForTests, resolveContextModePluginPath, OpencodeSession, OpencodeAdapter };
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  init_package,
7
7
  package_default
8
- } from "./cli-46etyprn.js";
8
+ } from "./cli-dn5ycmtw.js";
9
9
  import {
10
10
  init_secret_scrubber,
11
11
  scrubSecrets
@@ -0,0 +1,11 @@
1
+ // src/utils/openrouter-base-url.ts
2
+ var DEFAULT_OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
3
+ function getOpenRouterBaseUrl(env = process.env) {
4
+ const raw = env.OPENROUTER_BASE_URL;
5
+ if (typeof raw === "string" && raw.trim().length > 0) {
6
+ return raw.trim().replace(/\/+$/, "");
7
+ }
8
+ return DEFAULT_OPENROUTER_BASE_URL;
9
+ }
10
+
11
+ export { DEFAULT_OPENROUTER_BASE_URL, getOpenRouterBaseUrl };
@@ -4,15 +4,15 @@ import {
4
4
  handleScheduleTrigger,
5
5
  runScript,
6
6
  startWorkflowExecution
7
- } from "./cli-95rbe11h.js";
7
+ } from "./cli-avxs2rp9.js";
8
8
  import {
9
9
  getScript,
10
10
  getScriptApiConnectionDescriptors,
11
11
  getScriptMcpConnectionDescriptors
12
- } from "./cli-072t49hf.js";
12
+ } from "./cli-e0zbndab.js";
13
13
  import {
14
14
  createTaskWithSiblingAwareness
15
- } from "./cli-s8bdcke2.js";
15
+ } from "./cli-p8qcm631.js";
16
16
  import {
17
17
  getDb,
18
18
  getDueScheduledTasks,
@@ -24,7 +24,7 @@ import {
24
24
  scheduleContextKey,
25
25
  telemetry,
26
26
  updateScheduledTask
27
- } from "./cli-0df2g86x.js";
27
+ } from "./cli-2846g99z.js";
28
28
  import {
29
29
  __commonJS,
30
30
  __require,
@@ -7,7 +7,7 @@ import {
7
7
  init_date_utils,
8
8
  init_db,
9
9
  normalizeDateRequired
10
- } from "./cli-0df2g86x.js";
10
+ } from "./cli-2846g99z.js";
11
11
 
12
12
  // src/be/db-queries/oauth.ts
13
13
  init_crypto();
@@ -4,7 +4,7 @@ import {
4
4
  incrKv,
5
5
  init_db,
6
6
  upsertKv
7
- } from "./cli-0df2g86x.js";
7
+ } from "./cli-2846g99z.js";
8
8
 
9
9
  // src/be/users.ts
10
10
  init_db();
@@ -6,7 +6,7 @@ import {
6
6
  getDb,
7
7
  init_db,
8
8
  isSqliteVecAvailable
9
- } from "./cli-0df2g86x.js";
9
+ } from "./cli-2846g99z.js";
10
10
  import {
11
11
  __esm,
12
12
  __export,
@@ -22,12 +22,12 @@ function numEnv(key, fallback) {
22
22
  return Number.isNaN(parsed) ? fallback : parsed;
23
23
  }
24
24
  function isHybridSearchEnabled() {
25
- const val = process.env.MEMORY_HYBRID_SEARCH ?? "0";
26
- return val === "1" || val.toLowerCase() === "true";
25
+ const val = process.env.MEMORY_HYBRID_SEARCH?.trim().toLowerCase();
26
+ return val !== "0" && val !== "false";
27
27
  }
28
28
  function isGraphExpansionEnabled() {
29
- const val = process.env.MEMORY_GRAPH_EXPANSION ?? "0";
30
- return val === "1" || val.toLowerCase() === "true";
29
+ const val = process.env.MEMORY_GRAPH_EXPANSION?.trim().toLowerCase();
30
+ return val !== "0" && val !== "false";
31
31
  }
32
32
  var TTL_DEFAULTS, GLOBAL_HALF_LIFE_OVERRIDE, GLOBAL_HALF_LIFE, RECENCY_DECAY_HALF_LIFE, RECENCY_DECAY_HALF_LIFE_DAYS, SOURCE_QUALITY_MULTIPLIER, MIN_SIMILARITY, ACCESS_BOOST_MAX_MULTIPLIER, ACCESS_BOOST_RECENCY_WINDOW_HOURS, CANDIDATE_SET_MULTIPLIER, EMBEDDING_DIMENSIONS, DEFAULT_EMBEDDING_MODEL = "openai/text-embedding-3-small", PROTECTED_SOURCES;
33
33
  var init_constants = __esm(() => {
@@ -1,10 +1,13 @@
1
1
  import {
2
2
  getApiKey
3
3
  } from "./cli-f14fvzag.js";
4
+ import {
5
+ getOpenRouterBaseUrl
6
+ } from "./cli-3dpj7atn.js";
4
7
  import {
5
8
  ensureAuthorizationTokenOrThrow,
6
9
  oauthAppRowToProviderConfig
7
- } from "./cli-tv7vekye.js";
10
+ } from "./cli-qfh6pmvm.js";
8
11
  import {
9
12
  getScript,
10
13
  getScriptApiConnectionDescriptors,
@@ -12,15 +15,15 @@ import {
12
15
  getScriptVersion,
13
16
  listRelationalCredentialBindings,
14
17
  validateScriptImports
15
- } from "./cli-072t49hf.js";
18
+ } from "./cli-e0zbndab.js";
16
19
  import {
17
20
  getAuthorizationById,
18
21
  getOAuthApp,
19
22
  getOAuthAppById
20
- } from "./cli-1728qh70.js";
23
+ } from "./cli-5jd04m23.js";
21
24
  import {
22
25
  withSiblingAwareness
23
- } from "./cli-s8bdcke2.js";
26
+ } from "./cli-p8qcm631.js";
24
27
  import {
25
28
  getAppUrl
26
29
  } from "./cli-dh55d5fg.js";
@@ -74,7 +77,7 @@ import {
74
77
  updateWorkflowRun,
75
78
  updateWorkflowRunStep,
76
79
  workflowContextKey
77
- } from "./cli-0df2g86x.js";
80
+ } from "./cli-2846g99z.js";
78
81
  import {
79
82
  init_secret_scrubber,
80
83
  isSensitiveKey,
@@ -2620,7 +2623,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
2620
2623
  }
2621
2624
  if (notification.channel === "slack") {
2622
2625
  try {
2623
- const { getSlackApp } = await import("./app-skbty91x.js");
2626
+ const { getSlackApp } = await import("./app-9gfdk9me.js");
2624
2627
  const slackApp = getSlackApp();
2625
2628
  if (!slackApp) {
2626
2629
  console.warn("[HITL] Slack not initialized — cannot send notification");
@@ -2734,7 +2737,7 @@ class NotifyExecutor extends BaseExecutor {
2734
2737
  }
2735
2738
  }
2736
2739
  case "slack": {
2737
- const { getSlackApp } = await import("./app-skbty91x.js");
2740
+ const { getSlackApp } = await import("./app-9gfdk9me.js");
2738
2741
  const app = getSlackApp();
2739
2742
  if (!app) {
2740
2743
  return {
@@ -2859,7 +2862,7 @@ async function executeRawLlm(config) {
2859
2862
  try {
2860
2863
  const { createOpenAI } = await import("./index-2dgfj9av.js");
2861
2864
  const openrouter = createOpenAI({
2862
- baseURL: "https://openrouter.ai/api/v1",
2865
+ baseURL: getOpenRouterBaseUrl(),
2863
2866
  apiKey: process.env.OPENROUTER_API_KEY
2864
2867
  });
2865
2868
  const model = openrouter(modelName);
@@ -3625,7 +3628,7 @@ class ValidateExecutor extends BaseExecutor {
3625
3628
  const { createOpenAI } = await import("./index-2dgfj9av.js");
3626
3629
  const { generateObject, jsonSchema } = await import("./index-t2snazez.js");
3627
3630
  const openrouter = createOpenAI({
3628
- baseURL: "https://openrouter.ai/api/v1",
3631
+ baseURL: getOpenRouterBaseUrl(),
3629
3632
  apiKey: process.env.OPENROUTER_API_KEY
3630
3633
  });
3631
3634
  const { object } = await generateObject({
@@ -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.121.0",
10
+ version: "1.121.1",
11
11
  description: "Multi-agent orchestration for Claude Code, Codex, Gemini CLI, and other AI coding assistants",
12
12
  license: "MIT",
13
13
  author: "desplega.sh <contact@desplega.sh>",
@@ -27,7 +27,7 @@ import {
27
27
  getTaskById,
28
28
  init_db,
29
29
  setSlackMessageTracking
30
- } from "./cli-0df2g86x.js";
30
+ } from "./cli-2846g99z.js";
31
31
  import {
32
32
  require_receiver,
33
33
  require_sender,
@@ -55073,13 +55073,13 @@ async function initSlackApp() {
55073
55073
  socketMode: true,
55074
55074
  logLevel: import_bolt.LogLevel.DEBUG
55075
55075
  });
55076
- const { registerMessageHandler } = await import("./handlers-fmfe2343.js");
55077
- const { registerCommandHandler } = await import("./commands-cxxye5e4.js");
55078
- const { registerActionHandlers } = await import("./actions-mwshtkf7.js");
55076
+ const { registerMessageHandler } = await import("./handlers-fxvqnp6s.js");
55077
+ const { registerCommandHandler } = await import("./commands-hty4156r.js");
55078
+ const { registerActionHandlers } = await import("./actions-99h2dh5e.js");
55079
55079
  registerMessageHandler(app);
55080
55080
  registerCommandHandler(app);
55081
55081
  registerActionHandlers(app);
55082
- const { createAssistant } = await import("./assistant-tg7dhfj8.js");
55082
+ const { createAssistant } = await import("./assistant-mabq9kz7.js");
55083
55083
  app.assistant(createAssistant());
55084
55084
  return app;
55085
55085
  }
@@ -3,7 +3,7 @@ import {
3
3
  } from "./cli-jkhwmmgg.js";
4
4
  import {
5
5
  embedScript
6
- } from "./cli-5hpvd15x.js";
6
+ } from "./cli-yyqpn0gc.js";
7
7
  import {
8
8
  calculatePKCECodeChallenge,
9
9
  generateRandomCodeVerifier,
@@ -12,7 +12,7 @@ import {
12
12
  getOAuthAppById,
13
13
  updateAuthorizationTokens,
14
14
  upsertAuthorization
15
- } from "./cli-1728qh70.js";
15
+ } from "./cli-5jd04m23.js";
16
16
  import {
17
17
  computeContentHash,
18
18
  decryptSecret,
@@ -28,7 +28,7 @@ import {
28
28
  normalizeDateRequired,
29
29
  placeholderForConfigKey,
30
30
  upsertSwarmConfig
31
- } from "./cli-0df2g86x.js";
31
+ } from "./cli-2846g99z.js";
32
32
  import {
33
33
  init_secret_scrubber,
34
34
  refreshSecretScrubberCache,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_package,
3
3
  package_default
4
- } from "./cli-46etyprn.js";
4
+ } from "./cli-dn5ycmtw.js";
5
5
 
6
6
  // src/commands/shared/client-config.ts
7
7
  init_package();
@@ -4,12 +4,12 @@ import {
4
4
  linkIdentity,
5
5
  recordUnmappedIdentity,
6
6
  resolveIdentity
7
- } from "./cli-srjqn7fd.js";
7
+ } from "./cli-7bk7s2sx.js";
8
8
  import {
9
9
  getKv,
10
10
  init_db,
11
11
  upsertKv
12
- } from "./cli-0df2g86x.js";
12
+ } from "./cli-2846g99z.js";
13
13
 
14
14
  // src/slack/enrich.ts
15
15
  init_db();
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  getDb,
6
6
  init_db
7
- } from "./cli-0df2g86x.js";
7
+ } from "./cli-2846g99z.js";
8
8
 
9
9
  // src/be/rbac-roles.ts
10
10
  init_db();
@@ -3,7 +3,7 @@ import {
3
3
  getAgentWorkingOnThread,
4
4
  getAllAgents,
5
5
  init_db
6
- } from "./cli-0df2g86x.js";
6
+ } from "./cli-2846g99z.js";
7
7
 
8
8
  // src/slack/router.ts
9
9
  init_db();
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  checkCodexCredentials
3
- } from "./cli-7pt9sc83.js";
3
+ } from "./cli-zweca3q3.js";
4
4
  import {
5
5
  checkClaudeManagedCredentials
6
6
  } from "./cli-5c4327dx.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./cli-tyfxrrdd.js";
10
10
  import {
11
11
  checkOpencodeCredentials
12
- } from "./cli-6s3ytc5x.js";
12
+ } from "./cli-16dv125e.js";
13
13
  import {
14
14
  initOtel,
15
15
  injectTraceContext,
@@ -19,7 +19,7 @@ import {
19
19
  withSpan,
20
20
  withSpanContext,
21
21
  writeSkillsToFilesystem
22
- } from "./cli-gdpx70nc.js";
22
+ } from "./cli-yhwn2vjm.js";
23
23
  import {
24
24
  authJsonToCredentialSelection,
25
25
  credentialsToAuthJson,
@@ -41,13 +41,16 @@ import {
41
41
  import {
42
42
  ensure,
43
43
  initialize
44
- } from "./cli-vg3zrw6h.js";
44
+ } from "./cli-3t4nvx1x.js";
45
45
  import {
46
46
  validateJsonSchema
47
- } from "./cli-95rbe11h.js";
47
+ } from "./cli-avxs2rp9.js";
48
48
  import {
49
49
  getApiKey
50
50
  } from "./cli-f14fvzag.js";
51
+ import {
52
+ getOpenRouterBaseUrl
53
+ } from "./cli-3dpj7atn.js";
51
54
  import {
52
55
  contentSha256,
53
56
  init_profile_sync,
@@ -80,7 +83,7 @@ import {
80
83
  resolveTaskModelSelection,
81
84
  resolveTemplateAsync,
82
85
  telemetry
83
- } from "./cli-0df2g86x.js";
86
+ } from "./cli-2846g99z.js";
84
87
  import {
85
88
  init_credentials,
86
89
  resolveCredentialPools
@@ -458,11 +461,11 @@ async function createProviderAdapter(provider) {
458
461
  return new ClaudeAdapter;
459
462
  }
460
463
  case "pi": {
461
- const { PiMonoAdapter } = await import("./pi-mono-adapter-ke789738.js");
464
+ const { PiMonoAdapter } = await import("./pi-mono-adapter-k3z6e5fn.js");
462
465
  return new PiMonoAdapter;
463
466
  }
464
467
  case "codex": {
465
- const { CodexAdapter } = await import("./codex-adapter-mmy741zd.js");
468
+ const { CodexAdapter } = await import("./codex-adapter-0kv2meed.js");
466
469
  return new CodexAdapter;
467
470
  }
468
471
  case "claude-managed": {
@@ -474,7 +477,7 @@ async function createProviderAdapter(provider) {
474
477
  return new DevinAdapter;
475
478
  }
476
479
  case "opencode": {
477
- const { OpencodeAdapter } = await import("./opencode-adapter-h6rkxwrk.js");
480
+ const { OpencodeAdapter } = await import("./opencode-adapter-s3nhtp9m.js");
478
481
  return new OpencodeAdapter;
479
482
  }
480
483
  default:
@@ -1122,7 +1125,7 @@ async function checkProviderCredentials(provider, env, opts) {
1122
1125
  case "opencode":
1123
1126
  return checkOpencodeCredentials(env, opts);
1124
1127
  case "pi": {
1125
- const { checkPiMonoCredentials } = await import("./pi-mono-adapter-ke789738.js");
1128
+ const { checkPiMonoCredentials } = await import("./pi-mono-adapter-k3z6e5fn.js");
1126
1129
  return checkPiMonoCredentials(env, opts);
1127
1130
  }
1128
1131
  default:
@@ -1188,7 +1191,7 @@ async function checkOpenAiApiKey(apiKey) {
1188
1191
  };
1189
1192
  }
1190
1193
  async function checkOpenRouter(apiKey) {
1191
- const r = await timedFetch("https://openrouter.ai/api/v1/models", {
1194
+ const r = await timedFetch(`${getOpenRouterBaseUrl()}/models`, {
1192
1195
  method: "GET",
1193
1196
  headers: { Authorization: `Bearer ${apiKey}` }
1194
1197
  });
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  buildModelsDevSeedRows
3
- } from "./cli-ghq3v4c9.js";
3
+ } from "./cli-w4crd8gx.js";
4
4
  import {
5
5
  createLogEntry,
6
6
  getActivePricingRow,
7
7
  getDb,
8
8
  init_db,
9
9
  insertPricingRow
10
- } from "./cli-0df2g86x.js";
10
+ } from "./cli-2846g99z.js";
11
11
  import {
12
12
  init_secret_scrubber,
13
13
  scrubSecrets
@@ -3,7 +3,7 @@ import {
3
3
  getAgentById,
4
4
  getInProgressTasksByContextKey,
5
5
  init_db
6
- } from "./cli-0df2g86x.js";
6
+ } from "./cli-2846g99z.js";
7
7
 
8
8
  // src/tasks/sibling-awareness.ts
9
9
  init_db();
@@ -11,7 +11,7 @@ import {
11
11
  markAuthorizationRefreshFailed,
12
12
  releaseOAuthRefreshLock,
13
13
  updateAuthorizationTokens
14
- } from "./cli-1728qh70.js";
14
+ } from "./cli-5jd04m23.js";
15
15
  import {
16
16
  init_secret_scrubber,
17
17
  registerVolatileSecret,
@@ -18,7 +18,7 @@ import {
18
18
  init_templates1 as init_templates,
19
19
  normalizeDateRequired,
20
20
  resolveTemplate
21
- } from "./cli-0df2g86x.js";
21
+ } from "./cli-2846g99z.js";
22
22
 
23
23
  // src/be/db-queries/tracker.ts
24
24
  init_date_utils();