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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 AI Matey Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* CLI Tool for Converting Requests
|
|
5
|
+
*
|
|
6
|
+
* Convert between Universal IR requests and various provider formats.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* ai-matey convert-request --from openai --to ir --input request.json
|
|
10
|
+
* ai-matey convert-request --from ir --to anthropic --input request.json
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
17
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
18
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
|
+
}
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
27
|
+
}) : function(o, v) {
|
|
28
|
+
o["default"] = v;
|
|
29
|
+
});
|
|
30
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
31
|
+
var ownKeys = function(o) {
|
|
32
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
33
|
+
var ar = [];
|
|
34
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
35
|
+
return ar;
|
|
36
|
+
};
|
|
37
|
+
return ownKeys(o);
|
|
38
|
+
};
|
|
39
|
+
return function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
})();
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.main = main;
|
|
49
|
+
const promises_1 = require("node:fs/promises");
|
|
50
|
+
const node_process_1 = require("node:process");
|
|
51
|
+
const request_converters_js_1 = require("./converters/request-converters.js");
|
|
52
|
+
function parseArgs(args) {
|
|
53
|
+
const parsed = {
|
|
54
|
+
from: 'ir',
|
|
55
|
+
to: 'openai',
|
|
56
|
+
pretty: true,
|
|
57
|
+
};
|
|
58
|
+
for (let i = 0; i < args.length; i++) {
|
|
59
|
+
const arg = args[i];
|
|
60
|
+
switch (arg) {
|
|
61
|
+
case '--from':
|
|
62
|
+
case '-f':
|
|
63
|
+
parsed.from = args[++i] || 'ir';
|
|
64
|
+
break;
|
|
65
|
+
case '--to':
|
|
66
|
+
case '-t':
|
|
67
|
+
parsed.to = args[++i] || 'openai';
|
|
68
|
+
break;
|
|
69
|
+
case '--input':
|
|
70
|
+
case '-i':
|
|
71
|
+
parsed.input = args[++i];
|
|
72
|
+
break;
|
|
73
|
+
case '--output':
|
|
74
|
+
case '-o':
|
|
75
|
+
parsed.output = args[++i];
|
|
76
|
+
break;
|
|
77
|
+
case '--no-pretty':
|
|
78
|
+
parsed.pretty = false;
|
|
79
|
+
break;
|
|
80
|
+
case '--help':
|
|
81
|
+
case '-h':
|
|
82
|
+
parsed.help = true;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return parsed;
|
|
87
|
+
}
|
|
88
|
+
// ============================================================================
|
|
89
|
+
// Help Text
|
|
90
|
+
// ============================================================================
|
|
91
|
+
const SUPPORTED_FORMATS = ['ir', 'openai', 'anthropic', 'gemini', 'ollama', 'mistral'];
|
|
92
|
+
function printHelp() {
|
|
93
|
+
console.log(`
|
|
94
|
+
AI.Matey Request Converter
|
|
95
|
+
Convert between Universal IR requests and provider formats
|
|
96
|
+
|
|
97
|
+
USAGE:
|
|
98
|
+
ai-matey convert-request [OPTIONS]
|
|
99
|
+
|
|
100
|
+
OPTIONS:
|
|
101
|
+
-f, --from <format> Source format (${SUPPORTED_FORMATS.join(', ')}, or 'all')
|
|
102
|
+
-t, --to <format> Target format (${SUPPORTED_FORMATS.join(', ')}, or 'all')
|
|
103
|
+
-i, --input <file> Input file (JSON). If omitted, reads from stdin
|
|
104
|
+
-o, --output <file> Output file. If omitted, writes to stdout
|
|
105
|
+
--no-pretty Disable pretty-printing
|
|
106
|
+
-h, --help Show this help message
|
|
107
|
+
|
|
108
|
+
FORMATS:
|
|
109
|
+
ir - Universal Intermediate Representation
|
|
110
|
+
${SUPPORTED_FORMATS.filter((f) => f !== 'ir')
|
|
111
|
+
.map((f) => ` ${f.padEnd(12)} - ${f.charAt(0).toUpperCase() + f.slice(1)} format`)
|
|
112
|
+
.join('\n ')}
|
|
113
|
+
all - Convert to all formats (for debugging)
|
|
114
|
+
|
|
115
|
+
EXAMPLES:
|
|
116
|
+
# Convert IR to OpenAI format
|
|
117
|
+
ai-matey convert-request --from ir --to openai --input ir-request.json
|
|
118
|
+
|
|
119
|
+
# Convert OpenAI to IR (useful for migration)
|
|
120
|
+
ai-matey convert-request --from openai --to ir --input openai-request.json
|
|
121
|
+
|
|
122
|
+
# Convert from stdin
|
|
123
|
+
cat request.json | ai-matey convert-request --from ir --to anthropic
|
|
124
|
+
|
|
125
|
+
# Save to file
|
|
126
|
+
ai-matey convert-request -f ir -t gemini -i request.json -o gemini-request.json
|
|
127
|
+
|
|
128
|
+
# Convert IR to all formats for comparison
|
|
129
|
+
ai-matey convert-request -f ir -t all -i request.json
|
|
130
|
+
`);
|
|
131
|
+
}
|
|
132
|
+
// ============================================================================
|
|
133
|
+
// Input/Output Functions
|
|
134
|
+
// ============================================================================
|
|
135
|
+
async function readInput(inputFile) {
|
|
136
|
+
let content;
|
|
137
|
+
if (inputFile) {
|
|
138
|
+
// Read from file
|
|
139
|
+
content = await (0, promises_1.readFile)(inputFile, 'utf-8');
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Read from stdin
|
|
143
|
+
const chunks = [];
|
|
144
|
+
for await (const chunk of node_process_1.stdin) {
|
|
145
|
+
chunks.push(chunk);
|
|
146
|
+
}
|
|
147
|
+
content = Buffer.concat(chunks).toString('utf-8');
|
|
148
|
+
}
|
|
149
|
+
try {
|
|
150
|
+
return JSON.parse(content);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
throw new Error(`Invalid JSON input: ${error instanceof Error ? error.message : String(error)}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function formatOutput(data, pretty) {
|
|
157
|
+
return pretty ? JSON.stringify(data, null, 2) : JSON.stringify(data);
|
|
158
|
+
}
|
|
159
|
+
// ============================================================================
|
|
160
|
+
// Conversion Functions
|
|
161
|
+
// ============================================================================
|
|
162
|
+
/**
|
|
163
|
+
* Convert from provider format to IR.
|
|
164
|
+
* This is a basic implementation that handles common cases.
|
|
165
|
+
*/
|
|
166
|
+
function toIRRequest(data, sourceFormat) {
|
|
167
|
+
// For now, we'll do basic conversion
|
|
168
|
+
// This can be enhanced with proper type-safe converters later
|
|
169
|
+
switch (sourceFormat) {
|
|
170
|
+
case 'openai':
|
|
171
|
+
return {
|
|
172
|
+
messages: data.messages || [],
|
|
173
|
+
parameters: {
|
|
174
|
+
model: data.model,
|
|
175
|
+
temperature: data.temperature,
|
|
176
|
+
maxTokens: data.max_tokens,
|
|
177
|
+
topP: data.top_p,
|
|
178
|
+
frequencyPenalty: data.frequency_penalty,
|
|
179
|
+
presencePenalty: data.presence_penalty,
|
|
180
|
+
stopSequences: Array.isArray(data.stop) ? data.stop : data.stop ? [data.stop] : undefined,
|
|
181
|
+
},
|
|
182
|
+
stream: data.stream,
|
|
183
|
+
metadata: {
|
|
184
|
+
requestId: crypto.randomUUID(),
|
|
185
|
+
timestamp: Date.now(),
|
|
186
|
+
provenance: { frontend: 'openai' },
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
case 'anthropic':
|
|
190
|
+
return {
|
|
191
|
+
messages: data.messages || [],
|
|
192
|
+
parameters: {
|
|
193
|
+
model: data.model,
|
|
194
|
+
temperature: data.temperature,
|
|
195
|
+
maxTokens: data.max_tokens,
|
|
196
|
+
topP: data.top_p,
|
|
197
|
+
topK: data.top_k,
|
|
198
|
+
stopSequences: data.stop_sequences,
|
|
199
|
+
},
|
|
200
|
+
stream: data.stream,
|
|
201
|
+
metadata: {
|
|
202
|
+
requestId: crypto.randomUUID(),
|
|
203
|
+
timestamp: Date.now(),
|
|
204
|
+
provenance: { frontend: 'anthropic' },
|
|
205
|
+
},
|
|
206
|
+
};
|
|
207
|
+
case 'gemini':
|
|
208
|
+
// Gemini has different structure - contents instead of messages
|
|
209
|
+
const messages = (data.contents || []).map((content) => ({
|
|
210
|
+
role: content.role === 'model' ? 'assistant' : content.role,
|
|
211
|
+
content: content.parts?.map((p) => p.text).join('') || '',
|
|
212
|
+
}));
|
|
213
|
+
return {
|
|
214
|
+
messages,
|
|
215
|
+
parameters: {
|
|
216
|
+
model: data.model,
|
|
217
|
+
temperature: data.generationConfig?.temperature,
|
|
218
|
+
maxTokens: data.generationConfig?.maxOutputTokens,
|
|
219
|
+
topP: data.generationConfig?.topP,
|
|
220
|
+
topK: data.generationConfig?.topK,
|
|
221
|
+
stopSequences: data.generationConfig?.stopSequences,
|
|
222
|
+
},
|
|
223
|
+
metadata: {
|
|
224
|
+
requestId: crypto.randomUUID(),
|
|
225
|
+
timestamp: Date.now(),
|
|
226
|
+
provenance: { frontend: 'gemini' },
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
case 'ollama':
|
|
230
|
+
return {
|
|
231
|
+
messages: data.messages || [],
|
|
232
|
+
parameters: {
|
|
233
|
+
model: data.model,
|
|
234
|
+
temperature: data.options?.temperature,
|
|
235
|
+
topP: data.options?.top_p,
|
|
236
|
+
topK: data.options?.top_k,
|
|
237
|
+
},
|
|
238
|
+
stream: data.stream,
|
|
239
|
+
metadata: {
|
|
240
|
+
requestId: crypto.randomUUID(),
|
|
241
|
+
timestamp: Date.now(),
|
|
242
|
+
provenance: { frontend: 'ollama' },
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
case 'mistral':
|
|
246
|
+
return {
|
|
247
|
+
messages: data.messages || [],
|
|
248
|
+
parameters: {
|
|
249
|
+
model: data.model,
|
|
250
|
+
temperature: data.temperature,
|
|
251
|
+
maxTokens: data.max_tokens,
|
|
252
|
+
topP: data.top_p,
|
|
253
|
+
},
|
|
254
|
+
stream: data.stream,
|
|
255
|
+
metadata: {
|
|
256
|
+
requestId: crypto.randomUUID(),
|
|
257
|
+
timestamp: Date.now(),
|
|
258
|
+
provenance: { frontend: 'mistral' },
|
|
259
|
+
},
|
|
260
|
+
};
|
|
261
|
+
default:
|
|
262
|
+
throw new Error(`Unsupported source format: ${sourceFormat}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
// ============================================================================
|
|
266
|
+
// Main Function
|
|
267
|
+
// ============================================================================
|
|
268
|
+
async function main() {
|
|
269
|
+
const args = parseArgs(process.argv.slice(2));
|
|
270
|
+
if (args.help) {
|
|
271
|
+
printHelp();
|
|
272
|
+
process.exit(0);
|
|
273
|
+
}
|
|
274
|
+
try {
|
|
275
|
+
// Read input
|
|
276
|
+
const input = await readInput(args.input);
|
|
277
|
+
// Convert
|
|
278
|
+
let result;
|
|
279
|
+
if (args.from === 'ir') {
|
|
280
|
+
// Convert FROM IR TO provider format
|
|
281
|
+
const irRequest = input;
|
|
282
|
+
if (args.to === 'all') {
|
|
283
|
+
// Convert to all formats
|
|
284
|
+
result = (0, request_converters_js_1.toMultipleRequestFormats)(irRequest, [
|
|
285
|
+
'openai',
|
|
286
|
+
'anthropic',
|
|
287
|
+
'gemini',
|
|
288
|
+
'ollama',
|
|
289
|
+
'mistral',
|
|
290
|
+
]);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
// Convert to specific format
|
|
294
|
+
switch (args.to) {
|
|
295
|
+
case 'ir':
|
|
296
|
+
result = irRequest; // No conversion needed
|
|
297
|
+
break;
|
|
298
|
+
case 'openai':
|
|
299
|
+
result = (0, request_converters_js_1.toOpenAIRequest)(irRequest);
|
|
300
|
+
break;
|
|
301
|
+
case 'anthropic':
|
|
302
|
+
result = (0, request_converters_js_1.toAnthropicRequest)(irRequest);
|
|
303
|
+
break;
|
|
304
|
+
case 'gemini':
|
|
305
|
+
result = (0, request_converters_js_1.toGeminiRequest)(irRequest);
|
|
306
|
+
break;
|
|
307
|
+
case 'ollama':
|
|
308
|
+
result = (0, request_converters_js_1.toOllamaRequest)(irRequest);
|
|
309
|
+
break;
|
|
310
|
+
case 'mistral':
|
|
311
|
+
result = (0, request_converters_js_1.toMistralRequest)(irRequest);
|
|
312
|
+
break;
|
|
313
|
+
default:
|
|
314
|
+
throw new Error(`Unsupported target format: ${args.to}. Use --help to see available formats.`);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if (args.to === 'ir') {
|
|
319
|
+
// Convert FROM provider format TO IR
|
|
320
|
+
result = toIRRequest(input, args.from);
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
// Convert FROM provider TO provider (via IR)
|
|
324
|
+
const irRequest = toIRRequest(input, args.from);
|
|
325
|
+
switch (args.to) {
|
|
326
|
+
case 'openai':
|
|
327
|
+
result = (0, request_converters_js_1.toOpenAIRequest)(irRequest);
|
|
328
|
+
break;
|
|
329
|
+
case 'anthropic':
|
|
330
|
+
result = (0, request_converters_js_1.toAnthropicRequest)(irRequest);
|
|
331
|
+
break;
|
|
332
|
+
case 'gemini':
|
|
333
|
+
result = (0, request_converters_js_1.toGeminiRequest)(irRequest);
|
|
334
|
+
break;
|
|
335
|
+
case 'ollama':
|
|
336
|
+
result = (0, request_converters_js_1.toOllamaRequest)(irRequest);
|
|
337
|
+
break;
|
|
338
|
+
case 'mistral':
|
|
339
|
+
result = (0, request_converters_js_1.toMistralRequest)(irRequest);
|
|
340
|
+
break;
|
|
341
|
+
default:
|
|
342
|
+
throw new Error(`Unsupported target format: ${args.to}`);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
// Format and output
|
|
346
|
+
const output = formatOutput(result, args.pretty ?? true);
|
|
347
|
+
if (args.output) {
|
|
348
|
+
// Write to file
|
|
349
|
+
const { writeFile } = await Promise.resolve().then(() => __importStar(require('node:fs/promises')));
|
|
350
|
+
await writeFile(args.output, output, 'utf-8');
|
|
351
|
+
console.error(`✓ Converted from ${args.from} to ${args.to}: ${args.output}`);
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
// Write to stdout
|
|
355
|
+
console.log(output);
|
|
356
|
+
}
|
|
357
|
+
process.exit(0);
|
|
358
|
+
}
|
|
359
|
+
catch (error) {
|
|
360
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
361
|
+
console.error('\nRun with --help for usage information');
|
|
362
|
+
process.exit(1);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
//# sourceMappingURL=convert-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-request.js","sourceRoot":"","sources":["../../src/convert-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* CLI Tool for Converting IR Responses
|
|
5
|
+
*
|
|
6
|
+
* Convert Universal IR responses to various frontend formats for debugging.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* npx ai-matey convert-response --format openai --input response.json
|
|
10
|
+
* npx ai-matey convert-response --format all --input response.json
|
|
11
|
+
* cat response.json | npx ai-matey convert-response --format anthropic
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
18
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
19
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
20
|
+
}
|
|
21
|
+
Object.defineProperty(o, k2, desc);
|
|
22
|
+
}) : (function(o, m, k, k2) {
|
|
23
|
+
if (k2 === undefined) k2 = k;
|
|
24
|
+
o[k2] = m[k];
|
|
25
|
+
}));
|
|
26
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
27
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
28
|
+
}) : function(o, v) {
|
|
29
|
+
o["default"] = v;
|
|
30
|
+
});
|
|
31
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
32
|
+
var ownKeys = function(o) {
|
|
33
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
34
|
+
var ar = [];
|
|
35
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
36
|
+
return ar;
|
|
37
|
+
};
|
|
38
|
+
return ownKeys(o);
|
|
39
|
+
};
|
|
40
|
+
return function (mod) {
|
|
41
|
+
if (mod && mod.__esModule) return mod;
|
|
42
|
+
var result = {};
|
|
43
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
44
|
+
__setModuleDefault(result, mod);
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
})();
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
exports.main = main;
|
|
50
|
+
const promises_1 = require("node:fs/promises");
|
|
51
|
+
const node_process_1 = require("node:process");
|
|
52
|
+
const response_converters_js_1 = require("./converters/response-converters.js");
|
|
53
|
+
function parseArgs(args) {
|
|
54
|
+
const parsed = {
|
|
55
|
+
format: 'openai',
|
|
56
|
+
pretty: true,
|
|
57
|
+
};
|
|
58
|
+
for (let i = 0; i < args.length; i++) {
|
|
59
|
+
const arg = args[i];
|
|
60
|
+
switch (arg) {
|
|
61
|
+
case '--format':
|
|
62
|
+
case '-f':
|
|
63
|
+
parsed.format = args[++i] || 'openai';
|
|
64
|
+
break;
|
|
65
|
+
case '--input':
|
|
66
|
+
case '-i':
|
|
67
|
+
parsed.input = args[++i];
|
|
68
|
+
break;
|
|
69
|
+
case '--output':
|
|
70
|
+
case '-o':
|
|
71
|
+
parsed.output = args[++i];
|
|
72
|
+
break;
|
|
73
|
+
case '--no-pretty':
|
|
74
|
+
parsed.pretty = false;
|
|
75
|
+
break;
|
|
76
|
+
case '--help':
|
|
77
|
+
case '-h':
|
|
78
|
+
parsed.help = true;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return parsed;
|
|
83
|
+
}
|
|
84
|
+
// ============================================================================
|
|
85
|
+
// Help Text
|
|
86
|
+
// ============================================================================
|
|
87
|
+
const SUPPORTED_FORMATS = ['openai', 'anthropic', 'gemini', 'ollama', 'mistral'];
|
|
88
|
+
function printHelp() {
|
|
89
|
+
console.log(`
|
|
90
|
+
AI.Matey Response Converter
|
|
91
|
+
Convert Universal IR responses to various frontend formats
|
|
92
|
+
|
|
93
|
+
USAGE:
|
|
94
|
+
npx ai-matey convert-response [OPTIONS]
|
|
95
|
+
|
|
96
|
+
OPTIONS:
|
|
97
|
+
-f, --format <format> Target format (${SUPPORTED_FORMATS.join(', ')}, or 'all')
|
|
98
|
+
-i, --input <file> Input file (JSON). If omitted, reads from stdin
|
|
99
|
+
-o, --output <file> Output file. If omitted, writes to stdout
|
|
100
|
+
--no-pretty Disable pretty-printing
|
|
101
|
+
-h, --help Show this help message
|
|
102
|
+
|
|
103
|
+
FORMATS:
|
|
104
|
+
${SUPPORTED_FORMATS.map((f) => ` ${f.padEnd(12)} - ${f.charAt(0).toUpperCase() + f.slice(1)} format`).join('\n ')}
|
|
105
|
+
all - Convert to all formats (for debugging)
|
|
106
|
+
|
|
107
|
+
EXAMPLES:
|
|
108
|
+
# Convert from file
|
|
109
|
+
npx ai-matey convert-response --format openai --input response.json
|
|
110
|
+
|
|
111
|
+
# Convert from stdin
|
|
112
|
+
cat response.json | npx ai-matey convert-response --format anthropic
|
|
113
|
+
|
|
114
|
+
# Save to file
|
|
115
|
+
npx ai-matey convert-response -f gemini -i response.json -o gemini-format.json
|
|
116
|
+
|
|
117
|
+
# Convert to all formats for debugging
|
|
118
|
+
npx ai-matey convert-response -f all -i response.json
|
|
119
|
+
|
|
120
|
+
# Compact output (no pretty-printing)
|
|
121
|
+
npx ai-matey convert-response -f openai -i response.json --no-pretty
|
|
122
|
+
`);
|
|
123
|
+
}
|
|
124
|
+
// ============================================================================
|
|
125
|
+
// Input/Output Functions
|
|
126
|
+
// ============================================================================
|
|
127
|
+
async function readInput(inputFile) {
|
|
128
|
+
let content;
|
|
129
|
+
if (inputFile) {
|
|
130
|
+
// Read from file
|
|
131
|
+
content = await (0, promises_1.readFile)(inputFile, 'utf-8');
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// Read from stdin
|
|
135
|
+
const chunks = [];
|
|
136
|
+
for await (const chunk of node_process_1.stdin) {
|
|
137
|
+
chunks.push(chunk);
|
|
138
|
+
}
|
|
139
|
+
content = Buffer.concat(chunks).toString('utf-8');
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
return JSON.parse(content);
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
throw new Error(`Invalid JSON input: ${error instanceof Error ? error.message : String(error)}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function formatOutput(data, pretty) {
|
|
149
|
+
return pretty ? JSON.stringify(data, null, 2) : JSON.stringify(data);
|
|
150
|
+
}
|
|
151
|
+
// ============================================================================
|
|
152
|
+
// Main Function
|
|
153
|
+
// ============================================================================
|
|
154
|
+
async function main() {
|
|
155
|
+
const args = parseArgs(process.argv.slice(2));
|
|
156
|
+
if (args.help) {
|
|
157
|
+
printHelp();
|
|
158
|
+
process.exit(0);
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
// Read input
|
|
162
|
+
const irResponse = await readInput(args.input);
|
|
163
|
+
// Convert to target format(s)
|
|
164
|
+
let result;
|
|
165
|
+
if (args.format === 'all') {
|
|
166
|
+
// Convert to all formats
|
|
167
|
+
result = await (0, response_converters_js_1.toMultipleFormats)(irResponse, SUPPORTED_FORMATS);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
// Convert to specific format
|
|
171
|
+
switch (args.format) {
|
|
172
|
+
case 'openai':
|
|
173
|
+
result = await (0, response_converters_js_1.toOpenAI)(irResponse);
|
|
174
|
+
break;
|
|
175
|
+
case 'anthropic':
|
|
176
|
+
result = await (0, response_converters_js_1.toAnthropic)(irResponse);
|
|
177
|
+
break;
|
|
178
|
+
case 'gemini':
|
|
179
|
+
result = await (0, response_converters_js_1.toGemini)(irResponse);
|
|
180
|
+
break;
|
|
181
|
+
case 'ollama':
|
|
182
|
+
result = await (0, response_converters_js_1.toOllama)(irResponse);
|
|
183
|
+
break;
|
|
184
|
+
case 'mistral':
|
|
185
|
+
result = await (0, response_converters_js_1.toMistral)(irResponse);
|
|
186
|
+
break;
|
|
187
|
+
default:
|
|
188
|
+
throw new Error(`Unsupported format: ${args.format}. Use --help to see available formats.`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Format and output
|
|
192
|
+
const output = formatOutput(result, args.pretty ?? true);
|
|
193
|
+
if (args.output) {
|
|
194
|
+
// Write to file
|
|
195
|
+
const { writeFile } = await Promise.resolve().then(() => __importStar(require('node:fs/promises')));
|
|
196
|
+
await writeFile(args.output, output, 'utf-8');
|
|
197
|
+
console.error(`✓ Converted to ${args.format} format: ${args.output}`);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
// Write to stdout
|
|
201
|
+
console.log(output);
|
|
202
|
+
}
|
|
203
|
+
process.exit(0);
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
console.error('Error:', error instanceof Error ? error.message : String(error));
|
|
207
|
+
console.error('\nRun with --help for usage information');
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=convert-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-response.js","sourceRoot":"","sources":["../../src/convert-response.ts"],"names":[],"mappings":"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"}
|