@desplega.ai/agent-swarm 1.129.0 → 1.131.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 (226) hide show
  1. package/README.md +2 -2
  2. package/dist/{actions-kfv2dawe.js → actions-w53mbns9.js} +11 -11
  3. package/dist/{anthropic-messages-3xgme8my.js → anthropic-messages-rjmd2e7n.js} +5 -5
  4. package/dist/{app-q8vjk6e8.js → app-m9gwqsqv.js} +8 -8
  5. package/dist/{artifact-hg4t1nx7.js → artifact-jysj3wrg.js} +2 -2
  6. package/dist/{assistant-g037r345.js → assistant-bp65m6f3.js} +13 -13
  7. package/dist/{azure-openai-responses-xa4sh9f6.js → azure-openai-responses-c0yjmbfd.js} +8 -5
  8. package/dist/{boot-reembed-18pzsrxa.js → boot-reembed-62p0at2k.js} +6 -6
  9. package/dist/{boot-reembed-wpks2cj8.js → boot-reembed-xmfp6wdh.js} +7 -7
  10. package/dist/{boot-scrub-logs-n7szd57r.js → boot-scrub-logs-rr8q2dms.js} +5 -5
  11. package/dist/{claude-adapter-qz4r0ajt.js → claude-adapter-2y47mrkd.js} +9 -9
  12. package/dist/{cli-mhjnbgb6.js → cli-0rcyq6d9.js} +450 -186
  13. package/dist/{cli-ttkmehy0.js → cli-2q72qz2s.js} +274 -25
  14. package/dist/{cli-gztgc3hz.js → cli-2wadx7p2.js} +2 -2
  15. package/dist/cli-3fj60etf.js +153 -0
  16. package/dist/{cli-7ecgm5v0.js → cli-3kf51j15.js} +1 -1
  17. package/dist/{cli-vgexpfsr.js → cli-57khth04.js} +6 -3
  18. package/dist/{cli-2mbe7vk0.js → cli-5dsbcjjw.js} +1 -1
  19. package/dist/{cli-etr62zy6.js → cli-5kx36evn.js} +2 -2
  20. package/dist/{cli-v2tr6amf.js → cli-5n6e5yfn.js} +30 -8
  21. package/dist/{cli-hx02s9zq.js → cli-5v4rw6yd.js} +2 -2
  22. package/dist/{cli-v37yr6mf.js → cli-5ze9rv97.js} +4 -4
  23. package/dist/{cli-ch7t5v7n.js → cli-6map995v.js} +9 -4
  24. package/dist/{cli-h0457a67.js → cli-70xqj0z3.js} +3 -3
  25. package/dist/{cli-kk4f9r17.js → cli-72q8m8gk.js} +8 -6
  26. package/dist/{cli-7padk69a.js → cli-78xwvkhj.js} +2 -2
  27. package/dist/{cli-dxtxacy7.js → cli-9dr5qzc0.js} +45 -8
  28. package/dist/{cli-17zxdgsq.js → cli-a40rnf71.js} +6 -6
  29. package/dist/{cli-t53vnnxz.js → cli-a4jzdpa3.js} +2514 -1055
  30. package/dist/{cli-w10fkrf1.js → cli-akdvwc9v.js} +354 -115
  31. package/dist/{cli-1qkk5er0.js → cli-bmze986d.js} +1 -1
  32. package/dist/{cli-ga12dc1d.js → cli-bqw0mt1n.js} +3 -3
  33. package/dist/{cli-0sf92efp.js → cli-cdeg08wx.js} +1 -1
  34. package/dist/{cli-a8ynhkyj.js → cli-cvgjwnh1.js} +17 -15
  35. package/dist/{cli-9fxg3v5m.js → cli-d2tfkcga.js} +4 -4
  36. package/dist/{cli-nhcd7x43.js → cli-d3x3x1c9.js} +2 -2
  37. package/dist/{cli-6nh2qxvh.js → cli-darcwax3.js} +1 -1
  38. package/dist/{cli-yjbgmysx.js → cli-e7ckcg4v.js} +12 -12
  39. package/dist/{cli-4n2gcjpd.js → cli-efxfnq6q.js} +4 -3
  40. package/dist/{cli-z9xqqhfk.js → cli-er3a4bb0.js} +1 -1
  41. package/dist/{cli-xg2eezyv.js → cli-f1am9szv.js} +1 -1
  42. package/dist/{cli-xy4cwsm9.js → cli-fywms69x.js} +1 -1
  43. package/dist/{cli-33jj76y8.js → cli-g6b8x1h8.js} +1 -1
  44. package/dist/{cli-epsvdckx.js → cli-gm9cbhbq.js} +20 -10
  45. package/dist/{cli-rkndnn90.js → cli-k9qkf1hw.js} +6 -4
  46. package/dist/{cli-zejvt395.js → cli-kh3ba2zf.js} +1 -1
  47. package/dist/{cli-gb25p1h2.js → cli-nm5gtp1x.js} +2 -2
  48. package/dist/{cli-akxnpx17.js → cli-pm6xbh84.js} +1829 -1629
  49. package/dist/{cli-2k0ztbfp.js → cli-psh3c4va.js} +1 -1
  50. package/dist/{cli-39vgrsep.js → cli-qv61hp37.js} +2 -2
  51. package/dist/{cli-hv2fndhm.js → cli-r6kqqbj0.js} +6 -4
  52. package/dist/{cli-1y1cm570.js → cli-rzbpmxdr.js} +1 -1
  53. package/dist/{cli-mmrk00vp.js → cli-t1xze5qh.js} +1 -1
  54. package/dist/{cli-g252a9ky.js → cli-t55yw3a1.js} +2 -2
  55. package/dist/{cli-7bz8dzqa.js → cli-t76vw5db.js} +1184 -1522
  56. package/dist/{cli-4n4mdv21.js → cli-xpxde7rm.js} +7 -3
  57. package/dist/{cli-fpaa5k2q.js → cli-yw8vghx2.js} +54 -18
  58. package/dist/cli-zsspvvm2.js +490 -0
  59. package/dist/cli.js +27 -25
  60. package/dist/{codex-adapter-7v6t7ff6.js → codex-adapter-d24q75wk.js} +7 -7
  61. package/dist/{codex-hook-amndawyb.js → codex-hook-hq54t9ft.js} +2 -2
  62. package/dist/{codex-session-runner-e7j4khe2.js → codex-session-runner-g50vcsex.js} +7 -7
  63. package/dist/{commands-ex0k5tbf.js → commands-c3nrc5hg.js} +5 -5
  64. package/dist/{db-df7jatfc.js → db-nt7fg3tw.js} +5 -5
  65. package/dist/{google-generative-ai-y42hnw9p.js → google-generative-ai-hysrd8qx.js} +7 -5
  66. package/dist/{google-vertex-4sg66gb6.js → google-vertex-p5arrga0.js} +7 -5
  67. package/dist/{handlers-1j2cfqt2.js → handlers-fkr6swat.js} +13 -13
  68. package/dist/{hook-nx9a0mj3.js → hook-77wpvnjc.js} +7 -7
  69. package/dist/{hook-w6yaf6sy.js → hook-g019yehy.js} +8 -8
  70. package/dist/{http-4tz5h8wg.js → http-jewj0syk.js} +2993 -716
  71. package/dist/{index-0bpkzb09.js → index-070v4eyb.js} +3 -3
  72. package/dist/{index-0s67qv7h.js → index-6gm5he8h.js} +11 -11
  73. package/dist/{index-35gtv6gj.js → index-7n2xpbd4.js} +310 -40
  74. package/dist/{index-ker3gccb.js → index-9znhar3x.js} +4 -4
  75. package/dist/{index-5n2c8yay.js → index-hase6zbe.js} +2 -2
  76. package/dist/{index-kcf3tm9h.js → index-hfvggd0z.js} +12 -12
  77. package/dist/{index-7c0jqna0.js → index-hp1kdbjj.js} +13 -13
  78. package/dist/{keepalive-3j4a9168.js → keepalive-j0fjvqfd.js} +7 -7
  79. package/dist/{lead-6kpevymb.js → lead-1n8x30xe.js} +33 -33
  80. package/dist/{maintenance-m1k82ean.js → maintenance-gvev11sa.js} +7 -7
  81. package/dist/{mistral-conversations-bjkdfb6z.js → mistral-conversations-81fwav0j.js} +6 -6
  82. package/dist/{oauth-refresh-sweep-881k8e4q.js → oauth-refresh-sweep-s9ecsvh0.js} +6 -6
  83. package/dist/{onboard-c0ykffjn.js → onboard-pvm5b38w.js} +2 -2
  84. package/dist/{openai-codex-responses-xetseqvt.js → openai-codex-responses-5g27pd6f.js} +43 -23
  85. package/dist/{openai-completions-5r2g5axa.js → openai-completions-3vkmfz2a.js} +55 -11
  86. package/dist/{openai-responses-ce67hd23.js → openai-responses-dg4t7j7a.js} +8 -5
  87. package/dist/{openrouter-images-pzfp22jb.js → openrouter-images-g3gm8931.js} +1 -1
  88. package/dist/{otel-impl-sqagjerv.js → otel-impl-p6jvgd9c.js} +6 -4
  89. package/dist/{otel-3mp81ppd.js → otel-nqa12wf3.js} +2 -2
  90. package/dist/{pi-mono-adapter-k584k16g.js → pi-mono-adapter-t091s27g.js} +17117 -7517
  91. package/dist/{pricing-refresh-y82whbf9.js → pricing-refresh-k49rcyed.js} +7 -7
  92. package/dist/{rbac-roles-nvkqmzyd.js → rbac-roles-30pspvy7.js} +7 -7
  93. package/dist/{rbac-roles-4ht8gegc.js → rbac-roles-cr80g96t.js} +6 -6
  94. package/dist/{render-v2-wvqdgvvp.js → render-v2-xm457ng1.js} +8 -8
  95. package/dist/{seed-pricing-fy3rxhde.js → seed-pricing-yhpv35fr.js} +6 -6
  96. package/dist/{setup-ak5cnc6f.js → setup-nytnmwwr.js} +2 -2
  97. package/dist/{worker-d8769q8a.js → worker-msytr2cw.js} +33 -33
  98. package/openapi.json +34039 -11036
  99. package/package.json +8 -6
  100. package/src/apps/definition.ts +368 -26
  101. package/src/apps/row-store.ts +66 -10
  102. package/src/apps/schema-migrate.ts +95 -1
  103. package/src/apps/store.ts +13 -4
  104. package/src/apps/sync-run-as.ts +18 -0
  105. package/src/apps/sync.ts +934 -0
  106. package/src/apps/version.ts +16 -2
  107. package/src/assets/key.ts +8 -1
  108. package/src/be/asset-key-audit.ts +3 -1
  109. package/src/be/db-queries/mcp-oauth.ts +297 -24
  110. package/src/be/db.ts +42 -1
  111. package/src/be/migrations/129_asset_keys_apps_scripts.sql +161 -0
  112. package/src/be/scripts/db.ts +5 -2
  113. package/src/be/scripts/typecheck.ts +1 -0
  114. package/src/be/seed-scripts/catalog/app-sync-run.ts +32 -0
  115. package/src/be/seed-scripts/catalog/github-issues-pull.ts +102 -0
  116. package/src/be/seed-scripts/index.ts +18 -0
  117. package/src/be/seed-skills/index.ts +7 -0
  118. package/src/http/active-sessions.ts +26 -18
  119. package/src/http/agents.ts +94 -27
  120. package/src/http/api-keys.ts +91 -17
  121. package/src/http/approval-requests.ts +87 -10
  122. package/src/http/apps.ts +361 -53
  123. package/src/http/assets.ts +165 -31
  124. package/src/http/budgets.ts +7 -5
  125. package/src/http/codex-oauth-keep-warm.ts +21 -3
  126. package/src/http/config.ts +46 -16
  127. package/src/http/context.ts +33 -6
  128. package/src/http/ecosystem.ts +20 -6
  129. package/src/http/events.ts +24 -9
  130. package/src/http/favorites.ts +20 -6
  131. package/src/http/fs.ts +60 -17
  132. package/src/http/heartbeat.ts +18 -4
  133. package/src/http/inbox-state.ts +12 -6
  134. package/src/http/integrations.ts +25 -5
  135. package/src/http/kv.ts +36 -15
  136. package/src/http/mcp-bridge.ts +5 -1
  137. package/src/http/mcp-oauth.ts +332 -17
  138. package/src/http/mcp-servers.ts +56 -18
  139. package/src/http/memory.ts +282 -29
  140. package/src/http/metrics.ts +80 -17
  141. package/src/http/oauth-callback.ts +10 -4
  142. package/src/http/oauth-generic.ts +5 -1
  143. package/src/http/oauth-locks.ts +6 -3
  144. package/src/http/openapi.ts +57 -9
  145. package/src/http/page-proxy.ts +25 -5
  146. package/src/http/pages-public.ts +37 -20
  147. package/src/http/pages.ts +93 -28
  148. package/src/http/poll.ts +89 -5
  149. package/src/http/pricing.ts +9 -6
  150. package/src/http/prompt-templates.ts +85 -21
  151. package/src/http/route-def.ts +67 -4
  152. package/src/http/schedules.ts +63 -14
  153. package/src/http/script-connection-proxy.ts +30 -4
  154. package/src/http/script-connections.ts +393 -43
  155. package/src/http/script-runs.ts +73 -19
  156. package/src/http/scripts.ts +257 -39
  157. package/src/http/session-data.ts +87 -14
  158. package/src/http/sessions.ts +80 -5
  159. package/src/http/skills.ts +115 -35
  160. package/src/http/stats.ts +94 -13
  161. package/src/http/task-templates.ts +6 -4
  162. package/src/http/tasks.ts +230 -61
  163. package/src/http/trackers/jira.ts +90 -30
  164. package/src/http/trackers/linear.ts +46 -12
  165. package/src/http/users.ts +162 -25
  166. package/src/http/utils.ts +12 -2
  167. package/src/http/webhooks.ts +30 -16
  168. package/src/http/workflow-events.ts +18 -5
  169. package/src/http/workflows.ts +128 -39
  170. package/src/http/x.ts +37 -6
  171. package/src/oauth/ensure-mcp-token.ts +16 -1
  172. package/src/oauth/mcp-wrapper.ts +281 -26
  173. package/src/providers/pi-mono-adapter.ts +1 -1
  174. package/src/scripts-runtime/credential-broker/README.md +1 -1
  175. package/src/scripts-runtime/credential-broker/fetch-patch.ts +12 -2
  176. package/src/scripts-runtime/sdk-allowlist.ts +1 -0
  177. package/src/scripts-runtime/stdlib/fetch.ts +6 -0
  178. package/src/scripts-runtime/types/stdlib.d.ts +1 -0
  179. package/src/scripts-runtime/types/swarm-sdk.d.ts +1 -0
  180. package/src/server.ts +2 -0
  181. package/src/tests/apps-rbac.test.ts +110 -0
  182. package/src/tests/apps-spike2.test.ts +4 -1
  183. package/src/tests/apps-sync-engine.test.ts +2540 -0
  184. package/src/tests/apps-sync.test.ts +1627 -0
  185. package/src/tests/asset-key-api.test.ts +48 -2
  186. package/src/tests/asset-key-invariants.test.ts +92 -0
  187. package/src/tests/asset-key-migration.test.ts +174 -8
  188. package/src/tests/asset-key-normalization.test.ts +2 -0
  189. package/src/tests/credential-broker.test.ts +27 -2
  190. package/src/tests/mcp-oauth-dcr-reuse.test.ts +743 -0
  191. package/src/tests/mcp-oauth-ensure-token.test.ts +45 -0
  192. package/src/tests/mcp-oauth-manual-client.test.ts +135 -2
  193. package/src/tests/mcp-oauth-queries.test.ts +153 -0
  194. package/src/tests/mcp-oauth-wrapper.test.ts +432 -0
  195. package/src/tests/memory-http-recall-gating.test.ts +2 -0
  196. package/src/tests/openapi-response-contract.test.ts +138 -0
  197. package/src/tests/rbac-admission-e2e.test.ts +68 -0
  198. package/src/tests/script-connections.test.ts +3 -0
  199. package/src/tests/scripts-runtime-fetch.test.ts +121 -0
  200. package/src/tests/scripts-runtime-secret-egress.test.ts +4 -2
  201. package/src/tests/seed-scripts.test.ts +2 -2
  202. package/src/tests/swarm-tool-result-gate.test.ts +32 -0
  203. package/src/tests/task-working-dir.test.ts +8 -4
  204. package/src/tests/whoami-route.test.ts +127 -0
  205. package/src/tests/workflow-engine-v2.test.ts +80 -7
  206. package/src/tests/workflow-swarm-script.test.ts +104 -0
  207. package/src/tools/app-get.ts +10 -2
  208. package/src/tools/app-rollback.ts +1 -0
  209. package/src/tools/app-sync.ts +112 -0
  210. package/src/tools/script-common.ts +20 -0
  211. package/src/tools/tool-config.ts +2 -1
  212. package/src/tools/utils.ts +11 -0
  213. package/src/tools/workflows/create-workflow.ts +4 -1
  214. package/src/types.ts +1394 -1206
  215. package/src/utils/template.ts +8 -1
  216. package/src/utils/zod-openapi.ts +11 -0
  217. package/src/workflows/engine.ts +27 -4
  218. package/src/workflows/executors/swarm-script.ts +28 -0
  219. package/src/workflows/retry-poller.ts +19 -2
  220. package/templates/skills/apps/content.md +94 -5
  221. package/templates/skills/asset-namespaces/content.md +2 -2
  222. package/templates/skills/scheduled-task-resilience/SKILL.md +102 -0
  223. package/templates/skills/scheduled-task-resilience/config.json +14 -0
  224. package/templates/skills/scheduled-task-resilience/content.md +97 -0
  225. package/dist/cli-7wmybrt5.js +0 -115
  226. package/dist/cli-d91pvmq1.js +0 -14
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  formatProviderError,
19
19
  normalizeProviderError
