@openclaw/ai 2026.9.1-beta.1 → 2026.9.1

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 (81) hide show
  1. package/dist/{anthropic-compaction-replay-nhKaCXu6.mjs → anthropic-compaction-replay-OMJZ0uyo.mjs} +37 -34
  2. package/dist/{anthropic-DI4PZKKB.mjs → anthropic-hk7F7ptG.mjs} +28 -25
  3. package/dist/{anthropic-payload-policy-B_0n0enE.d.mts → anthropic-payload-policy-DBT1itQ-.d.mts} +3 -3
  4. package/dist/{api-registry-CTd8NzcD.d.mts → api-registry-Cs6HGNqY.d.mts} +2 -2
  5. package/dist/{azure-openai-responses-D8dI0ekg.mjs → azure-openai-responses-CN4Fy5zV.mjs} +10 -7
  6. package/dist/{number-coercion-H9qHik3g.mjs → base64-CEFBpSkN.mjs} +73 -1
  7. package/dist/{diagnostics-COpOtRwq.mjs → diagnostics-CPeq9F7y.mjs} +5 -1
  8. package/dist/{diagnostics-BaTA9eVl.d.mts → diagnostics-DnPnOui6.d.mts} +5 -1
  9. package/dist/diagnostics-KhXK-QJI.mjs +136 -0
  10. package/dist/diagnostics.d.mts +8 -3
  11. package/dist/diagnostics.mjs +4 -3
  12. package/dist/{env-api-keys-DrgeBuva.mjs → env-api-keys-bktO00EJ.mjs} +2 -15
  13. package/dist/event-stream-DeDhbCc5.d.mts +1 -0
  14. package/dist/{event-stream-LiXePESD.d.mts → event-stream-vK_7r3bj.d.mts} +1 -1
  15. package/dist/event-stream.d.mts +2 -2
  16. package/dist/{google-Od-LLdVK.mjs → google-CC-nrwXg.mjs} +8 -6
  17. package/dist/{google-shared-Bgr9lFPw.mjs → google-shared-CjPY0hZM.mjs} +25 -23
  18. package/dist/{google-vertex-aerRSXc4.mjs → google-vertex-DCr0pyzQ.mjs} +7 -5
  19. package/dist/{host-D51fmkH6.mjs → host-BIaiBURL.mjs} +2 -2
  20. package/dist/{host-DsbPMFU6.d.mts → host-BztR4tQj.d.mts} +3 -3
  21. package/dist/index-AfaxKT8w.d.mts +111 -0
  22. package/dist/index.d.mts +10 -11
  23. package/dist/index.mjs +5 -5
  24. package/dist/internal/anthropic.d.mts +53 -52
  25. package/dist/internal/anthropic.mjs +5 -5
  26. package/dist/internal/openai-responses-payload-policy.d.mts +3 -3
  27. package/dist/internal/openai-responses-payload-policy.mjs +2 -3
  28. package/dist/internal/openai.d.mts +65 -63
  29. package/dist/internal/openai.mjs +9 -9
  30. package/dist/internal/retry-after.d.mts +2 -3
  31. package/dist/internal/runtime.d.mts +43 -43
  32. package/dist/internal/runtime.mjs +10 -8
  33. package/dist/internal/shared.d.mts +25 -25
  34. package/dist/internal/shared.mjs +95 -4
  35. package/dist/{mistral-EiHdymeb.mjs → mistral-B7etBd_H.mjs} +25 -20
  36. package/dist/{openai-chatgpt-responses-DHpF9o1e.mjs → openai-chatgpt-responses-BAJ4gq3i.mjs} +63 -122
  37. package/dist/{openai-completions-EFPiUGfS.mjs → openai-completions-D0QZ0AyB.mjs} +24 -20
  38. package/dist/{openai-completions-compat-BefmHT26.d.mts → openai-completions-compat-4IjSBpr6.d.mts} +5 -5
  39. package/dist/{openai-completions-stream-DUlGwRMz.mjs → openai-completions-stream-DZjwK8vp.mjs} +97 -90
  40. package/dist/{openai-responses-BogP8OjX.mjs → openai-responses-BEUlxfDu.mjs} +12 -8
  41. package/dist/openai-responses-compaction-window-DO7yV7az.mjs +686 -0
  42. package/dist/{openai-responses-contracts-Dvj_UtPy.d.mts → openai-responses-contracts-bPzSN_Ba.d.mts} +14 -5
  43. package/dist/{openai-responses-payload-policy-CNGFT9zr.d.mts → openai-responses-payload-policy-rLRPsSmB.d.mts} +1 -0
  44. package/dist/{openai-responses-prompt-observer-internal-Cd4hJG-S.mjs → openai-responses-prompt-observer-internal-C7x4IK7r.mjs} +4 -18
  45. package/dist/{openai-responses-shared-DJThc6jW.mjs → openai-responses-shared-DiAdpNAM.mjs} +274 -221
  46. package/dist/{openai-tool-schema-ho-hIkQf.mjs → openai-tool-schema-BMiHFH36.mjs} +14 -12
  47. package/dist/{provider-error-DDOs_Bz0.mjs → provider-error-B6EGq6gg.mjs} +14 -85
  48. package/dist/{provider-options-MdMBLzlU.d.mts → provider-options-CxFPtvh7.d.mts} +11 -3
  49. package/dist/{provider-transcript-transform-C01bQ5a3.mjs → provider-transcript-transform-WvJmFUAf.mjs} +1 -1
  50. package/dist/provider-types.d.mts +19 -20
  51. package/dist/providers.d.mts +5 -5
  52. package/dist/providers.mjs +9 -9
  53. package/dist/{reasoning-tag-text-partitioner-5ygO2rZc.mjs → reasoning-tag-text-partitioner-C-4uedDb.mjs} +93 -77
  54. package/dist/rolldown-runtime-BhDjJH2R.mjs +15 -0
  55. package/dist/{sanitize-unicode-DCkltN94.mjs → sanitize-unicode-S6binQG-.mjs} +2 -8
  56. package/dist/{simple-options-CFj7x3J4.mjs → simple-options-0PLDyJ-d.mjs} +42 -6
  57. package/dist/{src-Bu3FiFAG.mjs → src-C8U7lkoa.mjs} +75 -2
  58. package/dist/{stream-first-event-timeout-MK28puvq.mjs → stream-first-event-timeout-DcNjoFQE.mjs} +1 -1
  59. package/dist/{tool-schema-json-projection-qvTEs5Am.mjs → tool-schema-json-projection-BtZiml7r.mjs} +21 -31
  60. package/dist/{transport-stream-shared-rvaCyFYt.d.mts → transport-stream-shared-BrvFTkoO.d.mts} +5 -5
  61. package/dist/{transport-stream-shared-ljShVIZB.mjs → transport-stream-shared-CytPVLIg.mjs} +18 -5
  62. package/dist/{transport-utils-LJ1_rbi-.mjs → transport-utils-CtuS1Upe.mjs} +5 -8
  63. package/dist/transports.d.mts +120 -85
  64. package/dist/transports.mjs +218 -249
  65. package/dist/types-B5EFUmXs.d.mts +1 -0
  66. package/dist/{types-DhLoJbFm.d.mts → types-DbrhszyQ.d.mts} +27 -13
  67. package/dist/types.d.mts +7 -7
  68. package/dist/types.mjs +4 -4
  69. package/dist/{validation-Dk7q7NMN.d.mts → validation-BOwtcl9X.d.mts} +1 -1
  70. package/dist/{validation-B61OhAio.mjs → validation-CJZtym2g.mjs} +7 -5
  71. package/dist/validation.d.mts +1 -1
  72. package/dist/validation.mjs +1 -1
  73. package/package.json +5 -5
  74. package/dist/anthropic-BECQCNdF.d.mts +0 -98
  75. package/dist/event-stream-BKp4fOt_.d.mts +0 -1
  76. package/dist/index-Qbej8io0.d.mts +0 -3
  77. package/dist/openai-responses-contracts-QUY12X0B.mjs +0 -233
  78. package/dist/openai-responses-payload-policy-D8EdimYe.mjs +0 -204
  79. package/dist/provider-options-AvldWZt8.mjs +0 -21
  80. package/dist/tls-certificate-errors-DXSpluKI.mjs +0 -93
  81. package/dist/types-GiAjXatj.d.mts +0 -1
