ai.matey.cli 0.2.0
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/LICENSE +21 -0
- package/dist/cjs/convert-request.js +365 -0
- package/dist/cjs/convert-request.js.map +1 -0
- package/dist/cjs/convert-response.js +211 -0
- package/dist/cjs/convert-response.js.map +1 -0
- package/dist/cjs/converters/request-converters.js +183 -0
- package/dist/cjs/converters/request-converters.js.map +1 -0
- package/dist/cjs/converters/response-converters.js +203 -0
- package/dist/cjs/converters/response-converters.js.map +1 -0
- package/dist/cjs/create-backend.js +569 -0
- package/dist/cjs/create-backend.js.map +1 -0
- package/dist/cjs/index.js +31 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/main.js +181 -0
- package/dist/cjs/main.js.map +1 -0
- package/dist/cjs/ollama/commands/list.js +70 -0
- package/dist/cjs/ollama/commands/list.js.map +1 -0
- package/dist/cjs/ollama/commands/ps.js +80 -0
- package/dist/cjs/ollama/commands/ps.js.map +1 -0
- package/dist/cjs/ollama/commands/pull.js +198 -0
- package/dist/cjs/ollama/commands/pull.js.map +1 -0
- package/dist/cjs/ollama/commands/run.js +279 -0
- package/dist/cjs/ollama/commands/run.js.map +1 -0
- package/dist/cjs/ollama/commands/show.js +138 -0
- package/dist/cjs/ollama/commands/show.js.map +1 -0
- package/dist/cjs/ollama/index.js +238 -0
- package/dist/cjs/ollama/index.js.map +1 -0
- package/dist/cjs/ollama/types.js +10 -0
- package/dist/cjs/ollama/types.js.map +1 -0
- package/dist/cjs/proxy.js +406 -0
- package/dist/cjs/proxy.js.map +1 -0
- package/dist/cjs/utils/backend-loader.js +112 -0
- package/dist/cjs/utils/backend-loader.js.map +1 -0
- package/dist/cjs/utils/index.js +29 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/model-translation.js +138 -0
- package/dist/cjs/utils/model-translation.js.map +1 -0
- package/dist/cjs/utils/output-formatter.js +241 -0
- package/dist/cjs/utils/output-formatter.js.map +1 -0
- package/dist/cjs/utils/pipeline-inspector.js +90 -0
- package/dist/cjs/utils/pipeline-inspector.js.map +1 -0
- package/dist/cjs/utils/state-manager.js +114 -0
- package/dist/cjs/utils/state-manager.js.map +1 -0
- package/dist/esm/convert-request.js +331 -0
- package/dist/esm/convert-request.js.map +1 -0
- package/dist/esm/convert-response.js +177 -0
- package/dist/esm/convert-response.js.map +1 -0
- package/dist/esm/converters/request-converters.js +175 -0
- package/dist/esm/converters/request-converters.js.map +1 -0
- package/dist/esm/converters/response-converters.js +191 -0
- package/dist/esm/converters/response-converters.js.map +1 -0
- package/dist/esm/create-backend.js +533 -0
- package/dist/esm/create-backend.js.map +1 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/main.js +149 -0
- package/dist/esm/main.js.map +1 -0
- package/dist/esm/ollama/commands/list.js +67 -0
- package/dist/esm/ollama/commands/list.js.map +1 -0
- package/dist/esm/ollama/commands/ps.js +77 -0
- package/dist/esm/ollama/commands/ps.js.map +1 -0
- package/dist/esm/ollama/commands/pull.js +195 -0
- package/dist/esm/ollama/commands/pull.js.map +1 -0
- package/dist/esm/ollama/commands/run.js +243 -0
- package/dist/esm/ollama/commands/run.js.map +1 -0
- package/dist/esm/ollama/commands/show.js +135 -0
- package/dist/esm/ollama/commands/show.js.map +1 -0
- package/dist/esm/ollama/index.js +235 -0
- package/dist/esm/ollama/index.js.map +1 -0
- package/dist/esm/ollama/types.js +9 -0
- package/dist/esm/ollama/types.js.map +1 -0
- package/dist/esm/proxy.js +403 -0
- package/dist/esm/proxy.js.map +1 -0
- package/dist/esm/utils/backend-loader.js +74 -0
- package/dist/esm/utils/backend-loader.js.map +1 -0
- package/dist/esm/utils/index.js +13 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/model-translation.js +99 -0
- package/dist/esm/utils/model-translation.js.map +1 -0
- package/dist/esm/utils/output-formatter.js +224 -0
- package/dist/esm/utils/output-formatter.js.map +1 -0
- package/dist/esm/utils/pipeline-inspector.js +84 -0
- package/dist/esm/utils/pipeline-inspector.js.map +1 -0
- package/dist/esm/utils/state-manager.js +111 -0
- package/dist/esm/utils/state-manager.js.map +1 -0
- package/dist/types/convert-request.d.ts +15 -0
- package/dist/types/convert-request.d.ts.map +1 -0
- package/dist/types/convert-response.d.ts +16 -0
- package/dist/types/convert-response.d.ts.map +1 -0
- package/dist/types/converters/request-converters.d.ts +139 -0
- package/dist/types/converters/request-converters.d.ts.map +1 -0
- package/dist/types/converters/response-converters.d.ts +134 -0
- package/dist/types/converters/response-converters.d.ts.map +1 -0
- package/dist/types/create-backend.d.ts +20 -0
- package/dist/types/create-backend.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/main.d.ts +19 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/ollama/commands/list.d.ts +32 -0
- package/dist/types/ollama/commands/list.d.ts.map +1 -0
- package/dist/types/ollama/commands/ps.d.ts +27 -0
- package/dist/types/ollama/commands/ps.d.ts.map +1 -0
- package/dist/types/ollama/commands/pull.d.ts +21 -0
- package/dist/types/ollama/commands/pull.d.ts.map +1 -0
- package/dist/types/ollama/commands/run.d.ts +48 -0
- package/dist/types/ollama/commands/run.d.ts.map +1 -0
- package/dist/types/ollama/commands/show.d.ts +36 -0
- package/dist/types/ollama/commands/show.d.ts.map +1 -0
- package/dist/types/ollama/index.d.ts +12 -0
- package/dist/types/ollama/index.d.ts.map +1 -0
- package/dist/types/ollama/types.d.ts +58 -0
- package/dist/types/ollama/types.d.ts.map +1 -0
- package/dist/types/proxy.d.ts +16 -0
- package/dist/types/proxy.d.ts.map +1 -0
- package/dist/types/utils/backend-loader.d.ts +55 -0
- package/dist/types/utils/backend-loader.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +13 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/model-translation.d.ts +64 -0
- package/dist/types/utils/model-translation.d.ts.map +1 -0
- package/dist/types/utils/output-formatter.d.ts +113 -0
- package/dist/types/utils/output-formatter.d.ts.map +1 -0
- package/dist/types/utils/pipeline-inspector.d.ts +50 -0
- package/dist/types/utils/pipeline-inspector.d.ts.map +1 -0
- package/dist/types/utils/state-manager.d.ts +91 -0
- package/dist/types/utils/state-manager.d.ts.map +1 -0
- package/package.json +75 -0
- package/readme.md +32 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Request Conversion Utilities
|
|
4
|
+
*
|
|
5
|
+
* Convert Universal IR requests to provider-specific formats for debugging.
|
|
6
|
+
* Complements the response converters - provides full request/response symmetry.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { toOpenAIRequest, toAnthropicRequest } from 'ai.matey';
|
|
11
|
+
*
|
|
12
|
+
* // Convert IR request to see what will be sent to OpenAI
|
|
13
|
+
* const openaiReq = toOpenAIRequest(irRequest);
|
|
14
|
+
* console.log('Will send to OpenAI:', openaiReq);
|
|
15
|
+
*
|
|
16
|
+
* // Convert IR request to Anthropic format
|
|
17
|
+
* const anthropicReq = toAnthropicRequest(irRequest);
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.toOpenAIRequest = toOpenAIRequest;
|
|
24
|
+
exports.toAnthropicRequest = toAnthropicRequest;
|
|
25
|
+
exports.toGeminiRequest = toGeminiRequest;
|
|
26
|
+
exports.toOllamaRequest = toOllamaRequest;
|
|
27
|
+
exports.toMistralRequest = toMistralRequest;
|
|
28
|
+
exports.toMultipleRequestFormats = toMultipleRequestFormats;
|
|
29
|
+
const ai_matey_backend_1 = require("ai.matey.backend");
|
|
30
|
+
const ai_matey_backend_2 = require("ai.matey.backend");
|
|
31
|
+
const ai_matey_backend_3 = require("ai.matey.backend");
|
|
32
|
+
const ai_matey_backend_4 = require("ai.matey.backend");
|
|
33
|
+
const ai_matey_backend_5 = require("ai.matey.backend");
|
|
34
|
+
// ============================================================================
|
|
35
|
+
// Individual Request Converters
|
|
36
|
+
// ============================================================================
|
|
37
|
+
/**
|
|
38
|
+
* Convert IR request to OpenAI format.
|
|
39
|
+
*
|
|
40
|
+
* Useful for:
|
|
41
|
+
* - Debugging: See what will be sent to OpenAI
|
|
42
|
+
* - Testing: Create OpenAI requests without a backend
|
|
43
|
+
* - Inspection: Understand format transformations
|
|
44
|
+
*
|
|
45
|
+
* @param request - Universal IR request
|
|
46
|
+
* @returns OpenAI-formatted request
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const openaiReq = toOpenAIRequest({
|
|
51
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
52
|
+
* parameters: { model: 'gpt-4', temperature: 0.7 }
|
|
53
|
+
* });
|
|
54
|
+
* console.log(openaiReq.messages); // OpenAI format
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
function toOpenAIRequest(request) {
|
|
58
|
+
const adapter = new ai_matey_backend_1.OpenAIBackendAdapter({ apiKey: 'dummy' });
|
|
59
|
+
return adapter.fromIR(request);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Convert IR request to Anthropic format.
|
|
63
|
+
*
|
|
64
|
+
* @param request - Universal IR request
|
|
65
|
+
* @returns Anthropic-formatted request
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const anthropicReq = toAnthropicRequest({
|
|
70
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
71
|
+
* parameters: { model: 'claude-3', maxTokens: 100 }
|
|
72
|
+
* });
|
|
73
|
+
* console.log(anthropicReq.system); // Anthropic uses separate system parameter
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
function toAnthropicRequest(request) {
|
|
77
|
+
const adapter = new ai_matey_backend_2.AnthropicBackendAdapter({ apiKey: 'dummy' });
|
|
78
|
+
return adapter.fromIR(request);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Convert IR request to Gemini format.
|
|
82
|
+
*
|
|
83
|
+
* @param request - Universal IR request
|
|
84
|
+
* @returns Gemini-formatted request
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const geminiReq = toGeminiRequest({
|
|
89
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
90
|
+
* parameters: { model: 'gemini-pro', temperature: 0.7 }
|
|
91
|
+
* });
|
|
92
|
+
* console.log(geminiReq.contents); // Gemini uses 'contents' array
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
function toGeminiRequest(request) {
|
|
96
|
+
const adapter = new ai_matey_backend_3.GeminiBackendAdapter({ apiKey: 'dummy' });
|
|
97
|
+
return adapter.fromIR(request);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Convert IR request to Ollama format.
|
|
101
|
+
*
|
|
102
|
+
* @param request - Universal IR request
|
|
103
|
+
* @returns Ollama-formatted request
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const ollamaReq = toOllamaRequest({
|
|
108
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
109
|
+
* parameters: { model: 'llama2', temperature: 0.7 }
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
function toOllamaRequest(request) {
|
|
114
|
+
const adapter = new ai_matey_backend_4.OllamaBackendAdapter({ apiKey: 'dummy' });
|
|
115
|
+
return adapter.fromIR(request);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Convert IR request to Mistral format.
|
|
119
|
+
*
|
|
120
|
+
* @param request - Universal IR request
|
|
121
|
+
* @returns Mistral-formatted request
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const mistralReq = toMistralRequest({
|
|
126
|
+
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
127
|
+
* parameters: { model: 'mistral-small', temperature: 0.7 }
|
|
128
|
+
* });
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
function toMistralRequest(request) {
|
|
132
|
+
const adapter = new ai_matey_backend_5.MistralBackendAdapter({ apiKey: 'dummy' });
|
|
133
|
+
return adapter.fromIR(request);
|
|
134
|
+
}
|
|
135
|
+
// ============================================================================
|
|
136
|
+
// Multi-Format Converter
|
|
137
|
+
// ============================================================================
|
|
138
|
+
/**
|
|
139
|
+
* Convert IR request to multiple provider formats at once.
|
|
140
|
+
*
|
|
141
|
+
* Useful for comparing how the same request looks across different providers.
|
|
142
|
+
*
|
|
143
|
+
* @param request - Universal IR request
|
|
144
|
+
* @param formats - Array of target formats
|
|
145
|
+
* @returns Object with format names as keys and converted requests as values
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* const allFormats = toMultipleRequestFormats(irRequest, [
|
|
150
|
+
* 'openai',
|
|
151
|
+
* 'anthropic',
|
|
152
|
+
* 'gemini'
|
|
153
|
+
* ]);
|
|
154
|
+
*
|
|
155
|
+
* console.log('OpenAI:', allFormats.openai);
|
|
156
|
+
* console.log('Anthropic:', allFormats.anthropic);
|
|
157
|
+
* console.log('Gemini:', allFormats.gemini);
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
function toMultipleRequestFormats(request, formats) {
|
|
161
|
+
const result = {};
|
|
162
|
+
for (const format of formats) {
|
|
163
|
+
switch (format) {
|
|
164
|
+
case 'openai':
|
|
165
|
+
result.openai = toOpenAIRequest(request);
|
|
166
|
+
break;
|
|
167
|
+
case 'anthropic':
|
|
168
|
+
result.anthropic = toAnthropicRequest(request);
|
|
169
|
+
break;
|
|
170
|
+
case 'gemini':
|
|
171
|
+
result.gemini = toGeminiRequest(request);
|
|
172
|
+
break;
|
|
173
|
+
case 'ollama':
|
|
174
|
+
result.ollama = toOllamaRequest(request);
|
|
175
|
+
break;
|
|
176
|
+
case 'mistral':
|
|
177
|
+
result.mistral = toMistralRequest(request);
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=request-converters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-converters.js","sourceRoot":"","sources":["../../../src/converters/request-converters.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;AAiCH,0CAGC;AAiBD,gDAGC;AAiBD,0CAGC;AAgBD,0CAGC;AAgBD,4CAGC;AA4BD,4DAiCC;AA5KD,uDAA4E;AAC5E,uDAAkF;AAClF,uDAA4E;AAC5E,uDAA4E;AAC5E,uDAA8E;AAE9E,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,eAAe,CAAC,OAAsB;IACpD,MAAM,OAAO,GAAG,IAAI,uCAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,kBAAkB,CAAC,OAAsB;IACvD,MAAM,OAAO,GAAG,IAAI,0CAAuB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,eAAe,CAAC,OAAsB;IACpD,MAAM,OAAO,GAAG,IAAI,uCAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,eAAe,CAAC,OAAsB;IACpD,MAAM,OAAO,GAAG,IAAI,uCAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,gBAAgB,CAAC,OAAsB;IACrD,MAAM,OAAO,GAAG,IAAI,wCAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/D,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,wBAAwB,CACtC,OAAsB,EACtB,OAAwE;IAQxE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,QAAQ;gBACX,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,WAAW;gBACd,MAAM,CAAC,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC3C,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Response Converters
|
|
4
|
+
*
|
|
5
|
+
* Utility functions for converting Universal IR responses to various frontend formats.
|
|
6
|
+
* Useful for debugging, testing, and compatibility checking.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.toOpenAI = toOpenAI;
|
|
12
|
+
exports.toAnthropic = toAnthropic;
|
|
13
|
+
exports.toGemini = toGemini;
|
|
14
|
+
exports.toOllama = toOllama;
|
|
15
|
+
exports.toMistral = toMistral;
|
|
16
|
+
exports.toOpenAIStream = toOpenAIStream;
|
|
17
|
+
exports.toAnthropicStream = toAnthropicStream;
|
|
18
|
+
exports.toGeminiStream = toGeminiStream;
|
|
19
|
+
exports.toMistralStream = toMistralStream;
|
|
20
|
+
exports.toMultipleFormats = toMultipleFormats;
|
|
21
|
+
const ai_matey_frontend_1 = require("ai.matey.frontend");
|
|
22
|
+
const ai_matey_frontend_2 = require("ai.matey.frontend");
|
|
23
|
+
const ai_matey_frontend_3 = require("ai.matey.frontend");
|
|
24
|
+
const ai_matey_frontend_4 = require("ai.matey.frontend");
|
|
25
|
+
const ai_matey_frontend_5 = require("ai.matey.frontend");
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Non-Streaming Converters
|
|
28
|
+
// ============================================================================
|
|
29
|
+
/**
|
|
30
|
+
* Convert Universal IR response to OpenAI format.
|
|
31
|
+
*
|
|
32
|
+
* @param response Universal IR response
|
|
33
|
+
* @returns OpenAI-formatted response
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { toOpenAI } from 'ai.matey.utils';
|
|
38
|
+
*
|
|
39
|
+
* const irResponse = await backend.execute(request);
|
|
40
|
+
* const openaiFormat = await toOpenAI(irResponse);
|
|
41
|
+
* console.log(JSON.stringify(openaiFormat, null, 2));
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
async function toOpenAI(response) {
|
|
45
|
+
const adapter = new ai_matey_frontend_1.OpenAIFrontendAdapter();
|
|
46
|
+
return adapter.fromIR(response);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Convert Universal IR response to Anthropic format.
|
|
50
|
+
*
|
|
51
|
+
* @param response Universal IR response
|
|
52
|
+
* @returns Anthropic-formatted response
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* import { toAnthropic } from 'ai.matey.utils';
|
|
57
|
+
*
|
|
58
|
+
* const irResponse = await backend.execute(request);
|
|
59
|
+
* const anthropicFormat = await toAnthropic(irResponse);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
async function toAnthropic(response) {
|
|
63
|
+
const adapter = new ai_matey_frontend_2.AnthropicFrontendAdapter();
|
|
64
|
+
return adapter.fromIR(response);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Convert Universal IR response to Gemini format.
|
|
68
|
+
*
|
|
69
|
+
* @param response Universal IR response
|
|
70
|
+
* @returns Gemini-formatted response
|
|
71
|
+
*/
|
|
72
|
+
async function toGemini(response) {
|
|
73
|
+
const adapter = new ai_matey_frontend_3.GeminiFrontendAdapter();
|
|
74
|
+
return adapter.fromIR(response);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Convert Universal IR response to Ollama format.
|
|
78
|
+
*
|
|
79
|
+
* @param response Universal IR response
|
|
80
|
+
* @returns Ollama-formatted response
|
|
81
|
+
*/
|
|
82
|
+
async function toOllama(response) {
|
|
83
|
+
const adapter = new ai_matey_frontend_4.OllamaFrontendAdapter();
|
|
84
|
+
return adapter.fromIR(response);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Convert Universal IR response to Mistral format.
|
|
88
|
+
*
|
|
89
|
+
* @param response Universal IR response
|
|
90
|
+
* @returns Mistral-formatted response
|
|
91
|
+
*/
|
|
92
|
+
async function toMistral(response) {
|
|
93
|
+
const adapter = new ai_matey_frontend_5.MistralFrontendAdapter();
|
|
94
|
+
return adapter.fromIR(response);
|
|
95
|
+
}
|
|
96
|
+
// ============================================================================
|
|
97
|
+
// Streaming Converters
|
|
98
|
+
// ============================================================================
|
|
99
|
+
/**
|
|
100
|
+
* Convert Universal IR stream to OpenAI SSE format.
|
|
101
|
+
*
|
|
102
|
+
* @param stream Universal IR stream
|
|
103
|
+
* @param options Stream conversion options
|
|
104
|
+
* @returns OpenAI-formatted stream chunks
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* import { toOpenAIStream } from 'ai.matey.utils';
|
|
109
|
+
*
|
|
110
|
+
* const irStream = backend.executeStream(request);
|
|
111
|
+
* for await (const chunk of toOpenAIStream(irStream)) {
|
|
112
|
+
* console.log('OpenAI chunk:', chunk);
|
|
113
|
+
* }
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
async function* toOpenAIStream(stream, options) {
|
|
117
|
+
const adapter = new ai_matey_frontend_1.OpenAIFrontendAdapter();
|
|
118
|
+
yield* adapter.fromIRStream(stream, options);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Convert Universal IR stream to Anthropic SSE format.
|
|
122
|
+
*
|
|
123
|
+
* @param stream Universal IR stream
|
|
124
|
+
* @param options Stream conversion options
|
|
125
|
+
* @returns Anthropic-formatted stream chunks
|
|
126
|
+
*/
|
|
127
|
+
async function* toAnthropicStream(stream, options) {
|
|
128
|
+
const adapter = new ai_matey_frontend_2.AnthropicFrontendAdapter();
|
|
129
|
+
yield* adapter.fromIRStream(stream, options);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Convert Universal IR stream to Gemini SSE format.
|
|
133
|
+
*
|
|
134
|
+
* @param stream Universal IR stream
|
|
135
|
+
* @param options Stream conversion options
|
|
136
|
+
* @returns Gemini-formatted stream chunks
|
|
137
|
+
*/
|
|
138
|
+
async function* toGeminiStream(stream, options) {
|
|
139
|
+
const adapter = new ai_matey_frontend_3.GeminiFrontendAdapter();
|
|
140
|
+
yield* adapter.fromIRStream(stream, options);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Convert Universal IR stream to Mistral SSE format.
|
|
144
|
+
*
|
|
145
|
+
* @param stream Universal IR stream
|
|
146
|
+
* @param options Stream conversion options
|
|
147
|
+
* @returns Mistral-formatted stream chunks
|
|
148
|
+
*/
|
|
149
|
+
async function* toMistralStream(stream, options) {
|
|
150
|
+
const adapter = new ai_matey_frontend_5.MistralFrontendAdapter();
|
|
151
|
+
yield* adapter.fromIRStream(stream, options);
|
|
152
|
+
}
|
|
153
|
+
// ============================================================================
|
|
154
|
+
// Multi-Format Converter (for comparison/debugging)
|
|
155
|
+
// ============================================================================
|
|
156
|
+
/**
|
|
157
|
+
* Convert Universal IR response to multiple formats at once.
|
|
158
|
+
* Useful for debugging and comparing how different providers handle the same response.
|
|
159
|
+
*
|
|
160
|
+
* @param response Universal IR response
|
|
161
|
+
* @param formats Array of format names to convert to
|
|
162
|
+
* @returns Object with converted responses for each format
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* import { toMultipleFormats } from 'ai.matey.utils';
|
|
167
|
+
*
|
|
168
|
+
* const irResponse = await backend.execute(request);
|
|
169
|
+
* const allFormats = await toMultipleFormats(irResponse, ['openai', 'anthropic', 'gemini']);
|
|
170
|
+
*
|
|
171
|
+
* console.log('OpenAI:', JSON.stringify(allFormats.openai, null, 2));
|
|
172
|
+
* console.log('Anthropic:', JSON.stringify(allFormats.anthropic, null, 2));
|
|
173
|
+
* console.log('Gemini:', JSON.stringify(allFormats.gemini, null, 2));
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
async function toMultipleFormats(response, formats = [
|
|
177
|
+
'openai',
|
|
178
|
+
'anthropic',
|
|
179
|
+
'gemini',
|
|
180
|
+
]) {
|
|
181
|
+
const result = {};
|
|
182
|
+
for (const format of formats) {
|
|
183
|
+
switch (format) {
|
|
184
|
+
case 'openai':
|
|
185
|
+
result.openai = await toOpenAI(response);
|
|
186
|
+
break;
|
|
187
|
+
case 'anthropic':
|
|
188
|
+
result.anthropic = await toAnthropic(response);
|
|
189
|
+
break;
|
|
190
|
+
case 'gemini':
|
|
191
|
+
result.gemini = await toGemini(response);
|
|
192
|
+
break;
|
|
193
|
+
case 'ollama':
|
|
194
|
+
result.ollama = await toOllama(response);
|
|
195
|
+
break;
|
|
196
|
+
case 'mistral':
|
|
197
|
+
result.mistral = await toMistral(response);
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return result;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=response-converters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-converters.js","sourceRoot":"","sources":["../../../src/converters/response-converters.ts"],"names":[],"mappings":"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"}
|