@ooneex/ai 1.1.4 → 1.1.6
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/dist/index.js +669 -11
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,20 +1,678 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __legacyDecorateClassTS = function(decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
5
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
6
|
+
else
|
|
7
|
+
for (var i = decorators.length - 1;i >= 0; i--)
|
|
8
|
+
if (d = decorators[i])
|
|
9
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
10
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
11
|
+
};
|
|
12
|
+
var __legacyDecorateParamTS = (index, decorator) => (target, key) => decorator(target, key, index);
|
|
13
|
+
var __legacyMetadataTS = (k, v) => {
|
|
14
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
15
|
+
return Reflect.metadata(k, v);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// src/AiException.ts
|
|
19
|
+
import { Exception } from "@ooneex/exception";
|
|
20
|
+
import { HttpStatus } from "@ooneex/http-status";
|
|
21
|
+
|
|
22
|
+
class AiException extends Exception {
|
|
23
|
+
constructor(message, data = {}) {
|
|
24
|
+
super(message, {
|
|
25
|
+
status: HttpStatus.Code.InternalServerError,
|
|
26
|
+
data
|
|
27
|
+
});
|
|
28
|
+
this.name = "AiException";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// src/AnthropicAi.ts
|
|
32
|
+
import { AppEnv } from "@ooneex/app-env";
|
|
33
|
+
import { inject } from "@ooneex/container";
|
|
34
|
+
import { createAnthropicChat } from "@tanstack/ai-anthropic";
|
|
35
|
+
|
|
36
|
+
// src/BaseAi.ts
|
|
37
|
+
import { jsonSchemaToTypeString } from "@ooneex/validation";
|
|
38
|
+
import { chat } from "@tanstack/ai";
|
|
39
|
+
import { type } from "arktype";
|
|
40
|
+
class BaseAi {
|
|
41
|
+
buildPrompt(instruction, config) {
|
|
42
|
+
const parts = [config?.prompt || instruction];
|
|
43
|
+
if (config?.context) {
|
|
44
|
+
parts.push(`Context:
|
|
45
|
+
${config.context}`);
|
|
46
|
+
}
|
|
47
|
+
if (config?.wordCount) {
|
|
48
|
+
parts.push(`Target approximately ${config.wordCount} words.`);
|
|
49
|
+
}
|
|
50
|
+
if (config?.tone) {
|
|
51
|
+
parts.push(`Use a ${config.tone} tone.`);
|
|
52
|
+
}
|
|
53
|
+
if (config?.language) {
|
|
54
|
+
parts.push(`Respond in ${config.language} language.`);
|
|
55
|
+
}
|
|
56
|
+
parts.push(`${config?.context ? "Use the provided context to inform your response. " : ""}Respond with only the transformed text. Do not include explanations or additional commentary.`);
|
|
57
|
+
return parts.join(`
|
|
58
|
+
`);
|
|
59
|
+
}
|
|
60
|
+
toMessages(messages) {
|
|
61
|
+
return messages.map((msg) => ({ role: msg.role, content: msg.content }));
|
|
62
|
+
}
|
|
63
|
+
async executeChat(content, systemPrompt, config) {
|
|
64
|
+
const adapter = this.createChatAdapter(config);
|
|
65
|
+
const baseMessages = config?.messages ? this.toMessages(config.messages) : [];
|
|
66
|
+
const userMessage = { role: "user", content: `${systemPrompt}
|
|
5
67
|
|
|
6
68
|
Text to process:
|
|
7
|
-
${
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
69
|
+
${content}` };
|
|
70
|
+
const messages = [...baseMessages, userMessage];
|
|
71
|
+
const result = await chat({
|
|
72
|
+
adapter,
|
|
73
|
+
messages,
|
|
74
|
+
stream: false
|
|
75
|
+
});
|
|
76
|
+
return result.trim();
|
|
77
|
+
}
|
|
78
|
+
async makeShorter(content, config) {
|
|
79
|
+
const prompt = this.buildPrompt("Condense the following text while preserving its core meaning and key information. Remove redundancies and unnecessary details.", config);
|
|
80
|
+
return this.executeChat(content, prompt, config);
|
|
81
|
+
}
|
|
82
|
+
async makeLonger(content, config) {
|
|
83
|
+
const prompt = this.buildPrompt("Expand the following text by adding relevant details, examples, and explanations while maintaining coherence and the original message.", config);
|
|
84
|
+
return this.executeChat(content, prompt, config);
|
|
85
|
+
}
|
|
86
|
+
async summarize(content, config) {
|
|
87
|
+
const prompt = this.buildPrompt("Provide a clear and comprehensive summary of the following text, capturing all essential points and main ideas.", config);
|
|
88
|
+
return this.executeChat(content, prompt, config);
|
|
89
|
+
}
|
|
90
|
+
async concise(content, config) {
|
|
91
|
+
const prompt = this.buildPrompt("Rewrite the following text in the most concise form possible without losing essential meaning.", config);
|
|
92
|
+
return this.executeChat(content, prompt, config);
|
|
93
|
+
}
|
|
94
|
+
async paragraph(content, config) {
|
|
95
|
+
const prompt = this.buildPrompt("Transform the following text into well-structured paragraph format with clear topic sentences and logical flow.", config);
|
|
96
|
+
return this.executeChat(content, prompt, config);
|
|
97
|
+
}
|
|
98
|
+
async bulletPoints(content, config) {
|
|
99
|
+
const prompt = this.buildPrompt("Convert the following text into a clear, organized list of bullet points highlighting the key information.", config);
|
|
100
|
+
return this.executeChat(content, prompt, config);
|
|
101
|
+
}
|
|
102
|
+
async rephrase(content, config) {
|
|
103
|
+
const prompt = this.buildPrompt("Rephrase the following text using different words and sentence structures while preserving the original meaning.", config);
|
|
104
|
+
return this.executeChat(content, prompt, config);
|
|
105
|
+
}
|
|
106
|
+
async simplify(content, config) {
|
|
107
|
+
const prompt = this.buildPrompt("Simplify the following text by using plain language, shorter sentences, and avoiding jargon. Make it accessible to a general audience.", config);
|
|
108
|
+
return this.executeChat(content, prompt, config);
|
|
109
|
+
}
|
|
110
|
+
async changeTone(content, tone, config) {
|
|
111
|
+
const prompt = this.buildPrompt(`Rewrite the following text in a ${tone} tone while maintaining clarity.`, config);
|
|
112
|
+
return this.executeChat(content, prompt, config);
|
|
113
|
+
}
|
|
114
|
+
async proofread(content, config) {
|
|
115
|
+
const prompt = this.buildPrompt("Proofread and correct the following text for grammar, spelling, punctuation, and clarity issues. Return the corrected version.", config);
|
|
116
|
+
return this.executeChat(content, prompt, config);
|
|
117
|
+
}
|
|
118
|
+
async translate(content, config) {
|
|
119
|
+
const targetLanguage = config?.language ?? "en";
|
|
120
|
+
const prompt = this.buildPrompt(`Translate the following text accurately into ${targetLanguage}, preserving the original meaning, tone, and nuance.`, config);
|
|
121
|
+
return this.executeChat(content, prompt, config);
|
|
122
|
+
}
|
|
123
|
+
async explain(content, config) {
|
|
124
|
+
const prompt = this.buildPrompt("Provide a clear explanation of the following text, breaking down complex concepts and clarifying the meaning.", config);
|
|
125
|
+
return this.executeChat(content, prompt, config);
|
|
126
|
+
}
|
|
127
|
+
async expandIdeas(content, config) {
|
|
128
|
+
const prompt = this.buildPrompt("Expand on the ideas presented in the following text by exploring related concepts, implications, and additional perspectives.", config);
|
|
129
|
+
return this.executeChat(content, prompt, config);
|
|
130
|
+
}
|
|
131
|
+
async fixGrammar(content, config) {
|
|
132
|
+
const prompt = this.buildPrompt("Fix all grammatical errors in the following text, including subject-verb agreement, tense consistency, and sentence structure.", config);
|
|
133
|
+
return this.executeChat(content, prompt, config);
|
|
134
|
+
}
|
|
135
|
+
async generateTitle(content, config) {
|
|
136
|
+
const prompt = this.buildPrompt("Generate a compelling, descriptive title for the following text that captures its main theme and engages readers.", config);
|
|
137
|
+
return this.executeChat(content, prompt, config);
|
|
138
|
+
}
|
|
139
|
+
async extractKeywords(content, config) {
|
|
140
|
+
const count = config?.count;
|
|
141
|
+
const countInstruction = count ? ` Return exactly ${count} keywords.` : "";
|
|
142
|
+
const prompt = this.buildPrompt(`Extract the most important keywords and key phrases from the following text. Return only the keywords as a comma-separated list without numbering, brackets, or additional formatting.${countInstruction}`, config);
|
|
143
|
+
const result = await this.executeChat(content, prompt, config);
|
|
144
|
+
const items = result.split(",").map((keyword) => keyword.trim()).filter((keyword) => keyword.length > 0);
|
|
145
|
+
return count ? items.slice(0, count) : items;
|
|
146
|
+
}
|
|
147
|
+
async extractCategories(content, config) {
|
|
148
|
+
const count = config?.count;
|
|
149
|
+
const countInstruction = count ? ` Return exactly ${count} categories.` : "";
|
|
150
|
+
const prompt = this.buildPrompt(`Identify the most relevant categories or topics that best describe the following text. Return only the categories as a comma-separated list without numbering, brackets, or additional formatting.${countInstruction}`, config);
|
|
151
|
+
const result = await this.executeChat(content, prompt, config);
|
|
152
|
+
const items = result.split(",").map((category) => category.trim()).filter((category) => category.length > 0);
|
|
153
|
+
return count ? items.slice(0, count) : items;
|
|
154
|
+
}
|
|
155
|
+
async extractTopics(content, config) {
|
|
156
|
+
const count = config?.count;
|
|
157
|
+
const countInstruction = count ? ` Return at most ${count} topics.` : "";
|
|
158
|
+
const prompt = this.buildPrompt(`Extract the main topics discussed in the following text. Return only the topics as a comma-separated list without numbering, brackets, or additional formatting.${countInstruction}`, config);
|
|
159
|
+
const result = await this.executeChat(content, prompt, config);
|
|
160
|
+
const items = result.split(",").map((topic) => topic.trim()).filter((topic) => topic.length > 0);
|
|
161
|
+
return count ? items.slice(0, count) : items;
|
|
162
|
+
}
|
|
163
|
+
async generateCaseQuestion(subject, options, config) {
|
|
164
|
+
const questionCount = options?.questionCount ?? 3;
|
|
165
|
+
const choiceCount = options?.choiceCount;
|
|
166
|
+
const difficulty = Math.min(100, Math.max(1, options?.difficulty ?? 50));
|
|
167
|
+
const choiceInstructions = choiceCount ? [
|
|
168
|
+
`Each question must have exactly ${choiceCount} choices.`,
|
|
169
|
+
"Exactly 1 of the choices must be correct.",
|
|
170
|
+
"For each choice (both correct and wrong), provide an explanation in approximately 50 words."
|
|
171
|
+
] : [];
|
|
172
|
+
const jsonFormat = choiceCount ? `{"title":"...","presentation":"...","questions":[{"text":"...","answer":"...","explanation":"...","choices":[{"text":"...","isCorrect":true/false,"explanation":"..."},...]},...]}` : `{"title":"...","presentation":"...","questions":[{"text":"...","answer":"...","explanation":"..."},...]}`;
|
|
173
|
+
const prompt = this.buildPrompt([
|
|
174
|
+
"Generate a clinical case study with questions about the following subject.",
|
|
175
|
+
`Difficulty level: ${difficulty}/100. At easy difficulty (1-25), present straightforward cases with classic presentations. At medium difficulty (26-50), include cases requiring differential diagnosis and standard management. At hard difficulty (51-75), present atypical presentations or cases with complicating factors. At expert difficulty (76-100), present rare conditions, complex multi-system cases, or cases requiring nuanced clinical reasoning.`,
|
|
176
|
+
...options?.similarCase ? [
|
|
177
|
+
`Generate a case similar in style and topic to: "${options.similarCase}". The new case must be different but cover a closely related clinical scenario.`
|
|
178
|
+
] : [],
|
|
179
|
+
"Create a detailed clinical presentation with patient demographics, symptoms, history, and relevant findings.",
|
|
180
|
+
`Generate exactly ${questionCount} questions about the case, numbered sequentially.`,
|
|
181
|
+
"Each question must have a direct answer and a detailed explanation.",
|
|
182
|
+
...choiceInstructions,
|
|
183
|
+
"Respond ONLY with valid JSON in this exact format:",
|
|
184
|
+
jsonFormat
|
|
185
|
+
].join(`
|
|
186
|
+
`), config);
|
|
187
|
+
const result = await this.executeChat(subject, prompt, config);
|
|
188
|
+
const cleaned = result.replace(/```json\n?|\n?```/g, "").trim();
|
|
189
|
+
const parsed = JSON.parse(cleaned);
|
|
190
|
+
return parsed;
|
|
191
|
+
}
|
|
192
|
+
async generateFlashcard(subject, options, config) {
|
|
193
|
+
const difficulty = Math.min(100, Math.max(1, options?.difficulty ?? 50));
|
|
194
|
+
const prompt = this.buildPrompt([
|
|
195
|
+
"Generate a flashcard about the following subject.",
|
|
196
|
+
`Difficulty level: ${difficulty}/100. At easy difficulty (1-25), cover basic definitions and simple facts. At medium difficulty (26-50), cover concepts requiring understanding and application. At hard difficulty (51-75), cover analysis and connections between concepts. At expert difficulty (76-100), cover nuanced details, edge cases, and advanced reasoning.`,
|
|
197
|
+
...options?.similarFlashcard ? [
|
|
198
|
+
`Generate a flashcard similar in style and topic to: "${options.similarFlashcard}". The new flashcard must be different but cover a closely related concept.`
|
|
199
|
+
] : [],
|
|
200
|
+
"The front should be a clear, concise question or prompt.",
|
|
201
|
+
"The back should be a direct answer.",
|
|
202
|
+
"The explanation should provide additional context in approximately 50 words.",
|
|
203
|
+
"Respond ONLY with valid JSON in this exact format:",
|
|
204
|
+
`{"front":"...","back":"...","explanation":"..."}`
|
|
205
|
+
].join(`
|
|
206
|
+
`), config);
|
|
207
|
+
const result = await this.executeChat(subject, prompt, config);
|
|
208
|
+
const cleaned = result.replace(/```json\n?|\n?```/g, "").trim();
|
|
209
|
+
const parsed = JSON.parse(cleaned);
|
|
210
|
+
return parsed;
|
|
211
|
+
}
|
|
212
|
+
async generateQuestion(subject, options, config) {
|
|
213
|
+
const choiceCount = options?.choiceCount ?? 5;
|
|
214
|
+
const correctChoiceCount = options?.correctChoiceCount ?? 1;
|
|
215
|
+
const difficulty = Math.min(100, Math.max(1, options?.difficulty ?? 50));
|
|
216
|
+
const prompt = this.buildPrompt([
|
|
217
|
+
"Generate a multiple-choice question (MCQ) about the following subject.",
|
|
218
|
+
`Difficulty level: ${difficulty}/100. At easy difficulty (1-25), ask basic recall questions with obviously wrong distractors. At medium difficulty (26-50), require understanding and application with plausible distractors. At hard difficulty (51-75), test analysis and synthesis with closely related distractors that require careful reasoning. At expert difficulty (76-100), test deep analysis, edge cases, and subtle distinctions where wrong choices are very close to being correct.`,
|
|
219
|
+
`The question must have exactly ${choiceCount} choices.`,
|
|
220
|
+
`Exactly ${correctChoiceCount} of the choices must be correct.`,
|
|
221
|
+
...options?.similarQuestion ? [
|
|
222
|
+
`Generate a question similar in style and topic to: "${options.similarQuestion}". The new question must be different but cover a closely related concept.`
|
|
223
|
+
] : [],
|
|
224
|
+
"For each choice (both correct and wrong), provide an explanation in approximately 50 words.",
|
|
225
|
+
"Respond ONLY with valid JSON in this exact format:",
|
|
226
|
+
`{"question":"...","choices":[{"text":"...","isCorrect":true/false,"explanation":"..."},...]}`
|
|
227
|
+
].join(`
|
|
228
|
+
`), config);
|
|
229
|
+
const result = await this.executeChat(subject, prompt, config);
|
|
230
|
+
const cleaned = result.replace(/```json\n?|\n?```/g, "").trim();
|
|
231
|
+
const parsed = JSON.parse(cleaned);
|
|
232
|
+
return parsed;
|
|
233
|
+
}
|
|
234
|
+
async imageToMarkdown(source, config) {
|
|
235
|
+
const adapter = this.createChatAdapter(config);
|
|
236
|
+
const systemPrompt = this.buildPrompt("Convert the content of the provided image into well-structured Markdown. Preserve the document structure including headings, lists, tables, code blocks, and formatting. Transcribe all visible text accurately.", config);
|
|
237
|
+
const baseMessages = config?.messages ? this.toMessages(config.messages) : [];
|
|
238
|
+
const userMessage = {
|
|
239
|
+
role: "user",
|
|
240
|
+
content: [
|
|
241
|
+
{ type: "text", content: systemPrompt },
|
|
242
|
+
{ type: "image", source }
|
|
243
|
+
]
|
|
244
|
+
};
|
|
245
|
+
const messages = [...baseMessages, userMessage];
|
|
246
|
+
const result = await chat({
|
|
247
|
+
adapter,
|
|
248
|
+
messages,
|
|
249
|
+
stream: false
|
|
250
|
+
});
|
|
251
|
+
return result.trim();
|
|
252
|
+
}
|
|
253
|
+
async run(prompt, config) {
|
|
254
|
+
const adapter = this.createRunAdapter(config);
|
|
255
|
+
let defaultPrompt = "Process the following request and respond appropriately. If the request asks for structured data, return valid JSON.";
|
|
256
|
+
if (config?.output) {
|
|
257
|
+
const schema = config.output.toJsonSchema();
|
|
258
|
+
const outputType = jsonSchemaToTypeString(schema);
|
|
259
|
+
defaultPrompt += `
|
|
11
260
|
|
|
12
|
-
Output Type: ${
|
|
261
|
+
Output Type: ${outputType}`;
|
|
262
|
+
}
|
|
263
|
+
const systemPrompt = this.buildPrompt(defaultPrompt, config);
|
|
264
|
+
const baseMessages = config?.messages ? this.toMessages(config.messages) : [];
|
|
265
|
+
const userMessage = { role: "user", content: `${systemPrompt}
|
|
13
266
|
|
|
14
267
|
Request:
|
|
15
|
-
${
|
|
268
|
+
${prompt}` };
|
|
269
|
+
const messages = [...baseMessages, userMessage];
|
|
270
|
+
const result = await chat({
|
|
271
|
+
adapter,
|
|
272
|
+
messages,
|
|
273
|
+
stream: false
|
|
274
|
+
});
|
|
275
|
+
const trimmed = result.trim();
|
|
276
|
+
let parsed;
|
|
277
|
+
try {
|
|
278
|
+
const cleaned = trimmed.replace(/```json\n?|\n?```/g, "").trim();
|
|
279
|
+
parsed = JSON.parse(cleaned);
|
|
280
|
+
} catch {
|
|
281
|
+
parsed = trimmed;
|
|
282
|
+
}
|
|
283
|
+
if (config?.output) {
|
|
284
|
+
const validation = config.output(parsed);
|
|
285
|
+
if (validation instanceof type.errors) {
|
|
286
|
+
throw new AiException(`Output validation failed: ${validation.summary}`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return parsed;
|
|
290
|
+
}
|
|
291
|
+
async* runStream(prompt, config) {
|
|
292
|
+
const adapter = this.createRunAdapter(config);
|
|
293
|
+
const defaultPrompt = "Process the following request and respond appropriately.";
|
|
294
|
+
const systemPrompt = this.buildPrompt(defaultPrompt, config);
|
|
295
|
+
const baseMessages = config?.messages ? this.toMessages(config.messages) : [];
|
|
296
|
+
const userMessage = { role: "user", content: `${systemPrompt}
|
|
16
297
|
|
|
17
298
|
Request:
|
|
18
|
-
${
|
|
299
|
+
${prompt}` };
|
|
300
|
+
const messages = [...baseMessages, userMessage];
|
|
301
|
+
const stream = chat({
|
|
302
|
+
adapter,
|
|
303
|
+
messages,
|
|
304
|
+
stream: true
|
|
305
|
+
});
|
|
306
|
+
for await (const chunk of stream) {
|
|
307
|
+
if (chunk.type === "content") {
|
|
308
|
+
yield chunk.content;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// src/decorators.ts
|
|
315
|
+
import { container, EContainerScope } from "@ooneex/container";
|
|
316
|
+
var decorator = {
|
|
317
|
+
ai: (scope = EContainerScope.Singleton) => {
|
|
318
|
+
return (target) => {
|
|
319
|
+
container.add(target, scope);
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
// src/AnthropicAi.ts
|
|
325
|
+
class AnthropicAi extends BaseAi {
|
|
326
|
+
env;
|
|
327
|
+
constructor(env) {
|
|
328
|
+
super();
|
|
329
|
+
this.env = env;
|
|
330
|
+
}
|
|
331
|
+
getApiKey(config) {
|
|
332
|
+
const apiKey = config?.apiKey || this.env.ANTHROPIC_API_KEY;
|
|
333
|
+
if (!apiKey) {
|
|
334
|
+
throw new AiException("Anthropic API key is required. Provide an API key through config options or set the ANTHROPIC_API_KEY environment variable.");
|
|
335
|
+
}
|
|
336
|
+
return apiKey;
|
|
337
|
+
}
|
|
338
|
+
createChatAdapter(config) {
|
|
339
|
+
const apiKey = this.getApiKey(config);
|
|
340
|
+
const model = config?.model ?? "claude-sonnet-4-5";
|
|
341
|
+
return createAnthropicChat(model, apiKey);
|
|
342
|
+
}
|
|
343
|
+
createRunAdapter(config) {
|
|
344
|
+
return this.createChatAdapter(config);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
AnthropicAi = __legacyDecorateClassTS([
|
|
348
|
+
decorator.ai(),
|
|
349
|
+
__legacyDecorateParamTS(0, inject(AppEnv)),
|
|
350
|
+
__legacyMetadataTS("design:paramtypes", [
|
|
351
|
+
typeof AppEnv === "undefined" ? Object : AppEnv
|
|
352
|
+
])
|
|
353
|
+
], AnthropicAi);
|
|
354
|
+
// src/GeminiAi.ts
|
|
355
|
+
import { AppEnv as AppEnv2 } from "@ooneex/app-env";
|
|
356
|
+
import { inject as inject2 } from "@ooneex/container";
|
|
357
|
+
import { generateImage, generateSpeech } from "@tanstack/ai";
|
|
358
|
+
import { createGeminiChat, createGeminiImage, createGeminiSpeech } from "@tanstack/ai-gemini";
|
|
359
|
+
class GeminiAi extends BaseAi {
|
|
360
|
+
env;
|
|
361
|
+
constructor(env) {
|
|
362
|
+
super();
|
|
363
|
+
this.env = env;
|
|
364
|
+
}
|
|
365
|
+
getApiKey(config) {
|
|
366
|
+
const apiKey = config?.apiKey || this.env.GEMINI_API_KEY;
|
|
367
|
+
if (!apiKey) {
|
|
368
|
+
throw new AiException("Gemini API key is required. Provide an API key through config options or set the GEMINI_API_KEY environment variable.");
|
|
369
|
+
}
|
|
370
|
+
return apiKey;
|
|
371
|
+
}
|
|
372
|
+
createChatAdapter(config) {
|
|
373
|
+
const apiKey = this.getApiKey(config);
|
|
374
|
+
const model = config?.model ?? "gemini-2.0-flash";
|
|
375
|
+
return createGeminiChat(model, apiKey);
|
|
376
|
+
}
|
|
377
|
+
createRunAdapter(config) {
|
|
378
|
+
const apiKey = this.getApiKey(config);
|
|
379
|
+
const model = config?.model ?? "gemini-2.5-pro";
|
|
380
|
+
return createGeminiChat(model, apiKey);
|
|
381
|
+
}
|
|
382
|
+
async textToSpeech(text, options) {
|
|
383
|
+
const apiKey = this.getApiKey(options);
|
|
384
|
+
const model = options?.model ?? "gemini-2.5-flash-preview-tts";
|
|
385
|
+
const adapter = createGeminiSpeech(model, apiKey);
|
|
386
|
+
const modelOptions = {};
|
|
387
|
+
if (options?.voice) {
|
|
388
|
+
modelOptions.voiceConfig = {
|
|
389
|
+
prebuiltVoiceConfig: {
|
|
390
|
+
voiceName: options.voice
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
if (options?.instructions) {
|
|
395
|
+
modelOptions.systemInstruction = options.instructions;
|
|
396
|
+
}
|
|
397
|
+
if (options?.language) {
|
|
398
|
+
modelOptions.languageCode = options.language;
|
|
399
|
+
}
|
|
400
|
+
const speechOptions = { adapter, text };
|
|
401
|
+
if (options?.format) {
|
|
402
|
+
speechOptions.format = options.format;
|
|
403
|
+
}
|
|
404
|
+
if (options?.speed) {
|
|
405
|
+
speechOptions.speed = options.speed;
|
|
406
|
+
}
|
|
407
|
+
if (Object.keys(modelOptions).length > 0) {
|
|
408
|
+
speechOptions.modelOptions = modelOptions;
|
|
409
|
+
}
|
|
410
|
+
return generateSpeech(speechOptions);
|
|
411
|
+
}
|
|
412
|
+
async generateImage(prompt, options) {
|
|
413
|
+
const apiKey = this.getApiKey(options);
|
|
414
|
+
const model = options?.model ?? "imagen-4.0-generate-001";
|
|
415
|
+
const adapter = createGeminiImage(model, apiKey);
|
|
416
|
+
const imageOptions = { adapter, prompt };
|
|
417
|
+
if (options?.numberOfImages) {
|
|
418
|
+
imageOptions.numberOfImages = options.numberOfImages;
|
|
419
|
+
}
|
|
420
|
+
if (options?.size) {
|
|
421
|
+
imageOptions.size = options.size;
|
|
422
|
+
}
|
|
423
|
+
const modelOptions = {};
|
|
424
|
+
if (options?.aspectRatio) {
|
|
425
|
+
modelOptions.aspectRatio = options.aspectRatio;
|
|
426
|
+
}
|
|
427
|
+
if (options?.personGeneration) {
|
|
428
|
+
modelOptions.personGeneration = options.personGeneration;
|
|
429
|
+
}
|
|
430
|
+
if (options?.negativePrompt) {
|
|
431
|
+
modelOptions.negativePrompt = options.negativePrompt;
|
|
432
|
+
}
|
|
433
|
+
if (options?.addWatermark !== undefined) {
|
|
434
|
+
modelOptions.addWatermark = options.addWatermark;
|
|
435
|
+
}
|
|
436
|
+
if (options?.outputMimeType) {
|
|
437
|
+
modelOptions.outputMimeType = options.outputMimeType;
|
|
438
|
+
}
|
|
439
|
+
if (Object.keys(modelOptions).length > 0) {
|
|
440
|
+
imageOptions.modelOptions = modelOptions;
|
|
441
|
+
}
|
|
442
|
+
return generateImage(imageOptions);
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
GeminiAi = __legacyDecorateClassTS([
|
|
446
|
+
decorator.ai(),
|
|
447
|
+
__legacyDecorateParamTS(0, inject2(AppEnv2)),
|
|
448
|
+
__legacyMetadataTS("design:paramtypes", [
|
|
449
|
+
typeof AppEnv2 === "undefined" ? Object : AppEnv2
|
|
450
|
+
])
|
|
451
|
+
], GeminiAi);
|
|
452
|
+
// src/GroqAi.ts
|
|
453
|
+
import { AppEnv as AppEnv3 } from "@ooneex/app-env";
|
|
454
|
+
import { inject as inject3 } from "@ooneex/container";
|
|
455
|
+
import { createGroqText } from "@tanstack/ai-groq";
|
|
456
|
+
class GroqAi extends BaseAi {
|
|
457
|
+
env;
|
|
458
|
+
constructor(env) {
|
|
459
|
+
super();
|
|
460
|
+
this.env = env;
|
|
461
|
+
}
|
|
462
|
+
getApiKey(config) {
|
|
463
|
+
const apiKey = config?.apiKey || this.env.GROQ_API_KEY;
|
|
464
|
+
if (!apiKey) {
|
|
465
|
+
throw new AiException("Groq API key is required. Provide an API key through config options or set the GROQ_API_KEY environment variable.");
|
|
466
|
+
}
|
|
467
|
+
return apiKey;
|
|
468
|
+
}
|
|
469
|
+
createChatAdapter(config) {
|
|
470
|
+
const apiKey = this.getApiKey(config);
|
|
471
|
+
const model = config?.model ?? "llama-3.3-70b-versatile";
|
|
472
|
+
return createGroqText(model, apiKey);
|
|
473
|
+
}
|
|
474
|
+
createRunAdapter(config) {
|
|
475
|
+
return this.createChatAdapter(config);
|
|
476
|
+
}
|
|
477
|
+
async textToSpeech(text, options) {
|
|
478
|
+
const apiKey = this.getApiKey(options);
|
|
479
|
+
const model = options?.model ?? "canopylabs/orpheus-v1-english";
|
|
480
|
+
const voice = options?.voice ?? "autumn";
|
|
481
|
+
const format = options?.format ?? "wav";
|
|
482
|
+
const body = {
|
|
483
|
+
model,
|
|
484
|
+
input: text,
|
|
485
|
+
voice,
|
|
486
|
+
response_format: format
|
|
487
|
+
};
|
|
488
|
+
if (options?.sampleRate) {
|
|
489
|
+
body.sample_rate = options.sampleRate;
|
|
490
|
+
}
|
|
491
|
+
const response = await fetch("https://api.groq.com/openai/v1/audio/speech", {
|
|
492
|
+
method: "POST",
|
|
493
|
+
headers: {
|
|
494
|
+
Authorization: `Bearer ${apiKey}`,
|
|
495
|
+
"Content-Type": "application/json"
|
|
496
|
+
},
|
|
497
|
+
body: JSON.stringify(body)
|
|
498
|
+
});
|
|
499
|
+
if (!response.ok) {
|
|
500
|
+
const error = await response.text();
|
|
501
|
+
throw new AiException(`Groq TTS request failed (${response.status}): ${error}`);
|
|
502
|
+
}
|
|
503
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
504
|
+
const audio = Buffer.from(arrayBuffer).toString("base64");
|
|
505
|
+
return {
|
|
506
|
+
id: response.headers.get("x-request-id") ?? crypto.randomUUID(),
|
|
507
|
+
model,
|
|
508
|
+
audio,
|
|
509
|
+
format
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
GroqAi = __legacyDecorateClassTS([
|
|
514
|
+
decorator.ai(),
|
|
515
|
+
__legacyDecorateParamTS(0, inject3(AppEnv3)),
|
|
516
|
+
__legacyMetadataTS("design:paramtypes", [
|
|
517
|
+
typeof AppEnv3 === "undefined" ? Object : AppEnv3
|
|
518
|
+
])
|
|
519
|
+
], GroqAi);
|
|
520
|
+
// src/OllamaAi.ts
|
|
521
|
+
import { AppEnv as AppEnv4 } from "@ooneex/app-env";
|
|
522
|
+
import { inject as inject4 } from "@ooneex/container";
|
|
523
|
+
import { createOllamaChat } from "@tanstack/ai-ollama";
|
|
524
|
+
class OllamaAi extends BaseAi {
|
|
525
|
+
env;
|
|
526
|
+
constructor(env) {
|
|
527
|
+
super();
|
|
528
|
+
this.env = env;
|
|
529
|
+
}
|
|
530
|
+
getHost(config) {
|
|
531
|
+
return config?.host || this.env.OLLAMA_HOST || "http://localhost:11434";
|
|
532
|
+
}
|
|
533
|
+
createChatAdapter(config) {
|
|
534
|
+
const host = this.getHost(config);
|
|
535
|
+
const model = config?.model ?? "llama3";
|
|
536
|
+
return createOllamaChat(model, host);
|
|
537
|
+
}
|
|
538
|
+
createRunAdapter(config) {
|
|
539
|
+
return this.createChatAdapter(config);
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
OllamaAi = __legacyDecorateClassTS([
|
|
543
|
+
decorator.ai(),
|
|
544
|
+
__legacyDecorateParamTS(0, inject4(AppEnv4)),
|
|
545
|
+
__legacyMetadataTS("design:paramtypes", [
|
|
546
|
+
typeof AppEnv4 === "undefined" ? Object : AppEnv4
|
|
547
|
+
])
|
|
548
|
+
], OllamaAi);
|
|
549
|
+
// src/OpenAi.ts
|
|
550
|
+
import { AppEnv as AppEnv5 } from "@ooneex/app-env";
|
|
551
|
+
import { inject as inject5 } from "@ooneex/container";
|
|
552
|
+
import { generateImage as generateImage2, generateSpeech as generateSpeech2, generateTranscription } from "@tanstack/ai";
|
|
553
|
+
import {
|
|
554
|
+
createOpenaiChat,
|
|
555
|
+
createOpenaiImage,
|
|
556
|
+
createOpenaiSpeech,
|
|
557
|
+
createOpenaiTranscription
|
|
558
|
+
} from "@tanstack/ai-openai";
|
|
559
|
+
class OpenAi extends BaseAi {
|
|
560
|
+
env;
|
|
561
|
+
constructor(env) {
|
|
562
|
+
super();
|
|
563
|
+
this.env = env;
|
|
564
|
+
}
|
|
565
|
+
getApiKey(config) {
|
|
566
|
+
const apiKey = config?.apiKey || this.env.OPENAI_API_KEY;
|
|
567
|
+
if (!apiKey) {
|
|
568
|
+
throw new AiException("OpenAI API key is required. Provide an API key through config options or set the OPENAI_API_KEY environment variable.");
|
|
569
|
+
}
|
|
570
|
+
return apiKey;
|
|
571
|
+
}
|
|
572
|
+
createChatAdapter(config) {
|
|
573
|
+
const apiKey = this.getApiKey(config);
|
|
574
|
+
const model = config?.model ?? "gpt-4o-mini";
|
|
575
|
+
return createOpenaiChat(model, apiKey);
|
|
576
|
+
}
|
|
577
|
+
createRunAdapter(config) {
|
|
578
|
+
const apiKey = this.getApiKey(config);
|
|
579
|
+
const model = config?.model ?? "gpt-4o";
|
|
580
|
+
return createOpenaiChat(model, apiKey);
|
|
581
|
+
}
|
|
582
|
+
async textToSpeech(text, options) {
|
|
583
|
+
const apiKey = this.getApiKey(options);
|
|
584
|
+
const model = options?.model ?? "tts-1";
|
|
585
|
+
const adapter = createOpenaiSpeech(model, apiKey);
|
|
586
|
+
const speechOptions = { adapter, text };
|
|
587
|
+
if (options?.voice) {
|
|
588
|
+
speechOptions.voice = options.voice;
|
|
589
|
+
}
|
|
590
|
+
if (options?.format) {
|
|
591
|
+
speechOptions.format = options.format;
|
|
592
|
+
}
|
|
593
|
+
if (options?.speed) {
|
|
594
|
+
speechOptions.speed = options.speed;
|
|
595
|
+
}
|
|
596
|
+
const instructionParts = [];
|
|
597
|
+
if (options?.language) {
|
|
598
|
+
instructionParts.push(`Speak in ${options.language}.`);
|
|
599
|
+
}
|
|
600
|
+
if (options?.instructions) {
|
|
601
|
+
instructionParts.push(options.instructions);
|
|
602
|
+
}
|
|
603
|
+
if (instructionParts.length > 0) {
|
|
604
|
+
speechOptions.modelOptions = { instructions: instructionParts.join(" ") };
|
|
605
|
+
}
|
|
606
|
+
return generateSpeech2(speechOptions);
|
|
607
|
+
}
|
|
608
|
+
async speechToText(audio, options) {
|
|
609
|
+
const apiKey = this.getApiKey(options);
|
|
610
|
+
const model = options?.model ?? "gpt-4o-transcribe";
|
|
611
|
+
const adapter = createOpenaiTranscription(model, apiKey);
|
|
612
|
+
const transcriptionOptions = { adapter, audio };
|
|
613
|
+
if (options?.language) {
|
|
614
|
+
transcriptionOptions.language = options.language;
|
|
615
|
+
}
|
|
616
|
+
if (options?.prompt) {
|
|
617
|
+
transcriptionOptions.prompt = options.prompt;
|
|
618
|
+
}
|
|
619
|
+
if (options?.responseFormat) {
|
|
620
|
+
transcriptionOptions.responseFormat = options.responseFormat;
|
|
621
|
+
}
|
|
622
|
+
if (options?.modelOptions) {
|
|
623
|
+
transcriptionOptions.modelOptions = options.modelOptions;
|
|
624
|
+
}
|
|
625
|
+
return generateTranscription(transcriptionOptions);
|
|
626
|
+
}
|
|
627
|
+
async generateImage(prompt, options) {
|
|
628
|
+
const apiKey = this.getApiKey(options);
|
|
629
|
+
const model = options?.model ?? "dall-e-3";
|
|
630
|
+
const adapter = createOpenaiImage(model, apiKey);
|
|
631
|
+
const imageOptions = { adapter, prompt };
|
|
632
|
+
if (options?.numberOfImages) {
|
|
633
|
+
imageOptions.numberOfImages = options.numberOfImages;
|
|
634
|
+
}
|
|
635
|
+
if (options?.size) {
|
|
636
|
+
imageOptions.size = options.size;
|
|
637
|
+
}
|
|
638
|
+
const modelOptions = {};
|
|
639
|
+
if (options?.quality) {
|
|
640
|
+
modelOptions.quality = options.quality;
|
|
641
|
+
}
|
|
642
|
+
if (options?.background) {
|
|
643
|
+
modelOptions.background = options.background;
|
|
644
|
+
}
|
|
645
|
+
if (options?.outputFormat) {
|
|
646
|
+
modelOptions.output_format = options.outputFormat;
|
|
647
|
+
}
|
|
648
|
+
if (options?.moderation) {
|
|
649
|
+
modelOptions.moderation = options.moderation;
|
|
650
|
+
}
|
|
651
|
+
if (options?.style) {
|
|
652
|
+
modelOptions.style = options.style;
|
|
653
|
+
}
|
|
654
|
+
if (Object.keys(modelOptions).length > 0) {
|
|
655
|
+
imageOptions.modelOptions = modelOptions;
|
|
656
|
+
}
|
|
657
|
+
return generateImage2(imageOptions);
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
OpenAi = __legacyDecorateClassTS([
|
|
661
|
+
decorator.ai(),
|
|
662
|
+
__legacyDecorateParamTS(0, inject5(AppEnv5)),
|
|
663
|
+
__legacyMetadataTS("design:paramtypes", [
|
|
664
|
+
typeof AppEnv5 === "undefined" ? Object : AppEnv5
|
|
665
|
+
])
|
|
666
|
+
], OpenAi);
|
|
667
|
+
export {
|
|
668
|
+
decorator,
|
|
669
|
+
OpenAi,
|
|
670
|
+
OllamaAi,
|
|
671
|
+
GroqAi,
|
|
672
|
+
GeminiAi,
|
|
673
|
+
BaseAi,
|
|
674
|
+
AnthropicAi,
|
|
675
|
+
AiException
|
|
676
|
+
};
|
|
19
677
|
|
|
20
|
-
//# debugId=
|
|
678
|
+
//# debugId=229E1B95C503141B64756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"import { AppEnv } from \"@ooneex/app-env\";\nimport { inject } from \"@ooneex/container\";\nimport { createOllamaChat } from \"@tanstack/ai-ollama\";\nimport { BaseAi } from \"./BaseAi\";\nimport { decorator } from \"./decorators\";\nimport type { OllamaConfigType, OllamaModelType } from \"./types\";\n\n@decorator.ai()\nexport class OllamaAi extends BaseAi<OllamaConfigType> {\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n super();\n }\n\n private getHost(config?: OllamaConfigType): string {\n return config?.host || this.env.OLLAMA_HOST || \"http://localhost:11434\";\n }\n\n protected createChatAdapter(config?: OllamaConfigType) {\n const host = this.getHost(config);\n const model: OllamaModelType = config?.model ?? \"llama3\";\n return createOllamaChat(model, host);\n }\n\n protected createRunAdapter(config?: OllamaConfigType) {\n return this.createChatAdapter(config);\n }\n}\n",
|
|
12
12
|
"import { AppEnv } from \"@ooneex/app-env\";\nimport { inject } from \"@ooneex/container\";\nimport type { ImageGenerationResult, TranscriptionResult, TTSResult } from \"@tanstack/ai\";\nimport { generateImage, generateSpeech, generateTranscription } from \"@tanstack/ai\";\nimport {\n createOpenaiChat,\n createOpenaiImage,\n createOpenaiSpeech,\n createOpenaiTranscription,\n} from \"@tanstack/ai-openai\";\nimport { AiException } from \"./AiException\";\nimport { BaseAi } from \"./BaseAi\";\nimport { decorator } from \"./decorators\";\nimport type {\n OpenAiConfigType,\n OpenAiGenerateImageOptionsType,\n OpenAiModelType,\n OpenAiSpeechToTextOptionsType,\n OpenAiTextToSpeechOptionsType,\n} from \"./types\";\n\n@decorator.ai()\nexport class OpenAi extends BaseAi<OpenAiConfigType> {\n constructor(@inject(AppEnv) private readonly env: AppEnv) {\n super();\n }\n\n private getApiKey(config?: { apiKey?: string }): string {\n const apiKey = config?.apiKey || this.env.OPENAI_API_KEY;\n\n if (!apiKey) {\n throw new AiException(\n \"OpenAI API key is required. Provide an API key through config options or set the OPENAI_API_KEY environment variable.\",\n );\n }\n\n return apiKey;\n }\n\n protected createChatAdapter(config?: OpenAiConfigType) {\n const apiKey = this.getApiKey(config);\n const model: OpenAiModelType = config?.model ?? \"gpt-4o-mini\";\n return createOpenaiChat(model, apiKey);\n }\n\n protected createRunAdapter(config?: OpenAiConfigType) {\n const apiKey = this.getApiKey(config);\n const model: OpenAiModelType = config?.model ?? \"gpt-4o\";\n return createOpenaiChat(model, apiKey);\n }\n\n public async textToSpeech(text: string, options?: OpenAiTextToSpeechOptionsType): Promise<TTSResult> {\n const apiKey = this.getApiKey(options);\n const model = options?.model ?? \"tts-1\";\n const adapter = createOpenaiSpeech(model, apiKey);\n\n // biome-ignore lint/suspicious/noExplicitAny: exactOptionalPropertyTypes requires careful handling\n const speechOptions: Record<string, any> = { adapter, text };\n\n if (options?.voice) {\n speechOptions.voice = options.voice;\n }\n if (options?.format) {\n speechOptions.format = options.format;\n }\n if (options?.speed) {\n speechOptions.speed = options.speed;\n }\n const instructionParts: string[] = [];\n if (options?.language) {\n instructionParts.push(`Speak in ${options.language}.`);\n }\n if (options?.instructions) {\n instructionParts.push(options.instructions);\n }\n if (instructionParts.length > 0) {\n speechOptions.modelOptions = { instructions: instructionParts.join(\" \") };\n }\n\n return generateSpeech(speechOptions as Parameters<typeof generateSpeech>[0]) as Promise<TTSResult>;\n }\n\n public async speechToText(\n audio: string | File | Blob | ArrayBuffer,\n options?: OpenAiSpeechToTextOptionsType,\n ): Promise<TranscriptionResult> {\n const apiKey = this.getApiKey(options);\n const model = options?.model ?? \"gpt-4o-transcribe\";\n const adapter = createOpenaiTranscription(model, apiKey);\n\n // biome-ignore lint/suspicious/noExplicitAny: exactOptionalPropertyTypes requires careful handling\n const transcriptionOptions: Record<string, any> = { adapter, audio };\n\n if (options?.language) {\n transcriptionOptions.language = options.language;\n }\n if (options?.prompt) {\n transcriptionOptions.prompt = options.prompt;\n }\n if (options?.responseFormat) {\n transcriptionOptions.responseFormat = options.responseFormat;\n }\n if (options?.modelOptions) {\n transcriptionOptions.modelOptions = options.modelOptions;\n }\n\n return generateTranscription(\n transcriptionOptions as Parameters<typeof generateTranscription>[0],\n ) as Promise<TranscriptionResult>;\n }\n\n public async generateImage(prompt: string, options?: OpenAiGenerateImageOptionsType): Promise<ImageGenerationResult> {\n const apiKey = this.getApiKey(options);\n const model = options?.model ?? \"dall-e-3\";\n const adapter = createOpenaiImage(model, apiKey);\n\n // biome-ignore lint/suspicious/noExplicitAny: exactOptionalPropertyTypes requires careful handling\n const imageOptions: Record<string, any> = { adapter, prompt };\n\n if (options?.numberOfImages) {\n imageOptions.numberOfImages = options.numberOfImages;\n }\n if (options?.size) {\n imageOptions.size = options.size;\n }\n\n const modelOptions: Record<string, unknown> = {};\n if (options?.quality) {\n modelOptions.quality = options.quality;\n }\n if (options?.background) {\n modelOptions.background = options.background;\n }\n if (options?.outputFormat) {\n modelOptions.output_format = options.outputFormat;\n }\n if (options?.moderation) {\n modelOptions.moderation = options.moderation;\n }\n if (options?.style) {\n modelOptions.style = options.style;\n }\n if (Object.keys(modelOptions).length > 0) {\n imageOptions.modelOptions = modelOptions;\n }\n\n return generateImage(imageOptions as Parameters<typeof generateImage>[0]) as Promise<ImageGenerationResult>;\n }\n}\n"
|
|
13
13
|
],
|
|
14
|
-
"mappings": "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",
|
|
15
|
-
"debugId": "
|
|
14
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AACA;AAAA;AAEO,MAAM,oBAAoB,UAAU;AAAA,EACzC,WAAW,CAAC,SAAiB,OAAgC,CAAC,GAAG;AAAA,IAC/D,MAAM,SAAS;AAAA,MACb,QAAQ,WAAW,KAAK;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,IACD,KAAK,OAAO;AAAA;AAEhB;;ACXA;AACA;AACA;;;ACFA;AACA;AACA;AAgBO,MAAe,OAAiE;AAAA,EAM3E,WAAW,CAAC,aAAqB,QAA0B;AAAA,IACnE,MAAM,QAAkB,CAAC,QAAQ,UAAU,WAAW;AAAA,IAEtD,IAAI,QAAQ,SAAS;AAAA,MACnB,MAAM,KAAK;AAAA,EAAa,OAAO,SAAS;AAAA,IAC1C;AAAA,IAEA,IAAI,QAAQ,WAAW;AAAA,MACrB,MAAM,KAAK,wBAAwB,OAAO,kBAAkB;AAAA,IAC9D;AAAA,IAEA,IAAI,QAAQ,MAAM;AAAA,MAChB,MAAM,KAAK,SAAS,OAAO,YAAY;AAAA,IACzC;AAAA,IAEA,IAAI,QAAQ,UAAU;AAAA,MACpB,MAAM,KAAK,cAAc,OAAO,oBAAoB;AAAA,IACtD;AAAA,IAEA,MAAM,KACJ,GAAG,QAAQ,UAAU,uDAAuD,iGAC9E;AAAA,IAEA,OAAO,MAAM,KAAK;AAAA,CAAI;AAAA;AAAA,EAGd,UAAU,CAAC,UAA2C;AAAA,IAC9D,OAAO,SAAS,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,MAAuC,SAAS,IAAI,QAAQ,EAAE;AAAA;AAAA,OAG1F,YAAW,CAAC,SAAiB,cAAsB,QAAmC;AAAA,IACpG,MAAM,UAAU,KAAK,kBAAkB,MAAM;AAAA,IAE7C,MAAM,eAA+B,QAAQ,WAAW,KAAK,WAAW,OAAO,QAAQ,IAAI,CAAC;AAAA,IAC5F,MAAM,cAA4B,EAAE,MAAM,QAAQ,SAAS,GAAG;AAAA;AAAA;AAAA,EAAqC,UAAU;AAAA,IAE7G,MAAM,WAAW,CAAC,GAAG,cAAc,WAAW;AAAA,IAC9C,MAAM,SAAS,MAAM,KAAK;AAAA,MACxB;AAAA,MACA;AAAA,MAGA,QAAQ;AAAA,IACV,CAAC;AAAA,IAED,OAAO,OAAO,KAAK;AAAA;AAAA,OAGR,YAAW,CAAC,SAAiB,QAAmD;AAAA,IAC3F,MAAM,SAAS,KAAK,YAClB,mIACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,WAAU,CAAC,SAAiB,QAAmD;AAAA,IAC1F,MAAM,SAAS,KAAK,YAClB,0IACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,UAAS,CAAC,SAAiB,QAAmD;AAAA,IACzF,MAAM,SAAS,KAAK,YAClB,mHACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,QAAO,CAAC,SAAiB,QAAmD;AAAA,IACvF,MAAM,SAAS,KAAK,YAClB,kGACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,UAAS,CAAC,SAAiB,QAAmD;AAAA,IACzF,MAAM,SAAS,KAAK,YAClB,mHACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,aAAY,CAAC,SAAiB,QAAmD;AAAA,IAC5F,MAAM,SAAS,KAAK,YAClB,8GACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,SAAQ,CAAC,SAAiB,QAAmD;AAAA,IACxF,MAAM,SAAS,KAAK,YAClB,oHACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,SAAQ,CAAC,SAAiB,QAAmD;AAAA,IACxF,MAAM,SAAS,KAAK,YAClB,0IACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,WAAU,CACrB,SACA,MACA,QACiB;AAAA,IACjB,MAAM,SAAS,KAAK,YAClB,mCAAmC,wCACnC,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,UAAS,CAAC,SAAiB,QAAmD;AAAA,IACzF,MAAM,SAAS,KAAK,YAClB,kIACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,UAAS,CAAC,SAAiB,QAAmD;AAAA,IACzF,MAAM,iBAAiB,QAAQ,YAAY;AAAA,IAC3C,MAAM,SAAS,KAAK,YAClB,gDAAgD,sEAChD,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,QAAO,CAAC,SAAiB,QAAmD;AAAA,IACvF,MAAM,SAAS,KAAK,YAClB,iHACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,YAAW,CAAC,SAAiB,QAAmD;AAAA,IAC3F,MAAM,SAAS,KAAK,YAClB,iIACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,WAAU,CAAC,SAAiB,QAAmD;AAAA,IAC1F,MAAM,SAAS,KAAK,YAClB,kIACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,cAAa,CAAC,SAAiB,QAAmD;AAAA,IAC7F,MAAM,SAAS,KAAK,YAClB,qHACA,MACF;AAAA,IACA,OAAO,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA;AAAA,OAG/C,gBAAe,CAAC,SAAiB,QAAqD;AAAA,IACjG,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,mBAAmB,QAAQ,mBAAmB,oBAAoB;AAAA,IACxE,MAAM,SAAS,KAAK,YAClB,yLAAyL,oBACzL,MACF;AAAA,IAEA,MAAM,SAAS,MAAM,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA,IAExE,MAAM,QAAQ,OACX,MAAM,GAAG,EACT,IAAI,CAAC,YAAY,QAAQ,KAAK,CAAC,EAC/B,OAAO,CAAC,YAAY,QAAQ,SAAS,CAAC;AAAA,IAEzC,OAAO,QAAQ,MAAM,MAAM,GAAG,KAAK,IAAI;AAAA;AAAA,OAG5B,kBAAiB,CAAC,SAAiB,QAAqD;AAAA,IACnG,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,mBAAmB,QAAQ,mBAAmB,sBAAsB;AAAA,IAC1E,MAAM,SAAS,KAAK,YAClB,qMAAqM,oBACrM,MACF;AAAA,IAEA,MAAM,SAAS,MAAM,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA,IAExE,MAAM,QAAQ,OACX,MAAM,GAAG,EACT,IAAI,CAAC,aAAa,SAAS,KAAK,CAAC,EACjC,OAAO,CAAC,aAAa,SAAS,SAAS,CAAC;AAAA,IAE3C,OAAO,QAAQ,MAAM,MAAM,GAAG,KAAK,IAAI;AAAA;AAAA,OAG5B,cAAa,CAAC,SAAiB,QAAqD;AAAA,IAC/F,MAAM,QAAQ,QAAQ;AAAA,IACtB,MAAM,mBAAmB,QAAQ,mBAAmB,kBAAkB;AAAA,IACtE,MAAM,SAAS,KAAK,YAClB,mKAAmK,oBACnK,MACF;AAAA,IAEA,MAAM,SAAS,MAAM,KAAK,YAAY,SAAS,QAAQ,MAAiB;AAAA,IAExE,MAAM,QAAQ,OACX,MAAM,GAAG,EACT,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,EAC3B,OAAO,CAAC,UAAU,MAAM,SAAS,CAAC;AAAA,IAErC,OAAO,QAAQ,MAAM,MAAM,GAAG,KAAK,IAAI;AAAA;AAAA,OAG5B,qBAAoB,CAC/B,SACA,SACA,QACyC;AAAA,IACzC,MAAM,gBAAgB,SAAS,iBAAiB;AAAA,IAChD,MAAM,cAAc,SAAS;AAAA,IAC7B,MAAM,aAAa,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,SAAS,cAAc,EAAE,CAAC;AAAA,IAEvE,MAAM,qBAAqB,cACvB;AAAA,MACE,mCAAmC;AAAA,MACnC;AAAA,MACA;AAAA,IACF,IACA,CAAC;AAAA,IAEL,MAAM,aAAa,cACf,uLACA;AAAA,IAEJ,MAAM,SAAS,KAAK,YAClB;AAAA,MACE;AAAA,MACA,qBAAqB;AAAA,MACrB,GAAI,SAAS,cACT;AAAA,QACE,mDAAmD,QAAQ;AAAA,MAC7D,IACA,CAAC;AAAA,MACL;AAAA,MACA,oBAAoB;AAAA,MACpB;AAAA,MACA,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF,EAAE,KAAK;AAAA,CAAI,GACX,MACF;AAAA,IAEA,MAAM,SAAS,MAAM,KAAK,YAAY,SAAS,QAAQ,MAAM;AAAA,IAE7D,MAAM,UAAU,OAAO,QAAQ,sBAAsB,EAAE,EAAE,KAAK;AAAA,IAC9D,MAAM,SAAS,KAAK,MAAM,OAAO;AAAA,IAEjC,OAAO;AAAA;AAAA,OAGI,kBAAiB,CAC5B,SACA,SACA,QACsC;AAAA,IACtC,MAAM,aAAa,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,SAAS,cAAc,EAAE,CAAC;AAAA,IAEvE,MAAM,SAAS,KAAK,YAClB;AAAA,MACE;AAAA,MACA,qBAAqB;AAAA,MACrB,GAAI,SAAS,mBACT;AAAA,QACE,wDAAwD,QAAQ;AAAA,MAClE,IACA,CAAC;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK;AAAA,CAAI,GACX,MACF;AAAA,IAEA,MAAM,SAAS,MAAM,KAAK,YAAY,SAAS,QAAQ,MAAM;AAAA,IAE7D,MAAM,UAAU,OAAO,QAAQ,sBAAsB,EAAE,EAAE,KAAK;AAAA,IAC9D,MAAM,SAAS,KAAK,MAAM,OAAO;AAAA,IAEjC,OAAO;AAAA;AAAA,OAGI,iBAAgB,CAC3B,SACA,SACA,QACqC;AAAA,IACrC,MAAM,cAAc,SAAS,eAAe;AAAA,IAC5C,MAAM,qBAAqB,SAAS,sBAAsB;AAAA,IAC1D,MAAM,aAAa,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,SAAS,cAAc,EAAE,CAAC;AAAA,IAEvE,MAAM,SAAS,KAAK,YAClB;AAAA,MACE;AAAA,MACA,qBAAqB;AAAA,MACrB,kCAAkC;AAAA,MAClC,WAAW;AAAA,MACX,GAAI,SAAS,kBACT;AAAA,QACE,uDAAuD,QAAQ;AAAA,MACjE,IACA,CAAC;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK;AAAA,CAAI,GACX,MACF;AAAA,IAEA,MAAM,SAAS,MAAM,KAAK,YAAY,SAAS,QAAQ,MAAM;AAAA,IAE7D,MAAM,UAAU,OAAO,QAAQ,sBAAsB,EAAE,EAAE,KAAK;AAAA,IAC9D,MAAM,SAAS,KAAK,MAAM,OAAO;AAAA,IAEjC,OAAO;AAAA;AAAA,OAGI,gBAAe,CAAC,QAA2B,QAAmD;AAAA,IACzG,MAAM,UAAU,KAAK,kBAAkB,MAAiB;AAAA,IAExD,MAAM,eAAe,KAAK,YACxB,oNACA,MACF;AAAA,IAEA,MAAM,eAA+B,QAAQ,WAAW,KAAK,WAAW,OAAO,QAAQ,IAAI,CAAC;AAAA,IAC5F,MAAM,cAA4B;AAAA,MAChC,MAAM;AAAA,MACN,SAAS;AAAA,QACP,EAAE,MAAM,QAAQ,SAAS,aAAa;AAAA,QACtC,EAAE,MAAM,SAAS,OAAoC;AAAA,MACvD;AAAA,IACF;AAAA,IAEA,MAAM,WAAW,CAAC,GAAG,cAAc,WAAW;AAAA,IAC9C,MAAM,SAAS,MAAM,KAAK;AAAA,MACxB;AAAA,MACA;AAAA,MAGA,QAAQ;AAAA,IACV,CAAC;AAAA,IAED,OAAO,OAAO,KAAK;AAAA;AAAA,OAGR,IAAM,CAAC,QAAgB,QAA8C;AAAA,IAChF,MAAM,UAAU,KAAK,iBAAiB,MAAiB;AAAA,IAEvD,IAAI,gBACF;AAAA,IAEF,IAAI,QAAQ,QAAQ;AAAA,MAClB,MAAM,SAAS,OAAO,OAAO,aAAa;AAAA,MAC1C,MAAM,aAAa,uBAAuB,MAAM;AAAA,MAChD,iBAAiB;AAAA;AAAA,eAAoB;AAAA,IACvC;AAAA,IAEA,MAAM,eAAe,KAAK,YAAY,eAAe,MAAiB;AAAA,IAEtE,MAAM,eAAe,QAAQ,WAAW,KAAK,WAAW,OAAO,QAAQ,IAAI,CAAC;AAAA,IAC5E,MAAM,cAA4B,EAAE,MAAM,QAAQ,SAAS,GAAG;AAAA;AAAA;AAAA,EAA6B,SAAS;AAAA,IAEpG,MAAM,WAAW,CAAC,GAAG,cAAc,WAAW;AAAA,IAC9C,MAAM,SAAS,MAAM,KAAK;AAAA,MACxB;AAAA,MACA;AAAA,MAGA,QAAQ;AAAA,IACV,CAAC;AAAA,IAED,MAAM,UAAU,OAAO,KAAK;AAAA,IAE5B,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,MAAM,UAAU,QAAQ,QAAQ,sBAAsB,EAAE,EAAE,KAAK;AAAA,MAC/D,SAAS,KAAK,MAAM,OAAO;AAAA,MAC3B,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAGX,IAAI,QAAQ,QAAQ;AAAA,MAClB,MAAM,aAAa,OAAO,OAAO,MAAM;AAAA,MACvC,IAAI,sBAAsB,KAAK,QAAQ;AAAA,QACrC,MAAM,IAAI,YAAY,6BAA6B,WAAW,SAAS;AAAA,MACzE;AAAA,IACF;AAAA,IAEA,OAAO;AAAA;AAAA,SAGK,SAAS,CACrB,QACA,QACuC;AAAA,IACvC,MAAM,UAAU,KAAK,iBAAiB,MAAiB;AAAA,IAEvD,MAAM,gBAAgB;AAAA,IACtB,MAAM,eAAe,KAAK,YAAY,eAAe,MAAiB;AAAA,IAEtE,MAAM,eAA+B,QAAQ,WAAW,KAAK,WAAW,OAAO,QAAQ,IAAI,CAAC;AAAA,IAC5F,MAAM,cAA4B,EAAE,MAAM,QAAQ,SAAS,GAAG;AAAA;AAAA;AAAA,EAA6B,SAAS;AAAA,IAEpG,MAAM,WAAW,CAAC,GAAG,cAAc,WAAW;AAAA,IAC9C,MAAM,SAAS,KAAK;AAAA,MAClB;AAAA,MACA;AAAA,MAGA,QAAQ;AAAA,IACV,CAAC;AAAA,IAED,iBAAiB,SAAS,QAAQ;AAAA,MAChC,IAAI,MAAM,SAAS,WAAW;AAAA,QAC5B,MAAM,MAAM;AAAA,MACd;AAAA,IACF;AAAA;AAEJ;;;ACrdA;AAGO,IAAM,YAAY;AAAA,EACvB,IAAI,CAAC,QAAyB,gBAAgB,cAAc;AAAA,IAC1D,OAAO,CAAC,WAA8B;AAAA,MACpC,UAAU,IAAI,QAAQ,KAAK;AAAA;AAAA;AAGjC;;;AFAO,MAAM,oBAAoB,OAA4B;AAAA,EACd;AAAA,EAA7C,WAAW,CAAkC,KAAa;AAAA,IACxD,MAAM;AAAA,IADqC;AAAA;AAAA,EAIrC,SAAS,CAAC,QAAsC;AAAA,IACtD,MAAM,SAAS,QAAQ,UAAU,KAAK,IAAI;AAAA,IAE1C,IAAI,CAAC,QAAQ;AAAA,MACX,MAAM,IAAI,YACR,6HACF;AAAA,IACF;AAAA,IAEA,OAAO;AAAA;AAAA,EAGC,iBAAiB,CAAC,QAA8B;AAAA,IACxD,MAAM,SAAS,KAAK,UAAU,MAAM;AAAA,IACpC,MAAM,QAAS,QAAQ,SAAS;AAAA,IAChC,OAAO,oBAAoB,OAAO,MAAM;AAAA;AAAA,EAGhC,gBAAgB,CAAC,QAA8B;AAAA,IACvD,OAAO,KAAK,kBAAkB,MAAM;AAAA;AAExC;AA1Ba,cAAN;AAAA,EADN,UAAU,GAAG;AAAA,EAEC,kCAAO,MAAM;AAAA,EADrB;AAAA;AAAA;AAAA,GAAM;;AGTb,mBAAS;AACT,mBAAS;AAET;AACA;AAYO,MAAM,iBAAiB,OAAyB;AAAA,EACR;AAAA,EAA7C,WAAW,CAAkC,KAAa;AAAA,IACxD,MAAM;AAAA,IADqC;AAAA;AAAA,EAIrC,SAAS,CAAC,QAAsC;AAAA,IACtD,MAAM,SAAS,QAAQ,UAAU,KAAK,IAAI;AAAA,IAE1C,IAAI,CAAC,QAAQ;AAAA,MACX,MAAM,IAAI,YACR,uHACF;AAAA,IACF;AAAA,IAEA,OAAO;AAAA;AAAA,EAGC,iBAAiB,CAAC,QAA2B;AAAA,IACrD,MAAM,SAAS,KAAK,UAAU,MAAM;AAAA,IACpC,MAAM,QAAyB,QAAQ,SAAS;AAAA,IAChD,OAAO,iBAAiB,OAAO,MAAM;AAAA;AAAA,EAG7B,gBAAgB,CAAC,QAA2B;AAAA,IACpD,MAAM,SAAS,KAAK,UAAU,MAAM;AAAA,IACpC,MAAM,QAAyB,QAAQ,SAAS;AAAA,IAChD,OAAO,iBAAiB,OAAO,MAAM;AAAA;AAAA,OAG1B,aAAY,CAAC,MAAc,SAA6D;AAAA,IACnG,MAAM,SAAS,KAAK,UAAU,OAAO;AAAA,IACrC,MAAM,QAAQ,SAAS,SAAS;AAAA,IAChC,MAAM,UAAU,mBAAmB,OAAO,MAAM;AAAA,IAEhD,MAAM,eAAwC,CAAC;AAAA,IAE/C,IAAI,SAAS,OAAO;AAAA,MAClB,aAAa,cAAc;AAAA,QACzB,qBAAqB;AAAA,UACnB,WAAW,QAAQ;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AAAA,IAEA,IAAI,SAAS,cAAc;AAAA,MACzB,aAAa,oBAAoB,QAAQ;AAAA,IAC3C;AAAA,IAEA,IAAI,SAAS,UAAU;AAAA,MACrB,aAAa,eAAe,QAAQ;AAAA,IACtC;AAAA,IAGA,MAAM,gBAAqC,EAAE,SAAS,KAAK;AAAA,IAE3D,IAAI,SAAS,QAAQ;AAAA,MACnB,cAAc,SAAS,QAAQ;AAAA,IACjC;AAAA,IAEA,IAAI,SAAS,OAAO;AAAA,MAClB,cAAc,QAAQ,QAAQ;AAAA,IAChC;AAAA,IAEA,IAAI,OAAO,KAAK,YAAY,EAAE,SAAS,GAAG;AAAA,MACxC,cAAc,eAAe;AAAA,IAC/B;AAAA,IAEA,OAAO,eAAe,aAAqD;AAAA;AAAA,OAGhE,cAAa,CAAC,QAAgB,SAA0E;AAAA,IACnH,MAAM,SAAS,KAAK,UAAU,OAAO;AAAA,IACrC,MAAM,QAAQ,SAAS,SAAS;AAAA,IAChC,MAAM,UAAU,kBAAkB,OAAO,MAAM;AAAA,IAG/C,MAAM,eAAoC,EAAE,SAAS,OAAO;AAAA,IAE5D,IAAI,SAAS,gBAAgB;AAAA,MAC3B,aAAa,iBAAiB,QAAQ;AAAA,IACxC;AAAA,IACA,IAAI,SAAS,MAAM;AAAA,MACjB,aAAa,OAAO,QAAQ;AAAA,IAC9B;AAAA,IAEA,MAAM,eAAwC,CAAC;AAAA,IAC/C,IAAI,SAAS,aAAa;AAAA,MACxB,aAAa,cAAc,QAAQ;AAAA,IACrC;AAAA,IACA,IAAI,SAAS,kBAAkB;AAAA,MAC7B,aAAa,mBAAmB,QAAQ;AAAA,IAC1C;AAAA,IACA,IAAI,SAAS,gBAAgB;AAAA,MAC3B,aAAa,iBAAiB,QAAQ;AAAA,IACxC;AAAA,IACA,IAAI,SAAS,iBAAiB,WAAW;AAAA,MACvC,aAAa,eAAe,QAAQ;AAAA,IACtC;AAAA,IACA,IAAI,SAAS,gBAAgB;AAAA,MAC3B,aAAa,iBAAiB,QAAQ;AAAA,IACxC;AAAA,IACA,IAAI,OAAO,KAAK,YAAY,EAAE,SAAS,GAAG;AAAA,MACxC,aAAa,eAAe;AAAA,IAC9B;AAAA,IAEA,OAAO,cAAc,YAAmD;AAAA;AAE5E;AA3Ga,WAAN;AAAA,EADN,UAAU,GAAG;AAAA,EAEC,mCAAO,OAAM;AAAA,EADrB;AAAA;AAAA;AAAA,GAAM;;AChBb,mBAAS;AACT,mBAAS;AAET;AAOO,MAAM,eAAe,OAAuB;AAAA,EACJ;AAAA,EAA7C,WAAW,CAAkC,KAAa;AAAA,IACxD,MAAM;AAAA,IADqC;AAAA;AAAA,EAIrC,SAAS,CAAC,QAAsC;AAAA,IACtD,MAAM,SAAS,QAAQ,UAAU,KAAK,IAAI;AAAA,IAE1C,IAAI,CAAC,QAAQ;AAAA,MACX,MAAM,IAAI,YACR,mHACF;AAAA,IACF;AAAA,IAEA,OAAO;AAAA;AAAA,EAGC,iBAAiB,CAAC,QAAyB;AAAA,IACnD,MAAM,SAAS,KAAK,UAAU,MAAM;AAAA,IACpC,MAAM,QAAS,QAAQ,SAAS;AAAA,IAChC,OAAO,eAAe,OAAO,MAAM;AAAA;AAAA,EAG3B,gBAAgB,CAAC,QAAyB;AAAA,IAClD,OAAO,KAAK,kBAAkB,MAAM;AAAA;AAAA,OAGzB,aAAY,CAAC,MAAc,SAA2D;AAAA,IACjG,MAAM,SAAS,KAAK,UAAU,OAAO;AAAA,IACrC,MAAM,QAAQ,SAAS,SAAS;AAAA,IAChC,MAAM,QAAQ,SAAS,SAAS;AAAA,IAChC,MAAM,SAAS,SAAS,UAAU;AAAA,IAGlC,MAAM,OAA4B;AAAA,MAChC;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA,iBAAiB;AAAA,IACnB;AAAA,IAEA,IAAI,SAAS,YAAY;AAAA,MACvB,KAAK,cAAc,QAAQ;AAAA,IAC7B;AAAA,IAEA,MAAM,WAAW,MAAM,MAAM,+CAA+C;AAAA,MAC1E,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,eAAe,UAAU;AAAA,QACzB,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM,KAAK,UAAU,IAAI;AAAA,IAC3B,CAAC;AAAA,IAED,IAAI,CAAC,SAAS,IAAI;AAAA,MAChB,MAAM,QAAQ,MAAM,SAAS,KAAK;AAAA,MAClC,MAAM,IAAI,YAAY,4BAA4B,SAAS,YAAY,OAAO;AAAA,IAChF;AAAA,IAEA,MAAM,cAAc,MAAM,SAAS,YAAY;AAAA,IAC/C,MAAM,QAAQ,OAAO,KAAK,WAAW,EAAE,SAAS,QAAQ;AAAA,IAExD,OAAO;AAAA,MACL,IAAI,SAAS,QAAQ,IAAI,cAAc,KAAK,OAAO,WAAW;AAAA,MAC9D;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA;AAEJ;AArEa,SAAN;AAAA,EADN,UAAU,GAAG;AAAA,EAEC,mCAAO,OAAM;AAAA,EADrB;AAAA;AAAA;AAAA,GAAM;;ACVb,mBAAS;AACT,mBAAS;AACT;AAMO,MAAM,iBAAiB,OAAyB;AAAA,EACR;AAAA,EAA7C,WAAW,CAAkC,KAAa;AAAA,IACxD,MAAM;AAAA,IADqC;AAAA;AAAA,EAIrC,OAAO,CAAC,QAAmC;AAAA,IACjD,OAAO,QAAQ,QAAQ,KAAK,IAAI,eAAe;AAAA;AAAA,EAGvC,iBAAiB,CAAC,QAA2B;AAAA,IACrD,MAAM,OAAO,KAAK,QAAQ,MAAM;AAAA,IAChC,MAAM,QAAyB,QAAQ,SAAS;AAAA,IAChD,OAAO,iBAAiB,OAAO,IAAI;AAAA;AAAA,EAG3B,gBAAgB,CAAC,QAA2B;AAAA,IACpD,OAAO,KAAK,kBAAkB,MAAM;AAAA;AAExC;AAlBa,WAAN;AAAA,EADN,UAAU,GAAG;AAAA,EAEC,mCAAO,OAAM;AAAA,EADrB;AAAA;AAAA;AAAA,GAAM;;ACRb,mBAAS;AACT,mBAAS;AAET,0BAAS,kCAAe;AACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBO,MAAM,eAAe,OAAyB;AAAA,EACN;AAAA,EAA7C,WAAW,CAAkC,KAAa;AAAA,IACxD,MAAM;AAAA,IADqC;AAAA;AAAA,EAIrC,SAAS,CAAC,QAAsC;AAAA,IACtD,MAAM,SAAS,QAAQ,UAAU,KAAK,IAAI;AAAA,IAE1C,IAAI,CAAC,QAAQ;AAAA,MACX,MAAM,IAAI,YACR,uHACF;AAAA,IACF;AAAA,IAEA,OAAO;AAAA;AAAA,EAGC,iBAAiB,CAAC,QAA2B;AAAA,IACrD,MAAM,SAAS,KAAK,UAAU,MAAM;AAAA,IACpC,MAAM,QAAyB,QAAQ,SAAS;AAAA,IAChD,OAAO,iBAAiB,OAAO,MAAM;AAAA;AAAA,EAG7B,gBAAgB,CAAC,QAA2B;AAAA,IACpD,MAAM,SAAS,KAAK,UAAU,MAAM;AAAA,IACpC,MAAM,QAAyB,QAAQ,SAAS;AAAA,IAChD,OAAO,iBAAiB,OAAO,MAAM;AAAA;AAAA,OAG1B,aAAY,CAAC,MAAc,SAA6D;AAAA,IACnG,MAAM,SAAS,KAAK,UAAU,OAAO;AAAA,IACrC,MAAM,QAAQ,SAAS,SAAS;AAAA,IAChC,MAAM,UAAU,mBAAmB,OAAO,MAAM;AAAA,IAGhD,MAAM,gBAAqC,EAAE,SAAS,KAAK;AAAA,IAE3D,IAAI,SAAS,OAAO;AAAA,MAClB,cAAc,QAAQ,QAAQ;AAAA,IAChC;AAAA,IACA,IAAI,SAAS,QAAQ;AAAA,MACnB,cAAc,SAAS,QAAQ;AAAA,IACjC;AAAA,IACA,IAAI,SAAS,OAAO;AAAA,MAClB,cAAc,QAAQ,QAAQ;AAAA,IAChC;AAAA,IACA,MAAM,mBAA6B,CAAC;AAAA,IACpC,IAAI,SAAS,UAAU;AAAA,MACrB,iBAAiB,KAAK,YAAY,QAAQ,WAAW;AAAA,IACvD;AAAA,IACA,IAAI,SAAS,cAAc;AAAA,MACzB,iBAAiB,KAAK,QAAQ,YAAY;AAAA,IAC5C;AAAA,IACA,IAAI,iBAAiB,SAAS,GAAG;AAAA,MAC/B,cAAc,eAAe,EAAE,cAAc,iBAAiB,KAAK,GAAG,EAAE;AAAA,IAC1E;AAAA,IAEA,OAAO,gBAAe,aAAqD;AAAA;AAAA,OAGhE,aAAY,CACvB,OACA,SAC8B;AAAA,IAC9B,MAAM,SAAS,KAAK,UAAU,OAAO;AAAA,IACrC,MAAM,QAAQ,SAAS,SAAS;AAAA,IAChC,MAAM,UAAU,0BAA0B,OAAO,MAAM;AAAA,IAGvD,MAAM,uBAA4C,EAAE,SAAS,MAAM;AAAA,IAEnE,IAAI,SAAS,UAAU;AAAA,MACrB,qBAAqB,WAAW,QAAQ;AAAA,IAC1C;AAAA,IACA,IAAI,SAAS,QAAQ;AAAA,MACnB,qBAAqB,SAAS,QAAQ;AAAA,IACxC;AAAA,IACA,IAAI,SAAS,gBAAgB;AAAA,MAC3B,qBAAqB,iBAAiB,QAAQ;AAAA,IAChD;AAAA,IACA,IAAI,SAAS,cAAc;AAAA,MACzB,qBAAqB,eAAe,QAAQ;AAAA,IAC9C;AAAA,IAEA,OAAO,sBACL,oBACF;AAAA;AAAA,OAGW,cAAa,CAAC,QAAgB,SAA0E;AAAA,IACnH,MAAM,SAAS,KAAK,UAAU,OAAO;AAAA,IACrC,MAAM,QAAQ,SAAS,SAAS;AAAA,IAChC,MAAM,UAAU,kBAAkB,OAAO,MAAM;AAAA,IAG/C,MAAM,eAAoC,EAAE,SAAS,OAAO;AAAA,IAE5D,IAAI,SAAS,gBAAgB;AAAA,MAC3B,aAAa,iBAAiB,QAAQ;AAAA,IACxC;AAAA,IACA,IAAI,SAAS,MAAM;AAAA,MACjB,aAAa,OAAO,QAAQ;AAAA,IAC9B;AAAA,IAEA,MAAM,eAAwC,CAAC;AAAA,IAC/C,IAAI,SAAS,SAAS;AAAA,MACpB,aAAa,UAAU,QAAQ;AAAA,IACjC;AAAA,IACA,IAAI,SAAS,YAAY;AAAA,MACvB,aAAa,aAAa,QAAQ;AAAA,IACpC;AAAA,IACA,IAAI,SAAS,cAAc;AAAA,MACzB,aAAa,gBAAgB,QAAQ;AAAA,IACvC;AAAA,IACA,IAAI,SAAS,YAAY;AAAA,MACvB,aAAa,aAAa,QAAQ;AAAA,IACpC;AAAA,IACA,IAAI,SAAS,OAAO;AAAA,MAClB,aAAa,QAAQ,QAAQ;AAAA,IAC/B;AAAA,IACA,IAAI,OAAO,KAAK,YAAY,EAAE,SAAS,GAAG;AAAA,MACxC,aAAa,eAAe;AAAA,IAC9B;AAAA,IAEA,OAAO,eAAc,YAAmD;AAAA;AAE5E;AA9Ha,SAAN;AAAA,EADN,UAAU,GAAG;AAAA,EAEC,mCAAO,OAAM;AAAA,EADrB;AAAA;AAAA;AAAA,GAAM;",
|
|
15
|
+
"debugId": "229E1B95C503141B64756E2164756E21",
|
|
16
16
|
"names": []
|
|
17
17
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ooneex/ai",
|
|
3
3
|
"description": "Multi-provider AI toolkit for TypeScript — seamlessly integrate OpenAI, Anthropic Claude, Google Gemini, Groq, and Ollama with a unified API for text generation, streaming, and content transformation",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.6",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|