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.
- package/CHANGELOG.md +71 -0
- package/README.md +43 -5
- package/dist/cli.js +736 -272
- package/docs/CONFIGURATION.md +51 -1
- package/docs/TROUBLESHOOTING.md +48 -0
- package/docs/USAGE.md +40 -1
- package/docs/VALIDATION.md +72 -5
- package/docs/providers.md +66 -12
- package/documentation/index.html +6 -5
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
package/docs/CONFIGURATION.md
CHANGED
|
@@ -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.
|
|
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
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -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.
|
|
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
|
|
package/docs/VALIDATION.md
CHANGED
|
@@ -19,7 +19,7 @@ You need:
|
|
|
19
19
|
|
|
20
20
|
```sh
|
|
21
21
|
ur --version
|
|
22
|
-
# expected for this release: "1.84.
|
|
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 (
|
|
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/
|
|
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
|
|
202
|
-
|
|
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.
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
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
|
|
281
|
-
|
|
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 |
|
|
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`.
|
|
661
|
-
`/
|
|
662
|
-
|
|
663
|
-
|
|
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
|
|
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
|
|
package/documentation/index.html
CHANGED
|
@@ -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.
|
|
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
|
|
176
|
-
|
|
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.
|
|
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
|
|
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>
|
|
@@ -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.
|
|
5
|
+
"version": "1.84.5",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED