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/docs/AGENT_TRENDS.md
CHANGED
|
@@ -80,7 +80,7 @@ Inside an interactive session:
|
|
|
80
80
|
|
|
81
81
|
| Trend | UR status | Current coverage | Professional next step |
|
|
82
82
|
| --- | --- | --- | --- |
|
|
83
|
-
| Provider-flexible, local-first runtime | Covered | Local Ollama; direct OpenAI, Anthropic, Gemini, OpenRouter, and OpenAI-compatible APIs; authenticated subscription-CLI adapters; explicit provider selection | Normalize capability discovery across providers and make automatic per-step routing opt-in |
|
|
83
|
+
| Provider-flexible, local-first runtime | Covered | Local Ollama; direct OpenAI, Anthropic, Gemini, OpenRouter, NVIDIA NIM, and OpenAI-compatible APIs; authenticated subscription-CLI adapters; explicit provider selection | Normalize capability discovery across providers and make automatic per-step routing opt-in |
|
|
84
84
|
| Model Context Protocol ecosystem | Covered | Stable TypeScript SDK v2 split client/server/core runtime; `ur mcp`, OAuth/XAA, fail-closed bounded tools, final `input_required` continuation, all workspace roots with change notifications, and the opt-in stateless web server | Broaden independent-client interoperability fixtures |
|
|
85
85
|
| Protocol Tasks and Apps | Covered | Negotiated Tasks lifecycle, owner-isolated durable state, and a self-contained Apps resource through `ur mcp serve-web` | Broaden independent-client interoperability fixtures |
|
|
86
86
|
| A2A / Agent Card interoperability | Covered | Stable official v1.1 SDK, native ProtoJSON JSON-RPC/HTTP+JSON, SSE streaming, task resubscription, authenticated push delivery with validated destinations, negotiated cards, tenant isolation, durable artifacts, and explicit v0.3 compatibility | Broaden independent-client/TCK fixtures; keep gRPC and extended cards unadvertised until deployed and tested |
|
|
@@ -168,7 +168,7 @@ compatibility transport rather than relabeling either wire schema.
|
|
|
168
168
|
## Model Runtime Position
|
|
169
169
|
|
|
170
170
|
UR is local-first, not local-only. Ollama supports private on-device execution;
|
|
171
|
-
direct adapters support OpenAI, Anthropic, Gemini, OpenRouter, and compatible
|
|
171
|
+
direct adapters support OpenAI, Anthropic, Gemini, OpenRouter, NVIDIA NIM, and compatible
|
|
172
172
|
endpoints; subscription adapters use the provider's authenticated CLI. Provider
|
|
173
173
|
and model selection are explicit, credentials are resolved through the
|
|
174
174
|
credential layer, and the optional fallback setting is diagnostic advice rather
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -88,7 +88,7 @@ receives general-purpose tools through this path.
|
|
|
88
88
|
|
|
89
89
|
UR-Nexus supports official provider access paths only:
|
|
90
90
|
|
|
91
|
-
- Explicit API providers: OpenAI, Anthropic, Gemini, OpenRouter, and
|
|
91
|
+
- Explicit API providers: OpenAI, Anthropic, Gemini, OpenRouter, NVIDIA NIM, and
|
|
92
92
|
OpenAI-compatible endpoints.
|
|
93
93
|
- Local/server providers: Ollama, LM Studio, llama.cpp, vLLM, and Unsloth OpenAI-compatible
|
|
94
94
|
server mode.
|
|
@@ -132,6 +132,7 @@ ur config set provider openai-api
|
|
|
132
132
|
ur config set provider anthropic-api
|
|
133
133
|
ur config set provider gemini-api
|
|
134
134
|
ur config set provider openrouter
|
|
135
|
+
ur config set provider nvidia-nim
|
|
135
136
|
ur config set provider openai-compatible
|
|
136
137
|
ur config set provider unsloth
|
|
137
138
|
ur provider doctor agy
|
|
@@ -147,7 +148,7 @@ When the active provider fails, `ur provider doctor` shows the configured
|
|
|
147
148
|
recovery command; changing providers remains an explicit user action.
|
|
148
149
|
|
|
149
150
|
Provider values accept canonical IDs and common aliases. Examples:
|
|
150
|
-
`openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `ollama`,
|
|
151
|
+
`openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `nvidia-nim` (`NVIDIA Build`), `ollama`,
|
|
151
152
|
`lmstudio`, `LM Studio`, `llama.cpp`, `vllm`, `unsloth` (`Unsloth Studio`), and the subscription CLI
|
|
152
153
|
providers `codex-cli` (`chatgpt`), `claude-code-cli` (`claude`), `gemini-cli`
|
|
153
154
|
(`gemini`), and `antigravity-cli` (`agy`). Values with spaces should be quoted
|
|
@@ -162,35 +163,40 @@ saved provider/model pair controls the runtime backend for the next agent
|
|
|
162
163
|
request; Ollama is only used when `ollama` is the selected provider.
|
|
163
164
|
|
|
164
165
|
The configured `base_url` is provider-scoped. Setting an address while vLLM is
|
|
165
|
-
active does not replace the saved Ollama, llama.cpp, or
|
|
166
|
+
active does not replace the saved Ollama, llama.cpp, Unsloth, or NVIDIA NIM address;
|
|
166
167
|
returning to any provider restores its own URL. Legacy `provider.baseUrl`
|
|
167
168
|
settings are migrated to the old active provider on the first provider switch
|
|
168
169
|
or scoped base-URL write.
|
|
169
170
|
To configure a provider that is not active, use
|
|
170
171
|
`ur config set base_url <provider> <url>`; the success message names the target
|
|
171
172
|
provider. This applies to direct API providers and gateways (OpenAI, Anthropic,
|
|
172
|
-
Gemini, and
|
|
173
|
+
Gemini, OpenRouter, and NVIDIA NIM) as well as local/server providers; built-in vendor URLs
|
|
173
174
|
are fallbacks only. Discovery, doctor output, and request dispatch all resolve
|
|
174
175
|
the same per-provider override. `/model` also opens an endpoint field when a
|
|
175
176
|
disconnected local/server provider is selected.
|
|
176
177
|
|
|
177
178
|
In the model step, Up/Down browses, Left/Right changes the focused model's
|
|
178
|
-
supported effort level, Enter confirms, Ctrl+R refreshes the catalog,
|
|
179
|
-
|
|
179
|
+
supported effort level, Enter confirms, Ctrl+R refreshes the catalog, `E`
|
|
180
|
+
edits the provider endpoint, `K` adds or replaces its API key, and Esc returns
|
|
181
|
+
to providers. OpenRouter entries show pricing tier, context size,
|
|
180
182
|
tool/reasoning capability, compact names, and the exact ID for the focused
|
|
181
183
|
entry. Its endpoint-scoped catalog is reused for five minutes, while Ctrl+R
|
|
182
184
|
forces an immediate live refresh; a failed forced refresh never silently
|
|
183
185
|
displays cached entries. API-provider secret
|
|
184
186
|
entry stays on one masked row and stores the value through the keychain flow.
|
|
185
|
-
Ollama
|
|
186
|
-
`/api/show
|
|
187
|
-
|
|
187
|
+
Ollama, llama.cpp, and vLLM capabilities are loaded lazily for the focused
|
|
188
|
+
model from `/api/show`, `/props`, and `/server_info?config_format=json`,
|
|
189
|
+
respectively, so the arrow selector reflects live runtime evidence rather than
|
|
190
|
+
a provider-wide guess. llama.cpp's current boolean support flag does not name
|
|
191
|
+
accepted levels, while a configured vLLM reasoning parser exposes its
|
|
192
|
+
documented `minimal→none|low|medium|high` mapping.
|
|
188
193
|
|
|
189
194
|
The effort row contains only capability-backed selectors UR can map to native
|
|
190
195
|
provider values. Ultra appears only when metadata advertises `ultra`, `max`,
|
|
191
196
|
`xhigh`, or an explicit alias; mappings such as `ultra→max` are shown and sent
|
|
192
|
-
exactly. Models that top out at `high`,
|
|
193
|
-
capabilities omit Ultra. See
|
|
197
|
+
exactly. Models that top out at `high`, models without an advertised
|
|
198
|
+
beyond-high value, and unknown capabilities omit Ultra. See
|
|
199
|
+
[Reasoning effort](providers.md#reasoning-effort).
|
|
194
200
|
|
|
195
201
|
Boolean-thinking models on runtimes with a native toggle expose a two-state
|
|
196
202
|
control instead: Left selects off, Right selects on, and `t` toggles in
|
|
@@ -226,6 +232,7 @@ OPENAI_COMPATIBLE_API_KEY=...
|
|
|
226
232
|
ANTHROPIC_API_KEY=...
|
|
227
233
|
GEMINI_API_KEY=...
|
|
228
234
|
OPENROUTER_API_KEY=...
|
|
235
|
+
NVIDIA_API_KEY=...
|
|
229
236
|
OLLAMA_API_KEY=... # optional for authenticated Ollama gateways
|
|
230
237
|
LMSTUDIO_API_KEY=... # optional when required by the endpoint
|
|
231
238
|
LLAMA_CPP_API_KEY=... # optional when required by the endpoint
|
|
@@ -233,6 +240,13 @@ VLLM_API_KEY=... # optional when required by the endpoint
|
|
|
233
240
|
UNSLOTH_API_KEY=...
|
|
234
241
|
```
|
|
235
242
|
|
|
243
|
+
NVIDIA NIM defaults to `https://integrate.api.nvidia.com/v1`, discovers the
|
|
244
|
+
connected account's models live, and accepts a provider-scoped override for an
|
|
245
|
+
enterprise or self-hosted NIM. Generic `openai-compatible` authentication is
|
|
246
|
+
optional: `ur connect openai-compatible` or the picker's `K` key stores a
|
|
247
|
+
credential when the chosen gateway needs one, without breaking anonymous
|
|
248
|
+
local endpoints.
|
|
249
|
+
|
|
236
250
|
Unsloth is an inference-provider integration only. Start Unsloth Studio and
|
|
237
251
|
load the model outside UR, connect its generated key with `ur connect unsloth`,
|
|
238
252
|
then select a model discovered from `http://localhost:8888/v1` (or your
|
|
@@ -500,6 +514,15 @@ before the agent can declare the task complete. A failing command surfaces
|
|
|
500
514
|
to the model as a structured reminder with the command name and the trimmed
|
|
501
515
|
stdout/stderr.
|
|
502
516
|
|
|
517
|
+
## Shell command deadlines
|
|
518
|
+
|
|
519
|
+
Set the Bash tool's `timeout` input in milliseconds for a whole-command
|
|
520
|
+
deadline. If a generated command uses the common Linux form `timeout 60 cmd`,
|
|
521
|
+
UR also makes that command work on macOS: it uses Homebrew `gtimeout` when
|
|
522
|
+
installed, otherwise supplies an in-process compatibility implementation with
|
|
523
|
+
process-group cleanup and GNU-style status 124 on expiry. No package install or
|
|
524
|
+
shell-profile change is required. Native Linux `timeout` remains untouched.
|
|
525
|
+
|
|
503
526
|
## Project Safety Policy
|
|
504
527
|
|
|
505
528
|
`ur safety` exposes the project shell safety policy:
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -200,10 +200,16 @@ ur provider doctor <provider-id>
|
|
|
200
200
|
curl http://localhost:11434/api/tags # Ollama
|
|
201
201
|
curl http://localhost:1234/v1/models # LM Studio (llama.cpp: 8080, vLLM: 8000)
|
|
202
202
|
curl -H "Authorization: Bearer $UNSLOTH_API_KEY" http://localhost:8888/v1/models
|
|
203
|
+
curl -H "Authorization: Bearer $NVIDIA_API_KEY" https://integrate.api.nvidia.com/v1/models
|
|
203
204
|
ur connect openai-api # store an API key securely
|
|
204
205
|
ur provider doctor
|
|
205
206
|
```
|
|
206
207
|
|
|
208
|
+
For an authenticated generic gateway, run `ur connect openai-compatible` or
|
|
209
|
+
press `K` on its `/model` screen; the key is optional and stored separately
|
|
210
|
+
from `OPENAI_API_KEY`. NVIDIA NIM uses `ur connect nvidia-nim` and keeps any
|
|
211
|
+
custom `base_url` scoped to that provider.
|
|
212
|
+
|
|
207
213
|
### Unsloth is selected but unavailable
|
|
208
214
|
|
|
209
215
|
- Likely cause: Studio is not running, no model is loaded, its generated API
|
package/docs/USAGE.md
CHANGED
|
@@ -207,7 +207,7 @@ Use `ur provider status` or `ur provider doctor <provider>` to see provider
|
|
|
207
207
|
kind, external CLI usage, native tool/streaming support, and the boundary text.
|
|
208
208
|
|
|
209
209
|
Provider values accept canonical IDs and common aliases. For example,
|
|
210
|
-
`openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `ollama`,
|
|
210
|
+
`openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `nvidia-nim`, `ollama`,
|
|
211
211
|
`lmstudio`, `llama.cpp`, `vllm`, and `unsloth` are UR-native runtime providers, and
|
|
212
212
|
`codex-cli` (`chatgpt`), `claude-code-cli` (`claude`), `gemini-cli` (`gemini`),
|
|
213
213
|
and `antigravity-cli` (`agy`) are subscription CLI providers.
|
|
@@ -215,7 +215,7 @@ and `antigravity-cli` (`agy`) are subscription CLI providers.
|
|
|
215
215
|
API modes are explicit. Keys are read from a key stored via
|
|
216
216
|
`ur connect <provider>` (OS keychain) or from the environment variables
|
|
217
217
|
`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`,
|
|
218
|
-
`OPENROUTER_API_KEY`, and `UNSLOTH_API_KEY`. Subscription CLIs are optional, never required
|
|
218
|
+
`OPENROUTER_API_KEY`, `NVIDIA_API_KEY`, and `UNSLOTH_API_KEY`. Subscription CLIs are optional, never required
|
|
219
219
|
dependencies, and never used as a silent fallback. UR-Nexus never scrapes
|
|
220
220
|
browser sessions, extracts OAuth tokens, or bypasses provider restrictions.
|
|
221
221
|
OpenAI-compatible local or cloud endpoints use `base_url` plus `model`.
|
|
@@ -224,7 +224,7 @@ and is inference-only: UR does not manage Unsloth and disables its server-side
|
|
|
224
224
|
tools while retaining standard function calls inside UR's guarded tool loop.
|
|
225
225
|
|
|
226
226
|
UR stores `base_url` per provider. You can set different addresses for
|
|
227
|
-
Ollama, LM Studio, llama.cpp, vLLM, and
|
|
227
|
+
Ollama, LM Studio, llama.cpp, vLLM, Unsloth, and NVIDIA NIM once, then switch providers without
|
|
228
228
|
re-entering any of them. `ur config get base_url` reports the active provider's
|
|
229
229
|
saved scoped override when one exists; use `ur provider status` or
|
|
230
230
|
`ur provider doctor <provider>` to inspect the effective endpoint.
|
|
@@ -233,10 +233,17 @@ without making it active first. The `/model` picker offers the same endpoint
|
|
|
233
233
|
entry flow for a disconnected local/server provider.
|
|
234
234
|
|
|
235
235
|
Use `/model` in an interactive session to select provider first and model
|
|
236
|
-
second. OpenAI API, Claude API, Gemini API, OpenRouter, Ollama, and
|
|
236
|
+
second. OpenAI API, Claude API, Gemini API, OpenRouter, NVIDIA NIM, Ollama, and
|
|
237
237
|
OpenAI-compatible endpoints stay separate; a subscription login does not grant
|
|
238
238
|
API-key access, and an API key does not grant subscription CLI access.
|
|
239
239
|
|
|
240
|
+
NVIDIA NIM uses the build.nvidia.com key and hosted
|
|
241
|
+
`https://integrate.api.nvidia.com/v1` endpoint by default. Connect it with
|
|
242
|
+
`ur connect nvidia-nim`; use `ur config set base_url nvidia-nim <url>` for a
|
|
243
|
+
different NIM deployment. On the `/model` model screen, `K` adds or replaces a
|
|
244
|
+
provider API key and `E` edits its endpoint. This also makes optional
|
|
245
|
+
authentication practical for generic OpenAI-compatible gateways.
|
|
246
|
+
|
|
240
247
|
## Project Instructions
|
|
241
248
|
|
|
242
249
|
Add a `UR.md` file to the repository root for team-shared instructions. UR loads it as project context.
|
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.2 (UR-Nexus)"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
### 0.0 Redteam mode and Reverse Skills (1.81.0)
|
|
@@ -82,15 +82,18 @@ between models that top out at high, xhigh, max, and native-ultra models; the le
|
|
|
82
82
|
selected ceiling must update immediately. Models that top out at high must omit Ultra, while
|
|
83
83
|
xhigh/max entries must show `ultra→xhigh` or `ultra→max`, and the
|
|
84
84
|
confirmation must match `/effort status` and the request wire value. For
|
|
85
|
-
an Ollama model that advertises
|
|
85
|
+
an Ollama model that advertises thinking without a model-specific ladder, verify that
|
|
86
86
|
Left selects off, Right selects on, `t` toggles, and `/effort max` reports that
|
|
87
87
|
max was not sent while enabling `think: true`; `/thinking off` must produce
|
|
88
88
|
`think: false`. For
|
|
89
|
-
llama.cpp, verify focus requests
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
89
|
+
llama.cpp, verify focus requests `/props?model=<focused-id>` and that both an
|
|
90
|
+
unsupported template and a bare `supports_reasoning_effort: true` flag have no
|
|
91
|
+
graded selector unless exact levels are also returned. For vLLM, verify one
|
|
92
|
+
focus request to `/server_info?config_format=json`; a non-empty reasoning parser
|
|
93
|
+
must expose `minimal→none`, `low`, `medium`, and `high`, serialize
|
|
94
|
+
`minimal` as `reasoning_effort: "none"`, and omit Ultra. Open the OpenAI API or
|
|
95
|
+
Claude API connection flow and verify the masked `API key` label and entry
|
|
96
|
+
remain on one horizontal row.
|
|
94
97
|
|
|
95
98
|
Then ask UR to research a current topic with WebSearch and WebFetch. Expected:
|
|
96
99
|
the auxiliary request stays on the active OpenRouter model, no `modelH` error
|
|
@@ -176,6 +179,29 @@ file. Expected: UR asks once whether to run the detected compile/test/lint
|
|
|
176
179
|
commands. After answering, the same approval question is not shown again. A
|
|
177
180
|
separate user task that edits files may ask once for its own verification.
|
|
178
181
|
|
|
182
|
+
### 0.1.3 Portable deadlines and provider tool images (1.84.2)
|
|
183
|
+
|
|
184
|
+
Run the deterministic adapter and shell coverage:
|
|
185
|
+
|
|
186
|
+
```sh
|
|
187
|
+
bun test test/bashCommandExecution.test.ts \
|
|
188
|
+
test/providerNvidiaNim.test.ts \
|
|
189
|
+
test/providerMultimodal.test.ts \
|
|
190
|
+
test/openaiResponses.test.ts \
|
|
191
|
+
test/ollamaToolResultImages.test.ts
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Expected: macOS can execute `timeout 0.1 …` without GNU coreutils and reports
|
|
195
|
+
124 when the deadline expires. Image-bearing tool results retain their text and
|
|
196
|
+
image bytes across OpenAI Chat/Responses, Anthropic, Gemini, OpenRouter,
|
|
197
|
+
NVIDIA NIM, Ollama, LM Studio, llama.cpp, vLLM, Unsloth, and generic OpenAI-compatible
|
|
198
|
+
request shapes.
|
|
199
|
+
|
|
200
|
+
The NVIDIA fixture also verifies hosted/default and overridden endpoints,
|
|
201
|
+
Bearer discovery, native dispatch, documented effort aliases, and no Ultra on
|
|
202
|
+
an unknown model. In `/model`, select `openai-compatible` and verify `K` can
|
|
203
|
+
add or replace its optional key while `E` continues to edit only its endpoint.
|
|
204
|
+
|
|
179
205
|
## 0.2 Permission safety and context pack (1.19.0)
|
|
180
206
|
|
|
181
207
|
In a project checkout:
|
package/docs/providers.md
CHANGED
|
@@ -37,6 +37,7 @@ multimodal input, external CLI boundary, and sandbox scope:
|
|
|
37
37
|
| Claude API | API | UR-native | no | yes | yes | yes | UR Bash/File sandbox | `api:anthropic` | `ANTHROPIC_API_KEY` |
|
|
38
38
|
| Gemini API | API | UR-native | no | yes | yes | yes | UR Bash/File sandbox | `api:gemini` | `GEMINI_API_KEY` |
|
|
39
39
|
| OpenRouter | API/router | UR-native | no | yes | yes | yes | UR Bash/File sandbox | `api:openrouter` | `OPENROUTER_API_KEY` |
|
|
40
|
+
| NVIDIA NIM | hosted/server API | UR-native | no | yes | yes | model-dependent | UR Bash/File sandbox | `api:nvidia-nim` | `NVIDIA_API_KEY`; configurable NIM endpoint |
|
|
40
41
|
| OpenAI-compatible | server/API | UR-native | no | yes | yes | endpoint-dependent | UR Bash/File sandbox | `openai-compatible` | optional `OPENAI_COMPATIBLE_API_KEY`; never reuses `OPENAI_API_KEY` |
|
|
41
42
|
| Ollama | local/server | UR-native | no | yes | yes | yes* | UR Bash/File sandbox | `ollama` | configured local, LAN, or hosted endpoint; optional `OLLAMA_API_KEY` |
|
|
42
43
|
| LM Studio | local/server | UR-native | no | yes | yes | yes | UR Bash/File sandbox | `openai-compatible:lmstudio` | configured endpoint; optional `LMSTUDIO_API_KEY` |
|
|
@@ -69,6 +70,17 @@ or `ollama show <model>`.
|
|
|
69
70
|
official CLI, so image blocks are not forwarded, and UR-native tool/streaming/
|
|
70
71
|
sandbox guarantees stop at UR-run tools and final UR output.
|
|
71
72
|
|
|
73
|
+
All UR-native adapters preserve images returned by tools without putting image
|
|
74
|
+
content into a wire field that rejects it. Anthropic keeps the image inside its
|
|
75
|
+
native `tool_result`; OpenAI Responses uses rich function-call output; Gemini
|
|
76
|
+
nests `inlineData` in the matching function response; Ollama uses the
|
|
77
|
+
following native user message; and OpenAI Chat Completions, OpenRouter, NVIDIA
|
|
78
|
+
NIM, LM Studio, llama.cpp, vLLM, Unsloth, and generic compatible endpoints emit the
|
|
79
|
+
required textual `role: tool` message followed immediately by a multimodal
|
|
80
|
+
`role: user` message. This preserves tool-call ordering and every image byte.
|
|
81
|
+
It does not turn a text-only model into a vision model: select a model whose
|
|
82
|
+
live provider metadata or runtime supports image input.
|
|
83
|
+
|
|
72
84
|
Tool search (deferred tool loading) is disabled on every provider above. It
|
|
73
85
|
depends on `tool_reference` content blocks being expanded into tool definitions
|
|
74
86
|
by the API, which is a URHQ-native beta feature with no equivalent on a local
|
|
@@ -149,7 +161,7 @@ migrated to the previously active provider on the first provider switch or
|
|
|
149
161
|
scoped base-URL write.
|
|
150
162
|
|
|
151
163
|
The override is not limited to local runtimes. OpenAI API, Anthropic API,
|
|
152
|
-
Gemini API, and
|
|
164
|
+
Gemini API, OpenRouter, and NVIDIA NIM can each target a separate compatible gateway using
|
|
153
165
|
the same command. Their official URLs are defaults, not hardcoded dispatch
|
|
154
166
|
destinations; model discovery and inference use the selected provider's saved
|
|
155
167
|
URL. Subscription CLI providers remain vendor-managed and do not accept a base
|
|
@@ -182,8 +194,9 @@ For OpenRouter, UR preserves the live `/models` reasoning metadata and sends
|
|
|
182
194
|
the unified `reasoning.effort` request. OpenAI-compatible servers receive the
|
|
183
195
|
resolved value as `reasoning_effort`. The command confirmation, status
|
|
184
196
|
indicator, active-work spinner, SDK settings response, and provider request all
|
|
185
|
-
use the same resolved value. If a provider advertises
|
|
186
|
-
its runtime has a real native on/off mapping,
|
|
197
|
+
use the same resolved value. If a provider advertises thinking without a
|
|
198
|
+
model-specific graded ladder and its runtime has a real native on/off mapping,
|
|
199
|
+
UR does not invent a graded effort
|
|
187
200
|
selector. Use `/thinking on|off` directly;
|
|
188
201
|
in `/model`, Left selects off, Right selects on, and `t` toggles. A graded
|
|
189
202
|
`/effort` request on that model enables boolean thinking while clearly reporting
|
|
@@ -194,10 +207,17 @@ so metadata alone does not make this toggle appear and UR sends no invented para
|
|
|
194
207
|
when the provider/model advertises `ultra`, `max`, `xhigh`, or an explicit
|
|
195
208
|
provider-authored equivalent. UR shows the native mapping (for example,
|
|
196
209
|
`ultra→max`) and sends that exact wire value; it never enables Ultra for a model
|
|
197
|
-
whose graded ladder tops out at `high`,
|
|
210
|
+
whose graded ladder tops out at `high`, lacks an advertised beyond-high value,
|
|
211
|
+
or has unknown capability metadata. Arbitrary
|
|
198
212
|
labels such as `deep` still require an explicit provider alias because UR
|
|
199
213
|
cannot infer their rank.
|
|
200
214
|
|
|
215
|
+
NVIDIA NIM is live-discovery first. UR enriches a discovered model only when
|
|
216
|
+
NVIDIA's current model API reference documents that exact model's
|
|
217
|
+
`reasoning_effort` values. Documented `none` appears as Minimal and `max`
|
|
218
|
+
appears as Ultra while the request preserves NVIDIA's wire values. An unknown
|
|
219
|
+
NIM model never inherits an invented graded ladder.
|
|
220
|
+
|
|
201
221
|
For an unknown or newly released model, UR waits for provider-authored model
|
|
202
222
|
metadata or a supported model-scoped probe before adding thinking parameters.
|
|
203
223
|
If the provider does not establish support, thinking stays off for request
|
|
@@ -209,16 +229,30 @@ the model advertises `supports_max_tokens`.
|
|
|
209
229
|
|
|
210
230
|
For Ollama, UR lazily reads the focused model's `/api/show` capabilities and
|
|
211
231
|
sends the resolved control through native `think`. A generic `thinking`
|
|
212
|
-
capability
|
|
232
|
+
capability proves thinking support but does not identify a model-specific
|
|
233
|
+
graded ladder; UR therefore exposes the verified native on/off control without
|
|
234
|
+
claiming that the model cannot also support levels. GPT-OSS uses Ollama's documented
|
|
213
235
|
`low|medium|high` ladder and does not expose Ultra. Other graded ladders and
|
|
214
236
|
Ultra aliases are used only when the endpoint explicitly returns them in model
|
|
215
|
-
reasoning metadata.
|
|
237
|
+
reasoning metadata.
|
|
238
|
+
|
|
239
|
+
For vLLM, UR lazily reads the non-generating
|
|
240
|
+
`/server_info?config_format=json` endpoint for the focused model. A configured
|
|
241
|
+
reasoning parser establishes vLLM's documented Chat Completions contract:
|
|
242
|
+
`none|low|medium|high`, displayed as `minimal→none|low|medium|high` and sent
|
|
243
|
+
through `reasoning_effort`. This discovery never launches a completion and
|
|
244
|
+
does not add Ultra. A richer provider-authored model record can add exact
|
|
245
|
+
levels or aliases. For llama.cpp, `/props` can establish that the active chat
|
|
246
|
+
template consumes reasoning effort, but the current capability flag does not
|
|
247
|
+
publish its finite accepted values; UR does not fabricate a ladder from that
|
|
248
|
+
boolean. Direct OpenAI,
|
|
216
249
|
Anthropic, and Gemini models use curated model-specific ladders from their
|
|
217
250
|
official documentation; live discovery rows are merged with those contracts.
|
|
218
251
|
See [Ollama thinking](https://docs.ollama.com/capabilities/thinking),
|
|
219
252
|
[OpenAI model guidance](https://developers.openai.com/api/docs/guides/latest-model),
|
|
220
253
|
[Claude effort](https://platform.claude.com/docs/en/build-with-claude/effort),
|
|
221
|
-
|
|
254
|
+
[Gemini thinking](https://ai.google.dev/gemini-api/docs/thinking), and
|
|
255
|
+
[vLLM reasoning outputs](https://docs.vllm.ai/en/latest/features/reasoning_outputs/).
|
|
222
256
|
|
|
223
257
|
The provider-first `/model` picker supports the same control directly: use
|
|
224
258
|
Left/Right to move through the capability-backed selectors UR can map to a
|
|
@@ -233,15 +267,18 @@ forced refresh fails. Interactive requests default to OpenRouter's latency
|
|
|
233
267
|
sorting, promote UR's stable session ID for sticky routing, and preserve safe
|
|
234
268
|
provider prompt-cache markers. Explicit routing preferences and the `:nitro`,
|
|
235
269
|
`:floor`, and `:exacto` model variants remain authoritative. API-key entry for
|
|
236
|
-
OpenAI, Claude, Gemini,
|
|
237
|
-
is
|
|
270
|
+
OpenAI, Claude, Gemini, OpenRouter, NVIDIA NIM, and authenticated compatible
|
|
271
|
+
endpoints is a single aligned masked row; the key is stored in the OS keychain
|
|
272
|
+
flow and is never written to settings. On the model screen, `K` adds or
|
|
273
|
+
replaces the selected HTTP provider's key and `E` edits its endpoint. Generic
|
|
274
|
+
OpenAI-compatible endpoints may remain anonymous.
|
|
238
275
|
|
|
239
276
|
### Token counting
|
|
240
277
|
|
|
241
278
|
UR uses each provider's non-generating count endpoint when one covers the full
|
|
242
279
|
request: OpenAI Responses input tokens, Anthropic Messages token counting,
|
|
243
|
-
Gemini `countTokens`, llama.cpp chat input tokens, and vLLM Messages
|
|
244
|
-
counting. Ollama, OpenRouter, LM Studio, Unsloth, and subscription CLIs use a
|
|
280
|
+
Gemini `countTokens`, llama.cpp chat input tokens, and vLLM/NVIDIA NIM Messages
|
|
281
|
+
token counting. Ollama, OpenRouter, LM Studio, Unsloth, and subscription CLIs use a
|
|
245
282
|
provider-wire local estimate because those runtimes do not share a dependable
|
|
246
283
|
preflight tokenizer for complete chat history plus tools. UR never launches a
|
|
247
284
|
hidden completion for token counting. If a native count call is unavailable,
|
|
@@ -249,12 +286,13 @@ file and MCP size checks retain the local estimate rather than disabling their
|
|
|
249
286
|
limits.
|
|
250
287
|
|
|
251
288
|
For llama.cpp, `/v1/models` metadata is preserved when the server supplies it.
|
|
252
|
-
Because stock llama.cpp exposes chat-template effort support per loaded model,
|
|
253
289
|
UR also resolves the model currently under the Up/Down cursor through
|
|
254
|
-
`/props?model=<id>`.
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
290
|
+
`/props?model=<id>`. `supports_reasoning_effort` establishes template support,
|
|
291
|
+
but current llama.cpp does not expose the accepted value set through that flag,
|
|
292
|
+
so it does not by itself enable Left/Right. Exact effort metadata from the
|
|
293
|
+
model endpoint still enables the corresponding selectors and is sent unchanged
|
|
294
|
+
as `reasoning_effort`. This works with llama.cpp router/cluster mode and does
|
|
295
|
+
not assume that port 8080 limits UR to one worker.
|
|
258
296
|
|
|
259
297
|
### Provider-aware research calls
|
|
260
298
|
|
|
@@ -271,7 +309,7 @@ error, not a successful `Did 0 searches` result.
|
|
|
271
309
|
When you select a UR-native provider and model, every agent request is routed
|
|
272
310
|
through that provider's backend:
|
|
273
311
|
|
|
274
|
-
- **API providers** make direct HTTP calls in each provider's native wire format: Anthropic uses `x-api-key` + `anthropic-version` against `/v1/messages`; OpenAI uses `Authorization: Bearer` against `/v1/chat/completions` by default or `/v1/responses` when explicitly selected; Gemini uses `x-goog-api-key` against `…:generateContent`; OpenRouter
|
|
312
|
+
- **API providers** make direct HTTP calls in each provider's native wire format: Anthropic uses `x-api-key` + `anthropic-version` against `/v1/messages`; OpenAI uses `Authorization: Bearer` against `/v1/chat/completions` by default or `/v1/responses` when explicitly selected; Gemini uses `x-goog-api-key` against `…:generateContent`; OpenRouter and NVIDIA NIM use their OpenAI-compatible chat endpoints.
|
|
275
313
|
- **Local/server providers** connect to the configured local or OpenAI-compatible endpoint (`/v1/chat/completions` for LM Studio, llama.cpp and vLLM; the native tags/chat API for Ollama)
|
|
276
314
|
- **Subscription CLI providers** (Codex CLI, Claude Code, Gemini CLI,
|
|
277
315
|
Antigravity) dispatch the turn through the vendor's official CLI using your
|
|
@@ -382,6 +420,7 @@ ur config set provider anthropic-api
|
|
|
382
420
|
| --- | --- | --- |
|
|
383
421
|
| 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 |
|
|
384
422
|
| OpenRouter | Live `/models` discovery with an endpoint-scoped five-minute cache; Ctrl+R forces a fresh request with no stale fallback | live/cache |
|
|
423
|
+
| NVIDIA NIM | Live `/models` discovery from the hosted or configured NIM endpoint; no stale offline model catalog | live |
|
|
385
424
|
| Local/server providers (ollama, lmstudio, llama.cpp, vllm, unsloth) | Dynamic discovery from the selected provider endpoint | live |
|
|
386
425
|
| OpenAI-compatible | Dynamic discovery from configured endpoint | live |
|
|
387
426
|
| 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 |
|
|
@@ -408,6 +447,7 @@ provider's successful live catalog remains authoritative for that account.
|
|
|
408
447
|
- `anthropic-api` — requires `ANTHROPIC_API_KEY`
|
|
409
448
|
- `gemini-api` — requires `GEMINI_API_KEY`
|
|
410
449
|
- `openrouter` — requires `OPENROUTER_API_KEY`
|
|
450
|
+
- `nvidia-nim` — requires `NVIDIA_API_KEY` for build.nvidia.com; endpoint is configurable
|
|
411
451
|
|
|
412
452
|
**Local/server providers** require local runtime or endpoint:
|
|
413
453
|
- `ollama` — configurable local, LAN, or hosted Ollama server
|
|
@@ -540,6 +580,7 @@ Provider config and doctor commands accept canonical IDs and common aliases:
|
|
|
540
580
|
| `anthropic-api` | `anthropic`, `claude api` |
|
|
541
581
|
| `gemini-api` | `gemini api`, `google gemini api` |
|
|
542
582
|
| `openrouter` | `openrouter api` |
|
|
583
|
+
| `nvidia-nim` | `nvidia`, `NVIDIA Build`, `nvidia api`, `nim` |
|
|
543
584
|
| `openai-compatible` | `compatible`, `openai compatible` |
|
|
544
585
|
| `ollama` | `ollama local` |
|
|
545
586
|
| `lmstudio` | `LM Studio`, `lm-studio` |
|
|
@@ -580,6 +621,7 @@ OPENAI_COMPATIBLE_API_KEY=...
|
|
|
580
621
|
ANTHROPIC_API_KEY=...
|
|
581
622
|
GEMINI_API_KEY=...
|
|
582
623
|
OPENROUTER_API_KEY=...
|
|
624
|
+
NVIDIA_API_KEY=...
|
|
583
625
|
OLLAMA_API_KEY=... # optional for authenticated Ollama gateways
|
|
584
626
|
LMSTUDIO_API_KEY=... # optional when the endpoint requires it
|
|
585
627
|
LLAMA_CPP_API_KEY=... # optional when the endpoint requires it
|
|
@@ -599,6 +641,32 @@ ur config set model local-model-name
|
|
|
599
641
|
`OPENAI_API_KEY`; selecting an arbitrary compatible base URL never forwards
|
|
600
642
|
the OpenAI credential to that host.
|
|
601
643
|
|
|
644
|
+
The compatible provider's key is optional and provider-scoped. Add or replace
|
|
645
|
+
it with `ur connect openai-compatible`, `/connect openai-compatible`, or `K`
|
|
646
|
+
in the `/model` model screen. Anonymous endpoints continue to work without it.
|
|
647
|
+
|
|
648
|
+
### NVIDIA NIM / build.nvidia.com
|
|
649
|
+
|
|
650
|
+
NVIDIA NIM is a UR-native, OpenAI-compatible provider with live discovery:
|
|
651
|
+
|
|
652
|
+
```sh
|
|
653
|
+
echo "$NVIDIA_API_KEY" | ur connect nvidia-nim
|
|
654
|
+
ur config set provider nvidia-nim
|
|
655
|
+
ur provider doctor nvidia-nim
|
|
656
|
+
# Optional self-hosted/enterprise gateway:
|
|
657
|
+
ur config set base_url nvidia-nim https://nim-gateway.example/v1
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
The default is `https://integrate.api.nvidia.com/v1`. UR calls `/models`,
|
|
661
|
+
`/chat/completions`, and, when available, `/messages/count_tokens`; native
|
|
662
|
+
count failure falls back to a provider-wire estimate and never launches a
|
|
663
|
+
hidden completion. Streaming, standard tool calls, and image input use the
|
|
664
|
+
same OpenAI-compatible adapter. Vision and tools remain model-dependent. For
|
|
665
|
+
documented Nemotron coding-agent models, UR includes NVIDIA's
|
|
666
|
+
`force_nonempty_content` template option when tools are present. See NVIDIA's
|
|
667
|
+
[NIM LLM API reference](https://docs.api.nvidia.com/nim/reference/llm-apis)
|
|
668
|
+
and [NIM function-calling API](https://docs.nvidia.com/nim/large-language-models/latest/function-calling.html).
|
|
669
|
+
|
|
602
670
|
Local/server providers use their normal endpoints:
|
|
603
671
|
|
|
604
672
|
- Ollama: `http://localhost:11434`
|
|
@@ -655,6 +723,7 @@ Required variables:
|
|
|
655
723
|
| --- | --- | --- |
|
|
656
724
|
| OpenAI-compatible | `OPENAI_COMPATIBLE_BASE_URL`, `OPENAI_COMPATIBLE_MODEL` | `OPENAI_COMPATIBLE_API_KEY` |
|
|
657
725
|
| Unsloth | `UNSLOTH_API_KEY`, `UNSLOTH_MODEL` | `UNSLOTH_BASE_URL` (defaults to `http://localhost:8888/v1`) |
|
|
726
|
+
| NVIDIA NIM | `NVIDIA_API_KEY`, `NVIDIA_MODEL` | `NVIDIA_BASE_URL` (defaults to `https://integrate.api.nvidia.com/v1`) |
|
|
658
727
|
| OpenAI | `OPENAI_API_KEY`, `OPENAI_MODEL` | `OPENAI_BASE_URL` |
|
|
659
728
|
| OpenRouter | `OPENROUTER_API_KEY`, `OPENROUTER_MODEL` | `OPENROUTER_BASE_URL` |
|
|
660
729
|
| Anthropic | `ANTHROPIC_API_KEY`, `ANTHROPIC_MODEL` | `ANTHROPIC_BASE_URL` |
|
package/documentation/app.js
CHANGED
|
@@ -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, provider-only Unsloth inference, 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 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, 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'],
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
title: 'Security and operations',
|
|
@@ -548,7 +548,7 @@ const slashGroups = [
|
|
|
548
548
|
{
|
|
549
549
|
title: 'Models, tools, and interop',
|
|
550
550
|
items: ['/model', '/provider', '/effort', '/thinking', '/fast', '/model-doctor', '/model-route', '/escalate', '/mcp', '/plugin', '/skills', '/skill', '/sdk', '/a2a-card'],
|
|
551
|
-
text: 'Pick providers and models, cycle only capability-backed effort selectors or provider-native
|
|
551
|
+
text: 'Pick providers and models, cycle only capability-backed effort selectors or a verified provider-native thinking toggle, inspect capabilities, manage MCP/plugin extensions, browse prompt skills with /skills, run executable workflows with /skill, and expose interop surfaces.',
|
|
552
552
|
},
|
|
553
553
|
{
|
|
554
554
|
title: 'Security operations',
|
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.2</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>
|
|
@@ -165,6 +165,7 @@ ur provider doctor agy</code></pre>
|
|
|
165
165
|
<h3>API and local providers</h3>
|
|
166
166
|
<pre><code>ur config set provider openai-compatible
|
|
167
167
|
ur config set provider openai-api
|
|
168
|
+
ur config set provider nvidia-nim
|
|
168
169
|
ur config set base_url ollama http://localhost:11434
|
|
169
170
|
ur config set base_url llama.cpp http://localhost:9931/v1
|
|
170
171
|
ur config set provider unsloth
|
|
@@ -172,15 +173,15 @@ ur config set model qwen3-coder:480b-cloud
|
|
|
172
173
|
ur config set provider.fallback ollama
|
|
173
174
|
ur config set openai_transport responses
|
|
174
175
|
ur config set responses.store false</code></pre>
|
|
175
|
-
<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, and API gateways restores the matching address. OpenAI Responses is opt-in and privacy-first; Chat Completions remains the default. Unsloth is an authenticated inference provider only.</p>
|
|
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>
|
|
176
177
|
</article>
|
|
177
178
|
<article>
|
|
178
179
|
<h3>Capability-driven reasoning effort</h3>
|
|
179
180
|
<pre><code>/effort ultra
|
|
180
181
|
/thinking on
|
|
181
182
|
ur --model kimi-k3:cloud --effort high
|
|
182
|
-
/model # Up/Down model · Left/Right effort or
|
|
183
|
-
<p>The normalized vocabulary is <code>minimal</code>, <code>low</code>, <code>medium</code>, <code>high</code>, <code>xhigh</code>, <code>max</code>, and <code>ultra</code>; <code>/effort auto</code> clears an explicit choice. UR lists only capability-backed selectors it can map to the focused model's provider-native levels. <code>max</code> resolves to the highest supported non-Ultra tier. Ultra appears only for native <code>ultra</code>, advertised <code>max</code>/<code>xhigh</code>, or an explicit provider alias; the picker shows translations such as <code>ultra→max</code> and sends that exact provider value. Models that top out at <code>high</code>,
|
|
183
|
+
/model # Up/Down model · Left/Right effort or thinking on/off · Enter apply</code></pre>
|
|
184
|
+
<p>The normalized vocabulary is <code>minimal</code>, <code>low</code>, <code>medium</code>, <code>high</code>, <code>xhigh</code>, <code>max</code>, and <code>ultra</code>; <code>/effort auto</code> clears an explicit choice. UR lists only capability-backed selectors it can map to the focused model's provider-native levels. <code>max</code> resolves to the highest supported non-Ultra tier. Ultra appears only for native <code>ultra</code>, advertised <code>max</code>/<code>xhigh</code>, or an explicit provider alias; the picker shows translations such as <code>ultra→max</code> and sends that exact provider value. Models that top out at <code>high</code>, lack an advertised beyond-high value, or have unknown capabilities do not get Ultra. For models with thinking but no advertised graded ladder on runtimes with a native toggle, Left selects off, Right selects on, and <code>t</code> toggles; <code>/thinking on|off</code> is the direct control. A graded <code>/effort</code> request on such a model enables thinking while reporting that no graded value was sent. Focused vLLM models use non-generating <code>/server_info</code> discovery for the documented <code>minimal→none|low|medium|high</code> mapping; llama.cpp's bare support flag creates no invented ladder. Generic OpenAI-compatible runtimes receive no invented boolean field.</p>
|
|
184
185
|
</article>
|
|
185
186
|
<article>
|
|
186
187
|
<h3>OpenRouter responsive routing</h3>
|
|
@@ -188,6 +189,25 @@ ur --model kimi-k3:cloud --effort high
|
|
|
188
189
|
/model # cached catalog; Ctrl+R forces live refresh</code></pre>
|
|
189
190
|
<p>The endpoint-scoped model catalog is reused for five minutes, while forced refresh never substitutes stale data. Interactive requests prefer OpenRouter latency routing, a stable session ID, and provider-authored prompt-cache markers; explicit routing preferences and model variants still win.</p>
|
|
190
191
|
</article>
|
|
192
|
+
<article>
|
|
193
|
+
<h3>NVIDIA NIM and compatible API keys</h3>
|
|
194
|
+
<pre><code>ur connect nvidia-nim
|
|
195
|
+
ur config set provider nvidia-nim
|
|
196
|
+
ur config set base_url nvidia-nim https://integrate.api.nvidia.com/v1
|
|
197
|
+
/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
|
+
</article>
|
|
200
|
+
<article>
|
|
201
|
+
<h3>Portable shell deadlines</h3>
|
|
202
|
+
<pre><code>timeout 60 long-command
|
|
203
|
+
# or use the Bash tool timeout field in milliseconds</code></pre>
|
|
204
|
+
<p>Generated Linux-style timeout commands also work on macOS. UR uses Homebrew <code>gtimeout</code> when present or supplies a process-group-aware compatibility command with status 124 on expiry; it does not modify your shell profile.</p>
|
|
205
|
+
</article>
|
|
206
|
+
<article>
|
|
207
|
+
<h3>Tool images across providers</h3>
|
|
208
|
+
<pre><code>Computer screenshot → tool result → vision model</code></pre>
|
|
209
|
+
<p>Every UR-native provider preserves image-bearing tool output in its valid wire shape. OpenRouter, NVIDIA NIM, and other Chat-Completions backends keep the tool result textual and send the image in the next multimodal user turn; Gemini, OpenAI Responses, Anthropic, and Ollama use their native rich forms. Vision still depends on the selected model.</p>
|
|
210
|
+
</article>
|
|
191
211
|
<article>
|
|
192
212
|
<h3>Status bar and updates</h3>
|
|
193
213
|
<pre><code>Ollama | llama3 | ask | main | update available</code></pre>
|
|
@@ -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.2",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED