@openclaw/ai 2026.9.5 → 2026.9.7

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 (102) hide show
  1. package/dist/{anthropic-COtDvgtt.mjs → anthropic-Cw2pgccz.mjs} +59 -88
  2. package/dist/{anthropic-payload-policy-5Erq1Nzy.d.mts → anthropic-payload-policy-NIPVYXPq.d.mts} +8 -6
  3. package/dist/{anthropic-stream-reducer-BvdYYWL8.mjs → anthropic-stream-reducer-D9MCkl8Z.mjs} +194 -247
  4. package/dist/{api-registry-Ba2Cv-ut.d.mts → api-registry-D-nbmSqr.d.mts} +2 -2
  5. package/dist/{azure-openai-responses-YrgnD583.mjs → azure-openai-responses-BwT3-X8P.mjs} +22 -33
  6. package/dist/{base64-BQOzsvUH.mjs → base64-C1PsYcRQ.mjs} +22 -16
  7. package/dist/{diagnostics-Dm4bisWG.mjs → diagnostics-CJaB6g8J.mjs} +55 -10
  8. package/dist/{diagnostics-CPeq9F7y.mjs → diagnostics-DzrF1h4J.mjs} +18 -1
  9. package/dist/diagnostics.d.mts +11 -5
  10. package/dist/diagnostics.mjs +4 -4
  11. package/dist/{env-api-keys-bktO00EJ.mjs → env-api-keys-CyX4VKGO.mjs} +7 -5
  12. package/dist/event-stream-CMQfX_yr.d.mts +1 -0
  13. package/dist/{event-stream-CCoa-qSI.d.mts → event-stream-DOPFYVqs.d.mts} +2 -2
  14. package/dist/{event-stream-D8PARQfL.mjs → event-stream-vd9UnCAU.mjs} +10 -0
  15. package/dist/event-stream.d.mts +2 -2
  16. package/dist/event-stream.mjs +1 -1
  17. package/dist/{google-BuhpRO9r.mjs → google-BfapkS_K.mjs} +8 -11
  18. package/dist/google-interactions-DW3iXzjc.mjs +574 -0
  19. package/dist/{google-messages-CyWnYlh0.mjs → google-messages-CtjVtVot.mjs} +35 -71
  20. package/dist/{google-shared-BT5ZeNer.mjs → google-shared-Y2YfotEu.mjs} +43 -47
  21. package/dist/{google-vertex-C7EplRvt.mjs → google-vertex-Dov4kBWu.mjs} +16 -30
  22. package/dist/{host-B4MeUNBc.mjs → host-CHi3X87F.mjs} +64 -189
  23. package/dist/{host-policy-DUnXSx0I.mjs → host-policy-BOAwRg_M.mjs} +2 -14
  24. package/dist/{host-FZ1RA_qD.d.mts → host-rxlNaBwm.d.mts} +9 -3
  25. package/dist/{index-DaF2QbwS.d.mts → index-D6KsSE74.d.mts} +57 -9
  26. package/dist/index.d.mts +7 -7
  27. package/dist/index.mjs +7 -7
  28. package/dist/internal/anthropic.d.mts +13 -8
  29. package/dist/internal/anthropic.mjs +5 -5
  30. package/dist/internal/openai-completions-compat.d.mts +1 -1
  31. package/dist/internal/openai-completions-compat.mjs +1 -1
  32. package/dist/internal/openai-responses-payload-policy.d.mts +1 -1
  33. package/dist/internal/openai-responses-payload-policy.mjs +2 -2
  34. package/dist/internal/openai.d.mts +46 -9
  35. package/dist/internal/openai.mjs +13 -12
  36. package/dist/internal/runtime.d.mts +31 -70
  37. package/dist/internal/runtime.mjs +11 -66
  38. package/dist/internal/shared.d.mts +16 -13
  39. package/dist/internal/shared.mjs +6 -5
  40. package/dist/internal/tool-schema.d.mts +2 -2
  41. package/dist/internal/tool-schema.mjs +2 -2
  42. package/dist/{mistral-moA-mbwl.mjs → mistral-RS6mboC-.mjs} +46 -93
  43. package/dist/{model-transport-url-DKocrEsb.d.mts → model-transport-url-C5f59L3Y.d.mts} +1 -1
  44. package/dist/{openai-chatgpt-responses-DWID3EFO.mjs → openai-chatgpt-responses-CYbidtrn.mjs} +118 -99
  45. package/dist/{openai-completions-DJ1Vm-CD.mjs → openai-completions-D14ihPYk.mjs} +14 -12
  46. package/dist/{openai-completions-compat-CkwdxTZx.mjs → openai-completions-compat-BOVWBZDn.mjs} +3 -5
  47. package/dist/{openai-completions-compat-JE7gqxb9.d.mts → openai-completions-compat-qJjmqQ71.d.mts} +3 -3
  48. package/dist/{openai-completions-stream-Bu98b0Hv.mjs → openai-completions-stream-CDCuw3DP.mjs} +124 -183
  49. package/dist/{openai-prompt-cache-CJ_xEevu.d.mts → openai-prompt-cache-CouErLh7.d.mts} +2 -2
  50. package/dist/{openai-prompt-cache-1wfaIszn.mjs → openai-prompt-cache-D2V7MqR7.mjs} +1 -1
  51. package/dist/{openai-provider-client-DPo0Hmak.mjs → openai-provider-client-CwfsGBbA.mjs} +2 -2
  52. package/dist/{openai-reasoning-effort-NlFZmfEu.mjs → openai-reasoning-effort-ConhwkeX.mjs} +14 -5
  53. package/dist/{openai-responses-BejZzQCP.mjs → openai-responses-CKCBEc2W.mjs} +12 -11
  54. package/dist/openai-responses-compaction-replay-DiYn-gFM.d.mts +12 -0
  55. package/dist/{openai-responses-compaction-window-D6P5oZP5.mjs → openai-responses-compaction-window-UNK1GDpy.mjs} +5 -5
  56. package/dist/{openai-responses-contracts-DWrfMODE.mjs → openai-responses-contracts-CLxnqS9p.mjs} +1 -1
  57. package/dist/{openai-responses-contracts-Dflvrfa8.d.mts → openai-responses-contracts-D1iZ0njF.d.mts} +4 -4
  58. package/dist/{openai-responses-prompt-observer-internal-C15_-OwV.mjs → openai-responses-prompt-observer-internal-iAqLb4tk.mjs} +16 -13
  59. package/dist/openai-responses-request-lifecycle-Fsag-IGZ.mjs +36 -0
  60. package/dist/{openai-responses-shared-CwsziD_m.mjs → openai-responses-shared-DL4ulQn7.mjs} +838 -577
  61. package/dist/{openai-responses-terminal-usage-Dl3J6zrf.d.mts → openai-responses-terminal-usage-BE7lf7nW.d.mts} +2 -2
  62. package/dist/{openai-stop-reason-Drnn_6Qj.mjs → openai-stop-reason-8s70vDXj.mjs} +2 -12
  63. package/dist/{openai-tool-schema-ynZBgqW-.d.mts → openai-tool-schema-a5ysBBga.d.mts} +0 -6
  64. package/dist/{openai-tool-schema-BO8rwyAD.mjs → openai-tool-schema-vsl-cE-n.mjs} +365 -429
  65. package/dist/{openai-transport-params-DQeuAvBl.mjs → openai-transport-params-BwlpzX-2.mjs} +61 -106
  66. package/dist/{positive-integer-DtjCkbue.mjs → positive-integer-CjN5OJbH.mjs} +1 -1
  67. package/dist/{provider-error-DDqw9Qda.mjs → provider-error-CwT_j2v0.mjs} +82 -10
  68. package/dist/{provider-error-CzNw4BWX.d.mts → provider-error-xumb1V3F.d.mts} +3 -1
  69. package/dist/{provider-options-DprLsWh9.d.mts → provider-options-Df7ov0K1.d.mts} +6 -4
  70. package/dist/{provider-replay-context-CnUSOwhr.mjs → provider-replay-context-DsyI5jOP.mjs} +1 -1
  71. package/dist/{provider-transcript-transform-BsRAhuWJ.mjs → provider-transcript-transform-JbFbHV8h.mjs} +17 -2
  72. package/dist/{provider-transport-turn-state-CkGToCD2.mjs → provider-transport-turn-state-BheUi_hl.mjs} +1 -1
  73. package/dist/{provider-types-CAKRC7N5.d.mts → provider-types-d4XnoZMd.d.mts} +3 -3
  74. package/dist/provider-types.d.mts +6 -6
  75. package/dist/providers.d.mts +2 -2
  76. package/dist/providers.mjs +15 -11
  77. package/dist/{reasoning-tag-text-partitioner-Dy9IO8Dc.mjs → reasoning-tag-text-partitioner-B6FIIBt6.mjs} +193 -98
  78. package/dist/{record-coerce-DwRYMj3t.mjs → record-coerce-CNDovvft.mjs} +1 -1
  79. package/dist/simple-options-CGAkCwtM.mjs +349 -0
  80. package/dist/{src-DeKjbE8I.mjs → src-H4aXcFuX.mjs} +53 -26
  81. package/dist/{stream-CREqxHgU.mjs → stream-DDsCBgd-.mjs} +1 -7
  82. package/dist/{stream-first-event-timeout-C9ZadkJW.mjs → stream-first-event-timeout-B9o0S4SZ.mjs} +1 -1
  83. package/dist/{tool-schema-json-projection-CD9c_fK8.mjs → tool-schema-json-projection-Ct8SeBeJ.mjs} +63 -23
  84. package/dist/{transport-stream-shared-D-6FQSHm.mjs → transport-stream-shared-Dh5qKJ8e.mjs} +63 -37
  85. package/dist/{transport-stream-shared-BbUkFaHi.d.mts → transport-stream-shared-yYhXa4kX.d.mts} +13 -7
  86. package/dist/{transport-utils-1cyq5Y7x.mjs → transport-utils-C-4bf2Ok.mjs} +3 -4
  87. package/dist/transports.d.mts +37 -33
  88. package/dist/transports.mjs +208 -239
  89. package/dist/types-CB-_vNyI.d.mts +1 -0
  90. package/dist/{types-4_uVs5WH.d.mts → types-CLLR3eB4.d.mts} +5 -1
  91. package/dist/types.d.mts +6 -6
  92. package/dist/types.mjs +5 -5
  93. package/dist/{validation-Dw7cb6BV.mjs → validation-BFZc40Ig.mjs} +80 -54
  94. package/dist/{validation-Ctzu2DhF.d.mts → validation-Cat2wQsc.d.mts} +1 -1
  95. package/dist/validation.d.mts +1 -1
  96. package/dist/validation.mjs +1 -1
  97. package/package.json +6 -6
  98. package/dist/assistant-output-BsEkB-vU.mjs +0 -16
  99. package/dist/event-stream-DmSCpi1T.d.mts +0 -1
  100. package/dist/simple-options-C6cFWj_f.mjs +0 -175
  101. package/dist/types-DkJfb4W3.d.mts +0 -1
  102. package/dist/utf16-slice-CvGodqok.mjs +0 -29
@@ -1,10 +1,36 @@
1
- import { n as createAssistantMessageDiagnostic, t as appendAssistantMessageDiagnostic } from "./diagnostics-CPeq9F7y.mjs";
2
- import { i as createAssistantMessageEventStream } from "./event-stream-D8PARQfL.mjs";
3
- import { i as asOptionalRecord, n as asNullableRecord, t as asNonArrayRecord } from "./record-coerce-DwRYMj3t.mjs";
4
- import { n as getAiTransportHost, v as sanitizeSurrogates } from "./host-B4MeUNBc.mjs";
5
- import { i as projectDiagnosticValue, n as projectProviderError } from "./provider-error-DDqw9Qda.mjs";
6
- import { c as isTransientNetworkError } from "./diagnostics-Dm4bisWG.mjs";
1
+ import { n as createAssistantMessageDiagnostic, t as appendAssistantMessageDiagnostic } from "./diagnostics-DzrF1h4J.mjs";
2
+ import { i as createAssistantMessageEventStream } from "./event-stream-vd9UnCAU.mjs";
3
+ import { i as asOptionalRecord, n as asNullableRecord, t as asNonArrayRecord } from "./record-coerce-CNDovvft.mjs";
4
+ import { S as headersToRecord, n as getAiTransportHost } from "./host-CHi3X87F.mjs";
5
+ import { i as projectDiagnosticValue, n as projectProviderError } from "./provider-error-CwT_j2v0.mjs";
6
+ import { c as isTransientNetworkError } from "./diagnostics-CJaB6g8J.mjs";
7
7
  import { parse } from "partial-json";
8
+ //#region packages/ai/src/utils/sanitize-unicode.ts
9
+ /**
10
+ * Removes unpaired Unicode surrogate characters from a string.
11
+ *
12
+ * Unpaired surrogates (high surrogates 0xD800-0xDBFF without matching low surrogates 0xDC00-0xDFFF,
13
+ * or vice versa) cause JSON serialization errors in many API providers.
14
+ *
15
+ * Valid emoji and other characters outside the Basic Multilingual Plane use properly paired
16
+ * surrogates and will NOT be affected by this function.
17
+ *
18
+ * @param text - The text to sanitize
19
+ * @returns The sanitized text with unpaired surrogates removed
20
+ *
21
+ * @example
22
+ * // Valid emoji (properly paired surrogates) are preserved
23
+ * sanitizeSurrogates("Hello 🙈 World") // => "Hello 🙈 World"
24
+ *
25
+ * // Unpaired high surrogate is removed
26
+ * const unpaired = String.fromCharCode(0xD83D); // high surrogate without low
27
+ * sanitizeSurrogates(`Text ${unpaired} here`) // => "Text here"
28
+ */
29
+ function sanitizeSurrogates(text) {
30
+ if (text.isWellFormed()) return text;
31
+ return text.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g, "");
32
+ }
33
+ //#endregion
8
34
  //#region packages/ai/src/utils/hash.ts
9
35
  /** Fast deterministic hash to shorten long strings */