@@ -1,12 +1,12 @@
1
1
  import { n as clampOpenAIPromptCacheKey, t as OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH } from "../openai-prompt-cache-mZTCdRPo.mjs";
2
- import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-qvTEs5Am.mjs";
3
- import { g as convertMessages } from "../openai-completions-stream-DUlGwRMz.mjs";
4
- import { A as isAzureResponsesTextDeltaEvent, D as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, E as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, M as isResponsesTextContentPartType, N as isResponsesTextDeltaEventType, O as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, P as resolveResponsesMessageSnapshotCollapse, T as readResponsesToolCallItemIdentity, d as resolveResponsesTerminalStopReason, j as isAzureResponsesTextDeltaEventType, k as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, l as mapResponsesTerminalUsage, u as readResponsesReasoningTokens, w as createResponsesToolCallTracker } from "../openai-responses-shared-DJThc6jW.mjs";
5
- import { t as codeModeToolSurfaceObserver } from "../provider-options-AvldWZt8.mjs";
6
- import { _ as cleanSchemaForGemini, a as resolveOpenAIProjectedToolsStrictToolFlag, b as reconcileOpenAIResponsesToolChoice, c as extractToolSchemaModelCompat, d as shouldOmitEmptyArrayItems, f as stripUnsupportedSchemaKeywords, g as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, h as findLlamacppGbnfSchemaViolations, i as normalizeStrictOpenAIJsonSchema, l as normalizeToolParameterSchema, m as cleanSchemaForLlamacppGbnf, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, p as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics, u as resolveUnsupportedToolSchemaKeywords, v as projectOpenAITools, y as reconcileOpenAICompletionsToolChoice } from "../openai-tool-schema-ho-hIkQf.mjs";
7
- import { S as supportsOpenAITemperature, _ as isOpenAIGpt56Model, b as resolveOpenAISupportedReasoningEfforts, g as isOpenAIGpt55Model, h as isOpenAIGpt54MiniModel, m as responsesPromptObserver, v as normalizeOpenAIReasoningEffort, x as supportsOpenAIReasoningEffort, y as resolveOpenAIReasoningEffortForModel } from "../openai-responses-contracts-QUY12X0B.mjs";
2
+ import { a as codeModeToolSurfaceObserver, o as reasoningTagTextPolicy } from "../simple-options-0PLDyJ-d.mjs";
3
+ import { t as projectRuntimeToolInputSchema } from "../tool-schema-json-projection-BtZiml7r.mjs";
4
+ import { g as convertMessages } from "../openai-completions-stream-DZjwK8vp.mjs";
5
+ import { A as isAzureResponsesTextDeltaEvent, D as AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, E as AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, M as isResponsesTextContentPartType, N as isResponsesTextDeltaEventType, O as OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, P as resolveResponsesMessageSnapshotCollapse, T as readResponsesToolCallItemIdentity, d as resolveResponsesTerminalStopReason, j as isAzureResponsesTextDeltaEventType, k as OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, l as mapResponsesTerminalUsage, u as readResponsesReasoningTokens, w as createResponsesToolCallTracker } from "../openai-responses-shared-DiAdpNAM.mjs";
6
+ import { _ as cleanSchemaForGemini, a as resolveOpenAIProjectedToolsStrictToolFlag, b as reconcileOpenAIResponsesToolChoice, c as extractToolSchemaModelCompat, d as shouldOmitEmptyArrayItems, f as stripUnsupportedSchemaKeywords, g as GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, h as findLlamacppGbnfSchemaViolations, i as normalizeStrictOpenAIJsonSchema, l as normalizeToolParameterSchema, m as cleanSchemaForLlamacppGbnf, n as isStrictOpenAIJsonSchemaCompatible, o as findOpenAIStrictSchemaViolations, p as LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, r as normalizeOpenAIStrictToolParameters, s as normalizeOpenAIStrictCompatSchema, t as findOpenAIStrictToolProjectionDiagnostics, u as resolveUnsupportedToolSchemaKeywords, v as projectOpenAITools, y as reconcileOpenAICompletionsToolChoice } from "../openai-tool-schema-BMiHFH36.mjs";
7
+ import { A as supportsOpenAITemperature, C as isOpenAIGpt54MiniModel, D as resolveOpenAIReasoningEffortForModel, E as normalizeOpenAIReasoningEffort, O as resolveOpenAISupportedReasoningEfforts, S as responsesPromptObserver, T as isOpenAIGpt56Model, k as supportsOpenAIReasoningEffort, w as isOpenAIGpt55Model } from "../openai-responses-compaction-window-DO7yV7az.mjs";
8
8
  import { t as mapOpenAIStopReason } from "../openai-stop-reason-Drnn_6Qj.mjs";
9
9
  import { i as resolveAzureDeploymentNameFromMap, n as isTraditionalAzureOpenAIHost, r as parseAzureDeploymentNameMap, t as isOpenAICompatibleAzureResponsesBaseUrl } from "../azure-openai-responses-client-compat-C7K7QfUE.mjs";
