sygal-cli 0.5.6 → 0.5.7
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/CHANGELOG.md +9 -0
- package/dist/index.js +27 -8
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,15 @@ partagent toujours le même numéro de version, publiés ensemble, même si un
|
|
|
9
9
|
seul a réellement changé de contenu — même principe que l'app desktop.
|
|
10
10
|
Détails du process : `CLI_RELEASE_GUIDE.md` à la racine du repo.
|
|
11
11
|
|
|
12
|
+
## 0.5.6
|
|
13
|
+
|
|
14
|
+
- Fix critique : le sidecar `@sygal/sidecar-darwin-arm64` était compilé depuis un Python
|
|
15
|
+
installé via Homebrew, dont la bottle cible `MACOSX_DEPLOYMENT_TARGET=26` — le binaire
|
|
16
|
+
plantait au démarrage (`dlopen ... Symbol not found`) sur toute machine tournant sous
|
|
17
|
+
macOS antérieur à la version 26, malgré la compatibilité macOS 12+ annoncée. Rebuild
|
|
18
|
+
effectué depuis un Python installé via python.org (cible de déploiement basse), sans
|
|
19
|
+
changement de code source.
|
|
20
|
+
|
|
12
21
|
## 0.5.5
|
|
13
22
|
|
|
14
23
|
- Fix : exporter un document dont le nom contient des caractères illégaux sur Windows/macOS
|
package/dist/index.js
CHANGED
|
@@ -105,7 +105,15 @@ async function toPngBuffer(input) {
|
|
|
105
105
|
|
|
106
106
|
// ../core/src/ocr-models.ts
|
|
107
107
|
var OCR_MODELS = {
|
|
108
|
-
|
|
108
|
+
// Bascule 02/09/2026 : gpt-4o retiré de l'API OpenAI le 16/02/2026 (recherche
|
|
109
|
+
// en direct — mort depuis 7 mois, provider par défaut de Sygal). Remplacé par
|
|
110
|
+
// gpt-5.6-terra (famille GPT-5.6, GA depuis 07/2026 : sol/terra/luna) — terra
|
|
111
|
+
// choisi pour l'équilibre coût/qualité sur de la lecture de document/écran,
|
|
112
|
+
// pas le tier flagship (sol, plus cher) ni économique (luna). Modèle
|
|
113
|
+
// "raisonneur" : voir openai-provider.ts pour les paramètres API affectés
|
|
114
|
+
// (max_tokens, temperature). Qualité réelle non validée sur cas réels
|
|
115
|
+
// (contrainte budget API de Cyrill) — à confirmer dès que possible.
|
|
116
|
+
openai: "gpt-5.6-terra",
|
|
109
117
|
mistral: "mistral-ocr-latest",
|
|
110
118
|
claude: "claude-sonnet-4-6",
|
|
111
119
|
// Bascule 02/09/2026 : nemotron-nano-12b-v2-vl (et toute la lignée nemotron
|
|
@@ -117,7 +125,12 @@ var OCR_MODELS = {
|
|
|
117
125
|
// de description d'image ni de traduction : NVIDIA_FALLBACK_MODEL
|
|
118
126
|
// (llama-3.2-90b-vision-instruct) prend le relais pour ces deux cas.
|
|
119
127
|
nvidia: "nvidia/nemotron-ocr-v2",
|
|
120
|
-
|
|
128
|
+
// Bascule 02/09/2026 : gemini-2.0-flash coupé par Google le 01/06/2026
|
|
129
|
+
// (recherche en direct — mort depuis 3 mois). Remplacé par gemini-3.7-flash
|
|
130
|
+
// (GA depuis 08/2026) — un seul choix clair côté Google à cette date, pas
|
|
131
|
+
// d'arbitrage de tier comme pour OpenAI. Qualité réelle non validée sur cas
|
|
132
|
+
// réels (contrainte budget API de Cyrill) — à confirmer dès que possible.
|
|
133
|
+
gemini: "gemini-3.7-flash"
|
|
121
134
|
};
|
|
122
135
|
var MISTRAL_TRANSLATE_MODEL = "mistral-large-latest";
|
|
123
136
|
var NVIDIA_FALLBACK_MODEL = "meta/llama-3.2-90b-vision-instruct";
|
|
@@ -443,7 +456,7 @@ function httpStatusToOcrError(status, providerId) {
|
|
|
443
456
|
function toDataUrl(img, mime) {
|
|
444
457
|
return `data:${mime};base64,${img.toString("base64")}`;
|
|
445
458
|
}
|
|
446
|
-
async function callOpenAiCompatibleChatText(endpoint, model, apiKey, signal, prompt, text, providerId, maxTokens = 8192, frequencyPenalty) {
|
|
459
|
+
async function callOpenAiCompatibleChatText(endpoint, model, apiKey, signal, prompt, text, providerId, maxTokens = 8192, frequencyPenalty, reasoningModel = false) {
|
|
447
460
|
const response = await fetch(endpoint, {
|
|
448
461
|
method: "POST",
|
|
449
462
|
signal,
|
|
@@ -453,9 +466,10 @@ async function callOpenAiCompatibleChatText(endpoint, model, apiKey, signal, pro
|
|
|
453
466
|
},
|
|
454
467
|
body: JSON.stringify({
|
|
455
468
|
model,
|
|
456
|
-
max_tokens: maxTokens,
|
|
457
|
-
// Traduction = tâche déterministe : toute créativité est un bug ici
|
|
458
|
-
|
|
469
|
+
[reasoningModel ? "max_completion_tokens" : "max_tokens"]: maxTokens,
|
|
470
|
+
// Traduction = tâche déterministe : toute créativité est un bug ici
|
|
471
|
+
// (paramètre rejeté par les modèles raisonneurs, voir reasoningModel).
|
|
472
|
+
...reasoningModel ? {} : { temperature: 0 },
|
|
459
473
|
...frequencyPenalty !== void 0 ? { frequency_penalty: frequencyPenalty } : {},
|
|
460
474
|
// Consigne et document dans deux messages distincts : concaténés, un
|
|
461
475
|
// document court était traité comme une simple amorce et le modèle
|
|
@@ -855,7 +869,8 @@ var openAiProvider = {
|
|
|
855
869
|
},
|
|
856
870
|
body: JSON.stringify({
|
|
857
871
|
model: OPENAI_OCR_MODEL,
|
|
858
|
-
max_tokens
|
|
872
|
+
// gpt-5.6 (modèle raisonneur) rejette `max_tokens` — voir en-tête de fichier.
|
|
873
|
+
max_completion_tokens: 8192,
|
|
859
874
|
messages: [
|
|
860
875
|
{
|
|
861
876
|
role: "user",
|
|
@@ -883,7 +898,11 @@ var openAiProvider = {
|
|
|
883
898
|
signal,
|
|
884
899
|
prompt,
|
|
885
900
|
text,
|
|
886
|
-
"openai"
|
|
901
|
+
"openai",
|
|
902
|
+
8192,
|
|
903
|
+
void 0,
|
|
904
|
+
true
|
|
905
|
+
// gpt-5.6 : max_completion_tokens + pas de temperature, voir en-tête de fichier
|
|
887
906
|
);
|
|
888
907
|
}
|
|
889
908
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sygal-cli",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.7",
|
|
4
4
|
"description": "Sygal CLI - convert files and web pages to Markdown/JSON (local MarkItDown pipeline, OCR for images)",
|
|
5
5
|
"author": "Cyrill Semah",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"@sygal/core": "0.1.0"
|
|
38
38
|
},
|
|
39
39
|
"optionalDependencies": {
|
|
40
|
-
"@sygal/sidecar-darwin-arm64": "0.5.
|
|
41
|
-
"@sygal/sidecar-win32-x64": "0.5.
|
|
42
|
-
"@sygal/sidecar-linux-x64": "0.5.
|
|
40
|
+
"@sygal/sidecar-darwin-arm64": "0.5.7",
|
|
41
|
+
"@sygal/sidecar-win32-x64": "0.5.7",
|
|
42
|
+
"@sygal/sidecar-linux-x64": "0.5.7"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"build": "esbuild src/index.ts --bundle --platform=node --target=node20 --format=cjs --outfile=dist/index.js --external:sharp --external:gpt-tokenizer --external:commander --external:picocolors",
|