@jsonstudio/llms 0.6.3405 → 0.6.3539
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/conversion/codecs/anthropic-openai-codec.d.ts +12 -3
- package/dist/conversion/codecs/anthropic-openai-codec.js +32 -92
- package/dist/conversion/codecs/gemini-openai-codec.d.ts +6 -5
- package/dist/conversion/codecs/gemini-openai-codec.js +48 -685
- package/dist/conversion/codecs/openai-openai-codec.d.ts +1 -1
- package/dist/conversion/codecs/openai-openai-codec.js +34 -100
- package/dist/conversion/codecs/responses-openai-codec.d.ts +1 -1
- package/dist/conversion/codecs/responses-openai-codec.js +47 -159
- package/dist/conversion/compat/actions/anthropic-claude-code-system-prompt.d.ts +2 -6
- package/dist/conversion/compat/actions/anthropic-claude-code-system-prompt.js +29 -245
- package/dist/conversion/compat/actions/anthropic-claude-code-user-id.d.ts +3 -0
- package/dist/conversion/compat/actions/anthropic-claude-code-user-id.js +30 -0
- package/dist/conversion/compat/actions/antigravity-thought-signature-prepare.js +21 -232
- package/dist/conversion/compat/actions/deepseek-web-request.js +41 -276
- package/dist/conversion/compat/actions/deepseek-web-response.js +64 -859
- package/dist/conversion/compat/actions/gemini-cli-request.d.ts +1 -1
- package/dist/conversion/compat/actions/gemini-cli-request.js +20 -613
- package/dist/conversion/compat/actions/gemini-web-search.d.ts +1 -15
- package/dist/conversion/compat/actions/gemini-web-search.js +22 -69
- package/dist/conversion/compat/actions/glm-tool-extraction.d.ts +3 -2
- package/dist/conversion/compat/actions/glm-tool-extraction.js +28 -257
- package/dist/conversion/compat/actions/iflow-tool-text-fallback.d.ts +0 -8
- package/dist/conversion/compat/actions/iflow-tool-text-fallback.js +24 -206
- package/dist/conversion/compat/actions/qwen-transform.d.ts +3 -2
- package/dist/conversion/compat/actions/qwen-transform.js +30 -271
- package/dist/conversion/compat/actions/tool-text-request-guidance.js +3 -173
- package/dist/conversion/compat/actions/universal-shape-filter.d.ts +6 -23
- package/dist/conversion/compat/actions/universal-shape-filter.js +4 -383
- package/dist/conversion/hub/pipeline/compat/native-adapter-context.js +1 -0
- package/dist/conversion/pipeline/codecs/v2/anthropic-openai-pipeline.d.ts +1 -2
- package/dist/conversion/pipeline/codecs/v2/anthropic-openai-pipeline.js +50 -104
- package/dist/conversion/pipeline/codecs/v2/openai-openai-pipeline.js +12 -10
- package/dist/conversion/pipeline/codecs/v2/responses-openai-pipeline.d.ts +0 -2
- package/dist/conversion/pipeline/codecs/v2/responses-openai-pipeline.js +46 -67
- package/dist/conversion/pipeline/codecs/v2/shared/openai-chat-helpers.js +15 -40
- package/dist/conversion/responses/responses-openai-bridge/response-payload.js +47 -348
- package/dist/conversion/responses/responses-openai-bridge.js +129 -611
- package/dist/conversion/shared/chat-output-normalizer.js +6 -0
- package/dist/conversion/shared/chat-request-filters.js +1 -1
- package/dist/conversion/shared/output-content-normalizer.js +10 -0
- package/dist/conversion/shared/responses-conversation-store.js +22 -135
- package/dist/conversion/shared/responses-output-builder.d.ts +0 -2
- package/dist/conversion/shared/responses-output-builder.js +28 -318
- package/dist/conversion/shared/responses-response-utils.js +35 -86
- package/dist/conversion/shared/streaming-text-extractor.d.ts +1 -2
- package/dist/conversion/shared/streaming-text-extractor.js +13 -14
- package/dist/conversion/shared/tool-call-id-manager.js +18 -21
- package/dist/native/router_hotpath_napi.node +0 -0
- package/dist/router/virtual-router/bootstrap/routing-config.d.ts +2 -1
- package/dist/router/virtual-router/bootstrap/routing-config.js +57 -4
- package/dist/router/virtual-router/engine-legacy.d.ts +3 -3
- package/dist/router/virtual-router/engine-legacy.js +15 -7
- package/dist/router/virtual-router/engine-selection/native-compat-action-semantics.d.ts +16 -0
- package/dist/router/virtual-router/engine-selection/native-compat-action-semantics.js +434 -46
- package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.d.ts +83 -0
- package/dist/router/virtual-router/engine-selection/native-hub-bridge-action-semantics.js +295 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.d.ts +1 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.d.ts +7 -0
- package/dist/router/virtual-router/engine-selection/native-hub-pipeline-resp-semantics.js +8 -1
- package/dist/router/virtual-router/engine-selection/native-router-hotpath-loader.js +383 -298
- package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.d.ts +20 -0
- package/dist/router/virtual-router/engine-selection/native-shared-conversion-semantics.js +201 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-routing-instructions-semantics.d.ts +1 -0
- package/dist/router/virtual-router/engine-selection/native-virtual-router-routing-instructions-semantics.js +37 -0
- package/dist/router/virtual-router/engine-selection/tier-load-balancing.d.ts +16 -0
- package/dist/router/virtual-router/engine-selection/tier-load-balancing.js +120 -0
- package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.d.ts +2 -0
- package/dist/router/virtual-router/engine-selection/tier-selection-quota-integration.js +44 -66
- package/dist/router/virtual-router/engine-selection/tier-selection-select.js +53 -84
- package/dist/router/virtual-router/engine.js +0 -38
- package/dist/router/virtual-router/features.js +44 -3
- package/dist/router/virtual-router/routing-instructions/parse.d.ts +0 -12
- package/dist/router/virtual-router/routing-instructions/parse.js +9 -389
- package/dist/router/virtual-router/stop-message-state-sync.d.ts +3 -6
- package/dist/router/virtual-router/stop-message-state-sync.js +50 -21
- package/dist/router/virtual-router/types.d.ts +16 -0
- package/dist/sse/sse-to-json/anthropic-sse-to-json-converter.d.ts +1 -0
- package/dist/sse/sse-to-json/anthropic-sse-to-json-converter.js +26 -0
- package/dist/sse/sse-to-json/builders/anthropic-response-builder.js +12 -2
- package/package.json +1 -1
- package/dist/router/virtual-router/engine-legacy/route-finalize.d.ts +0 -9
- package/dist/router/virtual-router/engine-legacy/route-finalize.js +0 -84
- package/dist/router/virtual-router/engine-legacy/route-selection.d.ts +0 -17
- package/dist/router/virtual-router/engine-legacy/route-selection.js +0 -205
- package/dist/router/virtual-router/engine-legacy/route-state-allowlist.d.ts +0 -3
- package/dist/router/virtual-router/engine-legacy/route-state-allowlist.js +0 -36
- package/dist/router/virtual-router/engine-legacy/route-state.d.ts +0 -12
- package/dist/router/virtual-router/engine-legacy/route-state.js +0 -386
- package/dist/router/virtual-router/engine-legacy/routing.d.ts +0 -8
- package/dist/router/virtual-router/engine-legacy/routing.js +0 -8
|
@@ -28,6 +28,83 @@ export interface NativeBridgeHistoryOutput {
|
|
|
28
28
|
latestUserInstruction?: string;
|
|
29
29
|
originalSystemMessages: string[];
|
|
30
30
|
}
|
|
31
|
+
export interface NativeNormalizeBridgeHistorySeedOutput {
|
|
32
|
+
input: unknown[];
|
|
33
|
+
combinedSystemInstruction?: string;
|
|
34
|
+
latestUserInstruction?: string;
|
|
35
|
+
originalSystemMessages: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface NativeResolveResponsesBridgeToolsInput {
|
|
38
|
+
originalTools?: Array<Record<string, unknown>>;
|
|
39
|
+
chatTools?: Array<Record<string, unknown>>;
|
|
40
|
+
hasServerSideWebSearch?: boolean;
|
|
41
|
+
passthroughKeys?: string[];
|
|
42
|
+
request?: Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
export interface NativeResolveResponsesBridgeToolsOutput {
|
|
45
|
+
mergedTools?: Array<Record<string, unknown>>;
|
|
46
|
+
request?: Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
export interface NativeResolveResponsesRequestBridgeDecisionsInput {
|
|
49
|
+
context?: Record<string, unknown>;
|
|
50
|
+
requestMetadata?: Record<string, unknown>;
|
|
51
|
+
envelopeMetadata?: Record<string, unknown>;
|
|
52
|
+
bridgeMetadata?: Record<string, unknown>;
|
|
53
|
+
extraBridgeHistory?: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
export interface NativeResolveResponsesRequestBridgeDecisionsOutput {
|
|
56
|
+
forceWebSearch: boolean;
|
|
57
|
+
toolCallIdStyle?: 'fc' | 'preserve';
|
|
58
|
+
historySeed?: NativeBridgeHistoryOutput;
|
|
59
|
+
}
|
|
60
|
+
export interface NativeFilterBridgeInputForUpstreamInput {
|
|
61
|
+
input: unknown[];
|
|
62
|
+
allowToolCallId?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface NativeFilterBridgeInputForUpstreamOutput {
|
|
65
|
+
input: Array<Record<string, unknown>>;
|
|
66
|
+
}
|
|
67
|
+
export interface NativePrepareResponsesRequestEnvelopeInput {
|
|
68
|
+
request: Record<string, unknown>;
|
|
69
|
+
contextSystemInstruction?: unknown;
|
|
70
|
+
extraSystemInstruction?: unknown;
|
|
71
|
+
metadataSystemInstruction?: unknown;
|
|
72
|
+
combinedSystemInstruction?: unknown;
|
|
73
|
+
reasoningInstructionSegments?: unknown;
|
|
74
|
+
contextParameters?: unknown;
|
|
75
|
+
chatParameters?: unknown;
|
|
76
|
+
metadataParameters?: unknown;
|
|
77
|
+
contextStream?: unknown;
|
|
78
|
+
metadataStream?: unknown;
|
|
79
|
+
chatStream?: unknown;
|
|
80
|
+
chatParametersStream?: unknown;
|
|
81
|
+
contextInclude?: unknown;
|
|
82
|
+
metadataInclude?: unknown;
|
|
83
|
+
contextStore?: unknown;
|
|
84
|
+
metadataStore?: unknown;
|
|
85
|
+
stripHostFields?: boolean;
|
|
86
|
+
contextToolChoice?: unknown;
|
|
87
|
+
metadataToolChoice?: unknown;
|
|
88
|
+
contextParallelToolCalls?: unknown;
|
|
89
|
+
metadataParallelToolCalls?: unknown;
|
|
90
|
+
contextResponseFormat?: unknown;
|
|
91
|
+
metadataResponseFormat?: unknown;
|
|
92
|
+
contextServiceTier?: unknown;
|
|
93
|
+
metadataServiceTier?: unknown;
|
|
94
|
+
contextTruncation?: unknown;
|
|
95
|
+
metadataTruncation?: unknown;
|
|
96
|
+
contextMetadata?: unknown;
|
|
97
|
+
metadataMetadata?: unknown;
|
|
98
|
+
}
|
|
99
|
+
export interface NativePrepareResponsesRequestEnvelopeOutput {
|
|
100
|
+
request: Record<string, unknown>;
|
|
101
|
+
}
|
|
102
|
+
export interface NativeAppendLocalImageBlockOnLatestUserInputInput {
|
|
103
|
+
messages: unknown[];
|
|
104
|
+
}
|
|
105
|
+
export interface NativeAppendLocalImageBlockOnLatestUserInputOutput {
|
|
106
|
+
messages: Array<Record<string, unknown>>;
|
|
107
|
+
}
|
|
31
108
|
export interface NativeApplyBridgeNormalizeHistoryInput {
|
|
32
109
|
messages: unknown[];
|
|
33
110
|
tools?: Array<Record<string, unknown>>;
|
|
@@ -173,6 +250,12 @@ export interface NativeHarvestToolsOutput {
|
|
|
173
250
|
export declare function normalizeBridgeToolCallIdsWithNative(input: NativeBridgeToolCallIdsInput): NativeBridgeToolCallIdsOutput;
|
|
174
251
|
export declare function applyBridgeNormalizeToolIdentifiersWithNative(input: NativeApplyBridgeNormalizeToolIdentifiersInput): NativeBridgeToolCallIdsOutput;
|
|
175
252
|
export declare function buildBridgeHistoryWithNative(input: NativeBridgeHistoryInput): NativeBridgeHistoryOutput;
|
|
253
|
+
export declare function normalizeBridgeHistorySeedWithNative(seed: Record<string, unknown>): NativeNormalizeBridgeHistorySeedOutput;
|
|
254
|
+
export declare function resolveResponsesBridgeToolsWithNative(input: NativeResolveResponsesBridgeToolsInput): NativeResolveResponsesBridgeToolsOutput;
|
|
255
|
+
export declare function resolveResponsesRequestBridgeDecisionsWithNative(input: NativeResolveResponsesRequestBridgeDecisionsInput): NativeResolveResponsesRequestBridgeDecisionsOutput;
|
|
256
|
+
export declare function filterBridgeInputForUpstreamWithNative(input: NativeFilterBridgeInputForUpstreamInput): NativeFilterBridgeInputForUpstreamOutput;
|
|
257
|
+
export declare function prepareResponsesRequestEnvelopeWithNative(input: NativePrepareResponsesRequestEnvelopeInput): NativePrepareResponsesRequestEnvelopeOutput;
|
|
258
|
+
export declare function appendLocalImageBlockOnLatestUserInputWithNative(input: NativeAppendLocalImageBlockOnLatestUserInputInput): NativeAppendLocalImageBlockOnLatestUserInputOutput;
|
|
176
259
|
export declare function applyBridgeNormalizeHistoryWithNative(input: NativeApplyBridgeNormalizeHistoryInput): NativeApplyBridgeNormalizeHistoryOutput;
|
|
177
260
|
export declare function applyBridgeCaptureToolResultsWithNative(input: NativeApplyBridgeCaptureToolResultsInput): NativeApplyBridgeCaptureToolResultsOutput;
|
|
178
261
|
export declare function applyBridgeEnsureToolPlaceholdersWithNative(input: NativeApplyBridgeEnsureToolPlaceholdersInput): NativeApplyBridgeEnsureToolPlaceholdersOutput;
|
|
@@ -82,6 +82,91 @@ function parseBridgeHistoryOutput(raw) {
|
|
|
82
82
|
return null;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
+
function parseNormalizeBridgeHistorySeedOutput(raw) {
|
|
86
|
+
return parseBridgeHistoryOutput(raw);
|
|
87
|
+
}
|
|
88
|
+
function parseResolveResponsesBridgeToolsOutput(raw) {
|
|
89
|
+
try {
|
|
90
|
+
const parsed = JSON.parse(raw);
|
|
91
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
const row = parsed;
|
|
95
|
+
const output = {};
|
|
96
|
+
if (Array.isArray(row.mergedTools)) {
|
|
97
|
+
output.mergedTools = row.mergedTools.filter((entry) => Boolean(entry) && typeof entry === 'object' && !Array.isArray(entry));
|
|
98
|
+
}
|
|
99
|
+
if (row.request && typeof row.request === 'object' && !Array.isArray(row.request)) {
|
|
100
|
+
output.request = row.request;
|
|
101
|
+
}
|
|
102
|
+
return output;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function parseResolveResponsesRequestBridgeDecisionsOutput(raw) {
|
|
109
|
+
try {
|
|
110
|
+
const parsed = JSON.parse(raw);
|
|
111
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
const row = parsed;
|
|
115
|
+
if (typeof row.forceWebSearch !== 'boolean') {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const output = {
|
|
119
|
+
forceWebSearch: row.forceWebSearch
|
|
120
|
+
};
|
|
121
|
+
if (row.toolCallIdStyle === 'fc' || row.toolCallIdStyle === 'preserve') {
|
|
122
|
+
output.toolCallIdStyle = row.toolCallIdStyle;
|
|
123
|
+
}
|
|
124
|
+
if (row.historySeed && typeof row.historySeed === 'object' && !Array.isArray(row.historySeed)) {
|
|
125
|
+
const serialized = JSON.stringify(row.historySeed);
|
|
126
|
+
const parsedHistory = parseBridgeHistoryOutput(serialized);
|
|
127
|
+
if (!parsedHistory) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
output.historySeed = parsedHistory;
|
|
131
|
+
}
|
|
132
|
+
return output;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function parseFilterBridgeInputForUpstreamOutput(raw) {
|
|
139
|
+
try {
|
|
140
|
+
const parsed = JSON.parse(raw);
|
|
141
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
const row = parsed;
|
|
145
|
+
if (!Array.isArray(row.input)) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
const input = row.input.filter((entry) => Boolean(entry) && typeof entry === 'object' && !Array.isArray(entry));
|
|
149
|
+
return { input };
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function parsePrepareResponsesRequestEnvelopeOutput(raw) {
|
|
156
|
+
const parsed = parseRecord(raw);
|
|
157
|
+
if (!parsed || !parsed.request || typeof parsed.request !== 'object' || Array.isArray(parsed.request)) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
return { request: parsed.request };
|
|
161
|
+
}
|
|
162
|
+
function parseAppendLocalImageBlockOnLatestUserInputOutput(raw) {
|
|
163
|
+
const parsed = parseRecord(raw);
|
|
164
|
+
if (!parsed || !Array.isArray(parsed.messages)) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
const messages = parsed.messages.filter((entry) => Boolean(entry) && typeof entry === 'object' && !Array.isArray(entry));
|
|
168
|
+
return { messages };
|
|
169
|
+
}
|
|
85
170
|
function parseBridgeInputToChatOutput(raw) {
|
|
86
171
|
const parsed = parseRecord(raw);
|
|
87
172
|
if (!parsed || !Array.isArray(parsed.messages)) {
|
|
@@ -443,6 +528,216 @@ export function buildBridgeHistoryWithNative(input) {
|
|
|
443
528
|
return fail(reason);
|
|
444
529
|
}
|
|
445
530
|
}
|
|
531
|
+
export function normalizeBridgeHistorySeedWithNative(seed) {
|
|
532
|
+
const capability = 'normalizeBridgeHistorySeedJson';
|
|
533
|
+
const fail = (reason) => failNativeRequired(capability, reason);
|
|
534
|
+
if (isNativeDisabledByEnv()) {
|
|
535
|
+
return fail('native disabled');
|
|
536
|
+
}
|
|
537
|
+
const fn = readNativeFunction(capability);
|
|
538
|
+
if (!fn) {
|
|
539
|
+
return fail();
|
|
540
|
+
}
|
|
541
|
+
const payloadJson = safeStringify(seed);
|
|
542
|
+
if (!payloadJson) {
|
|
543
|
+
return fail('json stringify failed');
|
|
544
|
+
}
|
|
545
|
+
try {
|
|
546
|
+
const raw = fn(payloadJson);
|
|
547
|
+
if (typeof raw !== 'string' || !raw) {
|
|
548
|
+
return fail('empty result');
|
|
549
|
+
}
|
|
550
|
+
const parsed = parseNormalizeBridgeHistorySeedOutput(raw);
|
|
551
|
+
return parsed ?? fail('invalid payload');
|
|
552
|
+
}
|
|
553
|
+
catch (error) {
|
|
554
|
+
const reason = error instanceof Error ? error.message : String(error ?? 'unknown');
|
|
555
|
+
return fail(reason);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
export function resolveResponsesBridgeToolsWithNative(input) {
|
|
559
|
+
const capability = 'resolveResponsesBridgeToolsJson';
|
|
560
|
+
const fail = (reason) => failNativeRequired(capability, reason);
|
|
561
|
+
if (isNativeDisabledByEnv()) {
|
|
562
|
+
return fail('native disabled');
|
|
563
|
+
}
|
|
564
|
+
const fn = readNativeFunction(capability);
|
|
565
|
+
if (!fn) {
|
|
566
|
+
return fail();
|
|
567
|
+
}
|
|
568
|
+
const payloadJson = safeStringify({
|
|
569
|
+
originalTools: input.originalTools,
|
|
570
|
+
chatTools: input.chatTools,
|
|
571
|
+
hasServerSideWebSearch: input.hasServerSideWebSearch,
|
|
572
|
+
passthroughKeys: input.passthroughKeys,
|
|
573
|
+
request: input.request
|
|
574
|
+
});
|
|
575
|
+
if (!payloadJson) {
|
|
576
|
+
return fail('json stringify failed');
|
|
577
|
+
}
|
|
578
|
+
try {
|
|
579
|
+
const raw = fn(payloadJson);
|
|
580
|
+
if (typeof raw !== 'string' || !raw) {
|
|
581
|
+
return fail('empty result');
|
|
582
|
+
}
|
|
583
|
+
const parsed = parseResolveResponsesBridgeToolsOutput(raw);
|
|
584
|
+
return parsed ?? fail('invalid payload');
|
|
585
|
+
}
|
|
586
|
+
catch (error) {
|
|
587
|
+
const reason = error instanceof Error ? error.message : String(error ?? 'unknown');
|
|
588
|
+
return fail(reason);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
export function resolveResponsesRequestBridgeDecisionsWithNative(input) {
|
|
592
|
+
const capability = 'resolveResponsesRequestBridgeDecisionsJson';
|
|
593
|
+
const fail = (reason) => failNativeRequired(capability, reason);
|
|
594
|
+
if (isNativeDisabledByEnv()) {
|
|
595
|
+
return fail('native disabled');
|
|
596
|
+
}
|
|
597
|
+
const fn = readNativeFunction(capability);
|
|
598
|
+
if (!fn) {
|
|
599
|
+
return fail();
|
|
600
|
+
}
|
|
601
|
+
const payloadJson = safeStringify({
|
|
602
|
+
context: input.context,
|
|
603
|
+
requestMetadata: input.requestMetadata,
|
|
604
|
+
envelopeMetadata: input.envelopeMetadata,
|
|
605
|
+
bridgeMetadata: input.bridgeMetadata,
|
|
606
|
+
extraBridgeHistory: input.extraBridgeHistory
|
|
607
|
+
});
|
|
608
|
+
if (!payloadJson) {
|
|
609
|
+
return fail('json stringify failed');
|
|
610
|
+
}
|
|
611
|
+
try {
|
|
612
|
+
const raw = fn(payloadJson);
|
|
613
|
+
if (typeof raw !== 'string' || !raw) {
|
|
614
|
+
return fail('empty result');
|
|
615
|
+
}
|
|
616
|
+
const parsed = parseResolveResponsesRequestBridgeDecisionsOutput(raw);
|
|
617
|
+
return parsed ?? fail('invalid payload');
|
|
618
|
+
}
|
|
619
|
+
catch (error) {
|
|
620
|
+
const reason = error instanceof Error ? error.message : String(error ?? 'unknown');
|
|
621
|
+
return fail(reason);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
export function filterBridgeInputForUpstreamWithNative(input) {
|
|
625
|
+
const capability = 'filterBridgeInputForUpstreamJson';
|
|
626
|
+
const fail = (reason) => failNativeRequired(capability, reason);
|
|
627
|
+
if (isNativeDisabledByEnv()) {
|
|
628
|
+
return fail('native disabled');
|
|
629
|
+
}
|
|
630
|
+
const fn = readNativeFunction(capability);
|
|
631
|
+
if (!fn) {
|
|
632
|
+
return fail();
|
|
633
|
+
}
|
|
634
|
+
const payloadJson = safeStringify({
|
|
635
|
+
input: input.input,
|
|
636
|
+
allowToolCallId: input.allowToolCallId
|
|
637
|
+
});
|
|
638
|
+
if (!payloadJson) {
|
|
639
|
+
return fail('json stringify failed');
|
|
640
|
+
}
|
|
641
|
+
try {
|
|
642
|
+
const raw = fn(payloadJson);
|
|
643
|
+
if (typeof raw !== 'string' || !raw) {
|
|
644
|
+
return fail('empty result');
|
|
645
|
+
}
|
|
646
|
+
const parsed = parseFilterBridgeInputForUpstreamOutput(raw);
|
|
647
|
+
return parsed ?? fail('invalid payload');
|
|
648
|
+
}
|
|
649
|
+
catch (error) {
|
|
650
|
+
const reason = error instanceof Error ? error.message : String(error ?? 'unknown');
|
|
651
|
+
return fail(reason);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
export function prepareResponsesRequestEnvelopeWithNative(input) {
|
|
655
|
+
const capability = 'prepareResponsesRequestEnvelopeJson';
|
|
656
|
+
const fail = (reason) => failNativeRequired(capability, reason);
|
|
657
|
+
if (isNativeDisabledByEnv()) {
|
|
658
|
+
return fail('native disabled');
|
|
659
|
+
}
|
|
660
|
+
const fn = readNativeFunction(capability);
|
|
661
|
+
if (!fn) {
|
|
662
|
+
return fail();
|
|
663
|
+
}
|
|
664
|
+
const payloadJson = safeStringify({
|
|
665
|
+
request: input.request,
|
|
666
|
+
contextSystemInstruction: input.contextSystemInstruction,
|
|
667
|
+
extraSystemInstruction: input.extraSystemInstruction,
|
|
668
|
+
metadataSystemInstruction: input.metadataSystemInstruction,
|
|
669
|
+
combinedSystemInstruction: input.combinedSystemInstruction,
|
|
670
|
+
reasoningInstructionSegments: input.reasoningInstructionSegments,
|
|
671
|
+
contextParameters: input.contextParameters,
|
|
672
|
+
chatParameters: input.chatParameters,
|
|
673
|
+
metadataParameters: input.metadataParameters,
|
|
674
|
+
contextStream: input.contextStream,
|
|
675
|
+
metadataStream: input.metadataStream,
|
|
676
|
+
chatStream: input.chatStream,
|
|
677
|
+
chatParametersStream: input.chatParametersStream,
|
|
678
|
+
contextInclude: input.contextInclude,
|
|
679
|
+
metadataInclude: input.metadataInclude,
|
|
680
|
+
contextStore: input.contextStore,
|
|
681
|
+
metadataStore: input.metadataStore,
|
|
682
|
+
stripHostFields: input.stripHostFields,
|
|
683
|
+
contextToolChoice: input.contextToolChoice,
|
|
684
|
+
metadataToolChoice: input.metadataToolChoice,
|
|
685
|
+
contextParallelToolCalls: input.contextParallelToolCalls,
|
|
686
|
+
metadataParallelToolCalls: input.metadataParallelToolCalls,
|
|
687
|
+
contextResponseFormat: input.contextResponseFormat,
|
|
688
|
+
metadataResponseFormat: input.metadataResponseFormat,
|
|
689
|
+
contextServiceTier: input.contextServiceTier,
|
|
690
|
+
metadataServiceTier: input.metadataServiceTier,
|
|
691
|
+
contextTruncation: input.contextTruncation,
|
|
692
|
+
metadataTruncation: input.metadataTruncation,
|
|
693
|
+
contextMetadata: input.contextMetadata,
|
|
694
|
+
metadataMetadata: input.metadataMetadata
|
|
695
|
+
});
|
|
696
|
+
if (!payloadJson) {
|
|
697
|
+
return fail('json stringify failed');
|
|
698
|
+
}
|
|
699
|
+
try {
|
|
700
|
+
const raw = fn(payloadJson);
|
|
701
|
+
if (typeof raw !== 'string' || !raw) {
|
|
702
|
+
return fail('empty result');
|
|
703
|
+
}
|
|
704
|
+
const parsed = parsePrepareResponsesRequestEnvelopeOutput(raw);
|
|
705
|
+
return parsed ?? fail('invalid payload');
|
|
706
|
+
}
|
|
707
|
+
catch (error) {
|
|
708
|
+
const reason = error instanceof Error ? error.message : String(error ?? 'unknown');
|
|
709
|
+
return fail(reason);
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
export function appendLocalImageBlockOnLatestUserInputWithNative(input) {
|
|
713
|
+
const capability = 'appendLocalImageBlockOnLatestUserInputJson';
|
|
714
|
+
const fail = (reason) => failNativeRequired(capability, reason);
|
|
715
|
+
if (isNativeDisabledByEnv()) {
|
|
716
|
+
return fail('native disabled');
|
|
717
|
+
}
|
|
718
|
+
const fn = readNativeFunction(capability);
|
|
719
|
+
if (!fn) {
|
|
720
|
+
return fail();
|
|
721
|
+
}
|
|
722
|
+
const payloadJson = safeStringify({
|
|
723
|
+
messages: input.messages
|
|
724
|
+
});
|
|
725
|
+
if (!payloadJson) {
|
|
726
|
+
return fail('json stringify failed');
|
|
727
|
+
}
|
|
728
|
+
try {
|
|
729
|
+
const raw = fn(payloadJson);
|
|
730
|
+
if (typeof raw !== 'string' || !raw) {
|
|
731
|
+
return fail('empty result');
|
|
732
|
+
}
|
|
733
|
+
const parsed = parseAppendLocalImageBlockOnLatestUserInputOutput(raw);
|
|
734
|
+
return parsed ?? fail('invalid payload');
|
|
735
|
+
}
|
|
736
|
+
catch (error) {
|
|
737
|
+
const reason = error instanceof Error ? error.message : String(error ?? 'unknown');
|
|
738
|
+
return fail(reason);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
446
741
|
export function applyBridgeNormalizeHistoryWithNative(input) {
|
|
447
742
|
const capability = 'applyBridgeNormalizeHistoryJson';
|
|
448
743
|
const fail = (reason) => failNativeRequired(capability, reason);
|
package/dist/router/virtual-router/engine-selection/native-hub-pipeline-req-outbound-semantics.d.ts
CHANGED
|
@@ -52,6 +52,7 @@ export interface NativeReqOutboundCompatAdapterContextInput {
|
|
|
52
52
|
routeId?: string;
|
|
53
53
|
capturedChatRequest?: JsonObject;
|
|
54
54
|
deepseek?: Record<string, unknown>;
|
|
55
|
+
claudeCode?: Record<string, unknown>;
|
|
55
56
|
estimatedInputTokens?: number;
|
|
56
57
|
modelId?: string;
|
|
57
58
|
clientModelId?: string;
|
|
@@ -16,6 +16,13 @@ export declare function normalizeResponsesUsageWithNative(usageRaw: unknown): un
|
|
|
16
16
|
export declare function buildResponsesPayloadFromChatWithNative(payload: unknown, context?: {
|
|
17
17
|
requestId?: string;
|
|
18
18
|
toolsRaw?: unknown[];
|
|
19
|
+
metadata?: Record<string, unknown>;
|
|
20
|
+
parallelToolCalls?: unknown;
|
|
21
|
+
toolChoice?: unknown;
|
|
22
|
+
include?: unknown;
|
|
23
|
+
store?: unknown;
|
|
24
|
+
stripHostManagedFields?: boolean;
|
|
25
|
+
sourceForRetention?: Record<string, unknown>;
|
|
19
26
|
}): Record<string, unknown>;
|
|
20
27
|
export declare function looksLikeJsonStreamPrefixWithNative(firstChunkText: string): boolean;
|
|
21
28
|
export declare function parseJsonObjectCandidateWithNative(rawText: string, maxBytes: number): Record<string, unknown> | null;
|
|
@@ -529,7 +529,14 @@ export function buildResponsesPayloadFromChatWithNative(payload, context = {}) {
|
|
|
529
529
|
const payloadJson = safeStringify(payload);
|
|
530
530
|
const contextJson = safeStringify({
|
|
531
531
|
requestId: context.requestId,
|
|
532
|
-
toolsRaw: Array.isArray(context.toolsRaw) ? context.toolsRaw : []
|
|
532
|
+
toolsRaw: Array.isArray(context.toolsRaw) ? context.toolsRaw : [],
|
|
533
|
+
metadata: context.metadata,
|
|
534
|
+
parallelToolCalls: context.parallelToolCalls,
|
|
535
|
+
toolChoice: context.toolChoice,
|
|
536
|
+
include: context.include,
|
|
537
|
+
store: context.store,
|
|
538
|
+
stripHostManagedFields: context.stripHostManagedFields,
|
|
539
|
+
sourceForRetention: context.sourceForRetention
|
|
533
540
|
});
|
|
534
541
|
if (!payloadJson || !contextJson) {
|
|
535
542
|
return fail('json stringify failed');
|