10
- import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-EFPiUGfS.mjs";
11
- import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-BogP8OjX.mjs";
12
- export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
10
+ import { n as streamOpenAICompletions, r as streamSimpleOpenAICompletions } from "../openai-completions-D0QZ0AyB.mjs";
11
+ import { n as streamOpenAIResponses, r as streamSimpleOpenAIResponses } from "../openai-responses-BEUlxfDu.mjs";
12
+ export { AZURE_RESPONSES_TEXT_CONTENT_PART_TYPE, AZURE_RESPONSES_TEXT_DELTA_EVENT_TYPE, GEMINI_UNSUPPORTED_SCHEMA_KEYWORDS, LLAMACPP_GBNF_MAX_REPETITION_THRESHOLD, OPENAI_PROMPT_CACHE_KEY_MAX_LENGTH, OPENAI_RESPONSES_OUTPUT_TEXT_CONTENT_PART_TYPE, OPENAI_RESPONSES_OUTPUT_TEXT_DELTA_EVENT_TYPE, clampOpenAIPromptCacheKey, cleanSchemaForGemini, cleanSchemaForLlamacppGbnf, codeModeToolSurfaceObserver, convertMessages, createResponsesToolCallTracker, extractToolSchemaModelCompat, findLlamacppGbnfSchemaViolations, findOpenAIStrictSchemaViolations, findOpenAIStrictToolProjectionDiagnostics, isAzureResponsesTextDeltaEvent, isAzureResponsesTextDeltaEventType, isOpenAICompatibleAzureResponsesBaseUrl, isOpenAIGpt54MiniModel, isOpenAIGpt55Model, isOpenAIGpt56Model, isResponsesTextContentPartType, isResponsesTextDeltaEventType, isStrictOpenAIJsonSchemaCompatible, isTraditionalAzureOpenAIHost, mapOpenAIStopReason, mapResponsesTerminalUsage, normalizeOpenAIReasoningEffort, normalizeOpenAIStrictCompatSchema, normalizeOpenAIStrictToolParameters, normalizeStrictOpenAIJsonSchema, normalizeToolParameterSchema, parseAzureDeploymentNameMap, projectOpenAITools, projectRuntimeToolInputSchema, readResponsesReasoningTokens, readResponsesToolCallItemIdentity, reasoningTagTextPolicy, reconcileOpenAICompletionsToolChoice, reconcileOpenAIResponsesToolChoice, resolveAzureDeploymentNameFromMap, resolveOpenAIProjectedToolsStrictToolFlag, resolveOpenAIReasoningEffortForModel, resolveOpenAISupportedReasoningEfforts, resolveResponsesMessageSnapshotCollapse, resolveResponsesTerminalStopReason, resolveUnsupportedToolSchemaKeywords, responsesPromptObserver, shouldOmitEmptyArrayItems, streamOpenAICompletions, streamOpenAIResponses, streamSimpleOpenAICompletions, streamSimpleOpenAIResponses, stripUnsupportedSchemaKeywords, supportsOpenAIReasoningEffort, supportsOpenAITemperature };
@@ -1,5 +1,4 @@
1
1
  //#region packages/ai/src/internal/retry-after.d.ts
2
2
  /** Parses the three HTTP-date forms accepted for Retry-After without Date.parse normalization. */
3
- declare function parseRetryAfterHttpDateMs(value: string, nowMs?: number): number | undefined;
4
- //#endregion
5
- export { parseRetryAfterHttpDateMs };
3
+ export declare function parseRetryAfterHttpDateMs(value: string, nowMs?: number): number | undefined;
4
+ //#endregion
@@ -1,18 +1,18 @@
1
- import { D as Model, O as ModelThinkingLevel, R as ProviderStreamOptions, U as StreamOptions, a as AssistantMessage, d as Context, et as Usage, n as Api, s as AssistantMessageEventStreamContract, z as SimpleStreamOptions } from "../types-DhLoJbFm.mjs";
2
- import "../index-Qbej8io0.mjs";
3
- import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-CTd8NzcD.mjs";
4
- import "../types-GiAjXatj.mjs";
1
+ import "../index-AfaxKT8w.mjs";
2
+ import { A as ModelThinkingLevel, D as Model, J as StreamOptions, V as ProviderStreamOptions, W as SimpleStreamOptions, a as AssistantMessage, at as Usage, d as Context, n as Api, s as AssistantMessageEventStreamContract } from "../types-DbrhszyQ.mjs";
3
+ import { a as RegisteredApiProvider, t as ApiProvider } from "../api-registry-Cs6HGNqY.mjs";
4
+ import "../types-B5EFUmXs.mjs";
5
5
  import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
6
- import { C as FirstStreamEventInternalOptions, D as getFirstStreamEventTimeoutHandler, E as createFirstStreamEventTimeoutError, O as getFirstStreamEventTimeoutMs, S as FirstStreamEventAbortController, T as createFirstStreamEventAbortController, g as parseTerminalToolCallArguments, k as withFirstStreamEventTimeout, w as FirstStreamEventTimeoutContext } from "../transport-stream-shared-rvaCyFYt.mjs";
6
+ import { C as FirstStreamEventInternalOptions, D as getFirstStreamEventTimeoutHandler, E as createFirstStreamEventTimeoutError, O as getFirstStreamEventTimeoutMs, S as FirstStreamEventAbortController, T as createFirstStreamEventAbortController, g as parseTerminalToolCallArguments, k as withFirstStreamEventTimeout, w as FirstStreamEventTimeoutContext } from "../transport-stream-shared-BrvFTkoO.mjs";
7
7
  //#region packages/ai/src/internal/default-runtime.d.ts
