@desplega.ai/agent-swarm 1.145.0 → 1.146.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 (82) hide show
  1. package/README.md +1 -0
  2. package/dist/{acp-adapter-580t41c0.js → acp-adapter-jnq4612m.js} +20 -3
  3. package/dist/{actions-m662tjng.js → actions-s41xcn3f.js} +8 -8
  4. package/dist/{app-zb3rndm8.js → app-j8bfw3f6.js} +5 -5
  5. package/dist/{assistant-0qt42nzg.js → assistant-dx3ew4d8.js} +10 -10
  6. package/dist/{boot-reembed-072x00vn.js → boot-reembed-jxdz46jp.js} +6 -6
  7. package/dist/{boot-reembed-65zz2smt.js → boot-reembed-x1476agm.js} +7 -7
  8. package/dist/{boot-scrub-logs-yz0ams04.js → boot-scrub-logs-rab9h5bt.js} +4 -4
  9. package/dist/{claude-adapter-paj270y2.js → claude-adapter-ep6qekbm.js} +6 -6
  10. package/dist/{claude-sdk-session-swt80j9z.js → claude-sdk-session-0wp3qrcy.js} +6 -6
  11. package/dist/{cli-fs1kkqgr.js → cli-00kyrp1a.js} +2 -2
  12. package/dist/{cli-7fnkj1hj.js → cli-2zvtzevh.js} +8 -6
  13. package/dist/{cli-123q2get.js → cli-3k2g3kg2.js} +8 -8
  14. package/dist/{cli-jmb7g47h.js → cli-46yck6nj.js} +7 -7
  15. package/dist/{cli-wvp6bvy4.js → cli-4secrq32.js} +1 -1
  16. package/dist/{cli-q34a0e10.js → cli-506z6jqa.js} +1 -1
  17. package/dist/{cli-rs6ec3b9.js → cli-68h2mfrn.js} +3 -3
  18. package/dist/{cli-tqtvj5pt.js → cli-6xwhtc64.js} +1 -1
  19. package/dist/{cli-gzky0gkr.js → cli-a960nkfb.js} +2 -2
  20. package/dist/{cli-m4j6trn4.js → cli-a9bn9svs.js} +2 -2
  21. package/dist/{cli-65vqzz3v.js → cli-ah5hjk49.js} +13 -13
  22. package/dist/{cli-dt553ktb.js → cli-bafd6xnf.js} +1 -1
  23. package/dist/{cli-ygbjp3z8.js → cli-c8q7292f.js} +3 -3
  24. package/dist/{cli-f567d5c1.js → cli-d4xqde2b.js} +5 -5
  25. package/dist/{cli-m1xa8be7.js → cli-d9pnxgth.js} +6 -6
  26. package/dist/{cli-z9fprcrf.js → cli-dhg6j8h3.js} +76 -22
  27. package/dist/{cli-bxdhw615.js → cli-jyy3e193.js} +4 -4
  28. package/dist/{cli-axs8e6d4.js → cli-m4xsy03s.js} +1 -1
  29. package/dist/{cli-a0g1gbt5.js → cli-pmwbdw36.js} +2 -2
  30. package/dist/{cli-s2f20r5w.js → cli-pzfc7j7g.js} +2 -2
  31. package/dist/{cli-z96t0thj.js → cli-q0qq1sxw.js} +1 -1
  32. package/dist/{cli-gxnzc6wh.js → cli-q3qr220d.js} +1 -1
  33. package/dist/{cli-1fj0chdk.js → cli-qar1f940.js} +3 -3
  34. package/dist/{cli-v0asr5yv.js → cli-rymrjneb.js} +2 -2
  35. package/dist/{cli-xytwff7f.js → cli-s8sbe32s.js} +2 -2
  36. package/dist/{cli-kpev657q.js → cli-skd674mt.js} +1 -1
  37. package/dist/{cli-jnf5zghe.js → cli-ss6vybmt.js} +1 -1
  38. package/dist/{cli-gh8y8f36.js → cli-yqeb27t1.js} +1 -1
  39. package/dist/{cli-dc9k2ba9.js → cli-yxwe913z.js} +1 -1
  40. package/dist/{cli-anktweqr.js → cli-zn65x0w8.js} +2 -2
  41. package/dist/{cli-59ej1c07.js → cli-zww3vcnm.js} +5 -5
  42. package/dist/cli.js +12 -12
  43. package/dist/{codex-adapter-k98vaw2r.js → codex-adapter-d6qajxj3.js} +2 -2
  44. package/dist/{codex-hook-9pf19cks.js → codex-hook-n7m5k7cr.js} +2 -2
  45. package/dist/{codex-session-runner-tngtphx7.js → codex-session-runner-v9krqe4x.js} +2 -2
  46. package/dist/{commands-y8nbr3fv.js → commands-923wsas7.js} +4 -4
  47. package/dist/{db-30p4h2t1.js → db-m1hy4zh5.js} +4 -4
  48. package/dist/{handlers-yfp1qn81.js → handlers-e9vp2fr8.js} +10 -10
  49. package/dist/{hook-21jexvfx.js → hook-bxe3bkdy.js} +4 -4
  50. package/dist/{hook-dcw4jfbj.js → hook-ee4hff56.js} +5 -5
  51. package/dist/{http-r4kq5g8d.js → http-a8rx91me.js} +44 -39
  52. package/dist/{index-53zyht4z.js → index-1j9va48r.js} +11 -11
  53. package/dist/{index-gay66b9w.js → index-3x9g3nbg.js} +12 -12
  54. package/dist/{index-q3qja6ta.js → index-697zfzv1.js} +14 -14
  55. package/dist/{index-nqvf26za.js → index-jj4q3x59.js} +13 -13
  56. package/dist/{keepalive-xs8fa55y.js → keepalive-sds4e4ce.js} +6 -6
  57. package/dist/{lead-d9m2t4s0.js → lead-ggq6szk8.js} +26 -26
  58. package/dist/{maintenance-3zh82g6z.js → maintenance-093p41d4.js} +7 -7
  59. package/dist/{oauth-refresh-sweep-03snsye5.js → oauth-refresh-sweep-dvzq4ckj.js} +5 -5
  60. package/dist/{onboard-0cg1925x.js → onboard-ydr9tzw5.js} +2 -2
  61. package/dist/{otel-impl-0ab95z27.js → otel-impl-zx3tdf3j.js} +1 -1
  62. package/dist/{pricing-refresh-e5jhzz4j.js → pricing-refresh-7e6pqnzp.js} +6 -6
  63. package/dist/{rbac-roles-2w3cmrkc.js → rbac-roles-0dv1wt0w.js} +4 -4
  64. package/dist/{rbac-roles-p1mf40z3.js → rbac-roles-p2rh6d0r.js} +5 -5
  65. package/dist/{render-v2-xhawry3k.js → render-v2-4k3jt4r2.js} +5 -5
  66. package/dist/{seed-pricing-t223sw91.js → seed-pricing-2cc1qmcd.js} +5 -5
  67. package/dist/{setup-zcs0rce7.js → setup-c5yss30k.js} +2 -2
  68. package/dist/{worker-qnp2ka62.js → worker-7srgeqcr.js} +26 -26
  69. package/openapi.json +1 -1
  70. package/package.json +1 -1
  71. package/src/be/db.ts +1 -1
  72. package/src/be/swarm-config-guard.ts +4 -1
  73. package/src/http/index.ts +2 -0
  74. package/src/http/pages.ts +11 -3
  75. package/src/http/utils.ts +79 -1
  76. package/src/prompts/session-templates.ts +8 -6
  77. package/src/providers/acp-adapter.ts +20 -2
  78. package/src/providers/pricing-sources.md +11 -0
  79. package/src/tests/acp-adapter.test.ts +119 -2
  80. package/src/tests/cors-allowlist.test.ts +309 -0
  81. package/src/tests/reload-config.test.ts +26 -0
  82. package/src/tests/swarm-config-reserved-keys.test.ts +21 -0
