@desplega.ai/agent-swarm 1.108.0 → 1.108.2

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 (64) hide show
  1. package/dist/{actions-sdr91cfp.js → actions-1hxdkcp6.js} +6 -6
  2. package/dist/{app-0mcf7mwz.js → app-vn2sy15m.js} +3 -3
  3. package/dist/{assistant-7f3cmabp.js → assistant-sj71nx88.js} +9 -9
  4. package/dist/{boot-reembed-a9btk2eh.js → boot-reembed-nc1dpmdj.js} +4 -4
  5. package/dist/{boot-reembed-47cfre4w.js → boot-reembed-nw9vp9ez.js} +3 -3
  6. package/dist/{boot-scrub-logs-hy8pqhej.js → boot-scrub-logs-g2mpp0cg.js} +2 -2
  7. package/dist/{cli-j9eqkarv.js → cli-1brke24m.js} +3 -3
  8. package/dist/{cli-vemx13wc.js → cli-1wzrmxaj.js} +3 -3
  9. package/dist/{cli-h2qhdwhr.js → cli-27pxayz8.js} +1 -1
  10. package/dist/{cli-a0w6tqyc.js → cli-3p0e74xv.js} +1 -1
  11. package/dist/{cli-xy83cmfc.js → cli-4wrdrmr3.js} +33 -6
  12. package/dist/{cli-vhpa5j27.js → cli-5m4da9px.js} +1 -1
  13. package/dist/{cli-9wv4e7qs.js → cli-6jf8xfnt.js} +7 -3
  14. package/dist/{cli-1zs2dm5w.js → cli-6z0y1339.js} +4 -4
  15. package/dist/{cli-mkn2ryba.js → cli-8gtrpqcw.js} +1 -1
  16. package/dist/{cli-7r40bgvr.js → cli-8kssf4wv.js} +4 -4
  17. package/dist/{cli-nmt32dxp.js → cli-9zz27c9g.js} +1 -1
  18. package/dist/{cli-m0k99m2s.js → cli-ae9hy8yh.js} +1 -1
  19. package/dist/{cli-entbgsd5.js → cli-b4hwyzev.js} +1 -1
  20. package/dist/{cli-3cfvx630.js → cli-b7ytq2z8.js} +2 -2
  21. package/dist/{cli-a8gkr14c.js → cli-bz6qha8p.js} +30 -4
  22. package/dist/{cli-tehpf2fm.js → cli-cr2wze6h.js} +1 -1
  23. package/dist/{cli-psz2xq0n.js → cli-er5kffrx.js} +5 -5
  24. package/dist/{cli-mmaz2btq.js → cli-fxk0as0h.js} +1 -1
  25. package/dist/{cli-kppbkzj4.js → cli-gg6zxrx1.js} +5 -5
  26. package/dist/{cli-cya9knf9.js → cli-hc7hxy2m.js} +2 -2
  27. package/dist/{cli-75b0wmer.js → cli-nt60dmfm.js} +2 -2
  28. package/dist/{cli-apdrt1ch.js → cli-tc19ec02.js} +1 -1
  29. package/dist/{cli-gx7gnvha.js → cli-xekgq1r8.js} +17 -17
  30. package/dist/cli.js +8 -8
  31. package/dist/{commands-4p93q1rf.js → commands-11d7nc0g.js} +2 -2
  32. package/dist/{db-hb0chrmg.js → db-0r0wz8a4.js} +2 -2
  33. package/dist/{handlers-pz3zc83m.js → handlers-v8th05yh.js} +9 -9
  34. package/dist/{hook-mye8ket2.js → hook-9n0np62b.js} +1 -1
  35. package/dist/{http-3nrx1tp1.js → http-pmaqk60c.js} +73 -37
  36. package/dist/{index-x9n06ze1.js → index-35x6ptdt.js} +8 -8
  37. package/dist/{index-17n7z8k8.js → index-9vma4xmv.js} +9 -9
  38. package/dist/{index-6sgpkhby.js → index-c9tx34ke.js} +6 -6
  39. package/dist/{index-rys8ctm6.js → index-vgvvr6yk.js} +7 -7
  40. package/dist/{keepalive-b6eax0y0.js → keepalive-pjd1kjv7.js} +4 -4
  41. package/dist/{lead-v1g4j7he.js → lead-czd1xgxr.js} +17 -17
  42. package/dist/{maintenance-xwf1vf0v.js → maintenance-xjqt3ne7.js} +4 -4
  43. package/dist/{onboard-vy0z8b11.js → onboard-whf6w0mr.js} +2 -2
  44. package/dist/{otel-impl-94sm94jm.js → otel-impl-9n4p19tt.js} +1 -1
  45. package/dist/{pricing-refresh-an9bxjcd.js → pricing-refresh-wg80me14.js} +4 -4
  46. package/dist/{seed-pricing-3t22x5ax.js → seed-pricing-garwba27.js} +3 -3
  47. package/dist/{setup-8hd3jk8s.js → setup-dktff2q2.js} +2 -2
  48. package/dist/{worker-s0xm8naj.js → worker-t26gwn0n.js} +17 -17
  49. package/openapi.json +1 -1
  50. package/package.json +1 -1
  51. package/plugin/skills/download-task-attachment/SKILL.md +59 -0
  52. package/src/be/seed/agent-fs-provision.ts +51 -4
  53. package/src/commands/runner.ts +40 -0
  54. package/src/commands/templates.ts +6 -1
  55. package/src/fs/local-fs-provider.ts +36 -4
  56. package/src/http/poll.ts +24 -2
  57. package/src/telemetry.ts +12 -2
  58. package/src/tests/agent-fs-provision-seeder.test.ts +204 -3
  59. package/src/tests/claude-adapter.test.ts +17 -3
  60. package/src/tests/fs-provider.test.ts +34 -0
  61. package/src/tests/http-api-integration.test.ts +51 -0
  62. package/src/tests/prompt-template-remaining.test.ts +25 -0
  63. package/src/tests/runner-attachments-section.test.ts +55 -0
  64. package/src/tests/telemetry-init.test.ts +23 -0
