@caspian2026/agent-sdk 0.0.14 → 0.0.16

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 (172) hide show
  1. package/dist/{chunk-719hh4c2.js → chunk-0138krd1.js} +2 -2
  2. package/dist/{chunk-a1jrw6pb.js → chunk-034zt5f4.js} +5 -5
  3. package/dist/{chunk-wr49mhgn.js → chunk-03h568w7.js} +8 -8
  4. package/dist/{chunk-4fkq5qmf.js → chunk-095mw5c5.js} +4 -4
  5. package/dist/{chunk-jr08m9dg.js → chunk-0bk2pgyz.js} +2 -2
  6. package/dist/{chunk-z07g066s.js → chunk-0cq969mz.js} +1 -1
  7. package/dist/{chunk-czcegyvq.js → chunk-0hg1ym7x.js} +2 -2
  8. package/dist/{chunk-7dfqbfmp.js → chunk-0ks2a9x1.js} +2 -2
  9. package/dist/{chunk-b4abwgpy.js → chunk-0r7vf368.js} +2 -2
  10. package/dist/{chunk-0bcs0az4.js → chunk-0sch983q.js} +2 -2
  11. package/dist/{chunk-skwtyr65.js → chunk-0webvw30.js} +4 -4
  12. package/dist/{chunk-4kkrt4w6.js → chunk-0wg0b31t.js} +2 -2
  13. package/dist/{chunk-8v04em8d.js → chunk-0ymexzzp.js} +1 -1
  14. package/dist/{chunk-x40rhjnw.js → chunk-1fmvx0f8.js} +3 -3
  15. package/dist/{chunk-9mb3rpt5.js → chunk-1n30tkrg.js} +2 -2
  16. package/dist/{chunk-hx4trnk2.js → chunk-24kbpj4m.js} +2 -2
  17. package/dist/{chunk-eye8h59b.js → chunk-253p86fj.js} +58 -58
  18. package/dist/{chunk-gt260cnp.js → chunk-2b94fzdh.js} +7 -7
  19. package/dist/{chunk-czq4we9r.js → chunk-2be62w8h.js} +2 -2
  20. package/dist/{chunk-a0qasnxz.js → chunk-2bge8my9.js} +9 -9
  21. package/dist/{chunk-1j3231ed.js → chunk-2cm6v80v.js} +1 -1
  22. package/dist/{chunk-mzsvpwff.js → chunk-2tv204b2.js} +2 -2
  23. package/dist/{chunk-k7rmn2cp.js → chunk-2weavk8v.js} +2 -2
  24. package/dist/{chunk-enndt4en.js → chunk-2xew2vpz.js} +2 -2
  25. package/dist/{chunk-ywhtnp2n.js → chunk-33brfcqd.js} +3 -3
  26. package/dist/{chunk-hjaxnrdt.js → chunk-34abhhbz.js} +38 -38
  27. package/dist/{chunk-mp6aq7w5.js → chunk-3gghz1x3.js} +4 -4
  28. package/dist/{chunk-qn792n48.js → chunk-43kvc97j.js} +1 -1
  29. package/dist/{chunk-dx2b8j4d.js → chunk-464ttemx.js} +3 -3
  30. package/dist/{chunk-ettrtc9m.js → chunk-494xnnvd.js} +2 -2
  31. package/dist/{chunk-ns07skz2.js → chunk-4k000hk3.js} +47 -47
  32. package/dist/{chunk-br5653bm.js → chunk-4vhq79vt.js} +1 -1
  33. package/dist/{chunk-rygg21hh.js → chunk-50qcx6je.js} +4 -4
  34. package/dist/{chunk-vssgqb0w.js → chunk-50yv2q7m.js} +48 -48
  35. package/dist/{chunk-w0br4vqk.js → chunk-5568xrg9.js} +4 -4
  36. package/dist/{chunk-ggaba3jg.js → chunk-59k0cnkm.js} +10 -10
  37. package/dist/{chunk-jwgjbagm.js → chunk-5dd66byx.js} +5 -5
  38. package/dist/{chunk-qmzp38bk.js → chunk-5dr0y4j0.js} +1 -1
  39. package/dist/{chunk-9d42tj4y.js → chunk-5fkf72nc.js} +5 -5
  40. package/dist/{chunk-xabvhw7m.js → chunk-5pwkkt1b.js} +1 -1
  41. package/dist/{chunk-15rs7dyt.js → chunk-5wvx4nga.js} +1 -1
  42. package/dist/{chunk-rv12kvbs.js → chunk-5yn10avn.js} +3 -3
  43. package/dist/{chunk-5zarqq41.js → chunk-61e87680.js} +4 -4
  44. package/dist/{chunk-qexztzaz.js → chunk-6adsqnzf.js} +3 -3
  45. package/dist/{chunk-navc5cb0.js → chunk-6fqv2014.js} +2 -2
  46. package/dist/{chunk-4p31nttv.js → chunk-6g5v5tgj.js} +2 -2
  47. package/dist/{chunk-1c71r4hz.js → chunk-6pmw0cx4.js} +2 -2
  48. package/dist/{chunk-sh8dj535.js → chunk-6rg3mn54.js} +2 -2
  49. package/dist/{chunk-h3b4vme7.js → chunk-6v3fdrsh.js} +5 -5
  50. package/dist/{chunk-xyggpxzg.js → chunk-6vc9rmm6.js} +2 -2
  51. package/dist/{chunk-h4d6npdz.js → chunk-6y3vxzvh.js} +4 -4
  52. package/dist/{chunk-m9r5h613.js → chunk-6zddmswz.js} +12 -12
  53. package/dist/{chunk-0src3c22.js → chunk-70efbf6m.js} +1 -1
  54. package/dist/{chunk-bqsawar2.js → chunk-7677gjv9.js} +2 -2
  55. package/dist/{chunk-k6wg0cy7.js → chunk-77ae3kds.js} +2 -2
  56. package/dist/{chunk-pdw88gkt.js → chunk-7e19ppzg.js} +2 -2
  57. package/dist/{chunk-vd48yvb5.js → chunk-7jqjqp77.js} +2 -2
  58. package/dist/{chunk-bheevp4d.js → chunk-7r6dpd4h.js} +3 -3
  59. package/dist/{chunk-0623b1va.js → chunk-80r2kmvr.js} +3 -3
  60. package/dist/{chunk-5sx4tkfc.js → chunk-878s91x9.js} +2 -2
  61. package/dist/{chunk-p22shwxb.js → chunk-90g4pkht.js} +3 -3
  62. package/dist/{chunk-11d8ctzt.js → chunk-9ab0twwt.js} +2 -2
  63. package/dist/{chunk-sxccnvke.js → chunk-9dyefwyh.js} +2 -2
  64. package/dist/{chunk-q5hb7n0c.js → chunk-9r2kekhz.js} +2 -2
  65. package/dist/{chunk-jwdrgp5a.js → chunk-aacg66qy.js} +5 -5
  66. package/dist/{chunk-rv75kjq5.js → chunk-af2g27e9.js} +1 -1
  67. package/dist/{chunk-6cq16qs7.js → chunk-ahkekv5r.js} +12 -12
  68. package/dist/{chunk-mhr7cyga.js → chunk-akq6fn8h.js} +2 -2
  69. package/dist/{chunk-3yxpxgan.js → chunk-aqeghnpg.js} +2 -2
  70. package/dist/{chunk-8gnvhjq4.js → chunk-aqgp8rjm.js} +2 -2
  71. package/dist/{chunk-8sn8pnax.js → chunk-ax5y0a76.js} +12 -12
  72. package/dist/{chunk-b2h3b25h.js → chunk-aympzbp1.js} +1 -1
  73. package/dist/{chunk-vts7s513.js → chunk-b0t3jcs7.js} +7 -7
  74. package/dist/{chunk-732r1hw7.js → chunk-bdmg5shw.js} +2 -2
  75. package/dist/{chunk-f60n4nvz.js → chunk-bf2jgkwf.js} +2 -2
  76. package/dist/{chunk-dm1782sh.js → chunk-bqzqktxh.js} +1 -1
  77. package/dist/{chunk-yp4h671v.js → chunk-bw89eag7.js} +6 -6
  78. package/dist/{chunk-75ggnayp.js → chunk-c2x0n8cn.js} +2 -2
  79. package/dist/{chunk-d3gdbhbg.js → chunk-cggsre4g.js} +2 -2
  80. package/dist/{chunk-d99abhhm.js → chunk-cgh7nn0f.js} +2 -2
  81. package/dist/{chunk-08qhe536.js → chunk-cghmqgv0.js} +21 -21
  82. package/dist/{chunk-acrn5z56.js → chunk-cpzfxncy.js} +6 -6
  83. package/dist/{chunk-bvq359zn.js → chunk-cqpgt1nv.js} +2 -2
  84. package/dist/{chunk-0xyrxv7h.js → chunk-d0cs54wd.js} +1 -1
  85. package/dist/{chunk-b8ydnc8j.js → chunk-d5w5n4p3.js} +2 -2
  86. package/dist/{chunk-ps4c515v.js → chunk-dj2cdqfc.js} +10 -10
  87. package/dist/{chunk-v29e5z18.js → chunk-dq7hy1wn.js} +1 -1
  88. package/dist/{chunk-5r6qt4m7.js → chunk-dt0j3zmk.js} +2 -2
  89. package/dist/{chunk-rp84qxen.js → chunk-e1cxcew5.js} +2 -2
  90. package/dist/{chunk-y53nn7b0.js → chunk-ehsyfrq8.js} +4 -4
  91. package/dist/{chunk-vzpmepah.js → chunk-fa56qccg.js} +2 -2
  92. package/dist/{chunk-pq41dabh.js → chunk-fdsf0atp.js} +3 -3
  93. package/dist/{chunk-72mpv619.js → chunk-fjtwf88m.js} +1 -1
  94. package/dist/{chunk-2nfs331e.js → chunk-fq4t93hx.js} +1 -1
  95. package/dist/{chunk-kksqs4qz.js → chunk-fsd9tdqd.js} +1 -1
  96. package/dist/{chunk-q1vf7xar.js → chunk-fxagn0z9.js} +9 -9
  97. package/dist/{chunk-s9gsfbka.js → chunk-fykpnaw4.js} +13 -13
  98. package/dist/{chunk-cqzp1dp8.js → chunk-g6hhwwwk.js} +1 -1
  99. package/dist/{chunk-xp0r4r4h.js → chunk-gcr872ad.js} +1 -1
  100. package/dist/{chunk-ngqf9stv.js → chunk-gdd4dgb8.js} +1 -1
  101. package/dist/{chunk-44pvvyjk.js → chunk-gw5kqe0t.js} +3 -3
  102. package/dist/{chunk-b7frcjh2.js → chunk-h3r7pb72.js} +2 -2
  103. package/dist/{chunk-04fjfm2f.js → chunk-h6gpw5bb.js} +3 -3
  104. package/dist/{chunk-f9jzkb07.js → chunk-ha1308dz.js} +5 -5
  105. package/dist/{chunk-0kmqnkdt.js → chunk-hjnvpfjz.js} +8 -8
  106. package/dist/{chunk-68djb24j.js → chunk-hkh9hkdr.js} +1 -1
  107. package/dist/{chunk-mfj5whzc.js → chunk-hmgva6me.js} +3 -3
  108. package/dist/{chunk-5hc01yks.js → chunk-hq3md1kp.js} +2 -2
  109. package/dist/{chunk-qgmvd5cq.js → chunk-hsz852dk.js} +1 -1
  110. package/dist/{chunk-fdmj1vt5.js → chunk-hyhas8c8.js} +1 -1
  111. package/dist/{chunk-73rsehby.js → chunk-j33yvvta.js} +1 -1
  112. package/dist/{chunk-nrjete83.js → chunk-j9nr7mmf.js} +1 -1
  113. package/dist/{chunk-j31n1tms.js → chunk-jb4106kg.js} +1 -1
  114. package/dist/{chunk-kb4dhcpv.js → chunk-jbpvqvvv.js} +4 -4
  115. package/dist/{chunk-6nt3eh32.js → chunk-jqs0qk3k.js} +8 -8
  116. package/dist/{chunk-vna72axy.js → chunk-k09g7h9q.js} +2 -2
  117. package/dist/{chunk-brszrrd7.js → chunk-ka3xxzvq.js} +2 -2
  118. package/dist/{chunk-snn2mc7g.js → chunk-kems8t19.js} +1 -1
  119. package/dist/{chunk-98axrwwf.js → chunk-krg0d4dq.js} +5 -5
  120. package/dist/{chunk-hmv8zwjy.js → chunk-m58kev08.js} +2 -2
  121. package/dist/{chunk-sj6k8x1b.js → chunk-mk2rkjr7.js} +2 -2
  122. package/dist/{chunk-rk1hztz9.js → chunk-mscbehzt.js} +1 -1
  123. package/dist/{chunk-e5ha1006.js → chunk-n0jtqdbw.js} +3 -3
  124. package/dist/{chunk-zx0yghrm.js → chunk-n6ce0050.js} +2 -2
  125. package/dist/{chunk-e2mjjnbr.js → chunk-n6r37tbj.js} +2 -2
  126. package/dist/{chunk-jbx3rfa0.js → chunk-nd6pfcmh.js} +3 -3
  127. package/dist/{chunk-7xe9vtjk.js → chunk-ndc5ffxy.js} +2 -2
  128. package/dist/{chunk-ca0w8rnt.js → chunk-nq011ncg.js} +3 -3
  129. package/dist/{chunk-c53apxy4.js → chunk-p08jxw7f.js} +1 -1
  130. package/dist/{chunk-hbmvggk9.js → chunk-p56dj6th.js} +1 -1
  131. package/dist/{chunk-q60mkbpc.js → chunk-pj21mb3y.js} +9 -9
  132. package/dist/{chunk-9s5vq8k3.js → chunk-qhkpymwg.js} +1 -1
  133. package/dist/{chunk-yzthcmmr.js → chunk-qstg6cqb.js} +3 -3
  134. package/dist/{chunk-n5zw971x.js → chunk-qtappve1.js} +4 -4
  135. package/dist/{chunk-rrbq2dsb.js → chunk-qwaqn1gv.js} +8 -8
  136. package/dist/{chunk-y6xmp5ba.js → chunk-qxqy6a7k.js} +1 -1
  137. package/dist/{chunk-15066da8.js → chunk-r2f4xf5f.js} +2 -2
  138. package/dist/{chunk-w8dtxm4s.js → chunk-r4x66zcm.js} +182 -77
  139. package/dist/{chunk-n81r8p8w.js → chunk-rkwjsq0y.js} +1 -1
  140. package/dist/{chunk-ha2jw5h1.js → chunk-rp5ajvc8.js} +2 -2
  141. package/dist/{chunk-s069c6w4.js → chunk-rv0778b7.js} +2 -2
  142. package/dist/{chunk-jgbfbnd4.js → chunk-rv18pm3t.js} +3 -3
  143. package/dist/{chunk-58m4gvz9.js → chunk-s9xssme2.js} +3 -3
  144. package/dist/{chunk-1fs2xafy.js → chunk-sf3g2kn8.js} +11 -11
  145. package/dist/{chunk-ecdz0mxy.js → chunk-t9ty8wd2.js} +1 -1
  146. package/dist/{chunk-wtt7amrx.js → chunk-tcc5jdrm.js} +4 -4
  147. package/dist/{chunk-3n42nk28.js → chunk-tevpmtd5.js} +1 -1
  148. package/dist/{chunk-24q6bdcs.js → chunk-thd97pvn.js} +2 -2
  149. package/dist/{chunk-593j816d.js → chunk-ttk91fct.js} +2 -2
  150. package/dist/{chunk-qa1zgp1b.js → chunk-v3k9j6vs.js} +3 -3
  151. package/dist/{chunk-y5h42zet.js → chunk-vd36sw6y.js} +23 -2
  152. package/dist/{chunk-ftcsgz26.js → chunk-vvx6thef.js} +3 -3
  153. package/dist/{chunk-p88kfj0y.js → chunk-w3vtpfcg.js} +6 -6
  154. package/dist/{chunk-asnfc3cs.js → chunk-w79c54vb.js} +5 -5
  155. package/dist/{chunk-xjxpwk90.js → chunk-wav8anxx.js} +2 -2
  156. package/dist/{chunk-hhcxe7nj.js → chunk-wpka3pc0.js} +1 -1
  157. package/dist/{chunk-dztkgjzb.js → chunk-wr94tth6.js} +4 -4
  158. package/dist/{chunk-sdrpvpdt.js → chunk-x3ssc0j9.js} +2 -2
  159. package/dist/{chunk-b8f5ctj1.js → chunk-x6rff9en.js} +4 -4
  160. package/dist/{chunk-xvjs59y5.js → chunk-xcdz6w3q.js} +2 -2
  161. package/dist/{chunk-frabrq9c.js → chunk-yf2wv2n4.js} +2 -2
  162. package/dist/{chunk-bmck0345.js → chunk-yg628k8y.js} +2 -2
  163. package/dist/{chunk-w0dmy7h7.js → chunk-ytag7y6a.js} +2 -2
  164. package/dist/{chunk-nyv3523k.js → chunk-z6g53hsw.js} +2 -2
  165. package/dist/{chunk-ebrmx1qk.js → chunk-z9hnsqpq.js} +3 -3
  166. package/dist/{chunk-a7tm9hkr.js → chunk-zee1kwn1.js} +3 -3
  167. package/dist/{chunk-qjzyrq7r.js → chunk-zwr31pp8.js} +2 -2
  168. package/dist/{chunk-xq64mesy.js → chunk-zx8nnkdp.js} +6 -6
  169. package/dist/cli.js +3 -3
  170. package/dist/gateway/index.js +6 -11
  171. package/dist/gateway/worker.js +135 -9
  172. package/package.json +1 -1