package/README.md CHANGED
@@ -13,6 +13,7 @@ agent-swarm.dev is an open-source operating system for AI work. A lead agent del
13
13
 
14
14
  - A lead agent that receives work from Slack, repositories, issue trackers, email, or the API
15
15
  - [Schema-validated task results](./MCP.md#send-task) for callers that need structured JSON output
16
+ - [Dashboard file attachments](https://docs.agent-swarm.dev/docs/ui#file-attachments) by drag-and-drop or file picker
16
17
  - Workers in isolated Docker containers with development environments
17
18
  - Memory and identity that persist across sessions
18
19
  - Workflows, schedules, scripts, and apps for recurring work
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  init_package,
31
31
  package_default
32
- } from "./cli-dc9k2ba9.js";
32
+ } from "./cli-yxwe913z.js";
33
33
  import {
34
34
  init_secret_scrubber,
35
35
  scrubSecrets
@@ -4821,8 +4821,21 @@ class ACPSession {
4821
4821
  sessionId: this.sessionId,
4822
4822
  prompt: [{ type: "text", text: this.config.prompt }]
4823
4823
  });
4824
+ this.emit({
4825
+ type: "raw_log",
4826
+ content: serializeAcpLog({
4827
+ type: "custom",
4828
+ name: "acp_prompt_response",
4829
+ data: {
4830
+ sessionId: this.sessionId,
4831
+ stopReason: response.stopReason,
4832
+ usage: response.usage ?? null,
4833
+ _meta: response._meta
4834
+ }
4835
+ })
4836
+ });
4824
4837
  const isError = response.stopReason === "refusal" || response.stopReason === "cancelled";
