@ashlr/hub 3.8.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 (147) hide show
  1. package/CHANGELOG.md +201 -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/resources/native-profile.d.ts +56 -0
  6. package/dist/core/resources/native-profile.js +368 -6
  7. package/dist/core/resources/native-profile.js.map +1 -1
  8. package/dist/core/run/model-catalog.js +8 -1
  9. package/dist/core/run/model-catalog.js.map +1 -1
  10. package/dist/core/universe/builtins/preparation/manifest.json +1 -1
  11. package/dist/core/universe/builtins/preparation/preparation-bridge.mjs +9 -2
  12. package/dist/core/universe/builtins/preparation/preparation-verification-fixtures.mjs +8 -1
  13. package/dist/core/verse/adapters/claude.d.ts +49 -2
  14. package/dist/core/verse/adapters/claude.js +317 -56
  15. package/dist/core/verse/adapters/claude.js.map +1 -1
  16. package/dist/core/verse/adapters/codex.d.ts +81 -5
  17. package/dist/core/verse/adapters/codex.js +409 -47
  18. package/dist/core/verse/adapters/codex.js.map +1 -1
  19. package/dist/core/verse/adapters/grok.d.ts +13 -1
  20. package/dist/core/verse/adapters/grok.js +28 -2
  21. package/dist/core/verse/adapters/grok.js.map +1 -1
  22. package/dist/core/verse/adapters/index.d.ts +32 -0
  23. package/dist/core/verse/adapters/index.js +2 -0
  24. package/dist/core/verse/adapters/index.js.map +1 -1
  25. package/dist/core/verse/codex-rollout.d.ts +284 -0
  26. package/dist/core/verse/codex-rollout.js +786 -0
  27. package/dist/core/verse/codex-rollout.js.map +1 -0
  28. package/dist/core/verse/context-fit.d.ts +63 -0
  29. package/dist/core/verse/context-fit.js +355 -0
  30. package/dist/core/verse/context-fit.js.map +1 -0
  31. package/dist/core/verse/context-math.d.ts +215 -0
  32. package/dist/core/verse/context-math.js +365 -0
  33. package/dist/core/verse/context-math.js.map +1 -0
  34. package/dist/core/verse/local-models.d.ts +137 -1
  35. package/dist/core/verse/local-models.js +209 -5
  36. package/dist/core/verse/local-models.js.map +1 -1
  37. package/dist/core/verse/model-windows.d.ts +217 -0
  38. package/dist/core/verse/model-windows.js +616 -0
  39. package/dist/core/verse/model-windows.js.map +1 -0
  40. package/dist/core/verse/preferences.d.ts +123 -0
  41. package/dist/core/verse/preferences.js +403 -0
  42. package/dist/core/verse/preferences.js.map +1 -0
  43. package/dist/core/verse/project-memory.d.ts +112 -0
  44. package/dist/core/verse/project-memory.js +295 -0
  45. package/dist/core/verse/project-memory.js.map +1 -0
  46. package/dist/core/verse/seats.d.ts +106 -4
  47. package/dist/core/verse/seats.js +291 -89
  48. package/dist/core/verse/seats.js.map +1 -1
  49. package/dist/core/verse/session-engine.d.ts +76 -2
  50. package/dist/core/verse/session-engine.js +684 -63
  51. package/dist/core/verse/session-engine.js.map +1 -1
  52. package/dist/core/verse/session-handoff.d.ts +94 -0
  53. package/dist/core/verse/session-handoff.js +551 -0
  54. package/dist/core/verse/session-handoff.js.map +1 -0
  55. package/dist/core/verse/session-search.d.ts +63 -0
  56. package/dist/core/verse/session-search.js +213 -0
  57. package/dist/core/verse/session-search.js.map +1 -0
  58. package/dist/core/verse/session-store.d.ts +16 -2
  59. package/dist/core/verse/session-store.js +80 -6
  60. package/dist/core/verse/session-store.js.map +1 -1
  61. package/dist/core/verse/types.d.ts +333 -1
  62. package/dist/core/verse/types.js +54 -2
  63. package/dist/core/verse/types.js.map +1 -1
  64. package/dist/core/verse/verse-api.d.ts +40 -5
  65. package/dist/core/verse/verse-api.js +724 -25
  66. package/dist/core/verse/verse-api.js.map +1 -1
  67. package/dist/core/web/api.d.ts +14 -4
  68. package/dist/core/web/api.js +26 -11
  69. package/dist/core/web/api.js.map +1 -1
  70. package/dist/core/web/public/next/assets/{App-BsbJFA2j.js → App-XURmiAAp.js} +5 -5
  71. package/dist/core/web/public/next/assets/{App-BsbJFA2j.js.map → App-XURmiAAp.js.map} +1 -1
  72. package/dist/core/web/public/next/assets/{ApprovalsSection-2CCSoBTJ.js → ApprovalsSection-BriUzoZc.js} +2 -2
  73. package/dist/core/web/public/next/assets/{ApprovalsSection-2CCSoBTJ.js.map → ApprovalsSection-BriUzoZc.js.map} +1 -1
  74. package/dist/core/web/public/next/assets/AutonomySection-C4GBsQVc.js +2 -0
  75. package/dist/core/web/public/next/assets/{AutonomySection-yeNNUPur.js.map → AutonomySection-C4GBsQVc.js.map} +1 -1
  76. package/dist/core/web/public/next/assets/ChatSection-BpOBOUvg.css +1 -0
  77. package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js +84 -0
  78. package/dist/core/web/public/next/assets/ChatSection-hlgPBRco.js.map +1 -0
  79. package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js +2 -0
  80. package/dist/core/web/public/next/assets/ConfirmDialog-BdQYI-Ng.js.map +1 -0
  81. package/dist/core/web/public/next/assets/{Dialog-nK15L1M0.js → Dialog-BxdIfmFH.js} +2 -2
  82. package/dist/core/web/public/next/assets/{Dialog-nK15L1M0.js.map → Dialog-BxdIfmFH.js.map} +1 -1
  83. package/dist/core/web/public/next/assets/{DiffViewer-D369eZe8.js → DiffViewer-DmeRWuc4.js} +2 -2
  84. package/dist/core/web/public/next/assets/{DiffViewer-D369eZe8.js.map → DiffViewer-DmeRWuc4.js.map} +1 -1
  85. package/dist/core/web/public/next/assets/{McpSection-DVgiSYG1.js → McpSection-q34T7Tho.js} +2 -2
  86. package/dist/core/web/public/next/assets/{McpSection-DVgiSYG1.js.map → McpSection-q34T7Tho.js.map} +1 -1
  87. package/dist/core/web/public/next/assets/{MutationTokenDialog-B9I4PAcp.js → MutationTokenDialog-CFAkwOEt.js} +2 -2
  88. package/dist/core/web/public/next/assets/{MutationTokenDialog-B9I4PAcp.js.map → MutationTokenDialog-CFAkwOEt.js.map} +1 -1
  89. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-z6tJj3s9.js → ResourcePoolConsoleApp-DHc8GFOY.js} +4 -4
  90. package/dist/core/web/public/next/assets/{ResourcePoolConsoleApp-z6tJj3s9.js.map → ResourcePoolConsoleApp-DHc8GFOY.js.map} +1 -1
  91. package/dist/core/web/public/next/assets/{RouteErrorBoundary-OSajL45F.js → RouteErrorBoundary-ZL9F4qUn.js} +2 -2
  92. package/dist/core/web/public/next/assets/{RouteErrorBoundary-OSajL45F.js.map → RouteErrorBoundary-ZL9F4qUn.js.map} +1 -1
  93. package/dist/core/web/public/next/assets/{Meter-CLcr-4wS.css → Segmented-8cf0Fypn.css} +1 -1
  94. package/dist/core/web/public/next/assets/{Meter-Cmo1pLbk.js → Segmented-DbRjVye3.js} +2 -2
  95. package/dist/core/web/public/next/assets/Segmented-DbRjVye3.js.map +1 -0
  96. package/dist/core/web/public/next/assets/SettingsSection-nJGGGYqv.js +2 -0
  97. package/dist/core/web/public/next/assets/{SettingsSection-B3YH2Npi.js.map → SettingsSection-nJGGGYqv.js.map} +1 -1
  98. package/dist/core/web/public/next/assets/UniverseConsoleApp-6GJydgo4.js +2 -0
  99. package/dist/core/web/public/next/assets/{UniverseConsoleApp-wEKIzl1M.js.map → UniverseConsoleApp-6GJydgo4.js.map} +1 -1
  100. package/dist/core/web/public/next/assets/{UniverseView-CQVpJqqI.js → UniverseView-DLDtNYL8.js} +2 -2
  101. package/dist/core/web/public/next/assets/{UniverseView-CQVpJqqI.js.map → UniverseView-DLDtNYL8.js.map} +1 -1
  102. package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js +2 -0
  103. package/dist/core/web/public/next/assets/UsageSection-Cf9d9iFH.js.map +1 -0
  104. package/dist/core/web/public/next/assets/VerseConsoleApp-DsdKQoTH.css +1 -0
  105. package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js +3 -0
  106. package/dist/core/web/public/next/assets/VerseConsoleApp-y0uOHixd.js.map +1 -0
  107. package/dist/core/web/public/next/assets/{charts-BopViIha.js → charts-CVooqJWN.js} +2 -2
  108. package/dist/core/web/public/next/assets/{charts-BopViIha.js.map → charts-CVooqJWN.js.map} +1 -1
  109. package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js +2 -0
  110. package/dist/core/web/public/next/assets/context-model-Bqv8DVuH.js.map +1 -0
  111. package/dist/core/web/public/next/assets/global-eaY9GyX3.js +2 -0
  112. package/dist/core/web/public/next/assets/global-eaY9GyX3.js.map +1 -0
  113. package/dist/core/web/public/next/assets/{icons-L06pQH6j.js → icons-vex8rclC.js} +2 -2
  114. package/dist/core/web/public/next/assets/{icons-L06pQH6j.js.map → icons-vex8rclC.js.map} +1 -1
  115. package/dist/core/web/public/next/assets/{index-CXgVQHek.js → index-D2Eik-zt.js} +3 -3
  116. package/dist/core/web/public/next/assets/{index-CXgVQHek.js.map → index-D2Eik-zt.js.map} +1 -1
  117. package/dist/core/web/public/next/assets/{queries-D3sSlan1.js → queries-bAYU0VNy.js} +2 -2
  118. package/dist/core/web/public/next/assets/{queries-D3sSlan1.js.map → queries-bAYU0VNy.js.map} +1 -1
  119. package/dist/core/web/public/next/assets/use-guarded-action-C7QrP7Yp.js +2 -0
  120. package/dist/core/web/public/next/assets/{use-guarded-action-BxfJ9E-n.js.map → use-guarded-action-C7QrP7Yp.js.map} +1 -1
  121. package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js +2 -0
  122. package/dist/core/web/public/next/assets/verse-model-TfDk9cky.js.map +1 -0
  123. package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js → workspace-model-CHol5RVp.js} +2 -2
  124. package/dist/core/web/public/next/assets/{workspace-model-v0a1gl-C.js.map → workspace-model-CHol5RVp.js.map} +1 -1
  125. package/dist/core/web/public/next/index.html +1 -1
  126. package/dist/release-dependency-inventory.json +1 -1
  127. package/docs/README.md +1 -0
  128. package/package.json +1 -1
  129. package/dist/core/web/public/next/assets/AutonomySection-yeNNUPur.js +0 -2
  130. package/dist/core/web/public/next/assets/ChatSection-BfnLe5dT.css +0 -1
  131. package/dist/core/web/public/next/assets/ChatSection-DwDDnCZQ.js +0 -80
  132. package/dist/core/web/public/next/assets/ChatSection-DwDDnCZQ.js.map +0 -1
  133. package/dist/core/web/public/next/assets/ConfirmDialog-C363ty_c.js +0 -2
  134. package/dist/core/web/public/next/assets/ConfirmDialog-C363ty_c.js.map +0 -1
  135. package/dist/core/web/public/next/assets/Meter-Cmo1pLbk.js.map +0 -1
  136. package/dist/core/web/public/next/assets/SettingsSection-B3YH2Npi.js +0 -2
  137. package/dist/core/web/public/next/assets/UniverseConsoleApp-wEKIzl1M.js +0 -2
  138. package/dist/core/web/public/next/assets/UsageSection-dToBThXe.js +0 -2
  139. package/dist/core/web/public/next/assets/UsageSection-dToBThXe.js.map +0 -1
  140. package/dist/core/web/public/next/assets/VerseConsoleApp-CMkCizvL.css +0 -1
  141. package/dist/core/web/public/next/assets/VerseConsoleApp-DHU32JCQ.js +0 -3
  142. package/dist/core/web/public/next/assets/VerseConsoleApp-DHU32JCQ.js.map +0 -1
  143. package/dist/core/web/public/next/assets/global-DMWakEhP.js +0 -2
  144. package/dist/core/web/public/next/assets/global-DMWakEhP.js.map +0 -1
  145. package/dist/core/web/public/next/assets/use-guarded-action-BxfJ9E-n.js +0 -2
  146. package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js +0 -2
  147. package/dist/core/web/public/next/assets/verse-model-CvtK6vP6.js.map +0 -1
