ur-agent 1.84.3 → 1.84.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,76 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.84.5
4
+
5
+ - Fixed a provider-wide multi-turn tool-history failure. Some
6
+ OpenAI-compatible models reuse response-scoped IDs such as `TaskCreate:0`;
7
+ UR previously classified the later completed pair as a duplicate, removed
8
+ it from the API-bound history, and could prompt the model to say the user's
9
+ answer was empty. Later unambiguous call/result pairs now receive stable,
10
+ conversation-unique IDs before pairing repair, while the saved transcript
11
+ remains unchanged and genuinely corrupt duplicates still fail normally.
12
+ - Restored NVIDIA Build's full hosted chat catalog by making its authenticated
13
+ `/v1/models` response authoritative. UR no longer intersects hosted models
14
+ with the unrelated NVCF deployment-function inventory that hid valid
15
+ endpoints; non-agent utility endpoints remain filtered, and download-only
16
+ Build cards are never inserted into the hosted picker. Doctor and runtime
17
+ invalidation now follow the same catalog contract.
18
+ - Reduced NVIDIA request overhead and added exact model-native behavior. Hosted
19
+ NIM token analysis now uses the local request-shaped estimate immediately
20
+ instead of probing an unsupported count route. Nemotron 3.5 Lightning is
21
+ preferred when NVIDIA returns it and its native on/off thinking field is
22
+ wired; Kimi K3 retains its mandatory documented effort contract, and no
23
+ unknown model inherits a fabricated level or Ultra.
24
+ - Added documented direct-Anthropic latency controls. Prompt-cache breakpoints
25
+ now survive native request translation, streaming tools use per-tool
26
+ fine-grained input streaming, and `anthropic.speed=fast` opts enabled Opus
27
+ 5/4.8 accounts into Anthropic's premium research-preview tier with the
28
+ required beta header. Unsupported models stay on standard speed and response
29
+ accounting preserves the tier actually served.
30
+ - Audited other provider acceleration paths against their current APIs.
31
+ OpenAI Responses already retains native SSE/WebSocket continuation, Gemini
32
+ implicit caching remains automatic, and UR does not invent Interactions-only
33
+ Gemini Priority fields or OpenRouter-style routing controls for NVIDIA and
34
+ local servers. User, troubleshooting, validation, provider, and technical
35
+ documentation now match these executable boundaries.
36
+
37
+ ## 1.84.4
38
+
39
+ - Corrected NVIDIA Build model discovery so the picker no longer treats the
40
+ hosted `/v1/models` feed as proof that a model can be invoked. UR now
41
+ intersects that feed with the connected account's authenticated ACTIVE NVCF
42
+ functions and removes embedding, safety, parser, translation, retrieval,
43
+ reward, detector, and other non-agent endpoints. Custom enterprise and
44
+ self-hosted NIM gateways remain independent and use their own configured
45
+ catalogs.
46
+ - Made NVIDIA diagnostics and runtime catalog churn actionable. `ur provider
47
+ doctor nvidia-nim` now validates the selected model against the account-active
48
+ inventory; a definitive missing-function 404 removes that model from the
49
+ endpoint-scoped session catalog and reports a model-selection fix without
50
+ displaying or retaining NVIDIA's internal account and function identifiers.
51
+ - Added production regressions for retired hosted models, account inventory
52
+ failures, utility-model filtering, custom gateway isolation, selected-model
53
+ doctor failures, request/stream error redaction, and runtime cache
54
+ invalidation. User, troubleshooting, validation, configuration, and technical
55
+ documentation now describe the executable behavior.
56
+ - Corrected the output-limit diagnostic: a `max_tokens`/`length` finish now
57
+ says that the provider stopped the selected model at a per-response boundary,
58
+ rather than incorrectly claiming that UR's accumulated response exceeded a
59
+ total limit. Long work now continues without a fixed continuation count while
60
+ each response makes novel progress; two consecutive empty/replayed capped
61
+ responses stop only the stalled loop. Practical response chunks preserve
62
+ router capacity and local KV memory, while the selected model's advertised
63
+ limit remains the upper bound for explicit overrides.
64
+ - Updated OpenRouter dispatch to its current routing contract. Tool turns no
65
+ longer force `sort: latency`, which had disabled OpenRouter Auto Exacto;
66
+ they now use the router's live throughput, tool-call reliability, and
67
+ benchmark ordering. Non-tool turns default to end-to-end throughput rather
68
+ than time-to-first-token alone. Stable session affinity remains enabled for
69
+ prompt caching, and CLI settings now expose routing, fallback, parameter,
70
+ latency/throughput preference, service-tier, and supported fast-mode controls.
71
+ OpenRouter's `:nitro`, `:floor`, and `:exacto` virtual model variants now
72
+ validate against the discovered base model and inherit its capabilities.
73
+
3
74
  ## 1.84.3
4
75
 
5
76
  - Updated both production and release artifact uploads to the current official
package/README.md CHANGED
@@ -295,6 +295,9 @@ ur provider select-model ollama qwen2.5-coder:7b --json
295
295
  ur config set base_url ollama http://localhost:11434
296
296
  ur config set base_url llama.cpp http://localhost:9931/v1
297
297
  ur config set provider.fallback ollama
