@desplega.ai/agent-swarm 1.107.1 → 1.108.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 (120) hide show
  1. package/README.md +2 -2
  2. package/dist/{actions-0a8stf21.js → actions-0rszpr51.js} +9 -8
  3. package/dist/{app-bzfks2d1.js → app-0rchrsgj.js} +6 -5
  4. package/dist/{assistant-609ad3tq.js → assistant-81233cgs.js} +12 -11
  5. package/dist/{boot-reembed-zkxqahga.js → boot-reembed-m4fdfvde.js} +6 -6
  6. package/dist/{boot-reembed-b0e34fya.js → boot-reembed-rcfexjee.js} +5 -5
  7. package/dist/{boot-scrub-logs-b8rr0zdz.js → boot-scrub-logs-4r9w8ep9.js} +3 -3
  8. package/dist/{claude-adapter-hw0wsvpj.js → claude-adapter-mma9a1yr.js} +2 -2
  9. package/dist/{claude-managed-adapter-vj9kzegz.js → claude-managed-adapter-pv2nbqy4.js} +2 -2
  10. package/dist/{cli-09rxrad0.js → cli-1z7048dy.js} +1 -1
  11. package/dist/{cli-4r9m8f3t.js → cli-2fc97xm5.js} +1 -1
  12. package/dist/{cli-jk4tj5m6.js → cli-2r7s8jhp.js} +1 -1
  13. package/dist/{cli-3pp1362w.js → cli-4j2mrzag.js} +1 -0
  14. package/dist/{cli-0fvvg222.js → cli-4nc1v1ez.js} +3 -3
  15. package/dist/{cli-g9jtrzqn.js → cli-5cv1m3gd.js} +3 -3
  16. package/dist/{cli-z92pkwzn.js → cli-6xd0bvf8.js} +4 -17
  17. package/dist/{cli-r28xcyhw.js → cli-9aqwqmyw.js} +2 -2
  18. package/dist/{cli-bk526b46.js → cli-a0t7vapf.js} +1 -1
  19. package/dist/{cli-nbbsaxgb.js → cli-a9ycng51.js} +23 -20
  20. package/dist/{cli-njbznqnh.js → cli-awex6rqa.js} +1 -1
  21. package/dist/{cli-ft53b49j.js → cli-cb4yzbvr.js} +6 -6
  22. package/dist/{cli-6x9842b5.js → cli-czc8mmc6.js} +13 -5
  23. package/dist/{cli-vg4rpzka.js → cli-dr8bpgf0.js} +1 -1
  24. package/dist/{cli-khcv8aqa.js → cli-dvn23403.js} +1 -1
  25. package/dist/{cli-ykd4a9nc.js → cli-frbw04sq.js} +1 -1
  26. package/dist/{cli-byh4fpv6.js → cli-h53vbe8k.js} +1 -1
  27. package/dist/{cli-kjfs7t6m.js → cli-hz7jggwp.js} +1 -1
  28. package/dist/{cli-cddy6663.js → cli-m0j9g47t.js} +309 -2
  29. package/dist/{cli-ssrekyyz.js → cli-mq1zkwmr.js} +3 -3
  30. package/dist/{cli-vpy2ykv9.js → cli-q0ea86r9.js} +5 -5
  31. package/dist/{cli-3j01d33e.js → cli-q25ejbyn.js} +1 -1
  32. package/dist/{cli-a5y6jw3y.js → cli-qcw09hr8.js} +1 -1
  33. package/dist/{cli-bbywzv1h.js → cli-r48tdxbv.js} +75 -30
  34. package/dist/{cli-6k4tfbz1.js → cli-thc24d4s.js} +6 -6
  35. package/dist/{cli-qr5dg0hn.js → cli-vzdjbf7f.js} +5 -11
  36. package/dist/{cli-qd6pvqyx.js → cli-w6zp4qcx.js} +1 -1
  37. package/dist/cli-wspgs9bt.js +27 -0
  38. package/dist/{cli-pe7daxs4.js → cli-xcty7st9.js} +3 -3
  39. package/dist/{cli-85dpqvhe.js → cli-xx2e6rpj.js} +3 -3
  40. package/dist/{cli-07ztw3qw.js → cli-y8py1s7d.js} +86 -10
  41. package/dist/{cli-sh7cxxef.js → cli-zh0zc88x.js} +4 -4
  42. package/dist/cli.js +23 -15
  43. package/dist/{codex-adapter-sdqdznk1.js → codex-adapter-ebs12jef.js} +2 -2
  44. package/dist/{codex-session-runner-t8jgxf6c.js → codex-session-runner-3bx0b1hn.js} +2 -2
  45. package/dist/{commands-d0taq40d.js → commands-rhnr6ekp.js} +3 -3
  46. package/dist/{db-vtvke5z0.js → db-9b4nhwt8.js} +7 -3
  47. package/dist/{e2b-xb3rhzb1.js → e2b-2s4psnbf.js} +1 -1
  48. package/dist/{handlers-mezjqnv9.js → handlers-exza1nv9.js} +12 -11
  49. package/dist/{hook-93j171n5.js → hook-erz5hmx3.js} +3 -3
  50. package/dist/{http-p6cd3qsn.js → http-hpjpkat2.js} +930 -54
  51. package/dist/{index-jzcmg0v3.js → index-n2t8g26e.js} +12 -11
  52. package/dist/{index-sehyj6pr.js → index-takxjn9f.js} +11 -25
  53. package/dist/{index-qd5zq03s.js → index-ve59rfv2.js} +9 -9
  54. package/dist/{index-516gja9z.js → index-zbbfkz52.js} +10 -10
  55. package/dist/{keepalive-e6f2s1gm.js → keepalive-sy9ge11x.js} +5 -5
  56. package/dist/{lead-7d5kjkha.js → lead-kanxwtfj.js} +26 -25
  57. package/dist/{maintenance-yzwmptty.js → maintenance-5b5f4yr3.js} +6 -6
  58. package/dist/{onboard-bgfn21x5.js → onboard-00fgv018.js} +2 -2
  59. package/dist/{opencode-adapter-5jxw9cv8.js → opencode-adapter-mqsxr170.js} +2 -2
  60. package/dist/{otel-impl-z0s291n2.js → otel-impl-s0pfpd9q.js} +2 -2
  61. package/dist/{pi-mono-adapter-e1dn8qh3.js → pi-mono-adapter-ayr3akk8.js} +1 -1
  62. package/dist/{pricing-refresh-9gsbd6k9.js → pricing-refresh-0fw4v1j0.js} +5 -5
  63. package/dist/{seed-pricing-037064at.js → seed-pricing-z88nemdf.js} +4 -4
  64. package/dist/{setup-y9110edr.js → setup-e09wnnsm.js} +2 -2
  65. package/dist/{worker-v2wr6ffm.js → worker-w01ptydp.js} +26 -25
  66. package/dist/{x-knyx9vek.js → x-6mg4kfpe.js} +2 -2
  67. package/openapi.json +355 -2
  68. package/package.json +13 -5
  69. package/plugin/skills/download-task-attachment/SKILL.md +59 -0
  70. package/src/be/db.ts +142 -2
  71. package/src/be/migrations/106_task_attachments_provider_agnostic.sql +29 -0
  72. package/src/be/seed/agent-fs-provision.ts +470 -0
  73. package/src/be/seed/registry.ts +2 -1
  74. package/src/be/seed-scripts/catalog/memory-eval.ts +0 -15
  75. package/src/be/seed-scripts/index.ts +1 -1
  76. package/src/commands/context-preamble.ts +4 -11
  77. package/src/commands/e2b.ts +1 -1
  78. package/src/commands/onboard/compose-generator.ts +1 -1
  79. package/src/commands/onboard/dashboard-url.ts +1 -1
  80. package/src/commands/runner.ts +82 -0
  81. package/src/commands/templates.ts +6 -1
  82. package/src/fs/agent-fs-provider.ts +290 -0
  83. package/src/fs/capabilities.ts +59 -0
  84. package/src/fs/index.ts +5 -0
  85. package/src/fs/local-fs-provider.ts +195 -0
  86. package/src/fs/provider.ts +166 -0
  87. package/src/fs/registry.ts +26 -0
  88. package/src/http/config.ts +19 -7
  89. package/src/http/core.ts +1 -1
  90. package/src/http/fs.ts +492 -0
  91. package/src/http/index.ts +2 -0
  92. package/src/http/pages.ts +2 -2
  93. package/src/http/poll.ts +24 -2
  94. package/src/http/status.ts +22 -0
  95. package/src/providers/pricing-sources.md +1 -1
  96. package/src/providers/reasoning-effort.ts +1 -1
  97. package/src/slack/blocks.ts +3 -17
  98. package/src/tasks/worker-follow-up.ts +2 -10
  99. package/src/telemetry.ts +12 -2
  100. package/src/tests/agent-fs-provision-seeder.test.ts +494 -0
  101. package/src/tests/agents-list-model-display.test.ts +1 -1
  102. package/src/tests/bedrock-model-groups.test.ts +1 -1
  103. package/src/tests/claude-adapter.test.ts +17 -3
  104. package/src/tests/config-api-only-keys.test.ts +106 -0
  105. package/src/tests/fs-provider.test.ts +308 -0
  106. package/src/tests/fs-routes.test.ts +311 -0
  107. package/src/tests/http-api-integration.test.ts +51 -0
  108. package/src/tests/prompt-template-remaining.test.ts +25 -0
  109. package/src/tests/runner-attachments-section.test.ts +55 -0
  110. package/src/tests/slack-attachments-block.test.ts +21 -5
  111. package/src/tests/task-attachments-schema.test.ts +157 -0
  112. package/src/tests/telemetry-init.test.ts +23 -0
  113. package/src/tests/template-recommendations.test.ts +4 -4
  114. package/src/tests/ui-logs-parser.test.ts +1 -1
  115. package/src/tests/use-dismissible-card.test.ts +4 -4
  116. package/src/tools/store-progress.ts +3 -0
  117. package/src/types.ts +8 -0
  118. package/src/utils/secret-scrubber.ts +1 -0
  119. package/src/utils/task-attachment-links.ts +24 -0
  120. package/tsconfig.json +1 -3
