@gringow/gringow 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +279 -43
- package/dist/config.d.mts +7 -8
- package/dist/config.mjs +32 -20
- package/dist/config.test.mjs +39 -25
- package/dist/constants/default-config.mjs +4 -3
- package/dist/data/check-cache.mjs +33 -63
- package/dist/data/clear-cache.mjs +32 -20
- package/dist/data/create-cache-dir.mjs +32 -20
- package/dist/data/delete-cache-item.mjs +32 -20
- package/dist/data/get-cache.mjs +32 -20
- package/dist/data/get-or-create-cache.mjs +32 -20
- package/dist/data/save-cache.mjs +32 -20
- package/dist/data/write-cache-to-disk.mjs +32 -20
- package/dist/gringow.mjs +84 -491
- package/dist/index.mjs +84 -491
- package/dist/io/ask-llm.d.mts +3 -1
- package/dist/io/ask-llm.mjs +77 -449
- package/dist/schemas/config.shcema.d.mts +40 -47
- package/dist/schemas/config.shcema.mjs +26 -15
- package/dist/types/index.d.mts +3 -25
- package/gringow.config.js.example +2 -4
- package/gringow.config.json.example +4 -2
- package/package.json +2 -5
- package/dist/io/anthropic/ask.d.mts +0 -11
- package/dist/io/anthropic/ask.mjs +0 -190
- package/dist/io/anthropic/commit-response.d.mts +0 -21
- package/dist/io/anthropic/commit-response.mjs +0 -10
- package/dist/io/anthropic/index.d.mts +0 -14
- package/dist/io/anthropic/index.mjs +0 -208
- package/dist/io/anthropic/parse.d.mts +0 -20
- package/dist/io/anthropic/parse.mjs +0 -10
- package/dist/io/gemini/ask.d.mts +0 -11
- package/dist/io/gemini/ask.mjs +0 -232
- package/dist/io/gemini/commit-response.d.mts +0 -11
- package/dist/io/gemini/commit-response.mjs +0 -7
- package/dist/io/gemini/index.d.mts +0 -14
- package/dist/io/gemini/index.mjs +0 -248
- package/dist/io/gemini/parse.d.mts +0 -20
- package/dist/io/gemini/parse.mjs +0 -11
- package/dist/io/huggingface/ask.d.mts +0 -13
- package/dist/io/huggingface/ask.mjs +0 -405
- package/dist/io/huggingface/commit-response.d.mts +0 -39
- package/dist/io/huggingface/commit-response.mjs +0 -14
- package/dist/io/huggingface/index.d.mts +0 -13
- package/dist/io/huggingface/index.mjs +0 -426
- package/dist/io/huggingface/languages-map.d.mts +0 -191
- package/dist/io/huggingface/languages-map.mjs +0 -187
- package/dist/io/huggingface/parse.d.mts +0 -20
- package/dist/io/huggingface/parse.mjs +0 -9
package/dist/data/save-cache.mjs
CHANGED
|
@@ -19,19 +19,34 @@ var defaultConfig = {
|
|
|
19
19
|
prefix: "grw",
|
|
20
20
|
write: true
|
|
21
21
|
},
|
|
22
|
-
keys: {},
|
|
23
22
|
sourceLanguage: "en-US",
|
|
23
|
+
defaultLanguage: "pt-BR",
|
|
24
24
|
languages: ["pt-BR", "fr-CA"],
|
|
25
25
|
llm: {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
provider: "openai",
|
|
27
|
+
apiKey: void 0,
|
|
28
|
+
model: "gpt-4o-mini",
|
|
28
29
|
temperature: 1,
|
|
29
30
|
sleep: 0
|
|
30
31
|
},
|
|
31
32
|
globby: "./src/**/*.{js,jsx,ts,tsx}"
|
|
32
33
|
};
|
|
33
34
|
var languageSchema = z.string().regex(/^[a-z]{2,3}(-[A-Z]{2})?$/);
|
|
34
|
-
var
|
|
35
|
+
var llmProviderSchema = z.enum([
|
|
36
|
+
"anthropic",
|
|
37
|
+
"gemini",
|
|
38
|
+
"openai",
|
|
39
|
+
"groq",
|
|
40
|
+
"mistral",
|
|
41
|
+
"ollama",
|
|
42
|
+
"xai",
|
|
43
|
+
"deepseek",
|
|
44
|
+
"openrouter",
|
|
45
|
+
"cerebras",
|
|
46
|
+
"lmstudio",
|
|
47
|
+
"azure",
|
|
48
|
+
"meta"
|
|
49
|
+
]);
|
|
35
50
|
var configSchema = z.object({
|
|
36
51
|
debug: z.boolean().optional(),
|
|
37
52
|
log: z.object({
|
|
@@ -43,14 +58,13 @@ var configSchema = z.object({
|
|
|
43
58
|
prefix: z.string(),
|
|
44
59
|
write: z.boolean().optional()
|
|
45
60
|
}),
|
|
46
|
-
keys: z.object({
|
|
47
|
-
anthropicApiKey: z.string().optional(),
|
|
48
|
-
geminiApiKey: z.string().optional()
|
|
49
|
-
}),
|
|
50
61
|
sourceLanguage: languageSchema,
|
|
62
|
+
defaultLanguage: languageSchema,
|
|
51
63
|
languages: z.array(languageSchema),
|
|
52
64
|
llm: z.object({
|
|
53
|
-
|
|
65
|
+
provider: llmProviderSchema,
|
|
66
|
+
apiKey: z.string().optional(),
|
|
67
|
+
baseURL: z.string().optional(),
|
|
54
68
|
model: z.string().nullable(),
|
|
55
69
|
temperature: z.number().optional(),
|
|
56
70
|
sleep: z.number().optional(),
|
|
@@ -64,17 +78,15 @@ var configSchema = z.object({
|
|
|
64
78
|
globby: z.string().regex(/^\.\/.*/).optional()
|
|
65
79
|
}).refine(
|
|
66
80
|
(data) => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (data.llm.choice === "anthropic" && !data.keys.anthropicApiKey) {
|
|
71
|
-
return false;
|
|
81
|
+
const noApiKeyRequired = ["ollama", "lmstudio"];
|
|
82
|
+
if (noApiKeyRequired.includes(data.llm.provider)) {
|
|
83
|
+
return true;
|
|
72
84
|
}
|
|
73
|
-
return
|
|
85
|
+
return !!data.llm.apiKey;
|
|
74
86
|
},
|
|
75
87
|
{
|
|
76
|
-
message: "The API key
|
|
77
|
-
path: ["
|
|
88
|
+
message: "The API key must be present in llm.apiKey for the chosen provider.",
|
|
89
|
+
path: ["llm", "apiKey"]
|
|
78
90
|
}
|
|
79
91
|
);
|
|
80
92
|
|
|
@@ -110,7 +122,7 @@ Your task is to translate a given text and output **only one valid JSON object**
|
|
|
110
122
|
|
|
111
123
|
Follow these rules strictly:
|
|
112
124
|
|
|
113
|
-
1. The original text is written in English.
|
|
125
|
+
1. The original text is written in English or Spanish.
|
|
114
126
|
2. You will receive additional user parameters under the variable 'extraInstructions'. These may specify tone, persona, style, context, or any relevant translation guideline.
|
|
115
127
|
- Examples: \u201Ctranslate as if you were a Shakespearean narrator\u201D or \u201Cuse a formal business tone suitable for a corporate presentation.\u201D
|
|
116
128
|
- Apply these creatively but **without altering the meaning or punctuation** of the original text.
|
|
@@ -143,10 +155,10 @@ Translate the following text faithfully:
|
|
|
143
155
|
function defaultPostPrompt(_config) {
|
|
144
156
|
return "";
|
|
145
157
|
}
|
|
146
|
-
function prePrompt(config,
|
|
158
|
+
function prePrompt(config, prepend, replace) {
|
|
147
159
|
return [
|
|
148
160
|
// ...(append ? ['[SPECIFIC_INPUTS]', String(append), '[/SPECIFIC_INPUTS]'] : []),
|
|
149
|
-
replace ? String(replace) : defaultPrePrompt(config,
|
|
161
|
+
replace ? String(replace) : defaultPrePrompt(config, prepend)
|
|
150
162
|
].join(" ").trim();
|
|
151
163
|
}
|
|
152
164
|
function postPrompt(config, prepend, replace) {
|
|
@@ -19,19 +19,34 @@ var defaultConfig = {
|
|
|
19
19
|
prefix: "grw",
|
|
20
20
|
write: true
|
|
21
21
|
},
|
|
22
|
-
keys: {},
|
|
23
22
|
sourceLanguage: "en-US",
|
|
23
|
+
defaultLanguage: "pt-BR",
|
|
24
24
|
languages: ["pt-BR", "fr-CA"],
|
|
25
25
|
llm: {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
provider: "openai",
|
|
27
|
+
apiKey: void 0,
|
|
28
|
+
model: "gpt-4o-mini",
|
|
28
29
|
temperature: 1,
|
|
29
30
|
sleep: 0
|
|
30
31
|
},
|
|
31
32
|
globby: "./src/**/*.{js,jsx,ts,tsx}"
|
|
32
33
|
};
|
|
33
34
|
var languageSchema = z.string().regex(/^[a-z]{2,3}(-[A-Z]{2})?$/);
|
|
34
|
-
var
|
|
35
|
+
var llmProviderSchema = z.enum([
|
|
36
|
+
"anthropic",
|
|
37
|
+
"gemini",
|
|
38
|
+
"openai",
|
|
39
|
+
"groq",
|
|
40
|
+
"mistral",
|
|
41
|
+
"ollama",
|
|
42
|
+
"xai",
|
|
43
|
+
"deepseek",
|
|
44
|
+
"openrouter",
|
|
45
|
+
"cerebras",
|
|
46
|
+
"lmstudio",
|
|
47
|
+
"azure",
|
|
48
|
+
"meta"
|
|
49
|
+
]);
|
|
35
50
|
var configSchema = z.object({
|
|
36
51
|
debug: z.boolean().optional(),
|
|
37
52
|
log: z.object({
|
|
@@ -43,14 +58,13 @@ var configSchema = z.object({
|
|
|
43
58
|
prefix: z.string(),
|
|
44
59
|
write: z.boolean().optional()
|
|
45
60
|
}),
|
|
46
|
-
keys: z.object({
|
|
47
|
-
anthropicApiKey: z.string().optional(),
|
|
48
|
-
geminiApiKey: z.string().optional()
|
|
49
|
-
}),
|
|
50
61
|
sourceLanguage: languageSchema,
|
|
62
|
+
defaultLanguage: languageSchema,
|
|
51
63
|
languages: z.array(languageSchema),
|
|
52
64
|
llm: z.object({
|
|
53
|
-
|
|
65
|
+
provider: llmProviderSchema,
|
|
66
|
+
apiKey: z.string().optional(),
|
|
67
|
+
baseURL: z.string().optional(),
|
|
54
68
|
model: z.string().nullable(),
|
|
55
69
|
temperature: z.number().optional(),
|
|
56
70
|
sleep: z.number().optional(),
|
|
@@ -64,17 +78,15 @@ var configSchema = z.object({
|
|
|
64
78
|
globby: z.string().regex(/^\.\/.*/).optional()
|
|
65
79
|
}).refine(
|
|
66
80
|
(data) => {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (data.llm.choice === "anthropic" && !data.keys.anthropicApiKey) {
|
|
71
|
-
return false;
|
|
81
|
+
const noApiKeyRequired = ["ollama", "lmstudio"];
|
|
82
|
+
if (noApiKeyRequired.includes(data.llm.provider)) {
|
|
83
|
+
return true;
|
|
72
84
|
}
|
|
73
|
-
return
|
|
85
|
+
return !!data.llm.apiKey;
|
|
74
86
|
},
|
|
75
87
|
{
|
|
76
|
-
message: "The API key
|
|
77
|
-
path: ["
|
|
88
|
+
message: "The API key must be present in llm.apiKey for the chosen provider.",
|
|
89
|
+
path: ["llm", "apiKey"]
|
|
78
90
|
}
|
|
79
91
|
);
|
|
80
92
|
|
|
@@ -110,7 +122,7 @@ Your task is to translate a given text and output **only one valid JSON object**
|
|
|
110
122
|
|
|
111
123
|
Follow these rules strictly:
|
|
112
124
|
|
|
113
|
-
1. The original text is written in English.
|
|
125
|
+
1. The original text is written in English or Spanish.
|
|
114
126
|
2. You will receive additional user parameters under the variable 'extraInstructions'. These may specify tone, persona, style, context, or any relevant translation guideline.
|
|
115
127
|
- Examples: \u201Ctranslate as if you were a Shakespearean narrator\u201D or \u201Cuse a formal business tone suitable for a corporate presentation.\u201D
|
|
116
128
|
- Apply these creatively but **without altering the meaning or punctuation** of the original text.
|
|
@@ -143,10 +155,10 @@ Translate the following text faithfully:
|
|
|
143
155
|
function defaultPostPrompt(_config) {
|
|
144
156
|
return "";
|
|
145
157
|
}
|
|
146
|
-
function prePrompt(config,
|
|
158
|
+
function prePrompt(config, prepend, replace) {
|
|
147
159
|
return [
|
|
148
160
|
// ...(append ? ['[SPECIFIC_INPUTS]', String(append), '[/SPECIFIC_INPUTS]'] : []),
|
|
149
|
-
replace ? String(replace) : defaultPrePrompt(config,
|
|
161
|
+
replace ? String(replace) : defaultPrePrompt(config, prepend)
|
|
150
162
|
].join(" ").trim();
|
|
151
163
|
}
|
|
152
164
|
function postPrompt(config, prepend, replace) {
|