@atomic-chat/core 0.13.2 → 0.13.6

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.
Files changed (115) hide show
  1. package/dist/cli/main.d.ts +1 -1
  2. package/dist/core/atomic-core.d.ts +3 -1
  3. package/dist/core/atomic-core.js +1 -0
  4. package/dist/core/atomic-core.js.map +1 -1
  5. package/dist/core/create.js +6 -0
  6. package/dist/core/create.js.map +1 -1
  7. package/dist/core/prism.d.ts +2 -0
  8. package/dist/core/prism.js +1 -0
  9. package/dist/core/prism.js.map +1 -1
  10. package/dist/core/public-server.js +3 -2
  11. package/dist/core/public-server.js.map +1 -1
  12. package/dist/core/tensorrt-llm.d.ts +169 -0
  13. package/dist/core/tensorrt-llm.js +428 -0
  14. package/dist/core/tensorrt-llm.js.map +1 -0
  15. package/dist/core/types.d.ts +16 -0
  16. package/dist/core/types.js.map +1 -1
  17. package/dist/decision/process.d.ts +4 -0
  18. package/dist/decision/process.js +10 -1
  19. package/dist/decision/process.js.map +1 -1
  20. package/dist/diffusion/args.d.ts +3 -2
  21. package/dist/diffusion/args.js +21 -4
  22. package/dist/diffusion/args.js.map +1 -1
  23. package/dist/diffusion/compat.d.ts +1 -1
  24. package/dist/diffusion/compat.js +6 -2
  25. package/dist/diffusion/compat.js.map +1 -1
  26. package/dist/diffusion/jobs.js +4 -0
  27. package/dist/diffusion/jobs.js.map +1 -1
  28. package/dist/diffusion/tracker.d.ts +6 -0
  29. package/dist/diffusion/tracker.js +11 -0
  30. package/dist/diffusion/tracker.js.map +1 -1
  31. package/dist/diffusion/validate.js +2 -2
  32. package/dist/diffusion/validate.js.map +1 -1
  33. package/dist/diffusion/workflow.d.ts +8 -2
  34. package/dist/diffusion/workflow.js +13 -5
  35. package/dist/diffusion/workflow.js.map +1 -1
  36. package/dist/downloads/downloader.d.ts +22 -0
  37. package/dist/downloads/downloader.js +57 -2
  38. package/dist/downloads/downloader.js.map +1 -1
  39. package/dist/downloads/segmented.d.ts +40 -0
  40. package/dist/downloads/segmented.js +170 -0
  41. package/dist/downloads/segmented.js.map +1 -0
  42. package/dist/embedding/process.d.ts +4 -0
  43. package/dist/embedding/process.js +10 -1
  44. package/dist/embedding/process.js.map +1 -1
  45. package/dist/models/compatibility/inspect.d.ts +11 -2
  46. package/dist/models/compatibility/inspect.js +44 -13
  47. package/dist/models/compatibility/inspect.js.map +1 -1
  48. package/dist/models/compatibility/service.d.ts +3 -0
  49. package/dist/models/compatibility/service.js +1 -0
  50. package/dist/models/compatibility/service.js.map +1 -1
  51. package/dist/models/gguf/tensors.d.ts +1 -0
  52. package/dist/models/gguf/tensors.js +4 -1
  53. package/dist/models/gguf/tensors.js.map +1 -1
  54. package/dist/runtime/managed-text/adapter.d.ts +17 -0
  55. package/dist/runtime/managed-text/adapter.js.map +1 -1
  56. package/dist/runtime/managed-text/lifecycle.d.ts +8 -0
  57. package/dist/runtime/managed-text/lifecycle.js +38 -1
  58. package/dist/runtime/managed-text/lifecycle.js.map +1 -1
  59. package/dist/runtime/managed-text/readiness.d.ts +21 -1
  60. package/dist/runtime/managed-text/readiness.js +64 -0
  61. package/dist/runtime/managed-text/readiness.js.map +1 -1
  62. package/dist/runtime/shared/ports.d.ts +10 -0
  63. package/dist/runtime/shared/ports.js +30 -0
  64. package/dist/runtime/shared/ports.js.map +1 -1
  65. package/dist/runtime/tensorrt-llm/adapter.d.ts +1 -4
  66. package/dist/runtime/tensorrt-llm/adapter.js +28 -11
  67. package/dist/runtime/tensorrt-llm/adapter.js.map +1 -1
  68. package/dist/runtime/tensorrt-llm/check.js +1 -0
  69. package/dist/runtime/tensorrt-llm/check.js.map +1 -1
  70. package/dist/runtime/tensorrt-llm/compatibility.d.ts +30 -6
  71. package/dist/runtime/tensorrt-llm/compatibility.js +41 -9
  72. package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -1
  73. package/dist/runtime/tensorrt-llm/cuda-graphs.d.ts +32 -0
  74. package/dist/runtime/tensorrt-llm/cuda-graphs.js +33 -0
  75. package/dist/runtime/tensorrt-llm/cuda-graphs.js.map +1 -0
  76. package/dist/runtime/tensorrt-llm/delete.d.ts +15 -0
  77. package/dist/runtime/tensorrt-llm/delete.js +60 -0
  78. package/dist/runtime/tensorrt-llm/delete.js.map +1 -0
  79. package/dist/runtime/tensorrt-llm/engine.js +11 -5
  80. package/dist/runtime/tensorrt-llm/engine.js.map +1 -1
  81. package/dist/runtime/tensorrt-llm/guest-files.d.ts +8 -0
  82. package/dist/runtime/tensorrt-llm/guest-files.js +49 -0
  83. package/dist/runtime/tensorrt-llm/guest-files.js.map +1 -0
  84. package/dist/runtime/tensorrt-llm/kv-cache.d.ts +16 -0
  85. package/dist/runtime/tensorrt-llm/kv-cache.js +21 -1
  86. package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -1
  87. package/dist/runtime/tensorrt-llm/location.d.ts +20 -0
  88. package/dist/runtime/tensorrt-llm/location.js +48 -0
  89. package/dist/runtime/tensorrt-llm/location.js.map +1 -0
  90. package/dist/runtime/tensorrt-llm/model-dir.d.ts +38 -0
  91. package/dist/runtime/tensorrt-llm/model-dir.js +137 -0
  92. package/dist/runtime/tensorrt-llm/model-dir.js.map +1 -0
  93. package/dist/runtime/tensorrt-llm/quant-format.d.ts +65 -0
  94. package/dist/runtime/tensorrt-llm/quant-format.js +189 -0
  95. package/dist/runtime/tensorrt-llm/quant-format.js.map +1 -0
  96. package/dist/runtime/tensorrt-llm/registry.d.ts +26 -0
  97. package/dist/runtime/tensorrt-llm/registry.js +68 -0
  98. package/dist/runtime/tensorrt-llm/registry.js.map +1 -0
  99. package/dist/runtime/tensorrt-llm/runtime.d.ts +130 -0
  100. package/dist/runtime/tensorrt-llm/runtime.js +395 -0
  101. package/dist/runtime/tensorrt-llm/runtime.js.map +1 -0
  102. package/dist/server/control/router.js +1 -1
  103. package/dist/server/control/router.js.map +1 -1
  104. package/dist/server/control/types.d.ts +5 -1
  105. package/dist/server/control/types.js.map +1 -1
  106. package/dist/server/public/gates.d.ts +6 -1
  107. package/dist/server/public/gates.js +7 -3
  108. package/dist/server/public/gates.js.map +1 -1
  109. package/dist/server/public/index.d.ts +1 -0
  110. package/dist/server/public/index.js +9 -6
  111. package/dist/server/public/index.js.map +1 -1
  112. package/dist/server/public/types.d.ts +7 -0
  113. package/dist/version.d.ts +1 -1
  114. package/dist/version.js +1 -1
  115. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../src/downloads/downloader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../src/downloads/downloader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * One large, hash-pinned file over several bounded byte ranges at once (`DownloaderDeps.streams`).