298
+ ur config set openrouter.routing auto
299
+ ur config set openrouter.preferred_min_throughput 40
300
+ ur config set openrouter.preferred_max_latency 3
298
301
  ```
299
302
 
300
303
  `provider.fallback` records a recovery provider for `ur provider doctor`
@@ -328,6 +331,35 @@ store records identifiers and status only. Compacted context is persisted only
328
331
  when `UR_OPENAI_RESPONSES_STATE_KEY` contains a 32-byte encryption key. Return
329
332
  to the default with `ur config set openai_transport chat-completions`.
330
333
 
334
+ OpenRouter `auto` routing leaves tool turns to Auto Exacto and optimizes
335
+ non-tool turns for end-to-end throughput. The routing, fallback,
336
+ strict-parameter, rolling performance preference, service-tier, and supported
337
+ fast-mode controls are configurable; `priority` and `fast` are optional and may
338
+ cost more. Native `:nitro`, `:floor`, and `:exacto` model suffixes are accepted
339
+ and keep the base model's discovered context, output, tool, and reasoning
340
+ capabilities.
341
+
342
+ ```sh
343
+ ur config set openrouter.routing auto # auto | throughput | latency | price
344
+ ur config set openrouter.allow_fallbacks true # true | false | auto
345
+ ur config set openrouter.require_parameters true # true | false | auto
346
+ ur config set openrouter.service_tier priority # auto | default | flex | priority | fast
347
+ ur config set openrouter.speed fast # standard | fast
348
+ ```
349
+
350
+ Direct Anthropic requests automatically preserve UR's prompt-cache
351
+ breakpoints and enable per-tool fine-grained input streaming, reducing repeat
352
+ prefill work and exposing large tool arguments as Claude generates them.
353
+ Anthropic's premium research-preview fast tier is opt-in and is sent only for
354
+ Claude Opus 5 or Opus 4.8:
355
+
356
+ ```sh
357
+ ur config set anthropic.speed fast # standard | fast
358
+ ```
359
+
360
+ The account must have Anthropic fast-mode access. Unsupported Claude models
361
+ stay on standard speed instead of receiving a fabricated provider option.
362
+
331
363
  Provider config accepts canonical IDs and common aliases. Examples:
332
364
  `openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `nvidia-nim` (`NVIDIA Build`), `ollama`,
333
365
  `lmstudio`, `LM Studio`, `llama.cpp`, `vllm`, `unsloth` (`Unsloth Studio`), and the subscription CLIs
@@ -372,7 +404,9 @@ In the interactive app, `/model` is a two-step, provider-first picker:
372
404
  by source: `live` (discovered from the endpoint), `cache` (last discovery),
373
405
  `static` (predefined), or `unavailable` after a failed discovery with no
374
406
  fallback. Local/server providers (Ollama, LM Studio,
375
- llama.cpp, vLLM, Unsloth) and OpenAI-compatible endpoints, including NVIDIA NIM, are discovered live; API
407
+ llama.cpp, vLLM, Unsloth) and OpenAI-compatible endpoints are discovered live. Hosted NVIDIA NIM
408
+ uses its documented `/v1/models` response directly and removes non-agent utility
409
+ endpoints before presenting a model; the separate NVCF deployment inventory does not narrow it. API
376
410
  providers use live discovery from their `/models` endpoint once a key is
377
411
  connected (with a curated fallback list before that). Subscription CLIs show
378
412
  their curated model list because the official CLIs expose no models API. The
@@ -382,8 +416,8 @@ In the interactive app, `/model` is a two-step, provider-first picker:
382
416
  the focused model's capability-backed selectors; use **Left/Right** to cycle
383
417
  only values UR can map to provider-native levels before pressing Enter. For
384
418
  models with thinking but no advertised graded ladder on runtimes with a native
385
- two-state mapping (currently
386
- Ollama and direct Anthropic), Left selects off, Right selects on, and `t`
419
+ two-state mapping (currently Ollama, direct Anthropic, and NVIDIA Nemotron
420
+ 3.5 Lightning), Left selects off, Right selects on, and `t`
387
421
  toggles. The same state is available directly through `/thinking on|off`.
388
422
  Generic OpenAI-compatible runtimes never receive an invented boolean field.
389
423
  `ultra` is UR's visible
@@ -412,8 +446,12 @@ In the interactive app, `/model` is a two-step, provider-first picker:
412
446
  support, and the full untruncated ID immediately below the focused entry.
413
447
  Its endpoint-scoped catalog is reused for five minutes; Ctrl+R forces an
414
448
  immediate live refresh without substituting stale entries. Interactive
415
- requests prefer OpenRouter's latency routing and reuse a stable session ID
416
- and provider-authored prompt-cache markers for warmer multi-turn streams.
449
+ tool turns preserve OpenRouter Auto Exacto so the router can combine live
450
+ throughput with measured tool-call reliability; ordinary text turns prefer
451
+ end-to-end throughput rather than time-to-first-token alone. UR reuses a
452
+ stable session ID and provider-authored prompt-cache markers for warmer
453
+ multi-turn streams. Configure the policy with `openrouter.routing`, or use
454
+ the native `:nitro`, `:floor`, and `:exacto` model variants.
417
455
  API-key entry is masked, aligned on one row, and stored through the OS
418
456
  keychain flow.
419
457