20
- } from "./cli-ch7t5v7n.js";
20
+ } from "./cli-6map995v.js";
21
21
  import {
22
22
  getProviderEnvValue
23
23
  } from "./cli-4wgngmwv.js";
@@ -28,21 +28,23 @@ import {
28
28
  parseStreamingJson
29
29
  } from "./cli-zyxs93y9.js";
30
30
  import {
31
+ MIN_ANSWER_TOKENS,
31
32
  appendGrammarToolInputJsonDelta,
32
33
  buildBaseOptions,
34
+ clampReasoning,
33
35
  createGrammarToolInputProperties,
34
36
  getGrammarToolInput,
35
37
  resolveGrammarConstrainedSampling,
36
38
  resolveJsonSchemaStrictSampling,
37
39
  transformMessages
38
- } from "./cli-vgexpfsr.js";
40
+ } from "./cli-57khth04.js";
39
41
  import {
40
42
  sanitizeSurrogates
41
43
  } from "./cli-y2apkfe2.js";
42
44
  import {
43
45
  calculateCost,
44
46
  clampThinkingLevel
45
- } from "./cli-w10fkrf1.js";
47
+ } from "./cli-akdvwc9v.js";
46
48
  import {
47
49
  AssistantMessageEventStream
48
50
  } from "./cli-8wrympd7.js";