package/README.md CHANGED
@@ -139,7 +139,7 @@ Check [our templates](https://templates.agent-swarm.dev) for a quick start.
139
139
  - **Config-driven metrics dashboards** — define read-only SQL widgets, version them, and render them in the dashboard without shipping custom frontend code. [Metrics API →](https://docs.agent-swarm.dev/docs/api-reference/stats)
140
140
  - **DB-backed pages** — agents publish HTML or JSON pages (reports, dashboards, action specs) via the `create_page` MCP tool with public / authed / password modes, version history, view counters, diff helpers, and PDF export. [MCP tools → Pages](https://docs.agent-swarm.dev/docs/reference/mcp-tools#pages-tools)
141
141
  - **KV store** — Redis-like namespaced key/value store with auto-scoped context (Slack thread / PR / Linear issue / page). [MCP tools → KV](https://docs.agent-swarm.dev/docs/reference/mcp-tools#kv-tools)
142
- - **Real-time dashboard** — monitor agents, tasks, and inter-agent chat. [app.agent-swarm.dev →](https://app.agent-swarm.dev)
142
+ - **Real-time dashboard + task attachments** — monitor agents, tasks, and inter-agent chat, and create tasks with uploaded files from the sessions composer. [app.agent-swarm.dev →](https://app.agent-swarm.dev)
143
143
 
144
144
  ## Quick Start
145
145
 
@@ -217,7 +217,7 @@ Missing one? Ask the swarm to build it.
217
217
  Real-time monitoring of agents, tasks, and inter-agent chat. Use the hosted version at [app.agent-swarm.dev](https://app.agent-swarm.dev), or run locally:
218
218
 
219
219
  ```bash
220
- cd ui && bun install && bun run dev
220
+ cd apps/ui && bun install && bun run dev
221
221
  ```
222
222
 
223
223
  Opens at `http://localhost:5274`.
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  resolveSlackUserId
3
- } from "./cli-0fvvg222.js";
4
- import"./cli-khcv8aqa.js";
5
- import"./cli-vg4rpzka.js";
3
+ } from "./cli-4nc1v1ez.js";
4
+ import"./cli-dvn23403.js";
5
+ import"./cli-dr8bpgf0.js";
6
6
  import {
7
7
  buildCancelledBlocks,
8
8
  getTaskLink
9
- } from "./cli-z92pkwzn.js";
9
+ } from "./cli-6xd0bvf8.js";
10
+ import"./cli-wspgs9bt.js";
10
11
  import {
11
12
  createTaskWithSiblingAwareness,
12
13
  slackContextKey
13
- } from "./cli-byh4fpv6.js";
14
+ } from "./cli-h53vbe8k.js";
14
15
  import"./cli-dh55d5fg.js";
15
16
  import {
16
17
  cancelTask,
@@ -18,12 +19,12 @@ import {
18
19
  getLeadAgent,
19
20
  getTaskById,
20
21
  init_db
21
- } from "./cli-07ztw3qw.js";
22
+ } from "./cli-y8py1s7d.js";
22
23
  import"./cli-z2zcxes1.js";
23
24
  import"./cli-q21d49ac.js";
24
25
  import"./cli-anrj584m.js";
25
- import"./cli-6x9842b5.js";
26
- import"./cli-3pp1362w.js";
26
+ import"./cli-czc8mmc6.js";
27
+ import"./cli-4j2mrzag.js";
27
28
  import"./cli-p9swy5t3.js";
28
29
 
29
30
  // src/slack/actions.ts
@@ -3,17 +3,18 @@ import {
3
3
  initSlackApp,
4
4
  startSlackApp,
5
5
  stopSlackApp
6
- } from "./cli-6k4tfbz1.js";
6
+ } from "./cli-thc24d4s.js";
7
7
  import"./cli-rkndnn90.js";
8
8
  import"./cli-b0p7rfnd.js";
9
- import"./cli-z92pkwzn.js";
9
+ import"./cli-6xd0bvf8.js";
10
+ import"./cli-wspgs9bt.js";
10
11
  import"./cli-dh55d5fg.js";
11
- import"./cli-07ztw3qw.js";
12
+ import"./cli-y8py1s7d.js";
12
13
  import"./cli-z2zcxes1.js";
13
14
  import"./cli-q21d49ac.js";
14
15
  import"./cli-anrj584m.js";
15
- import"./cli-6x9842b5.js";
16
- import"./cli-3pp1362w.js";
16
+ import"./cli-czc8mmc6.js";
17
+ import"./cli-4j2mrzag.js";
17
18
  import"./cli-e15jhafb.js";
18
19
  import"./cli-7wmybrt5.js";
19
20
  import"./cli-p9swy5t3.js";
@@ -1,25 +1,26 @@
1
1
  import {
2
2
  bufferThreadMessage,
3
3
  wasEventSeen
4
- } from "./cli-vpy2ykv9.js";
4
+ } from "./cli-q0ea86r9.js";
5
5
  import {
6
6
  hasOtherUserMention
7
- } from "./cli-kjfs7t6m.js";
7
+ } from "./cli-hz7jggwp.js";
8
8
  import {
9
9
  require_dist
10
- } from "./cli-6k4tfbz1.js";
10
+ } from "./cli-thc24d4s.js";
11
11
  import"./cli-rkndnn90.js";
12
12
  import"./cli-b0p7rfnd.js";
13
13
  import {
14
14
  resolveSlackUserId
15
- } from "./cli-0fvvg222.js";
16
- import"./cli-khcv8aqa.js";
17
- import"./cli-vg4rpzka.js";
18
- import"./cli-z92pkwzn.js";
15
+ } from "./cli-4nc1v1ez.js";
16
+ import"./cli-dvn23403.js";
17
+ import"./cli-dr8bpgf0.js";
18
+ import"./cli-6xd0bvf8.js";
19
+ import"./cli-wspgs9bt.js";
19
20
  import {
20
21
  createTaskWithSiblingAwareness,
21
22
  slackContextKey
22
- } from "./cli-byh4fpv6.js";
23
+ } from "./cli-h53vbe8k.js";
23
24
  import"./cli-dh55d5fg.js";
24
25
  import {
25
26
  getAgentWorkingOnThread,
@@ -28,12 +29,12 @@ import {
28
29
  init_db,
29
30
  init_resolver,
30
31
  resolveTemplate
31
- } from "./cli-07ztw3qw.js";
32
+ } from "./cli-y8py1s7d.js";
32
33
  import"./cli-z2zcxes1.js";
33
34
  import"./cli-q21d49ac.js";
34
35
  import"./cli-anrj584m.js";