3
+ * Each range is appended to its own file under `<save path>.segments/`, so an interrupted download
4
+ * keeps what every range already has; the directory is reused only for the same URL, size, hash and
5
+ * stream count. When every range is complete they are joined into `<save path>.tmp` and renamed into
6
+ * place; the downloader verifies size and hash afterwards, as for any file.
7
+ *
8
+ * A server that does not answer a range with a matching 206 (a 200, a 416, a different
9
+ * `Content-Range`, more bytes than asked for) makes the whole file fall back to one stream: the
10
+ * function returns `false` and leaves nothing behind. Any other failure is retried per range with the
11
+ * downloader's own backoff, the counter reset by fresh progress; a range that receives nothing for
12
+ * `inactivityTimeoutMs` is retried as a stall.
13
+ */
14
+ /** The most ranges one file is fetched over, whatever is asked for. */
15
+ export declare const MAX_DOWNLOAD_STREAMS = 4;
16
+ /** Smallest file worth splitting: below this one stream is as fast and simpler. */
17
+ export declare const SEGMENTED_MIN_BYTES: number;
18
+ /** How long a range may receive nothing before it counts as stalled and is retried. */
19
+ export declare const SEGMENT_INACTIVITY_TIMEOUT_MS = 120000;
20
+ /** At most one progress report per this many milliseconds while ranges are flowing. */
21
+ export declare const SEGMENT_PROGRESS_INTERVAL_MS = 200;
22
+ export interface SegmentedDownload {
23
+ url: string;
24
+ /** Final path; `.segments/` and `.tmp` live beside it. */
25
+ destination: string;
26
+ size: number;
27
+ sha256: string;
28
+ streams: number;
29
+ fetch: typeof fetch;
30
+ headers: Record<string, string>;
31
+ signal: AbortSignal;
32
+ sleep: (ms: number, signal: AbortSignal) => Promise<void>;
33
+ retryBaseMs: number;
34
+ now: () => number;
35
+ /** Bytes held across every range so far. */
36
+ progress: (transferred: number) => void;
37
+ inactivityTimeoutMs?: number;
38
+ }
39
+ /** `true` when the file is in place; `false` when the server cannot serve ranges. Throws the rest. */
40
+ export declare function downloadSegments(o: SegmentedDownload): Promise<boolean>;
@@ -0,0 +1,170 @@
1
+ /**
2
+ * One large, hash-pinned file over several bounded byte ranges at once (`DownloaderDeps.streams`).
3
+ * Each range is appended to its own file under `<save path>.segments/`, so an interrupted download
4
+ * keeps what every range already has; the directory is reused only for the same URL, size, hash and
5
+ * stream count. When every range is complete they are joined into `<save path>.tmp` and renamed into
6
+ * place; the downloader verifies size and hash afterwards, as for any file.
7
+ *
8
+ * A server that does not answer a range with a matching 206 (a 200, a 416, a different
9
+ * `Content-Range`, more bytes than asked for) makes the whole file fall back to one stream: the
10
+ * function returns `false` and leaves nothing behind. Any other failure is retried per range with the
11
+ * downloader's own backoff, the counter reset by fresh progress; a range that receives nothing for
12
+ * `inactivityTimeoutMs` is retried as a stall.
13
+ */
14
+ import { createReadStream } from 'node:fs';
15
+ import { mkdir, open, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
16
+ import { join } from 'node:path';
17
+ import { MAX_STREAM_RETRIES, RETRY_RESET_PROGRESS_BYTES, retryDelayMs } from './protocol.js';
18
+ /** The most ranges one file is fetched over, whatever is asked for. */
19
+ export const MAX_DOWNLOAD_STREAMS = 4;
20
+ /** Smallest file worth splitting: below this one stream is as fast and simpler. */
21
+ export const SEGMENTED_MIN_BYTES = 32 * 1024 * 1024;
22
+ /** How long a range may receive nothing before it counts as stalled and is retried. */
23
+ export const SEGMENT_INACTIVITY_TIMEOUT_MS = 120_000;
24
+ /** At most one progress report per this many milliseconds while ranges are flowing. */
25
+ export const SEGMENT_PROGRESS_INTERVAL_MS = 200;
26
+ /** The server cannot serve this file in ranges; the caller downloads it in one stream instead. */
27
+ class RangeUnavailable extends Error {
28
+ }
29
+ /** Stalled: the range received nothing for the inactivity timeout. Retried like any stream error. */
30
+ class RangeStalled extends Error {
31
+ }
32
+ /** `true` when the file is in place; `false` when the server cannot serve ranges. Throws the rest. */
33
+ export async function downloadSegments(o) {
34
+ const count = Math.max(1, Math.min(MAX_DOWNLOAD_STREAMS, Math.floor(o.streams)));
35
+ const chunk = Math.ceil(o.size / count);
36
+ const directory = `${o.destination}.segments`;
37
+ const identity = JSON.stringify([o.url, o.size, o.sha256, count]);
38
+ if ((await readFile(join(directory, 'identity'), 'utf8').catch(() => '')) !== identity) {
39
+ await rm(directory, { recursive: true, force: true });
40
+ }
41
+ await mkdir(directory, { recursive: true });
42
+ await writeFile(join(directory, 'identity'), identity);
43
+ // One range failing for good stops the others: the file cannot complete anyway.
44
+ const stopAll = new AbortController();
45
+ const signal = AbortSignal.any([o.signal, stopAll.signal]);
46
+ const held = Array(count).fill(0);
47
+ let reportedAt = Number.NEGATIVE_INFINITY;
48
+ const report = (force = false) => {
49
+ const now = o.now();
50
+ if (!force && now - reportedAt < SEGMENT_PROGRESS_INTERVAL_MS)
51
+ return;
52
+ reportedAt = now;
53
+ o.progress(held.reduce((a, b) => a + b, 0));
54
+ };
55
+ const inactivity = o.inactivityTimeoutMs ?? SEGMENT_INACTIVITY_TIMEOUT_MS;
56
+ const transfer = async (i) => {
57
+ const start = i * chunk;
58
+ const end = Math.min(o.size, start + chunk) - 1;
59
+ const length = end - start + 1;
60
+ const path = join(directory, String(i));
61
+ held[i] = Math.min(length, await stat(path).then((s) => s.size, () => 0));
62
+ if (held[i] === length)
63
+ return report(true);
64
+ let retries = 0;
65
+ let sinceReset = 0;
66
+ for (;;) {
67
+ signal.throwIfAborted();
68
+ const attempt = new AbortController();
69
+ let timer;
70
+ const arm = () => {
71
+ clearTimeout(timer);
72
+ timer = setTimeout(() => attempt.abort(new RangeStalled(`no data received for ${inactivity / 1000} seconds`)), inactivity);
73
+ };
74
+ let response;
75
+ try {
76
+ const from = start + held[i];
77
+ arm();
78
+ response = await o.fetch(o.url, {
79
+ headers: { ...o.headers, Range: `bytes=${from}-${end}` },
80
+ signal: AbortSignal.any([signal, attempt.signal]),
81
+ });
82
+ if (response.status === 200 || response.status === 416) {
83
+ throw new RangeUnavailable(`HTTP ${response.status} to a range request`);
84
+ }
85
+ if (response.status !== 206)
86
+ throw new Error(`HTTP ${response.status}`);
87
+ if (response.headers.get('content-range') !== `bytes ${from}-${end}/${o.size}`) {
88
+ throw new RangeUnavailable('a Content-Range that does not match the request');
89
+ }
90
+ if (!response.body)
91
+ throw new Error('no body');
92
+ const file = await open(path, 'a', 0o600);
93
+ const reader = response.body.getReader();
94
+ try {
95
+ for (;;) {
96
+ arm();
97
+ const { done, value } = await reader.read();
98
+ if (done)
99
+ break;
100
+ if (held[i] + value.byteLength > length) {
101
+ throw new RangeUnavailable('more bytes than the range asked for');
102
+ }
103
+ await file.writeFile(value);
104
+ held[i] = held[i] + value.byteLength;
105
+ sinceReset += value.byteLength;
106
+ if (sinceReset >= RETRY_RESET_PROGRESS_BYTES) {
107
+ retries = 0;
108
+ sinceReset = 0;
109
+ }
110
+ report();
111
+ }
112
+ }
113
+ finally {
114
+ await reader.cancel().catch(() => { });
115
+ await file.close();
116
+ }
117
+ if (held[i] !== length)
118
+ throw new Error(`the range ended after ${held[i]} of ${length} bytes`);
119
+ return report(true);
120
+ }
121
+ catch (error) {
122
+ await response?.body?.cancel().catch(() => { });
123
+ if (signal.aborted)
124
+ throw signal.reason;
125
+ const cause = attempt.signal.aborted ? attempt.signal.reason : error;
126
+ if (cause instanceof RangeUnavailable || retries >= MAX_STREAM_RETRIES)
127
+ throw cause;
128
+ await o.sleep(retryDelayMs(retries++, o.retryBaseMs), signal);
129
+ }
130
+ finally {
131
+ clearTimeout(timer);
132
+ }
133
+ }
134
+ };
135
+ const results = await Promise.allSettled(Array.from({ length: count }, (_, i) => transfer(i).catch((error) => {
136
+ stopAll.abort(error);
137
+ throw error;
138
+ })));
139
+ if (o.signal.aborted)
140
+ throw o.signal.reason;
141
+ const failed = results.find((r) => r.status === 'rejected');
142
+ if (failed !== undefined) {
143
+ // The first range to fail stopped the rest; its reason is the one that matters.
144
+ const reason = stopAll.signal.reason ?? failed.reason;
145
+ if (reason instanceof RangeUnavailable) {
146
+ await rm(directory, { recursive: true, force: true });
147
+ return false;
148
+ }
149
+ throw reason;
150
+ }
151
+ const temporary = `${o.destination}.tmp`;
152
+ const output = await open(temporary, 'w', 0o600);
153
+ try {
154
+ for (let i = 0; i < count; i++) {
155
+ for await (const buffer of createReadStream(join(directory, String(i)))) {
156
+ o.signal.throwIfAborted();
157
+ await output.writeFile(buffer);
158
+ }
159
+ }
160
+ }
161
+ finally {
162
+ await output.close();
163
+ }
164
+ o.signal.throwIfAborted();
165
+ await rename(temporary, o.destination);
166
+ await rm(directory, { recursive: true, force: true });
167
+ report(true);
168
+ return true;
169
+ }
170
+ //# sourceMappingURL=segmented.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segmented.js","sourceRoot":"","sources":["../../src/downloads/segmented.ts"],"names":[],"mappings":"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"}
@@ -63,4 +63,8 @@ export interface SpawnEmbeddingDeps {
63
63
  }
64
64
  /** The error for a process that died before it was ready: the engine's own last lines in the details. */
65
65
  export declare function embeddingEarlyExitError(exit: ExitInfo, tail: readonly string[]): AtomicCoreError;
66
+ /**
67
+ * Start the embedding model, on another port when the one picked was taken before the engine could
68
+ * bind it (`retryOnTakenPort`): an exit while loading that says so is that race, not the model.
69
+ */
66
70
  export declare function spawnEmbeddingServer(spec: EmbeddingServerSpec, deps: SpawnEmbeddingDeps): Promise<EmbeddingProcessHandle>;
@@ -12,7 +12,7 @@ import { randomBytes } from 'node:crypto';
12
12
  import { dirname } from 'node:path';
13
13
  import { AtomicCoreError } from '../contracts/index.js';
14
14
  import { commandSummary } from '../decision/index.js';
15
- import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, nodeCudaProbeEnv, randomFreePort, spawnManaged, } from '../runtime/shared/index.js';
15
+ import { backendOutputReporter, buildProcessEnv, discoverCudaPaths, exitedOnTakenPort, nodeCudaProbeEnv, randomFreePort, retryOnTakenPort, spawnManaged, } from '../runtime/shared/index.js';
16
16
  import { buildEmbeddingArgs, embeddingEnv, EMBEDDING_HOST } from './args.js';
