| | import { getSystemPrompt, getUserAgent } from '../../configs/config.js'
|
| |
|
| | export function transformToCommon(openaiRequest) {
|
| |
|
| | const commonRequest = {
|
| | ...openaiRequest
|
| | };
|
| |
|
| | const systemPrompt = getSystemPrompt();
|
| |
|
| | if (systemPrompt) {
|
| |
|
| | const hasSystemMessage = commonRequest.messages?.some(m => m.role === 'system');
|
| |
|
| | if (hasSystemMessage) {
|
| |
|
| | commonRequest.messages = commonRequest.messages.map((msg, index) => {
|
| | if (msg.role === 'system' && index === commonRequest.messages.findIndex(m => m.role === 'system')) {
|
| |
|
| | return {
|
| | role: 'system',
|
| | content: systemPrompt + (typeof msg.content === 'string' ? msg.content?.replace("You are Claude Code, Anthropic's official CLI for Claude.", 'You are bot.') : '')
|
| | };
|
| | }
|
| | return msg;
|
| | });
|
| | } else {
|
| |
|
| | commonRequest.messages = [
|
| | {
|
| | role: 'system',
|
| | content: systemPrompt
|
| | },
|
| | ...(commonRequest.messages || [])
|
| | ];
|
| | }
|
| | }
|
| |
|
| | return commonRequest;
|
| | }
|
| |
|
| | export function getCommonHeaders(authHeader, clientHeaders = {}) {
|
| |
|
| | const sessionId = clientHeaders['x-session-id'] || generateUUID();
|
| | const messageId = clientHeaders['x-assistant-message-id'] || generateUUID();
|
| |
|
| | const headers = {
|
| | 'accept': 'application/json',
|
| | 'content-type': 'application/json',
|
| | 'authorization': authHeader || '',
|
| | 'x-api-provider': 'baseten',
|
| | 'x-factory-client': 'cli',
|
| | 'x-session-id': sessionId,
|
| | 'x-assistant-message-id': messageId,
|
| | 'user-agent': getUserAgent(),
|
| | 'connection': 'keep-alive'
|
| | };
|
| |
|
| |
|
| | const stainlessDefaults = {
|
| | 'x-stainless-arch': 'x64',
|
| | 'x-stainless-lang': 'js',
|
| | 'x-stainless-os': 'MacOS',
|
| | 'x-stainless-runtime': 'node',
|
| | 'x-stainless-retry-count': '0',
|
| | 'x-stainless-package-version': '5.23.2',
|
| | 'x-stainless-runtime-version': 'v24.3.0'
|
| | };
|
| |
|
| |
|
| | Object.keys(stainlessDefaults).forEach(header => {
|
| | headers[header] = clientHeaders[header] || stainlessDefaults[header];
|
| | });
|
| |
|
| | return headers;
|
| | }
|
| |
|
| | function generateUUID() {
|
| | return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
| | const r = Math.random() * 16 | 0;
|
| | const v = c == 'x' ? r : (r & 0x3 | 0x8);
|
| | return v.toString(16);
|
| | });
|
| | }
|
| |
|