35
- import"./cli-6x9842b5.js";
36
- import"./cli-3pp1362w.js";
36
+ import"./cli-czc8mmc6.js";
37
+ import"./cli-4j2mrzag.js";
37
38
  import"./cli-e15jhafb.js";
38
39
  import"./cli-7wmybrt5.js";
39
40
  import {
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  embedScript,
3
3
  embeddingProvider
4
- } from "./cli-ssrekyyz.js";
5
- import"./cli-r28xcyhw.js";
6
- import"./cli-3j01d33e.js";
4
+ } from "./cli-mq1zkwmr.js";
5
+ import"./cli-9aqwqmyw.js";
6
+ import"./cli-q25ejbyn.js";
7
7
  import {
8
8
  getDb,
9
9
  init_db
10
- } from "./cli-07ztw3qw.js";
10
+ } from "./cli-y8py1s7d.js";
11
11
  import"./cli-z2zcxes1.js";
12
12
  import"./cli-q21d49ac.js";
13
13
  import"./cli-anrj584m.js";
14
- import"./cli-6x9842b5.js";
15
- import"./cli-3pp1362w.js";
14
+ import"./cli-czc8mmc6.js";
15
+ import"./cli-4j2mrzag.js";
16
16
  import"./cli-p9swy5t3.js";
17
17
 
18
18
  // src/be/scripts/boot-reembed.ts
@@ -3,17 +3,17 @@ import {
3
3
  getEmbeddingProvider,
4
4
  getMemoryStore,
5
5
  init_constants
6
- } from "./cli-r28xcyhw.js";
7
- import"./cli-3j01d33e.js";
6
+ } from "./cli-9aqwqmyw.js";
7
+ import"./cli-q25ejbyn.js";
8
8
  import {
9
9
  getDb,
10
10
  init_db
11
- } from "./cli-07ztw3qw.js";
11
+ } from "./cli-y8py1s7d.js";
12
12
  import"./cli-z2zcxes1.js";
13
13
  import"./cli-q21d49ac.js";
14
14
  import"./cli-anrj584m.js";
15
- import"./cli-6x9842b5.js";
16
- import"./cli-3pp1362w.js";
15
+ import"./cli-czc8mmc6.js";
16
+ import"./cli-4j2mrzag.js";
17
17
  import"./cli-p9swy5t3.js";
18
18
 
19
19
  // src/be/memory/boot-reembed.ts
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  getDb,
3
3
  init_db
4
- } from "./cli-07ztw3qw.js";
4
+ } from "./cli-y8py1s7d.js";
5
5
  import"./cli-z2zcxes1.js";
6
6
  import"./cli-q21d49ac.js";
7
7
  import"./cli-anrj584m.js";
