@a5c-ai/transport-adapter 5.1.1-staging.00ceebd28cf2

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 (82) hide show
  1. package/README.md +54 -0
  2. package/dist/__tests__/codecs.test.d.ts +1 -0
  3. package/dist/__tests__/codecs.test.d.ts.map +1 -0
  4. package/dist/__tests__/codecs.test.js +698 -0
  5. package/dist/__tests__/codecs.test.js.map +1 -0
  6. package/dist/__tests__/openai-engine.test.d.ts +1 -0
  7. package/dist/__tests__/openai-engine.test.d.ts.map +1 -0
  8. package/dist/__tests__/openai-engine.test.js +89 -0
  9. package/dist/__tests__/openai-engine.test.js.map +1 -0
  10. package/dist/bin/adapters-proxy.d.ts +2 -0
  11. package/dist/bin/adapters-proxy.d.ts.map +1 -0
  12. package/dist/bin/adapters-proxy.js +5 -0
  13. package/dist/bin/adapters-proxy.js.map +1 -0
  14. package/dist/bin/adapters-transport-proxy.d.ts +2 -0
  15. package/dist/bin/adapters-transport-proxy.d.ts.map +1 -0
  16. package/dist/bin/adapters-transport-proxy.js +57 -0
  17. package/dist/bin/adapters-transport-proxy.js.map +1 -0
  18. package/dist/codec.d.ts +36 -0
  19. package/dist/codec.d.ts.map +1 -0
  20. package/dist/codec.js +2 -0
  21. package/dist/codec.js.map +1 -0
  22. package/dist/codecs/anthropic.d.ts +12 -0
  23. package/dist/codecs/anthropic.d.ts.map +1 -0
  24. package/dist/codecs/anthropic.js +185 -0
  25. package/dist/codecs/anthropic.js.map +1 -0
  26. package/dist/codecs/bedrock.d.ts +12 -0
  27. package/dist/codecs/bedrock.d.ts.map +1 -0
  28. package/dist/codecs/bedrock.js +175 -0
  29. package/dist/codecs/bedrock.js.map +1 -0
  30. package/dist/codecs/google.d.ts +12 -0
  31. package/dist/codecs/google.d.ts.map +1 -0
  32. package/dist/codecs/google.js +176 -0
  33. package/dist/codecs/google.js.map +1 -0
  34. package/dist/codecs/index.d.ts +30 -0
  35. package/dist/codecs/index.d.ts.map +1 -0
  36. package/dist/codecs/index.js +115 -0
  37. package/dist/codecs/index.js.map +1 -0
  38. package/dist/codecs/openai-chat.d.ts +12 -0
  39. package/dist/codecs/openai-chat.d.ts.map +1 -0
  40. package/dist/codecs/openai-chat.js +191 -0
  41. package/dist/codecs/openai-chat.js.map +1 -0
  42. package/dist/codecs/openai-responses.d.ts +12 -0
  43. package/dist/codecs/openai-responses.d.ts.map +1 -0
  44. package/dist/codecs/openai-responses.js +229 -0
  45. package/dist/codecs/openai-responses.js.map +1 -0
  46. package/dist/config.d.ts +8 -0
  47. package/dist/config.d.ts.map +1 -0
  48. package/dist/config.js +86 -0
  49. package/dist/config.js.map +1 -0
  50. package/dist/engines/anthropic.d.ts +7 -0
  51. package/dist/engines/anthropic.d.ts.map +1 -0
  52. package/dist/engines/anthropic.js +232 -0
  53. package/dist/engines/anthropic.js.map +1 -0
  54. package/dist/engines/google.d.ts +17 -0
  55. package/dist/engines/google.d.ts.map +1 -0
  56. package/dist/engines/google.js +232 -0
  57. package/dist/engines/google.js.map +1 -0
  58. package/dist/engines/index.d.ts +3 -0
  59. package/dist/engines/index.d.ts.map +1 -0
  60. package/dist/engines/index.js +3 -0
  61. package/dist/engines/index.js.map +1 -0
  62. package/dist/engines/openai.d.ts +12 -0
  63. package/dist/engines/openai.d.ts.map +1 -0
  64. package/dist/engines/openai.js +253 -0
  65. package/dist/engines/openai.js.map +1 -0
  66. package/dist/index.d.ts +22 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +19 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/runtime.d.ts +19 -0
  71. package/dist/runtime.d.ts.map +1 -0
  72. package/dist/runtime.js +56 -0
  73. package/dist/runtime.js.map +1 -0
  74. package/dist/server.d.ts +4 -0
  75. package/dist/server.d.ts.map +1 -0
  76. package/dist/server.js +1428 -0
  77. package/dist/server.js.map +1 -0
  78. package/dist/types.d.ts +109 -0
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +11 -0
  81. package/dist/types.js.map +1 -0
  82. package/package.json +99 -0
