@atomic-chat/core 0.21.1 → 0.21.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/dist/backend/advisor/advisor.js +11 -2
- package/dist/backend/advisor/advisor.js.map +1 -1
- package/dist/backend/install/cuda-guard.d.ts +62 -0
- package/dist/backend/install/cuda-guard.js +80 -0
- package/dist/backend/install/cuda-guard.js.map +1 -0
- package/dist/backend/install/cuda-runtime-source.d.ts +76 -0
- package/dist/backend/install/cuda-runtime-source.js +294 -0
- package/dist/backend/install/cuda-runtime-source.js.map +1 -0
- package/dist/backend/install/index.d.ts +3 -0
- package/dist/backend/install/index.js +3 -0
- package/dist/backend/install/index.js.map +1 -1
- package/dist/backend/install/runtime-backend.d.ts +30 -3
- package/dist/backend/install/runtime-backend.js +106 -28
- package/dist/backend/install/runtime-backend.js.map +1 -1
- package/dist/backend/install/service.d.ts +40 -4
- package/dist/backend/install/service.js +175 -31
- package/dist/backend/install/service.js.map +1 -1
- package/dist/backend/install/windows-launch-check.d.ts +72 -0
- package/dist/backend/install/windows-launch-check.js +173 -0
- package/dist/backend/install/windows-launch-check.js.map +1 -0
- package/dist/backend/installed/installed.d.ts +13 -0
- package/dist/backend/installed/installed.js +32 -0
- package/dist/backend/installed/installed.js.map +1 -1
- package/dist/backend/select/bad-backends.d.ts +68 -0
- package/dist/backend/select/bad-backends.js +136 -0
- package/dist/backend/select/bad-backends.js.map +1 -0
- package/dist/backend/select/features.d.ts +18 -1
- package/dist/backend/select/features.js +29 -1
- package/dist/backend/select/features.js.map +1 -1
- package/dist/backend/select/index.d.ts +1 -0
- package/dist/backend/select/index.js +1 -0
- package/dist/backend/select/index.js.map +1 -1
- package/dist/backend/turboquant.d.ts +8 -0
- package/dist/backend/turboquant.js +37 -9
- package/dist/backend/turboquant.js.map +1 -1
- package/dist/cli/main.d.ts +1 -1
- package/dist/contracts/diagnostics.d.ts +1 -1
- package/dist/contracts/diagnostics.js +1 -0
- package/dist/contracts/diagnostics.js.map +1 -1
- package/dist/contracts/errors.d.ts +3 -3
- package/dist/contracts/errors.js +15 -0
- package/dist/contracts/errors.js.map +1 -1
- package/dist/contracts/hardware.d.ts +8 -0
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/load-diag.d.ts +34 -0
- package/dist/contracts/load-diag.js +48 -0
- package/dist/contracts/load-diag.js.map +1 -0
- package/dist/core/atomic-core.d.ts +1 -1
- package/dist/core/create.js +16 -13
- package/dist/core/create.js.map +1 -1
- package/dist/downloads/archive.js +8 -3
- package/dist/downloads/archive.js.map +1 -1
- package/dist/downloads/disk.d.ts +18 -0
- package/dist/downloads/disk.js +32 -1
- package/dist/downloads/disk.js.map +1 -1
- package/dist/downloads/downloader.js +7 -4
- package/dist/downloads/downloader.js.map +1 -1
- package/dist/downloads/fs-retry.d.ts +27 -0
- package/dist/downloads/fs-retry.js +40 -0
- package/dist/downloads/fs-retry.js.map +1 -0
- package/dist/downloads/index.d.ts +1 -0
- package/dist/downloads/index.js +1 -0
- package/dist/downloads/index.js.map +1 -1
- package/dist/hardware/index.d.ts +1 -0
- package/dist/hardware/index.js +1 -0
- package/dist/hardware/index.js.map +1 -1
- package/dist/hardware/probe-common.d.ts +9 -1
- package/dist/hardware/probe-common.js.map +1 -1
- package/dist/hardware/probe-windows.d.ts +10 -2
- package/dist/hardware/probe-windows.js +65 -10
- package/dist/hardware/probe-windows.js.map +1 -1
- package/dist/hardware/probe.js +1 -1
- package/dist/hardware/probe.js.map +1 -1
- package/dist/hardware/service.d.ts +11 -0
- package/dist/hardware/service.js +31 -4
- package/dist/hardware/service.js.map +1 -1
- package/dist/hardware/windows-registry.d.ts +80 -0
- package/dist/hardware/windows-registry.js +197 -0
- package/dist/hardware/windows-registry.js.map +1 -0
- package/dist/runtime/llamacpp/args.d.ts +11 -0
- package/dist/runtime/llamacpp/args.js +28 -3
- package/dist/runtime/llamacpp/args.js.map +1 -1
- package/dist/runtime/llamacpp/devices.d.ts +11 -0
- package/dist/runtime/llamacpp/devices.js +22 -0
- package/dist/runtime/llamacpp/devices.js.map +1 -1
- package/dist/runtime/llamacpp/errors.d.ts +32 -2
- package/dist/runtime/llamacpp/errors.js +77 -4
- package/dist/runtime/llamacpp/errors.js.map +1 -1
- package/dist/runtime/llamacpp/index.d.ts +1 -0
- package/dist/runtime/llamacpp/index.js +1 -0
- package/dist/runtime/llamacpp/index.js.map +1 -1
- package/dist/runtime/llamacpp/load-failure.d.ts +52 -0
- package/dist/runtime/llamacpp/load-failure.js +105 -0
- package/dist/runtime/llamacpp/load-failure.js.map +1 -0
- package/dist/runtime/llamacpp/load-plan.d.ts +5 -0
- package/dist/runtime/llamacpp/load-plan.js +34 -4
- package/dist/runtime/llamacpp/load-plan.js.map +1 -1
- package/dist/runtime/llamacpp/runtime.d.ts +24 -1
- package/dist/runtime/llamacpp/runtime.js +116 -27
- package/dist/runtime/llamacpp/runtime.js.map +1 -1
- package/dist/runtime/shared/env.js +13 -15
- package/dist/runtime/shared/env.js.map +1 -1
- package/dist/telemetry/diagnostics.js +4 -0
- package/dist/telemetry/diagnostics.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Windows GPUs from `reg.exe`, for when the PowerShell probe cannot run: AppLocker or AMSI blocking
|
|
3
|
+
* `powershell.exe`, a cold start past its deadline, a broken WMI repository that answers no video
|
|
4
|
+
* controller. `reg.exe` is a plain console tool: no execution policy, no script host, nothing for AMSI
|
|
5
|
+
* to scan. It reads the same display class key the PowerShell script reads — one `NNNN` subkey per
|
|
6
|
+
* installed display driver instance, with the driver's name (`DriverDesc`), vendor (`ProviderName`),
|
|
7
|
+
* PCI ids (`MatchingDeviceId`), version and VRAM (`HardwareInformation.qwMemorySize`, or the 32-bit
|
|
8
|
+
* `HardwareInformation.MemorySize`) — and the Khronos Vulkan driver registrations.
|
|
9
|
+
*
|
|
10
|
+
* What it cannot see is which of those driver instances belongs to a device that is present: a card
|
|
11
|
+
* moved to another slot or replaced keeps its old key. So a vendor and device id is listed once (two
|
|
12
|
+
* identical non-NVIDIA cards read as one), and an NVIDIA key counts only as often as `nvidia-smi`,
|
|
13
|
+
* which is authoritative for NVIDIA, reports a GPU of that name. CPU flags have no cheap source
|
|
14
|
+
* outside PowerShell (`wmic` is deprecated and gone from new installs) and stay unknown.
|
|
15
|
+
*
|
|
16
|
+
* Pure: the key names, the parse of `reg query` output and the adapter list. `probe-windows.ts` runs it.
|
|
17
|
+
*/
|
|
18
|
+
import { icdVendorOf } from './vulkan.js';
|
|
19
|
+
import { parsePnpDeviceId } from './windows-video.js';
|
|
20
|
+
const DISPLAY_CLASS_GUID = '{4d36e968-e325-11ce-bfc1-08002be10318}';
|
|
21
|
+
/** The display adapter class key, in `reg.exe` spelling. */
|
|
22
|
+
export const DISPLAY_CLASS_REG_KEY = `HKLM\\SYSTEM\\CurrentControlSet\\Control\\Class\\${DISPLAY_CLASS_GUID}`;
|
|
23
|
+
/** The Vulkan loader's driver registrations: one value per ICD manifest, named by its path. */
|
|
24
|
+
export const VULKAN_DRIVERS_REG_KEY = 'HKLM\\SOFTWARE\\Khronos\\Vulkan\\Drivers';
|
|
25
|
+
/** `reg.exe` from `%SystemRoot%`, not whatever `reg.exe` comes first on PATH. */
|
|
26
|
+
export function regExePath(env) {
|
|
27
|
+
return `${env['SystemRoot'] ?? env['SYSTEMROOT'] ?? 'C:\\Windows'}\\System32\\reg.exe`;
|
|
28
|
+
}
|
|
29
|
+
/** One key, no recursion: its values, and its subkeys as lines of their own. */
|
|
30
|
+
export function regQueryArgs(key) {
|
|
31
|
+
return ['query', key];
|
|
32
|
+
}
|
|
33
|
+
const VALUE_LINE = /^ {4}(.+?) {4}(REG_[A-Z0-9_]+)(?: {4}(.*))?$/;
|
|
34
|
+
/**
|
|
35
|
+
* `reg query` output: a key path at the start of a line, then its values indented four spaces
|
|
36
|
+
* (`name TYPE data`); the subkeys of a non-recursive query follow as bare key paths. Error
|
|
37
|
+
* lines (`ERROR: Access is denied.`) and blank lines are skipped. Tolerates CRLF, a BOM and the NULs
|
|
38
|
+
* of UTF-16 output read as single bytes.
|
|
39
|
+
*/
|
|
40
|
+
export function parseRegQuery(text) {
|
|
41
|
+
const keys = [];
|
|
42
|
+
let current;
|
|
43
|
+
for (const raw of text
|
|
44
|
+
.replaceAll('\u0000', '')
|
|
45
|
+
.replace(/^[\uFEFF\uFFFD]+/, '')
|
|
46
|
+
.split(/\r?\n/)) {
|
|
47
|
+
if (raw.startsWith('HKEY_')) {
|
|
48
|
+
current = { path: raw.trimEnd(), values: [] };
|
|
49
|
+
keys.push(current);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const m = VALUE_LINE.exec(raw.trimEnd());
|
|
53
|
+
if (!m || !current)
|
|
54
|
+
continue;
|
|
55
|
+
current.values.push({ name: m[1], type: m[2], data: (m[3] ?? '').trim() });
|
|
56
|
+
}
|
|
57
|
+
return keys;
|
|
58
|
+
}
|
|
59
|
+
/** Whether `path` is one driver instance of the display class (`…\{4d36e968-…}\0003`). */
|
|
60
|
+
export function isDisplayDriverKey(path) {
|
|
61
|
+
const i = path.toLowerCase().lastIndexOf(`\\${DISPLAY_CLASS_GUID}\\`);
|
|
62
|
+
return i >= 0 && /^\d{4}$/.test(path.slice(i + DISPLAY_CLASS_GUID.length + 2));
|
|
63
|
+
}
|
|
64
|
+
/** A `REG_DWORD`/`REG_QWORD` (`0x…`) or a little-endian `REG_BINARY`, as a number; `undefined` for anything else. */
|
|
65
|
+
export function regNumber(value) {
|
|
66
|
+
if (!value)
|
|
67
|
+
return undefined;
|
|
68
|
+
if (value.type === 'REG_DWORD' || value.type === 'REG_QWORD') {
|
|
69
|
+
const m = /^0x([0-9a-f]+)$/i.exec(value.data);
|
|
70
|
+
return m ? Number.parseInt(m[1], 16) : undefined;
|
|
71
|
+
}
|
|
72
|
+
if (value.type === 'REG_BINARY') {
|
|
73
|
+
const hex = value.data.replace(/\s+/g, '');
|
|
74
|
+
if (hex === '' || hex.length % 2 !== 0 || !/^[0-9a-f]+$/i.test(hex) || hex.length > 16)
|
|
75
|
+
return undefined;
|
|
76
|
+
let n = 0;
|
|
77
|
+
for (let i = hex.length - 2; i >= 0; i -= 2)
|
|
78
|
+
n = n * 256 + Number.parseInt(hex.slice(i, i + 2), 16);
|
|
79
|
+
return n;
|
|
80
|
+
}
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
/** The strings of a `REG_MULTI_SZ` (or a `REG_SZ`), empty ones dropped. */
|
|
84
|
+
export function regStrings(value) {
|
|
85
|
+
if (!value || (value.type !== 'REG_MULTI_SZ' && value.type !== 'REG_SZ'))
|
|
86
|
+
return [];
|
|
87
|
+
return value.data.split('\\0').filter((s) => s.trim() !== '');
|
|
88
|
+
}
|
|
89
|
+
/** The driver instances among the parsed keys, with the values the adapter list needs. */
|
|
90
|
+
export function registryDisplayKeys(keys) {
|
|
91
|
+
const out = [];
|
|
92
|
+
for (const key of keys) {
|
|
93
|
+
if (!isDisplayDriverKey(key.path))
|
|
94
|
+
continue;
|
|
95
|
+
const value = (name) => key.values.find((v) => v.name.toLowerCase() === name.toLowerCase());
|
|
96
|
+
const text = (name) => {
|
|
97
|
+
const v = value(name);
|
|
98
|
+
return v && v.type === 'REG_SZ' && v.data !== '' ? v.data : undefined;
|
|
99
|
+
};
|
|
100
|
+
const entry = {
|
|
101
|
+
key: key.path.slice(-4),
|
|
102
|
+
VulkanDriverName: regStrings(value('VulkanDriverName')),
|
|
103
|
+
};
|
|
104
|
+
const fields = {
|
|
105
|
+
MatchingDeviceId: text('MatchingDeviceId'),
|
|
106
|
+
DriverDesc: text('DriverDesc'),
|
|
107
|
+
ProviderName: text('ProviderName'),
|
|
108
|
+
DriverVersion: text('DriverVersion'),
|
|
109
|
+
qwMemorySize: regNumber(value('HardwareInformation.qwMemorySize')),
|
|
110
|
+
memorySize: regNumber(value('HardwareInformation.MemorySize')),
|
|
111
|
+
};
|
|
112
|
+
for (const [k, v] of Object.entries(fields))
|
|
113
|
+
if (v !== undefined)
|
|
114
|
+
Object.assign(entry, { [k]: v });
|
|
115
|
+
out.push(entry);
|
|
116
|
+
}
|
|
117
|
+
return out;
|
|
118
|
+
}
|
|
119
|
+
/** The Vulkan ICD manifests a `HKLM\SOFTWARE\Khronos\Vulkan\Drivers` query lists (value names are paths). */
|
|
120
|
+
export function vulkanDriverPaths(keys) {
|
|
121
|
+
return keys.flatMap((key) => key.values.map((v) => v.name)).filter((name) => /\.json$/i.test(name));
|
|
122
|
+
}
|
|
123
|
+
const NVIDIA_VENDOR_ID = 0x10de;
|
|
124
|
+
const sameName = (a, b) => a.trim().toLowerCase() === b.trim().toLowerCase();
|
|
125
|
+
/**
|
|
126
|
+
* The GPUs the display class key names, in key order, as the PowerShell path's `WindowsAdapter` rows
|
|
127
|
+
* so `mergeGpus` treats them alike. Software adapters (no PCI or Adreno id) are skipped. `nvidiaNames`
|
|
128
|
+
* are the GPUs `nvidia-smi` reported: when it answered, an NVIDIA key is kept only as often as a GPU
|
|
129
|
+
* of that name is there; when it did not, each NVIDIA device id is listed once, like the other vendors.
|
|
130
|
+
*/
|
|
131
|
+
export function registryGpus(displayKeys, vulkanDrivers, nvidiaNames) {
|
|
132
|
+
const icdVendors = new Set();
|
|
133
|
+
for (const manifest of [...vulkanDrivers, ...displayKeys.flatMap((k) => k.VulkanDriverName)]) {
|
|
134
|
+
const vendor = icdVendorOf(manifest);
|
|
135
|
+
if (vendor)
|
|
136
|
+
icdVendors.add(vendor);
|
|
137
|
+
}
|
|
138
|
+
const candidates = [];
|
|
139
|
+
for (const key of displayKeys) {
|
|
140
|
+
const ids = key.MatchingDeviceId ? parsePnpDeviceId(key.MatchingDeviceId) : undefined;
|
|
141
|
+
if (!ids)
|
|
142
|
+
continue;
|
|
143
|
+
let vramTotalMiB;
|
|
144
|
+
let memoryFrom;
|
|
145
|
+
if (key.qwMemorySize !== undefined && key.qwMemorySize > 0)
|
|
146
|
+
vramTotalMiB = Math.floor(key.qwMemorySize / 2 ** 20);
|
|
147
|
+
else if (key.memorySize !== undefined && key.memorySize > 0) {
|
|
148
|
+
vramTotalMiB = Math.floor(key.memorySize / 2 ** 20);
|
|
149
|
+
memoryFrom = 'MemorySize';
|
|
150
|
+
}
|
|
151
|
+
candidates.push({
|
|
152
|
+
adapter: {
|
|
153
|
+
name: key.DriverDesc?.trim() || `GPU ${key.MatchingDeviceId}`,
|
|
154
|
+
vendorId: ids.vendorId,
|
|
155
|
+
deviceId: ids.deviceId,
|
|
156
|
+
// The driver key a device instance points at: stable across boots, unique per card.
|
|
157
|
+
pnpDeviceId: `${DISPLAY_CLASS_GUID}\\${key.key}`,
|
|
158
|
+
driverVersion: key.DriverVersion ?? '',
|
|
159
|
+
...(vramTotalMiB !== undefined ? { vramTotalMiB } : {}),
|
|
160
|
+
vulkanDriver: key.VulkanDriverName.length > 0,
|
|
161
|
+
},
|
|
162
|
+
...(memoryFrom ? { memoryFrom } : {}),
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
// A key with a VRAM figure is the one kept when several describe the same device.
|
|
166
|
+
const ordered = [...candidates].sort((a, b) => Number(b.adapter.vramTotalMiB !== undefined) - Number(a.adapter.vramTotalMiB !== undefined));
|
|
167
|
+
const kept = new Set();
|
|
168
|
+
const nvidiaLeft = [...nvidiaNames];
|
|
169
|
+
const seen = new Set();
|
|
170
|
+
for (const candidate of ordered) {
|
|
171
|
+
const { adapter } = candidate;
|
|
172
|
+
if (adapter.vendorId === NVIDIA_VENDOR_ID && nvidiaNames.length > 0) {
|
|
173
|
+
const i = nvidiaLeft.findIndex((name) => sameName(name, adapter.name));
|
|
174
|
+
if (i < 0)
|
|
175
|
+
continue;
|
|
176
|
+
nvidiaLeft.splice(i, 1);
|
|
177
|
+
kept.add(candidate);
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
const id = `${adapter.vendorId}:${adapter.deviceId}`;
|
|
181
|
+
if (seen.has(id))
|
|
182
|
+
continue;
|
|
183
|
+
seen.add(id);
|
|
184
|
+
kept.add(candidate);
|
|
185
|
+
}
|
|
186
|
+
const adapters = [];
|
|
187
|
+
const warnings = [];
|
|
188
|
+
for (const candidate of candidates) {
|
|
189
|
+
if (!kept.has(candidate))
|
|
190
|
+
continue;
|
|
191
|
+
adapters.push(candidate.adapter);
|
|
192
|
+
if (candidate.memoryFrom)
|
|
193
|
+
warnings.push(`${candidate.adapter.name}: VRAM read from HardwareInformation.MemorySize, which caps at 4 GiB`);
|
|
194
|
+
}
|
|
195
|
+
return { adapters, icdVendors, warnings };
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=windows-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windows-registry.js","sourceRoot":"","sources":["../../src/hardware/windows-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,MAAM,kBAAkB,GAAG,wCAAwC,CAAA;AACnE,4DAA4D;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,oDAAoD,kBAAkB,EAAE,CAAA;AAC7G,+FAA+F;AAC/F,MAAM,CAAC,MAAM,sBAAsB,GAAG,0CAA0C,CAAA;AAEhF,iFAAiF;AACjF,MAAM,UAAU,UAAU,CAAC,GAAsB;IAC/C,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,aAAa,qBAAqB,CAAA;AACxF,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACvB,CAAC;AAgBD,MAAM,UAAU,GAAG,8CAA8C,CAAA;AAEjE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,OAA2B,CAAA;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI;SACnB,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;YAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClB,SAAQ;QACV,CAAC;QACD,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;YAAE,SAAQ;QAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAChG,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,KAAK,kBAAkB,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAChF,CAAC;AAED,qHAAqH;AACrH,MAAM,UAAU,SAAS,CAAC,KAA2B;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC7D,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC1C,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,SAAS,CAAA;QACxG,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;YAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACnG,OAAO,CAAC,CAAA;IACV,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAC,KAA2B;IACpD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAA;IACnF,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AAC/D,CAAC;AAiBD,0FAA0F;AAC1F,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,MAAM,GAAG,GAAyB,EAAE,CAAA;IACpC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC3C,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QACnG,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;YACrB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QACvE,CAAC,CAAA;QACD,MAAM,KAAK,GAAuB;YAChC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACxD,CAAA;QACD,MAAM,MAAM,GAAG;YACb,gBAAgB,EAAE,IAAI,CAAC,kBAAkB,CAAC;YAC1C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;YAC9B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;YAClC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC;YACpC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAClE,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;SAC/D,CAAA;QACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS;gBAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAClG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,iBAAiB,CAAC,IAAc;IAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACrG,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAE/B,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;AAE5F;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,WAAiC,EACjC,aAAuB,EACvB,WAAqB;IAErB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IACpC,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,aAAa,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QACpC,IAAI,MAAM;YAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IACD,MAAM,UAAU,GAAkE,EAAE,CAAA;IACpF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACrF,IAAI,CAAC,GAAG;YAAE,SAAQ;QAClB,IAAI,YAAgC,CAAA;QACpC,IAAI,UAAoC,CAAA;QACxC,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,CAAC,YAAY,GAAG,CAAC;YACxD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;aAClD,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC5D,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACnD,UAAU,GAAG,YAAY,CAAA;QAC3B,CAAC;QACD,UAAU,CAAC,IAAI,CAAC;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,OAAO,GAAG,CAAC,gBAAgB,EAAE;gBAC7D,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,oFAAoF;gBACpF,WAAW,EAAE,GAAG,kBAAkB,KAAK,GAAG,CAAC,GAAG,EAAE;gBAChD,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,EAAE;gBACtC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,YAAY,EAAE,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;aAC9C;YACD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAA;IACJ,CAAC;IACD,kFAAkF;IAClF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CACtG,CAAA;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAA;IACnD,MAAM,UAAU,GAAG,CAAC,GAAG,WAAW,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;QAC7B,IAAI,OAAO,CAAC,QAAQ,KAAK,gBAAgB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YACtE,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAQ;YACnB,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QACD,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAA;QACpD,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAQ;QAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACZ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrB,CAAC;IACD,MAAM,QAAQ,GAAqB,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAQ;QAClC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAChC,IAAI,SAAS,CAAC,UAAU;YACtB,QAAQ,CAAC,IAAI,CACX,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,sEAAsE,CAChG,CAAA;IACL,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;AAC3C,CAAC"}
|
|
@@ -119,5 +119,16 @@ export declare function isTurboquantVersion(version: string): boolean;
|
|
|
119
119
|
export declare function parseExtraArgs(value: string): string[];
|
|
120
120
|
/** Build the plan (argv + warnings). Throws `INVALID_ARGUMENT` for a malformed `version_backend`. */
|
|
121
121
|
export declare function planLlamaArgs(config: LlamacppConfig, input: LlamaArgsInput): LlamaArgsPlan;
|
|
122
|
+
/**
|
|
123
|
+
* The `fit_ctx` a load runs with: the model's own value when it is a window — a positive whole number
|
|
124
|
+
* of tokens, as a number or as its text — otherwise the provider's. The app grows the window under
|
|
125
|
+
* fit by reloading a model with its own `fit_ctx`; an empty, absent or unusable model value must not
|
|
126
|
+
* wipe the provider's.
|
|
127
|
+
*/
|
|
128
|
+
export declare function resolveFitCtx(providerValue: unknown, modelValue: unknown): string;
|
|
129
|
+
/** `fit_ctx` in tokens: a positive whole number, or 0 when it names no window. */
|
|
130
|
+
export declare function fitCtxTokens(value: unknown): number;
|
|
131
|
+
/** `fit_ctx` as llama-server takes it: a number in its decimal text, a string trimmed, anything else `''`. */
|
|
132
|
+
export declare function fitCtxText(value: unknown): string;
|
|
122
133
|
/** Convenience: argv only. */
|
|
123
134
|
export declare function buildLlamaArgs(config: LlamacppConfig, input: LlamaArgsInput): string[];
|
|
@@ -390,7 +390,9 @@ export function planLlamaArgs(config, input) {
|
|
|
390
390
|
if (cfg.ctx_size > 0 && !cfg.fit)
|
|
391
391
|
push('--ctx-size', String(cfg.ctx_size));
|
|
392
392
|
else if (cfg.fit && !ik && input.fitCtxCeiling !== undefined && input.fitCtxCeiling > 0)
|
|
393
|
-
|
|
393
|
+
// Never below the floor fit is given: `--ctx-size` ends fit's search, so a ceiling under a raised
|
|
394
|
+
// `fit_ctx` (how the app grows a model's window under fit) would make raising it do nothing.
|
|
395
|
+
push('--ctx-size', String(Math.max(Math.floor(input.fitCtxCeiling), fitCtxTokens(cfg.fit_ctx))));
|
|
394
396
|
if (cfg.n_predict > 0)
|
|
395
397
|
push('--n-predict', String(cfg.n_predict));
|
|
396
398
|
// The thinking budget: llama.cpp applies it to requests that set none, and only to templates with
|
|
@@ -440,8 +442,9 @@ export function planLlamaArgs(config, input) {
|
|
|
440
442
|
if (!ik) {
|
|
441
443
|
push('--fit', cfg.fit ? 'on' : 'off');
|
|
442
444
|
if (cfg.fit) {
|
|
443
|
-
|
|
444
|
-
|
|
445
|
+
const fitCtx = fitCtxText(cfg.fit_ctx);
|
|
446
|
+
if (fitCtx !== '' && fitCtx !== '4096')
|
|
447
|
+
push('--fit-ctx', fitCtx);
|
|
445
448
|
if (cfg.fit_target !== '' && cfg.fit_target !== '1024')
|
|
446
449
|
push('--fit-target', cfg.fit_target);
|
|
447
450
|
}
|
|
@@ -460,6 +463,28 @@ export function planLlamaArgs(config, input) {
|
|
|
460
463
|
}
|
|
461
464
|
return { argv, warnings, version, backend };
|
|
462
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* The `fit_ctx` a load runs with: the model's own value when it is a window — a positive whole number
|
|
468
|
+
* of tokens, as a number or as its text — otherwise the provider's. The app grows the window under
|
|
469
|
+
* fit by reloading a model with its own `fit_ctx`; an empty, absent or unusable model value must not
|
|
470
|
+
* wipe the provider's.
|
|
471
|
+
*/
|
|
472
|
+
export function resolveFitCtx(providerValue, modelValue) {
|
|
473
|
+
const model = fitCtxTokens(modelValue);
|
|
474
|
+
return model > 0 ? String(model) : fitCtxText(providerValue);
|
|
475
|
+
}
|
|
476
|
+
/** `fit_ctx` in tokens: a positive whole number, or 0 when it names no window. */
|
|
477
|
+
export function fitCtxTokens(value) {
|
|
478
|
+
const text = fitCtxText(value);
|
|
479
|
+
const tokens = /^\d+$/.test(text) ? Number(text) : 0;
|
|
480
|
+
return Number.isSafeInteger(tokens) && tokens > 0 ? tokens : 0;
|
|
481
|
+
}
|
|
482
|
+
/** `fit_ctx` as llama-server takes it: a number in its decimal text, a string trimmed, anything else `''`. */
|
|
483
|
+
export function fitCtxText(value) {
|
|
484
|
+
if (typeof value === 'number')
|
|
485
|
+
return Number.isFinite(value) && value > 0 ? String(Math.floor(value)) : '';
|
|
486
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
487
|
+
}
|
|
463
488
|
/** Convenience: argv only. */
|
|
464
489
|
export function buildLlamaArgs(config, input) {
|
|
465
490
|
return planLlamaArgs(config, input).argv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;AAEpC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,CAAA;AACnD,qFAAqF;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAA;AACjC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC,gEAAgE;AAChE,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAA;AAChD,iGAAiG;AACjG,MAAM,CAAC,MAAM,uCAAuC,GAAG,KAAK,CAAA;AAC5D;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAA;AAC7C;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAA;AAChD;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAA;AACvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,IAAI,CAAA;AAErD,sDAAsD;AACtD,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;CACP,CAAA;AAED,+FAA+F;AAC/F;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,aAAa,EAAE,EAAE;IACjB,wBAAwB,EAAE,EAAE;IAC5B,QAAQ,EAAE,CAAC;IACX,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,KAAK;IACrB,GAAG,EAAE,KAAK;IACV,cAAc,EAAE,EAAE;IAClB,MAAM,EAAE,KAAK;IACb,qBAAqB,EAAE,KAAK;IAC5B,iBAAiB,EAAE,EAAE;IACrB,YAAY,EAAE,CAAC;IACf,kBAAkB,EAAE,KAAK;IACzB,gGAAgG;IAChG,qFAAqF;IACrF,gBAAgB,EAAE,CAAC,CAAC;IACpB,UAAU,EAAE,EAAE;CAC4B,CAAA;AAK5C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA0B;IAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAA;IAC7F,OAAO,EAAE,GAAG,8BAA8B,EAAE,GAAG,QAAQ,EAAoB,CAAA;AAC7E,CAAC;AA0BD,kGAAkG;AAClG,MAAM,UAAU,mBAAmB,CAAC,cAAsB;IACxD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAClC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,0CAA0C,EAC1C,gCAAgC,CACjC,CAAA;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;AAC9F,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACvB,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACzC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1B,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACzC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAA;IAClD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,KAAK,GAAkB,IAAI,CAAA;IAC/B,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAW,CAAA;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACzB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,EAAE,KAAK,KAAK;gBAAE,KAAK,GAAG,IAAI,CAAA;iBACzB,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC1D,OAAO,IAAI,IAAI,CAAA;gBACf,CAAC,EAAE,CAAA;YACL,CAAC;;gBAAM,OAAO,IAAI,EAAE,CAAA;YACpB,SAAQ;QACV,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,CAAA;YACV,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;aAAM,IACL,EAAE,KAAK,IAAI;YACX,IAAI,KAAK,SAAS;YAClB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,EAClE,CAAC;YACD,OAAO,IAAI,IAAI,CAAA;YACf,CAAC,EAAE,CAAA;YACH,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAClB,OAAO,GAAG,EAAE,CAAA;gBACZ,OAAO,GAAG,KAAK,CAAA;YACjB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,EAAE,CAAA;YACb,OAAO,GAAG,IAAI,CAAA;QAChB,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAA;IAClE,IAAI,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,OAAO,IAAI,CAAA;AACb,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,aAAa,CAAC,MAAsB,EAAE,KAAqB;IACzE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IACxE,MAAM,GAAG,GAAmB,EAAE,GAAG,MAAM,EAAE,CAAA;IACzC,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,KAAK,cAAc,CAAA;IAC/C,+FAA+F;IAC/F,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAChF,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;IACzD,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;IAExD,0DAA0D;IAC1D,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACxB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;QAChD,GAAG,CAAC,aAAa,GAAG,IAAI,CAAA;QACxB,GAAG,CAAC,cAAc,GAAG,IAAI,CAAA;IAC3B,CAAC;IACD,+FAA+F;IAC/F,+FAA+F;IAC/F,kGAAkG;IAClG,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAClC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAA;QACf,GAAG,CAAC,MAAM,GAAG,KAAK,CAAA;IACpB,CAAC;IACD,sFAAsF;IACtF,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM;YACvB,QAAQ,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;QACvF,GAAG,CAAC,GAAG,GAAG,KAAK,CAAA;QACf,GAAG,CAAC,MAAM,GAAG,KAAK,CAAA;QAClB,GAAG,CAAC,UAAU,GAAG,EAAE,CAAA;QACnB,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;QAC7F,QAAQ,CAAC,IAAI,CAAC,mBAAmB,OAAO,2DAA2D,CAAC,CAAA;QACpG,GAAG,CAAC,UAAU,GAAG,KAAK,CAAA;IACxB,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAU,EAAE;QAClD,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACtD,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,IAAI,UAAU;YAAE,OAAO,KAAK,CAAA;QAC7D,QAAQ,CAAC,IAAI,CACX,eAAe,KAAK,gDAAgD,OAAO,IAAI,OAAO,wBAAwB,CAC/G,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAC3B,IAAI,CAAC,SAAS,CAAC,CAAA;IACf,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAE3B,IAAI,GAAG,CAAC,OAAO;QAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAClC,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC;QAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;IACjE,IAAI,GAAG,CAAC,wBAAwB;QAAE,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,wBAAwB,CAAC,CAAA;IAEzF,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;QAClC,IAAI,CAAC,GAAG,CAAC,cAAc;YAAE,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACtD,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACzB,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAElC,IAAI,GAAG,CAAC,aAAa;QAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAA;IAEjE,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrF,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAEzB,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC;QAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IAC3D,IAAI,GAAG,CAAC,aAAa,GAAG,CAAC;QAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAA;IAE7E,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI;QAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/F,IAAI,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,KAAK,GAAG;QAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IAElG,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;QAAE,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACnD,IAAI,GAAG,CAAC,UAAU,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,KAAK,OAAO;QAAE,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IAC7F,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC;QAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEhE,mBAAmB;IACnB,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI;YAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,+BAA+B,CAAC,CAAA;QACjG,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBACrF,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,SAAS;QAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC1C,gGAAgG;IAChG,iGAAiG;IACjG,+BAA+B;IAC/B,IAAI,GAAG,CAAC,aAAa;QAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;SACzC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACxC,IAAI,CAAC,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,wBAAwB,EAAE,CAAC;QACpE,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK;YAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;aACrD,IAAI,GAAG,CAAC,OAAO;YAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;aAC5C,IAAI,GAAG,CAAC,KAAK;YAAE,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;IACvD,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,CAAC,OAAO;YAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAClC,IAAI,GAAG,CAAC,KAAK;YAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IACD,IAAI,GAAG,CAAC,aAAa;QAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAE9C,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC;QAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC9D,4FAA4F;IAC5F,qGAAqG;IACrG,mGAAmG;IACnG,kGAAkG;IAClG,kGAAkG;IAClG,iFAAiF;IACjF,iDAAiD;IACjD,IAAI,CAAC,MAAM,CAAC,CAAA;IAEZ,uDAAuD;IACvD,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,WAAW;YAAE,OAAM;QACzC,IAAI,GAAG,CAAC,cAAc,KAAK,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,mBAAmB,CAAC,EAAE,CAAC;gBAC3D,QAAQ,CAAC,IAAI,CACX,2CAA2C,OAAO,IAAI,OAAO,mCAAmC,mBAAmB,aAAa,CACjI,CAAA;gBACD,OAAM;YACR,CAAC;YACD,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAA;YAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAA;YAC1B,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC3D,QAAQ,CAAC,IAAI,CACX,qDAAqD,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,8BAA8B,CAC/G,CAAA;YACH,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAA;YAChG,OAAM;QACR,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,aAAa,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CACX,mCAAmC,OAAO,IAAI,OAAO,kCAAkC,aAAa,aAAa,CAClH,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,CAAC,CAAA;IAC7D,CAAC,CAAA;IACD,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW;YAAE,OAAM;QAC5C,IAAI,GAAG,CAAC,iBAAiB,KAAK,EAAE,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;YACzE,OAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CACX,gCAAgC,OAAO,IAAI,OAAO,+FAA+F,CAClJ,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CACF,eAAe,EACf,GAAG,CAAC,iBAAiB,EACrB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,MAAM,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CACrD,CAAA;IACH,CAAC,CAAA;IACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;QACtE,SAAS,EAAE,CAAA;IACb,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,CAAA;QACR,SAAS,EAAE,CAAA;IACb,CAAC;IAED,IAAI,GAAG,CAAC,cAAc;QAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAEzC,0BAA0B;IAC1B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,uCAAuC;gBACzE,IAAI,CAAC,yBAAyB,CAAC,CAAA;QACnC,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,4BAA4B,EAAE,CAAC;YACxE,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,sDAAsD,OAAO,IAAI,OAAO,gCAAgC,4BAA4B,aAAa,CAClJ,CAAA;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;aACrE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC;YACrF,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAA;QACjD,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC;YAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;QACjE,kGAAkG;QAClG,kGAAkG;QAClG,gCAAgC;QAChC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,iCAAiC,EAAE,CAAC;gBACtE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;gBACpE,IAAI,GAAG,CAAC,gBAAgB,GAAG,CAAC;oBAAE,IAAI,CAAC,4BAA4B,EAAE,wBAAwB,CAAC,CAAA;YAC5F,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CACX,gDAAgD,OAAO,IAAI,OAAO,6BAA6B,iCAAiC,aAAa,CAC9I,CAAA;YACH,CAAC;QACH,CAAC;QACD,IACE,CAAC,EAAE;YACH,KAAK,CAAC,WAAW,KAAK,SAAS;YAC/B,KAAK,CAAC,WAAW,GAAG,CAAC;YACrB,KAAK,KAAK,SAAS;YACnB,KAAK,IAAI,mBAAmB;YAE5B,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAC5D,IAAI,GAAG,CAAC,YAAY,KAAK,EAAE,IAAI,GAAG,CAAC,YAAY,KAAK,KAAK,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACjD,IAAI,KAAK,KAAK,KAAK;gBAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;QACpD,CAAC;QACD,IACE,GAAG,CAAC,UAAU,KAAK,KAAK;YACxB,GAAG,CAAC,YAAY,KAAK,EAAE;YACvB,GAAG,CAAC,YAAY,KAAK,KAAK;YAC1B,GAAG,CAAC,YAAY,KAAK,KAAK,EAC1B,CAAC;YACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACjD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK;gBAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;QACvE,CAAC;QACD,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,4BAA4B,CAAA;QACxF,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY;YACpD,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA;QACzD,IAAI,GAAG,CAAC,YAAY,KAAK,EAAE,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM;YAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;QACpG,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC;YAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;QACxF,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAA;QACtG,IAAI,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC;YAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAA;IACzG,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM;gBAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YAChF,IAAI,GAAG,CAAC,UAAU,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM;gBAAE,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,kDAAmD,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7F,CAAC;IAED,gGAAgG;IAChG,+EAA+E;IAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAA;IACxD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CACvB,kBAAkB,EAClB,0CAA0C,EAC1C,YAAY,GAAG,WAAW,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CACzE,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AAC7C,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,cAAc,CAAC,MAAsB,EAAE,KAAqB;IAC1E,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAA;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,5 +22,16 @@ export declare function findMemoryPattern(text: string): {
|
|
|
22
22
|
/** First whitespace token as i32 (`"7721 MiB free"` → 7721). */
|
|
23
23
|
export declare function parseMemoryValue(memStr: string): number | undefined;
|
|
24
24
|
export declare function parseDeviceLine(rawLine: string): DeviceInfo | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* A `--device` value checked against what the build lists: the names it has (llama.cpp matches them
|
|
27
|
+
* case-insensitively, `ggml_backend_dev_by_name`) and `none` are kept in the order given, every other
|
|
28
|
+
* name is dropped. llama-server exits on a name it does not have ("use --list-devices to see a list of
|
|
29
|
+
* available devices"), which is what a value copied from a CUDA build does on a Vulkan or ROCm one.
|
|
30
|
+
* `device` is `''` when nothing is left: llama.cpp then picks its devices itself.
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateDeviceList(requested: string, devices: readonly DeviceInfo[]): {
|
|
33
|
+
device: string;
|
|
34
|
+
dropped: string[];
|
|
35
|
+
};
|
|
25
36
|
/** Throws `DEVICE_LIST_PARSE_FAILED` (details = the whole output) when the header is missing. */
|
|
26
37
|
export declare function parseDeviceOutput(output: string): DeviceInfo[];
|
|
@@ -63,6 +63,28 @@ export function parseDeviceLine(rawLine) {
|
|
|
63
63
|
return undefined;
|
|
64
64
|
return { id, name, mem: total, free };
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* A `--device` value checked against what the build lists: the names it has (llama.cpp matches them
|
|
68
|
+
* case-insensitively, `ggml_backend_dev_by_name`) and `none` are kept in the order given, every other
|
|
69
|
+
* name is dropped. llama-server exits on a name it does not have ("use --list-devices to see a list of
|
|
70
|
+
* available devices"), which is what a value copied from a CUDA build does on a Vulkan or ROCm one.
|
|
71
|
+
* `device` is `''` when nothing is left: llama.cpp then picks its devices itself.
|
|
72
|
+
*/
|
|
73
|
+
export function validateDeviceList(requested, devices) {
|
|
74
|
+
const known = new Set(devices.map((d) => d.id.toLowerCase()));
|
|
75
|
+
const kept = [];
|
|
76
|
+
const dropped = [];
|
|
77
|
+
for (const raw of String(requested).split(',')) {
|
|
78
|
+
const name = raw.trim();
|
|
79
|
+
if (name === '')
|
|
80
|
+
continue;
|
|
81
|
+
if (name.toLowerCase() === 'none' || known.has(name.toLowerCase()))
|
|
82
|
+
kept.push(name);
|
|
83
|
+
else
|
|
84
|
+
dropped.push(name);
|
|
85
|
+
}
|
|
86
|
+
return { device: kept.join(','), dropped };
|
|
87
|
+
}
|
|
66
88
|
/** Throws `DEVICE_LIST_PARSE_FAILED` (details = the whole output) when the header is missing. */
|
|
67
89
|
export function parseDeviceOutput(output) {
|
|
68
90
|
const devices = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/devices.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/devices.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,18 +18,48 @@ export interface ExitInfo {
|
|
|
18
18
|
}
|
|
19
19
|
/** Normalise a Node signal name to the Unix number Rust sees. */
|
|
20
20
|
export declare function signalNumber(signal: number | string | null): number | null;
|
|
21
|
+
/**
|
|
22
|
+
* NTSTATUS codes a Windows process ends with when the loader gives up before `main`, so it prints
|
|
23
|
+
* nothing of its own — the same set `src/diffusion/install.ts` and `src/audio/install.ts` read for
|
|
24
|
+
* their engines: a missing DLL, a missing ordinal or entry point, a bad image, a DLL whose init failed.
|
|
25
|
+
*/
|
|
26
|
+
export declare const WINDOWS_LOADER_FAILURES: ReadonlyMap<number, string>;
|
|
27
|
+
/** STATUS_ILLEGAL_INSTRUCTION: the build uses an instruction this CPU does not have. */
|
|
28
|
+
export declare const WINDOWS_ILLEGAL_INSTRUCTION = 3221225501;
|
|
29
|
+
/**
|
|
30
|
+
* An exit status as the load diagnostics spell it: `0x`-prefixed upper-case hex on Windows (NTSTATUS
|
|
31
|
+
* codes arrive signed or unsigned), decimal elsewhere; `undefined` when the process was killed by a
|
|
32
|
+
* signal or never started.
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatExitCode(code: number | null, platform: NodeJS.Platform): string | undefined;
|
|
21
35
|
/** A hard native crash (segfault / abort) rather than a normal non-zero exit. */
|
|
22
36
|
export declare function isCrashExit(exit: ExitInfo, platform: NodeJS.Platform): boolean;
|
|
37
|
+
export declare const GPU_BACKEND_INCOMPATIBLE_MESSAGE = "This GPU build of the model engine does not run on this graphics card with its current driver. Update the NVIDIA graphics driver, or switch to another backend (CUDA 12, Vulkan or CPU).";
|
|
38
|
+
export declare const ENGINE_BINARY_BROKEN_MESSAGE = "The model engine could not load a library it needs, so it did not start. Its files may be incomplete or blocked by antivirus software: reinstall this backend or switch to another one.";
|
|
39
|
+
export declare const CPU_INSTRUCTION_UNSUPPORTED_MESSAGE = "The model engine stopped on a processor instruction this computer does not have. Switch to another backend, such as the CPU build, which picks the instructions this processor supports.";
|
|
23
40
|
export declare const ARGUMENT_REJECTED_MESSAGE = "This llama.cpp backend does not accept one of the arguments it was started with. If you added custom arguments to this model, remove them; otherwise switch to another backend version or update Atomic Chat.";
|
|
24
41
|
export declare const GENERIC_PROCESS_ERROR_MESSAGE = "The model process encountered an unexpected error.";
|
|
25
42
|
export declare const CRASH_MESSAGE = "The model process crashed unexpectedly (access violation / segfault). This usually means the model is incompatible with this backend, or its speculative-decoding (MTP) configuration is unsupported here.";
|
|
26
43
|
/** `LlamacppError::from_stderr`: ordered substring cascade over the lowercased stream. */
|
|
27
44
|
export declare function classifyStderr(stderr: string, provider?: LocalProviderId): AtomicCoreError;
|
|
28
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* A Windows exit status that names its own cause when stderr named none: the loader gave up before
|
|
47
|
+
* `main` (`ENGINE_BINARY_BROKEN`), or the build hit an instruction this CPU lacks
|
|
48
|
+
* (`CPU_INSTRUCTION_UNSUPPORTED`). `undefined` for anything else, and off Windows.
|
|
49
|
+
*/
|
|
50
|
+
export declare function windowsExitCause(exit: ExitInfo, platform: NodeJS.Platform): {
|
|
51
|
+
code: 'ENGINE_BINARY_BROKEN' | 'CPU_INSTRUCTION_UNSUPPORTED';
|
|
52
|
+
message: string;
|
|
53
|
+
} | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* `LlamacppError::from_exit_status`: a recognised crash upgrades the generic error's message; beyond
|
|
56
|
+
* the app, a Windows loader or illegal-instruction status that stderr did not explain gets its own code.
|
|
57
|
+
*/
|
|
29
58
|
export declare function classifyExit(exit: ExitInfo, stderr: string, platform: NodeJS.Platform, provider?: LocalProviderId): AtomicCoreError;
|
|
30
59
|
/**
|
|
31
60
|
* `LlamacppError::from_process_output`: stderr classification wins; otherwise try stdout (several
|
|
32
61
|
* llama.cpp builds report loader failures there); otherwise keep the exit-status error but hand the
|
|
33
|
-
* caller stdout as details when stderr is blank.
|
|
62
|
+
* caller stdout as details when stderr is blank. A code read from the Windows exit status alone ranks
|
|
63
|
+
* with the exit status, below stdout.
|
|
34
64
|
*/
|
|
35
65
|
export declare function classifyProcessOutput(exit: ExitInfo, stderr: string, stdout: string, platform: NodeJS.Platform, provider?: LocalProviderId): AtomicCoreError;
|
|
@@ -36,6 +36,32 @@ export function signalNumber(signal) {
|
|
|
36
36
|
}
|
|
37
37
|
/** Windows: STATUS_ACCESS_VIOLATION / STATUS_STACK_OVERFLOW / STATUS_STACK_BUFFER_OVERRUN. */
|
|
38
38
|
const WINDOWS_CRASH_CODES = new Set([0xc000_0005, 0xc000_00fd, 0xc000_0409]);
|
|
39
|
+
/**
|
|
40
|
+
* NTSTATUS codes a Windows process ends with when the loader gives up before `main`, so it prints
|
|
41
|
+
* nothing of its own — the same set `src/diffusion/install.ts` and `src/audio/install.ts` read for
|
|
42
|
+
* their engines: a missing DLL, a missing ordinal or entry point, a bad image, a DLL whose init failed.
|
|
43
|
+
*/
|
|
44
|
+
export const WINDOWS_LOADER_FAILURES = new Map([
|
|
45
|
+
[0xc000_0135, 'STATUS_DLL_NOT_FOUND'],
|
|
46
|
+
[0xc000_0138, 'STATUS_ORDINAL_NOT_FOUND'],
|
|
47
|
+
[0xc000_0139, 'STATUS_ENTRYPOINT_NOT_FOUND'],
|
|
48
|
+
[0xc000_007b, 'STATUS_INVALID_IMAGE_FORMAT'],
|
|
49
|
+
[0xc000_0142, 'STATUS_DLL_INIT_FAILED'],
|
|
50
|
+
]);
|
|
51
|
+
/** STATUS_ILLEGAL_INSTRUCTION: the build uses an instruction this CPU does not have. */
|
|
52
|
+
export const WINDOWS_ILLEGAL_INSTRUCTION = 0xc000_001d;
|
|
53
|
+
/**
|
|
54
|
+
* An exit status as the load diagnostics spell it: `0x`-prefixed upper-case hex on Windows (NTSTATUS
|
|
55
|
+
* codes arrive signed or unsigned), decimal elsewhere; `undefined` when the process was killed by a
|
|
56
|
+
* signal or never started.
|
|
57
|
+
*/
|
|
58
|
+
export function formatExitCode(code, platform) {
|
|
59
|
+
if (code === null)
|
|
60
|
+
return undefined;
|
|
61
|
+
if (platform !== 'win32')
|
|
62
|
+
return String(code);
|
|
63
|
+
return `0x${(code >>> 0).toString(16).toUpperCase()}`;
|
|
64
|
+
}
|
|
39
65
|
/** A hard native crash (segfault / abort) rather than a normal non-zero exit. */
|
|
40
66
|
export function isCrashExit(exit, platform) {
|
|
41
67
|
if (platform === 'win32') {
|
|
@@ -52,6 +78,21 @@ const includesAny = (lower, needles) => needles.some((n) => lower.includes(n));
|
|
|
52
78
|
* from upstream too, so on any build a tensor count alone does not prove a damaged file.
|
|
53
79
|
*/
|
|
54
80
|
const TENSOR_COUNT_MISMATCH = 'wrong number of tensors';
|
|
81
|
+
/**
|
|
82
|
+
* What CUDA prints when a build cannot run on this card or driver: a driver too old for the toolchain
|
|
83
|
+
* the build's PTX came from (CUDA 13.x on Turing before R616), or no kernels for this architecture at
|
|
84
|
+
* all. The bare `ggml_cuda_kernel_can_use_pdl` + `cudaFuncGetAttributes` pair is the same failure when
|
|
85
|
+
* the CUDA error line itself was cut off. Lowercase, like the stream the cascade reads.
|
|
86
|
+
*/
|
|
87
|
+
const GPU_BUILD_INCOMPATIBLE_MARKERS = [
|
|
88
|
+
'provided ptx was compiled with an unsupported toolchain',
|
|
89
|
+
'no kernel image is available for execution on the device',
|
|
90
|
+
];
|
|
91
|
+
const isGpuBuildIncompatible = (l) => includesAny(l, GPU_BUILD_INCOMPATIBLE_MARKERS) ||
|
|
92
|
+
(l.includes('ggml_cuda_kernel_can_use_pdl') && l.includes('cudafuncgetattributes'));
|
|
93
|
+
export const GPU_BACKEND_INCOMPATIBLE_MESSAGE = 'This GPU build of the model engine does not run on this graphics card with its current driver. Update the NVIDIA graphics driver, or switch to another backend (CUDA 12, Vulkan or CPU).';
|
|
94
|
+
export const ENGINE_BINARY_BROKEN_MESSAGE = 'The model engine could not load a library it needs, so it did not start. Its files may be incomplete or blocked by antivirus software: reinstall this backend or switch to another one.';
|
|
95
|
+
export const CPU_INSTRUCTION_UNSUPPORTED_MESSAGE = 'The model engine stopped on a processor instruction this computer does not have. Switch to another backend, such as the CPU build, which picks the instructions this processor supports.';
|
|
55
96
|
export const ARGUMENT_REJECTED_MESSAGE = 'This llama.cpp backend does not accept one of the arguments it was started with. If you added custom arguments to this model, remove them; otherwise switch to another backend version or update Atomic Chat.';
|
|
56
97
|
const CASCADE = [
|
|
57
98
|
{
|
|
@@ -71,6 +112,13 @@ const CASCADE = [
|
|
|
71
112
|
'cuda_error_out_of_memory',
|
|
72
113
|
]),
|
|
73
114
|
},
|
|
115
|
+
{
|
|
116
|
+
// After out-of-memory (a card that ran out of VRAM is not an incompatible one), before every
|
|
117
|
+
// model rule: the build never got far enough for the model to be the reason.
|
|
118
|
+
code: 'GPU_BACKEND_INCOMPATIBLE',
|
|
119
|
+
message: GPU_BACKEND_INCOMPATIBLE_MESSAGE,
|
|
120
|
+
match: isGpuBuildIncompatible,
|
|
121
|
+
},
|
|
74
122
|
{
|
|
75
123
|
code: 'MODEL_ARCH_NOT_SUPPORTED',
|
|
76
124
|
message: "The model's architecture or format is not supported by this version of the backend.",
|
|
@@ -118,22 +166,47 @@ export function classifyStderr(stderr, provider = 'llamacpp-upstream') {
|
|
|
118
166
|
}
|
|
119
167
|
return new AtomicCoreError('LLAMA_CPP_PROCESS_ERROR', GENERIC_PROCESS_ERROR_MESSAGE, stderr);
|
|
120
168
|
}
|
|
121
|
-
/**
|
|
169
|
+
/**
|
|
170
|
+
* A Windows exit status that names its own cause when stderr named none: the loader gave up before
|
|
171
|
+
* `main` (`ENGINE_BINARY_BROKEN`), or the build hit an instruction this CPU lacks
|
|
172
|
+
* (`CPU_INSTRUCTION_UNSUPPORTED`). `undefined` for anything else, and off Windows.
|
|
173
|
+
*/
|
|
174
|
+
export function windowsExitCause(exit, platform) {
|
|
175
|
+
if (platform !== 'win32' || exit.code === null)
|
|
176
|
+
return undefined;
|
|
177
|
+
const status = exit.code >>> 0;
|
|
178
|
+
if (WINDOWS_LOADER_FAILURES.has(status))
|
|
179
|
+
return { code: 'ENGINE_BINARY_BROKEN', message: ENGINE_BINARY_BROKEN_MESSAGE };
|
|
180
|
+
if (status === WINDOWS_ILLEGAL_INSTRUCTION)
|
|
181
|
+
return { code: 'CPU_INSTRUCTION_UNSUPPORTED', message: CPU_INSTRUCTION_UNSUPPORTED_MESSAGE };
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* `LlamacppError::from_exit_status`: a recognised crash upgrades the generic error's message; beyond
|
|
186
|
+
* the app, a Windows loader or illegal-instruction status that stderr did not explain gets its own code.
|
|
187
|
+
*/
|
|
122
188
|
export function classifyExit(exit, stderr, platform, provider = 'llamacpp-upstream') {
|
|
123
189
|
const base = classifyStderr(stderr, provider);
|
|
124
|
-
if (base.code !== 'LLAMA_CPP_PROCESS_ERROR'
|
|
190
|
+
if (base.code !== 'LLAMA_CPP_PROCESS_ERROR')
|
|
191
|
+
return base;
|
|
192
|
+
const cause = windowsExitCause(exit, platform);
|
|
193
|
+
if (cause)
|
|
194
|
+
return new AtomicCoreError(cause.code, cause.message, stderr);
|
|
195
|
+
if (!isCrashExit(exit, platform))
|
|
125
196
|
return base;
|
|
126
197
|
return new AtomicCoreError('LLAMA_CPP_PROCESS_ERROR', CRASH_MESSAGE, stderr);
|
|
127
198
|
}
|
|
128
199
|
/**
|
|
129
200
|
* `LlamacppError::from_process_output`: stderr classification wins; otherwise try stdout (several
|
|
130
201
|
* llama.cpp builds report loader failures there); otherwise keep the exit-status error but hand the
|
|
131
|
-
* caller stdout as details when stderr is blank.
|
|
202
|
+
* caller stdout as details when stderr is blank. A code read from the Windows exit status alone ranks
|
|
203
|
+
* with the exit status, below stdout.
|
|
132
204
|
*/
|
|
133
205
|
export function classifyProcessOutput(exit, stderr, stdout, platform, provider = 'llamacpp-upstream') {
|
|
134
206
|
const base = classifyExit(exit, stderr, platform, provider);
|
|
135
207
|
const fromStdout = classifyStderr(stdout, provider);
|
|
136
|
-
const
|
|
208
|
+
const fromStderr = base.code !== 'LLAMA_CPP_PROCESS_ERROR' && base.code !== windowsExitCause(exit, platform)?.code;
|
|
209
|
+
const selected = fromStderr
|
|
137
210
|
? base
|
|
138
211
|
: fromStdout.code !== 'LLAMA_CPP_PROCESS_ERROR'
|
|
139
212
|
? fromStdout
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/errors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/runtime/llamacpp/errors.ts"],"names":[],"mappings":"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"}
|