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