4825
- const cost = this.buildCostData(isError);
4838
+ const cost = this.buildCostData(isError, response.usage);
4826
4839
  result = {
4827
4840
  exitCode: isError ? 1 : 0,
4828
4841
  sessionId: this.sessionId,
@@ -4863,12 +4876,16 @@ class ACPSession {
4863
4876
  }
4864
4877
  } catch {}
4865
4878
  }
4866
- buildCostData(isError) {
4879
+ buildCostData(isError, usage) {
4867
4880
  return {
4868
4881
  sessionId: this.sessionId,
4869
4882
  taskId: this.config.taskId,
4870
4883
  agentId: this.config.agentId,
4871
4884
  totalCostUsd: 0,
4885
+ inputTokens: usage?.inputTokens,
4886
+ outputTokens: usage?.outputTokens,
4887
+ cacheReadTokens: usage?.cachedReadTokens ?? undefined,
4888
+ cacheWriteTokens: usage?.cachedWriteTokens ?? undefined,
4872
4889
  durationMs: Date.now() - this.startedAt,
4873
4890
  numTurns: 1,
4874
4891
  model: this.config.model,
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  resolveSlackUserId
3
- } from "./cli-xytwff7f.js";
4
- import"./cli-z96t0thj.js";
3
+ } from "./cli-s8sbe32s.js";
4
+ import"./cli-q0qq1sxw.js";
5
5
  import {
6
6
  createTaskWithSiblingAwareness
7
- } from "./cli-axs8e6d4.js";
7
+ } from "./cli-m4xsy03s.js";
8
8
  import {
9
9
  buildCancelledBlocks,
10
10
  ensureSlackThreadTree,
@@ -12,7 +12,7 @@ import {
12
12
  getAgentEmoji,
13
13
  getTaskLink,
14
14
  isSlackRenderV2Enabled
15
- } from "./cli-jmb7g47h.js";
15
+ } from "./cli-46yck6nj.js";
16
16
  import"./cli-q51yprfq.js";
17
17
  import"./cli-yatxqynm.js";
18
18
  import {
@@ -23,15 +23,15 @@ import {
23
23
  init_context_key,
24
24
  init_db,
25
25
  slackContextKey
26
- } from "./cli-f567d5c1.js";
27
- import"./cli-kpev657q.js";
28
- import"./cli-7fnkj1hj.js";
26
+ } from "./cli-d4xqde2b.js";
27
+ import"./cli-skd674mt.js";
28
+ import"./cli-2zvtzevh.js";
29
29
  import"./cli-e29gmdmw.js";
30
30
  import"./cli-c2mk1kgf.js";
31
31
  import"./cli-ej6gbxfb.js";
32
32
  import"./cli-sd0mxa3c.js";
33
33
  import"./cli-w5e1d1vv.js";
34
- import"./cli-dc9k2ba9.js";
34
+ import"./cli-yxwe913z.js";
35
35
  import"./cli-xqcq9y5e.js";
36
36
  import"./cli-pzxba7gw.js";
37
37
  import"./cli-zf8jjwex.js";
@@ -3,18 +3,18 @@ import {
3
3
  initSlackApp,
4
4
  startSlackApp,
5
5
  stopSlackApp
6
- } from "./cli-jmb7g47h.js";
6
+ } from "./cli-46yck6nj.js";
7
7
  import"./cli-q51yprfq.js";
8
8
  import"./cli-yatxqynm.js";