8
- declare const defaultApiRegistry: {
8
+ export declare const defaultApiRegistry: {
9
9
  registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
10
10
  getApiProvider: (api: Api) => RegisteredApiProvider | undefined;
11
11
  getApiProviders: () => RegisteredApiProvider[];
12
12
  unregisterApiProviders: (sourceId: string) => void;
13
13
  clearApiProviders: () => void;
14
14
  };
15
- declare const defaultLlmRuntime: {
15
+ export declare const defaultLlmRuntime: {
16
16
  registry: {
17
17
  registerApiProvider: <TApi extends Api, TOptions extends StreamOptions>(provider: ApiProvider<TApi, TOptions>, sourceId?: string) => void;
18
18
  getApiProvider: (api: Api) => RegisteredApiProvider | undefined;
@@ -25,9 +25,9 @@ declare const defaultLlmRuntime: {
25
25
  streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract;
26
26
  completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
27
27
  };
28
- declare const getApiProvider: (api: Api) => RegisteredApiProvider | undefined, getApiProviders: () => RegisteredApiProvider[];
29
- declare function clearApiProviders(): void;
30
- declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => AssistantMessageEventStreamContract, complete: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => Promise<AssistantMessage>, streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract, completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
28
+ export declare const getApiProvider: (api: Api) => RegisteredApiProvider | undefined, getApiProviders: () => RegisteredApiProvider[];
29
+ export declare function clearApiProviders(): void;
30
+ export declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => AssistantMessageEventStreamContract, complete: <TApi extends Api>(model: Model<TApi>, context: Context, options?: ProviderStreamOptions) => Promise<AssistantMessage>, streamSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStreamContract, completeSimple: <TApi extends Api>(model: Model<TApi>, context: Context, options?: SimpleStreamOptions) => Promise<AssistantMessage>;
31
31
  //#endregion
32
32
  //#region packages/ai/src/env-api-keys.d.ts
33
33
  /**
@@ -37,39 +37,39 @@ declare const stream: <TApi extends Api>(model: Model<TApi>, context: Context, o
37
37
  * credential sources such as AWS profiles, AWS IAM credentials, and Google
38
38
  * Application Default Credentials.
39
39
  */
40
- declare function findEnvKeys(provider: string): string[] | undefined;
40
+ export declare function findEnvKeys(provider: string): string[] | undefined;
41
41
  /**
42
42
  * Get API key for provider from known environment variables, e.g. OPENAI_API_KEY.
43
43
  *
44
44
  * Will not return API keys for providers that require OAuth tokens.
45
45
  */
46
- declare function getEnvApiKey(provider: string): string | undefined;
46
+ export declare function getEnvApiKey(provider: string): string | undefined;
47
47
  //#endregion
48
48
  //#region packages/ai/src/model-utils.d.ts
49
49
  /** Calculates and stores model cost fields from token usage and per-million pricing. */
50
- declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
50
+ export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage["cost"];
51
51
  /** Replaces the catalog estimate when the provider reports an authoritative billed total. */
52
- declare function applyProviderReportedUsageCost(usage: Usage, reportedCost: unknown): void;
52
+ export declare function applyProviderReportedUsageCost(usage: Usage, reportedCost: unknown): void;
53
53
  /** Returns thinking levels exposed by a reasoning-capable model. */
54
- declare function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[];
54
+ export declare function getSupportedThinkingLevels<TApi extends Api>(model: Model<TApi>): ModelThinkingLevel[];
55
55
  /** Clamps a requested thinking level to the closest supported level for a model. */
56
- declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>, level: ModelThinkingLevel): ModelThinkingLevel;
56
+ export declare function clampThinkingLevel<TApi extends Api>(model: Model<TApi>, level: ModelThinkingLevel): ModelThinkingLevel;
57
57
  /** Compares model identity by provider and id. */
58
- declare function modelsAreEqual<TApi extends Api>(a: Model<TApi> | null | undefined, b: Model<TApi> | null | undefined): boolean;
58
+ export declare function modelsAreEqual<TApi extends Api>(a: Model<TApi> | null | undefined, b: Model<TApi> | null | undefined): boolean;
59
59
  //#endregion
60
60
  //#region packages/ai/src/session-resources.d.ts
61
61
  /** Cleanup callback for resources tied to an LLM session or all sessions. */
62
- type SessionResourceCleanup = (sessionId?: string) => void;
62
+ export type SessionResourceCleanup = (sessionId?: string) => void;
63
63
  /** Registers a session-resource cleanup hook and returns an unregister function. */
64
- declare function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void;
64
+ export declare function registerSessionResourceCleanup(cleanup: SessionResourceCleanup): () => void;
65
65
  /** Runs all registered cleanup hooks, aggregating failures after every hook has run. */
66
- declare function cleanupSessionResources(sessionId?: string): void;
66
+ export declare function cleanupSessionResources(sessionId?: string): void;
67
67
  //#endregion
68
68
  //#region packages/ai/src/utils/deferred-event-buffer.d.ts
69
69
  type EventSink<T> = {
70
70
  push(event: T): void;
71
71
  };
72
- declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEvent?: () => void): {
72
+ export declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEvent?: () => void): {
73
73
  push(event: T): void;
74
74
  flush(): void;
75
75
  discard(): void;
@@ -77,11 +77,11 @@ declare function createDeferredEventBuffer<T>(sink: EventSink<T>, onBufferedEven
77
77
  //#endregion
78
78
  //#region packages/ai/src/utils/hash.d.ts
79
79
  /** Fast deterministic hash to shorten long strings */
80
- declare function shortHash(str: string): string;
80
+ export declare function shortHash(str: string): string;
81
81
  //#endregion
82
82
  //#region packages/ai/src/utils/headers.d.ts
83
83
  /** Converts a Headers object to a plain record for provider request handling. */
84
- declare function headersToRecord(headers: Headers): Record<string, string>;
84
+ export declare function headersToRecord(headers: Headers): Record<string, string>;
85
85
  //#endregion
86
86
  //#region packages/ai/src/utils/json-parse.d.ts
87
87
  /**
@@ -89,8 +89,8 @@ declare function headersToRecord(headers: Headers): Record<string, string>;
89
89
  * - escaping raw control characters inside strings
90
90
  * - doubling backslashes before invalid escape characters
91
91
  */
92
- declare function repairJson(json: string): string;
93
- declare function parseJsonWithRepair(json: string): unknown;
92
+ export declare function repairJson(json: string): string;
93
+ export declare function parseJsonWithRepair(json: string): unknown;
94
94
  /**
95
95
  * Attempts to parse potentially incomplete JSON during streaming.
96
96
  * Always returns a valid object, even if the JSON is incomplete.
@@ -98,9 +98,9 @@ declare function parseJsonWithRepair(json: string): unknown;
98
98
  * @param partialJson The partial JSON string from streaming
99
99
  * @returns Parsed object or empty object if parsing fails
100
100
  */
101
- declare function parseStreamingJson(partialJson: string | undefined): Record<string, unknown>;
101
+ export declare function parseStreamingJson(partialJson: string | undefined): Record<string, unknown>;
102
102
  /** Returns true when the streamed argument buffer crossed its next preview checkpoint. */
103
- type ToolArgumentPreviewSchedule = (accumulatedChars: number) => boolean;
103
+ export type ToolArgumentPreviewSchedule = (accumulatedChars: number) => boolean;
104
104
  /**
105
105
  * Streamed tool-call arguments are preview-only; the terminal parse re-reads
106
106
  * the full buffer authoritatively at content_block_stop. Reparsing every delta
@@ -108,26 +108,26 @@ type ToolArgumentPreviewSchedule = (accumulatedChars: number) => boolean;
108
108
  * size, so refresh previews on a geometric length schedule instead — bounded
109
109
  * staleness, linear total parse work.
110
110
  */
111
- declare function createToolArgumentPreviewSchedule(): ToolArgumentPreviewSchedule;
111
+ export declare function createToolArgumentPreviewSchedule(): ToolArgumentPreviewSchedule;
112
112
  //#endregion
113
113
  //#region packages/ai/src/utils/llm-request-activity.d.ts
114
- declare function notifyLlmRequestActivity(signal: AbortSignal | undefined): void;
115
- declare function onLlmRequestActivity(signal: AbortSignal, listener: () => void): () => void;
114
+ export declare function notifyLlmRequestActivity(signal: AbortSignal | undefined): void;
115
+ export declare function onLlmRequestActivity(signal: AbortSignal, listener: () => void): () => void;
116
116
  //#endregion
117
117
  //#region packages/ai/src/utils/oauth/openai-chatgpt-jwt.d.ts
118
118
  declare const OPENAI_CODEX_AUTH_CLAIM = "https://api.openai.com/auth";
119
- type OpenAICodexJwtPayload = {
119
+ export type OpenAICodexJwtPayload = {
120
120
  [OPENAI_CODEX_AUTH_CLAIM]?: {
121
121
  chatgpt_account_id?: unknown;
122
122
  };
123
123
  [key: string]: unknown;
124
124
  };
125
- declare function decodeOpenAICodexJwtPayload(token: string): OpenAICodexJwtPayload | null;
126
- declare function resolveOpenAICodexAccountId(token: string): string | null;
125
+ export declare function decodeOpenAICodexJwtPayload(token: string): OpenAICodexJwtPayload | null;
126
+ export declare function resolveOpenAICodexAccountId(token: string): string | null;
127
127
  //#endregion
128
128
  //#region packages/ai/src/utils/overflow.d.ts
129
129
  /** Detects DS4-style raw token-count context overflow errors. */
130
- declare function isConfiguredContextSizeOverflowError(errorMessage: string): boolean;
130
+ export declare function isConfiguredContextSizeOverflowError(errorMessage: string): boolean;
131
131
  declare const CONTEXT_OVERFLOW_PATTERN_SCOPES: {
132
132
  readonly "assistant-error": RegExp[];
133
133
  readonly "failover-explicit": RegExp[];
@@ -137,9 +137,9 @@ declare const CONTEXT_OVERFLOW_PATTERN_SCOPES: {
137
137
  readonly "tpm-rate-limit-hint": readonly [RegExp];
138
138
  readonly "rate-limit-hint": readonly [RegExp];
139
139
  };
140
- type ContextOverflowMessageScope = keyof typeof CONTEXT_OVERFLOW_PATTERN_SCOPES;
140
+ export type ContextOverflowMessageScope = keyof typeof CONTEXT_OVERFLOW_PATTERN_SCOPES;
141
141
  /** Match one canonical context-overflow wording scope without applying caller policy. */
142
- declare function matchesContextOverflowMessage(errorMessage: string, scope: ContextOverflowMessageScope): boolean;
142
+ export declare function matchesContextOverflowMessage(errorMessage: string, scope: ContextOverflowMessageScope): boolean;
143
143
  /**
144
144
  * Check if an assistant message represents a context overflow error.
145
145
  *
@@ -191,7 +191,7 @@ declare function matchesContextOverflowMessage(errorMessage: string, scope: Cont
191
191
  * @param contextWindow - Optional context window size for detecting silent overflow (z.ai)
192
192
  * @returns true if the message indicates a context overflow
193
193
  */
194
- declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
194
+ export declare function isContextOverflow(message: AssistantMessage, contextWindow?: number): boolean;
195
195
  //#endregion
196
196
  //#region packages/markdown-core/src/reasoning-tag-parser.d.ts
197
197
  type ReasoningTagTextDelta = {
@@ -214,7 +214,7 @@ interface ReasoningTagTextPartitioner {
214
214
  isInsideReasoning(): boolean;
215
215
  }
216
216
  /** Creates a block-incremental parser that emits only Markdown-stable text. */
217
- declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitioner;
217
+ export declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitioner;
218
218
  //#endregion
219
219
  //#region packages/ai/src/utils/streaming-byte-guard.d.ts
220
220
  /**
@@ -229,21 +229,21 @@ declare function createReasoningTagTextPartitioner(): ReasoningTagTextPartitione
229
229
  * Internal helper for now. If extensions need it, promote to a plugin-SDK
230
230
  * subpath in a separate, dedicated PR with full SDK metadata sync.
231
231
  */
232
- type SseStreamOverflow = {
232
+ export type SseStreamOverflow = {
233
233
  size: number;
234
234
  maxBytes: number;
235
235
  };
236
- type ReadSseStreamWithLimitOptions = {
236
+ export type ReadSseStreamWithLimitOptions = {
237
237
  maxBytes: number;
238
238
  onOverflow?: (params: SseStreamOverflow) => Error;
239
239
  };
240
- type SseByteGuard = {
240
+ export type SseByteGuard = {
241
241
  read(): Promise<ReadableStreamReadResult<Uint8Array>>;
242
242
  cancel(reason?: unknown): Promise<void>;
243
243
  totalBytes(): number;
244
244
  overflowed(): boolean;
245
245
  cancelled(): boolean;
246
246
  };
247
- declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
247
+ export declare function createSseByteGuard(reader: ReadableStreamDefaultReader<Uint8Array>, opts: ReadSseStreamWithLimitOptions): SseByteGuard;
248
248
  //#endregion
249
- export { ContextOverflowMessageScope, FirstStreamEventAbortController, FirstStreamEventInternalOptions, FirstStreamEventTimeoutContext, OpenAICodexJwtPayload, ReadSseStreamWithLimitOptions, type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, SessionResourceCleanup, SseByteGuard, SseStreamOverflow, ToolArgumentPreviewSchedule, applyProviderReportedUsageCost, calculateCost, clampThinkingLevel, cleanupSessionResources, clearApiProviders, complete, completeSimple, createDeferredEventBuffer, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, createReasoningTagTextPartitioner, createSseByteGuard, createToolArgumentPreviewSchedule, decodeOpenAICodexJwtPayload, defaultApiRegistry, defaultLlmRuntime, findEnvKeys, getApiProvider, getApiProviders, getEnvApiKey, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, getSupportedThinkingLevels, headersToRecord, isConfiguredContextSizeOverflowError, isContextOverflow, matchesContextOverflowMessage, modelsAreEqual, notifyLlmRequestActivity, onLlmRequestActivity, parseJsonWithRepair, parseStreamingJson, parseTerminalToolCallArguments, registerSessionResourceCleanup, repairJson, resolveOpenAICodexAccountId, sanitizeSurrogates, shortHash, stream, streamSimple, withFirstStreamEventTimeout };
249
+ export { FirstStreamEventAbortController, FirstStreamEventInternalOptions, FirstStreamEventTimeoutContext, type ReasoningTagTextDelta, type ReasoningTagTextPartitioner, createFirstStreamEventAbortController, createFirstStreamEventTimeoutError, getFirstStreamEventTimeoutHandler, getFirstStreamEventTimeoutMs, parseTerminalToolCallArguments, sanitizeSurrogates, withFirstStreamEventTimeout };
@@ -1,16 +1,17 @@
1
- import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-DrgeBuva.mjs";
1
+ import { a as isProviderRefusalAssistantError } from "../diagnostics-CPeq9F7y.mjs";
2
2
  import { n as createApiRegistry, t as createLlmRuntime } from "../stream-CREqxHgU.mjs";
3
- import { a as getSupportedThinkingLevels, i as clampThinkingLevel, n as applyProviderReportedUsageCost, o as modelsAreEqual, r as calculateCost, t as sanitizeSurrogates } from "../sanitize-unicode-DCkltN94.mjs";
4
- import { C as headersToRecord, m as parseTerminalToolCallArguments } from "../transport-stream-shared-ljShVIZB.mjs";
3
+ import { a as getSupportedThinkingLevels, i as clampThinkingLevel, n as applyProviderReportedUsageCost, o as modelsAreEqual, r as calculateCost, t as sanitizeSurrogates } from "../sanitize-unicode-S6binQG-.mjs";
4
+ import { n as getEnvApiKey, t as findEnvKeys } from "../env-api-keys-bktO00EJ.mjs";
5
+ import { C as headersToRecord, m as parseTerminalToolCallArguments } from "../transport-stream-shared-CytPVLIg.mjs";
5
6
  import { t as createDeferredEventBuffer } from "../deferred-event-buffer-DAvyP7qA.mjs";
6
7
  import { i as repairJson, n as parseJsonWithRepair, r as parseStreamingJson, t as createToolArgumentPreviewSchedule } from "../json-parse-BuAJEbdW.mjs";
7
8
  import { n as onLlmRequestActivity, t as notifyLlmRequestActivity } from "../llm-request-activity-BjtkplhG.mjs";
8
9
  import { t as shortHash } from "../hash-CHgqbJmD.mjs";
9
- import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-MK28puvq.mjs";
10
- import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-5ygO2rZc.mjs";
10
+ import { a as withFirstStreamEventTimeout, i as getFirstStreamEventTimeoutMs, n as createFirstStreamEventTimeoutError, r as getFirstStreamEventTimeoutHandler, t as createFirstStreamEventAbortController } from "../stream-first-event-timeout-DcNjoFQE.mjs";
11
+ import { t as createReasoningTagTextPartitioner } from "../reasoning-tag-text-partitioner-C-4uedDb.mjs";
12
+ import { t as createSseByteGuard } from "../streaming-byte-guard-CC-HMn_u.mjs";
11
13
  import { n as registerSessionResourceCleanup, t as cleanupSessionResources } from "../session-resources-CkR4WWy1.mjs";
12
14
  import { n as resolveOpenAICodexAccountId, t as decodeOpenAICodexJwtPayload } from "../openai-chatgpt-jwt-KWcgd0d_.mjs";
13
- import { t as createSseByteGuard } from "../streaming-byte-guard-CC-HMn_u.mjs";
14
15
  //#region packages/ai/src/internal/default-runtime.ts
15
16
  const DEFAULT_RUNTIME_KEY = Symbol.for("openclaw.ai.defaultRuntime");
16
17
  function resolveDefaultRuntime() {
@@ -54,7 +55,7 @@ const CONTEXT_OVERFLOW_PATTERN_SCOPES = {
54
55
  /exceeds (?:the )?maximum allowed input length of [\d,]+ tokens?/i,
55
56
  /input \(\d+ tokens\) is longer than the model'?s context length \(\d+ tokens\)/i,
56
57
  /exceeds the limit of \d+/i,
57
- /exceeds the available context size/i,
58
+ /(?:exceeds the available context size|context size has been exceeded)/i,
58
59
  /greater than the context length/i,
59
60
  /context window exceeds limit/i,
60
61
  /exceeded model token limit/i,
@@ -100,7 +101,7 @@ const CONTEXT_OVERFLOW_PATTERN_SCOPES = {
100
101
  /\binput exceeds the maximum number of tokens\b/i,
101
102
  /\bollama error:\s*context length exceeded(?:,\s*too many tokens)?\b/i,
102
103
  /\btotal tokens?.*exceeds? (?:the )?(?:model(?:'s)? )?(?:max|maximum|limit)/i,
103
- /\b(?:request|prompt) \(\d[\d,]*\s*tokens?\) exceeds (?:the )?available context size\b/i,
104
+ /\b(?:(?:request|prompt) \(\d[\d,]*\s*tokens?\) exceeds (?:the )?available context size|context size has been exceeded)\b/i,
104
105
  /\binput (?:is )?too long for (?:the )?model\b/i
105
106
  ],
106
107
  "failover-hint": [/context.*overflow|context window.*(too (?:large|long)|exceed|over|limit|max(?:imum)?|requested|sent|tokens)|prompt.*(too (?:large|long)|exceed|over|limit|max(?:imum)?)|(?:request|input).*(?:context|window|length|token).*(too (?:large|long)|exceed|over|limit|max(?:imum)?)/i],
@@ -183,6 +184,7 @@ function resolveContextInputTokens(message) {
183
184
  * @returns true if the message indicates a context overflow
184
185
  */
185
186
  function isContextOverflow(message, contextWindow) {
187
+ if (isProviderRefusalAssistantError(message)) return false;
186
188
  if (message.stopReason === "error" && message.errorMessage) {
187
189
  const errorMessage = message.errorMessage;
188
190
  if (!NON_OVERFLOW_PATTERNS.some((p) => p.test(errorMessage)) && matchesContextOverflowMessage(errorMessage, "assistant-error")) return true;
@@ -1,5 +1,5 @@
1
- import { D as Model, E as Message, J as ThinkingLevel, K as ThinkingBudgets, U as StreamOptions, a as AssistantMessage, n as Api, z as SimpleStreamOptions } from "../types-DhLoJbFm.mjs";
2
- import "../types-GiAjXatj.mjs";
1
+ import { $ as ThinkingLevel, D as Model, E as Message, J as StreamOptions, W as SimpleStreamOptions, Z as ThinkingBudgets, a as AssistantMessage, n as Api } from "../types-DbrhszyQ.mjs";
2
+ import "../types-B5EFUmXs.mjs";
3
3
  import { t as sanitizeSurrogates } from "../sanitize-unicode-BZiVbGwK.mjs";
4
4
  import { n as normalizeStructuredPromptSection, r as sortPromptCacheToolsByName, t as normalizePromptCapabilityIds } from "../prompt-cache-stability-Cwcjv_fx.mjs";
5
5
  //#region packages/ai/src/providers/simple-options.d.ts
@@ -7,29 +7,29 @@ type FirstEventStreamOptions = {
7
7
  firstEventTimeoutMs?: number;
8
8
  onFirstEventTimeout?: (reason: Error) => void;
9
9
  };
10
- declare function buildBaseOptions(model: Model, options?: SimpleStreamOptions, apiKey?: string): StreamOptions & FirstEventStreamOptions;
11
- declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number): number;
12
- declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number | undefined): number | undefined;
13
- declare function clampReasoning(effort: ThinkingLevel): Exclude<ThinkingLevel, "xhigh">;
14
- declare function clampReasoning(effort: ThinkingLevel | undefined): Exclude<ThinkingLevel, "xhigh"> | undefined;
15
- declare function adjustMaxTokensForThinking(baseMaxTokens: number | undefined, modelMaxTokens: number, reasoningLevel: ThinkingLevel, customBudgets?: ThinkingBudgets): {
10
+ export declare function buildBaseOptions(model: Model, options?: SimpleStreamOptions, apiKey?: string): StreamOptions & FirstEventStreamOptions;
11
+ export declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number): number;
12
+ export declare function clampMaxTokensToModel(model: Model, requestedMaxTokens: number | undefined): number | undefined;
13
+ export declare function clampReasoning(effort: ThinkingLevel): Exclude<ThinkingLevel, "xhigh">;
14
+ export declare function clampReasoning(effort: ThinkingLevel | undefined): Exclude<ThinkingLevel, "xhigh"> | undefined;
15
+ export declare function adjustMaxTokensForThinking(baseMaxTokens: number | undefined, modelMaxTokens: number, reasoningLevel: ThinkingLevel, customBudgets?: ThinkingBudgets): {
16
16
  maxTokens: number;
17
17
  thinkingBudget: number;
18
18
  };
19
19
  //#endregion
20
20
  //#region packages/ai/src/providers/tool-result-text.d.ts
21
21
  /** Media metadata alone is not an attachment; provider emitters need inline bytes. */
22
- declare function hasMediaPayload(block: unknown): block is Record<string, unknown> & {
22
+ export declare function hasMediaPayload(block: unknown): block is Record<string, unknown> & {
23
23
  data: string;
24
24
  };
25
25
  /** Image metadata alone is not an attachment; provider emitters need inline bytes. */
26
- declare function isImageWithMediaPayload<T>(block: T): block is T & {
26
+ export declare function isImageWithMediaPayload<T>(block: T): block is T & {
27
27
  type: "image";
28
28
  data: string;
29
29
  };
30
- declare function describeToolResultMediaPlaceholder(blocks: readonly unknown[]): string | undefined;
31
- declare function extractToolResultBlockText(block: unknown): string | undefined;
32
- declare function extractToolResultText(blocks: readonly unknown[], options?: {
30
+ export declare function describeToolResultMediaPlaceholder(blocks: readonly unknown[]): string | undefined;
31
+ export declare function extractToolResultBlockText(block: unknown): string | undefined;
32
+ export declare function extractToolResultText(blocks: readonly unknown[], options?: {
33
33
  includeStructured?: boolean;
34
34
  }): string;
35
35
  type ToolResultMediaSupport = {
@@ -37,8 +37,8 @@ type ToolResultMediaSupport = {
37
37
  audio: boolean;
38
38
  };
39
39
  /** Describe media that cannot be represented on the target provider wire. */
40
- declare function describeUnsupportedToolResultMedia(blocks: readonly unknown[], support: ToolResultMediaSupport): string | undefined;
41
- declare function formatToolResultText(params: {
40
+ export declare function describeUnsupportedToolResultMedia(blocks: readonly unknown[], support: ToolResultMediaSupport): string | undefined;
41
+ export declare function formatToolResultText(params: {
42
42
  text: string;
43
43
  mediaPlaceholder?: string;
44
44
  omittedMediaPlaceholder?: string;
@@ -46,29 +46,29 @@ declare function formatToolResultText(params: {
46
46
  }): string;
47
47
  //#endregion
48
48
  //#region packages/ai/src/transcript-transform.d.ts
49
- declare function transformMessages<TApi extends Api>(messages: Message[], model: Model<TApi>, normalizeToolCallId?: (id: string, model: Model<TApi>, source: AssistantMessage) => string): Message[];
49
+ export declare function transformMessages<TApi extends Api>(messages: Message[], model: Model<TApi>, normalizeToolCallId?: (id: string, model: Model<TApi>, source: AssistantMessage) => string): Message[];
50
50
  //#endregion
51
51
  //#region packages/ai/src/utils/system-prompt-cache-boundary.d.ts
52
- declare const SYSTEM_PROMPT_CACHE_BOUNDARY = "\n<!-- OPENCLAW_CACHE_BOUNDARY -->\n";
53
- declare function stripSystemPromptCacheBoundary(text: string): string;
54
- declare function ensureSystemPromptCacheBoundary(systemPrompt: string): string;
55
- declare function splitSystemPromptCacheBoundary(text: string): {
52
+ export declare const SYSTEM_PROMPT_CACHE_BOUNDARY = "\n<!-- OPENCLAW_CACHE_BOUNDARY -->\n";
53
+ export declare function stripSystemPromptCacheBoundary(text: string): string;
54
+ export declare function ensureSystemPromptCacheBoundary(systemPrompt: string): string;
55
+ export declare function splitSystemPromptCacheBoundary(text: string): {
56
56
  stablePrefix: string;
57
57
  dynamicSuffix: string;
58
58
  } | undefined;
59
- declare function prependSystemPromptAdditionAfterCacheBoundary(params: {
59
+ export declare function prependSystemPromptAdditionAfterCacheBoundary(params: {
60
60
  systemPrompt: string;
61
61
  systemPromptAddition?: string;
62
62
  }): string;
63
63
  //#endregion
64
64
  //#region packages/ai/src/utils/tls-certificate-errors.d.ts
65
- type TlsCertificateErrorKind = "certificate_invalid" | "hostname_mismatch";
66
- type TlsCertificateErrorDetails = {
65
+ export type TlsCertificateErrorKind = "certificate_invalid" | "hostname_mismatch";
66
+ export type TlsCertificateErrorDetails = {
67
67
  kind: TlsCertificateErrorKind;
68
68
  code?: string;
69
69
  message: string;
70
70
  };
71
71
  /** Classify deterministic Node/OpenSSL certificate validation failures. */
72
- declare function inspectTlsCertificateError(error: unknown): TlsCertificateErrorDetails | null;
72
+ export declare function inspectTlsCertificateError(error: unknown): TlsCertificateErrorDetails | null;
73
73
  //#endregion
74
- export { SYSTEM_PROMPT_CACHE_BOUNDARY, TlsCertificateErrorDetails, TlsCertificateErrorKind, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, describeUnsupportedToolResultMedia, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, formatToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };
74
+ export { normalizePromptCapabilityIds, normalizeStructuredPromptSection, sanitizeSurrogates, sortPromptCacheToolsByName };
@@ -1,5 +1,96 @@
1
- import { t as sanitizeSurrogates } from "../sanitize-unicode-DCkltN94.mjs";
2
- import { a as describeToolResultMediaPlaceholder, c as extractToolResultText, d as isImageWithMediaPayload, i as transformMessages, l as formatToolResultText, o as describeUnsupportedToolResultMedia, s as extractToolResultBlockText, u as hasMediaPayload } from "../host-D51fmkH6.mjs";
3
- import { a as SYSTEM_PROMPT_CACHE_BOUNDARY, c as splitSystemPromptCacheBoundary, d as normalizeStructuredPromptSection, f as sortPromptCacheToolsByName, i as clampReasoning, l as stripSystemPromptCacheBoundary, n as buildBaseOptions, o as ensureSystemPromptCacheBoundary, r as clampMaxTokensToModel, s as prependSystemPromptAdditionAfterCacheBoundary, t as adjustMaxTokensForThinking, u as normalizePromptCapabilityIds } from "../simple-options-CFj7x3J4.mjs";
4
- import { t as inspectTlsCertificateError } from "../tls-certificate-errors-DXSpluKI.mjs";
1
+ import { t as sanitizeSurrogates } from "../sanitize-unicode-S6binQG-.mjs";
2
+ import { a as describeToolResultMediaPlaceholder, c as extractToolResultText, d as isImageWithMediaPayload, i as transformMessages, l as formatToolResultText, o as describeUnsupportedToolResultMedia, s as extractToolResultBlockText, u as hasMediaPayload } from "../host-BIaiBURL.mjs";
3
+ import { c as ensureSystemPromptCacheBoundary, d as stripSystemPromptCacheBoundary, f as normalizePromptCapabilityIds, i as clampReasoning, l as prependSystemPromptAdditionAfterCacheBoundary, m as sortPromptCacheToolsByName, n as buildBaseOptions, p as normalizeStructuredPromptSection, r as clampMaxTokensToModel, s as SYSTEM_PROMPT_CACHE_BOUNDARY, t as adjustMaxTokensForThinking, u as splitSystemPromptCacheBoundary } from "../simple-options-0PLDyJ-d.mjs";
4
+ //#region packages/ai/src/utils/tls-certificate-errors.ts
5
+ const HOSTNAME_MISMATCH_CODES = /* @__PURE__ */ new Set(["ERR_TLS_CERT_ALTNAME_INVALID", "HOSTNAME_MISMATCH"]);
6
+ const CERTIFICATE_INVALID_CODES = /* @__PURE__ */ new Set([
7
+ "CERT_CHAIN_TOO_LONG",
8
+ "CERT_HAS_EXPIRED",
9
+ "CERT_NOT_YET_VALID",
10
+ "CERT_REJECTED",
11
+ "CERT_REVOKED",
12
+ "CERT_SIGNATURE_FAILURE",
13
+ "CERT_UNTRUSTED",
14
+ "CRL_HAS_EXPIRED",
15
+ "CRL_NOT_YET_VALID",
16
+ "CRL_SIGNATURE_FAILURE",
17
+ "DEPTH_ZERO_SELF_SIGNED_CERT",
18
+ "ERROR_IN_CERT_NOT_AFTER_FIELD",
19
+ "ERROR_IN_CERT_NOT_BEFORE_FIELD",
20
+ "ERROR_IN_CRL_LAST_UPDATE_FIELD",
21
+ "ERROR_IN_CRL_NEXT_UPDATE_FIELD",
22
+ "INVALID_CA",
23
+ "INVALID_PURPOSE",
24
+ "PATH_LENGTH_EXCEEDED",
25
+ "SELF_SIGNED_CERT_IN_CHAIN",
26
+ "UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY",
27
+ "UNABLE_TO_DECRYPT_CERT_SIGNATURE",
28
+ "UNABLE_TO_DECRYPT_CRL_SIGNATURE",
29
+ "UNABLE_TO_GET_CRL",
30
+ "UNABLE_TO_GET_ISSUER_CERT",
31
+ "UNABLE_TO_GET_ISSUER_CERT_LOCALLY",
32
+ "UNABLE_TO_VERIFY_LEAF_SIGNATURE"
33
+ ]);
34
+ const HOSTNAME_MISMATCH_PATTERNS = [
35
+ /hostname\/ip does not match certificate(?:'s)? altnames/i,
36
+ /hostname mismatch/i,
37
+ /host: .+ is not in the cert(?:ificate)?(?:'s)? altnames/i
38
+ ];
39
+ const CERTIFICATE_INVALID_PATTERNS = [
40
+ /certificate has expired/i,
41
+ /certificate is not yet valid/i,
42
+ /self[- ]signed certificate/i,
43
+ /unable to get local issuer certificate/i,
44
+ /unable to verify the first certificate/i
45
+ ];
46
+ const MAX_TLS_ERROR_DEPTH = 8;
47
+ function classifyCode(code) {
48
+ if (HOSTNAME_MISMATCH_CODES.has(code)) return "hostname_mismatch";
49
+ return CERTIFICATE_INVALID_CODES.has(code) ? "certificate_invalid" : null;
50
+ }
51
+ function classifyMessage(message) {
52
+ if (HOSTNAME_MISMATCH_PATTERNS.some((pattern) => pattern.test(message))) return "hostname_mismatch";
53
+ return CERTIFICATE_INVALID_PATTERNS.some((pattern) => pattern.test(message)) ? "certificate_invalid" : null;
54
+ }
55
+ function inspectTlsCertificateErrorInternal(error, seen, depth) {
56
+ if (depth > MAX_TLS_ERROR_DEPTH) return null;
57
+ if (typeof error === "string") {
58
+ const kind = classifyMessage(error);
59
+ return kind ? {
60
+ kind,
61
+ message: error
62
+ } : null;
63
+ }
64
+ if (!error || typeof error !== "object" || seen.has(error)) return null;
65
+ seen.add(error);
66
+ const candidate = error;
67
+ const code = typeof candidate.code === "string" ? candidate.code.trim().toUpperCase() : void 0;
68
+ const message = typeof candidate.message === "string" && candidate.message.trim() ? candidate.message : void 0;
69
+ const codeKind = code ? classifyCode(code) : null;
70
+ if (code && codeKind) return {
71
+ kind: codeKind,
72
+ code,
73
+ message: message ?? code
74
+ };
75
+ const nestedErrors = Array.isArray(candidate.errors) ? candidate.errors : [];
76
+ for (const nested of [
77
+ candidate.cause,
78
+ candidate.error,
79
+ ...nestedErrors
80
+ ]) {
81
+ if (nested === void 0 || nested === error) continue;
82
+ const details = inspectTlsCertificateErrorInternal(nested, seen, depth + 1);
83
+ if (details) return details;
84
+ }
85
+ const messageKind = message ? classifyMessage(message) : null;
86
+ return messageKind && message ? {
87
+ kind: messageKind,
88
+ message
89
+ } : null;
90
+ }
91
+ /** Classify deterministic Node/OpenSSL certificate validation failures. */
92
+ function inspectTlsCertificateError(error) {
93
+ return inspectTlsCertificateErrorInternal(error, /* @__PURE__ */ new Set(), 0);
94
+ }
95
+ //#endregion
5
96
  export { SYSTEM_PROMPT_CACHE_BOUNDARY, adjustMaxTokensForThinking, buildBaseOptions, clampMaxTokensToModel, clampReasoning, describeToolResultMediaPlaceholder, describeUnsupportedToolResultMedia, ensureSystemPromptCacheBoundary, extractToolResultBlockText, extractToolResultText, formatToolResultText, hasMediaPayload, inspectTlsCertificateError, isImageWithMediaPayload, normalizePromptCapabilityIds, normalizeStructuredPromptSection, prependSystemPromptAdditionAfterCacheBoundary, sanitizeSurrogates, sortPromptCacheToolsByName, splitSystemPromptCacheBoundary, stripSystemPromptCacheBoundary, transformMessages };