8
- import"./cli-6x9842b5.js";
8
+ import"./cli-czc8mmc6.js";
9
9
  import {
10
10
  init_secret_scrubber,
11
11
  scrubSecrets
12
- } from "./cli-3pp1362w.js";
12
+ } from "./cli-4j2mrzag.js";
13
13
  import"./cli-p9swy5t3.js";
14
14
 
15
15
  // src/be/boot-scrub-logs.ts
@@ -12,14 +12,14 @@ import {
12
12
  resolveClaudeBinary,
13
13
  resolveClaudeBinaryArgv,
14
14
  resolveClaudeBridgeEnabled
15
- } from "./cli-4r9m8f3t.js";
15
+ } from "./cli-2fc97xm5.js";
16
16
  import"./cli-psrqtw2m.js";
17
17
  import"./cli-tng3131n.js";
18
18
  import"./cli-zm7njwzd.js";
19
19
  import"./cli-tghre7g6.js";
20
20
  import"./cli-tkmm5nf9.js";
21
21
  import"./cli-z2zcxes1.js";
22
- import"./cli-3pp1362w.js";
22
+ import"./cli-4j2mrzag.js";
23
23
  import"./cli-7zd05xb4.js";
24
24
  import"./cli-p9swy5t3.js";
25
25
  export {
@@ -3,13 +3,13 @@ import {
3
3
  checkClaudeManagedCredentials,
4
4
  composeManagedUserMessage,
5
5
  normalizeRepoUrl
6
- } from "./cli-jk4tj5m6.js";
6
+ } from "./cli-2r7s8jhp.js";
7
7
  import"./cli-07er7wrs.js";
8
8
  import"./cli-yv9dttkh.js";
9
9
  import"./cli-d6n0thxw.js";
10
10
  import"./cli-gz9sbyk3.js";
11
11
  import"./cli-tghre7g6.js";
12
- import"./cli-3pp1362w.js";
12
+ import"./cli-4j2mrzag.js";
13
13
  import"./cli-p9swy5t3.js";
14
14
  export {
15
15
  normalizeRepoUrl,
@@ -3,7 +3,7 @@ import {
3
3
  registerVolatileSecret,
4
4
  scrubObject,
5
5
  scrubSecrets
6
- } from "./cli-3pp1362w.js";
6
+ } from "./cli-4j2mrzag.js";
7
7
 
8
8
  // src/x/composio.ts
9
9
  init_secret_scrubber();
@@ -27,7 +27,7 @@ import {
27
27
  import {
28
28
  init_secret_scrubber,
29
29
  scrubSecrets
30
- } from "./cli-3pp1362w.js";
30
+ } from "./cli-4j2mrzag.js";
31
31
  import {
32
32
  require_src
33
33
  } from "./cli-7zd05xb4.js";
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  init_secret_scrubber,
21
21
  scrubSecrets
22
- } from "./cli-3pp1362w.js";
22
+ } from "./cli-4j2mrzag.js";
23
23
 
24
24
  // src/providers/claude-managed-adapter.ts
25
25
  init_secret_scrubber();
@@ -128,6 +128,7 @@ var init_secret_scrubber = __esm(() => {
128
128
  "VERCEL_TOKEN",
129
129
  "RESEND_API_KEY",
130
130
  "AGENTMAIL_API_KEY",
131
+ "API_AGENT_FS_API_KEY",
131
132
  "AGENT_FS_API_KEY",
132
133
  "BUSINESS_USE_API_KEY",
133
134
  "QA_USE_API_KEY",
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  recordUnmappedIdentity
3
- } from "./cli-khcv8aqa.js";
3
+ } from "./cli-dvn23403.js";
4
4
  import {
5
5
  findOrCreateUserByEmail,
6
6
  findUserByExternalId,
7
7
  linkIdentity
8
- } from "./cli-vg4rpzka.js";
8
+ } from "./cli-dr8bpgf0.js";
9
9
  import {
10
10
  getKv,
11
11
  init_db,
12
12
  upsertKv
13
- } from "./cli-07ztw3qw.js";
13
+ } from "./cli-y8py1s7d.js";
14
14
 
15
15
  // src/slack/enrich.ts
16
16
  init_db();
@@ -4,11 +4,11 @@ import {
4
4
  getNextResumeGeneration,
5
5
  getResumeGeneration,
6
6
  repointTrackerSyncBySwarmId
7
- } from "./cli-qr5dg0hn.js";
7
+ } from "./cli-vzdjbf7f.js";
8
8
  import {
9
9
  getExecutorRegistry,
10
10
  recoverIncompleteRuns
11
- } from "./cli-ft53b49j.js";
11
+ } from "./cli-cb4yzbvr.js";
12
12
  import {
13
13
  MAX_EMPTY_POLLS,
14
14
  assignUnassignedTaskPending,
@@ -44,7 +44,7 @@ import {
44
44
  resolveTemplate,
45
45
  supersedeTask,
46
46
  updateAgentStatus
47
- } from "./cli-07ztw3qw.js";
47
+ } from "./cli-y8py1s7d.js";
48
48
 