@@ -11,21 +11,21 @@ import {
11
11
  buildSettingSourcesProperties,
12
12
  getModelDisplayLabel,
13
13
  init_status
14
- } from "./chunk-n5zw971x.js";
14
+ } from "./chunk-qtappve1.js";
15
15
  import {
16
16
  ClaudeMdExternalIncludesDialog,
17
17
  init_ClaudeMdExternalIncludesDialog
18
- } from "./chunk-rk1hztz9.js";
18
+ } from "./chunk-mscbehzt.js";
19
19
  import {
20
20
  ModelPicker,
21
21
  init_ModelPicker,
22
22
  init_extraUsage,
23
23
  isBilledAsExtraUsage
24
- } from "./chunk-dm1782sh.js";
24
+ } from "./chunk-bqzqktxh.js";
25
25
  import {
26
26
  ThemePicker,
27
27
  init_ThemePicker
28
- } from "./chunk-k7rmn2cp.js";
28
+ } from "./chunk-2weavk8v.js";
29
29
  import {
30
30
  OverageCreditUpsell,
31
31
  init_OverageCreditUpsell,
@@ -37,7 +37,7 @@ import {
37
37
  import {
38
38
  init_useSearchInput,
39
39
  useSearchInput
40
- } from "./chunk-v29e5z18.js";
40
+ } from "./chunk-dq7hy1wn.js";
41
41
  import {
42
42
  init_modalContext,
43
43
  useIsInsideModal,
@@ -85,7 +85,7 @@ import {
85
85
  useAppState,
86
86
  useAppStateStore,
87
87
  useSetAppState
88
- } from "./chunk-w8dtxm4s.js";
88
+ } from "./chunk-r4x66zcm.js";
89
89
  import {
90
90
  clearCliTeammateModeOverride,
91
91
  getCliTeammateModeOverride,
package/dist/cli.js CHANGED
@@ -33,7 +33,7 @@ async function main() {
33
33
  if (false) {}
34
34
  if (process.argv[2] === "--claude-in-chrome-mcp") {
35
35
  profileCheckpoint("cli_claude_in_chrome_mcp_path");
36
- const { runClaudeInChromeMcpServer } = await import("./chunk-593j816d.js");
36
+ const { runClaudeInChromeMcpServer } = await import("./chunk-ttk91fct.js");
37
37
  await runClaudeInChromeMcpServer();
38
38
  return;
39
39
  } else if (process.argv[2] === "--chrome-native-host") {
@@ -66,7 +66,7 @@ async function main() {
66
66
  enableConfigs();
67
67
  const { isWorktreeModeEnabled } = await import("./chunk-pwwa7s62.js");
68
68
  if (isWorktreeModeEnabled()) {
69
- const { execIntoTmuxWorktree } = await import("./chunk-719hh4c2.js");
69
+ const { execIntoTmuxWorktree } = await import("./chunk-0138krd1.js");
70
70
  const result = await execIntoTmuxWorktree(args);
71
71
  if (result.handled) {
72
72
  return;
@@ -83,7 +83,7 @@ async function main() {
83
83
  const { startCapturingEarlyInput } = await import("./chunk-etdt1xz3.js");
84
84
  startCapturingEarlyInput();
85
85
  profileCheckpoint("cli_before_main_import");
86
- const { main: cliMain } = await import("./chunk-eye8h59b.js");
86
+ const { main: cliMain } = await import("./chunk-253p86fj.js");
87
87
  profileCheckpoint("cli_after_main_import");
88
88
  await cliMain();
89
89
  profileCheckpoint("cli_after_main_complete");
@@ -375,17 +375,12 @@ async function handleRequest(req) {
375
375
  });
376
376
  break;
377
377
  }
378
- try {
379
- const updatePromise = router.waitForUpdate(session_key);
380
- router.send(session_key, { type: "update", config });
381
- await updatePromise;
382
- notify({ method: "session.updated", params: { session_key } });
383
- } catch (err) {
384
- notify({
385
- method: "session.error",
386
- params: { session_key, error: err instanceof Error ? err.message : String(err) }
387
- });
388
- }
378
+ const updatePromise = router.waitForUpdate(session_key);
379
+ router.send(session_key, { type: "update", config });
380
+ updatePromise.then(() => notify({ method: "session.updated", params: { session_key } })).catch((err) => notify({
381
+ method: "session.error",
382
+ params: { session_key, error: err instanceof Error ? err.message : String(err) }
383
+ }));
389
384
  break;
390
385
  }
391
386
  case "session.permission_response": {
@@ -116228,7 +116228,7 @@ var init_metadata = __esm(() => {
116228
116228
  isClaudeAiAuth: false,
116229
116229
  version: "2.1.888",
116230
116230
  versionBase: getVersionBase(),
116231
- buildTime: "2026-05-15T01:32:18.200Z",
116231
+ buildTime: "2026-06-15T01:50:24.689Z",
116232
116232
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
116233
116233
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
116234
116234
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -277517,6 +277517,16 @@ function* normalizeMessage(message) {
277517
277517
  uuid: message.uuid
277518
277518
  };
277519
277519
  }
277520
+ } else if (progressData.type === "background_agents_progress") {
277521
+ const agents = progressData.agents;
277522
+ yield {
277523
+ type: "system",
277524
+ subtype: "background_agents_progress",
277525
+ agents,
277526
+ session_id: getSessionId(),
277527
+ parent_tool_use_id: null,
277528
+ uuid: message.uuid
277529
+ };
277520
277530
  }
277521
277531
  break;
277522
277532
  }
@@ -376527,7 +376537,9 @@ ${reasons}`);
376527
376537
  const isCoordinator = false;
376528
376538
  const forceAsync = isForkSubagentEnabled();
376529
376539
  const assistantForceAsync = false;
376530
- const shouldRunAsync = (run_in_background === true || selectedAgent.background === true || isCoordinator || forceAsync || assistantForceAsync || (proactiveModule?.isProactiveActive() ?? false)) && !isBackgroundTasksDisabled2;
376540
+ const sdkForceAsync = toolUseContext.options.querySource === "sdk";
376541
+ const shouldRunAsync = (run_in_background === true || selectedAgent.background === true || isCoordinator || forceAsync || assistantForceAsync || sdkForceAsync || (proactiveModule?.isProactiveActive() ?? false)) && !isBackgroundTasksDisabled2;
376542
+ metadata.isAsync = shouldRunAsync;
376531
376543
  const workerPermissionContext = {
376532
376544
  ...appState.toolPermissionContext,
376533
376545
  mode: selectedAgent.permissionMode ?? "acceptEdits"
@@ -376665,7 +376677,7 @@ ${reasons}`);
376665
376677
  const normalizedFirstMessage = normalizedPromptMessages.find((m2) => m2.type === "user");
376666
376678
  if (normalizedFirstMessage && normalizedFirstMessage.type === "user" && onProgress) {
376667
376679
  onProgress({
376668
- toolUseID: `agent_${assistantMessage.message.id}`,
376680
+ toolUseID: `agent_${assistantMessage.message.id}:${toolUseContext.toolUseId}`,
376669
376681
  data: {
376670
376682
  message: normalizedFirstMessage,
376671
376683
  type: "agent_progress",
@@ -376892,7 +376904,7 @@ ${reasons}`);
376892
376904
  }
376893
376905
  if (onProgress) {
376894
376906
  onProgress({
376895
- toolUseID: `agent_${assistantMessage.message.id}`,
376907
+ toolUseID: `agent_${assistantMessage.message.id}:${toolUseContext.toolUseId}`,
376896
376908
  data: {
376897
376909
  message: m2,
376898
376910
  type: "agent_progress",
@@ -377957,7 +377969,8 @@ function enqueueAgentNotification({
377957
377969
  shouldEnqueue = true;
377958
377970
  return {
377959
377971
  ...task,
377960
- notified: true
377972
+ notified: true,
377973
+ completionNotificationQueued: true
377961
377974
  };
377962
377975
  });
377963
377976
  if (!shouldEnqueue) {
@@ -378117,7 +378130,8 @@ function registerAsyncAgent({
378117
378130
  isBackgrounded: true,
378118
378131
  pendingMessages: [],
378119
378132
  retain: false,
378120
- diskLoaded: false
378133
+ diskLoaded: false,
378134
+ startTime: Date.now()
378121
378135
  };
378122
378136
  const unregisterCleanup = registerCleanup(async () => {
378123
378137
  killAsyncAgent(agentId, setAppState);
@@ -383656,6 +383670,58 @@ async function* query(params) {
383656
383670
  }
383657
383671
  return terminal;
383658
383672
  }
383673
+ async function* drainBackgroundAgents(toolUseContext, querySource) {
383674
+ const isMainThread = querySource.startsWith("repl_main_thread") || querySource === "sdk";
383675
+ const currentAgentId = toolUseContext.agentId;
383676
+ let lastProgressTime = Date.now();
383677
+ while (!toolUseContext.abortController.signal.aborted) {
383678
+ const notifications = dequeueAllMatching((cmd) => {
383679
+ if (cmd.mode !== "task-notification")
383680
+ return false;
383681
+ if (isMainThread)
383682
+ return cmd.agentId === undefined;
383683
+ return cmd.agentId === currentAgentId;
383684
+ });
383685
+ if (notifications.length > 0) {
383686
+ for (const notification of notifications) {
383687
+ yield createAttachmentMessage({
383688
+ type: "queued_command",
383689
+ prompt: notification.value,
383690
+ source_uuid: notification.uuid
383691
+ });
383692
+ }
383693
+ return;
383694
+ }
383695
+ const state = toolUseContext.getAppState();
383696
+ const tasks = state.tasks || {};
383697
+ const hasRelevantBackgroundAgent = Object.values(tasks).some((t) => isLocalAgentTask(t) && t.isBackgrounded && (t.status === "running" || !t.completionNotificationQueued && !t.notified));
383698
+ if (!hasRelevantBackgroundAgent) {
383699
+ return;
383700
+ }
383701
+ const now2 = Date.now();
383702
+ if (now2 - lastProgressTime >= BACKGROUND_AGENT_PROGRESS_INTERVAL_MS) {
383703
+ const bgTasks = Object.values(tasks).filter((t) => isLocalAgentTask(t) && t.isBackgrounded);
383704
+ if (bgTasks.length > 0) {
383705
+ yield {
383706
+ type: "progress",
383707
+ data: {
383708
+ type: "background_agents_progress",
383709
+ agents: bgTasks.map((t) => ({
383710
+ description: t.description ?? "",
383711
+ status: t.status,
383712
+ toolUseCount: t.progress?.toolUseCount ?? 0,
383713
+ activity: t.progress?.lastActivity?.activityDescription,
383714
+ startTime: t.startTime
383715
+ }))
383716
+ },
383717
+ uuid: crypto.randomUUID()
383718
+ };
383719
+ }
383720
+ lastProgressTime = now2;
383721
+ }
383722
+ await new Promise((r) => setTimeout(r, 1000));
383723
+ }
383724
+ }
383659
383725
  async function* queryLoop(params, consumedCommandUuids) {
383660
383726
  let __stack = [];
383661
383727
  try {
@@ -383684,6 +383750,8 @@ async function* queryLoop(params, consumedCommandUuids) {
383684
383750
  };
383685
383751
  const budgetTracker = null;
383686
383752
  let taskBudgetRemaining = undefined;
383753
+ let backgroundDrainCount = 0;
383754
+ const MAX_BACKGROUND_DRAIN_CONTINUATIONS = 2;
383687
383755
  const config4 = buildQueryConfig();
383688
383756
  const pendingMemoryPrefetch = __using(__stack, startRelevantMemoryPrefetch(state.messages, state.toolUseContext), 0);
383689
383757
  while (true) {
@@ -384158,6 +384226,42 @@ async function* queryLoop(params, consumedCommandUuids) {
384158
384226
  continue;
384159
384227
  }
384160
384228
  if (false) {}
384229
+ const bgNotifications = [];
384230
+ for await (const msg of drainBackgroundAgents(toolUseContext, querySource)) {
384231
+ if (msg.type === "attachment") {
384232
+ bgNotifications.push(msg);
384233
+ } else {
384234
+ yield msg;
384235
+ }
384236
+ }
384237
+ if (bgNotifications.length > 0) {
384238
+ for (const attachment of bgNotifications) {
384239
+ yield attachment;
384240
+ toolResults.push(attachment);
384241
+ }
384242
+ if (backgroundDrainCount >= MAX_BACKGROUND_DRAIN_CONTINUATIONS) {
384243
+ logForDebugging(`Background drain limit (${MAX_BACKGROUND_DRAIN_CONTINUATIONS}) reached, exiting. Remaining notifications will be consumed next turn.`);
384244
+ return { reason: "completed" };
384245
+ }
384246
+ backgroundDrainCount++;
384247
+ const nextTurnCount2 = turnCount + 1;
384248
+ if (maxTurns && nextTurnCount2 > maxTurns) {
384249
+ logForDebugging(`Background agent notification drain exceeds maxTurns (${nextTurnCount2} > ${maxTurns}). Allowing continuation.`);
384250
+ }
384251
+ state = {
384252
+ messages: [...messagesForQuery, ...assistantMessages, ...toolResults],
384253
+ toolUseContext,
384254
+ autoCompactTracking: tracking,
384255
+ maxOutputTokensRecoveryCount: 0,
384256
+ hasAttemptedReactiveCompact: false,
384257
+ maxOutputTokensOverride: undefined,
384258
+ pendingToolUseSummary: undefined,
384259
+ stopHookActive: undefined,
384260
+ turnCount: nextTurnCount2,
384261
+ transition: { reason: "background_agent_notification_drain" }
384262
+ };
384263
+ continue;
384264
+ }
384161
384265
  return { reason: "completed" };
384162
384266
  }
384163
384267
  let shouldPreventContinuation = false;
@@ -384359,7 +384463,7 @@ async function* queryLoop(params, consumedCommandUuids) {
384359
384463
  __callDispose(__stack, _err, _hasErr);
384360
384464
  }
384361
384465
  }
384362
- var reactiveCompact = null, skillPrefetch = null, MAX_OUTPUT_TOKENS_RECOVERY_LIMIT = 3;
384466
+ var reactiveCompact = null, skillPrefetch = null, MAX_OUTPUT_TOKENS_RECOVERY_LIMIT = 3, BACKGROUND_AGENT_PROGRESS_INTERVAL_MS = 120000;
384363
384467
  var init_query2 = __esm(() => {
384364
384468
  init_withRetry();
384365
384469
  init_autoCompact();
@@ -384391,6 +384495,7 @@ var init_query2 = __esm(() => {
384391
384495
  init_toolResultStorage();
384392
384496
  init_sessionStorage();
384393
384497
  init_stopHooks();
384498
+ init_LocalAgentTask();
384394
384499
  init_config5();
384395
384500
  init_deps();
384396
384501
  init_state();
@@ -384467,7 +384572,7 @@ function getAnthropicEnvMetadata() {
384467
384572
  function getBuildAgeMinutes() {
384468
384573
  if (false)
384469
384574
  ;
384470
- const buildTime = new Date("2026-05-15T01:32:18.200Z").getTime();
384575
+ const buildTime = new Date("2026-06-15T01:50:24.689Z").getTime();
384471
384576
  if (isNaN(buildTime))
384472
384577
  return;
384473
384578
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -452773,7 +452878,7 @@ var init_bridge_kick = __esm(() => {
452773
452878
  var call55 = async () => {
452774
452879
  return {
452775
452880
  type: "text",
452776
- value: `${"2.1.888"} (built ${"2026-05-15T01:32:18.200Z"})`
452881
+ value: `${"2.1.888"} (built ${"2026-06-15T01:50:24.689Z"})`
452777
452882
  };
452778
452883
  }, version2, version_default;
452779
452884
  var init_version = __esm(() => {
@@ -477231,6 +477336,26 @@ var init_openai = __esm(() => {
477231
477336
  });
477232
477337
 
477233
477338
  // src/services/api/openai/client.ts
477339
+ function getOpenAICustomHeaders() {
477340
+ const customHeaders = {};
477341
+ const customHeadersEnv = process.env.OPENAI_CUSTOM_HEADERS;
477342
+ if (!customHeadersEnv)
477343
+ return customHeaders;
477344
+ const headerStrings = customHeadersEnv.split(/\n|\r\n/);
477345
+ for (const headerString of headerStrings) {
477346
+ if (!headerString.trim())
477347
+ continue;
477348
+ const colonIdx = headerString.indexOf(":");
477349
+ if (colonIdx === -1)
477350
+ continue;
477351
+ const name = headerString.slice(0, colonIdx).trim();
477352
+ const value = headerString.slice(colonIdx + 1).trim();
477353
+ if (name) {
477354
+ customHeaders[name] = value;
477355
+ }
477356
+ }
477357
+ return customHeaders;
477358
+ }
477234
477359
  function getOpenAIClient(options) {
477235
477360
  if (cachedClient)
477236
477361
  return cachedClient;
@@ -477244,6 +477369,7 @@ function getOpenAIClient(options) {
477244
477369
  dangerouslyAllowBrowser: true,
477245
477370
  ...process.env.OPENAI_ORG_ID && { organization: process.env.OPENAI_ORG_ID },
477246
477371
  ...process.env.OPENAI_PROJECT_ID && { project: process.env.OPENAI_PROJECT_ID },
477372
+ defaultHeaders: getOpenAICustomHeaders(),
477247
477373
  fetchOptions: getProxyFetchOptions({ forAnthropicAPI: false }),
477248
477374
  ...options?.fetchOverride && { fetch: options.fetchOverride }
477249
477375
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caspian2026/agent-sdk",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "AI-powered agent SDK for the terminal",
5
5
  "type": "module",
6
6
  "engines": {