@omnicross/contracts 0.1.10 → 0.2.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.
- package/dist/health-logging-types.d.cts +7 -0
- package/dist/health-logging-types.d.ts +7 -0
- package/dist/image-generation-types.cjs +63 -0
- package/dist/image-generation-types.d.cts +193 -0
- package/dist/image-generation-types.d.ts +193 -0
- package/dist/image-generation-types.js +37 -0
- package/dist/index.cjs +222 -2
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +209 -1
- package/dist/search-compat.cjs +130 -0
- package/dist/search-compat.d.cts +93 -0
- package/dist/search-compat.d.ts +93 -0
- package/dist/search-compat.js +100 -0
- package/dist/search-types.cjs +102 -0
- package/dist/search-types.d.cts +420 -0
- package/dist/search-types.d.ts +420 -0
- package/dist/search-types.js +74 -0
- package/dist/usage-types.d.cts +2 -0
- package/dist/usage-types.d.ts +2 -0
- package/dist/websearch-types.d.cts +20 -2
- package/dist/websearch-types.d.ts +20 -2
- package/package.json +172 -156
package/dist/index.cjs
CHANGED
|
@@ -34,8 +34,11 @@ __export(index_exports, {
|
|
|
34
34
|
DEFAULT_VOUCHER_CONFIG: () => DEFAULT_VOUCHER_CONFIG,
|
|
35
35
|
EFFORT_RATIO: () => EFFORT_RATIO,
|
|
36
36
|
EXTENDED_CONTEXT_CAPABLE_MODELS: () => EXTENDED_CONTEXT_CAPABLE_MODELS,
|
|
37
|
+
IMAGE_CAPABILITY_UNAVAILABLE_REASONS: () => IMAGE_CAPABILITY_UNAVAILABLE_REASONS,
|
|
38
|
+
IMAGE_GENERATION_ERROR_CODES: () => IMAGE_GENERATION_ERROR_CODES,
|
|
37
39
|
KNOWN_MODELS: () => KNOWN_MODELS,
|
|
38
40
|
LEGACY_THINKING_TOKEN_LIMITS: () => LEGACY_THINKING_TOKEN_LIMITS,
|
|
41
|
+
LEGACY_UNKNOWN_PROVIDER_ID: () => LEGACY_UNKNOWN_PROVIDER_ID,
|
|
39
42
|
LLM_PROVIDER_PRESETS: () => LLM_PROVIDER_PRESETS,
|
|
40
43
|
MAX_CONCURRENCY_DEFAULTS: () => MAX_CONCURRENCY_DEFAULTS,
|
|
41
44
|
MODEL_ALIASES: () => MODEL_ALIASES,
|
|
@@ -43,6 +46,7 @@ __export(index_exports, {
|
|
|
43
46
|
PROVIDER_SEARCH_CONFIGS: () => PROVIDER_SEARCH_CONFIGS,
|
|
44
47
|
REASONING_MODEL_PATTERNS: () => REASONING_MODEL_PATTERNS,
|
|
45
48
|
SUBSCRIPTION_MODEL_CATALOG: () => SUBSCRIPTION_MODEL_CATALOG,
|
|
49
|
+
SearchProviderError: () => SearchProviderError,
|
|
46
50
|
THINKING_TOKEN_MAP: () => THINKING_TOKEN_MAP,
|
|
47
51
|
WEBHOOK_DESTINATION_TYPES: () => WEBHOOK_DESTINATION_TYPES,
|
|
48
52
|
WEBHOOK_EVENT_KINDS: () => WEBHOOK_EVENT_KINDS,
|
|
@@ -54,6 +58,7 @@ __export(index_exports, {
|
|
|
54
58
|
canDisableThinking: () => canDisableThinking,
|
|
55
59
|
findLegacyTokenLimit: () => findLegacyTokenLimit,
|
|
56
60
|
findTokenLimit: () => findTokenLimit,
|
|
61
|
+
fromLegacyWebSearchResponse: () => fromLegacyWebSearchResponse,
|
|
57
62
|
getAllProviderPresets: () => getAllProviderPresets,
|
|
58
63
|
getClaudeMaxTokens: () => getClaudeMaxTokens,
|
|
59
64
|
getCodingPlanBaseUrl: () => getCodingPlanBaseUrl,
|
|
@@ -64,16 +69,23 @@ __export(index_exports, {
|
|
|
64
69
|
healthHttpStatus: () => healthHttpStatus,
|
|
65
70
|
isApiProvider: () => isApiProvider,
|
|
66
71
|
isExtendedContextCapable: () => isExtendedContextCapable,
|
|
72
|
+
isKnownSearchProviderId: () => isKnownSearchProviderId,
|
|
67
73
|
isLocalProvider: () => isLocalProvider,
|
|
68
74
|
isReasoningModel: () => isReasoningModel,
|
|
75
|
+
isSearchProviderError: () => isSearchProviderError,
|
|
69
76
|
legacyCliBackendToSubscriptionProvider: () => legacyCliBackendToSubscriptionProvider,
|
|
77
|
+
legacyErrorStringToSearchErrorCode: () => legacyErrorStringToSearchErrorCode,
|
|
78
|
+
legacyProviderIdToSearchProviderId: () => legacyProviderIdToSearchProviderId,
|
|
70
79
|
lookupCanonicalCapabilities: () => lookupCanonicalCapabilities,
|
|
71
80
|
normalizeModelId: () => normalizeModelId,
|
|
72
81
|
resolveFollowProviderModel: () => resolveFollowProviderModel,
|
|
73
82
|
resolveModelCapabilities: () => resolveModelCapabilities,
|
|
74
83
|
resolveProviderEndpoint: () => resolveProviderEndpoint,
|
|
84
|
+
searchErrorToLegacyWebSearchResponse: () => searchErrorToLegacyWebSearchResponse,
|
|
75
85
|
subscriptionProviderHasCatalog: () => subscriptionProviderHasCatalog,
|
|
76
|
-
subscriptionTargetForSession: () => subscriptionTargetForSession
|
|
86
|
+
subscriptionTargetForSession: () => subscriptionTargetForSession,
|
|
87
|
+
toLegacyWebSearchResponse: () => toLegacyWebSearchResponse,
|
|
88
|
+
toSearchErrorShape: () => toSearchErrorShape
|
|
77
89
|
});
|
|
78
90
|
module.exports = __toCommonJS(index_exports);
|
|
79
91
|
|
|
@@ -372,6 +384,40 @@ function healthHttpStatus(status) {
|
|
|
372
384
|
return status === "ok" ? 200 : 503;
|
|
373
385
|
}
|
|
374
386
|
|
|
387
|
+
// src/image-generation-types.ts
|
|
388
|
+
var IMAGE_GENERATION_ERROR_CODES = [
|
|
389
|
+
"invalid_image_request",
|
|
390
|
+
"unsupported_model",
|
|
391
|
+
"unsupported_capability",
|
|
392
|
+
"invalid_api_key",
|
|
393
|
+
"upstream_auth_required",
|
|
394
|
+
"image_reference_not_found",
|
|
395
|
+
"image_reference_expired",
|
|
396
|
+
"image_too_large",
|
|
397
|
+
"unsupported_image_type",
|
|
398
|
+
"moderation_blocked",
|
|
399
|
+
"upstream_rate_limited",
|
|
400
|
+
"subscription_usage_limit_reached",
|
|
401
|
+
"image_queue_full",
|
|
402
|
+
"image_queue_timeout",
|
|
403
|
+
"request_cancelled",
|
|
404
|
+
"upstream_protocol_changed",
|
|
405
|
+
"image_generation_failed",
|
|
406
|
+
"image_generation_timeout"
|
|
407
|
+
];
|
|
408
|
+
var IMAGE_CAPABILITY_UNAVAILABLE_REASONS = [
|
|
409
|
+
"missing_evidence",
|
|
410
|
+
"stale_evidence",
|
|
411
|
+
"contradictory_evidence",
|
|
412
|
+
"adapter_unavailable",
|
|
413
|
+
"account_unverified",
|
|
414
|
+
"protocol_unverified",
|
|
415
|
+
"no_common_models",
|
|
416
|
+
"no_common_output_formats",
|
|
417
|
+
"no_common_quality_levels",
|
|
418
|
+
"no_common_moderation_modes"
|
|
419
|
+
];
|
|
420
|
+
|
|
375
421
|
// src/mcp-types.ts
|
|
376
422
|
var DEFAULT_MCP_SESSION_CONFIG = {
|
|
377
423
|
mode: "auto",
|
|
@@ -2546,6 +2592,168 @@ function getProviderSearchConfig(presetId) {
|
|
|
2546
2592
|
return PROVIDER_SEARCH_CONFIGS[presetId];
|
|
2547
2593
|
}
|
|
2548
2594
|
|
|
2595
|
+
// src/search-compat.ts
|
|
2596
|
+
var LEGACY_UNKNOWN_PROVIDER_ID = "legacy:unknown";
|
|
2597
|
+
var DEFAULT_LEGACY_ERROR_CODE = "upstream_unavailable";
|
|
2598
|
+
function legacyProviderIdToSearchProviderId(id) {
|
|
2599
|
+
return id;
|
|
2600
|
+
}
|
|
2601
|
+
var LEGACY_ERROR_RULES = [
|
|
2602
|
+
// Runtime facts first.
|
|
2603
|
+
{ pattern: /abort|cancell?ed|cancell?ing/i, code: "cancelled" },
|
|
2604
|
+
{ pattern: /timed ?out|timeout/i, code: "timeout" },
|
|
2605
|
+
// WebSearchService.search()
|
|
2606
|
+
{ pattern: /not configured/i, code: "config_missing" },
|
|
2607
|
+
{ pattern: /is disabled/i, code: "policy_denied" },
|
|
2608
|
+
{ pattern: /not implemented/i, code: "upstream_unavailable" },
|
|
2609
|
+
// HttpOnlyWebSearchService / WebSearchOrchestrator transport availability
|
|
2610
|
+
{ pattern: /unavailable in this host/i, code: "upstream_unavailable" },
|
|
2611
|
+
{ pattern: /HTTP search transport is unavailable/i, code: "upstream_unavailable" },
|
|
2612
|
+
// Exhausted-candidate summaries (both fallback implementations)
|
|
2613
|
+
{ pattern: /No eligible web search provider returned usable results/i, code: "upstream_unavailable" },
|
|
2614
|
+
{ pattern: /No keyless HTTP search provider returned usable results/i, code: "upstream_unavailable" },
|
|
2615
|
+
// Anti-bot / anti-decoy refusals — the page came back, it just cannot be trusted.
|
|
2616
|
+
{ pattern: /bot-challenge/i, code: "upstream_unavailable" },
|
|
2617
|
+
{
|
|
2618
|
+
pattern: /returned an untrusted search result page|refusing to return possible bot-decoy content/i,
|
|
2619
|
+
code: "upstream_unavailable"
|
|
2620
|
+
},
|
|
2621
|
+
{ pattern: /JavaScript-only search shell without result entries/i, code: "upstream_unavailable" },
|
|
2622
|
+
// Response the provider did return, but which could not be turned into results.
|
|
2623
|
+
{ pattern: /response contained no result entries/i, code: "parse_failed" },
|
|
2624
|
+
{ pattern: /returned an invalid response/i, code: "parse_failed" },
|
|
2625
|
+
{ pattern: /returned an invalid result list/i, code: "parse_failed" },
|
|
2626
|
+
{ pattern: /returned only duplicate results/i, code: "parse_failed" },
|
|
2627
|
+
{ pattern: /returned no usable direct results/i, code: "parse_failed" },
|
|
2628
|
+
{ pattern: /returned no results/i, code: "parse_failed" }
|
|
2629
|
+
];
|
|
2630
|
+
function legacyErrorStringToSearchErrorCode(message) {
|
|
2631
|
+
for (const rule of LEGACY_ERROR_RULES) {
|
|
2632
|
+
if (rule.pattern.test(message)) return rule.code;
|
|
2633
|
+
}
|
|
2634
|
+
return DEFAULT_LEGACY_ERROR_CODE;
|
|
2635
|
+
}
|
|
2636
|
+
function providerIdFromLegacyErrorString(message) {
|
|
2637
|
+
const match = /^Provider\s+(?!is\b|returned\b|request\b)(\S+)\s+(?:is|not)\b/i.exec(message);
|
|
2638
|
+
return match?.[1];
|
|
2639
|
+
}
|
|
2640
|
+
function toSearchResult(result) {
|
|
2641
|
+
return { title: result.title, url: result.url, content: result.content };
|
|
2642
|
+
}
|
|
2643
|
+
function fromLegacyWebSearchResponse(resp) {
|
|
2644
|
+
if (resp.success) {
|
|
2645
|
+
return {
|
|
2646
|
+
ok: true,
|
|
2647
|
+
response: {
|
|
2648
|
+
query: resp.query,
|
|
2649
|
+
providerId: resp.provider ?? LEGACY_UNKNOWN_PROVIDER_ID,
|
|
2650
|
+
results: resp.results.map(toSearchResult)
|
|
2651
|
+
}
|
|
2652
|
+
};
|
|
2653
|
+
}
|
|
2654
|
+
const message = resp.error ?? "Unknown error";
|
|
2655
|
+
const error = {
|
|
2656
|
+
code: legacyErrorStringToSearchErrorCode(message),
|
|
2657
|
+
message
|
|
2658
|
+
};
|
|
2659
|
+
const providerId = resp.provider ?? providerIdFromLegacyErrorString(message);
|
|
2660
|
+
if (providerId !== void 0) error.providerId = providerId;
|
|
2661
|
+
return { ok: false, error };
|
|
2662
|
+
}
|
|
2663
|
+
function toLegacyWebSearchResponse(response) {
|
|
2664
|
+
return {
|
|
2665
|
+
success: true,
|
|
2666
|
+
query: response.query,
|
|
2667
|
+
results: response.results.map((result) => ({
|
|
2668
|
+
title: result.title,
|
|
2669
|
+
content: result.content,
|
|
2670
|
+
url: result.url
|
|
2671
|
+
})),
|
|
2672
|
+
provider: response.providerId
|
|
2673
|
+
};
|
|
2674
|
+
}
|
|
2675
|
+
function searchErrorToLegacyWebSearchResponse(query, error) {
|
|
2676
|
+
const response = {
|
|
2677
|
+
success: false,
|
|
2678
|
+
query,
|
|
2679
|
+
results: [],
|
|
2680
|
+
error: error.message.trim().length > 0 ? error.message : error.code
|
|
2681
|
+
};
|
|
2682
|
+
if (error.providerId !== void 0) {
|
|
2683
|
+
response.provider = error.providerId;
|
|
2684
|
+
}
|
|
2685
|
+
return response;
|
|
2686
|
+
}
|
|
2687
|
+
|
|
2688
|
+
// src/search-types.ts
|
|
2689
|
+
var KNOWN_SEARCH_PROVIDER_IDS = /* @__PURE__ */ new Set([
|
|
2690
|
+
"http-bing",
|
|
2691
|
+
"http-duckduckgo",
|
|
2692
|
+
"tavily",
|
|
2693
|
+
"jina",
|
|
2694
|
+
"searxng",
|
|
2695
|
+
"zhipu",
|
|
2696
|
+
"z.ai"
|
|
2697
|
+
]);
|
|
2698
|
+
function isKnownSearchProviderId(id) {
|
|
2699
|
+
return KNOWN_SEARCH_PROVIDER_IDS.has(id);
|
|
2700
|
+
}
|
|
2701
|
+
var SEARCH_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
2702
|
+
"config_missing",
|
|
2703
|
+
"auth_failed",
|
|
2704
|
+
"rate_limited",
|
|
2705
|
+
"timeout",
|
|
2706
|
+
"upstream_unavailable",
|
|
2707
|
+
"parse_failed",
|
|
2708
|
+
"cancelled",
|
|
2709
|
+
"policy_denied"
|
|
2710
|
+
]);
|
|
2711
|
+
var DEFAULT_SEARCH_ERROR_CODE = "upstream_unavailable";
|
|
2712
|
+
var SearchProviderError = class _SearchProviderError extends Error {
|
|
2713
|
+
/** Stable taxonomy code. */
|
|
2714
|
+
code;
|
|
2715
|
+
/** The provider that failed, when known. */
|
|
2716
|
+
providerId;
|
|
2717
|
+
/** Whether retrying the same provider could plausibly succeed. */
|
|
2718
|
+
retryable;
|
|
2719
|
+
/** Pre-sanitized string-valued context. */
|
|
2720
|
+
details;
|
|
2721
|
+
constructor(code, message, init = {}) {
|
|
2722
|
+
super(message, init.cause === void 0 ? void 0 : { cause: init.cause });
|
|
2723
|
+
this.name = "SearchProviderError";
|
|
2724
|
+
this.code = code;
|
|
2725
|
+
this.providerId = init.providerId;
|
|
2726
|
+
this.retryable = init.retryable;
|
|
2727
|
+
this.details = init.details;
|
|
2728
|
+
Object.setPrototypeOf(this, _SearchProviderError.prototype);
|
|
2729
|
+
}
|
|
2730
|
+
/** This error as its serializable {@link SearchErrorShape}. */
|
|
2731
|
+
toShape() {
|
|
2732
|
+
return toSearchErrorShape(this);
|
|
2733
|
+
}
|
|
2734
|
+
};
|
|
2735
|
+
function isSearchProviderError(value) {
|
|
2736
|
+
if (value instanceof SearchProviderError) return true;
|
|
2737
|
+
if (!(value instanceof Error)) return false;
|
|
2738
|
+
const code = value.code;
|
|
2739
|
+
return typeof code === "string" && SEARCH_ERROR_CODES.has(code);
|
|
2740
|
+
}
|
|
2741
|
+
function toSearchErrorShape(value) {
|
|
2742
|
+
if (isSearchProviderError(value)) {
|
|
2743
|
+
const shape = { code: value.code, message: value.message };
|
|
2744
|
+
if (value.providerId !== void 0) shape.providerId = value.providerId;
|
|
2745
|
+
if (value.retryable !== void 0) shape.retryable = value.retryable;
|
|
2746
|
+
if (value.details !== void 0) shape.details = value.details;
|
|
2747
|
+
return shape;
|
|
2748
|
+
}
|
|
2749
|
+
return { code: DEFAULT_SEARCH_ERROR_CODE, message: describeUnknownError(value) };
|
|
2750
|
+
}
|
|
2751
|
+
function describeUnknownError(value) {
|
|
2752
|
+
if (typeof value === "string") return value;
|
|
2753
|
+
if (value instanceof Error && value.message) return value.message;
|
|
2754
|
+
return "Unknown error";
|
|
2755
|
+
}
|
|
2756
|
+
|
|
2549
2757
|
// src/subscription-model-catalog.ts
|
|
2550
2758
|
var SUBSCRIPTION_MODEL_CATALOG = {
|
|
2551
2759
|
claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5"],
|
|
@@ -2812,8 +3020,11 @@ function isLocalProvider(id) {
|
|
|
2812
3020
|
DEFAULT_VOUCHER_CONFIG,
|
|
2813
3021
|
EFFORT_RATIO,
|
|
2814
3022
|
EXTENDED_CONTEXT_CAPABLE_MODELS,
|
|
3023
|
+
IMAGE_CAPABILITY_UNAVAILABLE_REASONS,
|
|
3024
|
+
IMAGE_GENERATION_ERROR_CODES,
|
|
2815
3025
|
KNOWN_MODELS,
|
|
2816
3026
|
LEGACY_THINKING_TOKEN_LIMITS,
|
|
3027
|
+
LEGACY_UNKNOWN_PROVIDER_ID,
|
|
2817
3028
|
LLM_PROVIDER_PRESETS,
|
|
2818
3029
|
MAX_CONCURRENCY_DEFAULTS,
|
|
2819
3030
|
MODEL_ALIASES,
|
|
@@ -2821,6 +3032,7 @@ function isLocalProvider(id) {
|
|
|
2821
3032
|
PROVIDER_SEARCH_CONFIGS,
|
|
2822
3033
|
REASONING_MODEL_PATTERNS,
|
|
2823
3034
|
SUBSCRIPTION_MODEL_CATALOG,
|
|
3035
|
+
SearchProviderError,
|
|
2824
3036
|
THINKING_TOKEN_MAP,
|
|
2825
3037
|
WEBHOOK_DESTINATION_TYPES,
|
|
2826
3038
|
WEBHOOK_EVENT_KINDS,
|
|
@@ -2832,6 +3044,7 @@ function isLocalProvider(id) {
|
|
|
2832
3044
|
canDisableThinking,
|
|
2833
3045
|
findLegacyTokenLimit,
|
|
2834
3046
|
findTokenLimit,
|
|
3047
|
+
fromLegacyWebSearchResponse,
|
|
2835
3048
|
getAllProviderPresets,
|
|
2836
3049
|
getClaudeMaxTokens,
|
|
2837
3050
|
getCodingPlanBaseUrl,
|
|
@@ -2842,14 +3055,21 @@ function isLocalProvider(id) {
|
|
|
2842
3055
|
healthHttpStatus,
|
|
2843
3056
|
isApiProvider,
|
|
2844
3057
|
isExtendedContextCapable,
|
|
3058
|
+
isKnownSearchProviderId,
|
|
2845
3059
|
isLocalProvider,
|
|
2846
3060
|
isReasoningModel,
|
|
3061
|
+
isSearchProviderError,
|
|
2847
3062
|
legacyCliBackendToSubscriptionProvider,
|
|
3063
|
+
legacyErrorStringToSearchErrorCode,
|
|
3064
|
+
legacyProviderIdToSearchProviderId,
|
|
2848
3065
|
lookupCanonicalCapabilities,
|
|
2849
3066
|
normalizeModelId,
|
|
2850
3067
|
resolveFollowProviderModel,
|
|
2851
3068
|
resolveModelCapabilities,
|
|
2852
3069
|
resolveProviderEndpoint,
|
|
3070
|
+
searchErrorToLegacyWebSearchResponse,
|
|
2853
3071
|
subscriptionProviderHasCatalog,
|
|
2854
|
-
subscriptionTargetForSession
|
|
3072
|
+
subscriptionTargetForSession,
|
|
3073
|
+
toLegacyWebSearchResponse,
|
|
3074
|
+
toSearchErrorShape
|
|
2855
3075
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -9,11 +9,14 @@ export { R as ReasoningConfig, T as ThinkLevel, a as ThinkingContent } from './t
|
|
|
9
9
|
export { ResolvedEndpoint, resolveProviderEndpoint } from './endpoint-resolver.cjs';
|
|
10
10
|
export { EXTENDED_CONTEXT_CAPABLE_MODELS, isExtendedContextCapable } from './extended-context.cjs';
|
|
11
11
|
export { HealthReport, HealthStatus, LogFormat, LogLevel, LoggingConfig, healthHttpStatus } from './health-logging-types.cjs';
|
|
12
|
+
export { IMAGE_CAPABILITY_UNAVAILABLE_REASONS, IMAGE_GENERATION_ERROR_CODES, ImageAction, ImageArtifactId, ImageArtifactMetadata, ImageBackground, ImageCapabilities, ImageCapabilityEvidenceLayer, ImageCapabilityLayerKind, ImageCapabilityUnavailableReason, ImageCapabilityValues, ImageGenerationErrorCode, ImageGenerationPublicError, ImageInputAsset, ImageModeration, ImageModerationDetails, ImageModerationStage, ImageOutputCompressionCapability, ImageOutputFormat, ImageProviderAcceptedEvent, ImageProviderCompletedEvent, ImageProviderEvent, ImageProviderFailedEvent, ImageProviderOutput, ImageProviderPartialImageEvent, ImageQuality, ImageReferenceId, ImageReferenceMetadata, ImageRequestOptions, ImageRetrySafety, ImageSize, ImageUsage, NormalizedImageEditRequest, NormalizedImageGenerateRequest, NormalizedImageRequest, SensitiveOpaqueImageReference } from './image-generation-types.cjs';
|
|
12
13
|
export { A as API_MODE_IDS, a as AgentDefaultModels, b as ApiFormat, c as ApiKeyEntry, d as ApiMode, e as ApiModeId, C as ChatApiFormat, f as CodingPlanConfig, g as CompletionSettings, G as GlobalModelParameters, L as LLMProvider, M as ModelConfig, h as ModelGroup, i as ModelParameter, j as ModelRef, O as OpenRouterDataCollection, k as OpenRouterMaxPrice, l as OpenRouterProviderRouting, m as OpenRouterProviderSort, n as OpenRouterQuantization, P as PresetProviderTemplate, o as ProviderApiType, p as ProviderModelMapping, q as ProviderSearchConfig, r as ProviderTemplate, S as SearchCapability, T as TransformerConfig, s as TransformerEntry } from './llm-config-DeWNx1ig.cjs';
|
|
13
14
|
export { DEFAULT_MCP_SESSION_CONFIG, MCPCallToolResponse, MCPTool, MCPToolResponseContent, McpActionResult, McpDiscoverResult, McpMode, McpServerConfig, McpServerInput, McpServerJsonInput, McpServerList, McpServerRecord, McpServerRemoveInput, McpServerScope, McpServerTransport, McpSessionConfig, McpTestResult, McpToolInfo } from './mcp-types.cjs';
|
|
14
15
|
export { MessageBlock, MessageBlockBase, MessageBlockType, TextBlock, ThinkingBlock, ToolResultBlock, ToolUseBlock } from './message-blocks.cjs';
|
|
15
16
|
export { DEFAULT_LITELLM_PRICING_URL, DEFAULT_OPENROUTER_PRICING_URL, PricingConflict, PricingConflictDecision, PricingEntry, PricingEntryInput, PricingFetchResult, PricingResolution, PricingSource, PricingSourceRefreshResult } from './pricing-types.cjs';
|
|
16
17
|
export { CATALOG_VERSION, CODING_PLAN_URL_PRESETS, DEFAULT_SEED_PRESET_IDS, LLM_PROVIDER_PRESETS, MAX_CONCURRENCY_DEFAULTS, PROVIDER_MODEL_MAPPINGS, PROVIDER_SEARCH_CONFIGS, getAllProviderPresets, getCodingPlanBaseUrl, getPresetById, getPresetRevision, getProviderSearchConfig, resolveFollowProviderModel } from './provider-presets/index.cjs';
|
|
18
|
+
export { LEGACY_UNKNOWN_PROVIDER_ID, fromLegacyWebSearchResponse, legacyErrorStringToSearchErrorCode, legacyProviderIdToSearchProviderId, searchErrorToLegacyWebSearchResponse, toLegacyWebSearchResponse } from './search-compat.cjs';
|
|
19
|
+
export { KnownSearchProviderId, OrchestratedSearchResponse, SearchAttempt, SearchAttemptEvent, SearchAttemptOutcome, SearchCompleteEvent, SearchContributionContext, SearchErrorCode, SearchErrorShape, SearchOptions, SearchPolicy, SearchProvider, SearchProviderCapabilities, SearchProviderContribution, SearchProviderDescriptor, SearchProviderDiagnostic, SearchProviderError, SearchProviderErrorInit, SearchProviderHealthStatus, SearchProviderId, SearchProviderSource, SearchRequest, SearchResponse, SearchResult, SearchRuntimeEvent, SearchRuntimeEventBase, SearchTimeRange, SearchTransportKind, SearchUrlReadResult, isKnownSearchProviderId, isSearchProviderError, toSearchErrorShape } from './search-types.cjs';
|
|
17
20
|
export { SUBSCRIPTION_MODEL_CATALOG, subscriptionProviderHasCatalog } from './subscription-model-catalog.cjs';
|
|
18
21
|
export { CANNOT_DISABLE_THINKING_PATTERNS, DEFAULT_MAX_TOKENS, EFFORT_RATIO, LEGACY_THINKING_TOKEN_LIMITS, REASONING_MODEL_PATTERNS, THINKING_TOKEN_MAP, buildAnthropicThinking, buildGeminiThinkingConfig, buildQwenThinkingConfig, calculateThinkingBudget, canDisableThinking, findLegacyTokenLimit, findTokenLimit, getClaudeMaxTokens, getOpenAIReasoningEffort, isReasoningModel } from './thinking-config.cjs';
|
|
19
22
|
export { ApiKeyUsageRow, MessageUsageRow, ModelUsageRow, SessionCacheStats, UsageCacheKeySource, UsageDateRange, UsageEventInput, UsageEventRecord, UsageQueryParams, UsageTimeBucket, UsageTimeSeriesBucket, UsageTotals } from './usage-stats-types.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -9,11 +9,14 @@ export { R as ReasoningConfig, T as ThinkLevel, a as ThinkingContent } from './t
|
|
|
9
9
|
export { ResolvedEndpoint, resolveProviderEndpoint } from './endpoint-resolver.js';
|
|
10
10
|
export { EXTENDED_CONTEXT_CAPABLE_MODELS, isExtendedContextCapable } from './extended-context.js';
|
|
11
11
|
export { HealthReport, HealthStatus, LogFormat, LogLevel, LoggingConfig, healthHttpStatus } from './health-logging-types.js';
|
|
12
|
+
export { IMAGE_CAPABILITY_UNAVAILABLE_REASONS, IMAGE_GENERATION_ERROR_CODES, ImageAction, ImageArtifactId, ImageArtifactMetadata, ImageBackground, ImageCapabilities, ImageCapabilityEvidenceLayer, ImageCapabilityLayerKind, ImageCapabilityUnavailableReason, ImageCapabilityValues, ImageGenerationErrorCode, ImageGenerationPublicError, ImageInputAsset, ImageModeration, ImageModerationDetails, ImageModerationStage, ImageOutputCompressionCapability, ImageOutputFormat, ImageProviderAcceptedEvent, ImageProviderCompletedEvent, ImageProviderEvent, ImageProviderFailedEvent, ImageProviderOutput, ImageProviderPartialImageEvent, ImageQuality, ImageReferenceId, ImageReferenceMetadata, ImageRequestOptions, ImageRetrySafety, ImageSize, ImageUsage, NormalizedImageEditRequest, NormalizedImageGenerateRequest, NormalizedImageRequest, SensitiveOpaqueImageReference } from './image-generation-types.js';
|
|
12
13
|
export { A as API_MODE_IDS, a as AgentDefaultModels, b as ApiFormat, c as ApiKeyEntry, d as ApiMode, e as ApiModeId, C as ChatApiFormat, f as CodingPlanConfig, g as CompletionSettings, G as GlobalModelParameters, L as LLMProvider, M as ModelConfig, h as ModelGroup, i as ModelParameter, j as ModelRef, O as OpenRouterDataCollection, k as OpenRouterMaxPrice, l as OpenRouterProviderRouting, m as OpenRouterProviderSort, n as OpenRouterQuantization, P as PresetProviderTemplate, o as ProviderApiType, p as ProviderModelMapping, q as ProviderSearchConfig, r as ProviderTemplate, S as SearchCapability, T as TransformerConfig, s as TransformerEntry } from './llm-config-CKOaFFdy.js';
|
|
13
14
|
export { DEFAULT_MCP_SESSION_CONFIG, MCPCallToolResponse, MCPTool, MCPToolResponseContent, McpActionResult, McpDiscoverResult, McpMode, McpServerConfig, McpServerInput, McpServerJsonInput, McpServerList, McpServerRecord, McpServerRemoveInput, McpServerScope, McpServerTransport, McpSessionConfig, McpTestResult, McpToolInfo } from './mcp-types.js';
|
|
14
15
|
export { MessageBlock, MessageBlockBase, MessageBlockType, TextBlock, ThinkingBlock, ToolResultBlock, ToolUseBlock } from './message-blocks.js';
|
|
15
16
|
export { DEFAULT_LITELLM_PRICING_URL, DEFAULT_OPENROUTER_PRICING_URL, PricingConflict, PricingConflictDecision, PricingEntry, PricingEntryInput, PricingFetchResult, PricingResolution, PricingSource, PricingSourceRefreshResult } from './pricing-types.js';
|
|
16
17
|
export { CATALOG_VERSION, CODING_PLAN_URL_PRESETS, DEFAULT_SEED_PRESET_IDS, LLM_PROVIDER_PRESETS, MAX_CONCURRENCY_DEFAULTS, PROVIDER_MODEL_MAPPINGS, PROVIDER_SEARCH_CONFIGS, getAllProviderPresets, getCodingPlanBaseUrl, getPresetById, getPresetRevision, getProviderSearchConfig, resolveFollowProviderModel } from './provider-presets/index.js';
|
|
18
|
+
export { LEGACY_UNKNOWN_PROVIDER_ID, fromLegacyWebSearchResponse, legacyErrorStringToSearchErrorCode, legacyProviderIdToSearchProviderId, searchErrorToLegacyWebSearchResponse, toLegacyWebSearchResponse } from './search-compat.js';
|
|
19
|
+
export { KnownSearchProviderId, OrchestratedSearchResponse, SearchAttempt, SearchAttemptEvent, SearchAttemptOutcome, SearchCompleteEvent, SearchContributionContext, SearchErrorCode, SearchErrorShape, SearchOptions, SearchPolicy, SearchProvider, SearchProviderCapabilities, SearchProviderContribution, SearchProviderDescriptor, SearchProviderDiagnostic, SearchProviderError, SearchProviderErrorInit, SearchProviderHealthStatus, SearchProviderId, SearchProviderSource, SearchRequest, SearchResponse, SearchResult, SearchRuntimeEvent, SearchRuntimeEventBase, SearchTimeRange, SearchTransportKind, SearchUrlReadResult, isKnownSearchProviderId, isSearchProviderError, toSearchErrorShape } from './search-types.js';
|
|
17
20
|
export { SUBSCRIPTION_MODEL_CATALOG, subscriptionProviderHasCatalog } from './subscription-model-catalog.js';
|
|
18
21
|
export { CANNOT_DISABLE_THINKING_PATTERNS, DEFAULT_MAX_TOKENS, EFFORT_RATIO, LEGACY_THINKING_TOKEN_LIMITS, REASONING_MODEL_PATTERNS, THINKING_TOKEN_MAP, buildAnthropicThinking, buildGeminiThinkingConfig, buildQwenThinkingConfig, calculateThinkingBudget, canDisableThinking, findLegacyTokenLimit, findTokenLimit, getClaudeMaxTokens, getOpenAIReasoningEffort, isReasoningModel } from './thinking-config.js';
|
|
19
22
|
export { ApiKeyUsageRow, MessageUsageRow, ModelUsageRow, SessionCacheStats, UsageCacheKeySource, UsageDateRange, UsageEventInput, UsageEventRecord, UsageQueryParams, UsageTimeBucket, UsageTimeSeriesBucket, UsageTotals } from './usage-stats-types.js';
|
package/dist/index.js
CHANGED
|
@@ -293,6 +293,40 @@ function healthHttpStatus(status) {
|
|
|
293
293
|
return status === "ok" ? 200 : 503;
|
|
294
294
|
}
|
|
295
295
|
|
|
296
|
+
// src/image-generation-types.ts
|
|
297
|
+
var IMAGE_GENERATION_ERROR_CODES = [
|
|
298
|
+
"invalid_image_request",
|
|
299
|
+
"unsupported_model",
|
|
300
|
+
"unsupported_capability",
|
|
301
|
+
"invalid_api_key",
|
|
302
|
+
"upstream_auth_required",
|
|
303
|
+
"image_reference_not_found",
|
|
304
|
+
"image_reference_expired",
|
|
305
|
+
"image_too_large",
|
|
306
|
+
"unsupported_image_type",
|
|
307
|
+
"moderation_blocked",
|
|
308
|
+
"upstream_rate_limited",
|
|
309
|
+
"subscription_usage_limit_reached",
|
|
310
|
+
"image_queue_full",
|
|
311
|
+
"image_queue_timeout",
|
|
312
|
+
"request_cancelled",
|
|
313
|
+
"upstream_protocol_changed",
|
|
314
|
+
"image_generation_failed",
|
|
315
|
+
"image_generation_timeout"
|
|
316
|
+
];
|
|
317
|
+
var IMAGE_CAPABILITY_UNAVAILABLE_REASONS = [
|
|
318
|
+
"missing_evidence",
|
|
319
|
+
"stale_evidence",
|
|
320
|
+
"contradictory_evidence",
|
|
321
|
+
"adapter_unavailable",
|
|
322
|
+
"account_unverified",
|
|
323
|
+
"protocol_unverified",
|
|
324
|
+
"no_common_models",
|
|
325
|
+
"no_common_output_formats",
|
|
326
|
+
"no_common_quality_levels",
|
|
327
|
+
"no_common_moderation_modes"
|
|
328
|
+
];
|
|
329
|
+
|
|
296
330
|
// src/mcp-types.ts
|
|
297
331
|
var DEFAULT_MCP_SESSION_CONFIG = {
|
|
298
332
|
mode: "auto",
|
|
@@ -2467,6 +2501,168 @@ function getProviderSearchConfig(presetId) {
|
|
|
2467
2501
|
return PROVIDER_SEARCH_CONFIGS[presetId];
|
|
2468
2502
|
}
|
|
2469
2503
|
|
|
2504
|
+
// src/search-compat.ts
|
|
2505
|
+
var LEGACY_UNKNOWN_PROVIDER_ID = "legacy:unknown";
|
|
2506
|
+
var DEFAULT_LEGACY_ERROR_CODE = "upstream_unavailable";
|
|
2507
|
+
function legacyProviderIdToSearchProviderId(id) {
|
|
2508
|
+
return id;
|
|
2509
|
+
}
|
|
2510
|
+
var LEGACY_ERROR_RULES = [
|
|
2511
|
+
// Runtime facts first.
|
|
2512
|
+
{ pattern: /abort|cancell?ed|cancell?ing/i, code: "cancelled" },
|
|
2513
|
+
{ pattern: /timed ?out|timeout/i, code: "timeout" },
|
|
2514
|
+
// WebSearchService.search()
|
|
2515
|
+
{ pattern: /not configured/i, code: "config_missing" },
|
|
2516
|
+
{ pattern: /is disabled/i, code: "policy_denied" },
|
|
2517
|
+
{ pattern: /not implemented/i, code: "upstream_unavailable" },
|
|
2518
|
+
// HttpOnlyWebSearchService / WebSearchOrchestrator transport availability
|
|
2519
|
+
{ pattern: /unavailable in this host/i, code: "upstream_unavailable" },
|
|
2520
|
+
{ pattern: /HTTP search transport is unavailable/i, code: "upstream_unavailable" },
|
|
2521
|
+
// Exhausted-candidate summaries (both fallback implementations)
|
|
2522
|
+
{ pattern: /No eligible web search provider returned usable results/i, code: "upstream_unavailable" },
|
|
2523
|
+
{ pattern: /No keyless HTTP search provider returned usable results/i, code: "upstream_unavailable" },
|
|
2524
|
+
// Anti-bot / anti-decoy refusals — the page came back, it just cannot be trusted.
|
|
2525
|
+
{ pattern: /bot-challenge/i, code: "upstream_unavailable" },
|
|
2526
|
+
{
|
|
2527
|
+
pattern: /returned an untrusted search result page|refusing to return possible bot-decoy content/i,
|
|
2528
|
+
code: "upstream_unavailable"
|
|
2529
|
+
},
|
|
2530
|
+
{ pattern: /JavaScript-only search shell without result entries/i, code: "upstream_unavailable" },
|
|
2531
|
+
// Response the provider did return, but which could not be turned into results.
|
|
2532
|
+
{ pattern: /response contained no result entries/i, code: "parse_failed" },
|
|
2533
|
+
{ pattern: /returned an invalid response/i, code: "parse_failed" },
|
|
2534
|
+
{ pattern: /returned an invalid result list/i, code: "parse_failed" },
|
|
2535
|
+
{ pattern: /returned only duplicate results/i, code: "parse_failed" },
|
|
2536
|
+
{ pattern: /returned no usable direct results/i, code: "parse_failed" },
|
|
2537
|
+
{ pattern: /returned no results/i, code: "parse_failed" }
|
|
2538
|
+
];
|
|
2539
|
+
function legacyErrorStringToSearchErrorCode(message) {
|
|
2540
|
+
for (const rule of LEGACY_ERROR_RULES) {
|
|
2541
|
+
if (rule.pattern.test(message)) return rule.code;
|
|
2542
|
+
}
|
|
2543
|
+
return DEFAULT_LEGACY_ERROR_CODE;
|
|
2544
|
+
}
|
|
2545
|
+
function providerIdFromLegacyErrorString(message) {
|
|
2546
|
+
const match = /^Provider\s+(?!is\b|returned\b|request\b)(\S+)\s+(?:is|not)\b/i.exec(message);
|
|
2547
|
+
return match?.[1];
|
|
2548
|
+
}
|
|
2549
|
+
function toSearchResult(result) {
|
|
2550
|
+
return { title: result.title, url: result.url, content: result.content };
|
|
2551
|
+
}
|
|
2552
|
+
function fromLegacyWebSearchResponse(resp) {
|
|
2553
|
+
if (resp.success) {
|
|
2554
|
+
return {
|
|
2555
|
+
ok: true,
|
|
2556
|
+
response: {
|
|
2557
|
+
query: resp.query,
|
|
2558
|
+
providerId: resp.provider ?? LEGACY_UNKNOWN_PROVIDER_ID,
|
|
2559
|
+
results: resp.results.map(toSearchResult)
|
|
2560
|
+
}
|
|
2561
|
+
};
|
|
2562
|
+
}
|
|
2563
|
+
const message = resp.error ?? "Unknown error";
|
|
2564
|
+
const error = {
|
|
2565
|
+
code: legacyErrorStringToSearchErrorCode(message),
|
|
2566
|
+
message
|
|
2567
|
+
};
|
|
2568
|
+
const providerId = resp.provider ?? providerIdFromLegacyErrorString(message);
|
|
2569
|
+
if (providerId !== void 0) error.providerId = providerId;
|
|
2570
|
+
return { ok: false, error };
|
|
2571
|
+
}
|
|
2572
|
+
function toLegacyWebSearchResponse(response) {
|
|
2573
|
+
return {
|
|
2574
|
+
success: true,
|
|
2575
|
+
query: response.query,
|
|
2576
|
+
results: response.results.map((result) => ({
|
|
2577
|
+
title: result.title,
|
|
2578
|
+
content: result.content,
|
|
2579
|
+
url: result.url
|
|
2580
|
+
})),
|
|
2581
|
+
provider: response.providerId
|
|
2582
|
+
};
|
|
2583
|
+
}
|
|
2584
|
+
function searchErrorToLegacyWebSearchResponse(query, error) {
|
|
2585
|
+
const response = {
|
|
2586
|
+
success: false,
|
|
2587
|
+
query,
|
|
2588
|
+
results: [],
|
|
2589
|
+
error: error.message.trim().length > 0 ? error.message : error.code
|
|
2590
|
+
};
|
|
2591
|
+
if (error.providerId !== void 0) {
|
|
2592
|
+
response.provider = error.providerId;
|
|
2593
|
+
}
|
|
2594
|
+
return response;
|
|
2595
|
+
}
|
|
2596
|
+
|
|
2597
|
+
// src/search-types.ts
|
|
2598
|
+
var KNOWN_SEARCH_PROVIDER_IDS = /* @__PURE__ */ new Set([
|
|
2599
|
+
"http-bing",
|
|
2600
|
+
"http-duckduckgo",
|
|
2601
|
+
"tavily",
|
|
2602
|
+
"jina",
|
|
2603
|
+
"searxng",
|
|
2604
|
+
"zhipu",
|
|
2605
|
+
"z.ai"
|
|
2606
|
+
]);
|
|
2607
|
+
function isKnownSearchProviderId(id) {
|
|
2608
|
+
return KNOWN_SEARCH_PROVIDER_IDS.has(id);
|
|
2609
|
+
}
|
|
2610
|
+
var SEARCH_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
2611
|
+
"config_missing",
|
|
2612
|
+
"auth_failed",
|
|
2613
|
+
"rate_limited",
|
|
2614
|
+
"timeout",
|
|
2615
|
+
"upstream_unavailable",
|
|
2616
|
+
"parse_failed",
|
|
2617
|
+
"cancelled",
|
|
2618
|
+
"policy_denied"
|
|
2619
|
+
]);
|
|
2620
|
+
var DEFAULT_SEARCH_ERROR_CODE = "upstream_unavailable";
|
|
2621
|
+
var SearchProviderError = class _SearchProviderError extends Error {
|
|
2622
|
+
/** Stable taxonomy code. */
|
|
2623
|
+
code;
|
|
2624
|
+
/** The provider that failed, when known. */
|
|
2625
|
+
providerId;
|
|
2626
|
+
/** Whether retrying the same provider could plausibly succeed. */
|
|
2627
|
+
retryable;
|
|
2628
|
+
/** Pre-sanitized string-valued context. */
|
|
2629
|
+
details;
|
|
2630
|
+
constructor(code, message, init = {}) {
|
|
2631
|
+
super(message, init.cause === void 0 ? void 0 : { cause: init.cause });
|
|
2632
|
+
this.name = "SearchProviderError";
|
|
2633
|
+
this.code = code;
|
|
2634
|
+
this.providerId = init.providerId;
|
|
2635
|
+
this.retryable = init.retryable;
|
|
2636
|
+
this.details = init.details;
|
|
2637
|
+
Object.setPrototypeOf(this, _SearchProviderError.prototype);
|
|
2638
|
+
}
|
|
2639
|
+
/** This error as its serializable {@link SearchErrorShape}. */
|
|
2640
|
+
toShape() {
|
|
2641
|
+
return toSearchErrorShape(this);
|
|
2642
|
+
}
|
|
2643
|
+
};
|
|
2644
|
+
function isSearchProviderError(value) {
|
|
2645
|
+
if (value instanceof SearchProviderError) return true;
|
|
2646
|
+
if (!(value instanceof Error)) return false;
|
|
2647
|
+
const code = value.code;
|
|
2648
|
+
return typeof code === "string" && SEARCH_ERROR_CODES.has(code);
|
|
2649
|
+
}
|
|
2650
|
+
function toSearchErrorShape(value) {
|
|
2651
|
+
if (isSearchProviderError(value)) {
|
|
2652
|
+
const shape = { code: value.code, message: value.message };
|
|
2653
|
+
if (value.providerId !== void 0) shape.providerId = value.providerId;
|
|
2654
|
+
if (value.retryable !== void 0) shape.retryable = value.retryable;
|
|
2655
|
+
if (value.details !== void 0) shape.details = value.details;
|
|
2656
|
+
return shape;
|
|
2657
|
+
}
|
|
2658
|
+
return { code: DEFAULT_SEARCH_ERROR_CODE, message: describeUnknownError(value) };
|
|
2659
|
+
}
|
|
2660
|
+
function describeUnknownError(value) {
|
|
2661
|
+
if (typeof value === "string") return value;
|
|
2662
|
+
if (value instanceof Error && value.message) return value.message;
|
|
2663
|
+
return "Unknown error";
|
|
2664
|
+
}
|
|
2665
|
+
|
|
2470
2666
|
// src/subscription-model-catalog.ts
|
|
2471
2667
|
var SUBSCRIPTION_MODEL_CATALOG = {
|
|
2472
2668
|
claude: ["claude-haiku-4-5", "claude-sonnet-5", "claude-opus-5", "claude-fable-5"],
|
|
@@ -2732,8 +2928,11 @@ export {
|
|
|
2732
2928
|
DEFAULT_VOUCHER_CONFIG,
|
|
2733
2929
|
EFFORT_RATIO,
|
|
2734
2930
|
EXTENDED_CONTEXT_CAPABLE_MODELS,
|
|
2931
|
+
IMAGE_CAPABILITY_UNAVAILABLE_REASONS,
|
|
2932
|
+
IMAGE_GENERATION_ERROR_CODES,
|
|
2735
2933
|
KNOWN_MODELS,
|
|
2736
2934
|
LEGACY_THINKING_TOKEN_LIMITS,
|
|
2935
|
+
LEGACY_UNKNOWN_PROVIDER_ID,
|
|
2737
2936
|
LLM_PROVIDER_PRESETS,
|
|
2738
2937
|
MAX_CONCURRENCY_DEFAULTS,
|
|
2739
2938
|
MODEL_ALIASES,
|
|
@@ -2741,6 +2940,7 @@ export {
|
|
|
2741
2940
|
PROVIDER_SEARCH_CONFIGS,
|
|
2742
2941
|
REASONING_MODEL_PATTERNS,
|
|
2743
2942
|
SUBSCRIPTION_MODEL_CATALOG,
|
|
2943
|
+
SearchProviderError,
|
|
2744
2944
|
THINKING_TOKEN_MAP,
|
|
2745
2945
|
WEBHOOK_DESTINATION_TYPES,
|
|
2746
2946
|
WEBHOOK_EVENT_KINDS,
|
|
@@ -2752,6 +2952,7 @@ export {
|
|
|
2752
2952
|
canDisableThinking,
|
|
2753
2953
|
findLegacyTokenLimit,
|
|
2754
2954
|
findTokenLimit,
|
|
2955
|
+
fromLegacyWebSearchResponse,
|
|
2755
2956
|
getAllProviderPresets,
|
|
2756
2957
|
getClaudeMaxTokens,
|
|
2757
2958
|
getCodingPlanBaseUrl,
|
|
@@ -2762,14 +2963,21 @@ export {
|
|
|
2762
2963
|
healthHttpStatus,
|
|
2763
2964
|
isApiProvider,
|
|
2764
2965
|
isExtendedContextCapable,
|
|
2966
|
+
isKnownSearchProviderId,
|
|
2765
2967
|
isLocalProvider,
|
|
2766
2968
|
isReasoningModel,
|
|
2969
|
+
isSearchProviderError,
|
|
2767
2970
|
legacyCliBackendToSubscriptionProvider,
|
|
2971
|
+
legacyErrorStringToSearchErrorCode,
|
|
2972
|
+
legacyProviderIdToSearchProviderId,
|
|
2768
2973
|
lookupCanonicalCapabilities,
|
|
2769
2974
|
normalizeModelId,
|
|
2770
2975
|
resolveFollowProviderModel,
|
|
2771
2976
|
resolveModelCapabilities,
|
|
2772
2977
|
resolveProviderEndpoint,
|
|
2978
|
+
searchErrorToLegacyWebSearchResponse,
|
|
2773
2979
|
subscriptionProviderHasCatalog,
|
|
2774
|
-
subscriptionTargetForSession
|
|
2980
|
+
subscriptionTargetForSession,
|
|
2981
|
+
toLegacyWebSearchResponse,
|
|
2982
|
+
toSearchErrorShape
|
|
2775
2983
|
};
|