@kaitranntt/ccs 7.72.1-dev.2 → 7.72.1-dev.3

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.
@@ -38,6 +38,13 @@ export interface ProxyOpenAIRequest {
38
38
  parameters: Record<string, unknown>;
39
39
  };
40
40
  }>;
41
+ tool_choice?: 'auto' | 'none' | 'required' | {
42
+ type: 'function';
43
+ function: {
44
+ name: string;
45
+ };
46
+ };
47
+ parallel_tool_calls?: boolean;
41
48
  messages: OpenAIMessage[];
42
49
  max_tokens?: number;
43
50
  temperature?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"request-transformer.d.ts","sourceRoot":"","sources":["../../../src/proxy/transformers/request-transformer.ts"],"names":[],"mappings":"AA0DA,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,KAAK,iBAAiB,GAAG,cAAc,GAAG,eAAe,CAAC;AAE1D,UAAU,aAAa;IACrB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC,CAAC;KACH,CAAC,CAAC;IACH,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAiSD,qBAAa,uBAAuB;IAClC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;CA4B5C"}
1
+ {"version":3,"file":"request-transformer.d.ts","sourceRoot":"","sources":["../../../src/proxy/transformers/request-transformer.ts"],"names":[],"mappings":"AAwEA,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,KAAK,iBAAiB,GAAG,cAAc,GAAG,eAAe,CAAC;AAE1D,UAAU,aAAa;IACrB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC,CAAC;KACH,CAAC,CAAC;IACH,WAAW,CAAC,EACR,MAAM,GACN,MAAM,GACN,UAAU,GACV;QACE,IAAI,EAAE,UAAU,CAAC;QACjB,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACN,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAqiBD,qBAAa,uBAAuB;IAClC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB;CA8B5C"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProxyRequestTransformer = void 0;
4
- const TOOL_RESULT_SERIALIZATION_FALLBACK = '[unserializable content]';
5
4
  const TOOL_USE_ARGUMENTS_FALLBACK = '{}';
6
5
  function assertObject(value, label) {
7
6
  if (typeof value !== 'object' || value === null) {
@@ -50,32 +49,67 @@ function flattenTextContent(content, label) {
50
49
  })
51
50
  .join('\n');
52
51
  }
53
- function toToolResultContent(content, label) {
52
+ /**
53
+ * Convert tool_result content to OpenAI-compatible format.
54
+ * Handles strings, arrays with text/image blocks, and error prefixing.
55
+ * Ported from openclaude's convertToolResultContent.
56
+ */
57
+ function convertToolResultContent(content, isError, label) {
54
58
  if (content === undefined) {
55
59
  return '';
56
60
  }
57
61
  if (typeof content === 'string') {
58
- return content;
62
+ return isError ? `Error: ${content}` : content;
59
63
  }
60
- if (Array.isArray(content)) {
61
- return flattenTextContent(content, label);
64
+ if (!Array.isArray(content)) {
65
+ const text = safeJsonStringify(content, '[unserializable content]');
66
+ return isError ? `Error: ${text}` : text;
62
67
  }
63
- return safeJsonStringify(content, TOOL_RESULT_SERIALIZATION_FALLBACK);
68
+ const parts = [];
69
+ for (const [index, block] of content.entries()) {
70
+ const parsed = assertObject(block, `${label}[${index}]`);
71
+ if (parsed.type === 'text' && typeof parsed.text === 'string') {
72
+ parts.push(parsed.text);
73
+ continue;
74
+ }
75
+ if (parsed.type === 'image') {
76
+ throw new Error(`${label}[${index}].type "image" is not supported in tool_result content`);
77
+ }
78
+ if (typeof parsed.text === 'string') {
79
+ parts.push(parsed.text);
80
+ continue;
81
+ }
82
+ throw new Error(`${label}[${index}].type "${String(parsed.type)}" is not supported`);
83
+ }
84
+ const text = parts.join('\n');
85
+ if (!text) {
86
+ return isError ? 'Error:' : '';
87
+ }
88
+ return isError ? `Error: ${text}` : text;
64
89
  }
65
90
  function createFallbackToolId(messageIndex, blockIndex) {
66
91
  return `toolu_proxy_fallback_${messageIndex}_${blockIndex}`;
67
92
  }
68
93
  function toImagePart(block, label) {
69
94
  const source = block.source;
70
- if (!source || source.type !== 'base64' || !source.media_type || !source.data) {
71
- throw new Error(`${label}.source must be a base64 image payload`);
95
+ if (!source) {
96
+ throw new Error(`${label}.source is missing`);
72
97
  }
73
- return {
74
- type: 'image_url',
75
- image_url: {
76
- url: `data:${source.media_type};base64,${source.data}`,
77
- },
78
- };
98
+ if (source.type === 'url' && source.url) {
99
+ return {
100
+ type: 'image_url',
101
+ image_url: { url: source.url },
102
+ };
103
+ }
104
+ if (source.type === 'base64' && source.media_type && source.data) {
105
+ return {
106
+ type: 'image_url',
107
+ image_url: {
108
+ url: `data:${source.media_type};base64,${source.data}`,
109
+ },
110
+ };
111
+ }
112
+ throw new Error(`${label}.source must be a base64 or url image payload`);
79
113
  }
80
114
  function isImageBlock(block) {
81
115
  return block.type === 'image';
@@ -103,24 +137,68 @@ function transformTools(value) {
103
137
  }
104
138
  const tools = value
105
139
  .filter((entry) => typeof entry === 'object' && entry !== null)
106
- .map((entry) => ({
107
- type: 'function',
108
- function: {
109
- name: typeof entry.name === 'string' ? entry.name : 'tool',
110
- ...(typeof entry.description === 'string' ? { description: entry.description } : {}),
111
- parameters: typeof entry.input_schema === 'object' && entry.input_schema !== null
112
- ? entry.input_schema
113
- : { type: 'object', properties: {} },
114
- },
115
- }));
140
+ .map((entry) => {
141
+ const rawSchema = typeof entry.input_schema === 'object' && entry.input_schema !== null
142
+ ? entry.input_schema
143
+ : { type: 'object', properties: {} };
144
+ return {
145
+ type: 'function',
146
+ function: {
147
+ name: typeof entry.name === 'string' ? entry.name : 'tool',
148
+ ...(typeof entry.description === 'string' ? { description: entry.description } : {}),
149
+ parameters: rawSchema,
150
+ },
151
+ };
152
+ });
116
153
  return tools.length > 0 ? tools : undefined;
117
154
  }
118
- function mapThinkingToReasoning(thinking) {
155
+ function transformToolChoice(value, hasTools) {
156
+ if (!value) {
157
+ return hasTools ? { tool_choice: 'auto' } : {};
158
+ }
159
+ if (!hasTools) {
160
+ throw new Error('tool_choice requires tools');
161
+ }
162
+ const parallelToolCalls = value.disable_parallel_tool_use === true ? { parallel_tool_calls: false } : {};
163
+ switch (value.type) {
164
+ case undefined:
165
+ case 'auto':
166
+ return { tool_choice: 'auto', ...parallelToolCalls };
167
+ case 'none':
168
+ return { tool_choice: 'none' };
169
+ case 'any':
170
+ return { tool_choice: 'required', ...parallelToolCalls };
171
+ case 'tool':
172
+ if (typeof value.name !== 'string' || value.name.trim().length === 0) {
173
+ throw new Error('tool_choice.name must be a non-empty string when type is "tool"');
174
+ }
175
+ return {
176
+ tool_choice: {
177
+ type: 'function',
178
+ function: { name: value.name.trim() },
179
+ },
180
+ ...parallelToolCalls,
181
+ };
182
+ default:
183
+ throw new Error('tool_choice.type must be "auto", "any", "tool", or "none"');
184
+ }
185
+ }
186
+ function mapThinkingToReasoning(thinking, outputConfig) {
119
187
  if (!thinking || thinking.type === 'disabled') {
120
188
  return {};
121
189
  }
190
+ if (thinking.type === 'adaptive') {
191
+ const effort = toOpenAIEffort(resolveOutputConfigEffort(outputConfig) ?? 'high');
192
+ return {
193
+ reasoning_effort: effort,
194
+ reasoning: {
195
+ enabled: true,
196
+ effort,
197
+ },
198
+ };
199
+ }
122
200
  if (thinking.type !== 'enabled') {
123
- throw new Error('thinking.type must be "enabled" or "disabled"');
201
+ throw new Error('thinking.type must be "enabled", "adaptive", or "disabled"');
124
202
  }
125
203
  const effort = typeof thinking.budget_tokens === 'number' && thinking.budget_tokens >= 8192
126
204
  ? 'high'
@@ -133,52 +211,135 @@ function mapThinkingToReasoning(thinking) {
133
211
  },
134
212
  };
135
213
  }
214
+ const VALID_EFFORT_LEVELS = new Set(['low', 'medium', 'high', 'max']);
215
+ function resolveOutputConfigEffort(outputConfig) {
216
+ if (!outputConfig || typeof outputConfig.effort !== 'string') {
217
+ return undefined;
218
+ }
219
+ const normalized = outputConfig.effort.trim().toLowerCase();
220
+ return VALID_EFFORT_LEVELS.has(normalized) ? normalized : undefined;
221
+ }
222
+ /**
223
+ * Map Anthropic effort levels to OpenAI-compatible reasoning_effort.
224
+ * Anthropic's `max` has no standard OpenAI equivalent — most providers
225
+ * only accept low/medium/high and reject unknown values with a 400.
226
+ * Ported from openclaude's standardEffortToOpenAI() which maps max -> xhigh
227
+ * for Codex; for generic OpenAI-compat providers we clamp to high.
228
+ */
229
+ function toOpenAIEffort(effort) {
230
+ return effort === 'max' ? 'high' : effort;
231
+ }
136
232
  function transformMessages(messagesValue) {
137
233
  if (!Array.isArray(messagesValue)) {
138
234
  throw new Error('messages must be an array');
139
235
  }
140
236
  const translatedMessages = [];
237
+ let pendingToolUseIds = null;
238
+ let hasPendingToolUseIds = false;
141
239
  messagesValue.forEach((message, messageIndex) => {
142
240
  const parsedMessage = assertObject(message, `messages[${messageIndex}]`);
143
241
  const role = parsedMessage.role;
144
242
  if (role !== 'user' && role !== 'assistant') {
145
243
  throw new Error(`messages[${messageIndex}].role must be "user" or "assistant"`);
146
244
  }
245
+ if (pendingToolUseIds && pendingToolUseIds.size > 0 && role !== 'user') {
246
+ throw new Error(`messages[${messageIndex}].role must be "user" with tool_result blocks after assistant tool_use`);
247
+ }
147
248
  const content = parsedMessage.content;
148
249
  if (typeof content === 'string') {
250
+ if (pendingToolUseIds && pendingToolUseIds.size > 0) {
251
+ throw new Error(`messages[${messageIndex}].content must start with tool_result blocks for pending tool_use ids`);
252
+ }
149
253
  translatedMessages.push({ role, content });
150
254
  return;
151
255
  }
152
256
  if (!Array.isArray(content)) {
153
257
  throw new Error(`messages[${messageIndex}].content must be a string or array`);
154
258
  }
155
- const userParts = [];
259
+ if (role === 'user') {
260
+ const userParts = [];
261
+ let sawToolResult = false;
262
+ const resolvedToolUseIds = new Set();
263
+ content.forEach((block, blockIndex) => {
264
+ const parsed = assertObject(block, `messages[${messageIndex}].content[${blockIndex}]`);
265
+ if (parsed.type === 'thinking' || parsed.type === 'redacted_thinking') {
266
+ return;
267
+ }
268
+ if (parsed.type === 'text') {
269
+ if (sawToolResult) {
270
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] text is not allowed after tool_result blocks`);
271
+ }
272
+ const text = typeof parsed.text === 'string' ? parsed.text : '';
273
+ userParts.push({ type: 'text', text });
274
+ return;
275
+ }
276
+ if (isImageBlock(parsed)) {
277
+ if (sawToolResult) {
278
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] image is not allowed after tool_result blocks`);
279
+ }
280
+ userParts.push(toImagePart(parsed, `messages[${messageIndex}].content[${blockIndex}]`));
281
+ return;
282
+ }
283
+ if (isToolResultBlock(parsed)) {
284
+ if (!pendingToolUseIds || pendingToolUseIds.size === 0) {
285
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] tool_result requires a preceding assistant tool_use`);
286
+ }
287
+ if (userParts.length > 0) {
288
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] tool_result blocks must come before other user content`);
289
+ }
290
+ if (typeof parsed.tool_use_id !== 'string' || parsed.tool_use_id.trim().length === 0) {
291
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}].tool_use_id must be a non-empty string`);
292
+ }
293
+ if (!pendingToolUseIds.has(parsed.tool_use_id)) {
294
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}].tool_use_id "${parsed.tool_use_id}" does not match a pending tool_use`);
295
+ }
296
+ if (resolvedToolUseIds.has(parsed.tool_use_id)) {
297
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}].tool_use_id "${parsed.tool_use_id}" is duplicated`);
298
+ }
299
+ sawToolResult = true;
300
+ resolvedToolUseIds.add(parsed.tool_use_id);
301
+ translatedMessages.push({
302
+ role: 'tool',
303
+ tool_call_id: parsed.tool_use_id,
304
+ content: convertToolResultContent(parsed.content, parsed.is_error === true, `messages[${messageIndex}].content[${blockIndex}].content`),
305
+ });
306
+ return;
307
+ }
308
+ if (isToolUseBlock(parsed)) {
309
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] tool_use requires assistant role`);
310
+ }
311
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}].type "${String(parsed.type)}" is not supported`);
312
+ });
313
+ if (sawToolResult) {
314
+ if (resolvedToolUseIds.size !== pendingToolUseIds?.size) {
315
+ throw new Error(`messages[${messageIndex}].content must provide tool_result blocks for all pending tool_use ids`);
316
+ }
317
+ pendingToolUseIds = null;
318
+ hasPendingToolUseIds = false;
319
+ return;
320
+ }
321
+ if (pendingToolUseIds && pendingToolUseIds.size > 0) {
322
+ throw new Error(`messages[${messageIndex}].content must start with tool_result blocks for pending tool_use ids`);
323
+ }
324
+ if (userParts.length > 0) {
325
+ flushUserContent(translatedMessages, userParts);
326
+ }
327
+ return;
328
+ }
329
+ // Assistant role
156
330
  const assistantTextParts = [];
157
331
  const toolCalls = [];
158
- let sawToolResult = false;
159
332
  content.forEach((block, blockIndex) => {
160
333
  const parsed = assertObject(block, `messages[${messageIndex}].content[${blockIndex}]`);
161
- if (parsed.type === 'text') {
162
- const text = typeof parsed.text === 'string' ? parsed.text : '';
163
- if (role === 'user') {
164
- userParts.push({ type: 'text', text });
165
- }
166
- else {
167
- assistantTextParts.push(text);
168
- }
334
+ if (parsed.type === 'thinking' || parsed.type === 'redacted_thinking') {
169
335
  return;
170
336
  }
171
- if (isImageBlock(parsed)) {
172
- if (role !== 'user') {
173
- throw new Error(`messages[${messageIndex}].content[${blockIndex}] image requires user role`);
174
- }
175
- userParts.push(toImagePart(parsed, `messages[${messageIndex}].content[${blockIndex}]`));
337
+ if (parsed.type === 'text') {
338
+ const text = typeof parsed.text === 'string' ? parsed.text : '';
339
+ assistantTextParts.push(text);
176
340
  return;
177
341
  }
178
342
  if (isToolUseBlock(parsed)) {
179
- if (role !== 'assistant') {
180
- throw new Error(`messages[${messageIndex}].content[${blockIndex}] tool_use requires assistant role`);
181
- }
182
343
  toolCalls.push({
183
344
  id: typeof parsed.id === 'string' && parsed.id.length > 0
184
345
  ? parsed.id
@@ -191,41 +352,71 @@ function transformMessages(messagesValue) {
191
352
  });
192
353
  return;
193
354
  }
355
+ if (isImageBlock(parsed)) {
356
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] image requires user role`);
357
+ }
194
358
  if (isToolResultBlock(parsed)) {
195
- if (role !== 'user') {
196
- throw new Error(`messages[${messageIndex}].content[${blockIndex}] tool_result requires user role`);
197
- }
198
- if (typeof parsed.tool_use_id !== 'string' || parsed.tool_use_id.trim().length === 0) {
199
- throw new Error(`messages[${messageIndex}].content[${blockIndex}].tool_use_id must be a non-empty string`);
200
- }
201
- sawToolResult = true;
202
- flushUserContent(translatedMessages, userParts);
203
- translatedMessages.push({
204
- role: 'tool',
205
- tool_call_id: parsed.tool_use_id,
206
- content: toToolResultContent(parsed.content, `messages[${messageIndex}].content[${blockIndex}].content`),
207
- });
208
- return;
359
+ throw new Error(`messages[${messageIndex}].content[${blockIndex}] tool_result requires user role`);
209
360
  }