49
49
  // src/heartbeat/heartbeat.ts
50
50
  init_db();
@@ -1,5 +1,7 @@
1
1
  import {
2
- buildAgentFsLiveUrl,
2
+ taskAttachmentDisplayUrl
3
+ } from "./cli-wspgs9bt.js";
4
+ import {
3
5
  getAppUrl
4
6
  } from "./cli-dh55d5fg.js";
5
7
 
@@ -72,22 +74,7 @@ function cancelActionBlock(taskId) {
72
74
  }
73
75
  var SLACK_ATTACHMENTS_MAX = 20;
74
76
  function resolveAttachmentDisplay(a) {
75
- switch (a.kind) {
76
- case "url":
77
- return a.url ?? "";
78
- case "page":
79
- return a.pageId ? `${getAppUrl()}/pages/${a.pageId}` : "page:";
80
- case "agent-fs": {
81
- const url = buildAgentFsLiveUrl({
82
- path: a.path,
83
- orgId: a.orgId,
84
- driveId: a.driveId
85
- });
86
- return url ?? `agent-fs:${a.path ?? ""}`;
87
- }
88
- case "shared-fs":
89
- return `shared-fs:${a.path ?? ""}`;
90
- }
77
+ return taskAttachmentDisplayUrl(a);
91
78
  }
92
79
  function formatAttachmentsBlockForSlack(attachments) {
93
80
  if (attachments.length === 0)
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  contentSha256,
3
3
  init_profile_sync
4
- } from "./cli-3j01d33e.js";
4
+ } from "./cli-q25ejbyn.js";
5
5
  import {
6
6
  getDb,
7
7
  init_db,
8
8
  isSqliteVecAvailable
9
- } from "./cli-07ztw3qw.js";
9
+ } from "./cli-y8py1s7d.js";
10
10
  import {
11
11
  __esm,
12
12
  __export,
@@ -28,7 +28,7 @@ import {
28
28
  import {
29
29
  init_secret_scrubber,
30
30
  scrubSecrets
31
- } from "./cli-3pp1362w.js";
31
+ } from "./cli-4j2mrzag.js";
32
32
  import {
33
33
  __toESM
34
34
  } from "./cli-p9swy5t3.js";
@@ -2,7 +2,7 @@ import {
2
2
  COMPOSIO_HTTP_METHODS,
3
3
  composioArgsFromParts,
4
4
  executeComposioRequest
5
- } from "./cli-09rxrad0.js";
5
+ } from "./cli-1z7048dy.js";
6
6
  import {
7
7
  LlmRater,
8
8
  REFERENCES_SOURCE_MAX_LENGTH,
@@ -14,13 +14,13 @@ import {
14
14
  getOAuthApp,
15
15
  getOAuthTokens,
16
16
  upsertOAuthApp
17
- } from "./cli-a5y6jw3y.js";
17
+ } from "./cli-qcw09hr8.js";
18
18
  import {
19
19
  startPricingRefreshLoop
20
- } from "./cli-pe7daxs4.js";
20
+ } from "./cli-xcty7st9.js";
21
21
  import {
22
22
  seedPricingFromModelsDev
23
- } from "./cli-njbznqnh.js";
23
+ } from "./cli-awex6rqa.js";
24
24
  import {
25
25
  createTrackerAgentMapping,
26
26
  createTrackerSync,
@@ -35,7 +35,7 @@ import {
35
35
  repointTrackerSyncBySwarmId,
36
36
  updateTrackerSync,
37
37
  updateTrackerSyncSwarmId
38
- } from "./cli-qr5dg0hn.js";
38
+ } from "./cli-vzdjbf7f.js";
39
39
  import {
40
40
  ZodFirstPartyTypeKind,
41
41
  objectType
@@ -45,7 +45,7 @@ import {
45
45
  ensure,
46
46
  require_dist,
47
47
  runScheduleNow
48
- } from "./cli-sh7cxxef.js";
48
+ } from "./cli-zh0zc88x.js";
49
49
  import {
50
50
  TriggerSchemaError,
51
51
  applyDefinitionPatch,
@@ -57,7 +57,7 @@ import {
57
57
  startWorkflowExecution,
58
58
  validateDefinition,
59
59
  validateJsonSchema
60
- } from "./cli-ft53b49j.js";
60
+ } from "./cli-cb4yzbvr.js";
61
61
  import {
62
62
  getApiKey
63
63
  } from "./cli-f14fvzag.js";