@@ -432,10 +434,13 @@ var stream = (model, context, options) => {
432
434
  if (output.stopReason === "aborted") {
433
435
  throw new Error("Request was aborted");
434
436
  }
437
+ if (!hasFinishReason && !compat.supportsFinishReason) {
438
+ output.stopReason = output.content.some((block) => block.type === "toolCall") ? "toolUse" : "stop";
439
+ }
435
440
  if (output.stopReason === "error") {
436
441
  throw new Error(output.errorMessage || "Provider returned an error stop reason");
437
442
  }
438
- if (!hasFinishReason || output.stopReason === "pending") {
443
+ if (compat.supportsFinishReason && !hasFinishReason || output.stopReason === "pending") {
439
444
  throw new Error("Stream ended without finish_reason");
440
445
  }
441
446
  stream2.push({ type: "done", reason: output.stopReason, message: output });
@@ -469,7 +474,8 @@ var streamSimple = (model, context, options) => {
469
474
  return stream(model, context, {
470
475
  ...base,
471
476
  reasoningEffort,
472
- toolChoice
477
+ toolChoice,
478
+ thinkingBudgets: options?.thinkingBudgets
473
479
  });
474
480
  };
475
481
  function createClient(model, context, apiKey, optionsHeaders, fetch, sessionId, compat = getCompat(model)) {
@@ -570,10 +576,24 @@ function buildParams(model, context, options, compat = getCompat(model), cacheRe
570
576
  preserve_thinking: true
571
577
  };
572
578
  } else if (compat.thinkingFormat === "chat-template" && model.reasoning) {
573
- const chatTemplateKwargs = buildChatTemplateKwargs(model, options, compat);
579
+ const chatTemplateKwargs = buildChatTemplateValues(model, options, compat.chatTemplateKwargs);
574
580
  if (chatTemplateKwargs) {
575
581
  params.chat_template_kwargs = chatTemplateKwargs;
576
582
  }
583
+ } else if (compat.thinkingFormat === "baseten" && model.reasoning) {
584
+ const basetenParams = params;
585
+ const chatTemplateArgs = buildChatTemplateValues(model, options, compat.chatTemplateArgs);
586
+ if (chatTemplateArgs) {
587
+ basetenParams.chat_template_args = chatTemplateArgs;
588
+ }
589
+ if (compat.supportsReasoningEffort) {
590
+ const requestedEffort = options?.reasoningEffort;
591
+ const mappedEffort = requestedEffort ? model.thinkingLevelMap?.[requestedEffort] : model.thinkingLevelMap?.off;
592
+ const effort = mappedEffort === undefined ? requestedEffort : mappedEffort;
593
+ if (typeof effort === "string") {
594
+ basetenParams.reasoning_effort = effort;
595
+ }
596
+ }
577
597
  } else if (compat.thinkingFormat === "deepseek" && model.reasoning) {
578
598
  if (options?.reasoningEffort) {
579
599
  params.thinking = { type: "enabled" };
@@ -618,6 +638,21 @@ function buildParams(model, context, options, compat = getCompat(model), cacheRe
618
638
  params.reasoning_effort = offValue;
619
639
  }
620
640
  }
641
+ if (compat.supportsThinkingTokenBudget && options?.reasoningEffort && model.reasoning) {
642
+ const level = clampReasoning(options.reasoningEffort);
643
+ const budgets = {
644
+ minimal: 1024,
645
+ low: 2048,
646
+ medium: 8192,
647
+ high: 16384,
648
+ ...options.thinkingBudgets
649
+ };
650
+ const ceiling = params.max_tokens ?? params.max_completion_tokens ?? model.maxTokens;
651
+ const budget = Math.min(budgets[level], Math.max(0, ceiling - MIN_ANSWER_TOKENS));
652
+ if (budget > 0) {
653
+ params.thinking_token_budget = budget;
654
+ }
655
+ }
621
656
  if (model.compat?.openRouterRouting) {
622
657
  params.provider = model.compat.openRouterRouting;
623
658
  }
@@ -632,17 +667,20 @@ function buildParams(model, context, options, compat = getCompat(model), cacheRe
632
667
  params.providerOptions = { gateway: gatewayOptions };
633
668
  }
634
669
  }
670
+ if (options?.samplingParams) {
671
+ Object.assign(params, options.samplingParams);
672
+ }
635
673
  return params;
636
674
  }
637
- function buildChatTemplateKwargs(model, options, compat) {
638
- const kwargs = {};
639
- for (const [key, value] of Object.entries(compat.chatTemplateKwargs)) {
675
+ function buildChatTemplateValues(model, options, values) {
676
+ const resolvedValues = {};
677
+ for (const [key, value] of Object.entries(values)) {
640
678
  const resolved = resolveChatTemplateKwargValue(model, options, value);
641
679
  if (resolved !== undefined) {
642
- kwargs[key] = resolved;
680
+ resolvedValues[key] = resolved;
643
681
  }
644
682
  }
645
- return Object.keys(kwargs).length > 0 ? kwargs : undefined;
683
+ return Object.keys(resolvedValues).length > 0 ? resolvedValues : undefined;
646
684
  }
647
685
  function resolveChatTemplateKwargValue(model, options, value) {
648
686
  if (typeof value !== "object" || value === null) {
@@ -1041,6 +1079,7 @@ function detectCompat(model) {
1041
1079
  supportsDeveloperRole: isOpenRouterDeveloperRoleModel || !isNonStandard && !isOpenRouter,
1042
1080
  supportsReasoningEffort: !isGrok && !isZai && !isMoonshot && !isTogether && !isCloudflareAiGateway && !isNvidia && !isAntLing,
1043
1081
  supportsUsageInStreaming: true,
1082
+ supportsFinishReason: true,
1044
1083
  maxTokensField: useMaxTokens ? "max_tokens" : "max_completion_tokens",
1045
1084
  requiresToolResultName: false,
1046
1085
  requiresAssistantAfterToolResult: false,
@@ -1050,7 +1089,9 @@ function detectCompat(model) {
1050
1089
  openRouterRouting: {},
1051
1090
  vercelGatewayRouting: {},
1052
1091
  chatTemplateKwargs: {},
1092
+ chatTemplateArgs: {},
1053
1093
  zaiToolStream: false,
1094
+ supportsThinkingTokenBudget: false,
1054
1095
  supportsStrictMode: !isMoonshot && !isTogether && !isCloudflareAiGateway && !isNvidia,
1055
1096
  supportsOpenAIGrammarTools: false,
1056
1097
  cacheControlFormat,
@@ -1069,6 +1110,7 @@ function getCompat(model) {
1069
1110
  supportsDeveloperRole: model.compat.supportsDeveloperRole ?? detected.supportsDeveloperRole,
1070
1111
  supportsReasoningEffort: model.compat.supportsReasoningEffort ?? detected.supportsReasoningEffort,
1071
1112
  supportsUsageInStreaming: model.compat.supportsUsageInStreaming ?? detected.supportsUsageInStreaming,
1113
+ supportsFinishReason: model.compat.supportsFinishReason ?? detected.supportsFinishReason,
1072
1114
  maxTokensField: model.compat.maxTokensField ?? detected.maxTokensField,
1073
1115
  requiresToolResultName: model.compat.requiresToolResultName ?? detected.requiresToolResultName,
1074
1116
  requiresAssistantAfterToolResult: model.compat.requiresAssistantAfterToolResult ?? detected.requiresAssistantAfterToolResult,
@@ -1078,7 +1120,9 @@ function getCompat(model) {
1078
1120
  openRouterRouting: model.compat.openRouterRouting ?? {},
1079
1121
  vercelGatewayRouting: model.compat.vercelGatewayRouting ?? detected.vercelGatewayRouting,
1080
1122
  chatTemplateKwargs: model.compat.chatTemplateKwargs ?? detected.chatTemplateKwargs,
1123
+ chatTemplateArgs: model.compat.chatTemplateArgs ?? detected.chatTemplateArgs,
1081
1124
  zaiToolStream: model.compat.zaiToolStream ?? detected.zaiToolStream,
1125
+ supportsThinkingTokenBudget: model.compat.supportsThinkingTokenBudget ?? detected.supportsThinkingTokenBudget,
1082
1126
  supportsStrictMode: model.compat.supportsStrictMode ?? detected.supportsStrictMode,
1083
1127
  supportsOpenAIGrammarTools: model.compat.supportsOpenAIGrammarTools ?? detected.supportsOpenAIGrammarTools,
1084
1128
  cacheControlFormat: model.compat.cacheControlFormat ?? detected.cacheControlFormat,
@@ -2,7 +2,7 @@ import {
2
2
  convertResponsesMessages,
3
3
  convertResponsesTools,
4
4
  processResponsesStream
5
- } from "./cli-epsvdckx.js";
5
+ } from "./cli-gm9cbhbq.js";
6
6
  import {
7
7
  clampOpenAIPromptCacheKey
8
8
  } from "./cli-mrptpp86.js";
@@ -23,7 +23,7 @@ import {
23
23
  import {
24
24
  formatProviderError,
25
25
  normalizeProviderError
26
- } from "./cli-ch7t5v7n.js";
26
+ } from "./cli-6map995v.js";
27
27
  import {
28
28
  getProviderEnvValue
29
29
  } from "./cli-4wgngmwv.js";
@@ -34,11 +34,11 @@ import"./cli-zyxs93y9.js";
34
34
  import {
35
35
  buildBaseOptions,
36
36
  createGrammarToolInputProperties
37
- } from "./cli-vgexpfsr.js";
37
+ } from "./cli-57khth04.js";
38
38
  import"./cli-y2apkfe2.js";
39
39
  import {
40
40
  clampThinkingLevel
41
- } from "./cli-w10fkrf1.js";
41
+ } from "./cli-akdvwc9v.js";
42
42
  import {
43
43
  AssistantMessageEventStream
44
44
  } from "./cli-8wrympd7.js";
@@ -149,7 +149,7 @@ var stream = (model, context, options) => {
149
149
  throw new Error("OpenAI Responses stream ended without a stop reason");
150
150
  }
151
151
  if (output.stopReason === "aborted" || output.stopReason === "error") {
152
- throw new Error("An unknown error occurred");
152
+ throw new Error(output.errorMessage || "An unknown error occurred");
153
153
  }
154
154
  stream2.push({ type: "done", reason: output.stopReason, message: output });
155
155
  stream2.end();
@@ -264,6 +264,9 @@ function buildParams(model, context, options, compat = getCompat(model), grammar
264
264
  if (model.provider === "xai")
265
265
  params.include = ["reasoning.encrypted_content"];
266
266
  }
267
+ if (options?.samplingParams) {
268
+ Object.assign(params, options.samplingParams);
269
+ }
267
270
  return params;
268
271
  }
269
272
  function getServiceTierCostMultiplier(model, serviceTier) {
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  formatProviderError,
9
9
  normalizeProviderError
10
- } from "./cli-ch7t5v7n.js";
10
+ } from "./cli-6map995v.js";
11
11
  import {
12
12
  headersToRecord,
13
13
  providerHeadersToRecord
@@ -13,13 +13,15 @@ import {
13
13
  import {
14
14
  init_package,
15
15
  package_default
16
- } from "./cli-kk4f9r17.js";
16
+ } from "./cli-72q8m8gk.js";
17
17
  import {
18
- require_supports_color
19
- } from "./cli-7wmybrt5.js";
18
+ exports_supports_color,
19
+ init_supports_color
20
+ } from "./cli-3fj60etf.js";
20
21
  import {
21
22
  __commonJS,
22
23
  __require,
24
+ __toCommonJS,
23
25
  __toESM
24
26
  } from "./cli-p9swy5t3.js";
25
27
 
@@ -13432,7 +13434,7 @@ var require_node7 = __commonJS((exports, module) => {
13432
13434
  exports.destroy = util.deprecate(() => {}, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
13433
13435
  exports.colors = [6, 2, 3, 4, 5, 1];
13434
13436
  try {
13435
- const supportsColor = require_supports_color();
13437
+ const supportsColor = (init_supports_color(), __toCommonJS(exports_supports_color));
13436
13438
  if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
13437
13439
  exports.colors = [
13438
13440
  20,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  UsageInfo$outboundSchema,
3
3
  completionChunkFromJSON
4
- } from "./cli-zejvt395.js";
4
+ } from "./cli-kh3ba2zf.js";
5
5
  import {
6
6
  require_stable_attributes,
7
7
  require_stable_events,
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  require_src
12
12
  } from "./cli-7zd05xb4.js";
13
- import"./cli-2mbe7vk0.js";
13
+ import"./cli-5dsbcjjw.js";
14
14
  import {
15
15
  __commonJS,
16
16
  __toESM