@@ -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.108.0",
10
+ version: "1.108.2",
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>",
@@ -14,13 +14,13 @@ import {
14
14
  getOAuthApp,
15
15
  getOAuthTokens,
16
16
  upsertOAuthApp
17
- } from "./cli-tehpf2fm.js";
17
+ } from "./cli-cr2wze6h.js";
18
18
  import {
19
19
  startPricingRefreshLoop
20
- } from "./cli-75b0wmer.js";
20
+ } from "./cli-nt60dmfm.js";
21
21
  import {
22
22
  seedPricingFromModelsDev
23
- } from "./cli-entbgsd5.js";
23
+ } from "./cli-b4hwyzev.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-h2qhdwhr.js";
38
+ } from "./cli-27pxayz8.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-1zs2dm5w.js";
48
+ } from "./cli-6z0y1339.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-psz2xq0n.js";
60
+ } from "./cli-er5kffrx.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-3cfvx630.js";
76
+ } from "./cli-b7ytq2z8.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-vhpa5j27.js";
84
+ } from "./cli-5m4da9px.js";
85
85
  import {
86
86
  createAdditiveBuffer,
87
87
  extractSlackMessageText
88
- } from "./cli-nmt32dxp.js";
88
+ } from "./cli-9zz27c9g.js";
89
89
  import {
90
90
  getSlackApp,
91
91
  startSlackApp,
92
92
  stopSlackApp
93
- } from "./cli-kppbkzj4.js";
93
+ } from "./cli-gg6zxrx1.js";
94
94
  import {
95
95
  findOrCreateUserByEmail,
96
96
  findUserByEmail,
@@ -102,7 +102,7 @@ import {
102
102
  recordIdentityEvent,
103
103
  resolveUserByToken,
104
104
  unlinkIdentity
105
- } from "./cli-mmaz2btq.js";
105
+ } from "./cli-fxk0as0h.js";
106
106
  import {
107
107
  markdownToSlack
108
108
  } from "./cli-6xd0bvf8.js";
@@ -113,7 +113,7 @@ import {
113
113
  createTaskWithSiblingAwareness,
114
114
  githubContextKey,
115
115
  linearContextKey
116
- } from "./cli-a0w6tqyc.js";
116
+ } from "./cli-3p0e74xv.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-9wv4e7qs.js";
345
+ } from "./cli-6jf8xfnt.js";
346
346
  import {
347
347
  init_zod
348
348
  } from "./cli-q21d49ac.js";