9
- import"./cli-f567d5c1.js";
10
- import"./cli-kpev657q.js";
11
- import"./cli-7fnkj1hj.js";
9
+ import"./cli-d4xqde2b.js";
10
+ import"./cli-skd674mt.js";
11
+ import"./cli-2zvtzevh.js";
12
12
  import"./cli-e29gmdmw.js";
13
13
  import"./cli-c2mk1kgf.js";
14
14
  import"./cli-ej6gbxfb.js";
15
15
  import"./cli-sd0mxa3c.js";
16
16
  import"./cli-w5e1d1vv.js";
17
- import"./cli-dc9k2ba9.js";
17
+ import"./cli-yxwe913z.js";
18
18
  import"./cli-xqcq9y5e.js";
19
19
  import"./cli-pzxba7gw.js";
20
20
  import"./cli-zf8jjwex.js";
@@ -2,24 +2,24 @@ import {
2
2
  bufferThreadMessage,
3
3
  getBufferMessageCount,
4
4
  wasEventSeen
5
- } from "./cli-m1xa8be7.js";
5
+ } from "./cli-d9pnxgth.js";
6
6
  import {
7
7
  hasOtherUserMention
8
- } from "./cli-jnf5zghe.js";
8
+ } from "./cli-ss6vybmt.js";
9
9
  import {
10
10
  resolveSlackUserId,
11
11
  rewriteSlackMentions
12
- } from "./cli-xytwff7f.js";
13
- import"./cli-z96t0thj.js";
12
+ } from "./cli-s8sbe32s.js";
13
+ import"./cli-q0qq1sxw.js";
14
14
  import {
15
15
  createTaskWithSiblingAwareness
16
- } from "./cli-axs8e6d4.js";
16
+ } from "./cli-m4xsy03s.js";
17
17
  import {
18
18
  ackSlackMessage,
19
19
  ensureSlackThreadTree,
20
20
  isSlackRenderV2Enabled,
21
21
  require_dist
22
- } from "./cli-jmb7g47h.js";
22
+ } from "./cli-46yck6nj.js";
23
23
  import"./cli-q51yprfq.js";
24
24
  import"./cli-yatxqynm.js";
25
25
  import {
@@ -30,12 +30,12 @@ import {
30
30
  init_db,
31
31
  reactionName,
32
32
  slackContextKey
33
- } from "./cli-f567d5c1.js";
34
- import"./cli-kpev657q.js";
33
+ } from "./cli-d4xqde2b.js";
34
+ import"./cli-skd674mt.js";
35
35
  import {
36
36
  init_resolver,
37
37
  resolveTemplate
38
- } from "./cli-7fnkj1hj.js";
38
+ } from "./cli-2zvtzevh.js";
39
39
  import"./cli-e29gmdmw.js";
40
40
  import"./cli-c2mk1kgf.js";
41
41
  import {
@@ -44,7 +44,7 @@ import {
44
44
  } from "./cli-ej6gbxfb.js";
45
45
  import"./cli-sd0mxa3c.js";
46
46
  import"./cli-w5e1d1vv.js";
47
- import"./cli-dc9k2ba9.js";
47
+ import"./cli-yxwe913z.js";
48
48
  import"./cli-xqcq9y5e.js";
49
49
  import"./cli-pzxba7gw.js";
50
50
  import"./cli-zf8jjwex.js";
@@ -3,21 +3,21 @@ import {
3
3
  getEmbeddingProvider,
4
4
  getMemoryStore,
5
5
  init_constants
6
- } from "./cli-s2f20r5w.js";
7
- import"./cli-fs1kkqgr.js";
6
+ } from "./cli-pzfc7j7g.js";
7
+ import"./cli-00kyrp1a.js";
8
8
  import"./cli-aehm1rbq.js";
9
9
  import {
10
10
  getDbClient,
11
11
  init_db
12
- } from "./cli-f567d5c1.js";
13
- import"./cli-kpev657q.js";
14
- import"./cli-7fnkj1hj.js";
12
+ } from "./cli-d4xqde2b.js";
13
+ import"./cli-skd674mt.js";
14
+ import"./cli-2zvtzevh.js";
15
15
  import"./cli-e29gmdmw.js";
16
16
  import"./cli-c2mk1kgf.js";
17
17
  import"./cli-ej6gbxfb.js";
18
18
  import"./cli-sd0mxa3c.js";
