@byline/ai 1.9.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/README.md +4 -0
- package/dist/@types.d.ts +103 -0
- package/dist/@types.d.ts.map +1 -0
- package/dist/@types.js +68 -0
- package/dist/@types.js.map +1 -0
- package/dist/config/ai-config.d.ts +76 -0
- package/dist/config/ai-config.d.ts.map +1 -0
- package/dist/config/ai-config.js +108 -0
- package/dist/config/ai-config.js.map +1 -0
- package/dist/config/ai-config.test.node.d.ts +9 -0
- package/dist/config/ai-config.test.node.d.ts.map +1 -0
- package/dist/config/ai-config.test.node.js +31 -0
- package/dist/config/ai-config.test.node.js.map +1 -0
- package/dist/config/ai-provider.d.ts +17 -0
- package/dist/config/ai-provider.d.ts.map +1 -0
- package/dist/config/ai-provider.js +32 -0
- package/dist/config/ai-provider.js.map +1 -0
- package/dist/execute.d.ts +15 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +473 -0
- package/dist/execute.js.map +1 -0
- package/dist/generate.d.ts +64 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +235 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/lexical-text-edits.d.ts +23 -0
- package/dist/lexical-text-edits.d.ts.map +1 -0
- package/dist/lexical-text-edits.js +62 -0
- package/dist/lexical-text-edits.js.map +1 -0
- package/dist/lib/logger.d.ts +10 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +16 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/models/anthropic/anthropic-models.d.ts +14 -0
- package/dist/models/anthropic/anthropic-models.d.ts.map +1 -0
- package/dist/models/anthropic/anthropic-models.js +41 -0
- package/dist/models/anthropic/anthropic-models.js.map +1 -0
- package/dist/models/anthropic/anthropic.d.ts +9 -0
- package/dist/models/anthropic/anthropic.d.ts.map +1 -0
- package/dist/models/anthropic/anthropic.js +20 -0
- package/dist/models/anthropic/anthropic.js.map +1 -0
- package/dist/models/anthropic/generate-native.d.ts +59 -0
- package/dist/models/anthropic/generate-native.d.ts.map +1 -0
- package/dist/models/anthropic/generate-native.js +271 -0
- package/dist/models/anthropic/generate-native.js.map +1 -0
- package/dist/models/anthropic/generate-vercel.d.ts +59 -0
- package/dist/models/anthropic/generate-vercel.d.ts.map +1 -0
- package/dist/models/anthropic/generate-vercel.js +126 -0
- package/dist/models/anthropic/generate-vercel.js.map +1 -0
- package/dist/models/anthropic/generate.d.ts +16 -0
- package/dist/models/anthropic/generate.d.ts.map +1 -0
- package/dist/models/anthropic/generate.js +28 -0
- package/dist/models/anthropic/generate.js.map +1 -0
- package/dist/models/anthropic/generate.test.node.d.ts +9 -0
- package/dist/models/anthropic/generate.test.node.d.ts.map +1 -0
- package/dist/models/anthropic/generate.test.node.js +106 -0
- package/dist/models/anthropic/generate.test.node.js.map +1 -0
- package/dist/models/anthropic/patch-native.d.ts +33 -0
- package/dist/models/anthropic/patch-native.d.ts.map +1 -0
- package/dist/models/anthropic/patch-native.js +152 -0
- package/dist/models/anthropic/patch-native.js.map +1 -0
- package/dist/models/anthropic/patch-vercel.d.ts +33 -0
- package/dist/models/anthropic/patch-vercel.d.ts.map +1 -0
- package/dist/models/anthropic/patch-vercel.js +47 -0
- package/dist/models/anthropic/patch-vercel.js.map +1 -0
- package/dist/models/anthropic/patch.d.ts +12 -0
- package/dist/models/anthropic/patch.d.ts.map +1 -0
- package/dist/models/anthropic/patch.js +16 -0
- package/dist/models/anthropic/patch.js.map +1 -0
- package/dist/models/anthropic/patch.test.node.d.ts +9 -0
- package/dist/models/anthropic/patch.test.node.d.ts.map +1 -0
- package/dist/models/anthropic/patch.test.node.js +110 -0
- package/dist/models/anthropic/patch.test.node.js.map +1 -0
- package/dist/models/anthropic/schema.d.ts +212 -0
- package/dist/models/anthropic/schema.d.ts.map +1 -0
- package/dist/models/anthropic/schema.js +131 -0
- package/dist/models/anthropic/schema.js.map +1 -0
- package/dist/models/google/generate-native.d.ts +59 -0
- package/dist/models/google/generate-native.d.ts.map +1 -0
- package/dist/models/google/generate-native.js +244 -0
- package/dist/models/google/generate-native.js.map +1 -0
- package/dist/models/google/generate-vercel.d.ts +59 -0
- package/dist/models/google/generate-vercel.d.ts.map +1 -0
- package/dist/models/google/generate-vercel.js +133 -0
- package/dist/models/google/generate-vercel.js.map +1 -0
- package/dist/models/google/generate.d.ts +16 -0
- package/dist/models/google/generate.d.ts.map +1 -0
- package/dist/models/google/generate.js +28 -0
- package/dist/models/google/generate.js.map +1 -0
- package/dist/models/google/generate.test.node.d.ts +9 -0
- package/dist/models/google/generate.test.node.d.ts.map +1 -0
- package/dist/models/google/generate.test.node.js +106 -0
- package/dist/models/google/generate.test.node.js.map +1 -0
- package/dist/models/google/google-models.d.ts +14 -0
- package/dist/models/google/google-models.d.ts.map +1 -0
- package/dist/models/google/google-models.js +25 -0
- package/dist/models/google/google-models.js.map +1 -0
- package/dist/models/google/normalize-generated-doc.d.ts +10 -0
- package/dist/models/google/normalize-generated-doc.d.ts.map +1 -0
- package/dist/models/google/normalize-generated-doc.js +48 -0
- package/dist/models/google/normalize-generated-doc.js.map +1 -0
- package/dist/models/google/patch-native.d.ts +33 -0
- package/dist/models/google/patch-native.d.ts.map +1 -0
- package/dist/models/google/patch-native.js +164 -0
- package/dist/models/google/patch-native.js.map +1 -0
- package/dist/models/google/patch-vercel.d.ts +33 -0
- package/dist/models/google/patch-vercel.d.ts.map +1 -0
- package/dist/models/google/patch-vercel.js +49 -0
- package/dist/models/google/patch-vercel.js.map +1 -0
- package/dist/models/google/patch.d.ts +12 -0
- package/dist/models/google/patch.d.ts.map +1 -0
- package/dist/models/google/patch.js +16 -0
- package/dist/models/google/patch.js.map +1 -0
- package/dist/models/google/patch.test.node.d.ts +9 -0
- package/dist/models/google/patch.test.node.d.ts.map +1 -0
- package/dist/models/google/patch.test.node.js +110 -0
- package/dist/models/google/patch.test.node.js.map +1 -0
- package/dist/models/google/schema.d.ts +416 -0
- package/dist/models/google/schema.d.ts.map +1 -0
- package/dist/models/google/schema.js +254 -0
- package/dist/models/google/schema.js.map +1 -0
- package/dist/models/openai/generate-native.d.ts +65 -0
- package/dist/models/openai/generate-native.d.ts.map +1 -0
- package/dist/models/openai/generate-native.js +276 -0
- package/dist/models/openai/generate-native.js.map +1 -0
- package/dist/models/openai/generate-vercel.d.ts +59 -0
- package/dist/models/openai/generate-vercel.d.ts.map +1 -0
- package/dist/models/openai/generate-vercel.js +132 -0
- package/dist/models/openai/generate-vercel.js.map +1 -0
- package/dist/models/openai/generate.d.ts +16 -0
- package/dist/models/openai/generate.d.ts.map +1 -0
- package/dist/models/openai/generate.js +28 -0
- package/dist/models/openai/generate.js.map +1 -0
- package/dist/models/openai/generate.test.node.d.ts +9 -0
- package/dist/models/openai/generate.test.node.d.ts.map +1 -0
- package/dist/models/openai/generate.test.node.js +106 -0
- package/dist/models/openai/generate.test.node.js.map +1 -0
- package/dist/models/openai/openai-models.d.ts +14 -0
- package/dist/models/openai/openai-models.d.ts.map +1 -0
- package/dist/models/openai/openai-models.js +23 -0
- package/dist/models/openai/openai-models.js.map +1 -0
- package/dist/models/openai/patch-native.d.ts +33 -0
- package/dist/models/openai/patch-native.d.ts.map +1 -0
- package/dist/models/openai/patch-native.js +151 -0
- package/dist/models/openai/patch-native.js.map +1 -0
- package/dist/models/openai/patch-vercel.d.ts +33 -0
- package/dist/models/openai/patch-vercel.d.ts.map +1 -0
- package/dist/models/openai/patch-vercel.js +49 -0
- package/dist/models/openai/patch-vercel.js.map +1 -0
- package/dist/models/openai/patch.d.ts +12 -0
- package/dist/models/openai/patch.d.ts.map +1 -0
- package/dist/models/openai/patch.js +16 -0
- package/dist/models/openai/patch.js.map +1 -0
- package/dist/models/openai/patch.test.node.d.ts +9 -0
- package/dist/models/openai/patch.test.node.d.ts.map +1 -0
- package/dist/models/openai/patch.test.node.js +110 -0
- package/dist/models/openai/patch.test.node.js.map +1 -0
- package/dist/models/openai/schema.d.ts +460 -0
- package/dist/models/openai/schema.d.ts.map +1 -0
- package/dist/models/openai/schema.js +327 -0
- package/dist/models/openai/schema.js.map +1 -0
- package/dist/patch.d.ts +45 -0
- package/dist/patch.d.ts.map +1 -0
- package/dist/patch.js +138 -0
- package/dist/patch.js.map +1 -0
- package/dist/plugins/ai-plugin-base.d.ts +40 -0
- package/dist/plugins/ai-plugin-base.d.ts.map +1 -0
- package/dist/plugins/ai-plugin-base.js +218 -0
- package/dist/plugins/ai-plugin-base.js.map +1 -0
- package/dist/plugins/ai-plugin.css +181 -0
- package/dist/plugins/lexical/create-empty-editor-state.d.ts +32 -0
- package/dist/plugins/lexical/create-empty-editor-state.d.ts.map +1 -0
- package/dist/plugins/lexical/create-empty-editor-state.js +51 -0
- package/dist/plugins/lexical/create-empty-editor-state.js.map +1 -0
- package/dist/plugins/lexical/import-html.d.ts +10 -0
- package/dist/plugins/lexical/import-html.d.ts.map +1 -0
- package/dist/plugins/lexical/import-html.js +31 -0
- package/dist/plugins/lexical/import-html.js.map +1 -0
- package/dist/plugins/lexical/index.d.ts +9 -0
- package/dist/plugins/lexical/index.d.ts.map +1 -0
- package/dist/plugins/lexical/index.js +9 -0
- package/dist/plugins/lexical/index.js.map +1 -0
- package/dist/plugins/lexical/plugin.d.ts +11 -0
- package/dist/plugins/lexical/plugin.d.ts.map +1 -0
- package/dist/plugins/lexical/plugin.js +305 -0
- package/dist/plugins/lexical/plugin.js.map +1 -0
- package/dist/plugins/storage.d.ts +18 -0
- package/dist/plugins/storage.d.ts.map +1 -0
- package/dist/plugins/storage.js +57 -0
- package/dist/plugins/storage.js.map +1 -0
- package/dist/plugins/streaming-preview.d.ts +12 -0
- package/dist/plugins/streaming-preview.d.ts.map +1 -0
- package/dist/plugins/streaming-preview.js +24 -0
- package/dist/plugins/streaming-preview.js.map +1 -0
- package/dist/plugins/text/index.d.ts +9 -0
- package/dist/plugins/text/index.d.ts.map +1 -0
- package/dist/plugins/text/index.js +9 -0
- package/dist/plugins/text/index.js.map +1 -0
- package/dist/plugins/text/plugin.d.ts +18 -0
- package/dist/plugins/text/plugin.d.ts.map +1 -0
- package/dist/plugins/text/plugin.js +261 -0
- package/dist/plugins/text/plugin.js.map +1 -0
- package/dist/prompts.d.ts +30 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +83 -0
- package/dist/prompts.js.map +1 -0
- package/dist/schemas/lexical-json-schema.d.ts +68 -0
- package/dist/schemas/lexical-json-schema.d.ts.map +1 -0
- package/dist/schemas/lexical-json-schema.js +434 -0
- package/dist/schemas/lexical-json-schema.js.map +1 -0
- package/dist/scripts/list-models.d.ts +9 -0
- package/dist/scripts/list-models.d.ts.map +1 -0
- package/dist/scripts/list-models.js +55 -0
- package/dist/scripts/list-models.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +22 -0
- package/dist/server.js.map +1 -0
- package/dist/utils/convert-to-lexical.d.ts +62 -0
- package/dist/utils/convert-to-lexical.d.ts.map +1 -0
- package/dist/utils/convert-to-lexical.js +210 -0
- package/dist/utils/convert-to-lexical.js.map +1 -0
- package/dist/utils/create-empty-editor-state.d.ts +32 -0
- package/dist/utils/create-empty-editor-state.d.ts.map +1 -0
- package/dist/utils/create-empty-editor-state.js +51 -0
- package/dist/utils/create-empty-editor-state.js.map +1 -0
- package/dist/utils/has-text.d.ts +10 -0
- package/dist/utils/has-text.d.ts.map +1 -0
- package/dist/utils/has-text.js +35 -0
- package/dist/utils/has-text.js.map +1 -0
- package/dist/utils/has-text.test.d.ts +9 -0
- package/dist/utils/has-text.test.d.ts.map +1 -0
- package/dist/utils/has-text.test.js +69 -0
- package/dist/utils/has-text.test.js.map +1 -0
- package/dist/utils/is-object-schema.d.ts +17 -0
- package/dist/utils/is-object-schema.d.ts.map +1 -0
- package/dist/utils/is-object-schema.js +19 -0
- package/dist/utils/is-object-schema.js.map +1 -0
- package/dist/utils/lexical-text-edits.d.ts +23 -0
- package/dist/utils/lexical-text-edits.d.ts.map +1 -0
- package/dist/utils/lexical-text-edits.js +62 -0
- package/dist/utils/lexical-text-edits.js.map +1 -0
- package/package.json +111 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { GoogleGenAI } from '@google/genai';
|
|
9
|
+
import { buildPatchSystemPrompt } from '../../prompts';
|
|
10
|
+
const buildPatchUserPrompt = (instruction, textNodes) => {
|
|
11
|
+
return [
|
|
12
|
+
`INSTRUCTION: ${instruction}`,
|
|
13
|
+
'',
|
|
14
|
+
'INPUT_TEXT_NODES_JSON:',
|
|
15
|
+
JSON.stringify(textNodes),
|
|
16
|
+
].join('\n');
|
|
17
|
+
};
|
|
18
|
+
const tryParseJson = (text) => {
|
|
19
|
+
const trimmed = text.trim();
|
|
20
|
+
if (trimmed.length === 0)
|
|
21
|
+
return undefined;
|
|
22
|
+
const fenced = trimmed.match(/^```(?:json)?\s*([\s\S]*?)\s*```$/i);
|
|
23
|
+
const candidate = fenced?.[1]?.trim() ?? trimmed;
|
|
24
|
+
return JSON.parse(candidate);
|
|
25
|
+
};
|
|
26
|
+
const normalizeJsonSchemaForGemini = (schema) => {
|
|
27
|
+
if (schema == null)
|
|
28
|
+
return schema;
|
|
29
|
+
if (Array.isArray(schema))
|
|
30
|
+
return schema.map(normalizeJsonSchemaForGemini);
|
|
31
|
+
if (typeof schema !== 'object')
|
|
32
|
+
return schema;
|
|
33
|
+
const obj = schema;
|
|
34
|
+
const next = {};
|
|
35
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
36
|
+
if (key === 'const') {
|
|
37
|
+
next.enum = [value];
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (key === 'type' && Array.isArray(value)) {
|
|
41
|
+
next.anyOf = value.map((t) => ({ type: t }));
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
next[key] = normalizeJsonSchemaForGemini(value);
|
|
45
|
+
}
|
|
46
|
+
return next;
|
|
47
|
+
};
|
|
48
|
+
const normalizePatchResponse = (value) => {
|
|
49
|
+
const maybeObj = value;
|
|
50
|
+
// Allow the model to return the edits array directly.
|
|
51
|
+
const editsCandidate = Array.isArray(maybeObj)
|
|
52
|
+
? maybeObj
|
|
53
|
+
: Array.isArray(maybeObj?.edits)
|
|
54
|
+
? maybeObj.edits
|
|
55
|
+
: Array.isArray(maybeObj?.output)
|
|
56
|
+
? maybeObj.output
|
|
57
|
+
: undefined;
|
|
58
|
+
if (!Array.isArray(editsCandidate)) {
|
|
59
|
+
throw new Error('Google patch response is missing an edits array.');
|
|
60
|
+
}
|
|
61
|
+
const edits = editsCandidate
|
|
62
|
+
.map((e) => {
|
|
63
|
+
const idRaw = e?.id;
|
|
64
|
+
const textRaw = e?.text;
|
|
65
|
+
const id = typeof idRaw === 'number' ? idRaw : typeof idRaw === 'string' ? Number(idRaw) : NaN;
|
|
66
|
+
const text = typeof textRaw === 'string' ? textRaw : textRaw == null ? '' : String(textRaw);
|
|
67
|
+
if (!Number.isFinite(id))
|
|
68
|
+
return undefined;
|
|
69
|
+
return { id, text };
|
|
70
|
+
})
|
|
71
|
+
.filter(Boolean);
|
|
72
|
+
return { edits };
|
|
73
|
+
};
|
|
74
|
+
const googlePatchSchema = {
|
|
75
|
+
type: 'object',
|
|
76
|
+
additionalProperties: false,
|
|
77
|
+
properties: {
|
|
78
|
+
edits: {
|
|
79
|
+
type: 'array',
|
|
80
|
+
items: {
|
|
81
|
+
type: 'object',
|
|
82
|
+
additionalProperties: false,
|
|
83
|
+
properties: {
|
|
84
|
+
id: { type: 'number' },
|
|
85
|
+
text: { type: 'string' },
|
|
86
|
+
},
|
|
87
|
+
required: ['id', 'text'],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
required: ['edits'],
|
|
92
|
+
};
|
|
93
|
+
export async function patchDoc(options) {
|
|
94
|
+
const ai = new GoogleGenAI({ apiKey: options.apiKey });
|
|
95
|
+
const normalizedResponseJsonSchema = normalizeJsonSchemaForGemini(googlePatchSchema);
|
|
96
|
+
const response = await ai.models.generateContent({
|
|
97
|
+
model: options.model,
|
|
98
|
+
contents: buildPatchUserPrompt(options.prompt, options.textNodes),
|
|
99
|
+
config: {
|
|
100
|
+
systemInstruction: buildPatchSystemPrompt(),
|
|
101
|
+
responseMimeType: 'application/json',
|
|
102
|
+
responseJsonSchema: normalizedResponseJsonSchema,
|
|
103
|
+
abortSignal: options.signal,
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
const text = response.text?.trim() ?? '';
|
|
107
|
+
if (text.length === 0) {
|
|
108
|
+
throw new Error('Google model returned an empty response.');
|
|
109
|
+
}
|
|
110
|
+
const parsed = tryParseJson(text);
|
|
111
|
+
if (parsed && typeof parsed === 'object') {
|
|
112
|
+
return normalizePatchResponse(parsed);
|
|
113
|
+
}
|
|
114
|
+
throw new Error('Google structured output did not return a JSON object.');
|
|
115
|
+
}
|
|
116
|
+
export function patchDocStreaming(options) {
|
|
117
|
+
const ai = new GoogleGenAI({ apiKey: options.apiKey });
|
|
118
|
+
const normalizedResponseJsonSchema = normalizeJsonSchemaForGemini(googlePatchSchema);
|
|
119
|
+
const streamPromise = ai.models.generateContentStream({
|
|
120
|
+
model: options.model,
|
|
121
|
+
contents: buildPatchUserPrompt(options.prompt, options.textNodes),
|
|
122
|
+
config: {
|
|
123
|
+
systemInstruction: buildPatchSystemPrompt(),
|
|
124
|
+
responseMimeType: 'application/json',
|
|
125
|
+
responseJsonSchema: normalizedResponseJsonSchema,
|
|
126
|
+
abortSignal: options.signal,
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
let resolveFinal;
|
|
130
|
+
let rejectFinal;
|
|
131
|
+
const final = new Promise((resolve, reject) => {
|
|
132
|
+
resolveFinal = resolve;
|
|
133
|
+
rejectFinal = reject;
|
|
134
|
+
});
|
|
135
|
+
const text = (async function* () {
|
|
136
|
+
let buffered = '';
|
|
137
|
+
try {
|
|
138
|
+
const stream = await streamPromise;
|
|
139
|
+
for await (const chunk of stream) {
|
|
140
|
+
const chunkText = typeof chunk?.text === 'function' ? chunk.text() : chunk?.text;
|
|
141
|
+
if (typeof chunkText === 'string' && chunkText.length > 0) {
|
|
142
|
+
buffered += chunkText;
|
|
143
|
+
yield chunkText;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const trimmed = buffered.trim();
|
|
147
|
+
if (trimmed.length === 0) {
|
|
148
|
+
throw new Error('Google model returned an empty response.');
|
|
149
|
+
}
|
|
150
|
+
const parsed = tryParseJson(trimmed);
|
|
151
|
+
if (parsed && typeof parsed === 'object') {
|
|
152
|
+
resolveFinal(normalizePatchResponse(parsed));
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
throw new Error('Google structured output did not return a JSON object.');
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
rejectFinal(error);
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
})();
|
|
162
|
+
return { text, final };
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=patch-native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-native.js","sourceRoot":"","sources":["../../../src/models/google/patch-native.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAGlD,MAAM,oBAAoB,GAAG,CAC3B,WAAmB,EACnB,SAA8C,EAC9C,EAAE;IACF,OAAO;QACL,gBAAgB,WAAW,EAAE;QAC7B,EAAE;QACF,wBAAwB;QACxB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAE1C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;IAClE,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,CAAA;IAEhD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,4BAA4B,GAAG,CAAC,MAAe,EAAW,EAAE;IAChE,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IAC1E,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IAE7C,MAAM,GAAG,GAAG,MAA6B,CAAA;IACzC,MAAM,IAAI,GAAwB,EAAE,CAAA;IAEpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QAED,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5C,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,KAAc,EAA4B,EAAE;IAC1E,MAAM,QAAQ,GAAG,KAAY,CAAA;IAE7B,sDAAsD;IACtD,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5C,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YAC9B,CAAC,CAAC,QAAQ,CAAC,KAAK;YAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAC/B,CAAC,CAAC,QAAQ,CAAC,MAAM;gBACjB,CAAC,CAAC,SAAS,CAAA;IAEjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IACrE,CAAC;IAED,MAAM,KAAK,GAAG,cAAc;SACzB,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,CAAA;QACnB,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,CAAA;QAEvB,MAAM,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QAC9F,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAE3F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,SAAS,CAAA;QAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAwC,CAAA;IAEzD,OAAO,EAAE,KAAK,EAAE,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,KAAK;IAC3B,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBACzB;gBACD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;aACzB;SACF;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACX,CAAA;AAEV,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAM9B;IACC,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAEtD,MAAM,4BAA4B,GAAG,4BAA4B,CAAC,iBAAiB,CAAC,CAAA;IAEpF,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;QAC/C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;QACjE,MAAM,EAAE;YACN,iBAAiB,EAAE,sBAAsB,EAAE;YAC3C,gBAAgB,EAAE,kBAAkB;YACpC,kBAAkB,EAAE,4BAA4B;YAChD,WAAW,EAAE,OAAO,CAAC,MAAM;SAC5B;KACF,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACxC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;AAC3E,CAAC;AAOD,MAAM,UAAU,iBAAiB,CAAC,OAMjC;IACC,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAEtD,MAAM,4BAA4B,GAAG,4BAA4B,CAAC,iBAAiB,CAAC,CAAA;IAEpF,MAAM,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC;QACpD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;QACjE,MAAM,EAAE;YACN,iBAAiB,EAAE,sBAAsB,EAAE;YAC3C,gBAAgB,EAAE,kBAAkB;YACpC,kBAAkB,EAAE,4BAA4B;YAChD,WAAW,EAAE,OAAO,CAAC,MAAM;SAC5B;KACF,CAAC,CAAA;IAEF,IAAI,YAAwD,CAAA;IAC5D,IAAI,WAAwC,CAAA;IAC5C,MAAM,KAAK,GAAG,IAAI,OAAO,CAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtE,YAAY,GAAG,OAAO,CAAA;QACtB,WAAW,GAAG,MAAM,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,CAAC,KAAK,SAAS,CAAC;QAC3B,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAA;YAClC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,MAAM,SAAS,GACb,OAAQ,KAAa,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAE,KAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAE,KAAa,EAAE,IAAI,CAAA;gBAC3F,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1D,QAAQ,IAAI,SAAS,CAAA;oBACrB,MAAM,SAAS,CAAA;gBACjB,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;YAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;YAC7D,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YACpC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzC,YAAY,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA;gBAC5C,OAAM;YACR,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAA;YAClB,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;AACxB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { type LexicalTextEditsResponse } from '../../utils/lexical-text-edits';
|
|
9
|
+
export declare function patchDoc(options: {
|
|
10
|
+
apiKey: string;
|
|
11
|
+
model: string;
|
|
12
|
+
prompt: string;
|
|
13
|
+
textNodes: Array<{
|
|
14
|
+
id: number;
|
|
15
|
+
text: string;
|
|
16
|
+
}>;
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}): Promise<LexicalTextEditsResponse>;
|
|
19
|
+
export type PatchDocStreamingResult = {
|
|
20
|
+
text: AsyncIterable<string>;
|
|
21
|
+
final: Promise<LexicalTextEditsResponse>;
|
|
22
|
+
};
|
|
23
|
+
export declare function patchDocStreaming(options: {
|
|
24
|
+
apiKey: string;
|
|
25
|
+
model: string;
|
|
26
|
+
prompt: string;
|
|
27
|
+
textNodes: Array<{
|
|
28
|
+
id: number;
|
|
29
|
+
text: string;
|
|
30
|
+
}>;
|
|
31
|
+
signal?: AbortSignal;
|
|
32
|
+
}): PatchDocStreamingResult;
|
|
33
|
+
//# sourceMappingURL=patch-vercel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-vercel.d.ts","sourceRoot":"","sources":["../../../src/models/google/patch-vercel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,4BAA4B,CAAA;AAcnC,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAcpC;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAA;CACzC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,uBAAuB,CAiB1B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { createGoogleGenerativeAI } from '@ai-sdk/google';
|
|
9
|
+
import { generateText, Output, streamText } from 'ai';
|
|
10
|
+
import { buildPatchSystemPrompt } from '../../prompts';
|
|
11
|
+
import { lexicalTextEditsResponseSchema, } from '../../utils/lexical-text-edits';
|
|
12
|
+
const buildPatchUserPrompt = (instruction, textNodes) => {
|
|
13
|
+
return [
|
|
14
|
+
`INSTRUCTION: ${instruction}`,
|
|
15
|
+
'',
|
|
16
|
+
'INPUT_TEXT_NODES_JSON:',
|
|
17
|
+
JSON.stringify(textNodes),
|
|
18
|
+
].join('\n');
|
|
19
|
+
};
|
|
20
|
+
export async function patchDoc(options) {
|
|
21
|
+
const google = createGoogleGenerativeAI({ apiKey: options.apiKey });
|
|
22
|
+
const result = await generateText({
|
|
23
|
+
model: google(options.model),
|
|
24
|
+
system: buildPatchSystemPrompt(),
|
|
25
|
+
prompt: buildPatchUserPrompt(options.prompt, options.textNodes),
|
|
26
|
+
abortSignal: options.signal,
|
|
27
|
+
output: Output.object({
|
|
28
|
+
schema: lexicalTextEditsResponseSchema,
|
|
29
|
+
}),
|
|
30
|
+
});
|
|
31
|
+
return result.output;
|
|
32
|
+
}
|
|
33
|
+
export function patchDocStreaming(options) {
|
|
34
|
+
const google = createGoogleGenerativeAI({ apiKey: options.apiKey });
|
|
35
|
+
const result = streamText({
|
|
36
|
+
model: google(options.model),
|
|
37
|
+
system: buildPatchSystemPrompt(),
|
|
38
|
+
prompt: buildPatchUserPrompt(options.prompt, options.textNodes),
|
|
39
|
+
abortSignal: options.signal,
|
|
40
|
+
output: Output.object({
|
|
41
|
+
schema: lexicalTextEditsResponseSchema,
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
text: result.textStream,
|
|
46
|
+
final: result.output,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=patch-vercel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-vercel.js","sourceRoot":"","sources":["../../../src/models/google/patch-vercel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAEL,8BAA8B,GAC/B,MAAM,4BAA4B,CAAA;AAEnC,MAAM,oBAAoB,GAAG,CAC3B,WAAmB,EACnB,SAA8C,EAC9C,EAAE;IACF,OAAO;QACL,gBAAgB,WAAW,EAAE;QAC7B,EAAE;QACF,wBAAwB;QACxB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;KAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAM9B;IACC,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,EAAE,sBAAsB,EAAE;QAChC,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;QAC/D,WAAW,EAAE,OAAO,CAAC,MAAM;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,8BAA8B;SACvC,CAAC;KACH,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,MAAkC,CAAA;AAClD,CAAC;AAOD,MAAM,UAAU,iBAAiB,CAAC,OAMjC;IACC,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAEnE,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,EAAE,sBAAsB,EAAE;QAChC,MAAM,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;QAC/D,WAAW,EAAE,OAAO,CAAC,MAAM;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,8BAA8B;SACvC,CAAC;KACH,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,UAAU;QACvB,KAAK,EAAE,MAAM,CAAC,MAA2C;KAC1D,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { patchDoc as patchVercelDoc, patchDocStreaming as patchVercelDocStreaming } from './patch-vercel';
|
|
9
|
+
import type { Sdk } from '../../@types';
|
|
10
|
+
export declare const getPatchDoc: (sdk: Sdk) => typeof patchVercelDoc;
|
|
11
|
+
export declare const getPatchDocStreaming: (sdk: Sdk) => typeof patchVercelDocStreaming;
|
|
12
|
+
//# sourceMappingURL=patch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/models/google/patch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,iBAAiB,IAAI,uBAAuB,EAC7C,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,eAAO,MAAM,WAAW,GAAI,KAAK,GAAG,0BAEnC,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,KAAK,GAAG,mCAE5C,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { patchDoc as patchNativeDoc, patchDocStreaming as patchNativeDocStreaming, } from './patch-native';
|
|
9
|
+
import { patchDoc as patchVercelDoc, patchDocStreaming as patchVercelDocStreaming, } from './patch-vercel';
|
|
10
|
+
export const getPatchDoc = (sdk) => {
|
|
11
|
+
return sdk === 'vercel' ? patchVercelDoc : patchNativeDoc;
|
|
12
|
+
};
|
|
13
|
+
export const getPatchDocStreaming = (sdk) => {
|
|
14
|
+
return sdk === 'vercel' ? patchVercelDocStreaming : patchNativeDocStreaming;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=patch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/models/google/patch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,iBAAiB,IAAI,uBAAuB,GAC7C,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,QAAQ,IAAI,cAAc,EAC1B,iBAAiB,IAAI,uBAAuB,GAC7C,MAAM,gBAAgB,CAAA;AAGvB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAE,EAAE;IACtC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAA;AAC3D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC/C,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAA;AAC7E,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=patch.test.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.test.node.d.ts","sourceRoot":"","sources":["../../../src/models/google/patch.test.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
9
|
+
import { getAiServerConfig as getServerConfig } from '../../config/ai-config';
|
|
10
|
+
import { patchDoc as patchDocNative, patchDocStreaming as patchDocStreamingNative, } from './patch-native';
|
|
11
|
+
import { patchDocStreaming as patchDocStreamingVercel, patchDoc as patchDocVercel, } from './patch-vercel';
|
|
12
|
+
const MODEL = 'gemini-2.5-flash';
|
|
13
|
+
describe('google patch', () => {
|
|
14
|
+
beforeEach(async () => { });
|
|
15
|
+
const runReal = process.env.AI_RUN_REAL_TESTS === 'true';
|
|
16
|
+
if (runReal) {
|
|
17
|
+
/***
|
|
18
|
+
* Generates a document from Google using structured outputs.
|
|
19
|
+
*/
|
|
20
|
+
it.skip('makes a real Google request (manual run) from native provider', async () => {
|
|
21
|
+
const config = getServerConfig();
|
|
22
|
+
if (!config.ai.google.apiKey) {
|
|
23
|
+
throw new Error('GOOGLE_API_KEY is required for real Google tests.');
|
|
24
|
+
}
|
|
25
|
+
const result = await patchDocNative({
|
|
26
|
+
apiKey: config.ai.google.apiKey,
|
|
27
|
+
model: MODEL,
|
|
28
|
+
prompt: 'Translate into French.',
|
|
29
|
+
textNodes: [{ id: 0, text: 'The sun is shining' }],
|
|
30
|
+
});
|
|
31
|
+
console.log(result);
|
|
32
|
+
expect(result).toBeTruthy();
|
|
33
|
+
expect(typeof result).toBe('object');
|
|
34
|
+
}, 30000);
|
|
35
|
+
/***
|
|
36
|
+
* Generates a document from Google using structured outputs via streaming.
|
|
37
|
+
*/
|
|
38
|
+
it.skip('streams a real Google response (manual run) from native provider', async () => {
|
|
39
|
+
const config = getServerConfig();
|
|
40
|
+
if (!config.ai.google.apiKey) {
|
|
41
|
+
throw new Error('GOOGLE_API_KEY is required for real Google tests.');
|
|
42
|
+
}
|
|
43
|
+
const streamResult = patchDocStreamingNative({
|
|
44
|
+
apiKey: config.ai.google.apiKey,
|
|
45
|
+
model: MODEL,
|
|
46
|
+
prompt: 'Translate into French.',
|
|
47
|
+
textNodes: [{ id: 0, text: 'The sun is shining' }],
|
|
48
|
+
});
|
|
49
|
+
let streamedText = '';
|
|
50
|
+
for await (const chunk of streamResult.text) {
|
|
51
|
+
streamedText += chunk;
|
|
52
|
+
console.log('STREAM CHUNK (Google Native):', chunk);
|
|
53
|
+
}
|
|
54
|
+
const final = await streamResult.final;
|
|
55
|
+
console.log('FINAL RESULT (Google Native):', final);
|
|
56
|
+
expect(streamedText.length).toBeGreaterThanOrEqual(0);
|
|
57
|
+
expect(final).toBeTruthy();
|
|
58
|
+
expect(typeof final).toBe('object');
|
|
59
|
+
}, 30000);
|
|
60
|
+
/***
|
|
61
|
+
* Generates a document from Google using structured outputs.
|
|
62
|
+
*/
|
|
63
|
+
it.skip('makes a real Google request (manual run) from vercel provider', async () => {
|
|
64
|
+
const config = getServerConfig();
|
|
65
|
+
if (!config.ai.google.apiKey) {
|
|
66
|
+
throw new Error('GOOGLE_API_KEY is required for real Google tests.');
|
|
67
|
+
}
|
|
68
|
+
const result = await patchDocVercel({
|
|
69
|
+
apiKey: config.ai.google.apiKey,
|
|
70
|
+
model: MODEL,
|
|
71
|
+
prompt: 'Translate into French.',
|
|
72
|
+
textNodes: [{ id: 0, text: 'The sun is shining' }],
|
|
73
|
+
});
|
|
74
|
+
console.log(result);
|
|
75
|
+
expect(result).toBeTruthy();
|
|
76
|
+
expect(typeof result).toBe('object');
|
|
77
|
+
}, 30000);
|
|
78
|
+
/***
|
|
79
|
+
* Generates a document from Google using structured outputs via streaming.
|
|
80
|
+
*/
|
|
81
|
+
it.skip('streams a real Google response (manual run) from vercel provider', async () => {
|
|
82
|
+
const config = getServerConfig();
|
|
83
|
+
if (!config.ai.google.apiKey) {
|
|
84
|
+
throw new Error('GOOGLE_API_KEY is required for real Google tests.');
|
|
85
|
+
}
|
|
86
|
+
const streamResult = patchDocStreamingVercel({
|
|
87
|
+
apiKey: config.ai.google.apiKey,
|
|
88
|
+
model: MODEL,
|
|
89
|
+
prompt: 'Translate into French.',
|
|
90
|
+
textNodes: [{ id: 0, text: 'The sun is shining' }],
|
|
91
|
+
});
|
|
92
|
+
let streamedText = '';
|
|
93
|
+
for await (const chunk of streamResult.text) {
|
|
94
|
+
streamedText += chunk;
|
|
95
|
+
console.log('STREAM CHUNK (Google Vercel):', chunk);
|
|
96
|
+
}
|
|
97
|
+
const final = await streamResult.final;
|
|
98
|
+
console.log('FINAL RESULT (Google Vercel):', final);
|
|
99
|
+
expect(streamedText.length).toBeGreaterThanOrEqual(0);
|
|
100
|
+
expect(final).toBeTruthy();
|
|
101
|
+
expect(typeof final).toBe('object');
|
|
102
|
+
}, 30000);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
it.skip('skips real Google tests', () => {
|
|
106
|
+
console.log('Set AI_RUN_REAL_TESTS=true to run real Google tests.');
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=patch.test.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.test.node.js","sourceRoot":"","sources":["../../../src/models/google/patch.test.node.ts"],"names":[],"mappings":"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"}
|