@@ -386,7 +386,7 @@ import {
386
386
  import {
387
387
  init_package,
388
388
  package_default
389
- } from "./cli-apdrt1ch.js";
389
+ } from "./cli-tc19ec02.js";
390
390
  import {
391
391
  init_secret_scrubber,
392
392
  refreshSecretScrubberCache,
@@ -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-94sm94jm.js");
19671
+ const impl = await import("./otel-impl-9n4p19tt.js");
19672
19672
  await impl.boot(serviceRole);
19673
19673
  realWithSpan = impl.withSpan;
19674
19674
  realStartSpan = impl.startSpan;
@@ -32884,7 +32884,7 @@ async function notifySlack(text) {
32884
32884
  return;
32885
32885
  }
32886
32886
  try {
32887
- const { getSlackApp: getSlackApp2 } = await import("./app-0mcf7mwz.js");
32887
+ const { getSlackApp: getSlackApp2 } = await import("./app-vn2sy15m.js");
32888
32888
  const app = getSlackApp2();
32889
32889
  if (!app) {
32890
32890
  console.warn("[Jira webhook keepalive] Slack not available, cannot send notification");
@@ -32953,7 +32953,7 @@ async function deleteJiraWebhook(webhookId) {
32953
32953
  console.log(`[Jira webhook keepalive] Deleted webhook id=${webhookId}`);
32954
32954
  }
32955
32955
  async function overwriteWebhookIds(next) {
32956
- const { getDb: getDb2 } = await import("./db-hb0chrmg.js");
32956
+ const { getDb: getDb2 } = await import("./db-0r0wz8a4.js");
32957
32957
  const db = getDb2();
32958
32958
  const txn = db.transaction(() => {
32959
32959
  const row = db.query("SELECT metadata FROM oauth_apps WHERE provider = 'jira'").get();
package/dist/cli.js CHANGED
@@ -64,7 +64,7 @@ var import_react = __toESM(require_react(), 1);
64
64
  // package.json
65
65
  var package_default = {
66
66
  name: "@desplega.ai/agent-swarm",
67
- version: "1.108.0",
67
+ version: "1.108.2",
68
68
  description: "Multi-agent orchestration for Claude Code, Codex, Gemini CLI, and other AI coding assistants",
69
69
  license: "MIT",
70
70
  author: "desplega.sh <contact@desplega.sh>",
@@ -645,7 +645,7 @@ function McpServer({ port, apiKey, dbPath }) {
645
645
  if (dbPath) {
646
646
  process.env.DATABASE_PATH = dbPath;
647
647
  }
648
- import("./http-3nrx1tp1.js").then(() => {
648
+ import("./http-pmaqk60c.js").then(() => {
649
649
  setStatus("running");
650
650
  }).catch((err) => {
651
651
  setStatus("error");
@@ -731,7 +731,7 @@ function WorkerRunner({
731
731
  }) {
732
732
  const { exit } = use_app_default();
733
733
  import_react.useEffect(() => {
734
- import("./worker-s0xm8naj.js").then(({ runWorker }) => runWorker({
734
+ import("./worker-t26gwn0n.js").then(({ runWorker }) => runWorker({
735
735
  prompt: prompt || undefined,
736
736
  yolo,
737
737
  systemPrompt: systemPrompt || undefined,
@@ -748,7 +748,7 @@ function WorkerRunner({
748
748
  function LeadRunner({ prompt, yolo, systemPrompt, systemPromptFile, additionalArgs }) {
749
749
  const { exit } = use_app_default();
750
750
  import_react.useEffect(() => {
751
- import("./lead-v1g4j7he.js").then(({ runLead }) => runLead({
751
+ import("./lead-czd1xgxr.js").then(({ runLead }) => runLead({
752
752
  prompt: prompt || undefined,
753
753
  yolo,
754
754
  systemPrompt: systemPrompt || undefined,
@@ -788,8 +788,8 @@ function LazyComponent({
788
788
  }
789
789
  return import_react.createElement(Component, props);
790
790
  }
791
- var loadOnboard = () => import("./onboard-vy0z8b11.js").then(({ Onboard }) => Onboard);
792
- var loadConnect = () => import("./setup-8hd3jk8s.js").then(({ Setup }) => Setup);
791
+ var loadOnboard = () => import("./onboard-whf6w0mr.js").then(({ Onboard }) => Onboard);
792
+ var loadConnect = () => import("./setup-dktff2q2.js").then(({ Setup }) => Setup);
793
793
  function UnknownCommand({ command }) {
794
794
  const { exit } = use_app_default();
795
795
  import_react.useEffect(() => {
@@ -902,7 +902,7 @@ ${binName} docs \u2014 v${package_default.version}
902
902
  }
903
903
  process.exit(0);
904
904
  } else if (args.command === "hook") {
905
- const { runHook } = await import("./hook-mye8ket2.js");
905
+ const { runHook } = await import("./hook-9n0np62b.js");
906
906
  await runHook();
907
907
  } else if (args.command === "artifact") {
908
908
  const artifactArgs = process.argv.slice(process.argv.indexOf("artifact") + 1);
@@ -922,7 +922,7 @@ ${binName} docs \u2014 v${package_default.version}
922
922
  printHelp("scripts");
923
923
  process.exit(scriptsArgs[0] === "reembed" || args.showHelp ? 0 : 1);
924
924
  }
925
- const { runScriptsMaintenanceCommand } = await import("./maintenance-xwf1vf0v.js");
925
+ const { runScriptsMaintenanceCommand } = await import("./maintenance-xjqt3ne7.js");
926
926
  await runScriptsMaintenanceCommand(scriptsArgs);
927
927
  console.log("Scripts re-embedded.");
928
928
  } else if (args.command === "codex-login") {
@@ -2,11 +2,11 @@ import {
2
2
  getAllAgents,
3
3
  getAllTasks,
4
4
  init_db
5
- } from "./cli-9wv4e7qs.js";
5
+ } from "./cli-6jf8xfnt.js";
6
6
  import"./cli-z2zcxes1.js";
7
7
  import"./cli-q21d49ac.js";
8
8
  import"./cli-anrj584m.js";
9
- import"./cli-apdrt1ch.js";
9
+ import"./cli-tc19ec02.js";
10
10
  import"./cli-4j2mrzag.js";
11
11
  import"./cli-p9swy5t3.js";
12
12
 
@@ -385,11 +385,11 @@ import {
385
385
  upsertSkillFiles,
386
386
  upsertSwarmConfig,
387
387
  withFavoriteFlags
388
- } from "./cli-9wv4e7qs.js";
388
+ } from "./cli-6jf8xfnt.js";
389
389
  import"./cli-z2zcxes1.js";
390
390
  import"./cli-q21d49ac.js";
391
391
  import"./cli-anrj584m.js";
392
- import"./cli-apdrt1ch.js";
392
+ import"./cli-tc19ec02.js";
393
393
  import"./cli-4j2mrzag.js";
394
394
  import"./cli-p9swy5t3.js";
395
395
  init_db();
@@ -3,24 +3,24 @@ import {
3
3
  getBufferMessageCount,
4
4
  instantFlush,
5
5
  wasEventSeen
6
- } from "./cli-7r40bgvr.js";
6
+ } from "./cli-8kssf4wv.js";
7
7
  import {
8
8
  extractSlackMessageText,
9
9
  extractTaskFromMessage,
10
10
  hasOtherUserMention,
11
11
  routeMessage
12
- } from "./cli-nmt32dxp.js";
12
+ } from "./cli-9zz27c9g.js";
13
13
  import {
14
14
  registerTreeMessage
15
- } from "./cli-kppbkzj4.js";
15
+ } from "./cli-gg6zxrx1.js";
16
16
  import"./cli-rkndnn90.js";
17
17
  import"./cli-b0p7rfnd.js";
18
18
  import {
19
19
  enrichSlackUserEmail,
20
20
  resolveSlackUserId
21
- } from "./cli-j9eqkarv.js";
22
- import"./cli-m0k99m2s.js";
23
- import"./cli-mmaz2btq.js";
21
+ } from "./cli-1brke24m.js";
22
+ import"./cli-ae9hy8yh.js";
23
+ import"./cli-fxk0as0h.js";
24
24
  import {
25
25
  buildTreeBlocks
26
26
  } from "./cli-6xd0bvf8.js";
@@ -28,7 +28,7 @@ import"./cli-wspgs9bt.js";
28
28
  import {
29
29
  createTaskWithSiblingAwareness,
30
30
  slackContextKey
31
- } from "./cli-a0w6tqyc.js";
31
+ } from "./cli-3p0e74xv.js";
32
32
  import"./cli-dh55d5fg.js";
33
33
  import {
34
34
  getAgentById,
@@ -39,11 +39,11 @@ import {
39
39
  init_db,
40
40
  init_resolver,
41
41
  resolveTemplate
42
- } from "./cli-9wv4e7qs.js";
42
+ } from "./cli-6jf8xfnt.js";
43
43
  import"./cli-z2zcxes1.js";
44
44
  import"./cli-q21d49ac.js";
45
45
  import"./cli-anrj584m.js";
46
- import"./cli-apdrt1ch.js";
46
+ import"./cli-tc19ec02.js";
47
47
  import"./cli-4j2mrzag.js";
48
48
  import"./cli-e15jhafb.js";
49
49
  import {
@@ -30,7 +30,7 @@ import"./cli-anrj584m.js";
30
30
  import {
31
31
  init_package,
32
32
  package_default
33
- } from "./cli-apdrt1ch.js";
33
+ } from "./cli-tc19ec02.js";
34
34
  import"./cli-4j2mrzag.js";
35
35
  import"./cli-xw7p4wkq.js";
36
36
  import"./cli-4wgngmwv.js";
@@ -108,7 +108,7 @@ import {
108
108
  withRemoteContext,
109
109
  withSpanContext,
110
110
  writeSkillsToFilesystem
111
- } from "./cli-gx7gnvha.js";
111
+ } from "./cli-xekgq1r8.js";
112
112
  import {
113
113
  BROWSER_SDK_JS,
114
114
  SWARM_UI_JS
@@ -136,11 +136,11 @@ import {
136
136
  getOAuthApp,
137
137
  getOAuthTokens,
138
138
  releaseOAuthRefreshLock
139
- } from "./cli-tehpf2fm.js";
140
- import"./cli-75b0wmer.js";
139
+ } from "./cli-cr2wze6h.js";
140
+ import"./cli-nt60dmfm.js";
141
141
  import {
142
142
  normalizeModelKey
143
- } from "./cli-entbgsd5.js";
143
+ } from "./cli-b4hwyzev.js";
144
144
  import {
145
145
  SCRIPT_STDLIB_TYPES,
146
146
  ensureAgentFsCredentialsForAgent,
@@ -148,16 +148,16 @@ import {
148
148
  extractScriptSignature,
149
149
  scriptSdkTypesWithGeneratedApis,
150
150
  typecheckScript
151
- } from "./cli-xy83cmfc.js";
151
+ } from "./cli-4wrdrmr3.js";
152
152
  import {
153
153
  checkHeartbeatChecklist,
154
154
  runHeartbeatSweep,
155
155
  stopHeartbeat
156
- } from "./cli-vemx13wc.js";
156
+ } from "./cli-1wzrmxaj.js";
157
157
  import {
158
158
  createResumeFollowUp,
159
159
  createWorkerTaskFollowUp
160
- } from "./cli-h2qhdwhr.js";
160
+ } from "./cli-27pxayz8.js";
161
161
  import"./cli-fad8m16k.js";
162
162
  import {
163
163
  calculateNextRun,
@@ -165,7 +165,7 @@ import {
165
165
  ensure,
166
166
  initialize,
167
167
  require_dist
168
- } from "./cli-1zs2dm5w.js";
168
+ } from "./cli-6z0y1339.js";
169
169
  import {
170
170
  RawLlmConfigSchema,
171
171
  TriggerSchemaError,
@@ -185,7 +185,7 @@ import {
185
185
  validateDefinition,
186
186
  validateJsonSchema,
187
187
  verifyHmacSignature
188
- } from "./cli-psz2xq0n.js";
188
+ } from "./cli-er5kffrx.js";
189
189
  import {
190
190
  getApiKey
191
191
  } from "./cli-f14fvzag.js";
@@ -206,10 +206,10 @@ import {
206
206
  rotateScriptApiSecret,
207
207
  updateScriptApi,
208
208
  upsertScriptByName
209
- } from "./cli-3cfvx630.js";
209
+ } from "./cli-b7ytq2z8.js";
210
210
  import {
211
211
  searchScripts
212
- } from "./cli-cya9knf9.js";
212
+ } from "./cli-hc7hxy2m.js";
213
213
  import {
214
214
  CANDIDATE_SET_MULTIPLIER,
215
215
  getEmbeddingProvider,
@@ -217,19 +217,19 @@ import {
217
217
  init_constants,
218
218
  init_reranker,
219
219
  rerank
220
- } from "./cli-vhpa5j27.js";
220
+ } from "./cli-5m4da9px.js";
221
221
  import"./cli-q25ejbyn.js";
222
- import"./cli-nmt32dxp.js";
222
+ import"./cli-9zz27c9g.js";
223
223
  import {
224
224
  getSlackApp,
225
225
  startSlackApp,
226
226
  stopSlackApp
227
- } from "./cli-kppbkzj4.js";
227
+ } from "./cli-gg6zxrx1.js";
228
228
  import"./cli-rkndnn90.js";
229
229
  import"./cli-b0p7rfnd.js";
230
230
  import {
231
231
  recordUnmappedIdentity
232
- } from "./cli-m0k99m2s.js";
232
+ } from "./cli-ae9hy8yh.js";
233
233
  import {
234
234
  findOrCreateUserByEmail,
235
235
  findUserByExternalId,
@@ -243,7 +243,7 @@ import {
243
243
  resolveUserByToken,
244
244
  revokeToken,
245
245
  unlinkIdentity
246
- } from "./cli-mmaz2btq.js";
246
+ } from "./cli-fxk0as0h.js";
247
247
  import"./cli-6xd0bvf8.js";
248
248
  import"./cli-wspgs9bt.js";
249
249
  import {
@@ -251,7 +251,7 @@ import {
251
251
  createTaskWithSiblingAwareness,
252
252
  gitlabContextKey,
253
253
  pageContextKey
254
- } from "./cli-a0w6tqyc.js";
254
+ } from "./cli-3p0e74xv.js";
255
255
  import {
256
256
  getAppUrl,
257
257
  getConfiguredAppUrls,
@@ -563,7 +563,7 @@ import {
563
563
  upsertSwarmConfig,
564
564
  validateConfigValue,
565
565
  withFavoriteFlags
566
- } from "./cli-9wv4e7qs.js";
566
+ } from "./cli-6jf8xfnt.js";
567
567
  import"./cli-z2zcxes1.js";
568
568
  import {
569
569
  init_zod
@@ -578,7 +578,7 @@ import {
578
578
  import {
579
579
  init_package,
580
580
  package_default
581
- } from "./cli-apdrt1ch.js";
581
+ } from "./cli-tc19ec02.js";
582
582
  import {
583
583
  init_secret_scrubber,
584
584
  registerVolatileSecret,
@@ -3710,6 +3710,9 @@ class LocalFsProvider {
3710
3710
  throw new FilesError("Conflict", "File already exists");
3711
3711
  }
3712
3712
  await Bun.write(target, await new Response(body).arrayBuffer());
3713
+ if (options.contentType) {
3714
+ await Bun.write(this.metaPath(target), JSON.stringify({ contentType: options.contentType }));
3715
+ }
3713
3716
  return this.head(scope);
3714
3717
  }
3715
3718
  async download(scope) {
@@ -3723,12 +3726,13 @@ class LocalFsProvider {
3723
3726
  const target = this.localPath(scope);
3724
3727
  try {
3725
3728
  const info = await stat(target);
3729
+ const storedContentType = await this.readStoredContentType(target);
3726
3730
  return {
3727
3731
  providerId: this.id,
3728
3732
  key: providerPath(scope),
3729
3733
  taskId: scope.taskId,
3730
3734
  name: scope.name,
3731
- contentType: Bun.file(target).type || undefined,
3735
+ contentType: storedContentType ?? Bun.file(target).type ?? undefined,
3732
3736
  sizeBytes: info.size,
3733
3737
  updatedAt: info.mtime.toISOString()
3734
3738
  };
@@ -3751,11 +3755,16 @@ class LocalFsProvider {
3751
3755
  }
3752
3756
  }
3753
3757
  async delete(scope) {
3754
- await rm2(this.localPath(scope), { force: true });
3758
+ const target = this.localPath(scope);
3759
+ await rm2(target, { force: true });
3760
+ await rm2(this.metaPath(target), { force: true });
3755
3761
  }
3756
3762
  async copy(source, destination) {
3763
+ const sourceHead = await this.head(source);
3757
3764
  const response = await this.download(source);
3758
- await this.upload(destination, await response.arrayBuffer());
3765
+ await this.upload(destination, await response.arrayBuffer(), {
3766
+ contentType: sourceHead.contentType
3767
+ });
3759
3768
  return this.head(destination);
3760
3769
  }
3761
3770
  async move(source, destination) {
@@ -3790,6 +3799,21 @@ class LocalFsProvider {
3790
3799
  localPath(scope) {
3791
3800
  return join(this.rootDir, providerPath(scope));
3792
3801
  }
3802
+ metaPath(target) {
3803
+ return `${target}.meta.json`;
3804
+ }
3805
+ async readStoredContentType(target) {
3806
+ try {
3807
+ const metaFile = Bun.file(this.metaPath(target));
3808
+ if (!await metaFile.exists()) {
3809
+ return;
3810
+ }
3811
+ const meta = await metaFile.json();
3812
+ return typeof meta?.contentType === "string" ? meta.contentType : undefined;
3813
+ } catch {
3814
+ return;
3815
+ }
3816
+ }
3793
3817
  async walk(dir, visit) {
3794
3818
  let entries;
3795
3819
  try {
@@ -3804,7 +3828,7 @@ class LocalFsProvider {
3804
3828
  const path = join(dir, entry.name);
3805
3829
  if (entry.isDirectory()) {
3806
3830
  await this.walk(path, visit);
3807
- } else if (entry.isFile()) {
3831
+ } else if (entry.isFile() && !entry.name.endsWith(".meta.json")) {
3808
3832
  await visit(path);
3809
3833
  }
3810
3834
  }
@@ -10640,6 +10664,14 @@ var lastChannelActivityCheckAt = 0;
10640
10664
  function getRequesterNotes(notes) {
10641
10665
  return typeof notes === "string" && notes.trim().length > 0 ? notes : undefined;
10642
10666
  }
10667
+ function attachmentsForTrigger(taskId) {
10668
+ return getTaskAttachments(taskId).map((a) => ({
10669
+ id: a.id,
10670
+ name: a.name,
10671
+ mimeType: a.mimeType,
10672
+ sizeBytes: a.sizeBytes
10673
+ }));
10674
+ }
10643
10675
  var commitCursorsRoute = route({
10644
10676
  method: "post",
10645
10677
  path: "/api/channel-activity/commit-cursors",
@@ -10768,7 +10800,11 @@ async function handlePoll(req, res, pathSegments, queryParams, myAgentId) {
10768
10800
  trigger: {
10769
10801
  type: "task_assigned",
10770
10802
  taskId: pendingTask.id,
10771
- task: { ...pendingTask, status: "in_progress" },
10803
+ task: {
10804
+ ...pendingTask,
10805
+ status: "in_progress",
10806
+ attachments: attachmentsForTrigger(pendingTask.id)
10807
+ },
10772
10808
  ...requestedByUser && {
10773
10809
  requestedBy: {
10774
10810
  name: requestedByUser.name,
@@ -10853,7 +10889,7 @@ async function handlePoll(req, res, pathSegments, queryParams, myAgentId) {
10853
10889
  trigger: {
10854
10890
  type: "task_assigned",
10855
10891
  taskId: claimed.id,
10856
- task: claimed
10892
+ task: { ...claimed, attachments: attachmentsForTrigger(claimed.id) }
10857
10893
  }
10858
10894
  };
10859
10895
  }
@@ -18794,14 +18830,14 @@ async function shutdown() {
18794
18830
  sessionsProcessed: getServerSessionsProcessed()
18795
18831
  });
18796
18832
  if (hasCapability("scheduling")) {
18797
- const { stopScheduler } = await import("./index-x9n06ze1.js");
18833
+ const { stopScheduler } = await import("./index-35x6ptdt.js");
18798
18834
  stopScheduler();
18799
18835
  }
18800
18836
  stopHeartbeat();
18801
18837
  stopScriptRunSupervisor();
18802
18838
  await stopSlackApp();
18803
18839
  if (process.env.OAUTH_KEEPALIVE_DISABLE !== "true") {
18804
- const { stopOAuthKeepalive } = await import("./keepalive-b6eax0y0.js");
18840
+ const { stopOAuthKeepalive } = await import("./keepalive-pjd1kjv7.js");
18805
18841
  await stopOAuthKeepalive();
18806
18842
  }
18807
18843
  stopMcpOAuthPendingGc();
@@ -18854,15 +18890,15 @@ try {
18854
18890
  throw err;
18855
18891
  }
18856
18892
  try {
18857
- const { seedPricingFromModelsDev } = await import("./seed-pricing-3t22x5ax.js");
18893
+ const { seedPricingFromModelsDev } = await import("./seed-pricing-garwba27.js");
18858
18894
  seedPricingFromModelsDev();
18859
- const { startPricingRefreshLoop } = await import("./pricing-refresh-an9bxjcd.js");
18895
+ const { startPricingRefreshLoop } = await import("./pricing-refresh-wg80me14.js");
18860
18896
  startPricingRefreshLoop();
18861
18897
  } catch (err) {
18862
18898
  console.error("[startup] Failed to seed pricing rows:", err);
18863
18899
  }
18864
18900
  try {
18865
- const { runAllSeeders } = await import("./index-6sgpkhby.js");
18901
+ const { runAllSeeders } = await import("./index-c9tx34ke.js");
18866
18902
  await runAllSeeders({ scriptEmbeddingMode: "skip" });
18867
18903
  } catch (err) {
18868
18904
  console.error("[startup] Failed to seed built-in entities:", err);
@@ -18895,31 +18931,31 @@ httpServer.listen(port, async () => {
18895
18931
  initWorkflows();
18896
18932
  startScriptRunSupervisor(getMcpBaseUrl());
18897
18933
  if (hasCapability("scheduling")) {
18898
- const { startScheduler } = await import("./index-x9n06ze1.js");
18899
- const { getExecutorRegistry: getExecutorRegistry2 } = await import("./index-rys8ctm6.js");
18934
+ const { startScheduler } = await import("./index-35x6ptdt.js");
18935
+ const { getExecutorRegistry: getExecutorRegistry2 } = await import("./index-vgvvr6yk.js");
18900
18936
  const intervalMs = Number(process.env.SCHEDULER_INTERVAL_MS) || 1e4;
18901
18937
  startScheduler(getExecutorRegistry2(), intervalMs, {
18902
18938
  runId: globalState.__runId
18903
18939
  });
18904
18940
  }
18905
18941
  if (process.env.HEARTBEAT_DISABLE !== "true") {
18906
- const { startHeartbeat } = await import("./index-17n7z8k8.js");
18942
+ const { startHeartbeat } = await import("./index-9vma4xmv.js");
18907
18943
  const heartbeatMs = Number(process.env.HEARTBEAT_INTERVAL_MS) || 90000;
18908
18944
  startHeartbeat(heartbeatMs);
18909
18945
  }
18910
18946
  if (process.env.OAUTH_KEEPALIVE_DISABLE !== "true") {
18911
- const { startOAuthKeepalive } = await import("./keepalive-b6eax0y0.js");
18947
+ const { startOAuthKeepalive } = await import("./keepalive-pjd1kjv7.js");
18912
18948
  startOAuthKeepalive();
18913
18949
  }
18914
18950
  startMcpOAuthPendingGc();
18915
18951
  startMemoryGc();
18916
- import("./boot-reembed-47cfre4w.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
18952
+ import("./boot-reembed-nw9vp9ez.js").then(({ runBootReembed }) => runBootReembed()).catch((err) => {
18917
18953
  console.error("[boot-reembed] startup backfill failed (non-fatal):", err);
18918
18954
  });
18919
- import("./boot-reembed-a9btk2eh.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
18955
+ import("./boot-reembed-nc1dpmdj.js").then(({ runBootReembedScripts }) => runBootReembedScripts()).catch((err) => {
18920
18956
  console.error("[boot-reembed-scripts] startup backfill failed (non-fatal):", err);
18921
18957
  });
18922
- import("./boot-scrub-logs-hy8pqhej.js").then(({ runBootScrubLogs }) => runBootScrubLogs()).catch((err) => {
18958
+ import("./boot-scrub-logs-g2mpp0cg.js").then(({ runBootScrubLogs }) => runBootScrubLogs()).catch((err) => {
18923
18959
  console.error("[boot-scrub-logs] startup scrub failed (non-fatal):", err);
18924
18960
  });
18925
18961
  }).on("error", (err) => {
@@ -4,20 +4,20 @@ import {
4
4
  runScheduleNow,
5
5
  startScheduler,
6
6
  stopScheduler
7
- } from "./cli-1zs2dm5w.js";
8
- import"./cli-psz2xq0n.js";
7
+ } from "./cli-6z0y1339.js";
8
+ import"./cli-er5kffrx.js";
9
9
  import"./cli-f14fvzag.js";
10
- import"./cli-3cfvx630.js";
11
- import"./cli-cya9knf9.js";
12
- import"./cli-vhpa5j27.js";
10
+ import"./cli-b7ytq2z8.js";
11
+ import"./cli-hc7hxy2m.js";
12
+ import"./cli-5m4da9px.js";
13
13
  import"./cli-q25ejbyn.js";
14
- import"./cli-a0w6tqyc.js";
14
+ import"./cli-3p0e74xv.js";
15
15
  import"./cli-dh55d5fg.js";
16
- import"./cli-9wv4e7qs.js";
16
+ import"./cli-6jf8xfnt.js";
17
17
  import"./cli-z2zcxes1.js";
18
18
  import"./cli-q21d49ac.js";
19
19
  import"./cli-anrj584m.js";
20
- import"./cli-apdrt1ch.js";
20
+ import"./cli-tc19ec02.js";
21
21
  import"./cli-4j2mrzag.js";
22
22
  import"./cli-9aryf9tv.js";
23
23
  import"./cli-p9swy5t3.js";
@@ -4,22 +4,22 @@ import {
4
4
  runRebootSweep,
5
5
  startHeartbeat,
6
6
  stopHeartbeat
7
- } from "./cli-vemx13wc.js";
8
- import"./cli-h2qhdwhr.js";
9
- import"./cli-psz2xq0n.js";
7
+ } from "./cli-1wzrmxaj.js";
8
+ import"./cli-27pxayz8.js";
9
+ import"./cli-er5kffrx.js";
10
10
  import"./cli-f14fvzag.js";
11
- import"./cli-3cfvx630.js";
12
- import"./cli-cya9knf9.js";
13
- import"./cli-vhpa5j27.js";
11
+ import"./cli-b7ytq2z8.js";
12
+ import"./cli-hc7hxy2m.js";
13
+ import"./cli-5m4da9px.js";
14
14
  import"./cli-q25ejbyn.js";
15
15
  import"./cli-wspgs9bt.js";
16
- import"./cli-a0w6tqyc.js";
16
+ import"./cli-3p0e74xv.js";
17
17
  import"./cli-dh55d5fg.js";
18
- import"./cli-9wv4e7qs.js";
18
+ import"./cli-6jf8xfnt.js";
19
19
  import"./cli-z2zcxes1.js";
20
20
  import"./cli-q21d49ac.js";
21
21
  import"./cli-anrj584m.js";
22
- import"./cli-apdrt1ch.js";
22
+ import"./cli-tc19ec02.js";
23
23
  import"./cli-4j2mrzag.js";
24
24
  import"./cli-9aryf9tv.js";
25
25
  import"./cli-p9swy5t3.js";