ur-agent 1.84.4 → 1.84.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -349,7 +349,8 @@ automatically changes the active provider.
349
349
  | Provider-aware status bar | Interactive bottom status bar, `src/components/StatusLine.tsx`, `src/utils/statusBar.ts` | Shows only important runtime state: active provider, selected model, mode, git branch, active task state, checks/build state when known, and update availability. Hidden in CI, dumb terminals, and non-interactive mode; custom status-line hooks still override it. |
350
350
  | Clean update checks | `ur upgrade`, `ur update`, `src/cli/update.ts` | Detects development/source checkouts and prints a short pull-or-install message instead of attempting self-mutation. npm-installed builds compare the local version with `ur-agent` on npm and print update, latest, registry failure, and malformed-response states without stale planning text. |
351
351
  | Bundled IDE extension install | `extensions/vscode-ur-inline-diffs/`, `src/utils/ide.ts`, `ur ide diff` | Public VS Code install now packages the repo's bundled inline-diffs extension as a local VSIX instead of trying an unpublished marketplace ID. The extension remains local-only and reviews `.ur/ide/diffs` bundles from the current workspace. |
352
- | Professional clarification dialogs | `AskUserQuestion`, `src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx` | Supports up to eight concrete options, infers labels from description-only option objects, accepts prompt aliases, deduplicates equivalent labels, safely repairs single-suggestion payloads with a neutral rejection choice, and is loaded without ToolSearch preloading so typed schemas are available before use. |
352
+ | Professional clarification dialogs | `AskUserQuestion`, `src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx` | Mandatory for every question with concrete choices; plain text is reserved for genuinely open-ended answers. Prefers 2-8 focused options but preserves larger legitimate menus, infers labels from description-only objects, accepts prompt aliases, deduplicates equivalent labels, safely repairs single suggestions with a neutral rejection choice, and is loaded without ToolSearch preloading. |
353
+ | NVIDIA agent/task split | `nvidiaHostedModels.ts`, `NvidiaNimTask`, `/model` | Positively audits hosted agent contracts and exposes a one-shot model only when the live account catalog returns it and a complete adapter exists (FLUX.1 Schnell, Stable Video Diffusion, or PaliGemma). Task selection shows purpose and never replaces the ongoing agent. |
353
354
  | Documentation release sync | `README.md`, `docs/`, `documentation/`, `CHANGELOG.md` | Keeps the npm README, static documentation site, provider guide, usage guide, feature ledger, validation runbook, and release notes aligned with current release behavior. |
354
355
 
355
356
  ## v1.24.0 Additions
@@ -164,6 +164,25 @@ default `auto`/`standard` values add no premium request. Explicit request-level
164
164
  provider preferences still win. Set either performance threshold to `auto` to
165
165
  remove it and return to OpenRouter's own routing data.
166
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
+
167
186
  `provider.fallback` is diagnostic recovery metadata, not automatic routing.
168
187
  When the active provider fails, `ur provider doctor` shows the configured
169
188
  recovery command; changing providers remains an explicit user action.
@@ -263,14 +282,26 @@ UNSLOTH_API_KEY=...
263
282
 
264
283
  NVIDIA NIM defaults to `https://integrate.api.nvidia.com/v1`, discovers the
265
284
  connected account's models live, and accepts a provider-scoped override for an
266
- enterprise or self-hosted NIM. On NVIDIA's hosted endpoint, UR intersects the
267
- broad `/v1/models` feed with the key's ACTIVE NVCF function inventory and omits
268
- non-agent utility endpoints; a configured NIM gateway uses its own model feed
269
- without contacting NVIDIA's hosted control plane. Generic `openai-compatible` authentication is
285
+ enterprise or self-hosted NIM. On NVIDIA's hosted endpoint, `/v1/models`
286
+ establishes account availability and UR's audited positive contract registry
287
+ establishes agent compatibility; only their intersection can become the
288
+ ongoing model. It does not narrow hosted models using the separate NVCF
289
+ deployment inventory; a configured NIM gateway uses its own model feed. Generic
290
+ `openai-compatible` authentication is
270
291
  optional: `ur connect openai-compatible` or the picker's `K` key stores a