10
36
  function shortHash(str) {
@@ -20,14 +46,6 @@ function shortHash(str) {
20
46
  return (h2 >>> 0).toString(36) + (h1 >>> 0).toString(36);
21
47
  }
22
48
  //#endregion
23
- //#region packages/ai/src/utils/headers.ts
24
- /** Converts a Headers object to a plain record for provider request handling. */
25
- function headersToRecord(headers) {
26
- const result = {};
27
- for (const [key, value] of headers.entries()) result[key] = value;
28
- return result;
29
- }
30
- //#endregion
31
49
  //#region packages/ai/src/utils/json-parse.ts
32
50
  const VALID_JSON_ESCAPES = /* @__PURE__ */ new Set([
33
51
  "\"",
@@ -51,16 +69,6 @@ function isControlCharacter(char) {
51
69
  const codePoint = char.codePointAt(0);
52
70
  return codePoint !== void 0 && codePoint >= 0 && codePoint <= 31;
53
71
  }
54
- function escapeControlCharacter(char) {
55
- switch (char) {
56
- case "\b": return "\\b";
57
- case "\f": return "\\f";
58
- case "\n": return "\\n";
59
- case "\r": return "\\r";
60
- case " ": return "\\t";
61
- default: return `\\u${char.codePointAt(0)?.toString(16).padStart(4, "0") ?? "0000"}`;
62
- }
63
- }
64
72
  /**
65
73
  * Repairs malformed JSON string literals by:
66
74
  * - escaping raw control characters inside strings
@@ -129,7 +137,7 @@ function repairJson(json, options) {
129
137
  stringValuePrefix += "\\";
130
138
  continue;
131
139
  }
132
- repaired += isControlCharacter(char) ? escapeControlCharacter(char) : char;
140
+ repaired += isControlCharacter(char) ? JSON.stringify(char).slice(1, -1) : char;
133
141
  stringValuePrefix += char;
134
142
  }
135
143
  return repaired;
@@ -355,17 +363,6 @@ function mergeTransportHeaders(...headerSources) {
355
363
  }
356
364
  return Object.keys(merged).length > 0 ? merged : void 0;
357
365
  }
358
- function mergeTransportMetadata(payload, metadata) {
359
- if (!metadata || Object.keys(metadata).length === 0) return payload;
360
- const existingMetadata = asOptionalRecord(payload.metadata);
361
- return {
362
- ...payload,
363
- metadata: {
364
- ...existingMetadata,
365
- ...metadata
366
- }
367
- };
368
- }
369
366
  function createEmptyTransportUsage() {
370
367
  return {
371
368
  input: 0,
@@ -403,6 +400,35 @@ function transportAbortError(signal) {
403
400
  const reason = signal?.reason;
404
401
  return reason instanceof Error && typeof reason.code === "string" ? reason : /* @__PURE__ */ new Error("Request was aborted");
405
402
  }
403
+ const MODEL_STREAM_COOPERATIVE_YIELD_INTERVAL_MS = 12;
404
+ const MODEL_STREAM_COOPERATIVE_YIELD_MAX_EVENTS = 64;
405
+ function throwIfModelStreamAborted(signal) {
406
+ if (signal?.aborted) throw transportAbortError(signal);
407
+ }
408
+ function createModelStreamCooperativeScheduler(signal) {
409
+ let lastYieldedAt = Date.now();
410
+ let eventsSinceYield = 0;
411
+ return { async afterEvent() {
412
+ throwIfModelStreamAborted(signal);
413
+ eventsSinceYield += 1;
414
+ if (eventsSinceYield < MODEL_STREAM_COOPERATIVE_YIELD_MAX_EVENTS && Date.now() - lastYieldedAt < MODEL_STREAM_COOPERATIVE_YIELD_INTERVAL_MS) return;
415
+ eventsSinceYield = 0;
416
+ await new Promise((resolve) => {
417
+ setTimeout(resolve, 0);
418
+ });
419
+ throwIfModelStreamAborted(signal);
420
+ lastYieldedAt = Date.now();
421
+ } };
422
+ }
423
+ /** Keep ready provider events from monopolizing the main loop, including ignored events. */
424
+ async function* iterateModelStream(events, signal) {
425
+ const scheduler = createModelStreamCooperativeScheduler(signal);
426
+ for await (const event of events) {
427
+ throwIfModelStreamAborted(signal);
428
+ yield event;
429
+ await scheduler.afterEvent();
430
+ }
431
+ }
406
432
  const providerAcceptanceObserver = Symbol("openclaw.providerAcceptanceObserver");
407
433
  function readProviderAcceptanceObserver(options) {
408
434
  if (options === null || typeof options !== "object") return;
@@ -564,4 +590,4 @@ function failTransportStream(params) {
564
590
  stream.end();
565
591
  }
566
592
  //#endregion
567
- export { quoteUnsafeIntegerLiterals as C, repairJson as D, parseStreamingJson as E, headersToRecord as O, parseJsonPreservingUnsafeIntegers as S, parseJsonWithRepair as T, sanitizeTransportPayloadText as _, createEmptyTransportUsage as a, withProviderResponseHook as b, finalizeTerminalToolCallArguments as c, mergeTransportMetadata as d, notifyProviderHttpMetadata as f, sanitizeNonEmptyTransportPayloadText as g, parseTerminalToolCallArguments as h, copyProviderAcceptanceObserver as i, shortHash as k, finalizeTransportStream as l, notifyProviderStreamOpened as m, assignTransportErrorDetails as n, createWritableTransportEventStream as o, notifyProviderHttpResponse as p, coerceTransportToolCallArguments as r, failTransportStream as s, IncompleteToolCallError as t, mergeTransportHeaders as u, transportAbortError as v, createToolArgumentPreviewSchedule as w, parseJsonObjectPreservingUnsafeIntegers as x, withProviderAcceptanceObserver as y };
593
+ export { shortHash as A, parseJsonObjectPreservingUnsafeIntegers as C, parseJsonWithRepair as D, createToolArgumentPreviewSchedule as E, parseStreamingJson as O, withProviderResponseHook as S, quoteUnsafeIntegerLiterals as T, sanitizeNonEmptyTransportPayloadText as _, createEmptyTransportUsage as a, transportAbortError as b, failTransportStream as c, iterateModelStream as d, mergeTransportHeaders as f, parseTerminalToolCallArguments as g, notifyProviderStreamOpened as h, copyProviderAcceptanceObserver as i, sanitizeSurrogates as j, repairJson as k, finalizeTerminalToolCallArguments as l, notifyProviderHttpResponse as m, assignTransportErrorDetails as n, createModelStreamCooperativeScheduler as o, notifyProviderHttpMetadata as p, coerceTransportToolCallArguments as r, createWritableTransportEventStream as s, IncompleteToolCallError as t, finalizeTransportStream as u, sanitizeTransportPayloadText as v, parseJsonPreservingUnsafeIntegers as w, withProviderAcceptanceObserver as x, throwIfModelStreamAborted as y };
@@ -1,8 +1,8 @@
1
- import "./index-DaF2QbwS.mjs";
2
- import { O as Model, V as ProviderResponse, Y as StreamOptions, a as AssistantMessage, ot as Usage } from "./types-4_uVs5WH.mjs";
3
- import { r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-CCoa-qSI.mjs";
4
- import "./event-stream-DmSCpi1T.mjs";
5
- import { t as ProviderErrorProjection } from "./provider-error-CzNw4BWX.mjs";
1
+ import "./index-D6KsSE74.mjs";
2
+ import { O as Model, V as ProviderResponse, Y as StreamOptions, a as AssistantMessage, ot as Usage } from "./types-CLLR3eB4.mjs";
3
+ import { r as createAssistantMessageEventStream, t as AssistantMessageEventStream } from "./event-stream-DOPFYVqs.mjs";
4
+ import "./event-stream-CMQfX_yr.mjs";
5
+ import { t as ProviderErrorProjection } from "./provider-error-xumb1V3F.mjs";
6
6
  //#region packages/ai/src/transports/transport-stream-shared.d.ts
7
7
  type ContextUsage = NonNullable<Usage["contextUsage"]>;
8
8
  type TransportUsage = {
@@ -43,7 +43,6 @@ declare function finalizeTerminalToolCallArguments<T extends {
43
43
  repairStringLiterals?: boolean;
44
44
  }): void;
45
45
  declare function mergeTransportHeaders(...headerSources: Array<Record<string, string> | undefined>): Record<string, string> | undefined;
46
- declare function mergeTransportMetadata<T extends Record<string, unknown>>(payload: T, metadata?: Record<string, string>): T;
47
46
  declare function createEmptyTransportUsage(): TransportUsage;
48
47
  declare function createWritableTransportEventStream(): {
49
48
  eventStream: AssistantMessageEventStream;
@@ -60,6 +59,13 @@ declare function createWritableTransportEventStream(): {
60
59
  * already emits rather than churning it.
61
60
  */
62
61
  declare function transportAbortError(signal?: AbortSignal): Error;
62
+ type ModelStreamCooperativeScheduler = {
63
+ afterEvent: () => Promise<void>;
64
+ };
65
+ declare function throwIfModelStreamAborted(signal?: AbortSignal): void;
66
+ declare function createModelStreamCooperativeScheduler(signal?: AbortSignal): ModelStreamCooperativeScheduler;
67
+ /** Keep ready provider events from monopolizing the main loop, including ignored events. */
68
+ declare function iterateModelStream<T>(events: AsyncIterable<T> | Iterable<T>, signal?: AbortSignal): AsyncGenerator<T>;
63
69
  type ProviderAcceptance = {
64
70
  kind: "http_response";
65
71
  status: number;
@@ -119,4 +125,4 @@ declare function failTransportStream(params: {
119
125
  cleanup?: () => void;
120
126
  }): void;
121
127
  //#endregion
122
- export { withProviderResponseHook as S, parseTerminalToolCallArguments as _, coerceTransportToolCallArguments as a, transportAbortError as b, createWritableTransportEventStream as c, finalizeTransportStream as d, mergeTransportHeaders as f, notifyProviderStreamOpened as g, notifyProviderHttpResponse as h, assignTransportErrorDetails as i, failTransportStream as l, notifyProviderHttpMetadata as m, ProviderAcceptance as n, copyProviderAcceptanceObserver as o, mergeTransportMetadata as p, WritableTransportStream as r, createEmptyTransportUsage as s, IncompleteToolCallError as t, finalizeTerminalToolCallArguments as u, sanitizeNonEmptyTransportPayloadText as v, withProviderAcceptanceObserver as x, sanitizeTransportPayloadText as y };
128
+ export { withProviderAcceptanceObserver as C, transportAbortError as S, notifyProviderStreamOpened as _, coerceTransportToolCallArguments as a, sanitizeTransportPayloadText as b, createModelStreamCooperativeScheduler as c, finalizeTerminalToolCallArguments as d, finalizeTransportStream as f, notifyProviderHttpResponse as g, notifyProviderHttpMetadata as h, assignTransportErrorDetails as i, createWritableTransportEventStream as l, mergeTransportHeaders as m, ProviderAcceptance as n, copyProviderAcceptanceObserver as o, iterateModelStream as p, WritableTransportStream as r, createEmptyTransportUsage as s, IncompleteToolCallError as t, failTransportStream as u, parseTerminalToolCallArguments as v, withProviderResponseHook as w, throwIfModelStreamAborted as x, sanitizeNonEmptyTransportPayloadText as y };
@@ -1,8 +1,7 @@
1
- import { n as getAiTransportHost } from "./host-B4MeUNBc.mjs";
2
- import { t as truncateUtf16Safe } from "./utf16-slice-CvGodqok.mjs";
3
- import "./provider-error-DDqw9Qda.mjs";
1
+ import { n as getAiTransportHost } from "./host-CHi3X87F.mjs";
2
+ import { o as truncateUtf16Safe } from "./provider-error-CwT_j2v0.mjs";
4
3
  import "./internal/retry-after.mjs";
5
- import "./positive-integer-DtjCkbue.mjs";
4
+ import "./positive-integer-CjN5OJbH.mjs";
6
5
  //#region packages/normalization-core/src/response-bytes.ts
7
6
  async function consumeResponseBytes(options) {
8
7
  let size = 0;
@@ -1,21 +1,22 @@
1
- import "./index-DaF2QbwS.mjs";
2
- import { $ as ThinkingContent, B as ProviderReplayState, K as StopReason, M as OpenAICompletionsCompat, O as Model, X as TextContent, Y as StreamOptions, _t as ModelDataThinkingFormat, a as AssistantMessage, d as Context, l as CacheRetention, n as Api, nt as Tool, ot as Usage, q as StreamFn, rt as ToolCall } from "./types-4_uVs5WH.mjs";
3
- import { n as ApiRegistry } from "./api-registry-Ba2Cv-ut.mjs";
4
- import { a as BaseOpenAIStreamOptions, c as OpenAIResponsesCompactionRejection, o as CodeModeToolSurfaceObservation, s as OpenAICompletionsOptions } from "./provider-options-DprLsWh9.mjs";
1
+ import "./index-D6KsSE74.mjs";
2
+ import { $ as ThinkingContent, B as ProviderReplayState, K as StopReason, M as OpenAICompletionsCompat, O as Model, X as TextContent, Y as StreamOptions, _t as ModelDataThinkingFormat, a as AssistantMessage, d as Context, l as CacheRetention, n as Api, nt as Tool, ot as Usage, q as StreamFn, rt as ToolCall } from "./types-CLLR3eB4.mjs";
3
+ import { n as ApiRegistry } from "./api-registry-D-nbmSqr.mjs";
4
+ import { o as AiProviderStreamHookContext } from "./host-rxlNaBwm.mjs";
5
+ import { a as BaseOpenAIStreamOptions, c as OpenAIResponsesCompactionRejection, o as CodeModeToolSurfaceObservation, s as OpenAICompletionsOptions } from "./provider-options-Df7ov0K1.mjs";
5
6
  import { n as OpenAIToolProjection } from "./openai-tool-projection-793cE3QX.mjs";
6
- import "./types-DkJfb4W3.mjs";
7
- import { a as buildAnthropicSystemBlocks, c as logAnthropicContextEdits, d as resolveAnthropicEphemeralCacheControl, f as resolveAnthropicPayloadPolicy, i as applyAnthropicRequestCacheControl, l as resolveAnthropicCacheOptions, n as applyAnthropicEphemeralCacheControlMarkers, o as isAnthropicServerToolClearingEnabled, p as resolveAnthropicServerCompactionPlan, r as applyAnthropicPayloadPolicyToParams, s as isDirectAnthropicModel, t as applyAnthropicContextManagementToRequest, u as resolveAnthropicContextManagementBetaHeader } from "./anthropic-payload-policy-5Erq1Nzy.mjs";
8
- import { a as resolveOpenAICompletionsCompat, i as isOpenAICodexResponsesModel, n as detectOpenAICompletionsCompat, o as resolveOpenAIPromptCacheKeySupport, r as isNativeOpenAIEndpoint, s as usesNativeOpenAICodexResponsesBackend, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-JE7gqxb9.mjs";
9
- import { i as ReplayableResponseCompactionItem, n as OpenAIResponsesOptions, r as OpenAIResponsesReasoningReplayMetadata, s as OpenAIResponsesCompactionOutput } from "./openai-responses-contracts-Dflvrfa8.mjs";
7
+ import "./types-CB-_vNyI.mjs";
8
+ import { a as buildAnthropicSystemBlocks, c as logAnthropicContextEdits, d as resolveAnthropicPayloadPolicy, f as resolveAnthropicRequestBetaHeader, i as applyAnthropicRequestCacheControl, l as resolveAnthropicCacheOptions, n as applyAnthropicEphemeralCacheControlMarkers, o as isAnthropicServerToolClearingEnabled, p as resolveAnthropicServerCompactionPlan, r as applyAnthropicPayloadPolicyToParams, s as isDirectAnthropicModel, t as applyAnthropicContextManagementToRequest, u as resolveAnthropicEphemeralCacheControl } from "./anthropic-payload-policy-NIPVYXPq.mjs";
9
+ import { a as resolveOpenAICompletionsCompat, i as isOpenAICodexResponsesModel, n as detectOpenAICompletionsCompat, o as resolveOpenAIPromptCacheKeySupport, r as isNativeOpenAIEndpoint, s as usesNativeOpenAICodexResponsesBackend, t as ResolvedOpenAICompletionsCompat } from "./openai-completions-compat-qJjmqQ71.mjs";
10
+ import { n as OpenAIResponsesOptions, r as OpenAIResponsesReasoningReplayMetadata, s as OpenAIResponsesCompactionOutput } from "./openai-responses-contracts-D1iZ0njF.mjs";
10
11
  import { i as resolveOpenAIResponsesServerCompactionPlan, n as resolveOpenAIResponsesCompactEndpointPlan, r as resolveOpenAIResponsesPayloadPolicy, t as applyOpenAIResponsesPayloadPolicy } from "./openai-responses-payload-policy-C7GsA1y0.mjs";
11
- import { S as withProviderResponseHook, _ as parseTerminalToolCallArguments, a as coerceTransportToolCallArguments, b as transportAbortError, c as createWritableTransportEventStream, d as finalizeTransportStream, f as mergeTransportHeaders, g as notifyProviderStreamOpened, h as notifyProviderHttpResponse, i as assignTransportErrorDetails, l as failTransportStream, m as notifyProviderHttpMetadata, n as ProviderAcceptance, o as copyProviderAcceptanceObserver, p as mergeTransportMetadata, r as WritableTransportStream, s as createEmptyTransportUsage, t as IncompleteToolCallError, u as finalizeTerminalToolCallArguments, v as sanitizeNonEmptyTransportPayloadText, x as withProviderAcceptanceObserver, y as sanitizeTransportPayloadText } from "./transport-stream-shared-BbUkFaHi.mjs";
12
+ import { n as captureOpenAIResponsesCompaction, t as CompactionReplayRefreshRequiredError } from "./openai-responses-compaction-replay-DiYn-gFM.mjs";
13
+ import { C as withProviderAcceptanceObserver, S as transportAbortError, _ as notifyProviderStreamOpened, a as coerceTransportToolCallArguments, b as sanitizeTransportPayloadText, c as createModelStreamCooperativeScheduler, d as finalizeTerminalToolCallArguments, f as finalizeTransportStream, g as notifyProviderHttpResponse, h as notifyProviderHttpMetadata, i as assignTransportErrorDetails, l as createWritableTransportEventStream, m as mergeTransportHeaders, n as ProviderAcceptance, o as copyProviderAcceptanceObserver, p as iterateModelStream, r as WritableTransportStream, s as createEmptyTransportUsage, t as IncompleteToolCallError, u as failTransportStream, v as parseTerminalToolCallArguments, w as withProviderResponseHook, x as throwIfModelStreamAborted, y as sanitizeNonEmptyTransportPayloadText } from "./transport-stream-shared-yYhXa4kX.mjs";
12
14
  import { r as sortPromptCacheToolsByName } from "./prompt-cache-stability-Cwcjv_fx.mjs";
13
- import { r as normalizeOpenAIStrictToolParameters } from "./openai-tool-schema-ynZBgqW-.mjs";
14
- import { d as VideoContent, i as ProviderContext, s as ProviderModel } from "./provider-types-CAKRC7N5.mjs";
15
- import { a as resolveModelSseDebugMode, i as resolveModelPayloadDebugMode, n as formatModelTransportDebugUrl, r as emitModelTransportDebug, t as formatModelTransportDebugBaseUrl } from "./model-transport-url-DKocrEsb.mjs";
15
+ import { r as normalizeOpenAIStrictToolParameters } from "./openai-tool-schema-a5ysBBga.mjs";
16
+ import { d as VideoContent, i as ProviderContext, s as ProviderModel } from "./provider-types-d4XnoZMd.mjs";
17
+ import { a as resolveModelSseDebugMode, i as resolveModelPayloadDebugMode, n as formatModelTransportDebugUrl, r as emitModelTransportDebug, t as formatModelTransportDebugBaseUrl } from "./model-transport-url-C5f59L3Y.mjs";
16
18
  import OpenAI from "openai";
17
19
  import { Part } from "@google/genai";
18
- import "openai/resources/responses/responses.js";
19
20
  import { ChatCompletionChunk } from "openai/resources/chat/completions.js";
20
21
  //#region packages/ai/src/transports/anthropic-transport-stream.d.ts
21
22
  /** Resolve the Anthropic Messages endpoint URL for the effective base URL. */
@@ -143,16 +144,11 @@ export declare function parseOpenAICompletionsUsage(rawUsage: NonNullable<ChatCo
143
144
  }): MutableAssistantOutput["usage"];
144
145
  export declare function createOpenAIResponseHook(onResponse: BaseOpenAIStreamOptions["onResponse"], response: Response, model: Model): (() => void | Promise<void>) | undefined;
145
146
  export declare function createOpenAIProviderAcceptanceHook(options: Pick<BaseOpenAIStreamOptions, "onResponse" | "signal"> | undefined, response: Response, model: Model): () => Promise<void>;
146
- type ModelStreamCooperativeScheduler = {
147
- afterEvent: () => Promise<void>;
148
- };
149
- export declare function throwIfModelStreamAborted(signal?: AbortSignal): void;
150
147
  /** Measure one UTF-8 append without double-counting a surrogate pair split across chunks. */
151
148
  export declare function measureUtf8AppendBytes(bufferEndsWithHighSurrogate: boolean, chunk: string): {
152
149
  bytes: number;
153
150
  endsWithHighSurrogate: boolean;
154
151
  };
155
- export declare function createModelStreamCooperativeScheduler(signal?: AbortSignal): ModelStreamCooperativeScheduler;
156
152
  export declare function resolvePromptCacheKey(options: Pick<BaseOpenAIStreamOptions, "promptCacheKey" | "sessionId"> | undefined, cacheRetention: "short" | "long" | "none"): string | undefined;
157
153
  export declare function isOpenAICompletionsThinkingEnabled(effort: string): boolean;
158
154
  export declare function readOpenAICompletionsContentDeltas(content: unknown, topLevelRefusal?: unknown, mirroredThinking?: readonly string[]): OpenAICompletionsContentDelta[];
@@ -201,6 +197,18 @@ export declare function resolveReplayableResponsesMessageId(params: {
201
197
  previousReplayItemWasReasoning: boolean;
202
198
  }): string | undefined;
203
199
  //#endregion
200
+ //#region packages/ai/src/transports/openai-responses-tool-call-id-shape.d.ts
201
+ export declare const OPENAI_RESPONSES_ID_MAX_LENGTH = 64;
202
+ export declare const OPENAI_RESPONSES_CALL_ID_RE: RegExp;
203
+ export declare const OPENAI_RESPONSES_FUNCTION_CALL_ITEM_ID_RE: RegExp;
204
+ export declare function splitOpenAIFunctionCallPairing(id: string): {
205
+ callId: string;
206
+ itemId?: string;
207
+ };
208
+ /** Same shaping `normalizeOpenAIResponsesToolCallIds` applies to a replayed `call_id`/`call_id|fc_id` pair. */
209
+ export declare function normalizeOpenAIResponsesFunctionCallId(id: string): string;
210
+ export declare function shouldNormalizeOpenAIResponsesToolCallId(id: string): boolean;
211
+ //#endregion
204
212
  //#region packages/ai/src/transports/openai-responses-client.d.ts
205
213
  export declare function createOpenAIResponsesTransportStreamFn(): StreamFn;
206
214
  export declare function createAzureOpenAIResponsesTransportStreamFn(): StreamFn;
@@ -224,12 +232,6 @@ type OpenAIResponsesCompactEndpointResult = {
224
232
  /** Run a compact-endpoint request through the session's prepared stream stack. */
225
233
  export declare function requestPreparedOpenAIResponsesCompaction(streamFn: StreamFn, model: Model, context: Context, options: OpenAIResponsesOptions): Promise<OpenAIResponsesCompactEndpointResult>;
226
234
  //#endregion
227
- //#region packages/ai/src/transports/openai-responses-compaction-replay.d.ts
228
- export declare function captureOpenAIResponsesCompaction(output: Pick<AssistantMessage, "providerReplay">, item: ReplayableResponseCompactionItem, boundary: number | "retained-users", model: Model, captureMetadata?: OpenAIResponsesReasoningReplayMetadata, compactedOutput?: OpenAIResponsesCompactionOutput): void;
229
- export declare class CompactionReplayRefreshRequiredError extends Error {
230
- constructor();
231
- }
232
- //#endregion
233
235
  //#region packages/ai/src/transports/openai-transport-params.d.ts
234
236
  export declare function readCodeModePayloadToolName(tool: unknown): string | undefined;
235
237
  export declare function filterCodeModePayloadTools(payload: unknown, visibleToolNames: ReadonlySet<string>, allowedHostedToolTypes?: ReadonlySet<string>, observer?: (observation: CodeModeToolSurfaceObservation) => void): void;
@@ -255,15 +257,10 @@ export declare function buildOpenAISdkRequestOptions(model: Model, signal?: Abor
255
257
  headers?: Record<string, string>;
256
258
  } | undefined;
257
259
  export declare function getCompat(model: OpenAIModeModel): {
258
- cacheControlFormat: "anthropic" | undefined;
259
- reasoningEffortMap: Record<string, string>;
260
- openRouterRouting: Record<string, unknown>;
261
- vercelGatewayRouting: Record<string, unknown>;
262
- requiresStringContent: boolean;
263
- strictMessageKeys: boolean;
264
260
  supportsStore: boolean;
265
261
  supportsDeveloperRole: boolean;
266
262
  supportsReasoningEffort: boolean;
263
+ supportedReasoningEfforts?: string[];
267
264
  supportsUsageInStreaming: boolean;
268
265
  maxTokensField: "max_completion_tokens" | "max_tokens";
269
266
  requiresToolResultName: boolean;
@@ -276,11 +273,16 @@ export declare function getCompat(model: OpenAIModeModel): {
276
273
  supportsJsonSchemaResponseFormat: boolean;
277
274
  supportsPromptCacheKey: boolean;
278
275
  supportsLongCacheRetention: boolean;
279
- supportedReasoningEfforts?: string[] | undefined;
280
- sessionAffinity: "openai" | "openrouter" | "none";
276
+ sessionAffinity: "none" | "openai" | "openrouter";
281
277
  visibleReasoningDetailTypes: string[];
282
278
  requiresNonEmptyUserOrAssistantMessage: boolean;
283
279
  configuredSupportsLongCacheRetention?: boolean;
280
+ cacheControlFormat: "anthropic" | undefined;
281
+ reasoningEffortMap: Record<string, string>;
282
+ openRouterRouting: Record<string, unknown>;
283
+ vercelGatewayRouting: Record<string, unknown>;
284
+ requiresStringContent: boolean;
285
+ strictMessageKeys: boolean;
284
286
  };
285
287
  //#endregion
286
288
  //#region packages/ai/src/transports/provider-compaction-replay.d.ts
@@ -353,6 +355,8 @@ export declare function prepareModelForSimpleCompletion<TApi extends Api>(params
353
355
  apiRegistry: ApiRegistry;
354
356
  model: Model<TApi>;
355
357
  cfg?: unknown;
358
+ auth?: AiProviderStreamHookContext["auth"];
359
+ agentId?: string;
356
360
  }): Model;
357
361
  //#endregion
358
362
  //#region packages/ai/src/transports/transport-utils.d.ts
@@ -428,4 +432,4 @@ export declare function convertGoogleTools(tools: Tool[]): {
428
432
  functionDeclarations: Record<string, unknown>[];
429
433
  }[] | undefined;
430
434
  //#endregion
431
- export { type GoogleStreamChunk, IncompleteToolCallError, type OpenAICompletionsOptions, type OpenAIResponsesCompactionRejection, ProviderAcceptance, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicContextManagementToRequest, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyAnthropicRequestCacheControl, applyOpenAIResponsesPayloadPolicy, assignTransportErrorDetails, buildAnthropicSystemBlocks, coerceTransportToolCallArguments, copyProviderAcceptanceObserver, createEmptyTransportUsage, createWritableTransportEventStream, detectOpenAICompletionsCompat, emitModelTransportDebug, failTransportStream, finalizeTerminalToolCallArguments, finalizeTransportStream, formatModelTransportDebugBaseUrl, formatModelTransportDebugUrl, isAnthropicServerToolClearingEnabled, isDirectAnthropicModel, isNativeOpenAIEndpoint, isOpenAICodexResponsesModel, logAnthropicContextEdits, mergeTransportHeaders, mergeTransportMetadata, notifyProviderHttpMetadata, notifyProviderHttpResponse, notifyProviderStreamOpened, parseTerminalToolCallArguments, resolveAnthropicCacheOptions, resolveAnthropicContextManagementBetaHeader, resolveAnthropicEphemeralCacheControl, resolveAnthropicPayloadPolicy, resolveAnthropicServerCompactionPlan, resolveModelPayloadDebugMode, resolveModelSseDebugMode, resolveOpenAICompletionsCompat, resolveOpenAIPromptCacheKeySupport, resolveOpenAIResponsesCompactEndpointPlan, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan, sanitizeNonEmptyTransportPayloadText, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, transportAbortError, usesNativeOpenAICodexResponsesBackend, withProviderAcceptanceObserver, withProviderResponseHook };
435
+ export { CompactionReplayRefreshRequiredError, type GoogleStreamChunk, IncompleteToolCallError, type OpenAICompletionsOptions, type OpenAIResponsesCompactionRejection, ProviderAcceptance, ResolvedOpenAICompletionsCompat, WritableTransportStream, applyAnthropicContextManagementToRequest, applyAnthropicEphemeralCacheControlMarkers, applyAnthropicPayloadPolicyToParams, applyAnthropicRequestCacheControl, applyOpenAIResponsesPayloadPolicy, assignTransportErrorDetails, buildAnthropicSystemBlocks, captureOpenAIResponsesCompaction, coerceTransportToolCallArguments, copyProviderAcceptanceObserver, createEmptyTransportUsage, createModelStreamCooperativeScheduler, createWritableTransportEventStream, detectOpenAICompletionsCompat, emitModelTransportDebug, failTransportStream, finalizeTerminalToolCallArguments, finalizeTransportStream, formatModelTransportDebugBaseUrl, formatModelTransportDebugUrl, isAnthropicServerToolClearingEnabled, isDirectAnthropicModel, isNativeOpenAIEndpoint, isOpenAICodexResponsesModel, iterateModelStream, logAnthropicContextEdits, mergeTransportHeaders, notifyProviderHttpMetadata, notifyProviderHttpResponse, notifyProviderStreamOpened, parseTerminalToolCallArguments, resolveAnthropicCacheOptions, resolveAnthropicEphemeralCacheControl, resolveAnthropicPayloadPolicy, resolveAnthropicRequestBetaHeader, resolveAnthropicServerCompactionPlan, resolveModelPayloadDebugMode, resolveModelSseDebugMode, resolveOpenAICompletionsCompat, resolveOpenAIPromptCacheKeySupport, resolveOpenAIResponsesCompactEndpointPlan, resolveOpenAIResponsesPayloadPolicy, resolveOpenAIResponsesServerCompactionPlan, sanitizeNonEmptyTransportPayloadText, sanitizeTransportPayloadText, sortPromptCacheToolsByName as sortTransportToolsByName, throwIfModelStreamAborted, transportAbortError, usesNativeOpenAICodexResponsesBackend, withProviderAcceptanceObserver, withProviderResponseHook };