ur-agent 1.84.3 → 1.84.5

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.
@@ -143,6 +143,46 @@ ur config set base_url <url>
143
143
  ur config set base_url <provider> <url>
144
144
  ```
145
145
 
146
+ OpenRouter's default `auto` policy keeps its current Auto Exacto ordering for
147
+ tool turns and prioritizes end-to-end throughput for ordinary text turns.
148
+ Every performance choice is explicit and editable:
149
+
150
+ ```sh
151
+ ur config set openrouter.routing auto # auto | throughput | latency | price
152
+ ur config set openrouter.allow_fallbacks true # true | false | auto
153
+ ur config set openrouter.require_parameters true # true | false | auto
154
+ ur config set openrouter.preferred_min_throughput 40
155
+ ur config set openrouter.preferred_max_latency 3
156
+ ur config set openrouter.service_tier priority # auto | default | flex | priority | fast
157
+ ur config set openrouter.speed fast # standard | fast
158
+ ur config set model <openrouter-model>:nitro # or :floor / :exacto
159
+ ```
160
+
161
+ Thresholds are preferences, not exclusions. `priority` and `fast` can increase
162
+ price and apply only where OpenRouter advertises upstream support; their
163
+ default `auto`/`standard` values add no premium request. Explicit request-level
164
+ provider preferences still win. Set either performance threshold to `auto` to
165
+ remove it and return to OpenRouter's own routing data.
166
+
167
+ Direct Anthropic requests preserve UR's prompt-cache breakpoints using
168
+ Anthropic's supported cache-control shape. Streaming requests also set
169
+ `eager_input_streaming: true` on user-defined tools, so large tool arguments
170
+ arrive as Claude generates them instead of waiting for server-side buffering.
171
+ Both behaviors use Anthropic's documented native fields and require no setting.
172
+
173
+ Anthropic fast mode is a separate, premium research-preview tier. It is off by
174
+ default and can be requested explicitly:
175
+
176
+ ```sh
177
+ ur config set anthropic.speed fast # standard | fast
178
+ ```
179
+
180
+ UR adds `speed: "fast"` and Anthropic's required
181
+ `fast-mode-2026-02-01` beta only for Claude Opus 5 and Opus 4.8. The account
182
+ must be enabled by Anthropic. Other Claude models remain on standard speed;
183
+ UR does not send a field the selected model does not support. Return to normal
184
+ billing with `ur config set anthropic.speed standard`.
185
+
146
186
  `provider.fallback` is diagnostic recovery metadata, not automatic routing.
147
187
  When the active provider fails, `ur provider doctor` shows the configured
148
188
  recovery command; changing providers remains an explicit user action.
@@ -242,11 +282,21 @@ UNSLOTH_API_KEY=...
242
282
 
243
283
  NVIDIA NIM defaults to `https://integrate.api.nvidia.com/v1`, discovers the
244
284
  connected account's models live, and accepts a provider-scoped override for an
245
- enterprise or self-hosted NIM. Generic `openai-compatible` authentication is
285
+ enterprise or self-hosted NIM. On NVIDIA's hosted endpoint, UR treats the
286
+ documented `/v1/models` response as authoritative and omits non-agent utility
287
+ endpoints. It does not narrow hosted models using the separate NVCF deployment
288
+ inventory; a configured NIM gateway uses its own model feed. Generic
289
+ `openai-compatible` authentication is
246
290
  optional: `ur connect openai-compatible` or the picker's `K` key stores a
247
291
  credential when the chosen gateway needs one, without breaking anonymous
248
292
  local endpoints.
249
293
 
294
+ The broader Build web page includes download-only NIMs; those are not valid
295
+ hosted choices unless the authenticated `/v1/models` endpoint returns them.
296
+ For the hosted service, UR focuses NVIDIA's documented fastest 30B agent model,
297
+ `nvidia/nemotron-3.5-lightning-30b-a3b`, first. Its thinking toggle maps to
298
+ NVIDIA's model-specific `chat_template_kwargs.enable_thinking` field.
299
+
250
300
  Unsloth is an inference-provider integration only. Start Unsloth Studio and
251
301
  load the model outside UR, connect its generated key with `ur connect unsloth`,
252
302
  then select a model discovered from `http://localhost:8888/v1` (or your
@@ -210,6 +210,54 @@ press `K` on its `/model` screen; the key is optional and stored separately
210
210
  from `OPENAI_API_KEY`. NVIDIA NIM uses `ur connect nvidia-nim` and keeps any
211
211
  custom `base_url` scoped to that provider.
212
212
 
213
+ ### NVIDIA lists a model but inference returns `Function … Not found for account`
214
+
215
+ - Cause: NVIDIA's hosted `/v1/models` feed can change, or a listed model's
216
+ backing function can become unavailable for the connected account.
217
+ - Fix: upgrade UR, run `ur provider doctor nvidia-nim`, then open `/model` and
218
+ press `Ctrl+R`. Hosted discovery uses NVIDIA's documented `/v1/models`
219
+ endpoint and excludes non-agent utility endpoints. It does not intersect the
220
+ catalog with the separate NVCF deployment-function inventory. A definitive
221
+ runtime 404 removes only that model from the current endpoint-scoped session
222
+ catalog until the next explicit refresh.
223
+ - Privacy: UR does not display or retain the internal NVIDIA function UUID and
224
+ account identifier from this error response.
225
+
226
+ If `chat_models` fails, reconnect a current build.nvidia.com key with
227
+ `ur connect nvidia-nim`. A configured enterprise/self-hosted NIM endpoint is
228
+ validated only against that gateway's own `/models` response.
229
+
230
+ ### A provider says the previous answer was empty after successful tool calls
231
+
232
+ Some OpenAI-compatible models scope generated tool-call IDs to one response
233
+ and reuse values such as `TaskCreate:0` on a later response. Older UR releases
234
+ mistook the later completed pair for transcript corruption, removed it before
235
+ the next API request, and could make the model believe that the user sent an
236
+ empty continuation.
237
+
238
+ Upgrade UR and retry the turn. UR now canonicalizes only later, independently
239
+ completed call/result pairs before provider dispatch. Same-message duplicates,
240
+ unmatched calls, and orphaned results still go through normal transcript
241
+ repair. The saved transcript remains faithful to the provider response; only
242
+ the API-bound copy receives conversation-unique IDs.
243
+
244
+ ### `The provider reported that model … reached its per-response output boundary`
245
+
246
+ This is not an input-context overflow and does not mean UR counted the text
247
+ incorrectly. The provider ended the generation with its `max_tokens`/`length`
248
+ finish reason on a response chunk whose boundary was the displayed value. The
249
+ normal query loop silently continues from the exact cutoff with no fixed total
250
+ continuation ceiling while every capped response adds novel work. It stops only
251
+ after two consecutive empty or replayed capped responses, which indicates a
252
+ stalled model loop rather than a long task.
253
+
254
+ `UR_CODE_MAX_OUTPUT_TOKENS` changes only the per-response chunk, up to the
255
+ model's discovered limit; it does not impose or remove a total task limit.
256
+ Cloud requests use a practical chunk so routers retain fast endpoint choices,
257
+ and local runtimes use a smaller reservation to avoid unnecessary KV-memory
258
+ allocation. If the stalled-loop message appears, inspect the prompt/model for
259
+ repetition before retrying.
260
+
213
261
  ### Unsloth is selected but unavailable
214
262
 
215
263
  - Likely cause: Studio is not running, no model is loaded, its generated API
package/docs/USAGE.md CHANGED
@@ -173,6 +173,36 @@ ur config set responses.compact_threshold 20000
173
173
  ur config set responses.tool_search hosted
174
174
  ```
175
175
 
176
+ For OpenRouter, UR preserves Auto Exacto on tool turns and uses throughput
177
+ routing on non-tool turns. Tune that provider without hardcoded endpoints or
178
+ request patches:
179
+
180
+ ```sh
181
+ ur config set openrouter.routing auto
182
+ ur config set openrouter.preferred_min_throughput 40
183
+ ur config set openrouter.preferred_max_latency 3
184
+ ur config set openrouter.service_tier priority
185
+ ur config set openrouter.speed fast
186
+ ```
187
+
188
+ `auto` is the recommended default. `priority`/`fast` are optional paid upstream
189
+ features and are effective only for models that OpenRouter supports. Append
190
+ `:nitro`, `:floor`, or `:exacto` to an OpenRouter model ID for its native
191
+ throughput-, price-, or tool-quality-first virtual route.
192
+
193
+ Direct Anthropic sessions preserve prompt-cache breakpoints and stream large
194
+ tool arguments with Anthropic's per-tool `eager_input_streaming` control.
195
+ Accounts admitted to Anthropic's premium fast-mode research preview can opt in
196
+ for its supported Opus models:
197
+
198
+ ```sh
199
+ ur config set anthropic.speed fast
200
+ ```
201
+
202
+ UR sends that tier only to Claude Opus 5 and Opus 4.8; all other Claude models
203
+ remain on standard speed. Use `ur config set anthropic.speed standard` to turn
204
+ the premium tier off.
205
+
176
206
  `provider.fallback` only controls the recovery suggestion printed by provider
177
207
  diagnostics. UR does not switch or retry across providers automatically; use
178
208
  `ur config set provider <id>` after reviewing the failure.
@@ -240,7 +270,16 @@ API-key access, and an API key does not grant subscription CLI access.
240
270
  NVIDIA NIM uses the build.nvidia.com key and hosted
241
271
  `https://integrate.api.nvidia.com/v1` endpoint by default. Connect it with
242
272
  `ur connect nvidia-nim`; use `ur config set base_url nvidia-nim <url>` for a
243
- different NIM deployment. On the `/model` model screen, `K` adds or replaces a
273
+ different NIM deployment. For the hosted endpoint, `/model` shows only models
274
+ returned by NVIDIA's authoritative `/v1/models` feed, excluding non-agent
275
+ utility endpoints such as embeddings, guards, and parsers. NVCF deployment
276
+ functions are a separate API and do not narrow this hosted catalog. A custom
277
+ NIM gateway retains its own independent catalog.
278
+ Download-only cards from the Build web catalog are not inserted into the
279
+ hosted picker. NVIDIA's live `nemotron-3.5-lightning-30b-a3b` endpoint is
280
+ focused first as its documented fastest 30B agent model; Left/Right controls
281
+ that model's advertised on/off thinking switch.
282
+ On the `/model` model screen, `K` adds or replaces a
244
283
  provider API key and `E` edits its endpoint. This also makes optional
245
284
  authentication practical for generic OpenAI-compatible gateways.
246
285
 
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.84.3 (UR-Nexus)"
22
+ # expected for this release: "1.84.5 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ### 0.0 Redteam mode and Reverse Skills (1.81.0)
@@ -72,7 +72,7 @@ changes must remain blocked. The deterministic regressions are:
72
72
  bun test test/taskListGate.test.ts test/toolExecutionFinalInput.test.ts
73
73
  ```
74
74
 
75
- ### 0.0.0 OpenRouter research routing and provider UI (1.81.3; Ultra mapping updated 1.83.1)
75
+ ### 0.0.0 OpenRouter research routing and provider UI (routing updated 1.84.4)
76
76
 
77
77
  Connect OpenRouter, run `/model`, select OpenRouter, and verify that its model
78
78
  step shows catalog freshness plus pricing/context/tool/reasoning details. Focus
@@ -100,13 +100,76 @@ the auxiliary request stays on the active OpenRouter model, no `modelH` error
100
100
  appears, a real provider search count is shown, and a response that did not
101
101
  perform a search fails clearly instead of saying `Did 0 searches`.
102
102
 
103
+ Inspect the OpenRouter request body. A turn containing tools must not contain a
104
+ default `provider.sort`, leaving Auto Exacto active; a text-only request must
105
+ contain `provider.sort="throughput"`. Both retain the stable `session_id`.
106
+ Then verify explicit controls and native virtual variants:
107
+
108
+ ```sh
109
+ ur config set openrouter.routing latency
110
+ ur config set openrouter.allow_fallbacks true
111
+ ur config set openrouter.require_parameters true
112
+ ur config set openrouter.preferred_min_throughput 40
113
+ ur config set openrouter.preferred_max_latency 3
114
+ ur config set openrouter.service_tier priority
115
+ ur config set openrouter.speed fast
116
+ ur config set model <discovered-openrouter-model>:nitro
117
+ ```
118
+
119
+ The forced routing value must appear on both tool and non-tool requests;
120
+ fallback/threshold settings must use OpenRouter's snake-case wire keys;
121
+ `priority`/`fast` must appear only when explicitly selected. `:nitro` must
122
+ validate against the discovered base model and inherit its context, output,
123
+ tool, and reasoning metadata.
124
+
125
+ For direct Anthropic, inspect one streaming request with tools. Valid
126
+ `cache_control` markers must remain while URHQ-only `scope` is absent, each user
127
+ tool must include `eager_input_streaming: true`, and no legacy fine-grained
128
+ streaming beta header is required. Then run:
129
+
130
+ ```sh
131
+ ur config set anthropic.speed fast
132
+ ```
133
+
134
+ Opus 5/4.8 must receive `speed="fast"` and
135
+ `anthropic-beta: fast-mode-2026-02-01`; Sonnet, Fable, Haiku, and unsupported
136
+ Opus versions must receive neither. A non-stream response must retain
137
+ `usage.speed`.
138
+
103
139
  Deterministic coverage:
104
140
 
105
141
  ```sh
106
142
  bun test test/providerPickerPresentation.test.ts \
107
143
  test/openRouterEffort.test.ts test/providerModelDiscovery.test.ts \
108
144
  test/secondaryModelFallback.test.ts test/providerToolCalls.test.ts \
109
- test/usageAccounting.test.ts test/providerRouting.test.ts
145
+ test/providerContextWindow.test.ts test/outputLimitRecovery.test.ts \
146
+ test/usageAccounting.test.ts test/providerRouting.test.ts \
147
+ test/reusedToolUseIds.test.ts
148
+ ```
149
+
150
+ The repeated-ID fixture contains two sequential completed calls that both
151
+ arrive as `TaskCreate:0`. Both call/results must survive the provider-bound
152
+ history pass with the later pair renamed deterministically; same-message or
153
+ unmatched duplicates must remain visible to corruption repair.
154
+
155
+ ### 0.0.0a Provider output-boundary continuation (1.84.4)
156
+
157
+ Use a provider fixture that returns `max_tokens`/`length` after non-empty
158
+ partial output. UR must withhold the intermediate API error, add a continuation
159
+ turn that requests only novel work from the exact cutoff, and continue for more
160
+ than three responses while every response progresses. The original prompt,
161
+ tool state, and completed output remain in context. Two consecutive empty or
162
+ exact-replay capped responses must stop with the stalled-loop diagnostic.
163
+
164
+ The per-request `max_tokens` value remains bounded by live/static model
165
+ metadata. A model with a 128K advertised output ceiling uses a practical 32K
166
+ default response chunk; `UR_CODE_MAX_OUTPUT_TOKENS` may raise that chunk to
167
+ 128K, but neither value creates a total task-output ceiling. Local/user-hosted
168
+ runtimes use their conservative 4K reservation and the same continuation path.
169
+
170
+ ```sh
171
+ bun test test/outputLimitRecovery.test.ts \
172
+ test/providerRequestTuning.test.ts test/providerContextWindow.test.ts
110
173
  ```
111
174
 
112
175
  ### 0.0.1 Unavailable Ollama tools recover (1.80.7)
@@ -198,8 +261,12 @@ NVIDIA NIM, Ollama, LM Studio, llama.cpp, vLLM, Unsloth, and generic OpenAI-comp
198
261
  request shapes.
199
262
 
200
263
  The NVIDIA fixture also verifies hosted/default and overridden endpoints,
201
- Bearer discovery, native dispatch, documented effort aliases, and no Ultra on
202
- an unknown model. In `/model`, select `openai-compatible` and verify `K` can
264
+ Bearer discovery from NVIDIA's authoritative `/v1/models` endpoint, removal
265
+ of non-agent utility models, selected-model doctor diagnostics, redaction of
266
+ internal NVIDIA account/function IDs, endpoint-scoped runtime invalidation,
267
+ native dispatch, the preferred Lightning endpoint and its model-scoped
268
+ `enable_thinking` switch, documented effort aliases, and no Ultra on an unknown model. In
269
+ `/model`, select `openai-compatible` and verify `K` can
203
270
  add or replace its optional key while `E` continues to edit only its endpoint.
204
271
 
205
272
  ## 0.2 Permission safety and context pack (1.19.0)
package/docs/providers.md CHANGED
@@ -263,10 +263,40 @@ shows pricing tier, context size, tool capability, reasoning capability, and
263
263
  the full, untruncated model ID immediately below the focused entry. Opening the
264
264
  OpenRouter catalog reuses its endpoint-scoped five-minute cache; Ctrl+R forces
265
265
  the current `/models` endpoint and never substitutes a cached list when that
266
- forced refresh fails. Interactive requests default to OpenRouter's latency
267
- sorting, promote UR's stable session ID for sticky routing, and preserve safe
268
- provider prompt-cache markers. Explicit routing preferences and the `:nitro`,
269
- `:floor`, and `:exacto` model variants remain authoritative. API-key entry for
266
+ forced refresh fails. Tool requests preserve OpenRouter Auto Exacto so its live
267
+ throughput, tool-call reliability, and benchmark signals choose the route;
268
+ non-tool requests default to throughput sorting rather than TTFT-only latency
269
+ sorting. UR promotes its stable session ID for prompt-cache affinity while
270
+ retaining router fallback. Explicit request preferences, the `openrouter.*`
271
+ configuration controls, and the `:nitro`, `:floor`, and `:exacto` model variants
272
+ remain authoritative. See OpenRouter's
273
+ [provider routing](https://openrouter.ai/docs/guides/routing/provider-selection),
274
+ [Auto Exacto](https://openrouter.ai/docs/guides/routing/auto-exacto), and
275
+ [prompt caching](https://openrouter.ai/docs/guides/best-practices/prompt-caching).
276
+
277
+ Direct Anthropic requests retain supported prompt-cache breakpoints and enable
278
+ per-tool `eager_input_streaming` on streaming turns. This reduces repeated
279
+ prefill work and avoids waiting for a complete large tool argument before its
280
+ deltas arrive. Anthropic's premium fast tier remains explicit:
281
+
282
+ ```sh
283
+ ur config set anthropic.speed fast
284
+ ```
285
+
286
+ UR sends `speed: "fast"` with the `fast-mode-2026-02-01` beta only for Claude
287
+ Opus 5 and Opus 4.8, and retains `usage.speed` so accounting can distinguish the
288
+ tier actually served. Enabled account access is still required. Unsupported
289
+ models stay on standard speed. See Anthropic's
290
+ [prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching),
291
+ [fine-grained tool streaming](https://platform.claude.com/docs/en/agents-and-tools/tool-use/fine-grained-tool-streaming),
292
+ and [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode).
293
+
294
+ UR uses only provider-documented acceleration controls. OpenAI Responses
295
+ already has native streaming and WebSocket continuation; Gemini 2.5+ implicit
296
+ caching is automatic. Google's Priority tier requires the Interactions API and
297
+ is not a valid `generateContent` option. NVIDIA NIM and local servers publish
298
+ no universal OpenRouter-style routing field, so UR does not invent one.
299
+ API-key entry for
270
300
  OpenAI, Claude, Gemini, OpenRouter, NVIDIA NIM, and authenticated compatible
271
301
  endpoints is a single aligned masked row; the key is stored in the OS keychain
272
302
  flow and is never written to settings. On the model screen, `K` adds or
@@ -277,8 +307,9 @@ OpenAI-compatible endpoints may remain anonymous.
277
307
 
278
308
  UR uses each provider's non-generating count endpoint when one covers the full
279
309
  request: OpenAI Responses input tokens, Anthropic Messages token counting,
280
- Gemini `countTokens`, llama.cpp chat input tokens, and vLLM/NVIDIA NIM Messages
281
- token counting. Ollama, OpenRouter, LM Studio, Unsloth, and subscription CLIs use a
310
+ Gemini `countTokens`, llama.cpp chat input tokens, and vLLM Messages token
311
+ counting. NVIDIA's hosted NIM API has no documented token-count route;
312
+ NVIDIA NIM, Ollama, OpenRouter, LM Studio, Unsloth, and subscription CLIs use a
282
313
  provider-wire local estimate because those runtimes do not share a dependable
283
314
  preflight tokenizer for complete chat history plus tools. UR never launches a
284
315
  hidden completion for token counting. If a native count call is unavailable,
@@ -420,7 +451,7 @@ ur config set provider anthropic-api
420
451
  | --- | --- | --- |
421
452
  | API providers (openai-api, anthropic-api, gemini-api) | Live discovery from the provider's `/models` endpoint using your connected key (curated fallback until connected) | live |
422
453
  | OpenRouter | Live `/models` discovery with an endpoint-scoped five-minute cache; Ctrl+R forces a fresh request with no stale fallback | live/cache |
423
- | NVIDIA NIM | Live `/models` discovery from the hosted or configured NIM endpoint; no stale offline model catalog | live |
454
+ | NVIDIA NIM | Hosted: authoritative live `/models`, restricted to agent/chat endpoints. Configured NIM gateway: its own live `/models` catalog | live |
424
455
  | Local/server providers (ollama, lmstudio, llama.cpp, vllm, unsloth) | Dynamic discovery from the selected provider endpoint | live |
425
456
  | OpenAI-compatible | Dynamic discovery from configured endpoint | live |
426
457
  | Subscription CLIs (codex-cli, claude-code-cli, gemini-cli, antigravity-cli) | Curated list (the official CLIs expose no models API); first-class in `/model`, dispatched via the official CLI. External CLI behavior depends on the vendor CLI. Log in with `ur auth <provider>` | static |
@@ -657,15 +688,38 @@ ur provider doctor nvidia-nim
657
688
  ur config set base_url nvidia-nim https://nim-gateway.example/v1
658
689
  ```
659
690
 
660
- The default is `https://integrate.api.nvidia.com/v1`. UR calls `/models`,
661
- `/chat/completions`, and, when available, `/messages/count_tokens`; native
662
- count failure falls back to a provider-wire estimate and never launches a
663
- hidden completion. Streaming, standard tool calls, and image input use the
691
+ The default is `https://integrate.api.nvidia.com/v1`. NVIDIA documents
692
+ `/v1/models` as the management endpoint for models available for inference, so
693
+ UR uses that authenticated response as the live hosted catalog. It removes
694
+ embedding, guard, parser, translation, reward, and similar non-agent endpoints,
695
+ but does not intersect the result with NVCF's separate deployment-function
696
+ inventory. A custom enterprise or self-hosted NIM remains independent and uses
697
+ only that configured gateway's `/models` response.
698
+
699
+ The Build web catalog also contains download-only NIMs. UR does not add those
700
+ cards to the hosted picker: only IDs returned by the authenticated hosted
701
+ `/v1/models` endpoint can appear. UR focuses
702
+ `nvidia/nemotron-3.5-lightning-30b-a3b` first because NVIDIA documents it as
703
+ its fastest 30B model for long-running agents. Left/Right can turn that exact
704
+ model's thinking off/on through NVIDIA's documented
705
+ `chat_template_kwargs.enable_thinking`; other NIM models receive only their
706
+ own advertised reasoning contract.
707
+
708
+ UR calls `/models` and `/chat/completions`. It counts NVIDIA requests with a
709
+ provider-wire local estimate instead of first calling the unsupported hosted
710
+ `/messages/count_tokens` route, and never launches a hidden completion.
711
+ Streaming, standard tool calls, and image input use the
664
712
  same OpenAI-compatible adapter. Vision and tools remain model-dependent. For
665
713
  documented Nemotron coding-agent models, UR includes NVIDIA's
666
714
  `force_nonempty_content` template option when tools are present. See NVIDIA's
667
715
  [NIM LLM API reference](https://docs.api.nvidia.com/nim/reference/llm-apis)
668
- and [NIM function-calling API](https://docs.nvidia.com/nim/large-language-models/latest/function-calling.html).
716
+ and [NIM endpoint guide](https://docs.nvidia.com/nim/large-language-models/latest/tutorials.html).
717
+
718
+ `ur provider doctor nvidia-nim` verifies the hosted catalog and selected model
719
+ against the live `/v1/models` response. If NVIDIA rejects a listed model after
720
+ selection, UR redacts NVIDIA's internal function/account IDs, removes that
721
+ model from the current endpoint-scoped session catalog, and asks the user to
722
+ select another model. `Ctrl+R` explicitly retries discovery.
669
723
 
670
724
  Local/server providers use their normal endpoints:
671
725
 
@@ -45,7 +45,7 @@
45
45
  <main id="content" class="content">
46
46
  <header class="topbar">
47
47
  <div>
48
- <p class="eyebrow">Version 1.84.3</p>
48
+ <p class="eyebrow">Version 1.84.5</p>
49
49
  <h1>UR-Nexus Documentation</h1>
50
50
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
51
51
  </div>
@@ -172,8 +172,9 @@ ur config set provider unsloth
172
172
  ur config set model qwen3-coder:480b-cloud
173
173
  ur config set provider.fallback ollama
174
174
  ur config set openai_transport responses
175
- ur config set responses.store false</code></pre>
176
- <p>API providers require explicit selection and read keys from a key stored via <code>ur connect</code> (OS keychain) or from environment variables. Each configurable provider keeps its own <code>base_url</code>, so switching among Ollama, LM Studio, llama.cpp, vLLM, Unsloth, NVIDIA NIM, and API gateways restores the matching address. NVIDIA NIM uses live discovery from build.nvidia.com's official OpenAI-compatible API. OpenAI Responses is opt-in and privacy-first; Chat Completions remains the default. Unsloth is an authenticated inference provider only.</p>
175
+ ur config set responses.store false
176
+ ur config set anthropic.speed fast</code></pre>
177
+ <p>API providers require explicit selection and read keys from a key stored via <code>ur connect</code> (OS keychain) or from environment variables. Each configurable provider keeps its own <code>base_url</code>, so switching among Ollama, LM Studio, llama.cpp, vLLM, Unsloth, NVIDIA NIM, and API gateways restores the matching address. OpenAI Responses is opt-in and privacy-first; Chat Completions remains the default. Direct Anthropic preserves prompt-cache breakpoints, streams tool inputs with its per-tool control, and enables the documented premium fast tier only when explicitly configured for a supported model. Unsloth is an authenticated inference provider only.</p>
177
178
  </article>
178
179
  <article>
179
180
  <h3>Capability-driven reasoning effort</h3>
@@ -187,7 +188,7 @@ ur --model kimi-k3:cloud --effort high
187
188
  <h3>OpenRouter responsive routing</h3>
188
189
  <pre><code>ur config set provider openrouter
189
190
  /model # cached catalog; Ctrl+R forces live refresh</code></pre>
190
- <p>The endpoint-scoped model catalog is reused for five minutes, while forced refresh never substitutes stale data. Interactive requests prefer OpenRouter latency routing, a stable session ID, and provider-authored prompt-cache markers; explicit routing preferences and model variants still win.</p>
191
+ <p>The endpoint-scoped model catalog is reused for five minutes, while forced refresh never substitutes stale data. Tool turns preserve OpenRouter Auto Exacto for live throughput and tool-call reliability; non-tool turns prefer end-to-end throughput. Stable session affinity keeps prompt caches warm, while configurable routing preferences and the <code>:nitro</code>, <code>:floor</code>, and <code>:exacto</code> variants remain authoritative.</p>
191
192
  </article>
192
193
  <article>
193
194
  <h3>NVIDIA NIM and compatible API keys</h3>
@@ -195,7 +196,7 @@ ur --model kimi-k3:cloud --effort high
195
196
  ur config set provider nvidia-nim
196
197
  ur config set base_url nvidia-nim https://integrate.api.nvidia.com/v1
197
198
  /model # K API key · E endpoint</code></pre>
198
- <p>NVIDIA NIM is a UR-native provider with live models, streaming, tools, images, configurable endpoints, and only NVIDIA-documented effort ladders. Generic OpenAI-compatible endpoints can also store an optional dedicated key; anonymous endpoints remain valid.</p>
199
+ <p>NVIDIA NIM is a UR-native provider with live models, streaming, tools, images, configurable endpoints, and only NVIDIA-documented effort ladders. Its authenticated hosted <code>/v1/models</code> response is authoritative: UR filters utility endpoints but does not narrow the catalog through the unrelated NVCF deployment inventory, and download-only Build cards are not presented as hosted endpoints. Nemotron 3.5 Lightning is preferred when live and receives its documented on/off thinking field; unknown models inherit no fabricated effort. Generic OpenAI-compatible endpoints can store an optional dedicated key, while anonymous endpoints remain valid.</p>
199
200
  </article>
200
201
  <article>
201
202
  <h3>Portable shell deadlines</h3>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.84.3"
10
+ version = "1.84.5"
11
11
 
12
12
  repositories {
13
13
  mavenCentral()
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.84.3",
5
+ "version": "1.84.5",
6
6
  "publisher": "ur-nexus",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.84.3",
3
+ "version": "1.84.5",
4
4
  "description": "UR-Nexus — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",