19
19
  import"./cli-w5e1d1vv.js";
20
- import"./cli-dc9k2ba9.js";
20
+ import"./cli-yxwe913z.js";
21
21
  import"./cli-xqcq9y5e.js";
22
22
  import"./cli-zf8jjwex.js";
23
23
  import"./cli-bc05qbss.js";
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  embedScript,
3
3
  embeddingProvider
4
- } from "./cli-a0g1gbt5.js";
5
- import"./cli-s2f20r5w.js";
6
- import"./cli-fs1kkqgr.js";
4
+ } from "./cli-pmwbdw36.js";
5
+ import"./cli-pzfc7j7g.js";
6
+ import"./cli-00kyrp1a.js";
7
7
  import"./cli-aehm1rbq.js";
8
8
  import {
9
9
  getDbClient,
10
10
  init_db
11
- } from "./cli-f567d5c1.js";
12
- import"./cli-kpev657q.js";
13
- import"./cli-7fnkj1hj.js";
11
+ } from "./cli-d4xqde2b.js";
12
+ import"./cli-skd674mt.js";
13
+ import"./cli-2zvtzevh.js";
14
14
  import"./cli-e29gmdmw.js";
15
15
  import"./cli-c2mk1kgf.js";
16
16
  import"./cli-ej6gbxfb.js";
17
17
  import"./cli-sd0mxa3c.js";
18
18
  import"./cli-w5e1d1vv.js";
19
- import"./cli-dc9k2ba9.js";
19
+ import"./cli-yxwe913z.js";
20
20
  import"./cli-xqcq9y5e.js";
21
21
  import"./cli-zf8jjwex.js";
22
22
  import"./cli-bc05qbss.js";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  getDbClient,
3
3
  init_db
4
- } from "./cli-f567d5c1.js";
5
- import"./cli-kpev657q.js";
6
- import"./cli-7fnkj1hj.js";
4
+ } from "./cli-d4xqde2b.js";
5
+ import"./cli-skd674mt.js";
6
+ import"./cli-2zvtzevh.js";
7
7
  import"./cli-e29gmdmw.js";
8
8
  import"./cli-c2mk1kgf.js";
9
9
  import"./cli-ej6gbxfb.js";
10
10
  import"./cli-sd0mxa3c.js";
11
11
  import"./cli-w5e1d1vv.js";
12
- import"./cli-dc9k2ba9.js";
12
+ import"./cli-yxwe913z.js";
13
13
  import {
14
14
  init_secret_scrubber,
15
15
  scrubSecrets
@@ -17,8 +17,8 @@ import {
17
17
  resolveClaudeBridgeEnabled,
18
18
  resolveClaudeQueueSteeringOverride,
19
19
  runClaudeSessionSummary
20
- } from "./cli-v0asr5yv.js";
21
- import"./cli-anktweqr.js";
20
+ } from "./cli-rymrjneb.js";
21
+ import"./cli-zn65x0w8.js";
22
22
  import"./cli-b5b30yzk.js";
23
23
  import"./cli-rvqz34y5.js";
24
24
  import"./cli-hp1n6zq3.js";
@@ -34,16 +34,16 @@ import"./cli-e7d20cty.js";
34
34
  import"./cli-3dpj7atn.js";
35
35
  import"./cli-y89t4nca.js";
36
36
  import"./cli-f14fvzag.js";
37
- import"./cli-fs1kkqgr.js";
37
+ import"./cli-00kyrp1a.js";
38
38
  import"./cli-bsakbbkm.js";
39
- import"./cli-kpev657q.js";
40
- import"./cli-7fnkj1hj.js";
39
+ import"./cli-skd674mt.js";
40
+ import"./cli-2zvtzevh.js";
41
41
  import"./cli-e29gmdmw.js";
42
42
  import"./cli-c2mk1kgf.js";
43
43
  import"./cli-ej6gbxfb.js";
44
44
  import"./cli-sd0mxa3c.js";
45
45
  import"./cli-w5e1d1vv.js";
46
- import"./cli-dc9k2ba9.js";
46
+ import"./cli-yxwe913z.js";
47
47
  import"./cli-xqcq9y5e.js";
48
48
  import"./cli-knd276ed.js";
49
49
  import"./cli-c4eeb5q2.js";