@@ -28,65 +28,31 @@
28
28
  */
29
29
  import { existsSync, readFileSync } from 'node:fs';
30
30
  import { homedir } from 'node:os';
31
- import { join } from 'node:path';
31
+ import { dirname, isAbsolute, join, relative, sep } from 'node:path';
32
32
  import { readClaudeUsage } from '../fabric/claude-usage.js';
33
33
  import { buildVerseAccountsSnapshot, getVerseAccountCollector, } from './accounts.js';
34
34
  import { DEFAULT_LOCAL_MODEL_TAG } from '../run/model-catalog.js';
35
- import { probeOllamaModelDetail } from './local-models.js';
36
- import { VERSE_DEFAULT_CONTEXT_WINDOWS, } from './types.js';
35
+ import { claudeAutoCompactAt, LOCAL_MIN_USABLE_WINDOW, localWindowUsable, sessionOverheadTokens, } from './context-math.js';
36
+ import { contextWindowFromTagSuffix, probeLlamaSlotContext, probeOllamaModelDetail, probeOllamaResident, readOllamaServerDefault, resolveLocalContextWindow, } from './local-models.js';
37
+ import { claudeModelOptions, claudeModelsNeedingNewerCli, cliVersionFromExecutable, codexModelOptions, compareCliVersions, defaultClaudeVersionsRoot, grokModelOptions, joinClaudeLabels, localModelOption, newestInstalledClaudeVersion, readCodexCatalog, readGrokCatalog, } from './model-windows.js';
38
+ /**
39
+ * The BUILT-IN lists: what a native seat offers when nothing better is known
40
+ * (a Claude seat whose CLI version could not be read, a codex/grok seat that
41
+ * has not fetched its own catalog yet). Real seats are built per account by
42
+ * {@link nativeSeatModels} from the seat's own catalog and pinned binary —
43
+ * see core/verse/model-windows.ts, which holds every window and the evidence
44
+ * for it. Exported for tests and for callers that need the documented
45
+ * defaults without a discovery pass.
46
+ *
47
+ * Never hard-code a model list here again. Two past failures this replaced:
48
+ * Claude models all inherited the CLI's 200k "unknown model" window while the
49
+ * CLI ran six of them at 1M, and `claude-opus-5.5` (dotted) was offered even
50
+ * though every Claude Code binary resolves that spelling to Opus 5.
51
+ */
37
52
  export const VERSE_NATIVE_MODELS = {
38
- claude: [
39
- // Every id below was checked against the CLI's own model catalog, not
40
- // recalled. The discriminator: an id the catalog does not know answers
41
- // `[claude-code:unrecognized_model]` and warns that it "isn't described by
42
- // this version's model catalog"; a known id goes straight through to auth.
43
- // Checked and REJECTED on this machine, so do not add them back from
44
- // memory: claude-sonnet-4-8, claude-haiku-4-1.
45
- { id: 'claude-fable-5-1', label: 'Claude Fable 5.1', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['claude'] ?? null },
46
- // NOTE the dot. `claude-opus-5-5` is NOT in the catalog; only the dotted
47
- // form is. That differs from Opus 4.8, which the CLI accepts either way,
48
- // so the spelling here is the one that was actually checked.
49
- { id: 'claude-opus-5.5', label: 'Claude Opus 5.5', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['claude'] ?? null },
50
- { id: 'claude-fable-5', label: 'Claude Fable 5', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['claude'] ?? null },
51
- { id: 'claude-opus-5', label: 'Claude Opus 5', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['claude'] ?? null },
52
- { id: 'claude-opus-4-8', label: 'Claude Opus 4.8', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['claude'] ?? null },
53
- { id: 'claude-opus-4-5', label: 'Claude Opus 4.5', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['claude'] ?? null },
54
- { id: 'claude-sonnet-5', label: 'Claude Sonnet 5', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['claude'] ?? null },
55
- { id: 'claude-haiku-4-5-20251001', label: 'Claude Haiku 4.5', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['claude'] ?? null },
56
- ],
57
- codex: [
58
- // Read from the CLI's own catalog cache
59
- // (~/.ashlr/native-profiles/<account>/native-state/models_cache.json), which
60
- // carries the ids, display names and 272,000-token window the service
61
- // reported. Not recalled — `codex models` needs an interactive terminal and
62
- // was sitting on a hook-trust prompt, and the cache is the same authority
63
- // without asking anyone to trust anything.
64
- //
65
- // `gpt-5.5-mini` used to be listed here and is NOT in the catalog.
66
- { id: 'gpt-6-astra', label: 'GPT-6 Astra', contextWindow: 272_000 },
67
- { id: 'gpt-6-sol', label: 'GPT-6 Sol', contextWindow: 272_000 },
68
- { id: 'gpt-6-luna', label: 'GPT-6 Luna', contextWindow: 272_000 },
69
- { id: 'gpt-5.6-sol', label: 'GPT-5.6 Sol', contextWindow: 272_000 },
70
- { id: 'gpt-5.6-terra', label: 'GPT-5.6 Terra', contextWindow: 272_000 },
71
- { id: 'gpt-5.6-luna', label: 'GPT-5.6 Luna', contextWindow: 272_000 },
72
- { id: 'gpt-5.5', label: 'GPT-5.5', contextWindow: 272_000 },
73
- { id: 'gpt-reserve', label: 'GPT-Reserve', contextWindow: 272_000 },
74
- ],
75
- grok: [
76
- // Verified against `grok models` run with GROK_HOME pinned to the seat's own
77
- // native profile. Two things this list has been wrong about before:
78
- // - ids were once guessed ('grok-4', 'grok-4-fast'); the CLI rejects both
79
- // with `unknown model id`, so every Grok turn failed before inference.
80
- // - the list then went stale, offering only 4.6/4.5 after the CLI had
81
- // moved its default to 4.7. Verse could not select the default model.
82
- // Never invent or assume a provider's ids, and re-read them from the CLI
83
- // rather than from a bare `grok models`, which reads the UNPINNED home and
84
- // reports "not authenticated" even while the seat's profile is signed in.
85
- { id: 'grok-4.7', label: 'Grok 4.7', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['grok'] ?? null },
86
- { id: 'grok-4.7-build-fast', label: 'Grok 4.7 Build Fast', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['grok'] ?? null },
87
- { id: 'grok-4.6', label: 'Grok 4.6', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['grok'] ?? null },
88
- { id: 'grok-4.5', label: 'Grok 4.5', contextWindow: VERSE_DEFAULT_CONTEXT_WINDOWS['grok'] ?? null },
89
- ],
53
+ claude: claudeModelOptions(null),
54
+ codex: codexModelOptions(null),
55
+ grok: grokModelOptions(null),
90
56
  };
91
57
  /**
92
58
  * LEGACY FALLBACK ONLY. Local seat visibility is now decided by the model's
@@ -234,6 +200,118 @@ function readConnections(accountsRoot) {
234
200
  }
235
201
  return out;
236
202
  }
203
+ const MAX_PROFILE_BYTES = 64 * 1024;
204
+ /**
205
+ * Locate and read `<profile>/profile.json` from an account's launcher argv —
206
+ * the same derivation `mcp-seat-view.resolveAccountStateRoots` uses
207
+ * (`…/launcher.mjs` ⇒ its directory's `profile.json`), but lifting the
208
+ * executable too, which the seat needs to know which CLI version it runs.
209
+ *
210
+ * A profile whose `provider` disagrees with the account is IGNORED rather
211
+ * than half-trusted: reading a grok catalog for a codex seat would be worse
212
+ * than reading none. Returns null whenever anything is missing.
213
+ */
214
+ export function readSeatProfile(command, provider) {
215
+ const launcher = command.find((part) => typeof part === 'string' && part.endsWith('launcher.mjs'));
216
+ if (launcher === undefined || !isAbsolute(launcher))
217
+ return null;
218
+ const directory = dirname(launcher);
219
+ let manifest;
220
+ try {
221
+ const raw = readFileSync(join(directory, 'profile.json'), 'utf8');
222
+ if (raw.length > MAX_PROFILE_BYTES)
223
+ return null;
224
+ manifest = JSON.parse(raw);
225
+ }
226
+ catch {
227
+ return null;
228
+ }
229
+ if (!isRecord(manifest))
230
+ return null;
231
+ if (manifest['provider'] !== undefined && manifest['provider'] !== provider)
232
+ return null;
233
+ const absolute = (value) => typeof value === 'string' && value.length > 0 && value.length <= 4096 && isAbsolute(value) ? value : null;
234
+ return {
235
+ directory,
236
+ nativeStatePath: absolute(manifest['nativeStatePath']),
237
+ executable: absolute(manifest['executable']),
238
+ };
239
+ }
240
+ /** `~/…` for a path under home, so remediation text is copyable but not machine-specific. */
241
+ function homeRelative(path) {
242
+ const home = homedir();
243
+ const rel = relative(home, path);
244
+ if (rel.length === 0 || rel.startsWith('..') || isAbsolute(rel))
245
+ return path;
246
+ return `~/${rel.split(sep).join('/')}`;
247
+ }
248
+ /** Stable-partition: runnable models first, so `models[0]` (the default) always runs. */
249
+ function runnableFirst(models) {
250
+ return [
251
+ ...models.filter((m) => !m.unavailableReason),
252
+ ...models.filter((m) => m.unavailableReason),
253
+ ];
254
+ }
255
+ /**
256
+ * The operator command that points a prepared native profile at another CLI
257
+ * binary (src/cli/resources.ts routes `resources` → `profile` → `repin`). It is
258
+ * a constant because the seat note is copy-paste remediation: a spelling that
259
+ * does not route (`ashlr resource-profile …` never existed) is worse than no
260
+ * hint, and tests pin the exact text through this one name.
261
+ */
262
+ export const VERSE_REPIN_COMMAND = 'ashlr resources profile repin';
263
+ export const VERSE_CATALOG_PENDING_NOTE = "Model list is Verse's built-in list until this seat's first turn fetches its own catalog.";
264
+ /**
265
+ * One native seat's models, pinned CLI version and notes.
266
+ *
267
+ * Every source is the SEAT's: its own catalog file under its profile's
268
+ * `nativeStatePath` and the binary its launcher execs. The unpinned global
269
+ * homes (`~/.codex`, `~/.grok`, `~/.claude`) belong to a different account or
270
+ * binary and are never read — codex-a and codex-b run different CLI versions
271
+ * with different catalogs on this very machine.
272
+ */
273
+ export function nativeSeatModels(provider, profile, opts = {}) {
274
+ const cliVersion = profile?.executable ? cliVersionFromExecutable(profile.executable) : null;
275
+ const notes = [];
276
+ if (provider === 'claude') {
277
+ const models = runnableFirst(claudeModelOptions(cliVersion));
278
+ const tooOld = claudeModelsNeedingNewerCli(cliVersion);
279
+ if (tooOld.length > 0 && cliVersion !== null) {
280
+ const needed = tooOld
281
+ .map((spec) => spec.minCliVersion)
282
+ .reduce((a, b) => (compareCliVersions(a, b) >= 0 ? a : b));
283
+ const versionsRoot = opts.claudeVersionsRoot ?? defaultClaudeVersionsRoot();
284
+ const newest = newestInstalledClaudeVersion(versionsRoot);
285
+ const labels = joinClaudeLabels(tooOld);
286
+ const verb = tooOld.length === 1 ? 'needs' : 'need';
287
+ if (newest !== null && compareCliVersions(newest, needed) >= 0 && compareCliVersions(newest, cliVersion) > 0) {
288
+ const dir = profile ? homeRelative(profile.directory) : '<profile directory>';
289
+ notes.push(`Pinned to Claude Code ${cliVersion}; ${newest} is installed — ${labels} ${verb} it. `
290
+ + `Re-pin with: ${VERSE_REPIN_COMMAND} --directory ${dir} --executable ${homeRelative(join(versionsRoot, newest))}`);
291
+ }
292
+ else {
293
+ notes.push(`Pinned to Claude Code ${cliVersion}; ${labels} ${verb} ${needed} or newer, which is not installed on this machine.`);
294
+ }
295
+ }
296
+ else if (cliVersion === null && models.some((m) => m.minCliVersion)) {
297
+ const gated = models.filter((m) => m.minCliVersion).map((m) => m.label.replace(/^Claude\s+/, ''));
298
+ notes.push(`Could not tell which Claude Code version this seat is pinned to; ${gated.join(', ')} `
299
+ + 'may silently run as an older model on an older binary.');
300
+ }
301
+ return { models, cliVersion, notes };
302
+ }
303
+ const statePath = profile?.nativeStatePath ?? null;
304
+ if (provider === 'codex') {
305
+ const catalog = statePath ? readCodexCatalog(statePath) : null;
306
+ if (catalog === null)
307
+ notes.push(VERSE_CATALOG_PENDING_NOTE);
308
+ return { models: runnableFirst(codexModelOptions(catalog)), cliVersion, notes };
309
+ }
310
+ const catalog = statePath ? readGrokCatalog(statePath) : null;
311
+ if (catalog === null)
312
+ notes.push(VERSE_CATALOG_PENDING_NOTE);
313
+ return { models: runnableFirst(grokModelOptions(catalog)), cliVersion, notes };
314
+ }
237
315
  /** At or above this percent the binding window is reported as `tight`. */
238
316
  export const VERSE_SEAT_TIGHT_PERCENT = 90;
239
317
  function seatWindow(window) {
@@ -522,14 +600,11 @@ export function localSeatPreferenceRank(tag, preferred) {
522
600
  }
523
601
  return preferred.length * 2;
524
602
  }
525
- /** `qwen3-coder-next:ctx64k` → 65536; null when no such suffix. */
526
- export function contextWindowFromTagSuffix(tag) {
527
- const m = /:ctx(\d+)k$/i.exec(tag);
528
- if (!m)
529
- return null;
530
- const n = Number(m[1]);
531
- return Number.isFinite(n) && n > 0 ? n * 1024 : null;
532
- }
603
+ /**
604
+ * Re-exported: the tag-suffix parser now lives beside the one local window
605
+ * resolver in local-models.ts (and accepts `-ctx64k`, which it used to miss).
606
+ */
607
+ export { contextWindowFromTagSuffix };
533
608
  /** `qwen3-coder-next:ctx64k` → "Qwen3-Coder-Next (local)". */
534
609
  export function localSeatLabel(tag) {
535
610
  const [base = tag, ...rest] = tag.split(':');
@@ -542,11 +617,91 @@ export function localSeatLabel(tag) {
542
617
  const variant = rest.join(':');
543
618
  return variant && variant !== 'latest' ? `${pretty} ${variant} (local)` : `${pretty} (local)`;
544
619
  }
545
- async function discoverLocalSeats(fetchImpl, baseUrl, preferred, dispatch) {
620
+ function formatWindow(n) {
621
+ return n.toLocaleString('en-US');
622
+ }
623
+ /**
624
+ * Plain-language caveats for one local seat's window, or none. Only the cases
625
+ * where the number on screen is weaker than it looks get a note: a figure
626
+ * Ollama actually allocates (pinned num_ctx, resident instance, its own
627
+ * default, llama-server's slot) needs no apology.
628
+ */
629
+ export function localWindowNotes(resolved, lane, slotReported) {
630
+ const notes = [];
631
+ if (lane === 'llama-server' && !slotReported) {
632
+ notes.push('llama-server did not report its per-slot context, so this window is Ollama\'s figure for the tag; '
633
+ + 'turns on the llama-server lane get one slot\'s share, which may be less.');
634
+ }
635
+ if (resolved.basis === 'native-estimate') {
636
+ notes.push(`Ollama's default context for models without a pinned num_ctx could not be read; ${formatWindow(resolved.window)} `
637
+ + 'is this model\'s trained maximum, and Ollama may allocate less.');
638
+ }
639
+ else if (resolved.basis === 'tag-suffix' || resolved.basis === 'default') {
640
+ notes.push(`Ollama did not describe this model; the ${formatWindow(resolved.window)}-token context window is an estimate.`);
641
+ }
642
+ return notes;
643
+ }
644
+ /**
645
+ * Why a local window cannot host a Claude Code session, or null when it can.
646
+ *
647
+ * Local turns run Claude Code with `CLAUDE_CODE_MAX_CONTEXT_TOKENS=<window>`
648
+ * (the window must be stated: the CLI otherwise assumes 200k and overflows
649
+ * the runner). The CLI then reserves up to 20k for the reply and compacts
650
+ * 13k below that, so a 32,768 window compacts at 0 — below its own ~15k fixed
651
+ * prompt — and every turn is blocked or loops through compaction. Such a seat
652
+ * is LISTED with this reason (the operator learns why, and which tag would
653
+ * work) rather than offered as runnable or silently hidden.
654
+ */
655
+ export function localWindowUnusableReason(window) {
656
+ if (localWindowUsable(window))
657
+ return null;
658
+ const compactAt = claudeAutoCompactAt(window, null, null);
659
+ return `Context window ${formatWindow(window)} is too small for Claude Code: it would compact at `
660
+ + `≈${Math.round(compactAt / 1000)}k tokens, with no real room above its ~${Math.round(sessionOverheadTokens('local') / 1000)}k base prompt. `
661
+ + `Use a tag with a window of at least ${formatWindow(LOCAL_MIN_USABLE_WINDOW)} tokens.`;
662
+ }
663
+ /**
664
+ * The per-slot window on the llama-server lane, or null. The origin is
665
+ * llama-server's own (NOT the Anthropic proxy turns are dispatched to): the
666
+ * proxy has no `/props`. The imports are lazy for the same reason as
667
+ * {@link resolveLocalDispatchBaseUrl} — an operator who never opted into this
668
+ * lane must not pay for the process-table machinery on boot.
669
+ */
670
+ async function llamaSlotWindow(cfg, fetchImpl, explicitOrigin) {
671
+ try {
672
+ let origin = explicitOrigin;
673
+ if (origin === undefined) {
674
+ const { resolveLlamaServerOrigin } = await import('../local-runtime/llama/config.js');
675
+ origin = resolveLlamaServerOrigin(cfg);
676
+ }
677
+ // The `-c` we launched it with, but only from a record that describes THIS
678
+ // server: a record for another port says nothing about the one answering.
679
+ let requestedContext = null;
680
+ try {
681
+ const { readOwnershipRecord } = await import('../local-runtime/llama/record.js');
682
+ const record = readOwnershipRecord();
683
+ const port = Number.parseInt(new URL(origin).port, 10);
684
+ if (record !== null && record.port === port && typeof record.requestedContext === 'number') {
685
+ requestedContext = record.requestedContext;
686
+ }
687
+ }
688
+ catch {
689
+ requestedContext = null;
690
+ }
691
+ const reading = await probeLlamaSlotContext(fetchImpl, origin, { timeoutMs: OLLAMA_TIMEOUT_MS, requestedContext });
692
+ return reading.perSlot;
693
+ }
694
+ catch {
695
+ return null;
696
+ }
697
+ }
698
+ async function discoverLocalSeats(fetchImpl, baseUrl, preferred, dispatch, windows) {
546
699
  // DISCOVERY IS OLLAMA'S, ALWAYS. `/api/tags` names the installed models and
547
700
  // `/api/show` carries the context window and the `tools` capability that
548
701
  // decides whether a tag can be a seat at all; llama-server implements
549
- // neither. `dispatch` only changes where the resulting seats SEND turns.
702
+ // neither. `dispatch` changes where the resulting seats SEND turns — and, on
703
+ // the llama-server lane, the window (llama-server allocates per slot,
704
+ // whatever the tag's Modelfile says).
550
705
  const probe = await probeOllamaTags(fetchImpl, baseUrl);
551
706
  const localRuntime = {
552
707
  ollama: { reachable: probe.reachable, baseUrl, models: probe.tags },
@@ -558,35 +713,71 @@ async function discoverLocalSeats(fetchImpl, baseUrl, preferred, dispatch) {
558
713
  const launches = new Map();
559
714
  if (!probe.reachable)
560
715
  return { seats, launches, localRuntime };
561
- // One /api/show per installed tag: it carries BOTH the effective context
562
- // window and the tool capability that decides whether this can be a seat.
563
- const details = await Promise.all(probe.tags.map((tag) => probeOllamaModelDetail(fetchImpl, baseUrl, tag, OLLAMA_TIMEOUT_MS)));
716
+ // One /api/show per installed tag: it carries BOTH the context facts and the
717
+ // tool capability that decides whether this can be a seat. The llama-server
718
+ // slot probe (if any) runs concurrently.
719
+ const [details, slotWindow] = await Promise.all([
720
+ Promise.all(probe.tags.map((tag) => probeOllamaModelDetail(fetchImpl, baseUrl, tag, OLLAMA_TIMEOUT_MS))),
721
+ windows.llamaSlot ?? Promise.resolve(null),
722
+ ]);
564
723
  const selectable = [];
565
724
  probe.tags.forEach((tag, i) => {
566
725
  const detail = details[i] ?? null;
567
- if (!localSeatIsSelectable(detail, tag))
568
- return;
569
- selectable.push({
726
+ if (localSeatIsSelectable(detail, tag))
727
+ selectable.push({ tag, detail });
728
+ });
729
+ // Unpinned tags need what Ollama would ACTUALLY allocate an unpinned request:
730
+ // the server's default (its log, else our env). `/api/ps` residency is read
731
+ // only when no default is known — a resident runner may have been loaded by
732
+ // another client's `options.num_ctx`, so it is not what Verse's turns get
733
+ // (local-models.ts `resolveLocalContextWindow`). Both reads are skipped when
734
+ // every tag pins num_ctx or the llama-server slot already answered.
735
+ const needsServerFacts = slotWindow === null
736
+ && selectable.some(({ detail }) => detail !== null && (detail.numCtx ?? null) === null);
737
+ const serverDefault = needsServerFacts ? windows.serverDefault() : null;
738
+ // (A tag with no native length cannot use the default either — it is never
739
+ // applied uncapped — so residency is its best fact too.)
740
+ const needsResidency = needsServerFacts && ((serverDefault?.contextLength ?? null) === null
741
+ || selectable.some(({ detail }) => detail !== null && (detail.numCtx ?? null) === null && (detail.nativeContextLength ?? null) === null));
742
+ const resident = needsResidency ? await probeOllamaResident(fetchImpl, baseUrl, OLLAMA_TIMEOUT_MS) : null;
743
+ const residentByTag = new Map((resident ?? []).map((row) => [row.tag, row.contextLength]));
744
+ const observedAt = new Date().toISOString();
745
+ const built = selectable.map(({ tag, detail }) => {
746
+ const resolved = resolveLocalContextWindow({
570
747
  tag,
571
- contextWindow: detail?.contextWindow
572
- ?? contextWindowFromTagSuffix(tag)
573
- ?? VERSE_DEFAULT_CONTEXT_WINDOWS['local']
574
- ?? 65_536,
748
+ lane: dispatch.lane,
749
+ llamaSlotWindow: slotWindow,
750
+ detail,
751
+ residentContext: residentByTag.get(tag) ?? null,
752
+ serverDefault,
575
753
  });
576
- });
577
- // Preferred model first, then discovery order. `sort` is stable, so every
578
- // tag that is not preferred keeps the order `/api/tags` reported it in.
579
- selectable.sort((a, b) => localSeatPreferenceRank(a.tag, preferred) - localSeatPreferenceRank(b.tag, preferred));
580
- selectable.forEach(({ tag, contextWindow }) => {
754
+ const notes = localWindowNotes(resolved, dispatch.lane, slotWindow !== null);
755
+ const label = localSeatLabel(tag);
756
+ const unavailableReason = localWindowUnusableReason(resolved.window);
757
+ const option = localModelOption(tag, label.replace(/ \(local\)$/, ''), resolved.window, resolved.source);
581
758
  const seat = {
582
759
  id: `local:${tag}`,
583
760
  engine: 'local',
584
- label: localSeatLabel(tag),
761
+ label,
585
762
  accountId: 'local',
586
- models: [{ id: tag, label: localSeatLabel(tag).replace(/ \(local\)$/, ''), contextWindow }],
587
- contextWindow,
588
- health: { state: 'ready', summary: null, windows: [], observedAt: new Date().toISOString() },
763
+ // Present only when set, so a usable seat's wire shape is unchanged.
764
+ models: [unavailableReason !== null ? { ...option, unavailableReason } : option],
765
+ contextWindow: resolved.window,
766
+ health: { state: 'ready', summary: null, windows: [], observedAt },
767
+ ...(notes.length > 0 ? { notes } : {}),
589
768
  };
769
+ return { tag, seat, usable: unavailableReason === null };
770
+ });
771
+ // Usable seats first, then preferred model first, then discovery order.
772
+ // `sort` is stable, so every tag that is not preferred keeps the order
773
+ // `/api/tags` reported it in — and a preferred tag whose window is too small
774
+ // never becomes the default ahead of one that can actually run.
775
+ built.sort((a, b) => {
776
+ if (a.usable !== b.usable)
777
+ return a.usable ? -1 : 1;
778
+ return localSeatPreferenceRank(a.tag, preferred) - localSeatPreferenceRank(b.tag, preferred);
779
+ });
780
+ built.forEach(({ seat }) => {
590
781
  seats.push(seat);
591
782
  launches.set(seat.id, {
592
783
  seat,
@@ -621,7 +812,10 @@ export async function discoverSeats(cfg, opts = {}) {
621
812
  // Codex-only evidence file.
622
813
  const telemetry = buildSeatTelemetry(accountsRoot, { collector: opts.collector });
623
814
  for (const account of accounts) {
624
- const models = VERSE_NATIVE_MODELS[account.provider].map((m) => ({ ...m }));
815
+ // Models come from THIS seat's own catalog and pinned binary.
816
+ const profile = readSeatProfile(account.command, account.provider);
817
+ const built = nativeSeatModels(account.provider, profile, { claudeVersionsRoot: opts.claudeVersionsRoot });
818
+ const models = built.models;
625
819
  const facets = nativeSeatFacets(account.id, account.provider, telemetry, claudeUsage);
626
820
  const seat = {
627
821
  id: account.id,
@@ -629,11 +823,19 @@ export async function discoverSeats(cfg, opts = {}) {
629
823
  label: account.label,
630
824
  accountId: account.id,
631
825
  models,
632
- contextWindow: models[0]?.contextWindow ?? null,
826
+ // `models[0]` is the default and is always runnable (runnableFirst),
827
+ // so the seat's headline window is one a new session can actually get.
828
+ contextWindow: models.find((m) => !m.unavailableReason)?.contextWindow ?? null,
633
829
  health: facets.health,
634
830
  };
635
831
  if (facets.capacity)
636
832
  seat.capacity = facets.capacity;
833
+ // Both optional and absent when there is nothing to say, so an ordinary
834
+ // seat's wire shape does not change.
835
+ if (built.cliVersion !== null)
836
+ seat.cliVersion = built.cliVersion;
837
+ if (built.notes.length > 0)
838
+ seat.notes = built.notes;
637
839
  seats.push(seat);
638
840
  // The launcher command stays here — it is the account's identity.
639
841
  launches.set(seat.id, { seat, launcher: account.command, ollamaBaseUrl });
@@ -647,9 +849,9 @@ export async function discoverSeats(cfg, opts = {}) {
647
849
  };
648
850
  try {
649
851
  const dispatchBaseUrl = await resolveLocalDispatchBaseUrl(cfg, dispatchLane, ollamaBaseUrl);
650
- const local = await discoverLocalSeats(fetchImpl, ollamaBaseUrl, preferredLocalTags(cfg), {
651
- lane: dispatchLane,
652
- baseUrl: dispatchBaseUrl,
852
+ const local = await discoverLocalSeats(fetchImpl, ollamaBaseUrl, preferredLocalTags(cfg), { lane: dispatchLane, baseUrl: dispatchBaseUrl }, {
853
+ llamaSlot: dispatchLane === 'llama-server' ? llamaSlotWindow(cfg, fetchImpl, opts.llamaServerOrigin) : null,
854
+ serverDefault: () => (opts.ollamaServerDefault !== undefined ? opts.ollamaServerDefault : readOllamaServerDefault()),
653
855
  });
654
856
  localRuntime = local.localRuntime;
655
857
  for (const seat of local.seats) {
@@ -1 +1 @@
1
- {"version":3,"file":"seats.js","sourceRoot":"","sources":["../../../src/core/verse/seats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seats.js","sourceRoot":"","sources":["../../../src/core/verse/seats.ts"],"names":[],"mappings":"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"}