ur-agent 1.84.5 → 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
@@ -282,10 +282,11 @@ UNSLOTH_API_KEY=...
282
282
 
283
283
  NVIDIA NIM defaults to `https://integrate.api.nvidia.com/v1`, discovers the
284
284
  connected account's models live, and accepts a provider-scoped override for an
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
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
289
290
  `openai-compatible` authentication is
290
291
  optional: `ur connect openai-compatible` or the picker's `K` key stores a
291
292
  credential when the chosen gateway needs one, without breaking anonymous
@@ -296,6 +297,10 @@ hosted choices unless the authenticated `/v1/models` endpoint returns them.
296
297
  For the hosted service, UR focuses NVIDIA's documented fastest 30B agent model,
297
298
  `nvidia/nemotron-3.5-lightning-30b-a3b`, first. Its thinking toggle maps to
298
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.
299
304
 
300
305
  Unsloth is an inference-provider integration only. Start Unsloth Studio and
301
306
  load the model outside UR, connect its generated key with `ur connect unsloth`,
@@ -215,8 +215,8 @@ custom `base_url` scoped to that provider.
215
215
  - Cause: NVIDIA's hosted `/v1/models` feed can change, or a listed model's
216
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 uses NVIDIA's documented `/v1/models`
219
- endpoint and excludes non-agent utility endpoints. It does not intersect the
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
220
  catalog with the separate NVCF deployment-function inventory. A definitive
221
221
  runtime 404 removes only that model from the current endpoint-scoped session
222
222
  catalog until the next explicit refresh.
@@ -227,6 +227,18 @@ If `chat_models` fails, reconnect a current build.nvidia.com key with
227
227
  `ur connect nvidia-nim`. A configured enterprise/self-hosted NIM endpoint is
228
228
  validated only against that gateway's own `/models` response.
229
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
+
230
242
  ### A provider says the previous answer was empty after successful tool calls
231
243
 
232
244
  Some OpenAI-compatible models scope generated tool-call IDs to one response
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
 
@@ -270,15 +273,25 @@ API-key access, and an API key does not grant subscription CLI access.
270
273
  NVIDIA NIM uses the build.nvidia.com key and hosted
271
274
  `https://integrate.api.nvidia.com/v1` endpoint by default. Connect it with
272
275
  `ur connect nvidia-nim`; use `ur config set base_url nvidia-nim <url>` for 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.
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.
278
282
  Download-only cards from the Build web catalog are not inserted into the
279
283
  hosted picker. NVIDIA's live `nemotron-3.5-lightning-30b-a3b` endpoint is
280
284
  focused first as its documented fastest 30B agent model; Left/Right controls
281
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.
282
295
  On the `/model` model screen, `K` adds or replaces a
283
296
  provider API key and `E` edits its endpoint. This also makes optional
284
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.5 (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)
@@ -249,6 +249,7 @@ Run the deterministic adapter and shell coverage:
249
249
  ```sh
250
250
  bun test test/bashCommandExecution.test.ts \
251
251
  test/providerNvidiaNim.test.ts \
252
+ test/nvidiaTaskRuntime.test.ts \
252
253
  test/providerMultimodal.test.ts \
253
254
  test/openaiResponses.test.ts \
254
255
  test/ollamaToolResultImages.test.ts
@@ -261,11 +262,15 @@ NVIDIA NIM, Ollama, LM Studio, llama.cpp, vLLM, Unsloth, and generic OpenAI-comp
261
262
  request shapes.
262
263
 
263
264
  The NVIDIA fixture also verifies hosted/default and overridden endpoints,
264
- Bearer discovery from NVIDIA's authoritative `/v1/models` endpoint, removal
265
- of non-agent utility models, selected-model doctor diagnostics, redaction of
265
+ Bearer discovery from NVIDIA's live `/v1/models` endpoint, positive agent
266
+ contract intersection, selected-model doctor diagnostics, redaction of
266
267
  internal NVIDIA account/function IDs, endpoint-scoped runtime invalidation,
267
268
  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
+ `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
269
274
  `/model`, select `openai-compatible` and verify `K` can
270
275
  add or replace its optional key while `E` continues to edit only its endpoint.
271
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.
@@ -451,7 +455,7 @@ ur config set provider anthropic-api
451
455
  | --- | --- | --- |
452
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 |
453
457
  | OpenRouter | Live `/models` discovery with an endpoint-scoped five-minute cache; Ctrl+R forces a fresh request with no stale fallback | live/cache |
454
- | NVIDIA NIM | Hosted: authoritative live `/models`, 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 |
455
459
  | Local/server providers (ollama, lmstudio, llama.cpp, vllm, unsloth) | Dynamic discovery from the selected provider endpoint | live |
456
460
  | OpenAI-compatible | Dynamic discovery from configured endpoint | live |
457
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 |
@@ -688,11 +692,11 @@ ur provider doctor nvidia-nim
688
692
  ur config set base_url nvidia-nim https://nim-gateway.example/v1
689
693
  ```
690
694
 
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
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
696
700
  inventory. A custom enterprise or self-hosted NIM remains independent and uses
697
701
  only that configured gateway's `/models` response.
698
702
 
@@ -715,6 +719,26 @@ documented Nemotron coding-agent models, UR includes NVIDIA's
715
719
  [NIM LLM API reference](https://docs.api.nvidia.com/nim/reference/llm-apis)
716
720
  and [NIM endpoint guide](https://docs.nvidia.com/nim/large-language-models/latest/tutorials.html).
717
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
+
718
742
  `ur provider doctor nvidia-nim` verifies the hosted catalog and selected model
719
743
  against the live `/v1/models` response. If NVIDIA rejects a listed model after
720
744
  selection, UR redacts NVIDIA's internal function/account IDs, removes that
@@ -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.5</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>
@@ -196,7 +196,7 @@ ur --model kimi-k3:cloud --effort high
196
196
  ur config set provider nvidia-nim
197
197
  ur config set base_url nvidia-nim https://integrate.api.nvidia.com/v1
198
198
  /model # K API key · E endpoint</code></pre>
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
+ <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>
200
200
  </article>
201
201
  <article>
202
202
  <h3>Portable shell deadlines</h3>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.84.5"
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.5",
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.5",
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",