@@ -73,7 +73,7 @@ import {
73
73
  setScriptConnectionEnabled,
74
74
  upsertCredentialBinding,
75
75
  upsertScriptConnection
76
- } from "./cli-85dpqvhe.js";
76
+ } from "./cli-xx2e6rpj.js";
77
77
  import {
78
78
  CANDIDATE_SET_MULTIPLIER,
79
79
  getEmbeddingProvider,
@@ -81,16 +81,16 @@ import {
81
81
  init_constants,
82
82
  init_reranker,
83
83
  rerank
84
- } from "./cli-r28xcyhw.js";
84
+ } from "./cli-9aqwqmyw.js";
85
85
  import {
86
86
  createAdditiveBuffer,
87
87
  extractSlackMessageText
88
- } from "./cli-kjfs7t6m.js";
88
+ } from "./cli-hz7jggwp.js";
89
89
  import {
90
90
  getSlackApp,
91
91
  startSlackApp,
92
92
  stopSlackApp
93
- } from "./cli-6k4tfbz1.js";
93
+ } from "./cli-thc24d4s.js";
94
94
  import {
95
95
  findOrCreateUserByEmail,
96
96
  findUserByEmail,
@@ -102,10 +102,10 @@ import {
102
102
  recordIdentityEvent,
103
103
  resolveUserByToken,
104
104
  unlinkIdentity
105
- } from "./cli-vg4rpzka.js";
105
+ } from "./cli-dr8bpgf0.js";
106
106
  import {
107
107
  markdownToSlack
108
- } from "./cli-z92pkwzn.js";
108
+ } from "./cli-6xd0bvf8.js";
109
109
  import {
110
110
  agentContextKey,
111
111
  agentmailContextKey,
@@ -113,7 +113,7 @@ import {
113
113
  createTaskWithSiblingAwareness,
114
114
  githubContextKey,
115
115
  linearContextKey
116
- } from "./cli-byh4fpv6.js";
116
+ } from "./cli-h53vbe8k.js";
117
117
  import {
118
118
  getAppUrl,
119
119
  getMcpBaseUrl,
@@ -342,7 +342,7 @@ import {
342
342
  upsertService,
343
343
  upsertSwarmConfig,
344
344
  validateConfigValue
345
- } from "./cli-07ztw3qw.js";
345
+ } from "./cli-y8py1s7d.js";
346
346
  import {
347
347
  init_zod
348
348
  } from "./cli-q21d49ac.js";
