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,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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"}