@@ -3,8 +3,8 @@ import {
3
3
  cleanupTaskFile,
4
4
  normalizeClaudeMessage,
5
5
  runClaudeSessionSummary
6
- } from "./cli-v0asr5yv.js";
7
- import"./cli-anktweqr.js";
6
+ } from "./cli-rymrjneb.js";
7
+ import"./cli-zn65x0w8.js";
8
8
  import {
9
9
  SessionErrorTracker,
10
10
  parseStderrForErrors,
@@ -31,16 +31,16 @@ import {
31
31
  terminateProcessGroup
32
32
  } from "./cli-y89t4nca.js";
33
33
  import"./cli-f14fvzag.js";
34
- import"./cli-fs1kkqgr.js";
34
+ import"./cli-00kyrp1a.js";
35
35
  import"./cli-bsakbbkm.js";
36
- import"./cli-kpev657q.js";
37
- import"./cli-7fnkj1hj.js";
36
+ import"./cli-skd674mt.js";
37
+ import"./cli-2zvtzevh.js";
38
38
  import"./cli-e29gmdmw.js";
39
39
  import"./cli-c2mk1kgf.js";
40
40
  import"./cli-ej6gbxfb.js";
41
41
  import"./cli-sd0mxa3c.js";
42
42
  import"./cli-w5e1d1vv.js";
43
- import"./cli-dc9k2ba9.js";
43
+ import"./cli-yxwe913z.js";
44
44
  import {
45
45
  init_secret_scrubber,
46
46
  scrubSecrets
@@ -2,11 +2,11 @@ import {
2
2
  IDENTITY_FIELD_BUDGETS,
3
3
  init_identity_field_budget,
4
4
  init_templates
5
- } from "./cli-kpev657q.js";
5
+ } from "./cli-skd674mt.js";
6
6
  import {
7
7
  init_resolver,
8
8
  resolveTemplateAsync
9
- } from "./cli-7fnkj1hj.js";
9
+ } from "./cli-2zvtzevh.js";
10
10
  import {
11
11
  MAX_PROFILE_FILE_LENGTH,
12
12
  init_constants
@@ -366,10 +366,11 @@ Memories from past sessions are in your task message. Read them before you start
366
366
  defaultBody: `
367
367
  ## Outputs
368
368
 
369
- agent-fs is the shared drive between agents and the people you work with. A file a person will review, edit, or keep goes there. Write with the \`agent-fs\` CLI. See the \`agent-fs\` skill.
370
- A report or summary a person will read: publish a page with \`create_page\`. See the \`pages\` skill.
369
+ Short answers: inline in the task output.
370
+ agent-fs is the shared drive between agents and people. Documents (reports, digests, summaries, specs, research, drafts): Markdown files via its CLI; see \`agent-fs\` skill.
371
+ Pages: only for polished artifacts shared with a wider audience or explicitly requested; see \`pages\` skill.
371
372
  A tool a person will use, with data and actions: build an app. See the \`apps\` skill.
372
- Share links come from env: \`APP_URL\` for pages, \`MCP_BASE_URL\` for the API, \`AGENT_FS_LIVE_URL\` for files. When a variable is missing, say so in your output.
373
+ Link env: \`APP_URL\` for pages, \`MCP_BASE_URL\` for the API, \`AGENT_FS_LIVE_URL\` for files. Report missing variables.
373
374
  `,
374
375
  variables: [],
375
376
  category: "system"
@@ -380,10 +381,11 @@ Share links come from env: \`APP_URL\` for pages, \`MCP_BASE_URL\` for the API,
380
381
  defaultBody: `
381
382
  ## Outputs
382
383
 
383
- agent-fs is not configured here. A file a person will review goes to a page or a task attachment.
384
- A report or summary a person will read: publish a page with \`create_page\`. See the \`pages\` skill.
384
+ Short answers: inline in the task output.
385
+ Documents: Markdown task attachments; agent-fs is not configured here.
386
+ Pages: only for polished artifacts shared with a wider audience or explicitly requested; see \`pages\` skill.
385
387
  A tool a person will use, with data and actions: build an app. See the \`apps\` skill.
386
- Share links come from env: \`APP_URL\` for pages, \`MCP_BASE_URL\` for the API. When a variable is missing, say so in your output.
388
+ Link env: \`APP_URL\` for pages, \`MCP_BASE_URL\` for the API. Report missing variables.
387
389
  `,
388
390
  variables: [],
389
391
  category: "system"
@@ -25,7 +25,7 @@ import {
25
25
  sandboxSpawnEnv,
26
26
  snapshotCapped,
27
27
  touchScratchScriptLastUsed
28
- } from "./cli-rs6ec3b9.js";
28
+ } from "./cli-68h2mfrn.js";
29
29
  import {
30
30
  detachedProcessGroup,
31
31
  registerProcessGroup,
@@ -34,13 +34,13 @@ import {
34
34
  import {
35
35
  getOAuthApp,
36
36
  getOAuthTokens
37
- } from "./cli-wvp6bvy4.js";
37
+ } from "./cli-4secrq32.js";
38
38
  import {
39
39
  withSiblingAwareness
40
- } from "./cli-axs8e6d4.js";
40
+ } from "./cli-m4xsy03s.js";
41
41
  import {
42
42
  getSlackApp
43
- } from "./cli-jmb7g47h.js";
43
+ } from "./cli-46yck6nj.js";
44
44
  import {
45
45
  FollowUpConfigSchema,
46
46
  ModelTierSchema,
@@ -91,13 +91,13 @@ import {
91
91
  updateWorkflowRun,
92
92
  updateWorkflowRunStep,
93
93
  workflowContextKey
94
- } from "./cli-f567d5c1.js";
94
+ } from "./cli-d4xqde2b.js";
95
95
  import {
96
96
  deepInterpolate,
97
97
  findInterpolationTokens,
98
98
  init_template,
99
99
  interpolate
100
- } from "./cli-7fnkj1hj.js";
100
+ } from "./cli-2zvtzevh.js";
101
101
  import {
102
102
  getAppUrl,
103
103
  getMcpBaseUrl,
@@ -3335,7 +3335,7 @@ class HumanInTheLoopExecutor extends BaseExecutor {
3335
3335
  }
3336
3336
  if (notification.channel === "slack") {
3337
3337
  try {
3338
- const { getSlackApp: getSlackApp2 } = await import("./app-zb3rndm8.js");
3338
+ const { getSlackApp: getSlackApp2 } = await import("./app-j8bfw3f6.js");
3339
3339
  const slackApp = getSlackApp2();
3340
3340
  if (!slackApp) {
3341
3341
  console.warn("[HITL] Slack not initialized — cannot send notification");
@@ -3455,7 +3455,7 @@ class NotifyExecutor extends BaseExecutor {
3455
3455
  }
3456
3456
  }
3457
3457
  case "slack": {
3458
- const { getSlackApp: getSlackApp2 } = await import("./app-zb3rndm8.js");
3458
+ const { getSlackApp: getSlackApp2 } = await import("./app-j8bfw3f6.js");
3459
3459
  const app = getSlackApp2();
3460
3460
  if (!app) {
3461
3461
  return {
@@ -45,7 +45,7 @@ import {
45
45
  setSlackMessageTracking,
46
46
  slackContextKey,
47
47
  updateSlackMessageRecord
48
- } from "./cli-f567d5c1.js";
48
+ } from "./cli-d4xqde2b.js";
49
49
  import {
50
50
  buildAgentFsLiveUrl,
51
51
  getAppUrl,
@@ -54493,7 +54493,7 @@ async function initOtel(serviceRole = process.env.AGENT_ROLE || "api") {
54493
54493
  return;
54494
54494
  initialized = true;
54495
54495
  try {
54496
- const impl = await import("./otel-impl-0ab95z27.js");
54496
+ const impl = await import("./otel-impl-zx3tdf3j.js");
54497
54497
  await impl.boot(serviceRole);
54498
54498
  realWithSpan = impl.withSpan;
54499
54499
  realStartSpan = impl.startSpan;
@@ -55810,13 +55810,13 @@ async function initSlackApp() {
55810
55810
  logLevel: import_bolt.LogLevel.DEBUG,
55811
55811
  ...slackApiUrl ? { clientOptions: { slackApiUrl } } : {}
55812
55812
  });
55813
- const { registerMessageHandler } = await import("./handlers-yfp1qn81.js");
55814
- const { registerCommandHandler } = await import("./commands-y8nbr3fv.js");
55815
- const { registerActionHandlers } = await import("./actions-m662tjng.js");
55813
+ const { registerMessageHandler } = await import("./handlers-e9vp2fr8.js");
55814
+ const { registerCommandHandler } = await import("./commands-923wsas7.js");
55815
+ const { registerActionHandlers } = await import("./actions-s41xcn3f.js");
55816
55816
  registerMessageHandler(app);
55817
55817
  registerCommandHandler(app);
55818
55818
  registerActionHandlers(app);
55819
- const { createAssistant } = await import("./assistant-0qt42nzg.js");
55819
+ const { createAssistant } = await import("./assistant-dx3ew4d8.js");
55820
55820
  app.assistant(createAssistant());
55821
55821
  return app;
55822
55822
  }
@@ -55825,7 +55825,7 @@ async function startSlackApp() {
55825
55825
  await initSlackApp();
55826
55826
  }
55827
55827
  if (app) {
55828
- const { isSlackRenderV2Enabled: isSlackRenderV2Enabled2 } = await import("./render-v2-xhawry3k.js");
55828
+ const { isSlackRenderV2Enabled: isSlackRenderV2Enabled2 } = await import("./render-v2-4k3jt4r2.js");
55829
55829
  if (isSlackRenderV2Enabled2())
55830
55830
  await ensureSlackRenderV2Activation();
55831
55831
  await app.start();
@@ -7,7 +7,7 @@ import {
7
7
  init_date_utils,
8
8
  init_db,
9
9
  normalizeDateRequired
10
- } from "./cli-f567d5c1.js";
10
+ } from "./cli-d4xqde2b.js";
11
11
  import {
12
12
  init_secret_scrubber,
13
13
  registerVolatileSecret,
@@ -5,7 +5,7 @@ import {
5
5
  getDb,
6
6
  getDbClient,
7
7
  init_db
8
- } from "./cli-f567d5c1.js";
8
+ } from "./cli-d4xqde2b.js";
9
9
 
10
10
  // src/be/rbac-roles.ts
11
11
  init_db();
@@ -3,7 +3,7 @@ import {
3
3
  } from "./cli-epan13p1.js";
4
4
  import {
5
5
  embedScript
6
- } from "./cli-a0g1gbt5.js";
6
+ } from "./cli-pmwbdw36.js";
7
7
  import {
8
8
  detachedProcessGroup,
9
9
  registerProcessGroup,
@@ -23,7 +23,7 @@ import {
23
23
  oauthAppRowToProviderConfig,
24
24
  updateAuthorizationTokens,
25
25
  upsertAuthorization
26
- } from "./cli-wvp6bvy4.js";
26
+ } from "./cli-4secrq32.js";
27
27
  import {
28
28
  CredentialBroker,
29
29
  DEFAULT_CREDENTIAL_BINDINGS,
@@ -44,7 +44,7 @@ import {
44
44
  normalizeDateRequired,
45
45
  placeholderForConfigKey,
46
46
  upsertSwarmConfig
47
- } from "./cli-f567d5c1.js";
47
+ } from "./cli-d4xqde2b.js";
48
48
  import {
49
49
  init_env_flag,
50
50
  isEnvFlagEnabled
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_package,
3
3
  package_default
4
- } from "./cli-dc9k2ba9.js";
4
+ } from "./cli-yxwe913z.js";
5
5
 
6
6
  // src/commands/shared/client-config.ts
7
7
  init_package();
@@ -7,14 +7,14 @@ import {
7
7
  restoreScratchScriptLastUsedIfUnchanged,
8
8
  runScript,
9
9
  touchScratchScriptLastUsed
10
- } from "./cli-rs6ec3b9.js";
10
+ } from "./cli-68h2mfrn.js";
11
11
  import {
12
12
  defaultAssetKey,
13
13
  getDbClient,
14
14
  getLeadAgent,
15
15
  init_db,
16
16
  init_key
17
- } from "./cli-f567d5c1.js";
17
+ } from "./cli-d4xqde2b.js";
18
18
  import {
19
19
  init_zod
20
20
  } from "./cli-sd0mxa3c.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  buildModelsDevSeedRows,
3
3
  loadModelsDevCache
4
- } from "./cli-gh8y8f36.js";
4
+ } from "./cli-yqeb27t1.js";
5
5
  import {
6
6
  createLogEntry,
7
7
  getActivePricingRow,
8
8
  getDbClient,
9
9
  init_db,
10
10
  insertPricingRow
11
- } from "./cli-f567d5c1.js";
11
+ } from "./cli-d4xqde2b.js";
12
12
  import {
13
13
  init_secret_scrubber,
14
14
  scrubSecrets