ur-agent 1.84.0 → 1.84.2
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 +46 -0
- package/README.md +32 -12
- package/dist/cli.js +393 -129
- package/docs/AGENT_TRENDS.md +2 -2
- package/docs/CONFIGURATION.md +34 -11
- package/docs/TROUBLESHOOTING.md +6 -0
- package/docs/USAGE.md +11 -4
- package/docs/VALIDATION.md +33 -7
- package/docs/providers.md +86 -17
- package/documentation/app.js +3 -3
- package/documentation/index.html +24 -4
- 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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.84.2
|
|
4
|
+
|
|
5
|
+
- Added NVIDIA NIM as a real UR-native provider for build.nvidia.com. It uses
|
|
6
|
+
NVIDIA's hosted `https://integrate.api.nvidia.com/v1` default, live model
|
|
7
|
+
discovery, Bearer authentication from `NVIDIA_API_KEY` or `ur connect
|
|
8
|
+
nvidia-nim`, configurable provider-scoped endpoints, streaming, tool calls,
|
|
9
|
+
multimodal input, NIM token counting with a local-estimate fallback, and an
|
|
10
|
+
optional live smoke target. Only NVIDIA-documented per-model effort ladders
|
|
11
|
+
are overlaid; future/unknown models do not inherit Ultra.
|
|
12
|
+
- Made authentication fully usable on the generic `openai-compatible`
|
|
13
|
+
provider. `/connect openai-compatible` stores its optional key, and the
|
|
14
|
+
`/model` screen now exposes `K API key` to add or replace one without making
|
|
15
|
+
anonymous local endpoints key-required. Stored endpoints and credentials
|
|
16
|
+
remain provider-scoped across switches.
|
|
17
|
+
- Added a real GNU-compatible `timeout` command inside UR's spawned macOS
|
|
18
|
+
shell when neither native `timeout` nor Homebrew `gtimeout` is available.
|
|
19
|
+
It uses the Bash tool's current Node/Bun runtime, supervises an isolated
|
|
20
|
+
process group, supports the common GNU duration/signal/kill-after flags, and
|
|
21
|
+
returns status 124 on expiry. The Bash prompt now prefers its native
|
|
22
|
+
millisecond timeout field, while generated Linux-style commands remain
|
|
23
|
+
executable on macOS instead of failing with `command not found: timeout`.
|
|
24
|
+
- Made image-bearing tool results portable across every UR-native provider.
|
|
25
|
+
OpenAI Chat Completions, OpenRouter, NVIDIA NIM, LM Studio, llama.cpp, vLLM, Unsloth,
|
|
26
|
+
and generic compatible endpoints keep a textual `role: tool` result and send
|
|
27
|
+
the image bytes in the immediately following multimodal user turn; Gemini
|
|
28
|
+
nests the image parts in its function response; OpenAI Responses, Anthropic,
|
|
29
|
+
and Ollama retain their native rich-result paths. Added a provider matrix and
|
|
30
|
+
real shell deadline regressions so screenshots are neither rejected nor
|
|
31
|
+
silently discarded.
|
|
32
|
+
|
|
33
|
+
## 1.84.1
|
|
34
|
+
|
|
35
|
+
- Made dynamic reasoning discovery capability-truthful across local and
|
|
36
|
+
OpenAI-compatible providers. vLLM now uses its non-generating server-info
|
|
37
|
+
contract to expose `minimal→none|low|medium|high` only when a reasoning
|
|
38
|
+
parser is configured, and the adapter serializes all provider-authored effort
|
|
39
|
+
aliases rather than translating Ultra alone. llama.cpp records its template
|
|
40
|
+
support flag without fabricating a finite level set that the endpoint does
|
|
41
|
+
not publish.
|
|
42
|
+
- Refined Ollama's thinking presentation: a generic `thinking` capability now
|
|
43
|
+
reports thinking support and UR's verified native on/off control without
|
|
44
|
+
claiming the model supports only booleans. Exact graded levels and Ultra
|
|
45
|
+
remain model-scoped and provider-advertised. Added provider-matrix, discovery,
|
|
46
|
+
picker, command-message, and request-wire regression coverage and synchronized
|
|
47
|
+
the public site, user guides, validation guide, and technical specification.
|
|
48
|
+
|
|
3
49
|
## 1.84.0
|
|
4
50
|
|
|
5
51
|
- Added production npm marketplace sources with scoped-package and version
|
package/README.md
CHANGED
|
@@ -288,6 +288,7 @@ ur config set provider openai-api
|
|
|
288
288
|
ur config set provider anthropic-api
|
|
289
289
|
ur config set provider gemini-api
|
|
290
290
|
ur config set provider openrouter
|
|
291
|
+
ur config set provider nvidia-nim
|
|
291
292
|
ur config set provider unsloth
|
|
292
293
|
ur config set model qwen2.5-coder:7b
|
|
293
294
|
ur provider select-model ollama qwen2.5-coder:7b --json
|
|
@@ -304,7 +305,7 @@ select the recovery provider explicitly with `ur config set provider <id>`.
|
|
|
304
305
|
provider before the URL to configure it without switching first, for example
|
|
305
306
|
`ur config set base_url llama.cpp http://localhost:9931/v1`. UR remembers each
|
|
306
307
|
provider's address independently, so switching among Ollama, LM Studio,
|
|
307
|
-
llama.cpp, vLLM, Unsloth, or another compatible endpoint restores that
|
|
308
|
+
llama.cpp, vLLM, Unsloth, NVIDIA NIM, or another compatible endpoint restores that
|
|
308
309
|
provider's last URL automatically. Existing single-URL settings are migrated
|
|
309
310
|
to the previously active provider on the first provider switch or scoped
|
|
310
311
|
base-URL write.
|
|
@@ -328,7 +329,7 @@ when `UR_OPENAI_RESPONSES_STATE_KEY` contains a 32-byte encryption key. Return
|
|
|
328
329
|
to the default with `ur config set openai_transport chat-completions`.
|
|
329
330
|
|
|
330
331
|
Provider config accepts canonical IDs and common aliases. Examples:
|
|
331
|
-
`openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `ollama`,
|
|
332
|
+
`openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `nvidia-nim` (`NVIDIA Build`), `ollama`,
|
|
332
333
|
`lmstudio`, `LM Studio`, `llama.cpp`, `vllm`, `unsloth` (`Unsloth Studio`), and the subscription CLIs
|
|
333
334
|
`codex-cli` (`chatgpt`), `claude-code-cli` (`claude`), `gemini-cli` (`gemini`),
|
|
334
335
|
and `antigravity-cli` (`agy`). Use quotes for shell values with spaces.
|
|
@@ -348,6 +349,7 @@ ur connect logout openai-api # clear a stored key
|
|
|
348
349
|
| Claude API | API key | UR-native | `ANTHROPIC_API_KEY` or `ur connect anthropic-api` |
|
|
349
350
|
| Gemini API | API key | UR-native | `GEMINI_API_KEY` or `ur connect gemini-api` |
|
|
350
351
|
| OpenRouter | API/router | UR-native | `OPENROUTER_API_KEY` or `ur connect openrouter` |
|
|
352
|
+
| NVIDIA NIM | hosted/server API | UR-native | `NVIDIA_API_KEY` or `ur connect nvidia-nim`; configurable `base_url` |
|
|
351
353
|
| Ollama | local/server | UR-native | configurable local, LAN, or hosted endpoint; optional `OLLAMA_API_KEY` |
|
|
352
354
|
| LM Studio | local/server | UR-native | configurable endpoint; optional `LMSTUDIO_API_KEY` |
|
|
353
355
|
| llama.cpp | local/server | UR-native | configurable endpoint; optional `LLAMA_CPP_API_KEY` |
|
|
@@ -370,7 +372,7 @@ In the interactive app, `/model` is a two-step, provider-first picker:
|
|
|
370
372
|
by source: `live` (discovered from the endpoint), `cache` (last discovery),
|
|
371
373
|
`static` (predefined), or `unavailable` after a failed discovery with no
|
|
372
374
|
fallback. Local/server providers (Ollama, LM Studio,
|
|
373
|
-
llama.cpp, vLLM, Unsloth) and OpenAI-compatible endpoints are discovered live; API
|
|
375
|
+
llama.cpp, vLLM, Unsloth) and OpenAI-compatible endpoints, including NVIDIA NIM, are discovered live; API
|
|
374
376
|
providers use live discovery from their `/models` endpoint once a key is
|
|
375
377
|
connected (with a curated fallback list before that). Subscription CLIs show
|
|
376
378
|
their curated model list because the official CLIs expose no models API. The
|
|
@@ -379,7 +381,8 @@ In the interactive app, `/model` is a two-step, provider-first picker:
|
|
|
379
381
|
In the model catalog, use **Up/Down** to browse. For graded models, the effort row updates to
|
|
380
382
|
the focused model's capability-backed selectors; use **Left/Right** to cycle
|
|
381
383
|
only values UR can map to provider-native levels before pressing Enter. For
|
|
382
|
-
|
|
384
|
+
models with thinking but no advertised graded ladder on runtimes with a native
|
|
385
|
+
two-state mapping (currently
|
|
383
386
|
Ollama and direct Anthropic), Left selects off, Right selects on, and `t`
|
|
384
387
|
toggles. The same state is available directly through `/thinking on|off`.
|
|
385
388
|
Generic OpenAI-compatible runtimes never receive an invented boolean field.
|
|
@@ -387,14 +390,21 @@ In the interactive app, `/model` is a two-step, provider-first picker:
|
|
|
387
390
|
beyond-high ceiling selector. It appears only when the provider/model
|
|
388
391
|
advertises `ultra`, `max`, `xhigh`, or an explicit equivalent, and the row
|
|
389
392
|
shows the exact mapping (for example, `ultra→max`). Models whose graded
|
|
390
|
-
ladder tops out at `high`, plus
|
|
393
|
+
ladder tops out at `high`, plus models without an advertised beyond-high
|
|
394
|
+
value, do not get Ultra. A generic
|
|
391
395
|
`max` request resolves visibly to that model's highest supported non-Ultra tier
|
|
392
396
|
(commonly `max`, `xhigh`, or `high`), and that resolved value is sent to the provider. llama.cpp models
|
|
393
397
|
are checked lazily through their model-scoped `/props` capability while the
|
|
394
|
-
cursor moves.
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
+
cursor moves. Because current llama.cpp reports support but not the accepted
|
|
399
|
+
level names, that flag alone does not create a graded selector. vLLM is
|
|
400
|
+
checked lazily through `/server_info?config_format=json`; a configured
|
|
401
|
+
reasoning parser enables its documented `none|low|medium|high` Chat
|
|
402
|
+
Completions contract (`minimal→none`) without inventing Ultra. Ollama models
|
|
403
|
+
are checked through `/api/show`; a generic `thinking` capability establishes
|
|
404
|
+
thinking support but not a model-specific ladder, so UR uses Ollama's native
|
|
405
|
+
on/off control unless the endpoint supplies exact levels.
|
|
406
|
+
If `/effort max` or another graded request is used for such a model, UR
|
|
407
|
+
enables thinking but reports that no graded level was sent.
|
|
398
408
|
GPT-OSS uses its documented `low|medium|high` values, while any other graded
|
|
399
409
|
values or Ultra aliases must be explicitly present in provider metadata.
|
|
400
410
|
The resolved value is sent through Ollama's native `think` field. OpenRouter additionally
|
|
@@ -412,7 +422,7 @@ In the interactive app, `/model` is a two-step, provider-first picker:
|
|
|
412
422
|
provider's address untouched.
|
|
413
423
|
|
|
414
424
|
Model lists never cross providers: OpenAI API, Claude API, Gemini API,
|
|
415
|
-
OpenRouter, Ollama, and OpenAI-compatible local/server endpoints are separate
|
|
425
|
+
OpenRouter, NVIDIA NIM, Ollama, and OpenAI-compatible local/server endpoints are separate
|
|
416
426
|
access paths. API keys, local runtimes, and subscription logins are not
|
|
417
427
|
interchangeable. The provider/model pair is validated before it is saved and
|
|
418
428
|
again before every request; changing provider clears an incompatible model.
|
|
@@ -429,8 +439,9 @@ identity line in the system prompt reflects it too:
|
|
|
429
439
|
- **API** providers call each service in its native wire format — Anthropic
|
|
430
440
|
`x-api-key` + `anthropic-version` on `/v1/messages`, OpenAI `Bearer` on
|
|
431
441
|
`/v1/chat/completions` by default or `/v1/responses` when explicitly
|
|
432
|
-
selected, Gemini `x-goog-api-key` on `:generateContent`,
|
|
433
|
-
OpenAI-compatible chat endpoint
|
|
442
|
+
selected, Gemini `x-goog-api-key` on `:generateContent`, OpenRouter on its
|
|
443
|
+
OpenAI-compatible chat endpoint, and NVIDIA NIM on its official hosted or
|
|
444
|
+
user-selected OpenAI-compatible endpoint.
|
|
434
445
|
- **Local/server** providers call the configured endpoint (`/v1/chat/completions`
|
|
435
446
|
for LM Studio/llama.cpp/vLLM/Unsloth; the native API for Ollama). Unsloth is
|
|
436
447
|
provider-only: UR never starts, installs, updates, trains, or loads models in
|
|
@@ -446,6 +457,15 @@ identity line in the system prompt reflects it too:
|
|
|
446
457
|
subscription backend is configured, `/model` marks it unavailable and asks you
|
|
447
458
|
to choose a connected local, server, or API provider.
|
|
448
459
|
|
|
460
|
+
Image-bearing tool results use each UR-native provider's valid multimodal wire
|
|
461
|
+
shape. OpenAI Chat Completions, OpenRouter, NVIDIA NIM, LM Studio, llama.cpp,
|
|
462
|
+
vLLM, Unsloth, and generic compatible endpoints keep the tool response textual and
|
|
463
|
+
place its image in the immediately following user turn; Gemini nests the image
|
|
464
|
+
parts in its function response; OpenAI Responses, Anthropic, and Ollama use their
|
|
465
|
+
native rich-result forms. The selected model must still support vision.
|
|
466
|
+
External subscription CLIs remain text-only because their official prompt
|
|
467
|
+
interfaces do not expose a portable binary-image channel.
|
|
468
|
+
|
|
449
469
|
Ollama is used only when Ollama is selected. There is no silent cross-provider
|
|
450
470
|
fallback: if dispatch fails, UR reports the selected provider, model, and runtime
|
|
451
471
|
backend. Use `ur provider status` (or `ur provider doctor <id>`) to inspect the
|