@@ -386,13 +386,13 @@ import {
386
386
  import {
387
387
  init_package,
388
388
  package_default
389
- } from "./cli-6x9842b5.js";
389
+ } from "./cli-czc8mmc6.js";
390
390
  import {
391
391
  init_secret_scrubber,
392
392
  refreshSecretScrubberCache,
393
393
  registerVolatileSecret,
394
394
  scrubSecrets
395
- } from "./cli-3pp1362w.js";
395
+ } from "./cli-4j2mrzag.js";
396
396
  import {
397
397
  init_event_bus,
398
398
  workflowEventBus
@@ -19668,7 +19668,7 @@ async function initOtel(serviceRole = process.env.AGENT_ROLE || "api") {
19668
19668
  return;
19669
19669
  initialized2 = true;
19670
19670
  try {
19671
- const impl = await import("./otel-impl-z0s291n2.js");
19671
+ const impl = await import("./otel-impl-s0pfpd9q.js");
19672
19672
  await impl.boot(serviceRole);
19673
19673
  realWithSpan = impl.withSpan;
19674
19674
  realStartSpan = impl.startSpan;
@@ -30322,6 +30322,9 @@ var registerStoreProgressTool = (server) => {
30322
30322
  url: a.kind === "url" ? a.url : undefined,
30323
30323
  path: a.kind === "agent-fs" || a.kind === "shared-fs" ? a.path : undefined,
30324
30324
  pageId: a.kind === "page" ? a.pageId : undefined,
30325
+ providerId: a.providerId ?? (a.kind === "agent-fs" ? "agent-fs" : undefined),
30326
+ providerKey: a.providerKey ?? (a.kind === "agent-fs" ? a.path : undefined),
30327
+ capabilities: a.capabilities,
30325
30328
  orgId,
30326
30329
  driveId,
30327
30330
  mimeType: a.mimeType,
@@ -32881,7 +32884,7 @@ async function notifySlack(text) {
32881
32884
  return;
32882
32885
  }
32883
32886
  try {
32884
- const { getSlackApp: getSlackApp2 } = await import("./app-bzfks2d1.js");
32887
+ const { getSlackApp: getSlackApp2 } = await import("./app-0rchrsgj.js");
32885
32888
  const app = getSlackApp2();
32886
32889
  if (!app) {
32887
32890
  console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
@@ -32950,7 +32953,7 @@ async function deleteJiraWebhook(webhookId) {
32950
32953
  console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
32951
32954
  }
32952
32955
  async function overwriteWebhookIds(next) {
32953
- const { getDb: getDb2 } = await import("./db-vtvke5z0.js");
32956
+ const { getDb: getDb2 } = await import("./db-9b4nhwt8.js");
32954
32957
  const db = getDb2();
32955
32958
  const txn = db.transaction(() => {
32956
32959
  const row = db.query("SELECT metadata FROM oauth_apps WHERE provider = 'jira'").get();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDb,
3
3
  init_db
4
- } from "./cli-07ztw3qw.js";
4
+ } from "./cli-y8py1s7d.js";
5
5
 
6
6
  // src/be/seed-pricing.ts
7
7
  init_db();
@@ -9,11 +9,11 @@ import {
9
9
  getScriptVersion,
10
10
  listRelationalCredentialBindings,
11
11
  validateScriptImports
12
- } from "./cli-85dpqvhe.js";
12
+ } from "./cli-xx2e6rpj.js";
13
13
  import {
14
14
  withSiblingAwareness,
15
15
  workflowContextKey
16
- } from "./cli-byh4fpv6.js";
16
+ } from "./cli-h53vbe8k.js";
17
17
  import {
18
18
  getAppUrl
19
19
  } from "./cli-dh55d5fg.js";
@@ -62,7 +62,7 @@ import {
62
62
  telemetry,
63
63
  updateWorkflowRun,
64
64
  updateWorkflowRunStep
65
- } from "./cli-07ztw3qw.js";
65
+ } from "./cli-y8py1s7d.js";
66
66
  import {
67
67
  init_zod
68
68
  } from "./cli-q21d49ac.js";
@@ -75,7 +75,7 @@ import {
75
75
  registerVolatileSecret,
76
76
  scrubObject,
77
77
  scrubSecrets
78
- } from "./cli-3pp1362w.js";
78
+ } from "./cli-4j2mrzag.js";
79
79
  import {
80
80
  init_event_bus,
81
81
  workflowEventBus
@@ -2515,7 +2515,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
2515
2515
  }
2516
2516
  if (notification.channel === "slack") {
2517
2517
  try {
2518
- const { getSlackApp } = await import("./app-bzfks2d1.js");
2518
+ const { getSlackApp } = await import("./app-0rchrsgj.js");
2519
2519
  const slackApp = getSlackApp();
2520
2520
  if (!slackApp) {
2521
2521
  console.warn("[HITL] Slack not initialized — cannot send notification");
@@ -2629,7 +2629,7 @@ class NotifyExecutor extends BaseExecutor {
2629
2629
  }
2630
2630
  }
2631
2631
  case "slack": {
2632
- const { getSlackApp } = await import("./app-bzfks2d1.js");
2632
+ const { getSlackApp } = await import("./app-0rchrsgj.js");
2633
2633
  const app = getSlackApp();
2634
2634
  if (!app) {
2635
2635
  return {
@@ -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.107.1",
10
+ version: "1.108.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>",
@@ -49,12 +49,20 @@ var init_package = __esm(() => {
49
49
  name: "agent-swarm"
50
50
  },
51
51
  packageManager: "bun@1.3.11",
52
- workspaces: ["ui", "templates-ui", "evals", "packages/*"],
52
+ workspaces: [
53
+ "apps/ui",
54
+ "apps/templates-ui",
55
+ "apps/evals",
56
+ "packages/*"
57
+ ],
53
58
  overrides: {
54
59
  react: "19.2.3",
55
60
  "react-dom": "19.2.3"
56
61
  },
57
- trustedDependencies: ["esbuild", "unrs-resolver"],
62
+ trustedDependencies: [
63
+ "esbuild",
64
+ "unrs-resolver"
65
+ ],
58
66
  scripts: {
59
67
  "build:pi-skills": "bun run plugin/build-pi-skills.ts",
60
68
  "build:cli": "bun run scripts/build-cli.ts",
@@ -87,8 +95,8 @@ var init_package = __esm(() => {
87
95
  "start:portless": "portless api.swarm bun --expose-gc src/http.ts",
88
96
  inspector: "bunx @modelcontextprotocol/inspector --transport stdio bun src/stdio.ts",
89
97
  "inspector:http": "bunx @modelcontextprotocol/inspector --transport http https://api.swarm.localhost:1355/mcp",
90
- lint: "biome check src evals",
91
- "lint:fix": "biome check --write src evals",
98
+ lint: "biome check src apps/evals",
99
+ "lint:fix": "biome check --write src apps/evals",
92
100
  format: "biome format --write src",
93
101
  "build:binary": "bun build ./src/cli.tsx --compile --compile-exec-argv='--expose-gc' --target=bun-linux-x64 --outfile ./dist/agent-swarm",
94
102
  "build:binary:arm64": "bun build ./src/cli.tsx --compile --compile-exec-argv='--expose-gc' --target=bun-linux-arm64 --outfile ./dist/agent-swarm",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getDb,
3
3
  init_db
4
- } from "./cli-07ztw3qw.js";
4
+ } from "./cli-y8py1s7d.js";
5
5
 
6
6
  // src/be/users.ts
7
7
  init_db();
@@ -3,7 +3,7 @@ import {
3
3
  incrKv,
4
4
  init_db,
5
5
  upsertKv
6
- } from "./cli-07ztw3qw.js";
6
+ } from "./cli-y8py1s7d.js";
7
7
 
8
8
  // src/be/unmapped-identities.ts
9
9
  init_db();