ai-i18n-tools 1.7.1 → 1.7.2
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 +16 -2
- package/dist/api/llm-client.d.ts +26 -5
- package/dist/api/llm-client.d.ts.map +1 -1
- package/dist/api/llm-client.js +146 -33
- package/dist/api/llm-client.js.map +1 -1
- package/dist/build-info.generated.d.ts +1 -1
- package/dist/build-info.generated.js +1 -1
- package/dist/cli/check-markdown.d.ts.map +1 -1
- package/dist/cli/check-markdown.js +3 -2
- package/dist/cli/check-markdown.js.map +1 -1
- package/dist/cli/check-models.d.ts.map +1 -1
- package/dist/cli/check-models.js +15 -10
- package/dist/cli/check-models.js.map +1 -1
- package/dist/cli/clean-temp.d.ts.map +1 -1
- package/dist/cli/clean-temp.js +11 -7
- package/dist/cli/clean-temp.js.map +1 -1
- package/dist/cli/doc-translate-quality-retry.d.ts.map +1 -1
- package/dist/cli/doc-translate-quality-retry.js +15 -4
- package/dist/cli/doc-translate-quality-retry.js.map +1 -1
- package/dist/cli/doc-translate.d.ts.map +1 -1
- package/dist/cli/doc-translate.js +219 -71
- package/dist/cli/doc-translate.js.map +1 -1
- package/dist/cli/export-ui-xliff.d.ts.map +1 -1
- package/dist/cli/export-ui-xliff.js +10 -6
- package/dist/cli/export-ui-xliff.js.map +1 -1
- package/dist/cli/extract-strings.d.ts.map +1 -1
- package/dist/cli/extract-strings.js +55 -14
- package/dist/cli/extract-strings.js.map +1 -1
- package/dist/cli/format.d.ts +4 -5
- package/dist/cli/format.d.ts.map +1 -1
- package/dist/cli/format.js +9 -8
- package/dist/cli/format.js.map +1 -1
- package/dist/cli/generate-ui-languages.d.ts.map +1 -1
- package/dist/cli/generate-ui-languages.js +2 -1
- package/dist/cli/generate-ui-languages.js.map +1 -1
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +4 -0
- package/dist/cli/helpers.js.map +1 -1
- package/dist/cli/index.js +477 -327
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lint-source.d.ts.map +1 -1
- package/dist/cli/lint-source.js +74 -24
- package/dist/cli/lint-source.js.map +1 -1
- package/dist/cli/list-languages.d.ts.map +1 -1
- package/dist/cli/list-languages.js +38 -16
- package/dist/cli/list-languages.js.map +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +12 -8
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/mark-html.d.ts +31 -0
- package/dist/cli/mark-html.d.ts.map +1 -0
- package/dist/cli/mark-html.js +68 -0
- package/dist/cli/mark-html.js.map +1 -0
- package/dist/cli/openrouter-catalog-model-filter.d.ts.map +1 -1
- package/dist/cli/openrouter-catalog-model-filter.js +7 -3
- package/dist/cli/openrouter-catalog-model-filter.js.map +1 -1
- package/dist/cli/translate-json-run.d.ts.map +1 -1
- package/dist/cli/translate-json-run.js +29 -12
- package/dist/cli/translate-json-run.js.map +1 -1
- package/dist/cli/translate-svg.d.ts.map +1 -1
- package/dist/cli/translate-svg.js +43 -26
- package/dist/cli/translate-svg.js.map +1 -1
- package/dist/cli/translate-ui-strings.d.ts.map +1 -1
- package/dist/cli/translate-ui-strings.js +119 -40
- package/dist/cli/translate-ui-strings.js.map +1 -1
- package/dist/cli/write-heading-ids.d.ts.map +1 -1
- package/dist/cli/write-heading-ids.js +17 -8
- package/dist/cli/write-heading-ids.js.map +1 -1
- package/dist/core/config.d.ts +2 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +2 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/han-variant-data.d.ts +36 -0
- package/dist/core/han-variant-data.d.ts.map +1 -0
- package/dist/core/han-variant-data.js +50 -0
- package/dist/core/han-variant-data.js.map +1 -0
- package/dist/core/locale-utils.d.ts +75 -1
- package/dist/core/locale-utils.d.ts.map +1 -1
- package/dist/core/locale-utils.js +191 -1
- package/dist/core/locale-utils.js.map +1 -1
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +8 -1
- package/dist/core/prompt-builder.js.map +1 -1
- package/dist/core/prompts.d.ts +4 -0
- package/dist/core/prompts.d.ts.map +1 -1
- package/dist/core/prompts.js +2 -0
- package/dist/core/prompts.js.map +1 -1
- package/dist/core/types.d.ts +9 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +13 -0
- package/dist/core/types.js.map +1 -1
- package/dist/core/ui-languages-catalog.d.ts.map +1 -1
- package/dist/core/ui-languages-catalog.js +38 -18
- package/dist/core/ui-languages-catalog.js.map +1 -1
- package/dist/core/ui-locale.d.ts +37 -0
- package/dist/core/ui-locale.d.ts.map +1 -0
- package/dist/core/ui-locale.js +78 -0
- package/dist/core/ui-locale.js.map +1 -0
- package/dist/dashboard-app/app.js +348 -151
- package/dist/dashboard-app/index.html +182 -181
- package/dist/extractors/html-i18n-marks.d.ts +48 -0
- package/dist/extractors/html-i18n-marks.d.ts.map +1 -0
- package/dist/extractors/html-i18n-marks.js +351 -0
- package/dist/extractors/html-i18n-marks.js.map +1 -0
- package/dist/extractors/ui-string-babel.d.ts.map +1 -1
- package/dist/extractors/ui-string-babel.js +11 -3
- package/dist/extractors/ui-string-babel.js.map +1 -1
- package/dist/i18n/index.d.ts +59 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +186 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/de.json +610 -0
- package/dist/i18n/locales/es.json +610 -0
- package/dist/i18n/locales/fr.json +610 -0
- package/dist/i18n/locales/hi-Latn.json +610 -0
- package/dist/i18n/locales/ja.json +610 -0
- package/dist/i18n/locales/ko.json +610 -0
- package/dist/i18n/locales/pt-BR.json +610 -0
- package/dist/i18n/locales/ui-languages.json +63 -0
- package/dist/i18n/locales/zh-Hans.json +610 -0
- package/dist/i18n/locales/zh-Hant.json +610 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/server/translation-dashboard.d.ts +10 -0
- package/dist/server/translation-dashboard.d.ts.map +1 -1
- package/dist/server/translation-dashboard.js +4 -0
- package/dist/server/translation-dashboard.js.map +1 -1
- package/dist/utils/load-dotenv.d.ts +10 -0
- package/dist/utils/load-dotenv.d.ts.map +1 -0
- package/dist/utils/load-dotenv.js +27 -0
- package/dist/utils/load-dotenv.js.map +1 -0
- package/dist/utils/table.d.ts +27 -0
- package/dist/utils/table.d.ts.map +1 -0
- package/dist/utils/table.js +96 -0
- package/dist/utils/table.js.map +1 -0
- package/docs/GETTING_STARTED.md +101 -1
- package/docs/PACKAGE_OVERVIEW.md +13 -2
- package/docs/ai-i18n-tools-context.md +1 -0
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -123,7 +123,7 @@ export OPENROUTER_API_KEY=sk-or-v1-your-key-here
|
|
|
123
123
|
<a id="openrouter"></a>
|
|
124
124
|
## LLM providers
|
|
125
125
|
|
|
126
|
-
Translation commands (`translate-ui`, `translate-docs`, `translate-json`, `sync`, `check-models`, and related scripts) call an LLM provider; `check-markdown`
|
|
126
|
+
Translation commands (`translate-ui`, `translate-docs`, `translate-json`, `sync`, `check-models`, and related scripts) call an LLM provider; `check-markdown`, `mark-html`, and `extract` do not.
|
|
127
127
|
|
|
128
128
|
Configure providers under a top-level `providers` map and pick the active one with a top-level `provider` selector (optional when exactly one provider is configured). Most providers need only a `translationModels` list — `baseUrl` and the API-key environment variable come from a built-in preset; you can override `baseUrl`, `apiKeyEnv`, `headers`, `maxTokens`, `temperature`, and `requestTimeoutMs` per provider. `requestTimeoutMs` is the maximum time in milliseconds to wait for each request (default `30000`).
|
|
129
129
|
|
|
@@ -270,6 +270,7 @@ ai-i18n-tools list-models
|
|
|
270
270
|
ai-i18n-tools list-languages [search]
|
|
271
271
|
ai-i18n-tools init [-t ui-markdown|ui-docusaurus|ui-starlight|ui-astro-website|ui-json-bundles] [-o path] [--with-translate-ignore]
|
|
272
272
|
ai-i18n-tools write-heading-ids …
|
|
273
|
+
ai-i18n-tools mark-html [paths...] [--write]
|
|
273
274
|
ai-i18n-tools extract
|
|
274
275
|
ai-i18n-tools translate-docs …
|
|
275
276
|
ai-i18n-tools translate-json …
|
|
@@ -291,9 +292,22 @@ ai-i18n-tools help [command]
|
|
|
291
292
|
```
|
|
292
293
|
|
|
293
294
|
|
|
295
|
+
For plain HTML apps, annotate elements with bare `data-i18n` / `data-i18n-title` / `data-i18n-placeholder` markers (the source text is taken from the element's own textContent / title / placeholder, written once); `mark-html` inserts them for you and `extract` then captures them into `strings.json`. See [Getting Started — Marking HTML for translation](docs/GETTING_STARTED.md#marking-html-for-translation).
|
|
296
|
+
|
|
294
297
|
Complete per-command flag lists are in [Getting Started — CLI reference](docs/GETTING_STARTED.md#cli-reference). Run `ai-i18n-tools <command> --help` for built-in usage text.
|
|
295
298
|
|
|
296
|
-
Global options on every command: `-c <config>` (default: `ai-i18n-tools.config.json`), `-v` (verbose), `-P` / `--provider <name>` (override the active LLM provider; must be configured under `providers`), optional `-w` / `--write-logs [path]` to tee console output to a log file (default: under the translation cache directory), `-V` / `--version`, and `-h` / `--help`. Several commands accept `-l` / `--locale <codes>` (comma-separated BCP-47) to limit target locales; `lint-source` uses a single source locale. See [Getting Started](docs/GETTING_STARTED.md#cli-reference) for the command overview table.
|
|
299
|
+
Global options on every command: `-c <config>` (default: `ai-i18n-tools.config.json`), `-v` (verbose), `-P` / `--provider <name>` (override the active LLM provider; must be configured under `providers`), `-L` / `--ui-lang <code>` (language for the tool's own UI/logs), optional `-w` / `--write-logs [path]` to tee console output to a log file (default: under the translation cache directory), `-V` / `--version`, and `-h` / `--help`. Several commands accept `-l` / `--locale <codes>` (comma-separated BCP-47) to limit target locales; `lint-source` uses a single source locale. See [Getting Started](docs/GETTING_STARTED.md#cli-reference) for the command overview table.
|
|
300
|
+
|
|
301
|
+
### Tool UI language (logs, help, dashboard)
|
|
302
|
+
|
|
303
|
+
The tool localizes its own CLI help, high-traffic log/summary messages, and the Translation Dashboard. The UI locale is resolved from these sources, highest priority first:
|
|
304
|
+
|
|
305
|
+
1. `-L` / `--ui-lang <code>` global flag (e.g. `-L pt-BR`).
|
|
306
|
+
2. `AI_I18N_LANG` environment variable (e.g. `export AI_I18N_LANG=es`).
|
|
307
|
+
3. The `uiLanguage` config key in `ai-i18n-tools.config.json` (BCP-47 string).
|
|
308
|
+
4. The host OS locale (via `Intl.DateTimeFormat().resolvedOptions().locale`).
|
|
309
|
+
|
|
310
|
+
The requested locale is matched against the shipped UI languages exactly or by closest variation (for example `pt-PT` resolves to `pt-BR`, and `en-US` resolves to `en-GB`); when nothing matches it falls back to the source locale (`en-GB`). This is independent of your project's `sourceLocale` / `targetLocales`. Shipped UI languages: `en-GB` (source) plus `de`, `es`, `fr`, `hi-Latn`, `ja`, `ko`, `pt-BR`, `zh-Hans`, and `zh-Hant`.
|
|
297
311
|
|
|
298
312
|
---
|
|
299
313
|
|
package/dist/api/llm-client.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ export declare class DocumentBatchAllModelsFailedError extends Error {
|
|
|
11
11
|
lastError: unknown;
|
|
12
12
|
/** HTTP response body text when the model returned content but parsing failed. */
|
|
13
13
|
lastRawAssistantContent?: string;
|
|
14
|
+
/** Tokens spent across billed-but-discarded attempts before every model failed. */
|
|
15
|
+
wastedUsage?: LlmUsageStats;
|
|
16
|
+
/** USD cost spent across billed-but-discarded attempts (undefined when no cost was reported). */
|
|
17
|
+
wastedCost?: number;
|
|
14
18
|
};
|
|
15
19
|
constructor(message: string, details: {
|
|
16
20
|
systemPrompt: string;
|
|
@@ -19,6 +23,10 @@ export declare class DocumentBatchAllModelsFailedError extends Error {
|
|
|
19
23
|
lastError: unknown;
|
|
20
24
|
/** HTTP response body text when the model returned content but parsing failed. */
|
|
21
25
|
lastRawAssistantContent?: string;
|
|
26
|
+
/** Tokens spent across billed-but-discarded attempts before every model failed. */
|
|
27
|
+
wastedUsage?: LlmUsageStats;
|
|
28
|
+
/** USD cost spent across billed-but-discarded attempts (undefined when no cost was reported). */
|
|
29
|
+
wastedCost?: number;
|
|
22
30
|
});
|
|
23
31
|
}
|
|
24
32
|
export interface LlmClientOptions {
|
|
@@ -35,6 +43,13 @@ export interface LlmClientOptions {
|
|
|
35
43
|
logger?: Logger;
|
|
36
44
|
httpReferer?: string;
|
|
37
45
|
xTitle?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Fires once per billed API response (whether the response is later accepted, rejected, or
|
|
48
|
+
* empty) with that call's tokens/cost. Lets callers maintain a live run total that survives
|
|
49
|
+
* interrupts/errors, since the usage is captured the moment the provider responds rather than
|
|
50
|
+
* only when the enclosing batch/file completes. Must be synchronous and must not throw.
|
|
51
|
+
*/
|
|
52
|
+
onApiUsage?: (usage: LlmUsageStats, cost: number | undefined) => void;
|
|
38
53
|
}
|
|
39
54
|
/** @deprecated Use {@link LlmClientOptions}. */
|
|
40
55
|
export type OpenRouterClientOptions = LlmClientOptions;
|
|
@@ -58,6 +73,7 @@ export declare class LlmClient {
|
|
|
58
73
|
private readonly httpReferer;
|
|
59
74
|
private readonly xTitle;
|
|
60
75
|
private readonly requestTimeoutMs;
|
|
76
|
+
private readonly onApiUsage?;
|
|
61
77
|
constructor(opts: LlmClientOptions);
|
|
62
78
|
private buildProvider;
|
|
63
79
|
getConfiguredModels(): readonly string[];
|
|
@@ -74,17 +90,22 @@ export declare class LlmClient {
|
|
|
74
90
|
* Enforce the target locale's ISO 15924 script subtag on a model response, throwing
|
|
75
91
|
* {@link ScriptValidationError} so the model-fallback loop retries with the next model.
|
|
76
92
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
93
|
+
* Uses a statistical dominant-script check ({@link scriptValidationIssue}): Latin text
|
|
94
|
+
* (code, URLs, brand names, placeholders) and letter-like symbols such as `ℹ` are ignored,
|
|
95
|
+
* a stray foreign-language quote does not fail the output, and `zh-Hans`/`zh-Hant` are told
|
|
96
|
+
* apart via variant-distinct characters. Locales without a script subtag, and composite
|
|
97
|
+
* scripts (e.g. `Jpan`, `Kore`), are not enforced.
|
|
82
98
|
*/
|
|
83
99
|
private assertExpectedScript;
|
|
84
100
|
private appendDebugLog;
|
|
85
101
|
/** Match doc-translate log lines: two-space indent, locale, filename. */
|
|
86
102
|
private warnModelSwitch;
|
|
87
103
|
private toOpenRouterMessages;
|
|
104
|
+
private static emptyDiscarded;
|
|
105
|
+
/** Add a billed-but-discarded attempt's tokens/cost onto the running discarded total. */
|
|
106
|
+
private static addDiscarded;
|
|
107
|
+
/** Fold discarded-attempt tokens/cost into the eventually-successful response's totals. */
|
|
108
|
+
private static foldDiscarded;
|
|
88
109
|
/** Read OpenRouter's exact USD cost from `providerMetadata` (other providers: undefined). */
|
|
89
110
|
private extractCost;
|
|
90
111
|
/** Single chat-completions call for one model via the active provider (AI SDK transport). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/api/llm-client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAC;AAc1B,OAAO,EAYL,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/api/llm-client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/llm-client.js
CHANGED
|
@@ -4,7 +4,7 @@ import { generateText } from "ai";
|
|
|
4
4
|
import { createOpenAICompatible, } from "@ai-sdk/openai-compatible";
|
|
5
5
|
import { BatchTranslationError, } from "../core/types.js";
|
|
6
6
|
import { englishLanguageNameForLocale, normalizeLocale, resolveTranslationModels, } from "../core/config.js";
|
|
7
|
-
import {
|
|
7
|
+
import { scriptSubtag, scriptValidationIssue } from "../core/locale-utils.js";
|
|
8
8
|
import { OPENROUTER_PROVIDER_KEY, resolveActiveProvider, resolveApiKey, resolveProviderSettings, } from "../core/llm-providers.js";
|
|
9
9
|
import { buildDocumentBatchPrompt, buildDocumentSinglePrompt, buildLintSourcePromptMessages, buildUIPromptMessages, parseBatchJsonArrayResponse, parseBatchJsonObjectResponse, parseBatchTranslationResponse, parseLintSourceBatchResponse, parsePluralFormsJsonResponse, parseUIJsonArrayResponse, ScriptValidationError, } from "../core/prompt-builder.js";
|
|
10
10
|
/** OpenRouter: prefer throughput; allow backup providers (top-level `provider` routing field). */
|
|
@@ -12,6 +12,19 @@ const OPENROUTER_PROVIDER = {
|
|
|
12
12
|
sort: "throughput",
|
|
13
13
|
allow_fallbacks: true,
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Thrown by {@link LlmClient.fetchCompletion} when a provider returns a billed response whose
|
|
17
|
+
* content is empty/unusable, so the model-fallback loop can still account for the spent tokens/cost
|
|
18
|
+
* instead of silently dropping them.
|
|
19
|
+
*/
|
|
20
|
+
class BilledCompletionError extends Error {
|
|
21
|
+
constructor(message, usage, cost) {
|
|
22
|
+
super(message);
|
|
23
|
+
this.usage = usage;
|
|
24
|
+
this.cost = cost;
|
|
25
|
+
this.name = "BilledCompletionError";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
15
28
|
/**
|
|
16
29
|
* OpenRouter returns `usage.cost` (USD) on non-streaming responses; surface it through
|
|
17
30
|
* `providerMetadata.openrouter.cost` so the client can report exact spend.
|
|
@@ -81,6 +94,7 @@ export class LlmClient {
|
|
|
81
94
|
this.sourceLanguageLabel = this.languageLabelForPrompt(opts.config.sourceLocale);
|
|
82
95
|
this.httpReferer = opts.httpReferer ?? "https://github.com/wsj-br/ai-i18n-tools";
|
|
83
96
|
this.xTitle = opts.xTitle ?? "ai-i18n-tools";
|
|
97
|
+
this.onApiUsage = opts.onApiUsage;
|
|
84
98
|
this.providerInstance = this.buildProvider(settings);
|
|
85
99
|
}
|
|
86
100
|
buildProvider(settings) {
|
|
@@ -133,25 +147,23 @@ export class LlmClient {
|
|
|
133
147
|
* Enforce the target locale's ISO 15924 script subtag on a model response, throwing
|
|
134
148
|
* {@link ScriptValidationError} so the model-fallback loop retries with the next model.
|
|
135
149
|
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
150
|
+
* Uses a statistical dominant-script check ({@link scriptValidationIssue}): Latin text
|
|
151
|
+
* (code, URLs, brand names, placeholders) and letter-like symbols such as `ℹ` are ignored,
|
|
152
|
+
* a stray foreign-language quote does not fail the output, and `zh-Hans`/`zh-Hant` are told
|
|
153
|
+
* apart via variant-distinct characters. Locales without a script subtag, and composite
|
|
154
|
+
* scripts (e.g. `Jpan`, `Kore`), are not enforced.
|
|
141
155
|
*/
|
|
142
156
|
assertExpectedScript(text, targetLocale) {
|
|
143
157
|
const script = scriptSubtag(targetLocale);
|
|
144
158
|
if (!script) {
|
|
145
159
|
return;
|
|
146
160
|
}
|
|
147
|
-
const
|
|
148
|
-
if (
|
|
161
|
+
const issue = scriptValidationIssue(text, script);
|
|
162
|
+
if (!issue) {
|
|
149
163
|
return;
|
|
150
164
|
}
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
: `${englishScriptName(script) ?? script} (${script})`;
|
|
154
|
-
throw new ScriptValidationError(`Output for ${targetLocale} contains characters outside the expected ${expected} script (${offending.join(" ")})`, text, offending);
|
|
165
|
+
const suffix = issue.sample.length > 0 ? ` (${issue.sample.join(" ")})` : "";
|
|
166
|
+
throw new ScriptValidationError(`Output for ${targetLocale} ${issue.message}${suffix}`, text, issue.sample);
|
|
155
167
|
}
|
|
156
168
|
appendDebugLog(direction, payload) {
|
|
157
169
|
if (!this.debugTrafficFilePath) {
|
|
@@ -176,6 +188,30 @@ export class LlmClient {
|
|
|
176
188
|
toOpenRouterMessages(messages) {
|
|
177
189
|
return messages.map((m) => ({ role: m.role, content: m.content }));
|
|
178
190
|
}
|
|
191
|
+
static emptyDiscarded() {
|
|
192
|
+
return { inputTokens: 0, outputTokens: 0, totalTokens: 0, cost: undefined };
|
|
193
|
+
}
|
|
194
|
+
/** Add a billed-but-discarded attempt's tokens/cost onto the running discarded total. */
|
|
195
|
+
static addDiscarded(acc, usage, cost) {
|
|
196
|
+
acc.inputTokens += usage.inputTokens;
|
|
197
|
+
acc.outputTokens += usage.outputTokens;
|
|
198
|
+
acc.totalTokens += usage.totalTokens;
|
|
199
|
+
if (typeof cost === "number") {
|
|
200
|
+
acc.cost = (acc.cost ?? 0) + cost;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/** Fold discarded-attempt tokens/cost into the eventually-successful response's totals. */
|
|
204
|
+
static foldDiscarded(usage, cost, discarded) {
|
|
205
|
+
const mergedUsage = {
|
|
206
|
+
inputTokens: usage.inputTokens + discarded.inputTokens,
|
|
207
|
+
outputTokens: usage.outputTokens + discarded.outputTokens,
|
|
208
|
+
totalTokens: usage.totalTokens + discarded.totalTokens,
|
|
209
|
+
};
|
|
210
|
+
const mergedCost = cost === undefined && discarded.cost === undefined
|
|
211
|
+
? undefined
|
|
212
|
+
: (cost ?? 0) + (discarded.cost ?? 0);
|
|
213
|
+
return { usage: mergedUsage, cost: mergedCost };
|
|
214
|
+
}
|
|
179
215
|
/** Read OpenRouter's exact USD cost from `providerMetadata` (other providers: undefined). */
|
|
180
216
|
extractCost(providerMetadata) {
|
|
181
217
|
const raw = providerMetadata?.[OPENROUTER_PROVIDER_KEY]?.cost;
|
|
@@ -228,6 +264,9 @@ export class LlmClient {
|
|
|
228
264
|
totalTokens: result.usage.totalTokens ?? 0,
|
|
229
265
|
};
|
|
230
266
|
const cost = this.extractCost(result.providerMetadata);
|
|
267
|
+
// Report every billed response immediately so a live run total survives interrupts/errors,
|
|
268
|
+
// even for responses that are later rejected (empty content, parse/script failure) below.
|
|
269
|
+
this.onApiUsage?.(usage, cost);
|
|
231
270
|
if (this.debugTrafficFilePath) {
|
|
232
271
|
this.appendDebugLog("response", {
|
|
233
272
|
model,
|
|
@@ -238,7 +277,7 @@ export class LlmClient {
|
|
|
238
277
|
});
|
|
239
278
|
}
|
|
240
279
|
if (!content || content.trim() === "") {
|
|
241
|
-
throw new
|
|
280
|
+
throw new BilledCompletionError(`Empty response content from ${this.provider} model ${model}`, usage, cost);
|
|
242
281
|
}
|
|
243
282
|
return { content, model, usage, cost };
|
|
244
283
|
}
|
|
@@ -246,15 +285,10 @@ export class LlmClient {
|
|
|
246
285
|
const openRouterMessages = this.toOpenRouterMessages(messages);
|
|
247
286
|
const start = Math.max(0, Math.floor(options?.startModelIndex ?? 0));
|
|
248
287
|
let lastError;
|
|
288
|
+
const discarded = LlmClient.emptyDiscarded();
|
|
249
289
|
for (let mi = start; mi < this.modelsToTry.length; mi++) {
|
|
250
290
|
const model = this.modelsToTry[mi];
|
|
251
|
-
|
|
252
|
-
const completion = await this.fetchCompletion(model, openRouterMessages);
|
|
253
|
-
options?.validateResponse?.(completion.content);
|
|
254
|
-
return completion;
|
|
255
|
-
}
|
|
256
|
-
catch (e) {
|
|
257
|
-
lastError = e;
|
|
291
|
+
const warnFailure = (e) => {
|
|
258
292
|
const nextModel = this.modelsToTry[mi + 1];
|
|
259
293
|
if (nextModel && options?.docLogContext) {
|
|
260
294
|
this.warnModelSwitch(options.docLogContext.locale, options.docLogContext.relativePath, model, nextModel, e);
|
|
@@ -262,7 +296,30 @@ export class LlmClient {
|
|
|
262
296
|
else if (!options?.docLogContext) {
|
|
263
297
|
this.logger?.warn(`Model ${model} failed: ${e}`);
|
|
264
298
|
}
|
|
299
|
+
};
|
|
300
|
+
let completion;
|
|
301
|
+
try {
|
|
302
|
+
completion = await this.fetchCompletion(model, openRouterMessages);
|
|
303
|
+
}
|
|
304
|
+
catch (e) {
|
|
305
|
+
lastError = e;
|
|
306
|
+
if (e instanceof BilledCompletionError) {
|
|
307
|
+
LlmClient.addDiscarded(discarded, e.usage, e.cost);
|
|
308
|
+
}
|
|
309
|
+
warnFailure(e);
|
|
310
|
+
continue;
|
|
265
311
|
}
|
|
312
|
+
try {
|
|
313
|
+
options?.validateResponse?.(completion.content);
|
|
314
|
+
}
|
|
315
|
+
catch (e) {
|
|
316
|
+
lastError = e;
|
|
317
|
+
LlmClient.addDiscarded(discarded, completion.usage, completion.cost);
|
|
318
|
+
warnFailure(e);
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
const folded = LlmClient.foldDiscarded(completion.usage, completion.cost, discarded);
|
|
322
|
+
return { ...completion, usage: folded.usage, cost: folded.cost };
|
|
266
323
|
}
|
|
267
324
|
throw new Error(`All translation models failed (${this.modelsToTry.slice(start).join(", ")}). Last error: ${lastError}`);
|
|
268
325
|
}
|
|
@@ -319,6 +376,7 @@ export class LlmClient {
|
|
|
319
376
|
]);
|
|
320
377
|
const start = Math.max(0, Math.floor(options?.startModelIndex ?? 0));
|
|
321
378
|
let lastError;
|
|
379
|
+
const discarded = LlmClient.emptyDiscarded();
|
|
322
380
|
let lastFailureDetails;
|
|
323
381
|
for (let mi = start; mi < this.modelsToTry.length; mi++) {
|
|
324
382
|
const model = this.modelsToTry[mi];
|
|
@@ -328,6 +386,9 @@ export class LlmClient {
|
|
|
328
386
|
}
|
|
329
387
|
catch (e) {
|
|
330
388
|
lastError = e;
|
|
389
|
+
if (e instanceof BilledCompletionError) {
|
|
390
|
+
LlmClient.addDiscarded(discarded, e.usage, e.cost);
|
|
391
|
+
}
|
|
331
392
|
lastFailureDetails = {
|
|
332
393
|
systemPrompt,
|
|
333
394
|
userContent,
|
|
@@ -363,17 +424,19 @@ export class LlmClient {
|
|
|
363
424
|
for (const value of translations.values()) {
|
|
364
425
|
this.assertExpectedScript(value, locale);
|
|
365
426
|
}
|
|
427
|
+
const folded = LlmClient.foldDiscarded(completion.usage, completion.cost, discarded);
|
|
366
428
|
return {
|
|
367
429
|
translations,
|
|
368
430
|
model: completion.model,
|
|
369
|
-
usage:
|
|
370
|
-
cost:
|
|
431
|
+
usage: folded.usage,
|
|
432
|
+
cost: folded.cost,
|
|
371
433
|
debugPrompt: { systemPrompt, userContent },
|
|
372
434
|
rawAssistantContent: completion.content,
|
|
373
435
|
};
|
|
374
436
|
}
|
|
375
437
|
catch (e) {
|
|
376
438
|
lastError = e;
|
|
439
|
+
LlmClient.addDiscarded(discarded, completion.usage, completion.cost);
|
|
377
440
|
lastFailureDetails = {
|
|
378
441
|
systemPrompt,
|
|
379
442
|
userContent,
|
|
@@ -396,7 +459,7 @@ export class LlmClient {
|
|
|
396
459
|
}
|
|
397
460
|
}
|
|
398
461
|
const msg = `All translation models failed for batch (${this.modelsToTry.slice(start).join(", ")}). Last error: ${lastError instanceof Error ? lastError.message : String(lastError)}`;
|
|
399
|
-
const
|
|
462
|
+
const baseDetails = lastFailureDetails ??
|
|
400
463
|
{
|
|
401
464
|
systemPrompt,
|
|
402
465
|
userContent,
|
|
@@ -404,7 +467,15 @@ export class LlmClient {
|
|
|
404
467
|
lastError,
|
|
405
468
|
lastRawAssistantContent: undefined,
|
|
406
469
|
};
|
|
407
|
-
throw new DocumentBatchAllModelsFailedError(msg,
|
|
470
|
+
throw new DocumentBatchAllModelsFailedError(msg, {
|
|
471
|
+
...baseDetails,
|
|
472
|
+
wastedUsage: {
|
|
473
|
+
inputTokens: discarded.inputTokens,
|
|
474
|
+
outputTokens: discarded.outputTokens,
|
|
475
|
+
totalTokens: discarded.totalTokens,
|
|
476
|
+
},
|
|
477
|
+
...(discarded.cost !== undefined ? { wastedCost: discarded.cost } : {}),
|
|
478
|
+
});
|
|
408
479
|
}
|
|
409
480
|
/**
|
|
410
481
|
* UI strings: translate a batch of strings and return a JSON array response, with model fallback chain.
|
|
@@ -429,23 +500,37 @@ export class LlmClient {
|
|
|
429
500
|
]);
|
|
430
501
|
const start = Math.max(0, Math.floor(options?.startModelIndex ?? 0));
|
|
431
502
|
let lastError;
|
|
503
|
+
const discarded = LlmClient.emptyDiscarded();
|
|
432
504
|
for (let mi = start; mi < this.modelsToTry.length; mi++) {
|
|
433
505
|
const model = this.modelsToTry[mi];
|
|
506
|
+
let result;
|
|
507
|
+
try {
|
|
508
|
+
result = await this.fetchCompletion(model, openRouterMessages);
|
|
509
|
+
}
|
|
510
|
+
catch (e) {
|
|
511
|
+
lastError = e;
|
|
512
|
+
if (e instanceof BilledCompletionError) {
|
|
513
|
+
LlmClient.addDiscarded(discarded, e.usage, e.cost);
|
|
514
|
+
}
|
|
515
|
+
this.logger?.warn(`UI batch failed with ${model}: ${e}`);
|
|
516
|
+
continue;
|
|
517
|
+
}
|
|
434
518
|
try {
|
|
435
|
-
const result = await this.fetchCompletion(model, openRouterMessages);
|
|
436
519
|
const translations = parseUIJsonArrayResponse(result.content, texts.length);
|
|
437
520
|
for (const value of translations) {
|
|
438
521
|
this.assertExpectedScript(value, targetLocale);
|
|
439
522
|
}
|
|
523
|
+
const folded = LlmClient.foldDiscarded(result.usage, result.cost, discarded);
|
|
440
524
|
return {
|
|
441
525
|
translations,
|
|
442
526
|
model: result.model,
|
|
443
|
-
usage:
|
|
444
|
-
cost:
|
|
527
|
+
usage: folded.usage,
|
|
528
|
+
cost: folded.cost,
|
|
445
529
|
};
|
|
446
530
|
}
|
|
447
531
|
catch (e) {
|
|
448
532
|
lastError = e;
|
|
533
|
+
LlmClient.addDiscarded(discarded, result.usage, result.cost);
|
|
449
534
|
this.logger?.warn(`UI batch failed with ${model}: ${e}`);
|
|
450
535
|
}
|
|
451
536
|
}
|
|
@@ -473,21 +558,35 @@ export class LlmClient {
|
|
|
473
558
|
]);
|
|
474
559
|
const start = Math.max(0, Math.floor(options?.startModelIndex ?? 0));
|
|
475
560
|
let lastError;
|
|
561
|
+
const discarded = LlmClient.emptyDiscarded();
|
|
476
562
|
for (let mi = start; mi < this.modelsToTry.length; mi++) {
|
|
477
563
|
const model = this.modelsToTry[mi];
|
|
564
|
+
let result;
|
|
565
|
+
try {
|
|
566
|
+
result = await this.fetchCompletion(model, openRouterMessages);
|
|
567
|
+
}
|
|
568
|
+
catch (e) {
|
|
569
|
+
lastError = e;
|
|
570
|
+
if (e instanceof BilledCompletionError) {
|
|
571
|
+
LlmClient.addDiscarded(discarded, e.usage, e.cost);
|
|
572
|
+
}
|
|
573
|
+
this.logger?.warn(`lint-source batch failed with ${model}: ${e}`);
|
|
574
|
+
continue;
|
|
575
|
+
}
|
|
478
576
|
try {
|
|
479
|
-
const result = await this.fetchCompletion(model, openRouterMessages);
|
|
480
577
|
const { slots, lengthWarning } = parseLintSourceBatchResponse(result.content, texts.length);
|
|
578
|
+
const folded = LlmClient.foldDiscarded(result.usage, result.cost, discarded);
|
|
481
579
|
return {
|
|
482
580
|
slots,
|
|
483
581
|
model: result.model,
|
|
484
|
-
usage:
|
|
485
|
-
cost:
|
|
582
|
+
usage: folded.usage,
|
|
583
|
+
cost: folded.cost,
|
|
486
584
|
lengthWarning,
|
|
487
585
|
};
|
|
488
586
|
}
|
|
489
587
|
catch (e) {
|
|
490
588
|
lastError = e;
|
|
589
|
+
LlmClient.addDiscarded(discarded, result.usage, result.cost);
|
|
491
590
|
this.logger?.warn(`lint-source batch failed with ${model}: ${e}`);
|
|
492
591
|
}
|
|
493
592
|
}
|
|
@@ -510,25 +609,39 @@ export class LlmClient {
|
|
|
510
609
|
]);
|
|
511
610
|
const start = Math.max(0, Math.floor(options?.startModelIndex ?? 0));
|
|
512
611
|
let lastError;
|
|
612
|
+
const discarded = LlmClient.emptyDiscarded();
|
|
513
613
|
for (let mi = start; mi < this.modelsToTry.length; mi++) {
|
|
514
614
|
const model = this.modelsToTry[mi];
|
|
615
|
+
let result;
|
|
616
|
+
try {
|
|
617
|
+
result = await this.fetchCompletion(model, openRouterMessages);
|
|
618
|
+
}
|
|
619
|
+
catch (e) {
|
|
620
|
+
lastError = e;
|
|
621
|
+
if (e instanceof BilledCompletionError) {
|
|
622
|
+
LlmClient.addDiscarded(discarded, e.usage, e.cost);
|
|
623
|
+
}
|
|
624
|
+
this.logger?.warn(`Plural cardinal batch failed with ${model}: ${e}`);
|
|
625
|
+
continue;
|
|
626
|
+
}
|
|
515
627
|
try {
|
|
516
|
-
const result = await this.fetchCompletion(model, openRouterMessages);
|
|
517
628
|
const forms = parsePluralFormsJsonResponse(result.content, expectedForms);
|
|
518
629
|
if (options?.targetLocale) {
|
|
519
630
|
for (const value of Object.values(forms)) {
|
|
520
631
|
this.assertExpectedScript(value, options.targetLocale);
|
|
521
632
|
}
|
|
522
633
|
}
|
|
634
|
+
const folded = LlmClient.foldDiscarded(result.usage, result.cost, discarded);
|
|
523
635
|
return {
|
|
524
636
|
forms,
|
|
525
637
|
model: result.model,
|
|
526
|
-
usage:
|
|
527
|
-
cost:
|
|
638
|
+
usage: folded.usage,
|
|
639
|
+
cost: folded.cost,
|
|
528
640
|
};
|
|
529
641
|
}
|
|
530
642
|
catch (e) {
|
|
531
643
|
lastError = e;
|
|
644
|
+
LlmClient.addDiscarded(discarded, result.usage, result.cost);
|
|
532
645
|
this.logger?.warn(`Plural cardinal batch failed with ${model}: ${e}`);
|
|
533
646
|
}
|
|
534
647
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/api/llm-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EACL,sBAAsB,GAGvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAML,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,aAAa,EACb,uBAAuB,GAExB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,GAItB,MAAM,2BAA2B,CAAC;AAGnC,kGAAkG;AAClG,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,YAAqB;IAC3B,eAAe,EAAE,IAAI;CACtB,CAAC;AAOF;;;GAGG;AACH,MAAM,2BAA2B,GAAsB;IACrD,eAAe,EAAE,CAAC,EAAE,UAAU,EAA2B,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,UAAmE,CAAC;QACjF,MAAM,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC;QAC7C,OAAO,OAAO,CAAC,OAAO,CACpB,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAC/E,CAAC;IACJ,CAAC;IACD,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;QACtB,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS;KAC/B,CAAC;CACH,CAAC;AAEF,+FAA+F;AAC/F,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAC1D,YACE,OAAe,EACC,OAOf;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QATC,YAAO,GAAP,OAAO,CAOtB;QAGD,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;IAClD,CAAC;CACF;AAqBD;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAgBpB,YAAY,IAAsB;QAChC,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC;QAC9D,MAAM,QAAQ,GAAG,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAErE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,CAAC,SAAS,IAAI,SAAS,8BAA8B,IAAI,CAAC,QAAQ,GAAG,CACjF,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACxC,MAAM,YAAY,GAChB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC5C,CAAC,CAAC,QAAQ;iBACL,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;iBACxE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC;QACX,IAAI,CAAC,WAAW;YACd,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;gBAC9C,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,kDAAkD,IAAI,CAAC,QAAQ,oBAAoB,IAAI,CAAC,QAAQ,qBAAqB,CACtH,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1E,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,yCAAyC,CAAC;QACjF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAEO,aAAa,CAAC,QAAkC;QACtD,MAAM,OAAO,GAA2B,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAChE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAC3C,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,CAAC;QACD,OAAO,sBAAsB,CAAC;YAC5B,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO;YACP,GAAG,CAAC,IAAI,CAAC,YAAY;gBACnB,CAAC,CAAC;oBACE,oBAAoB,EAAE,CAAC,IAA6B,EAAE,EAAE,CAAC,CAAC;wBACxD,GAAG,IAAI;wBACP,QAAQ,EAAE,mBAAmB;qBAC9B,CAAC;oBACF,iBAAiB,EAAE,2BAA2B;iBAC/C;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,oFAAoF;IACpF,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,sBAAsB,CAAC,UAAkB;QAC/C,MAAM,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,OAAO,GACX,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE;YACnB,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;OASG;IACK,oBAAoB,CAAC,IAAY,EAAE,YAAoB;QAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GACZ,MAAM,KAAK,MAAM;YACf,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,MAAM,GAAG,CAAC;QAC3D,MAAM,IAAI,qBAAqB,CAC7B,cAAc,YAAY,6CAA6C,QAAQ,YAAY,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EACjH,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,SAAiC,EAAE,OAAgB;QACxE,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,cAAc,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,aAAa,CAAC;QACrE,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC;YACH,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,yEAAyE;IACjE,eAAe,CACrB,UAAkB,EAClB,YAAgC,EAChC,WAAmB,EACnB,SAAiB,EACjB,KAAc;QAEd,MAAM,GAAG,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAChF,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,WAAW,YAAY,MAAM,aAAa,SAAS,GAAG,CAAC,CACtF,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAC1B,QAA2E;QAE3E,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,6FAA6F;IACrF,WAAW,CACjB,gBAAqE;QAErE,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC;QAC9D,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,6FAA6F;IACrF,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,QAAsB;QACjE,MAAM,UAAU,GAAG,QAAQ;aACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,MAAM,CAAC,CAAC;QAChB,MAAM,YAAY,GAAG,QAAQ;aAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAA4B,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAE9E,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,UAAU;gBAClB,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAgD,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,YAAY,CAAC;gBAC1B,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBACnC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,QAAQ,EAAE,YAAY;gBACtB,eAAe,EAAE,IAAI,CAAC,SAAS;gBAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,CAAC;gBACb,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC9B,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;oBAC9B,KAAK;oBACL,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,QAAQ,wBAAwB,KAAK,KAAK,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC5B,MAAM,KAAK,GAAkB;YAC3B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;YAC1C,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC;YAC5C,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;SAC3C,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;gBAC9B,KAAK;gBACL,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,KAAK;gBACL,IAAI;gBACJ,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,QAAQ,UAAU,KAAK,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,QAA2E,EAC3E,OAKC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,SAAkB,CAAC;QAEvB,KAAK,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACzE,OAAO,EAAE,gBAAgB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAChD,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,GAAG,CAAC,CAAC;gBACd,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3C,IAAI,SAAS,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;oBACxC,IAAI,CAAC,eAAe,CAClB,OAAO,CAAC,aAAa,CAAC,MAAM,EAC5B,OAAO,CAAC,aAAa,CAAC,YAAY,EAClC,KAAK,EACL,SAAS,EACT,CAAC,CACF,CAAC;gBACJ,CAAC;qBAAM,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;oBACnC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CACxG,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,OAAe;QAChC,OAAO,OAAO;aACX,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;aAClC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;aACpC,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,OAAe,EACf,YAAoB,EACpB,aAAuB,EACvB,OAIC;QAED,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,UAAU,CAAC;QACvD,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,yBAAyB,CAC7D,OAAO,EACP;YACE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,mBAAmB,EAAE,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;YAC9D,aAAa;YACb,YAAY;SACb,EACD,WAAW,CACZ,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CACzB;YACE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,EACD;YACE,eAAe,EAAE,OAAO,EAAE,eAAe;YACzC,aAAa,EAAE,OAAO,EAAE,aAAa;YACrC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CACtB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC;SACtE,CACF,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;YAC7C,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,WAAW,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE;YAC1C,mBAAmB,EAAE,GAAG,CAAC,OAAO;SACjC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,QAAmB,EACnB,MAAc,EACd,gBAA0B,EAAE,EAC5B,OAMC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,YAAY,EAAE,IAAI,GAAG,EAAE;gBACvB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE;gBAC3B,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;aAC3D,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,UAAU,CAAC;QACvD,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,UAAU,CAAC;QAC7D,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,wBAAwB,CAC5D,QAAQ,EACR;YACE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,mBAAmB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;YACxD,aAAa;YACb,YAAY,EAAE,MAAM;SACrB,EACD,WAAW,EACX,cAAc,CACf,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,SAAkB,CAAC;QACvB,IAAI,kBAQS,CAAC;QAEd,KAAK,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAE,CAAC;YACpC,IAAI,UAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,GAAG,CAAC,CAAC;gBACd,kBAAkB,GAAG;oBACnB,YAAY;oBACZ,WAAW;oBACX,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,CAAC;oBACZ,uBAAuB,EAAE,SAAS;iBACnC,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3C,IAAI,SAAS,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;oBACxC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBACxF,CAAC;qBAAM,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;oBACnC,IAAI,CAAC,YAAY,qBAAqB,EAAE,CAAC;wBACvC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtE,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,6BAA6B,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,YAAiC,CAAC;gBACtC,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;oBACpC,YAAY,GAAG,2BAA2B,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAClF,CAAC;qBAAM,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;oBAC5C,YAAY,GAAG,4BAA4B,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnF,CAAC;qBAAM,CAAC;oBACN,YAAY,GAAG,6BAA6B,CAC1C,UAAU,CAAC,OAAO,EAClB,QAAQ,CAAC,MAAM,EACf,UAAU,CAAC,OAAO,CACnB,CAAC;gBACJ,CAAC;gBACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1C,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO;oBACL,YAAY;oBACZ,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,WAAW,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE;oBAC1C,mBAAmB,EAAE,UAAU,CAAC,OAAO;iBACxC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,GAAG,CAAC,CAAC;gBACd,kBAAkB,GAAG;oBACnB,YAAY;oBACZ,WAAW;oBACX,SAAS,EAAE,KAAK;oBAChB,SAAS,EAAE,CAAC;oBACZ,uBAAuB,EAAE,UAAU,CAAC,OAAO;iBAC5C,CAAC;gBACF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3C,IAAI,SAAS,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;oBACxC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gBACxF,CAAC;qBAAM,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,CAAC;oBACnC,IAAI,CAAC,YAAY,qBAAqB,EAAE,CAAC;wBACvC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,KAAK,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtE,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,2BAA2B,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,4CAA4C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACvL,MAAM,OAAO,GACX,kBAAkB;YACjB;gBACC,YAAY;gBACZ,WAAW;gBACX,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE;gBACtE,SAAS;gBACT,uBAAuB,EAAE,SAAS;aACzB,CAAC;QACd,MAAM,IAAI,iCAAiC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,KAAe,EACf,YAAoB,EACpB,OAAgE;QAOhE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE;gBAC3B,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;aAC3D,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAAC,KAAK,EAAE;YACjE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,mBAAmB,EAAE,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;YAC9D,aAAa,EAAE,OAAO,EAAE,aAAa;YACrC,YAAY;SACb,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,SAAkB,CAAC;QAEvB,KAAK,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACrE,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5E,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;oBACjC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;gBACjD,CAAC;gBACD,OAAO;oBACL,YAAY;oBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CACrH,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,KAAe,EACf,aAAqB,EACrB,OAAgE;QAQhE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE;gBAC3B,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;gBAC1D,aAAa,EAAE,IAAI;aACpB,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,6BAA6B,CAAC,KAAK,EAAE;YACzE,aAAa;YACb,aAAa,EAAE,OAAO,EAAE,aAAa;SACtC,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,SAAkB,CAAC;QAEvB,KAAK,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACrE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,4BAA4B,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC5F,OAAO;oBACL,KAAK;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,aAAa;iBACd,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iCAAiC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,wDAAwD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAC9H,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,4BAA4B,CAChC,aAA+B,EAC/B,QAAuD,EACvD,OAA6D;QAO7D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,KAAK,EAAE,EAAoC;gBAC3C,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE;gBAC3B,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;aAC3D,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACnD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,EAAE;YAClD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE;SAChD,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,SAAkB,CAAC;QAEvB,KAAK,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBACrE,MAAM,KAAK,GAAG,4BAA4B,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBAC1E,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;oBAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;gBACD,OAAO;oBACL,KAAK;oBACL,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qCAAqC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,4DAA4D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAClI,CAAC;IACJ,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/api/llm-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-markdown.d.ts","sourceRoot":"","sources":["../../src/cli/check-markdown.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"check-markdown.d.ts","sourceRoot":"","sources":["../../src/cli/check-markdown.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAgBnD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyEhG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import chalk from "chalk";
|
|
4
|
+
import { t } from "../i18n/index.js";
|
|
4
5
|
import { toDocTranslateConfig } from "../core/config.js";
|
|
5
6
|
import { TranslationCache } from "../core/cache.js";
|
|
6
7
|
import { documentationFileTrackingKey } from "../core/doc-file-tracking.js";
|
|
@@ -68,10 +69,10 @@ export async function runCheckMarkdown(opts) {
|
|
|
68
69
|
console.log(JSON.stringify({ issues: jsonRows, count: issueCount }, null, 2));
|
|
69
70
|
}
|
|
70
71
|
else if (issueCount > 0) {
|
|
71
|
-
console.error(chalk.red(
|
|
72
|
+
console.error(chalk.red(t("\n❌ check-markdown: {{count}} issue(s) in documentation sources", { count: issueCount })));
|
|
72
73
|
}
|
|
73
74
|
else {
|
|
74
|
-
console.log(chalk.green("✅ check-markdown: no markdown source issues found"));
|
|
75
|
+
console.log(chalk.green(t("✅ check-markdown: no markdown source issues found")));
|
|
75
76
|
}
|
|
76
77
|
return { exitCode: issueCount > 0 ? 1 : 0 };
|
|
77
78
|
}
|