210
361
  throw new Error(`messages[${messageIndex}].content[${blockIndex}].type "${String(parsed.type)}" is not supported`);
211
362
  });
212
- if (role === 'assistant') {
213
- translatedMessages.push({
214
- role: 'assistant',
215
- content: assistantTextParts.join('\n'),
216
- tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
217
- });
363
+ if (assistantTextParts.length === 0 && toolCalls.length === 0) {
218
364
  return;
219
365
  }
220
- if (userParts.length > 0 || !sawToolResult) {
221
- flushUserContent(translatedMessages, userParts);
222
- }
366
+ pendingToolUseIds =
367
+ toolCalls.length > 0 ? new Set(toolCalls.map((toolCall) => toolCall.id)) : null;
368
+ hasPendingToolUseIds = toolCalls.length > 0;
369
+ translatedMessages.push({
370
+ role: 'assistant',
371
+ content: assistantTextParts.join('\n'),
372
+ tool_calls: toolCalls.length > 0 ? toolCalls : undefined,
373
+ });
223
374
  });
375
+ if (hasPendingToolUseIds) {
376
+ throw new Error('messages must provide tool_result blocks for the latest assistant tool_use');
377
+ }
224
378
  return translatedMessages;
225
379
  }
380
+ /**
381
+ * Coalesce consecutive messages of the same role.
382
+ * OpenAI/vLLM/Ollama/Mistral require strict user<->assistant alternation.
383
+ * Multiple consecutive tool messages are allowed (assistant -> tool* -> user).
384
+ * Ported from openclaude's coalescing pass.
385
+ */
386
+ function coalesceMessages(messages) {
387
+ const coalesced = [];
388
+ for (const msg of messages) {
389
+ const prev = coalesced[coalesced.length - 1];
390
+ if (prev && prev.role === msg.role && msg.role !== 'tool' && msg.role !== 'system') {
391
+ const prevContent = prev.content;
392
+ const curContent = msg.content;
393
+ if (typeof prevContent === 'string' && typeof curContent === 'string') {
394
+ prev.content = prevContent + (prevContent && curContent ? '\n' : '') + curContent;
395
+ }
396
+ else {
397
+ const toArray = (c) => {
398
+ if (!c)
399
+ return [];
400
+ if (typeof c === 'string')
401
+ return c ? [{ type: 'text', text: c }] : [];
402
+ return c;
403
+ };
404
+ prev.content = [...toArray(prevContent), ...toArray(curContent)];
405
+ }
406
+ if (msg.tool_calls?.length) {
407
+ prev.tool_calls = [...(prev.tool_calls ?? []), ...msg.tool_calls];
408
+ }
409
+ }
410
+ else {
411
+ coalesced.push({ ...msg });
412
+ }
413
+ }
414
+ return coalesced;
415
+ }
226
416
  class ProxyRequestTransformer {
227
417
  transform(raw) {
228
418
  const source = assertObject(raw || {}, 'request');
419
+ const tools = transformTools(source.tools);
229
420
  const messages = transformMessages(source.messages);
230
421
  const system = source.system;
231
422
  const allMessages = system !== undefined
@@ -239,14 +430,15 @@ class ProxyRequestTransformer {
239
430
  ? source.model.trim()
240
431
  : undefined,
241
432
  stream: source.stream === true,
242
- messages: allMessages,
433
+ messages: coalesceMessages(allMessages),
243
434
  max_tokens: asNumber(source.max_tokens),
244
435
  temperature: asNumber(source.temperature),
245
436
  top_p: asNumber(source.top_p),
246
437
  stop: asStringArray(source.stop_sequences),
247
438
  metadata: asMetadata(source.metadata),
248
- tools: transformTools(source.tools),
249
- ...mapThinkingToReasoning(source.thinking),
439
+ tools,
440
+ ...transformToolChoice(source.tool_choice, tools !== undefined),
441
+ ...mapThinkingToReasoning(source.thinking, source.output_config),
250
442
  };
251
443
  }
252
444
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request-transformer.js","sourceRoot":"","sources":["../../../src/proxy/transformers/request-transformer.ts"],"names":[],"mappings":";;;AA8GA,MAAM,kCAAkC,GAAG,0BAA0B,CAAC;AACtE,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEzC,SAAS,YAAY,CAAC,KAAc,EAAE,KAAa;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CACzB,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAC1E,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,QAAgB;IACzD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB,EAAE,KAAa;IACzD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0CAA0C,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB,EAAE,KAAa;IAC1D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,iBAAiB,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAoB,EAAE,UAAkB;IACpE,OAAO,wBAAwB,YAAY,IAAI,UAAU,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW,CAAC,KAA0B,EAAE,KAAa;IAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wCAAwC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,GAAG,EAAE,QAAQ,MAAM,CAAC,UAAU,WAAW,MAAM,CAAC,IAAI,EAAE;SACvD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAA4B;IAChD,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,KAA4B;IAClD,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAA4B;IACrD,OAAO,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAyB,EAAE,KAA0B;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC7D,QAAQ,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,IAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;KAC/F,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,KAAK;SAChB,MAAM,CACL,CAAC,KAAK,EAA8E,EAAE,CACpF,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAC9C;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,UAAmB;QACzB,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAC1D,GAAG,CAAC,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,UAAU,EACR,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI;gBACnE,CAAC,CAAE,KAAK,CAAC,YAAwC;gBACjD,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;SACzC;KACF,CAAC,CAAC,CAAC;IAEN,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAAuC;IAEvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,MAAM,GACV,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAI;QAC1E,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,QAAQ,CAAC;IAEf,OAAO;QACL,gBAAgB,EAAE,MAAM;QACxB,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,MAAM;SACP;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,aAAsB;IAC/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,kBAAkB,GAAoB,EAAE,CAAC;IAE/C,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;QAC9C,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,YAAY,GAAG,CAAqB,CAAC;QAC7F,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;QAChC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,sCAAsC,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;QACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,qCAAqC,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,SAAS,GAAwB,EAAE,CAAC;QAC1C,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,MAAM,SAAS,GAA6C,EAAE,CAAC;QAC/D,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,YAAY,CACzB,KAAK,EACL,YAAY,YAAY,aAAa,UAAU,GAAG,CAC1B,CAAC;YAE3B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,aAAa,UAAU,4BAA4B,CAC5E,CAAC;gBACJ,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,YAAY,aAAa,UAAU,GAAG,CAAC,CAAC,CAAC;gBACxF,OAAO;YACT,CAAC;YAED,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,aAAa,UAAU,oCAAoC,CACpF,CAAC;gBACJ,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC;oBACb,EAAE,EACA,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;wBACnD,CAAC,CAAC,MAAM,CAAC,EAAE;wBACX,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,UAAU,CAAC;oBACpD,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;wBAC5D,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,2BAA2B,CAAC;qBAC9E;iBACF,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,aAAa,UAAU,kCAAkC,CAClF,CAAC;gBACJ,CAAC;gBACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrF,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,aAAa,UAAU,0CAA0C,CAC1F,CAAC;gBACJ,CAAC;gBACD,aAAa,GAAG,IAAI,CAAC;gBACrB,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;gBAChD,kBAAkB,CAAC,IAAI,CAAC;oBACtB,IAAI,EAAE,MAAM;oBACZ,YAAY,EAAE,MAAM,CAAC,WAAW;oBAChC,OAAO,EAAE,mBAAmB,CAC1B,MAAM,CAAC,OAAO,EACd,YAAY,YAAY,aAAa,UAAU,WAAW,CAC3D;iBACF,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,IAAI,KAAK,CACb,YAAY,YAAY,aAAa,UAAU,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAClG,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,kBAAkB,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;gBACtC,UAAU,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAa,uBAAuB;IAClC,SAAS,CAAC,GAAY;QACpB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,IAAI,EAAE,EAAE,SAAS,CAA+B,CAAC;QAChF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,MAAM,WAAW,GACf,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC;gBACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAmB;gBAClF,GAAG,QAAQ;aACZ;YACH,CAAC,CAAC,QAAQ,CAAC;QAEf,OAAO;YACL,KAAK,EACH,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;gBACrB,CAAC,CAAC,SAAS;YACf,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI;YAC9B,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;YACvC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;YACzC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YAC7B,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC;YAC1C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;YACrC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;YACnC,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC3C,CAAC;IACJ,CAAC;CACF;AA7BD,0DA6BC"}
1
+ {"version":3,"file":"request-transformer.js","sourceRoot":"","sources":["../../../src/proxy/transformers/request-transformer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaitranntt/ccs",
3
- "version": "7.72.1-dev.2",
3
+ "version": "7.72.1-dev.3",
4
4
  "description": "Claude Code Switch - Instant profile switching between Claude, GLM, Kimi, and more",
5
5
  "keywords": [
6
6
  "cli",