17
17
  import { findFfmpegDir, withPathDir } from './ffmpeg.js';
18
18
  import { checkEmbeddingReadiness, READINESS_REQUEST_TIMEOUT_MS } from './readiness.js';
@@ -33,7 +33,16 @@ function describeExit(exit) {
33
33
  export function embeddingEarlyExitError(exit, tail) {
34
34
  return new AtomicCoreError('MODEL_LOAD_FAILED', `The embedding model exited with ${describeExit(exit)} while loading.`, tail.slice(-20).join('\n') || undefined);
35
35
  }
36
+ /**
37
+ * Start the embedding model, on another port when the one picked was taken before the engine could
38
+ * bind it (`retryOnTakenPort`): an exit while loading that says so is that race, not the model.
39
+ */
36
40
  export async function spawnEmbeddingServer(spec, deps) {
41
+ return retryOnTakenPort(() => spawnEmbeddingServerOnce(spec, deps), (error) => error instanceof AtomicCoreError &&
42
+ error.code === 'MODEL_LOAD_FAILED' &&
43
+ exitedOnTakenPort(error.details), (attempt) => deps.log?.('warn', `the embedding model's port was taken while it started; retrying (${attempt})`));
44
+ }
45
+ async function spawnEmbeddingServerOnce(spec, deps) {
37
46
  const platform = deps.platform ?? process.platform;
38
47
  const inherited = deps.env ?? process.env;
39
48
  // Video decodes through `ffmpeg` on the process's PATH (see `ffmpeg.ts`).
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/embedding/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/embedding/process.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAExD,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAEtF,qCAAqC;AACrC,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAA;AACjD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;AACzC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA;AA+C1C,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAE5F,SAAS,YAAY,CAAC,IAAc;IAClC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAA;IAClD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,UAAU,IAAI,CAAC,MAAM,EAAE,CAAA;IACxD,OAAO,mBAAmB,CAAA;AAC5B,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,uBAAuB,CAAC,IAAc,EAAE,IAAuB;IAC7E,OAAO,IAAI,eAAe,CACxB,mBAAmB,EACnB,mCAAmC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EACtE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CACxC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAyB,EACzB,IAAwB;IAExB,OAAO,gBAAgB,CACrB,GAAG,EAAE,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1C,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,YAAY,eAAe;QAChC,KAAK,CAAC,IAAI,KAAK,mBAAmB;QAClC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,EAClC,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,oEAAoE,OAAO,GAAG,CAAC,CACrG,CAAA;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,IAAyB,EACzB,IAAwB;IAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAA;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IACzC,0EAA0E;IAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACtG,MAAM,OAAO,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACjG,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,YAAY,CAAA;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IAE5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC1F,MAAM,IAAI,eAAe,CACvB,mBAAmB,EACnB,uCAAuC,EACvC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/E,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,GAAG,CAAC,MAAM,EAAE,iCAAiC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACzE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC;QACnC,QAAQ;QACR,OAAO;QACP,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC;KAC9B,CAAC,CAAA;IAEF,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACxE,MAAM,MAAM,GAAG,CAAC,MAA2B,EAAE,IAAY,EAAE,EAAE;QAC3D,YAAY,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1E,IAAI,IAAI,CAAC,MAAM,IAAI,uBAAuB;YAAE,IAAI,CAAC,KAAK,EAAE,CAAA;QACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjB,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CACrF,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EACvB,MAAM,CACP,CAAA;IACD,IAAI,IAA0B,CAAA;IAC9B,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,cAAc,IAAI,IAAI,EAAE,CAAA;IAClD,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,4BAA4B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IAErF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,CAAC,CAAC,CAAC,CAAA;QAClB,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,EAAE,OAAe,EAAE,KAAsB,EAAkB,EAAE;QAC7E,MAAM,SAAS,CAAC,OAAO,CAAC,CAAA;QACxB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,KAAK,CAAA;IACb,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAA;IAC9C,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,SAAS,CAAC;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YACtB,OAAO,IAAI,CAAC,CAAC,EAAE,IAAI,eAAe,CAAC,uBAAuB,EAAE,wCAAwC,CAAC,CAAC,CAAA;QACxG,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACxC,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,IAAI,eAAe,CACvB,mBAAmB,EACnB,4CAA4C,EAC5C,GAAG,GAAG,KAAK,YAAY,CAAC,OAAO,EAAE,CAClC,CAAA;QACH,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,sDAAsD;YACtD,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA;YACf,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC7B,GAAG,CAAC,MAAM,EAAE,6CAA6C,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/E,MAAM,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,GAAG,EAAE,IAAI,QAAQ;YACnB,OAAO,IAAI,CACT,4BAA4B,EAC5B,IAAI,eAAe,CACjB,sBAAsB,EACtB,mDAAmD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,EACtG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CACzE,CACF,CAAA;QACH,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAC1C,IAAI,CAAC,IAAI,EACT,OAAO,EACP,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,4BAA4B,CAC7B,CAAA;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,mFAAmF;YACnF,MAAM,UAAU,GACd,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAA;YAC9F,GAAG,CACD,MAAM,EACN,uBAAuB,IAAI,CAAC,OAAO,qBAAqB,IAAI,KAAK,MAAM,CAAC,IAAI,gBAAgB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrH,CAAA;YACD,OAAO;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI;gBACJ,MAAM;gBACN,GAAG;gBACH,OAAO;gBACP,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,UAAU;gBACV,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;gBACrB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;gBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS;aACV,CAAA;QACH,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa;YAC/B,OAAO,IAAI,CACT,4BAA4B,EAC5B,IAAI,eAAe,CACjB,8BAA8B,EAC9B,mDAAmD,EACnD,GAAG,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,CAC3B,CACF,CAAA;QACH,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAC3B,OAAO,IAAI,CACT,4BAA4B,EAC5B,IAAI,eAAe,CACjB,mBAAmB,EACnB,6DAA6D,EAC7D,GAAG,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,CAC3B,CACF,CAAA;QACH,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;QAC1B,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,sBAAsB,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC"}
@@ -8,12 +8,21 @@ import type { GgufEvidence } from './resolve.js';
8
8
  export declare function inspectLocalGguf(path: string): Promise<GgufEvidence>;
9
9
  /** `https://huggingface.co/<repo>/resolve/<revision>/<file>`. */
10
10
  export declare function hfResolveUrl(repo: string, file: string, revision?: string, endpoint?: string): string;
11
+ /** The first range a remote header read asks for; doubled until the tensor table is complete. */
12
+ export declare const REMOTE_GGUF_FIRST_BYTES: number;
13
+ /** The most of a remote file a header read takes before giving up. */
14
+ export declare const REMOTE_GGUF_MAX_BYTES: number;
11
15
  /**
12
- * Header evidence of a remote file, read in ranges (Bonsai: 6–12 MB). The file size is not asked
13
- * for: only the last tensor goes unsized, which does not move a type's bits per weight.
16
+ * Header evidence of a remote file, read in ranges from 64 KiB, doubling (Bonsai: 6–12 MB), within
17
+ * `maxBytes`. With `timeoutMs` the whole read, every range included, gives up after that long, so a
18
+ * slow or broken mirror fails it instead of hanging it; without one it waits as long as the mirror
19
+ * takes (the app's model setup, which would rather wait than lose the evidence). The file size is
20
+ * not asked for: only the last tensor goes unsized, which does not move a type's bits per weight. A
21
+ * header beyond the byte budget throws `GgufParseError`.
14
22
  */
15
23
  export declare function inspectRemoteGguf(url: string, options: {
16
24
  fetch: typeof fetch;
17
25
  token?: string;
18
26
  maxBytes?: number;
27
+ timeoutMs?: number;
19
28
  }): Promise<GgufEvidence>;
@@ -37,23 +37,54 @@ export function hfResolveUrl(repo, file, revision = 'main', endpoint = 'https://
37
37
  const path = file.split('/').map(encodeURIComponent).join('/');
38
38
  return `${endpoint.replace(/\/+$/, '')}/${repo}/resolve/${encodeURIComponent(revision)}/${path}`;
39
39
  }
40
+ /** The first range a remote header read asks for; doubled until the tensor table is complete. */
41
+ export const REMOTE_GGUF_FIRST_BYTES = 64 * 1024;
42
+ /** The most of a remote file a header read takes before giving up. */
43
+ export const REMOTE_GGUF_MAX_BYTES = 64 * 1024 * 1024;
44
+ /** A server that ignores `Range` is still read when its whole answer is at most this long. */
45
+ const REMOTE_GGUF_WHOLE_FILE_MAX_BYTES = 4 * 1024 * 1024;
40
46
  /**
41
- * Header evidence of a remote file, read in ranges (Bonsai: 6–12 MB). The file size is not asked
42
- * for: only the last tensor goes unsized, which does not move a type's bits per weight.
47
+ * Header evidence of a remote file, read in ranges from 64 KiB, doubling (Bonsai: 6–12 MB), within
48
+ * `maxBytes`. With `timeoutMs` the whole read, every range included, gives up after that long, so a
49
+ * slow or broken mirror fails it instead of hanging it; without one it waits as long as the mirror
50
+ * takes (the app's model setup, which would rather wait than lose the evidence). The file size is
51
+ * not asked for: only the last tensor goes unsized, which does not move a type's bits per weight. A
52
+ * header beyond the byte budget throws `GgufParseError`.
43
53
  */
44
54
  export async function inspectRemoteGguf(url, options) {
45
55
  const auth = options.token ? { authorization: `Bearer ${options.token}` } : {};
46
- const summary = await readGgufTensorSummaryChunked(async (byteLength) => {
47
- const response = await options.fetch(url, { headers: { ...auth, Range: `bytes=0-${byteLength - 1}` } });
48
- const length = Number(response.headers.get('content-length') ?? Number.NaN);
49
- // A server that ignores Range would stream the whole multi-gigabyte file.
50
- const whole = response.status === 200 && Number.isFinite(length) && length <= byteLength;
51
- if (response.status !== 206 && !whole) {
52
- await response.body?.cancel().catch(() => { });
53
- throw new Error(`${url} answered HTTP ${response.status} to a range request`);
56
+ const maxBytes = options.maxBytes ?? REMOTE_GGUF_MAX_BYTES;
57
+ const timeoutMs = options.timeoutMs;
58
+ const deadline = new AbortController();
59
+ const timer = timeoutMs === undefined ? undefined : setTimeout(() => deadline.abort(), timeoutMs);
60
+ try {
61
+ const summary = await readGgufTensorSummaryChunked(async (byteLength) => {
62
+ const response = await options.fetch(url, {
63
+ headers: { ...auth, Range: `bytes=0-${byteLength - 1}` },
64
+ signal: deadline.signal,
65
+ });
66
+ const length = Number(response.headers.get('content-length') ?? Number.NaN);
67
+ // A server that ignores Range would stream the whole multi-gigabyte file; a small one is read.
68
+ const whole = response.status === 200 &&
69
+ Number.isFinite(length) &&
70
+ length <= Math.min(maxBytes, Math.max(byteLength, REMOTE_GGUF_WHOLE_FILE_MAX_BYTES));
71
+ if (response.status !== 206 && !whole) {
72
+ await response.body?.cancel().catch(() => { });
73
+ throw new Error(`${url} answered HTTP ${response.status} to a range request`);
74
+ }
75
+ const bytes = new Uint8Array(await response.arrayBuffer());
76
+ return response.status === 206 ? bytes.subarray(0, byteLength) : bytes;
77
+ }, { chunkSize: Math.min(REMOTE_GGUF_FIRST_BYTES, maxBytes), maxBytes, growth: 'doubling' });
78
+ return evidenceFromSummary(summary);
79
+ }
80
+ catch (error) {
81
+ if (deadline.signal.aborted && timeoutMs !== undefined) {
82
+ throw new Error(`Reading the GGUF header of ${url} took longer than ${timeoutMs / 1000} seconds`);
54
83
  }
55
- return new Uint8Array(await response.arrayBuffer()).subarray(0, byteLength);
56
- }, { ...(options.maxBytes !== undefined ? { maxBytes: options.maxBytes } : {}) });
57
- return evidenceFromSummary(summary);
84
+ throw error;
85
+ }
86
+ finally {
87
+ clearTimeout(timer);
88
+ }
58
89
  }
59
90
  //# sourceMappingURL=inspect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/models/compatibility/inspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/models/compatibility/inspect.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,10 @@ export interface ModelCompatibilityServiceDeps {
25
25
  inspectRemote?: (url: string, options: {
26
26
  fetch: typeof fetch;
27
27
  token?: string;
28
+ timeoutMs?: number;
28
29
  }) => Promise<GgufEvidence>;
30
+ /** How long a remote header read may take in all (`AtomicCoreOptions.remoteGgufTimeoutMs`); none when unset. */
31
+ remoteTimeoutMs?: number;
29
32
  log?: (level: 'info' | 'warn', message: string) => void;
30
33
  }
31
34
  export interface CompatibilityQuery {
@@ -125,6 +125,7 @@ export class ModelCompatibilityService {
125
125
  return await (this.deps.inspectRemote ?? inspectRemoteGguf)(hfResolveUrl(query.repo, query.file, query.revision), {
126
126
  fetch: this.deps.fetch,
127
127
  ...(token ? { token } : {}),
128
+ ...(this.deps.remoteTimeoutMs !== undefined ? { timeoutMs: this.deps.remoteTimeoutMs } : {}),
128
129
  });
129
130
  }
130
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/models/compatibility/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/models/compatibility/service.ts"],"names":[],"mappings":"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"}
@@ -53,4 +53,5 @@ export declare function readGgufTensorSummaryChunked(readPrefix: (byteLength: nu
53
53
  fileSize?: number;
54
54
  chunkSize?: number;
55
55
  maxBytes?: number;
56
+ growth?: 'linear' | 'doubling';
56
57
  }): Promise<GgufTensorSummary>;
@@ -216,6 +216,9 @@ export function readGgufTensorSummary(bytes, options = {}) {
216
216
  export async function readGgufTensorSummaryChunked(readPrefix, options = {}) {
217
217
  const chunk = options.chunkSize ?? 4 * 1024 * 1024;
218
218
  const max = options.maxBytes ?? 64 * 1024 * 1024;
219
+ // `linear` adds a chunk per read; `doubling` starts small and doubles, for a reader that pays per
220
+ // request (HTTP ranges): a 64 KiB header takes one request, a 12 MiB one eight.
221
+ const next = (want) => (options.growth === 'doubling' ? want * 2 : want + chunk);
219
222
  let want = chunk;
220
223
  for (;;) {
221
224
  const limit = Math.min(want, max);
@@ -229,7 +232,7 @@ export async function readGgufTensorSummaryChunked(readPrefix, options = {}) {
229
232
  if (bytes.byteLength < limit || want >= max) {
230
233
  throw new GgufParseError('Could not read the GGUF tensor table within the read budget');
231
234
  }
232
- want += chunk;
235
+ want = next(want);
233
236
  }
234
237
  }
235
238
  }