@ashlr/hub 3.7.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +257 -0
  2. package/dist/build-identity.json +2 -2
  3. package/dist/cli/resource-profile.js +95 -21
  4. package/dist/cli/resource-profile.js.map +1 -1
  5. package/dist/core/policy/local-only.d.ts +142 -2
  6. package/dist/core/policy/local-only.js +204 -15
  7. package/dist/core/policy/local-only.js.map +1 -1
  8. package/dist/core/resources/native-profile.d.ts +56 -0
  9. package/dist/core/resources/native-profile.js +368 -6
  10. package/dist/core/resources/native-profile.js.map +1 -1
  11. package/dist/core/run/budget.d.ts +22 -8
  12. package/dist/core/run/budget.js +80 -12
  13. package/dist/core/run/budget.js.map +1 -1
  14. package/dist/core/run/model-catalog.js +8 -1
  15. package/dist/core/run/model-catalog.js.map +1 -1
  16. package/dist/core/run/sandboxed-engine.js +3 -3
  17. package/dist/core/run/sandboxed-engine.js.map +1 -1
  18. package/dist/core/universe/builtins/preparation/manifest.json +1 -1
  19. package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +69 -10
  20. package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +68 -9
  21. package/dist/core/verse/adapters/claude.d.ts +49 -2
  22. package/dist/core/verse/adapters/claude.js +317 -56
  23. package/dist/core/verse/adapters/claude.js.map +1 -1
  24. package/dist/core/verse/adapters/codex.d.ts +81 -5
  25. package/dist/core/verse/adapters/codex.js +409 -47
  26. package/dist/core/verse/adapters/codex.js.map +1 -1
  27. package/dist/core/verse/adapters/grok.d.ts +13 -1
  28. package/dist/core/verse/adapters/grok.js +28 -2
  29. package/dist/core/verse/adapters/grok.js.map +1 -1
  30. package/dist/core/verse/adapters/index.d.ts +32 -0
  31. package/dist/core/verse/adapters/index.js +2 -0
  32. package/dist/core/verse/adapters/index.js.map +1 -1
  33. package/dist/core/verse/codex-rollout.d.ts +284 -0
  34. package/dist/core/verse/codex-rollout.js +786 -0
  35. package/dist/core/verse/codex-rollout.js.map +1 -0
  36. package/dist/core/verse/context-fit.d.ts +63 -0
  37. package/dist/core/verse/context-fit.js +355 -0
  38. package/dist/core/verse/context-fit.js.map +1 -0
  39. package/dist/core/verse/context-math.d.ts +215 -0
  40. package/dist/core/verse/context-math.js +365 -0
  41. package/dist/core/verse/context-math.js.map +1 -0
  42. package/dist/core/verse/local-models.d.ts +137 -1
  43. package/dist/core/verse/local-models.js +209 -5
  44. package/dist/core/verse/local-models.js.map +1 -1
  45. package/dist/core/verse/model-windows.d.ts +217 -0
  46. package/dist/core/verse/model-windows.js +616 -0
  47. package/dist/core/verse/model-windows.js.map +1 -0
  48. package/dist/core/verse/preferences.d.ts +123 -0
  49. package/dist/core/verse/preferences.js +403 -0
  50. package/dist/core/verse/preferences.js.map +1 -0
  51. package/dist/core/verse/project-memory.d.ts +112 -0
  52. package/dist/core/verse/project-memory.js +295 -0
  53. package/dist/core/verse/project-memory.js.map +1 -0
  54. package/dist/core/verse/seats.d.ts +106 -4
  55. package/dist/core/verse/seats.js +291 -89
  56. package/dist/core/verse/seats.js.map +1 -1
  57. package/dist/core/verse/session-engine.d.ts +117 -2
  58. package/dist/core/verse/session-engine.js +763 -65
  59. package/dist/core/verse/session-engine.js.map +1 -1
  60. package/dist/core/verse/session-handoff.d.ts +94 -0
  61. package/dist/core/verse/session-handoff.js +551 -0
  62. package/dist/core/verse/session-handoff.js.map +1 -0
  63. package/dist/core/verse/session-search.d.ts +63 -0
  64. package/dist/core/verse/session-search.js +213 -0
  65. package/dist/core/verse/session-search.js.map +1 -0
  66. package/dist/core/verse/session-store.d.ts +16 -2
  67. package/dist/core/verse/session-store.js +80 -6
  68. package/dist/core/verse/session-store.js.map +1 -1
  69. package/dist/core/verse/types.d.ts +333 -1
  70. package/dist/core/verse/types.js +54 -2
  71. package/dist/core/verse/types.js.map +1 -1
  72. package/dist/core/verse/verse-api.d.ts +40 -5
  73. package/dist/core/verse/verse-api.js +724 -25
  74. package/dist/core/verse/verse-api.js.map +1 -1
  75. package/dist/core/web/api.d.ts +14 -4
  76. package/dist/core/web/api.js +26 -11
  77. package/dist/core/web/api.js.map +1 -1
  78. package/dist/core/web/public/next/assets/{App-vtaHB9mp.js → App-XURmiAAp.js} +5 -5
  79. package/dist/core/web/public/next/assets/{App-vtaHB9mp.js.map → App-XURmiAAp.js.map} +1 -1
  80. package/dist/core/web/public/next/assets/{ApprovalsSection-B-bFJ0I9.js → ApprovalsSection-BriUzoZc.js} +2 -2
  81. package/dist/core/web/public/next/assets/{ApprovalsSection-B-bFJ0I9.js.map → ApprovalsSection-BriUzoZc.js.map} +1 -1
  82. package/dist/core/web/public/next/assets/AutonomySection-C4GBsQVc.js +2 -0
  83. package/dist/core/web/public/next/assets/{AutonomySection-DoqmsCjw.js.map → AutonomySection-C4GBsQVc.js.map} +1 -1
  84. package/dist/core/web/public/next/assets/ChatSection-BpOBOUvg.css +1 -0
  85. package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js +84 -0
  86. package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js.map +1 -0
  87. package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js +2 -0
  88. package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js.map +1 -0
  89. package/dist/core/web/public/next/assets/{Dialog-CPM9JxBc.js → Dialog-BxdIfmFH.js} +2 -2
  90. package/dist/core/web/public/next/assets/{Dialog-CPM9JxBc.js.map → Dialog-BxdIfmFH.js.map} +1 -1
  91. package/dist/core/web/public/next/assets/{DiffViewer-B84qVef9.js → DiffViewer-DmeRWuc4.js} +2 -2
  92. package/dist/core/web/public/next/assets/{DiffViewer-B84qVef9.js.map → DiffViewer-DmeRWuc4.js.map} +1 -1
  93. package/dist/core/web/public/next/assets/{McpSection-CEUpV_5X.js → McpSection-q34T7Tho.js} +2 -2
  94. package/dist/core/web/public/next/assets/{McpSection-CEUpV_5X.js.map → McpSection-q34T7Tho.js.map} +1 -1
  95. package/dist/core/web/public/next/assets/{MutationTokenDialog-DA8t97XT.js → MutationTokenDialog-CFAkwOEt.js} +2 -2
  96. package/dist/core/web/public/next/assets/{MutationTokenDialog-DA8t97XT.js.map → MutationTokenDialog-CFAkwOEt.js.map} +1 -1
  97. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-Bq7Vyud0.js → ResourcePoolConsoleApp-DHc8GFOY.js} +4 -4
  98. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-Bq7Vyud0.js.map → ResourcePoolConsoleApp-DHc8GFOY.js.map} +1 -1
  99. package/dist/core/web/public/next/assets/{RouteErrorBoundary-Badio_uO.js → RouteErrorBoundary-ZL9F4qUn.js} +2 -2
  100. package/dist/core/web/public/next/assets/{RouteErrorBoundary-Badio_uO.js.map → RouteErrorBoundary-ZL9F4qUn.js.map} +1 -1
  101. package/dist/core/web/public/next/assets/{Meter-CLcr-4wS.css → Segmented-8cf0Fypn.css} +1 -1
  102. package/dist/core/web/public/next/assets/{Meter--h3MmZS-.js → Segmented-DbRjVye3.js} +2 -2
  103. package/dist/core/web/public/next/assets/Segmented-DbRjVye3.js.map +1 -0
  104. package/dist/core/web/public/next/assets/SettingsSection-nJGGGYqv.js +2 -0
  105. package/dist/core/web/public/next/assets/{SettingsSection-BwrpQlpP.js.map → SettingsSection-nJGGGYqv.js.map} +1 -1
  106. package/dist/core/web/public/next/assets/UniverseConsoleApp-6GJydgo4.js +2 -0
  107. package/dist/core/web/public/next/assets/{UniverseConsoleApp-_FSohAdN.js.map → UniverseConsoleApp-6GJydgo4.js.map} +1 -1
  108. package/dist/core/web/public/next/assets/{UniverseView-DqcXbed4.js → UniverseView-DLDtNYL8.js} +2 -2
  109. package/dist/core/web/public/next/assets/{UniverseView-DqcXbed4.js.map → UniverseView-DLDtNYL8.js.map} +1 -1
  110. package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js +2 -0
  111. package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js.map +1 -0
  112. package/dist/core/web/public/next/assets/VerseConsoleApp-DsdKQoTH.css +1 -0
  113. package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js +3 -0
  114. package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js.map +1 -0
  115. package/dist/core/web/public/next/assets/{charts-CTZJ-JrH.js → charts-CVooqJWN.js} +2 -2
  116. package/dist/core/web/public/next/assets/{charts-CTZJ-JrH.js.map → charts-CVooqJWN.js.map} +1 -1
  117. package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js +2 -0
  118. package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js.map +1 -0
  119. package/dist/core/web/public/next/assets/global-eaY9GyX3.js +2 -0
  120. package/dist/core/web/public/next/assets/global-eaY9GyX3.js.map +1 -0
  121. package/dist/core/web/public/next/assets/{icons-D9vlf85u.js → icons-vex8rclC.js} +2 -2
  122. package/dist/core/web/public/next/assets/{icons-D9vlf85u.js.map → icons-vex8rclC.js.map} +1 -1
  123. package/dist/core/web/public/next/assets/{index-CZamKRUg.js → index-D2Eik-zt.js} +3 -3
  124. package/dist/core/web/public/next/assets/{index-CZamKRUg.js.map → index-D2Eik-zt.js.map} +1 -1
  125. package/dist/core/web/public/next/assets/{queries-B8eBnFox.js → queries-bAYU0VNy.js} +2 -2
  126. package/dist/core/web/public/next/assets/{queries-B8eBnFox.js.map → queries-bAYU0VNy.js.map} +1 -1
  127. package/dist/core/web/public/next/assets/use-guarded-action-C7QrP7Yp.js +2 -0
  128. package/dist/core/web/public/next/assets/{use-guarded-action-bzrVVAYq.js.map → use-guarded-action-C7QrP7Yp.js.map} +1 -1
  129. package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js +2 -0
  130. package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js.map +1 -0
  131. package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js → workspace-model-CHol5RVp.js} +2 -2
  132. package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js.map → workspace-model-CHol5RVp.js.map} +1 -1
  133. package/dist/core/web/public/next/index.html +1 -1
  134. package/dist/release-dependency-inventory.json +1 -1
  135. package/docs/README.md +1 -0
  136. package/package.json +1 -1
  137. package/dist/core/web/public/next/assets/AutonomySection-DoqmsCjw.js +0 -2
  138. package/dist/core/web/public/next/assets/ChatSection-BfnLe5dT.css +0 -1
  139. package/dist/core/web/public/next/assets/ChatSection-vNPIJffd.js +0 -80
  140. package/dist/core/web/public/next/assets/ChatSection-vNPIJffd.js.map +0 -1
  141. package/dist/core/web/public/next/assets/ConfirmDialog-Dd2APQhB.js +0 -2
  142. package/dist/core/web/public/next/assets/ConfirmDialog-Dd2APQhB.js.map +0 -1
  143. package/dist/core/web/public/next/assets/Meter--h3MmZS-.js.map +0 -1
  144. package/dist/core/web/public/next/assets/SettingsSection-BwrpQlpP.js +0 -2
  145. package/dist/core/web/public/next/assets/UniverseConsoleApp-_FSohAdN.js +0 -2
  146. package/dist/core/web/public/next/assets/UsageSection-Bq6Daaby.js +0 -2
  147. package/dist/core/web/public/next/assets/UsageSection-Bq6Daaby.js.map +0 -1
  148. package/dist/core/web/public/next/assets/VerseConsoleApp-CMkCizvL.css +0 -1
  149. package/dist/core/web/public/next/assets/VerseConsoleApp-CsIQv9id.js +0 -3
  150. package/dist/core/web/public/next/assets/VerseConsoleApp-CsIQv9id.js.map +0 -1
  151. package/dist/core/web/public/next/assets/global-D6bTxIRn.js +0 -2
  152. package/dist/core/web/public/next/assets/global-D6bTxIRn.js.map +0 -1
  153. package/dist/core/web/public/next/assets/use-guarded-action-bzrVVAYq.js +0 -2
  154. package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js +0 -2
  155. package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js.map +0 -1
@@ -32,6 +32,7 @@
32
32
  * which is not the same as zero.
33
33
  * - No secrets: these are loopback HTTP metadata reads with no auth material.
34
34
  */
35
+ import { type VerseLocalDispatch, type VerseWindowSource } from './types.js';
35
36
  export declare const VERSE_DEFAULT_OLLAMA_BASE = "http://127.0.0.1:11434";
36
37
  export declare const VERSE_DEFAULT_LMSTUDIO_BASE = "http://127.0.0.1:1234";
37
38
  /** Loopback metadata reads. Short enough that a dead runtime never stalls a request. */
@@ -130,8 +131,15 @@ export interface VerseLocalModelsSnapshot {
130
131
  }
131
132
  /** What `seats.ts` needs from `/api/show` for ONE tag. */
132
133
  export interface VerseOllamaModelDetail {
133
- /** Effective context: Modelfile `num_ctx` wins over the architecture maximum. */
134
+ /**
135
+ * Pinned context when the Modelfile pins one — `min(num_ctx, native)`, since
136
+ * Ollama caps a pin at the trained length — else the architecture maximum.
137
+ * The latter is an UPPER BOUND on what an unpinned tag is served; the real
138
+ * figure comes from {@link resolveLocalContextWindow}.
139
+ */
134
140
  contextWindow: number | null;
141
+ /** Modelfile `PARAMETER num_ctx`, verbatim; null when the tag pins none. */
142
+ numCtx?: number | null;
135
143
  nativeContextLength: number | null;
136
144
  capabilities: string[];
137
145
  supportsTools: boolean | null;
@@ -148,6 +156,11 @@ export interface VerseLocalProbeOptions {
148
156
  timeoutMs?: number;
149
157
  /** Override the known-good retention window (tests). */
150
158
  lastGoodTtlMs?: number;
159
+ /**
160
+ * Ollama's unpinned-request default. `undefined` reads it
161
+ * ({@link readOllamaServerDefault}); tests pass a value or `null` (unknown).
162
+ */
163
+ ollamaServerDefault?: VerseOllamaServerDefault | null;
151
164
  }
152
165
  /** Strip a trailing slash and a trailing `/v1` (the OpenAI-compat prefix). */
153
166
  export declare function normalizeLocalBaseUrl(raw: string | undefined, fallback: string): string;
@@ -192,6 +205,129 @@ export declare function nativeContextFromModelInfo(modelInfo: unknown): {
192
205
  * under-read by 4x. Never throws; every field degrades to null independently.
193
206
  */
194
207
  export declare function probeOllamaModelDetail(fetchImpl: typeof fetch, baseUrl: string, tag: string, timeoutMs?: number): Promise<VerseOllamaModelDetail | null>;
208
+ /**
209
+ * `qwen3-coder-next:ctx64k` / `qwen3.8:27b-ctx64k` / `foo_ctx128K` → tokens;
210
+ * null when the tag carries no such suffix.
211
+ *
212
+ * The suffix may follow `:`, `-` or `_`. It used to be `/:ctx(\d+)k$/`, which
213
+ * missed the house default `qwen3.8:27b-ctx64k` entirely because its suffix
214
+ * follows a hyphen. Only a LAST RESORT: it is a naming convention, not a
215
+ * runtime statement, and is consulted only when `/api/show` failed.
216
+ */
217
+ export declare function contextWindowFromTagSuffix(tag: string): number | null;
218
+ /**
219
+ * The context Ollama gives a request that does NOT pin `num_ctx`, and where
220
+ * that figure came from. Null `contextLength` means none could be read.
221
+ *
222
+ * Ollama does not expose this over HTTP. It is, in order of authority:
223
+ * - `server-log-env` — `OLLAMA_CONTEXT_LENGTH` as the RUNNING server printed
224
+ * it in its `server config` line. This is the value the
225
+ * server actually runs with, so it outranks everything;
226
+ * - `server-log-vram` — the server's own `vram-based default context …
227
+ * default_num_ctx=N`, which Ollama derives from GPU
228
+ * memory (262144 on a 107 GiB machine, far less on a
229
+ * small one — which is why the architecture maximum is
230
+ * NOT a safe stand-in);
231
+ * - `env` — `OLLAMA_CONTEXT_LENGTH` (> 0) in THIS process's
232
+ * environment. Last resort, used only when no server log
233
+ * is readable: on macOS Ollama.app does not inherit the
234
+ * shell that launched the hub, so a variable exported
235
+ * there for some other tool says nothing about the
236
+ * server — ranking it first let the hub's environment
237
+ * silently decide every unpinned tag's window (and the
238
+ * CLAUDE_CODE_MAX_CONTEXT_TOKENS a chat is launched with).
239
+ */
240
+ export interface VerseOllamaServerDefault {
241
+ contextLength: number | null;
242
+ source: 'env' | 'server-log-env' | 'server-log-vram' | null;
243
+ }
244
+ /** Ollama writes its server log here on macOS and in the default Linux install. */
245
+ export declare function ollamaServerLogPath(home?: string): string;
246
+ /** Pure: the last startup facts in a server-log excerpt. */
247
+ export declare function parseOllamaServerLog(text: string): {
248
+ contextLengthEnv: number | null;
249
+ vramDefault: number | null;
250
+ };
251
+ /**
252
+ * Read Ollama's unpinned-request default: the server's own log first, this
253
+ * process's environment only when the log says nothing (see
254
+ * {@link VerseOllamaServerDefault}). Never throws; unknown is `{null, null}`.
255
+ */
256
+ export declare function readOllamaServerDefault(opts?: {
257
+ env?: NodeJS.ProcessEnv;
258
+ logPath?: string;
259
+ }): VerseOllamaServerDefault;
260
+ /**
261
+ * llama-server's PER-SLOT context — what one agent actually gets on the
262
+ * llama-server lane, whatever the tag's Modelfile says (`-c 262144 --parallel
263
+ * 4` is 65536 per slot). Read back from the live server, exactly as
264
+ * `local-runtime/llama/health.ts` derives `contextPerSlot`:
265
+ *
266
+ * `/props.default_generation_settings.n_ctx` → `/slots[0].n_ctx` →
267
+ * `floor(requestedContext / total_slots)` (the `-c` we launched it with,
268
+ * from the ownership record, over the slot count the SERVER reports).
269
+ *
270
+ * Null when the server does not answer — the caller then falls back to the
271
+ * Ollama figure and says so. Never throws.
272
+ */
273
+ export declare function probeLlamaSlotContext(fetchImpl: typeof fetch, origin: string, opts?: {
274
+ timeoutMs?: number;
275
+ requestedContext?: number | null;
276
+ }): Promise<{
277
+ perSlot: number | null;
278
+ totalSlots: number | null;
279
+ source: 'props' | 'slots' | 'requested' | null;
280
+ }>;
281
+ /** How a local window was decided — for notes and tests, never for the wire. */
282
+ export type VerseLocalWindowBasis = 'llama-slot' | 'num-ctx' | 'resident' | 'server-default' | 'native-estimate' | 'tag-suffix' | 'default';
283
+ export interface VerseLocalWindow {
284
+ window: number;
285
+ source: VerseWindowSource;
286
+ basis: VerseLocalWindowBasis;
287
+ }
288
+ export interface VerseLocalWindowInput {
289
+ tag: string;
290
+ lane: VerseLocalDispatch;
291
+ /** llama-server per-slot context; consulted ONLY on the llama-server lane. */
292
+ llamaSlotWindow?: number | null;
293
+ /** `/api/show` for this tag; null when it failed. */
294
+ detail: VerseOllamaModelDetail | null;
295
+ /**
296
+ * `/api/ps` `context_length` when this tag is resident. Consulted only when
297
+ * no server default is known: it describes whatever request LOADED the
298
+ * runner, which may have pinned its own `options.num_ctx`.
299
+ */
300
+ residentContext?: number | null;
301
+ serverDefault?: VerseOllamaServerDefault | null;
302
+ }
303
+ /**
304
+ * THE local context-window resolver. Precedence (docs/VERSE-CONTEXT.md §1):
305
+ *
306
+ * 1. llama-server lane — the per-slot `n_ctx` (`runtime`). The Modelfile is
307
+ * irrelevant there: llama-server allocates per slot.
308
+ * 2. Ollama, `num_ctx` pinned — `min(num_ctx, native)` (`provider-catalog`:
309
+ * the runtime's own model record).
310
+ * 3. Ollama, not pinned — `min(serverDefault, native)` (`provider-catalog`),
311
+ * serverDefault being what the server would give an unpinned request
312
+ * (its logged OLLAMA_CONTEXT_LENGTH, else its VRAM default, else this
313
+ * process's env — {@link readOllamaServerDefault}).
314
+ * 4. Ollama, not pinned, no server default known — the resident instance's
315
+ * `/api/ps` context (`runtime`), capped by native. Only here, because
316
+ * residency describes the request that loaded the runner, and ANOTHER
317
+ * client's `/api/chat` with `options.num_ctx=8192` loads it at 8192. Verse's
318
+ * turns send no num_ctx, so Ollama reloads the tag at its default: letting
319
+ * a foreign runner define the window told the CLI 8192 (every turn blocked)
320
+ * or, with a larger foreign num_ctx, overstated it (overflow without
321
+ * compaction). With neither, the trained maximum — marked `fallback`,
322
+ * because Ollama may allocate far less.
323
+ * 5. `/api/show` said nothing usable — the tag suffix, then
324
+ * `VERSE_DEFAULT_CONTEXT_WINDOWS.local`, both `fallback`.
325
+ *
326
+ * A server default is never used WITHOUT a native length to cap it: a 262144
327
+ * VRAM default applied to an 8k embedding model would be a 32× overstatement.
328
+ * (With no native length, residency — a real allocation — is the best fact.)
329
+ */
330
+ export declare function resolveLocalContextWindow(input: VerseLocalWindowInput): VerseLocalWindow;
195
331
  /**
196
332
  * LM Studio's own REST API (not the OpenAI-compat `/v1`). It reports `state`
197
333
  * (`loaded` / `not-loaded`), `max_context_length`, `loaded_context_length`,
@@ -32,7 +32,10 @@
32
32
  * which is not the same as zero.
33
33
  * - No secrets: these are loopback HTTP metadata reads with no auth material.
34
34
  */
35
- import { totalmem, freemem } from 'node:os';
35
+ import { closeSync, constants as fsConstants, fstatSync, openSync, readSync } from 'node:fs';
36
+ import { freemem, homedir, totalmem } from 'node:os';
37
+ import { join } from 'node:path';
38
+ import { VERSE_DEFAULT_CONTEXT_WINDOWS, } from './types.js';
36
39
  // ---------------------------------------------------------------------------
37
40
  // Constants
38
41
  // ---------------------------------------------------------------------------
@@ -311,7 +314,10 @@ export async function probeOllamaModelDetail(fetchImpl, baseUrl, tag, timeoutMs
311
314
  supportsTools = capabilities.includes('tools');
312
315
  }
313
316
  return {
314
- contextWindow: numCtx ?? native.value,
317
+ // A pin above the trained length is capped by Ollama itself (it logs
318
+ // "requested context size too large … n_ctx_train"), so never report more.
319
+ contextWindow: numCtx !== null ? Math.min(numCtx, native.value ?? numCtx) : native.value,
320
+ numCtx,
315
321
  nativeContextLength: native.value,
316
322
  capabilities,
317
323
  supportsTools,
@@ -321,7 +327,196 @@ export async function probeOllamaModelDetail(fetchImpl, baseUrl, tag, timeoutMs
321
327
  arch: native.arch,
322
328
  };
323
329
  }
324
- async function collectOllama(fetchImpl, baseUrl, timeoutMs) {
330
+ // ---------------------------------------------------------------------------
331
+ // The ONE local context-window resolver (seats and the Usage view both use it)
332
+ // ---------------------------------------------------------------------------
333
+ /**
334
+ * `qwen3-coder-next:ctx64k` / `qwen3.8:27b-ctx64k` / `foo_ctx128K` → tokens;
335
+ * null when the tag carries no such suffix.
336
+ *
337
+ * The suffix may follow `:`, `-` or `_`. It used to be `/:ctx(\d+)k$/`, which
338
+ * missed the house default `qwen3.8:27b-ctx64k` entirely because its suffix
339
+ * follows a hyphen. Only a LAST RESORT: it is a naming convention, not a
340
+ * runtime statement, and is consulted only when `/api/show` failed.
341
+ */
342
+ export function contextWindowFromTagSuffix(tag) {
343
+ const m = /(?:^|[:_-])ctx(\d+)k$/i.exec(tag);
344
+ if (!m)
345
+ return null;
346
+ const n = Number(m[1]);
347
+ return Number.isFinite(n) && n > 0 && n <= 16_384 ? n * 1024 : null;
348
+ }
349
+ /** Ollama writes its server log here on macOS and in the default Linux install. */
350
+ export function ollamaServerLogPath(home = homedir()) {
351
+ return join(home, '.ollama', 'logs', 'server.log');
352
+ }
353
+ /**
354
+ * Head of the server log to scan. Ollama rotates `server.log` on every start,
355
+ * so the startup block (config dump on line 1, VRAM default ~line 10) is at
356
+ * the TOP of the current file however long the server has been running.
357
+ */
358
+ const OLLAMA_LOG_HEAD_BYTES = 256 * 1024;
359
+ /** Pure: the last startup facts in a server-log excerpt. */
360
+ export function parseOllamaServerLog(text) {
361
+ let contextLengthEnv = null;
362
+ let vramDefault = null;
363
+ for (const line of text.split('\n')) {
364
+ if (line.includes('msg="server config"')) {
365
+ const m = /OLLAMA_CONTEXT_LENGTH:(\d{1,9})(?=[\s\]])/.exec(line);
366
+ contextLengthEnv = m ? Number(m[1]) : null;
367
+ }
368
+ else if (line.includes('default context') || line.includes('default_num_ctx')) {
369
+ const m = /default_num_ctx=(\d{1,9})\b/.exec(line);
370
+ if (m)
371
+ vramDefault = Number(m[1]);
372
+ }
373
+ }
374
+ return {
375
+ contextLengthEnv: contextLengthEnv !== null && contextLengthEnv > 0 ? contextLengthEnv : null,
376
+ vramDefault: vramDefault !== null && vramDefault > 0 ? vramDefault : null,
377
+ };
378
+ }
379
+ function readHead(path, maxBytes) {
380
+ let fd = null;
381
+ try {
382
+ const noFollow = typeof fsConstants.O_NOFOLLOW === 'number' ? fsConstants.O_NOFOLLOW : 0;
383
+ fd = openSync(path, fsConstants.O_RDONLY | noFollow);
384
+ if (!fstatSync(fd).isFile())
385
+ return null;
386
+ const buf = Buffer.alloc(maxBytes);
387
+ const n = readSync(fd, buf, 0, maxBytes, 0);
388
+ const text = buf.subarray(0, Math.max(0, n)).toString('utf8');
389
+ // Parse whole lines only: a line cut by the byte cap is dropped.
390
+ const cut = n >= maxBytes ? text.lastIndexOf('\n') : text.length;
391
+ return cut > 0 ? text.slice(0, cut) : text;
392
+ }
393
+ catch {
394
+ return null;
395
+ }
396
+ finally {
397
+ if (fd !== null) {
398
+ try {
399
+ closeSync(fd);
400
+ }
401
+ catch { /* already closed */ }
402
+ }
403
+ }
404
+ }
405
+ /**
406
+ * Read Ollama's unpinned-request default: the server's own log first, this
407
+ * process's environment only when the log says nothing (see
408
+ * {@link VerseOllamaServerDefault}). Never throws; unknown is `{null, null}`.
409
+ */
410
+ export function readOllamaServerDefault(opts = {}) {
411
+ const text = readHead(opts.logPath ?? ollamaServerLogPath(), OLLAMA_LOG_HEAD_BYTES);
412
+ if (text !== null) {
413
+ const parsed = parseOllamaServerLog(text);
414
+ if (parsed.contextLengthEnv !== null)
415
+ return { contextLength: parsed.contextLengthEnv, source: 'server-log-env' };
416
+ if (parsed.vramDefault !== null)
417
+ return { contextLength: parsed.vramDefault, source: 'server-log-vram' };
418
+ }
419
+ const env = opts.env ?? process.env;
420
+ const fromEnv = Number((env['OLLAMA_CONTEXT_LENGTH'] ?? '').trim());
421
+ if (Number.isFinite(fromEnv) && fromEnv > 0)
422
+ return { contextLength: Math.floor(fromEnv), source: 'env' };
423
+ return { contextLength: null, source: null };
424
+ }
425
+ /**
426
+ * llama-server's PER-SLOT context — what one agent actually gets on the
427
+ * llama-server lane, whatever the tag's Modelfile says (`-c 262144 --parallel
428
+ * 4` is 65536 per slot). Read back from the live server, exactly as
429
+ * `local-runtime/llama/health.ts` derives `contextPerSlot`:
430
+ *
431
+ * `/props.default_generation_settings.n_ctx` → `/slots[0].n_ctx` →
432
+ * `floor(requestedContext / total_slots)` (the `-c` we launched it with,
433
+ * from the ownership record, over the slot count the SERVER reports).
434
+ *
435
+ * Null when the server does not answer — the caller then falls back to the
436
+ * Ollama figure and says so. Never throws.
437
+ */
438
+ export async function probeLlamaSlotContext(fetchImpl, origin, opts = {}) {
439
+ const timeoutMs = opts.timeoutMs ?? VERSE_LOCAL_PROBE_TIMEOUT_MS;
440
+ const base = origin.replace(/\/+$/, '').replace(/\/v1$/, '');
441
+ const [props, slots] = await Promise.all([
442
+ fetchJsonDetailed(fetchImpl, `${base}/props`, timeoutMs),
443
+ fetchJsonDetailed(fetchImpl, `${base}/slots`, timeoutMs),
444
+ ]);
445
+ const { deriveSlotCapacity } = await import('../local-runtime/llama/health.js');
446
+ const capacity = deriveSlotCapacity({ httpStatus: props.failure === null ? 200 : null, body: props.body, error: props.failure }, { httpStatus: slots.failure === null ? 200 : null, body: slots.body, error: slots.failure });
447
+ const totalSlots = capacity.configured;
448
+ const generation = isRecord(props.body) ? props.body['default_generation_settings'] : null;
449
+ const fromProps = isRecord(generation) ? num(generation['n_ctx']) : null;
450
+ if (fromProps !== null && fromProps > 0)
451
+ return { perSlot: Math.floor(fromProps), totalSlots, source: 'props' };
452
+ const first = Array.isArray(slots.body) ? slots.body[0] : null;
453
+ const fromSlots = isRecord(first) ? num(first['n_ctx']) : null;
454
+ if (fromSlots !== null && fromSlots > 0)
455
+ return { perSlot: Math.floor(fromSlots), totalSlots, source: 'slots' };
456
+ const requested = opts.requestedContext ?? null;
457
+ if (requested !== null && requested > 0 && totalSlots !== null && totalSlots > 0) {
458
+ return { perSlot: Math.floor(requested / totalSlots), totalSlots, source: 'requested' };
459
+ }
460
+ return { perSlot: null, totalSlots, source: null };
461
+ }
462
+ /**
463
+ * THE local context-window resolver. Precedence (docs/VERSE-CONTEXT.md §1):
464
+ *
465
+ * 1. llama-server lane — the per-slot `n_ctx` (`runtime`). The Modelfile is
466
+ * irrelevant there: llama-server allocates per slot.
467
+ * 2. Ollama, `num_ctx` pinned — `min(num_ctx, native)` (`provider-catalog`:
468
+ * the runtime's own model record).
469
+ * 3. Ollama, not pinned — `min(serverDefault, native)` (`provider-catalog`),
470
+ * serverDefault being what the server would give an unpinned request
471
+ * (its logged OLLAMA_CONTEXT_LENGTH, else its VRAM default, else this
472
+ * process's env — {@link readOllamaServerDefault}).
473
+ * 4. Ollama, not pinned, no server default known — the resident instance's
474
+ * `/api/ps` context (`runtime`), capped by native. Only here, because
475
+ * residency describes the request that loaded the runner, and ANOTHER
476
+ * client's `/api/chat` with `options.num_ctx=8192` loads it at 8192. Verse's
477
+ * turns send no num_ctx, so Ollama reloads the tag at its default: letting
478
+ * a foreign runner define the window told the CLI 8192 (every turn blocked)
479
+ * or, with a larger foreign num_ctx, overstated it (overflow without
480
+ * compaction). With neither, the trained maximum — marked `fallback`,
481
+ * because Ollama may allocate far less.
482
+ * 5. `/api/show` said nothing usable — the tag suffix, then
483
+ * `VERSE_DEFAULT_CONTEXT_WINDOWS.local`, both `fallback`.
484
+ *
485
+ * A server default is never used WITHOUT a native length to cap it: a 262144
486
+ * VRAM default applied to an 8k embedding model would be a 32× overstatement.
487
+ * (With no native length, residency — a real allocation — is the best fact.)
488
+ */
489
+ export function resolveLocalContextWindow(input) {
490
+ const slot = input.lane === 'llama-server' ? positive(input.llamaSlotWindow) : null;
491
+ if (slot !== null)
492
+ return { window: slot, source: 'runtime', basis: 'llama-slot' };
493
+ const detail = input.detail;
494
+ const native = positive(detail?.nativeContextLength ?? null);
495
+ const numCtx = positive(detail?.numCtx ?? null);
496
+ if (numCtx !== null) {
497
+ return { window: native !== null ? Math.min(numCtx, native) : numCtx, source: 'provider-catalog', basis: 'num-ctx' };
498
+ }
499
+ if (detail !== null) {
500
+ const serverDefault = positive(input.serverDefault?.contextLength ?? null);
501
+ if (native !== null && serverDefault !== null) {
502
+ return { window: Math.min(serverDefault, native), source: 'provider-catalog', basis: 'server-default' };
503
+ }
504
+ const resident = positive(input.residentContext ?? null);
505
+ if (resident !== null) {
506
+ return { window: native !== null ? Math.min(resident, native) : resident, source: 'runtime', basis: 'resident' };
507
+ }
508
+ if (native !== null)
509
+ return { window: native, source: 'fallback', basis: 'native-estimate' };
510
+ }
511
+ const fromSuffix = contextWindowFromTagSuffix(input.tag);
512
+ if (fromSuffix !== null)
513
+ return { window: fromSuffix, source: 'fallback', basis: 'tag-suffix' };
514
+ return { window: VERSE_DEFAULT_CONTEXT_WINDOWS['local'] ?? 65_536, source: 'fallback', basis: 'default' };
515
+ }
516
+ function positive(value) {
517
+ return typeof value === 'number' && Number.isFinite(value) && value > 0 ? Math.floor(value) : null;
518
+ }
519
+ async function collectOllama(fetchImpl, baseUrl, timeoutMs, serverDefault) {
325
520
  // Reachability gets the long budget; per-model detail keeps the short one.
326
521
  // A detail probe that times out costs one row; a reachability probe that
327
522
  // times out declares the whole runtime dead.
@@ -362,7 +557,15 @@ async function collectOllama(fetchImpl, baseUrl, timeoutMs) {
362
557
  placement: live ? placementOf(live.sizeBytes, sizeVramBytes) : 'unknown',
363
558
  gpuPercent: live && live.sizeBytes !== null ? percentOf(sizeVramBytes, live.sizeBytes) : null,
364
559
  expiresAt: live?.expiresAt ?? null,
365
- contextLength: live?.contextLength ?? detail?.contextWindow ?? null,
560
+ // Resident: what the loaded instance was given — a fact about the runner
561
+ // in memory now (possibly loaded by another client's num_ctx, which is
562
+ // why the SEAT window does not trust it). Otherwise what the next
563
+ // unpinned request WILL be given — the same resolver the seats use. Null
564
+ // only when `/api/show` itself failed: the tag-suffix guess is not a
565
+ // runtime fact.
566
+ contextLength: live?.contextLength ?? (detail !== null
567
+ ? resolveLocalContextWindow({ tag: tag.tag, lane: 'ollama', detail, serverDefault }).window
568
+ : null),
366
569
  nativeContextLength: detail?.nativeContextLength ?? null,
367
570
  parameterSize: detail?.parameterSize ?? tag.parameterSize,
368
571
  quantization: detail?.quantization ?? tag.quantization,
@@ -458,8 +661,9 @@ export async function collectVerseLocalModels(opts = {}) {
458
661
  const lmStudioBaseUrl = normalizeLocalBaseUrl(opts.lmStudioBaseUrl, VERSE_DEFAULT_LMSTUDIO_BASE);
459
662
  const ttlMs = opts.lastGoodTtlMs ?? VERSE_LOCAL_LAST_GOOD_TTL_MS;
460
663
  const now = Date.now();
664
+ const serverDefault = opts.ollamaServerDefault !== undefined ? opts.ollamaServerDefault : readOllamaServerDefault();
461
665
  const [ollamaFresh, lmStudioFresh] = await Promise.all([
462
- collectOllama(fetchImpl, ollamaBaseUrl, timeoutMs).catch(() => ({
666
+ collectOllama(fetchImpl, ollamaBaseUrl, timeoutMs, serverDefault).catch(() => ({
463
667
  reachable: false, baseUrl: ollamaBaseUrl, models: [], reason: 'ollama-probe-failed',
464
668
  })),
465
669
  probeLmStudioModels(fetchImpl, lmStudioBaseUrl, timeoutMs).catch(() => ({
@@ -1 +1 @@
1
- {"version":3,"file":"local-models.js","sourceRoot":"","sources":["../../../src/core/verse/local-models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-models.js","sourceRoot":"","sources":["../../../src/core/verse/local-models.ts"],"names":[],"mappings":"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"}