271
292
  credential when the chosen gateway needs one, without breaking anonymous
272
293
  local endpoints.
273
294
 
295
+ The broader Build web page includes download-only NIMs; those are not valid
296
+ hosted choices unless the authenticated `/v1/models` endpoint returns them.
297
+ For the hosted service, UR focuses NVIDIA's documented fastest 30B agent model,
298
+ `nvidia/nemotron-3.5-lightning-30b-a3b`, first. Its thinking toggle maps to
299
+ NVIDIA's model-specific `chat_template_kwargs.enable_thinking` field.
300
+ The same key also authorizes the separately labelled one-shot FLUX.1 Schnell,
301
+ Stable Video Diffusion, and PaliGemma adapters. Those use their exact
302
+ `ai.api.nvidia.com` paths, never replace `provider.model`, and write generated
303
+ media under `.ur/artifacts/nvidia/` unless an output path is supplied.
304
+
274
305
  Unsloth is an inference-provider integration only. Start Unsloth Studio and
275
306
  load the model outside UR, connect its generated key with `ur connect unsloth`,
276
307
  then select a model discovered from `http://localhost:8888/v1` (or your
@@ -212,19 +212,46 @@ custom `base_url` scoped to that provider.
212
212
 
213
213
  ### NVIDIA lists a model but inference returns `Function … Not found for account`
214
214
 
215
- - Cause: NVIDIA's hosted `/v1/models` feed can contain a function that is no
216
- longer ACTIVE for the connected account.
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
217
  - Fix: upgrade UR, run `ur provider doctor nvidia-nim`, then open `/model` and
218
- press `Ctrl+R`. Hosted discovery now intersects `/v1/models` with NVIDIA's
219
- authenticated ACTIVE function inventory and excludes non-agent utility
220
- endpoints. A definitive runtime 404 also removes that model from the current
221
- endpoint-scoped session catalog.
218
+ press `Ctrl+R`. Hosted discovery intersects NVIDIA's live `/v1/models`
219
+ availability with UR's audited agent contracts. 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.
222
223
  - Privacy: UR does not display or retain the internal NVIDIA function UUID and
223
224
  account identifier from this error response.
224
225
 
225
- If `account_models` fails, reconnect a current build.nvidia.com key with
226
+ If `chat_models` fails, reconnect a current build.nvidia.com key with
226
227
  `ur connect nvidia-nim`. A configured enterprise/self-hosted NIM endpoint is
227
- validated only against that gateway and does not use NVIDIA's hosted inventory.
228
+ validated only against that gateway's own `/models` response.
229
+
230
+ ### An NVIDIA image/video/vision model is missing from `/model`
231
+
232
+ - Ongoing models appear only when NVIDIA returns them live and their exact
233
+ documented contract supports UR's multi-turn streaming tool loop.
234
+ - Dedicated models appear only in the `ONE-SHOT` section after UR implements
235
+ their endpoint, request, response, media constraints, and artifact handling.
236
+ The current set is FLUX.1 Schnell, Stable Video Diffusion, and PaliGemma.
237
+ - Download-only Build cards and unadapted endpoints are intentionally absent;
238
+ UR does not present a model that it cannot execute correctly.
239
+ - Stable Video Diffusion's hosted inline-image contract accepts JPEG/PNG files
240
+ smaller than 200 KB. Compress larger input before retrying.
241
+
242
+ ### A provider says the previous answer was empty after successful tool calls
243
+
244
+ Some OpenAI-compatible models scope generated tool-call IDs to one response
245
+ and reuse values such as `TaskCreate:0` on a later response. Older UR releases
246
+ mistook the later completed pair for transcript corruption, removed it before
247
+ the next API request, and could make the model believe that the user sent an
248
+ empty continuation.
249
+
250
+ Upgrade UR and retry the turn. UR now canonicalizes only later, independently
251
+ completed call/result pairs before provider dispatch. Same-message duplicates,
252
+ unmatched calls, and orphaned results still go through normal transcript
253
+ repair. The saved transcript remains faithful to the provider response; only
254
+ the API-bound copy receives conversation-unique IDs.
228
255
 
229
256
  ### `The provider reported that model … reached its per-response output boundary`
230
257
 
package/docs/USAGE.md CHANGED
@@ -56,8 +56,11 @@ macOS, Autodesk 3ds Max is expected to be missing because it is a Windows
56
56
  application. Use Blender locally, or run the 3ds Max project on a Windows host.
57
57
 
58
58
  When UR needs a focused clarification, it uses the `AskUserQuestion` dialog.
59
- Professional clarification prompts can provide up to eight concrete options;
60
- UR also accepts custom "Other" answers. If a model supplies only one concrete
59
+ Every real question with two or more plausible concrete answers must use this
60
+ dialog; plain text is reserved for genuinely open-ended questions where no
61
+ meaningful choices can be formed. UR prefers 2-8 focused choices but preserves
62
+ larger legitimate menus instead of rejecting or truncating them, and always
63
+ accepts a custom "Other" answer. If a model supplies only one concrete
61
64
  suggestion, UR keeps it and adds a neutral `Different answer` rejection path
62
65
  instead of showing an internal validation error or inventing another choice.
63
66
 
@@ -190,6 +193,19 @@ features and are effective only for models that OpenRouter supports. Append
190
193
  `:nitro`, `:floor`, or `:exacto` to an OpenRouter model ID for its native
191
194
  throughput-, price-, or tool-quality-first virtual route.
192
195
 
196
+ Direct Anthropic sessions preserve prompt-cache breakpoints and stream large
197
+ tool arguments with Anthropic's per-tool `eager_input_streaming` control.
198
+ Accounts admitted to Anthropic's premium fast-mode research preview can opt in
199
+ for its supported Opus models:
200
+
201
+ ```sh
202
+ ur config set anthropic.speed fast
203
+ ```
204
+
205
+ UR sends that tier only to Claude Opus 5 and Opus 4.8; all other Claude models
206
+ remain on standard speed. Use `ur config set anthropic.speed standard` to turn
207
+ the premium tier off.
208
+
193
209
  `provider.fallback` only controls the recovery suggestion printed by provider
194
210
  diagnostics. UR does not switch or retry across providers automatically; use
195
211
  `ur config set provider <id>` after reviewing the failure.
@@ -257,10 +273,25 @@ API-key access, and an API key does not grant subscription CLI access.
257
273
  NVIDIA NIM uses the build.nvidia.com key and hosted
258
274
  `https://integrate.api.nvidia.com/v1` endpoint by default. Connect it with
259
275
  `ur connect nvidia-nim`; use `ur config set base_url nvidia-nim <url>` for a
260
- different NIM deployment. For the hosted endpoint, `/model` shows only models
261
- that occur in both NVIDIA's `/v1/models` feed and the connected account's
262
- ACTIVE function inventory; utility endpoints such as embeddings, guards, and
263
- parsers are excluded. A custom NIM gateway retains its own independent catalog.
276
+ different NIM deployment. For the hosted endpoint, `/model` intersects the
277
+ account's live `/v1/models` feed with exact NVIDIA-documented agent contracts.
278
+ This excludes utility endpoints and dedicated single-use APIs from the ongoing
279
+ agent list even when NVIDIA returns them. NVCF deployment functions are a
280
+ separate API and do not narrow this hosted catalog. A custom NIM gateway
281
+ retains its own independent catalog.
282
+ Download-only cards from the Build web catalog are not inserted into the
283
+ hosted picker. NVIDIA's live `nemotron-3.5-lightning-30b-a3b` endpoint is
284
+ focused first as its documented fastest 30B agent model; Left/Right controls
285
+ that model's advertised on/off thinking switch.
286
+ Verified specialized models returned by the connected account appear
287
+ separately as `ONE-SHOT`, with their purpose visible before selection. FLUX.1
288
+ Schnell generates a JPEG from text, Stable Video Diffusion generates an MP4
289
+ from a sub-200-KB JPEG/PNG, and PaliGemma analyzes one image with one prompt.
290
+ Selecting one leaves the ongoing agent unchanged; describe the task normally
291
+ and UR uses `NvidiaNimTask` with the same stored NVIDIA key and exact model
292
+ endpoint. Generated media defaults to `.ur/artifacts/nvidia/`. Other
293
+ download-only, utility, and dedicated models remain hidden until UR has a
294
+ complete executable adapter for their contract.
264
295
  On the `/model` model screen, `K` adds or replaces a
265
296
  provider API key and `E` edits its endpoint. This also makes optional
266
297
  authentication practical for generic OpenAI-compatible gateways.
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.84.4 (UR-Nexus)"
22
+ # expected for this release: "1.84.6 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ### 0.0 Redteam mode and Reverse Skills (1.81.0)
@@ -122,6 +122,20 @@ fallback/threshold settings must use OpenRouter's snake-case wire keys;
122
122
  validate against the discovered base model and inherit its context, output,
123
123
  tool, and reasoning metadata.
124
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
+
125
139
  Deterministic coverage:
126
140
 
127
141
  ```sh
@@ -129,9 +143,15 @@ bun test test/providerPickerPresentation.test.ts \
129
143
  test/openRouterEffort.test.ts test/providerModelDiscovery.test.ts \
130
144
  test/secondaryModelFallback.test.ts test/providerToolCalls.test.ts \
131
145
  test/providerContextWindow.test.ts test/outputLimitRecovery.test.ts \
132
- test/usageAccounting.test.ts test/providerRouting.test.ts
146
+ test/usageAccounting.test.ts test/providerRouting.test.ts \
147
+ test/reusedToolUseIds.test.ts
133
148
  ```
134
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
+
135
155
  ### 0.0.0a Provider output-boundary continuation (1.84.4)
136
156
 
137
157
  Use a provider fixture that returns `max_tokens`/`length` after non-empty
@@ -229,6 +249,7 @@ Run the deterministic adapter and shell coverage:
229
249
  ```sh
230
250
  bun test test/bashCommandExecution.test.ts \
231
251
  test/providerNvidiaNim.test.ts \
252
+ test/nvidiaTaskRuntime.test.ts \
232
253
  test/providerMultimodal.test.ts \
233
254
  test/openaiResponses.test.ts \
234
255
  test/ollamaToolResultImages.test.ts
@@ -241,10 +262,15 @@ NVIDIA NIM, Ollama, LM Studio, llama.cpp, vLLM, Unsloth, and generic OpenAI-comp
241
262
  request shapes.
242
263
 
243
264
  The NVIDIA fixture also verifies hosted/default and overridden endpoints,
244
- Bearer discovery, intersection with account-active NVCF functions, removal of
245
- retired and non-agent models, selected-model doctor diagnostics, redaction of
246
- internal NVIDIA account/function IDs, endpoint-scoped invalidation, native
247
- dispatch, documented effort aliases, and no Ultra on an unknown model. In
265
+ Bearer discovery from NVIDIA's live `/v1/models` endpoint, positive agent
266
+ contract intersection, selected-model doctor diagnostics, redaction of
267
+ internal NVIDIA account/function IDs, endpoint-scoped runtime invalidation,
268
+ native dispatch, the preferred Lightning endpoint and its model-scoped
269
+ `enable_thinking` switch, documented effort aliases, and no Ultra on an unknown model.
270
+ `nvidiaTaskRuntime.test.ts` verifies the exact FLUX, Stable Video Diffusion,
271
+ and PaliGemma endpoints and payloads; Bearer reuse; async request-ID polling;
272
+ artifact decoding; media constraints; and rejection of every model without an
273
+ implemented adapter. In
248
274
  `/model`, select `openai-compatible` and verify `K` can
249
275
  add or replace its optional key while `E` continues to edit only its endpoint.
250
276
 
package/docs/providers.md CHANGED
@@ -217,6 +217,10 @@ NVIDIA's current model API reference documents that exact model's
217
217
  `reasoning_effort` values. Documented `none` appears as Minimal and `max`
218
218
  appears as Ultra while the request preserves NVIDIA's wire values. An unknown
219
219
  NIM model never inherits an invented graded ladder.
220
+ Hosted discovery is also a positive agent-contract intersection: a row in the
221
+ mixed NVIDIA `/v1/models` inventory is not sufficient by itself to enter the
222
+ ongoing agent picker. Verified dedicated media/VLM endpoints are exposed only
223
+ as one-shot task contracts and cannot pass provider/model validation.
220
224
 
221
225
  For an unknown or newly released model, UR waits for provider-authored model
222
226
  metadata or a supported model-scoped probe before adding thinking parameters.
@@ -273,6 +277,29 @@ remain authoritative. See OpenRouter's
273
277
  [provider routing](https://openrouter.ai/docs/guides/routing/provider-selection),
274
278
  [Auto Exacto](https://openrouter.ai/docs/guides/routing/auto-exacto), and
275
279
  [prompt caching](https://openrouter.ai/docs/guides/best-practices/prompt-caching).
280
+
281
+ Direct Anthropic requests retain supported prompt-cache breakpoints and enable
282
+ per-tool `eager_input_streaming` on streaming turns. This reduces repeated
283
+ prefill work and avoids waiting for a complete large tool argument before its
284
+ deltas arrive. Anthropic's premium fast tier remains explicit:
285
+
286
+ ```sh
287
+ ur config set anthropic.speed fast
288
+ ```
289
+
290
+ UR sends `speed: "fast"` with the `fast-mode-2026-02-01` beta only for Claude
291
+ Opus 5 and Opus 4.8, and retains `usage.speed` so accounting can distinguish the
292
+ tier actually served. Enabled account access is still required. Unsupported
293
+ models stay on standard speed. See Anthropic's
294
+ [prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching),
295
+ [fine-grained tool streaming](https://platform.claude.com/docs/en/agents-and-tools/tool-use/fine-grained-tool-streaming),
296
+ and [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode).
297
+
298
+ UR uses only provider-documented acceleration controls. OpenAI Responses
299
+ already has native streaming and WebSocket continuation; Gemini 2.5+ implicit
300
+ caching is automatic. Google's Priority tier requires the Interactions API and
301
+ is not a valid `generateContent` option. NVIDIA NIM and local servers publish
302
+ no universal OpenRouter-style routing field, so UR does not invent one.
276
303
  API-key entry for
277
304
  OpenAI, Claude, Gemini, OpenRouter, NVIDIA NIM, and authenticated compatible
278
305
  endpoints is a single aligned masked row; the key is stored in the OS keychain
@@ -284,8 +311,9 @@ OpenAI-compatible endpoints may remain anonymous.
284
311
 
285
312
  UR uses each provider's non-generating count endpoint when one covers the full
286
313
  request: OpenAI Responses input tokens, Anthropic Messages token counting,
287
- Gemini `countTokens`, llama.cpp chat input tokens, and vLLM/NVIDIA NIM Messages
288
- token counting. Ollama, OpenRouter, LM Studio, Unsloth, and subscription CLIs use a
314
+ Gemini `countTokens`, llama.cpp chat input tokens, and vLLM Messages token
315
+ counting. NVIDIA's hosted NIM API has no documented token-count route;
316
+ NVIDIA NIM, Ollama, OpenRouter, LM Studio, Unsloth, and subscription CLIs use a
289
317
  provider-wire local estimate because those runtimes do not share a dependable
290
318
  preflight tokenizer for complete chat history plus tools. UR never launches a
291
319
  hidden completion for token counting. If a native count call is unavailable,
@@ -427,7 +455,7 @@ ur config set provider anthropic-api
427
455
  | --- | --- | --- |
428
456
  | 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 |
429
457
  | OpenRouter | Live `/models` discovery with an endpoint-scoped five-minute cache; Ctrl+R forces a fresh request with no stale fallback | live/cache |
430
- | NVIDIA NIM | Hosted: live `/models` intersected with the connected account's ACTIVE NVCF functions, then restricted to agent/chat endpoints. Configured NIM gateway: its own live `/models` catalog | live |
458
+ | NVIDIA NIM | Hosted: live `/models` availability intersected with audited agent contracts, plus separately labelled one-shot models with implemented adapters. Configured NIM gateway: its own live `/models` catalog | live |
431
459
  | Local/server providers (ollama, lmstudio, llama.cpp, vllm, unsloth) | Dynamic discovery from the selected provider endpoint | live |
432
460
  | OpenAI-compatible | Dynamic discovery from configured endpoint | live |
433
461
  | 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 |
@@ -664,28 +692,58 @@ ur provider doctor nvidia-nim
664
692
  ur config set base_url nvidia-nim https://nim-gateway.example/v1
665
693
  ```
666
694
 
667
- The default is `https://integrate.api.nvidia.com/v1`. NVIDIA's hosted
668
- `/v1/models` response can be broader than the functions that the connected
669
- account can actually invoke. UR therefore intersects it with the authenticated
670
- NVCF `GET /v2/nvcf/functions` inventory, keeps only `ACTIVE` matches, and
671
- removes embedding, guard, parser, translation, reward, and similar non-agent
672
- endpoints. A custom enterprise or self-hosted NIM remains independent and uses
695
+ The default is `https://integrate.api.nvidia.com/v1`. NVIDIA's authenticated
696
+ `/v1/models` response proves current account availability but mixes agents,
697
+ utilities, VLMs, and generation functions. UR intersects it with a reviewed
698
+ positive agent registry before allowing a model to own the multi-turn tool
699
+ loop. It does not intersect the result with NVCF's separate deployment-function
700
+ inventory. A custom enterprise or self-hosted NIM remains independent and uses
673
701
  only that configured gateway's `/models` response.
674
702
 
675
- UR calls `/models`, `/chat/completions`, and, when available, `/messages/count_tokens`; native
676
- count failure falls back to a provider-wire estimate and never launches a
677
- hidden completion. Streaming, standard tool calls, and image input use the
703
+ The Build web catalog also contains download-only NIMs. UR does not add those
704
+ cards to the hosted picker: only IDs returned by the authenticated hosted
705
+ `/v1/models` endpoint can appear. UR focuses
706
+ `nvidia/nemotron-3.5-lightning-30b-a3b` first because NVIDIA documents it as
707
+ its fastest 30B model for long-running agents. Left/Right can turn that exact
708
+ model's thinking off/on through NVIDIA's documented
709
+ `chat_template_kwargs.enable_thinking`; other NIM models receive only their
710
+ own advertised reasoning contract.
711
+
712
+ UR calls `/models` and `/chat/completions`. It counts NVIDIA requests with a
713
+ provider-wire local estimate instead of first calling the unsupported hosted
714
+ `/messages/count_tokens` route, and never launches a hidden completion.
715
+ Streaming, standard tool calls, and image input use the
678
716
  same OpenAI-compatible adapter. Vision and tools remain model-dependent. For
679
717
  documented Nemotron coding-agent models, UR includes NVIDIA's
680
718
  `force_nonempty_content` template option when tools are present. See NVIDIA's
681
719
  [NIM LLM API reference](https://docs.api.nvidia.com/nim/reference/llm-apis)
682
- and [NVCF API scope reference](https://docs.nvidia.com/nvcf/api#scope-reference).
683
-
684
- `ur provider doctor nvidia-nim` verifies both the hosted catalog and the
685
- selected model against the account-active inventory. If NVIDIA retires a
686
- function after selection, UR redacts NVIDIA's internal function/account IDs,
687
- removes that model from the current endpoint-scoped session catalog, and asks
688
- the user to select an active model. `Ctrl+R` explicitly retries discovery.
720
+ and [NIM endpoint guide](https://docs.nvidia.com/nim/large-language-models/latest/tutorials.html).
721
+
722
+ NVIDIA's dedicated APIs are a separate one-shot surface. `/model` labels them
723
+ `ONE-SHOT`, shows the task purpose, and keeps the current agent model when one
724
+ is selected. `NvidiaNimTask` currently implements three exact contracts:
725
+
726
+ - [FLUX.1 Schnell](https://docs.api.nvidia.com/nim/reference/black-forest-labs-flux_1-schnell-infer)
727
+ → text-to-JPEG at
728
+ `https://ai.api.nvidia.com/v1/genai/black-forest-labs/flux.1-schnell`.
729
+ - [Stable Video Diffusion](https://docs.api.nvidia.com/nim/reference/stabilityai-stable-video-diffusion-infer)
730
+ → JPEG/PNG-to-MP4 at
731
+ `https://ai.api.nvidia.com/v1/genai/stabilityai/stable-video-diffusion`;
732
+ NVIDIA's inline input contract requires a source smaller than 200 KB.
733
+ - [PaliGemma](https://docs.api.nvidia.com/nim/reference/google-paligemma-infer)
734
+ → one-image visual analysis at
735
+ `https://ai.api.nvidia.com/v1/vlm/google/paligemma`.
736
+
737
+ They reuse `NVIDIA_API_KEY`, poll documented asynchronous responses when
738
+ necessary, save generated files under `.ur/artifacts/nvidia/` by default, and
739
+ return only text/path metadata to the enclosing agent. Unsupported,
740
+ download-only, and unadapted dedicated models never appear as usable choices.
741
+
742
+ `ur provider doctor nvidia-nim` verifies the hosted catalog and selected model
743
+ against the live `/v1/models` response. If NVIDIA rejects a listed model after
744
+ selection, UR redacts NVIDIA's internal function/account IDs, removes that
745
+ model from the current endpoint-scoped session catalog, and asks the user to
746
+ select another model. `Ctrl+R` explicitly retries discovery.
689
747
 
690
748
  Local/server providers use their normal endpoints:
691
749
 
@@ -68,8 +68,8 @@ const featureGroups = [
68
68
  {
69
69
  title: 'Providers and auth',
70
70
  tags: ['subscription', 'API', 'local', 'effort', 'status bar'],
71
- text: 'UR-native API/local/OpenAI-compatible runtimes, provider-scoped endpoints, live NVIDIA NIM and provider-only Unsloth inference, optional compatible-gateway keys, capability-driven reasoning effort, responsive OpenRouter routing, first-class subscription CLI providers dispatched through the official vendor CLIs, provider doctor checks, secure API-key connect, non-secret config, fallback hints, and provider-aware status-bar output.',
72
- commands: ['ur provider list', 'ur provider status', 'ur provider doctor agy', 'ur connect status', 'ur config set provider nvidia-nim', 'ur config set provider openai-api', 'ur config set provider ollama', 'ur config set base_url llama.cpp http://localhost:9931/v1', '/effort ultra', '/thinking on'],
71
+ text: 'UR-native API/local/OpenAI-compatible runtimes, provider-scoped endpoints, audited NVIDIA agent discovery plus exact one-shot image/video/vision adapters, provider-only Unsloth inference, optional compatible-gateway keys, capability-driven reasoning effort, responsive OpenRouter routing, first-class subscription CLI providers dispatched through the official vendor CLIs, provider doctor checks, secure API-key connect, non-secret config, fallback hints, and provider-aware status-bar output.',
72
+ commands: ['ur provider list', 'ur provider status', 'ur provider doctor nvidia-nim', 'ur connect status', 'ur config set provider nvidia-nim', 'ur config set provider openai-api', 'ur config set provider ollama', 'ur config set base_url llama.cpp http://localhost:9931/v1', '/model', '/effort ultra', '/thinking on'],
73
73
  },
74
74
  {
75
75
  title: 'Security and operations',
@@ -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.4</p>
48
+ <p class="eyebrow">Version 1.84.6</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>
@@ -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 separates ongoing agents from specialized one-shot models. Hosted agent discovery intersects the live <code>/v1/models</code> inventory with audited tool-loop contracts; download-only, utility, and unadapted models stay hidden. The separately labelled one-shot section shows a model only when the connected account returns it and UR has a complete adapter: FLUX.1 Schnell text-to-image, Stable Video Diffusion image-to-video, and PaliGemma image understanding use their exact documented endpoints and the same stored NVIDIA key. Their purpose appears before selection, generated media is saved under <code>.ur/artifacts/nvidia/</code>, and the ongoing agent never changes. Nemotron 3.5 Lightning retains 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.4"
10
+ version = "1.84.6"
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.4",
5
+ "version": "1.84.6",
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.4",
3
+ "version": "1.84.6",
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",