@@ -0,0 +1,232 @@
1
+ function translateMessages(messages) {
2
+ let system;
3
+ const result = [];
4
+ for (const msg of messages) {
5
+ if (msg.role === 'system') {
6
+ system = (system ? system + '\n' : '') + msg.content;
7
+ continue;
8
+ }
9
+ const role = msg.role === 'assistant' || msg.role === 'model' ? 'assistant' : 'user';
10
+ const raw = msg.rawContent;
11
+ if (Array.isArray(raw)) {
12
+ const blocks = raw;
13
+ const toolUseBlocks = blocks.filter(b => b['type'] === 'tool_use');
14
+ const toolResultBlocks = blocks.filter(b => b['type'] === 'tool_result');
15
+ if (toolResultBlocks.length > 0) {
16
+ result.push({ role: 'user', content: toolResultBlocks });
17
+ }
18
+ else if (toolUseBlocks.length > 0) {
19
+ const content = [];
20
+ for (const b of blocks) {
21
+ if (b['type'] === 'text' && b['text'])
22
+ content.push({ type: 'text', text: String(b['text']) });
23
+ if (b['type'] === 'tool_use')
24
+ content.push(b);
25
+ }
26
+ result.push({ role: 'assistant', content });
27
+ }
28
+ else {
29
+ result.push({ role, content: msg.content });
30
+ }
31
+ }
32
+ else if (msg.role === 'tool') {
33
+ result.push({
34
+ role: 'user',
35
+ content: [{
36
+ type: 'tool_result',
37
+ tool_use_id: raw?.['tool_call_id'] ?? '',
38
+ content: msg.content,
39
+ }],
40
+ });
41
+ }
42
+ else {
43
+ result.push({ role, content: msg.content });
44
+ }
45
+ }
46
+ return { system, messages: result };
47
+ }
48
+ function translateTools(tools) {
49
+ if (!tools || tools.length === 0)
50
+ return undefined;
51
+ return tools.map(t => {
52
+ const tool = t;
53
+ const fn = tool.function;
54
+ return {
55
+ name: String(fn?.name ?? tool.name ?? ''),
56
+ description: String(fn?.description ?? tool.description ?? ''),
57
+ input_schema: (fn?.parameters ?? tool.parameters ?? { type: 'object', properties: {} }),
58
+ };
59
+ }).filter(d => d.name);
60
+ }
61
+ function buildUrl(apiBase) {
62
+ return `${apiBase}/v1/messages`;
63
+ }
64
+ function buildHeaders(apiKey) {
65
+ return {
66
+ 'Content-Type': 'application/json',
67
+ 'x-api-key': apiKey,
68
+ 'anthropic-version': '2023-06-01',
69
+ };
70
+ }
71
+ export function createAnthropicCompletionEngine(options) {
72
+ const apiBase = options.apiBase ?? 'https://api.anthropic.com';
73
+ return {
74
+ async complete(request) {
75
+ const { system, messages } = translateMessages(request.messages);
76
+ const body = {
77
+ model: options.targetModel,
78
+ max_tokens: 8192,
79
+ messages,
80
+ };
81
+ if (system)
82
+ body.system = system;
83
+ const tools = translateTools(request.tools);
84
+ if (tools)
85
+ body.tools = tools;
86
+ const url = buildUrl(apiBase);
87
+ console.error(`[transport-adapter] Anthropic engine: POST ${url}`);
88
+ const response = await fetch(url, {
89
+ method: 'POST',
90
+ headers: buildHeaders(options.apiKey),
91
+ body: JSON.stringify(body),
92
+ });
93
+ if (!response.ok) {
94
+ const errorText = await response.text();
95
+ console.error(`[transport-adapter] Anthropic API error ${response.status}: ${errorText.slice(0, 500)}`);
96
+ throw new Error(`Anthropic API error ${response.status}: ${errorText}`);
97
+ }
98
+ const data = await response.json();
99
+ const text = data.content.filter(c => c.type === 'text').map(c => c.text ?? '').join('');
100
+ const toolCalls = data.content
101
+ .filter(c => c.type === 'tool_use')
102
+ .map(c => ({
103
+ id: c.id ?? '',
104
+ name: c.name ?? '',
105
+ arguments: JSON.stringify(c.input ?? {}),
106
+ }));
107
+ return {
108
+ id: data.id,
109
+ model: options.targetModel,
110
+ role: 'assistant',
111
+ text,
112
+ finishReason: data.stop_reason === 'tool_use' ? 'tool_calls' : data.stop_reason,
113
+ usage: {
114
+ promptTokens: data.usage.input_tokens,
115
+ completionTokens: data.usage.output_tokens,
116
+ totalTokens: data.usage.input_tokens + data.usage.output_tokens,
117
+ },
118
+ toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
119
+ };
120
+ },
121
+ async *stream(request) {
122
+ const { system, messages } = translateMessages(request.messages);
123
+ const body = {
124
+ model: options.targetModel,
125
+ max_tokens: 8192,
126
+ messages,
127
+ stream: true,
128
+ };
129
+ if (system)
130
+ body.system = system;
131
+ const tools = translateTools(request.tools);
132
+ if (tools)
133
+ body.tools = tools;
134
+ const url = buildUrl(apiBase);
135
+ console.error(`[transport-adapter] Anthropic engine stream: POST ${url}`);
136
+ const response = await fetch(url, {
137
+ method: 'POST',
138
+ headers: buildHeaders(options.apiKey),
139
+ body: JSON.stringify(body),
140
+ });
141
+ console.error(`[transport-adapter] Anthropic engine stream response: ${response.status} ${response.statusText}`);
142
+ if (!response.ok) {
143
+ const errorText = await response.text();
144
+ console.error(`[transport-adapter] Anthropic API error ${response.status}: ${errorText.slice(0, 500)}`);
145
+ throw new Error(`Anthropic API error ${response.status}: ${errorText}`);
146
+ }
147
+ const reader = response.body?.getReader();
148
+ if (!reader)
149
+ throw new Error('No response body');
150
+ const decoder = new TextDecoder();
151
+ let buffer = '';
152
+ let usage;
153
+ const pendingToolCalls = [];
154
+ let currentToolIdx = -1;
155
+ while (true) {
156
+ const { done, value } = await reader.read();
157
+ if (done)
158
+ break;
159
+ buffer += decoder.decode(value, { stream: true });
160
+ const lines = buffer.split('\n');
161
+ buffer = lines.pop() ?? '';
162
+ for (const line of lines) {
163
+ const trimmed = line.trim();
164
+ if (!trimmed || !trimmed.startsWith('data: '))
165
+ continue;
166
+ const payload = trimmed.slice(6);
167
+ if (payload === '[DONE]')
168
+ continue;
169
+ try {
170
+ const event = JSON.parse(payload);
171
+ const type = event.type;
172
+ if (type === 'content_block_start') {
173
+ const block = event.content_block;
174
+ if (block?.type === 'tool_use') {
175
+ currentToolIdx = pendingToolCalls.length;
176
+ pendingToolCalls.push({
177
+ id: String(block.id ?? ''),
178
+ name: String(block.name ?? ''),
179
+ arguments: '',
180
+ });
181
+ }
182
+ }
183
+ else if (type === 'content_block_delta') {
184
+ const delta = event.delta;
185
+ if (delta?.type === 'text_delta' && delta.text) {
186
+ yield { type: 'text-delta', text: String(delta.text) };
187
+ }
188
+ else if (delta?.type === 'input_json_delta' && currentToolIdx >= 0) {
189
+ pendingToolCalls[currentToolIdx].arguments += String(delta.partial_json ?? '');
190
+ }
191
+ }
192
+ else if (type === 'content_block_stop') {
193
+ if (currentToolIdx >= 0) {
194
+ const tc = pendingToolCalls[currentToolIdx];
195
+ yield { type: 'tool-call', id: tc.id, name: tc.name, arguments: tc.arguments };
196
+ currentToolIdx = -1;
197
+ }
198
+ }
199
+ else if (type === 'message_delta') {
200
+ const delta = event.delta;
201
+ const stopReason = delta?.stop_reason;
202
+ const msgUsage = event.usage;
203
+ if (msgUsage) {
204
+ usage = {
205
+ promptTokens: usage?.promptTokens ?? 0,
206
+ completionTokens: msgUsage.output_tokens ?? 0,
207
+ totalTokens: (usage?.promptTokens ?? 0) + (msgUsage.output_tokens ?? 0),
208
+ };
209
+ }
210
+ yield { type: 'done', finishReason: stopReason === 'tool_use' ? 'tool_calls' : stopReason, usage };
211
+ return;
212
+ }
213
+ else if (type === 'message_start') {
214
+ const msg = event.message;
215
+ const msgUsage = msg?.usage;
216
+ if (msgUsage) {
217
+ usage = {
218
+ promptTokens: msgUsage.input_tokens ?? 0,
219
+ completionTokens: 0,
220
+ totalTokens: msgUsage.input_tokens ?? 0,
221
+ };
222
+ }
223
+ }
224
+ }
225
+ catch { /* skip unparseable lines */ }
226
+ }
227
+ }
228
+ yield { type: 'done', usage };
229
+ },
230
+ };
231
+ }
232
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/engines/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Google (Gemini / Vertex AI) completion engine.
3
+ *
4
+ * Moved from packages/adapters/cli/src/commands/launch-completion-engine.ts
5
+ * so that the engine lives alongside the transport-adapter runtime.
6
+ */
7
+ import type { CompletionEngine } from '../types.js';
8
+ export interface GoogleCompletionEngineOptions {
9
+ apiBase?: string;
10
+ apiKey: string;
11
+ targetModel: string;
12
+ provider?: string;
13
+ project?: string;
14
+ location?: string;
15
+ useVertexAi?: boolean;
16
+ }
17
+ export declare function createGoogleCompletionEngine(options: GoogleCompletionEngineOptions): CompletionEngine;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/engines/google.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwMD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,6BAA6B,GAAG,gBAAgB,CA2CrG"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * Google (Gemini / Vertex AI) completion engine.
3
+ *
4
+ * Moved from packages/adapters/cli/src/commands/launch-completion-engine.ts
5
+ * so that the engine lives alongside the transport-adapter runtime.
6
+ */
7
+ function translateMessagesToGoogle(messages, sigStore) {
8
+ const result = [];
9
+ const toolIdToName = new Map();
10
+ for (const msg of messages) {
11
+ const googleRole = msg.role === 'assistant' || msg.role === 'model' ? 'model' : 'user';
12
+ const raw = msg.rawContent;
13
+ if (!Array.isArray(raw)) {
14
+ result.push({ role: googleRole, parts: [{ text: msg.content }] });
15
+ continue;
16
+ }
17
+ const blocks = raw;
18
+ const parts = [];
19
+ for (const block of blocks) {
20
+ if (block['type'] === 'tool_use') {
21
+ const name = String(block['name'] ?? '');
22
+ const id = String(block['id'] ?? '');
23
+ if (id)
24
+ toolIdToName.set(id, name);
25
+ const sig = block['thoughtSignature'] ?? (id && sigStore?.get(id)) ?? undefined;
26
+ const part = {
27
+ functionCall: { name, args: block['input'] ?? {} },
28
+ };
29
+ if (sig)
30
+ part['thoughtSignature'] = sig;
31
+ parts.push(part);
32
+ }
33
+ else if (block['type'] === 'tool_result') {
34
+ const content = typeof block['content'] === 'string' ? block['content']
35
+ : Array.isArray(block['content']) ? block['content'].map(c => c['text'] ?? '').join('')
36
+ : JSON.stringify(block['content'] ?? '');
37
+ const toolUseId = String(block['tool_use_id'] ?? '');
38
+ parts.push({
39
+ functionResponse: {
40
+ name: toolIdToName.get(toolUseId) ?? String(block['name'] ?? toolUseId),
41
+ response: { content },
42
+ },
43
+ });
44
+ }
45
+ else if (block['type'] === 'text' && block['text']) {
46
+ parts.push({ text: String(block['text']) });
47
+ }
48
+ }
49
+ if (parts.length === 0) {
50
+ parts.push({ text: msg.content || '' });
51
+ }
52
+ result.push({ role: googleRole, parts });
53
+ }
54
+ return result;
55
+ }
56
+ function stripUnsupportedSchemaFields(schema) {
57
+ if (!schema || typeof schema !== 'object')
58
+ return schema;
59
+ if (Array.isArray(schema))
60
+ return schema.map(stripUnsupportedSchemaFields);
61
+ const result = {};
62
+ for (const [key, value] of Object.entries(schema)) {
63
+ if (key === 'additionalProperties')
64
+ continue;
65
+ result[key] = stripUnsupportedSchemaFields(value);
66
+ }
67
+ return result;
68
+ }
69
+ function buildGoogleBody(messages, tools, sigStore) {
70
+ const body = { contents: translateMessagesToGoogle(messages, sigStore) };
71
+ if (tools && tools.length > 0) {
72
+ const declarations = tools.map((t) => { const tool = t; const fn = tool.function; return { name: fn?.name ?? tool.name, description: fn?.description ?? tool.description, parameters: stripUnsupportedSchemaFields(fn?.parameters ?? tool.parameters) }; }).filter((d) => d.name);
73
+ if (declarations.length > 0)
74
+ body.tools = [{ functionDeclarations: declarations }];
75
+ }
76
+ return JSON.stringify(body);
77
+ }
78
+ function buildGoogleUrl(options, streaming) {
79
+ const useVertexAi = options.useVertexAi === true || options.provider === 'vertex';
80
+ const method = streaming ? 'streamGenerateContent' : 'generateContent';
81
+ if (useVertexAi) {
82
+ const project = options.project ?? process.env['GOOGLE_CLOUD_PROJECT'];
83
+ if (!project) {
84
+ throw new Error('GOOGLE_CLOUD_PROJECT is required for Vertex AI Gemini proxy calls.');
85
+ }
86
+ const location = options.location ?? process.env['GOOGLE_CLOUD_LOCATION'] ?? 'global';
87
+ const apiBase = options.apiBase ?? 'https://aiplatform.googleapis.com';
88
+ const url = new URL(`/v1/projects/${encodeURIComponent(project)}/locations/${encodeURIComponent(location)}/publishers/google/models/${encodeURIComponent(options.targetModel)}:${method}`, apiBase);
89
+ url.searchParams.set('key', options.apiKey);
90
+ if (streaming)
91
+ url.searchParams.set('alt', 'sse');
92
+ return String(url);
93
+ }
94
+ const apiBase = options.apiBase ?? 'https://generativelanguage.googleapis.com';
95
+ const url = new URL(`/v1beta/models/${encodeURIComponent(options.targetModel)}:${method}`, apiBase);
96
+ url.searchParams.set('key', options.apiKey);
97
+ if (streaming)
98
+ url.searchParams.set('alt', 'sse');
99
+ return String(url);
100
+ }
101
+ function googleHeaders() {
102
+ return { 'Content-Type': 'application/json' };
103
+ }
104
+ function extractGoogleText(data) {
105
+ return data.candidates
106
+ ?.flatMap((candidate) => candidate.content?.parts?.map((part) => part.text ?? '') ?? [])
107
+ .filter(Boolean)
108
+ .join('') ?? '';
109
+ }
110
+ function extractGoogleToolCalls(data, sigStore) {
111
+ const calls = [];
112
+ for (const candidate of data.candidates ?? []) {
113
+ for (const part of candidate.content?.parts ?? []) {
114
+ if (part.functionCall) {
115
+ const rawPart = part;
116
+ const id = `call_${Date.now()}_${calls.length}`;
117
+ const metadata = {};
118
+ if (rawPart['thoughtSignature']) {
119
+ metadata['thoughtSignature'] = rawPart['thoughtSignature'];
120
+ sigStore?.set(id, String(rawPart['thoughtSignature']));
121
+ }
122
+ calls.push({
123
+ id,
124
+ name: part.functionCall.name,
125
+ arguments: JSON.stringify(part.functionCall.args ?? {}),
126
+ metadata: Object.keys(metadata).length > 0 ? metadata : undefined,
127
+ });
128
+ }
129
+ }
130
+ }
131
+ return calls.length > 0 ? calls : undefined;
132
+ }
133
+ function googleUsage(data) {
134
+ return {
135
+ promptTokens: data.usageMetadata?.promptTokenCount ?? 0,
136
+ completionTokens: data.usageMetadata?.candidatesTokenCount ?? 0,
137
+ totalTokens: data.usageMetadata?.totalTokenCount ?? 0,
138
+ };
139
+ }
140
+ function parseGoogleStreamPayload(payload, sigStore) {
141
+ if (!payload || payload === '[DONE]')
142
+ return null;
143
+ try {
144
+ const data = JSON.parse(payload);
145
+ return {
146
+ text: extractGoogleText(data),
147
+ finishReason: data.candidates?.find((candidate) => candidate.finishReason)?.finishReason?.toLowerCase(),
148
+ usage: data.usageMetadata ? googleUsage(data) : undefined,
149
+ toolCalls: extractGoogleToolCalls(data, sigStore),
150
+ };
151
+ }
152
+ catch {
153
+ return null;
154
+ }
155
+ }
156
+ async function* parseGoogleStream(response, sigStore) {
157
+ const reader = response.body?.getReader();
158
+ if (!reader)
159
+ throw new Error('No response body');
160
+ const decoder = new TextDecoder();
161
+ let buffer = '';
162
+ let usage;
163
+ let finishReason;
164
+ while (true) {
165
+ const { done, value } = await reader.read();
166
+ if (done)
167
+ break;
168
+ buffer += decoder.decode(value, { stream: true });
169
+ const lines = buffer.split('\n');
170
+ buffer = lines.pop() ?? '';
171
+ for (const line of lines) {
172
+ const trimmed = line.trim();
173
+ if (!trimmed)
174
+ continue;
175
+ const payload = trimmed.startsWith('data:') ? trimmed.slice(5).trim() : trimmed;
176
+ const parsed = parseGoogleStreamPayload(payload, sigStore);
177
+ if (!parsed)
178
+ continue;
179
+ if (parsed.text)
180
+ yield { type: 'text-delta', text: parsed.text };
181
+ if (parsed.toolCalls) {
182
+ for (const tc of parsed.toolCalls) {
183
+ yield { type: 'tool-call', id: tc.id, name: tc.name, arguments: tc.arguments, metadata: tc.metadata };
184
+ }
185
+ }
186
+ if (parsed.usage)
187
+ usage = parsed.usage;
188
+ if (parsed.finishReason)
189
+ finishReason = parsed.finishReason;
190
+ }
191
+ }
192
+ yield { type: 'done', finishReason, usage };
193
+ }
194
+ export function createGoogleCompletionEngine(options) {
195
+ return {
196
+ async complete(request) {
197
+ const response = await fetch(buildGoogleUrl(options, false), {
198
+ method: 'POST',
199
+ headers: googleHeaders(),
200
+ body: buildGoogleBody(request.messages, request.tools, request.thoughtSignatureStore),
201
+ });
202
+ if (!response.ok) {
203
+ const errorText = await response.text();
204
+ throw new Error(`Google API error ${response.status}: ${errorText}`);
205
+ }
206
+ const data = await response.json();
207
+ const toolCalls = extractGoogleToolCalls(data, request.thoughtSignatureStore);
208
+ return {
209
+ id: `google_${Date.now()}`,
210
+ model: options.targetModel,
211
+ role: 'assistant',
212
+ text: extractGoogleText(data),
213
+ finishReason: data.candidates?.find((candidate) => candidate.finishReason)?.finishReason?.toLowerCase() ?? 'stop',
214
+ usage: googleUsage(data),
215
+ toolCalls,
216
+ };
217
+ },
218
+ async *stream(request) {
219
+ const response = await fetch(buildGoogleUrl(options, true), {
220
+ method: 'POST',
221
+ headers: googleHeaders(),
222
+ body: buildGoogleBody(request.messages, request.tools, request.thoughtSignatureStore),
223
+ });
224
+ if (!response.ok) {
225
+ const errorText = await response.text();
226
+ throw new Error(`Google API error ${response.status}: ${errorText}`);
227
+ }
228
+ yield* parseGoogleStream(response, request.thoughtSignatureStore);
229
+ },
230
+ };
231
+ }
232
+ //# sourceMappingURL=google.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/engines/google.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createOpenAICompletionEngine } from './openai.js';
2
+ export { createGoogleCompletionEngine } from './google.js';
3
+ export type { GoogleCompletionEngineOptions } from './google.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engines/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,YAAY,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createOpenAICompletionEngine } from './openai.js';
2
+ export { createGoogleCompletionEngine } from './google.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/engines/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * OpenAI-compatible completion engine.
3
+ *
4
+ * Moved from packages/adapters/cli/src/commands/launch-completion-engine.ts
5
+ * so that the engine lives alongside the transport-adapter runtime.
6
+ */
7
+ import type { CompletionEngine } from '../types.js';
8
+ export declare function createOpenAICompletionEngine(options: {
9
+ apiBase: string;
10
+ apiKey: string;
11
+ targetModel: string;
12
+ }): CompletionEngine;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/engines/openai.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAIjB,MAAM,aAAa,CAAC;AA2IrB,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,gBAAgB,CA+JnB"}