ur-agent 1.30.3 → 1.30.4

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,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.30.4
4
+
5
+ - Make the default provider runtime independent of provider apps. Codex CLI,
6
+ Claude Code, Gemini CLI, and Antigravity are now treated as explicit external
7
+ app bridges and are blocked from normal `/model`, config save, and runtime
8
+ dispatch unless `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set.
9
+ - Keep API, local, and OpenAI-compatible providers as the UR-native runtime path
10
+ so turns behave like Ollama: UR owns the conversation loop, tool loop, errors,
11
+ and output instead of delegating to another agent app.
12
+
3
13
  ## 1.30.3
4
14
 
5
15
  - Fix Codex CLI dispatch for real interactive terminals by inheriting terminal
package/README.md CHANGED
@@ -152,47 +152,51 @@ requests use that provider backend; they do not fall back to Ollama unless
152
152
  ### Legal Provider Auth
153
153
 
154
154
  UR-AGENT stores only safe provider preferences: provider name, model name,
155
- base URL, command path, fallback preference, and non-secret settings. API keys
156
- must stay in environment variables and subscription providers must authenticate
157
- through their official CLIs.
155
+ base URL, fallback preference, and non-secret settings. API keys must stay in
156
+ environment variables. API, local, and OpenAI-compatible server providers are
157
+ UR-native runtimes and behave like Ollama: UR owns the conversation loop, tool
158
+ loop, errors, and output.
159
+
160
+ Subscription CLI integrations (Codex CLI, Claude Code, Gemini CLI, and
161
+ Antigravity) are external app bridges. They are shown for diagnostics and can be
162
+ checked with `ur provider doctor`, but they are not required and are disabled
163
+ for normal runtime selection unless `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set.
158
164
 
159
165
  ```sh
160
166
  ur provider list
161
167
  ur provider status
162
168
  ur provider doctor
163
- ur auth chatgpt
164
- ur auth claude
165
- ur auth gemini
166
- ur auth antigravity
167
- ur config set provider codex-cli
168
- ur config set provider claude
169
- ur config set provider "Claude Code"
170
- ur config set provider antigravity
169
+ ur config set provider ollama
170
+ ur config set provider openai-api
171
+ ur config set provider anthropic-api
172
+ ur config set provider gemini-api
173
+ ur config set provider openrouter
171
174
  ur config set model qwen3-coder:480b-cloud
172
175
  ur config set base_url http://localhost:11434
173
176
  ur config set provider.fallback ollama
174
177
  ```
175
178
 
176
179
  Provider config accepts canonical IDs and common aliases. Examples:
177
- `codex-cli`, `chatgpt`, `codex`, `claude-code-cli`, `claude`,
178
- `Claude Code`, `gemini-cli`, `gemini`, `antigravity-cli`, `antigravity`,
179
- `agy`, `ollama`, `lmstudio`, `LM Studio`, `llama.cpp`, and `vllm`.
180
+ `openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `ollama`,
181
+ `lmstudio`, `LM Studio`, `llama.cpp`, and `vllm`. External app bridge aliases
182
+ such as `codex-cli`, `claude-code-cli`, `gemini-cli`, and `antigravity-cli` are
183
+ accepted only when the external bridge opt-in is enabled.
180
184
  Use quotes for shell values with spaces.
181
185
 
182
- | Provider | Access type | Legal path |
183
- | --- | --- | --- |
184
- | Codex CLI | subscription | official Codex CLI login |
185
- | Claude Code | subscription | official Claude Code login |
186
- | Gemini CLI | subscription | official Gemini Code Assist login |
187
- | Antigravity | subscription | official Antigravity login, where supported |
188
- | OpenAI API | API key | `OPENAI_API_KEY` |
189
- | Claude API | API key | `ANTHROPIC_API_KEY` |
190
- | Gemini API | API key | `GEMINI_API_KEY` |
191
- | OpenRouter | API/router | `OPENROUTER_API_KEY` |
192
- | Ollama | local | localhost Ollama runtime |
193
- | LM Studio | local/server | local OpenAI-compatible server |
194
- | llama.cpp | local/server | local OpenAI-compatible server |
195
- | vLLM | local/server | OpenAI-compatible server |
186
+ | Provider | Access type | Runtime kind | Legal path |
187
+ | --- | --- | --- | --- |
188
+ | OpenAI API | API key | UR-native | `OPENAI_API_KEY` |
189
+ | Claude API | API key | UR-native | `ANTHROPIC_API_KEY` |
190
+ | Gemini API | API key | UR-native | `GEMINI_API_KEY` |
191
+ | OpenRouter | API/router | UR-native | `OPENROUTER_API_KEY` |
192
+ | Ollama | local | UR-native | localhost Ollama runtime |
193
+ | LM Studio | local/server | UR-native | local OpenAI-compatible server |
194
+ | llama.cpp | local/server | UR-native | local OpenAI-compatible server |
195
+ | vLLM | local/server | UR-native | OpenAI-compatible server |
196
+ | Codex CLI | subscription | external app bridge | official Codex CLI login |
197
+ | Claude Code | subscription | external app bridge | official Claude Code login |
198
+ | Gemini CLI | subscription | external app bridge | official Gemini Code Assist login |
199
+ | Antigravity | subscription | external app bridge | official Antigravity login, where supported |
196
200
 
197
201
  #### Provider-first model selection
198
202
 
@@ -205,32 +209,34 @@ In the interactive app, `/model` is a two-step, provider-first picker:
205
209
  2. **Choose a model.** Only the selected provider's models are shown, labelled
206
210
  by source: `live` (discovered from the endpoint), `cache` (last discovery),
207
211
  or `static` (predefined). Local/server providers (Ollama, LM Studio,
208
- llama.cpp, vLLM) and OpenAI-compatible endpoints are discovered live; API and
209
- subscription providers use their curated model list.
210
-
211
- Model lists never cross providers: OpenAI API vs Codex CLI, Claude API vs Claude
212
- Code, and Gemini API vs Gemini CLI are separate access paths, and subscription
213
- logins and API keys are not interchangeable. The provider/model pair is
214
- validated before it is saved and again before every request; changing provider
215
- clears an incompatible model. `ur config set provider X` warns and clears an
216
- incompatible model, and `ur config set model Y` is validated against the active
217
- provider. The confirmation shows the selected provider, model, model source, and
218
- the runtime backend that will receive the next request.
212
+ llama.cpp, vLLM) and OpenAI-compatible endpoints are discovered live; API
213
+ providers use their curated model list. External app bridges are shown but
214
+ blocked unless explicitly opted in.
215
+
216
+ Model lists never cross providers: OpenAI API, Claude API, Gemini API,
217
+ OpenRouter, Ollama, and OpenAI-compatible local/server endpoints are separate
218
+ access paths. API keys, local runtimes, and external app logins are not
219
+ interchangeable. The provider/model pair is validated before it is saved and
220
+ again before every request; changing provider clears an incompatible model.
221
+ `ur config set provider X` warns and clears an incompatible model, and
222
+ `ur config set model Y` is validated against the active provider. The
223
+ confirmation shows the selected provider, model, model source, and the runtime
224
+ backend that will receive the next request.
219
225
 
220
226
  #### Runtime dispatch
221
227
 
222
228
  The selected provider/model drives every agent request — the assistant's own
223
229
  identity line in the system prompt reflects it too:
224
230
 
225
- - **Subscription** providers spawn the official CLI (`codex`, `claude`,
226
- `gemini`, `agy`) in non-interactive mode with the scoped model and prompt; a
227
- non-zero exit or empty output fails clearly (never placeholder text).
228
231
  - **API** providers call each service in its native wire format — Anthropic
229
232
  `x-api-key` + `anthropic-version` on `/v1/messages`, OpenAI `Bearer` on
230
233
  `/v1/chat/completions`, Gemini `x-goog-api-key` on `:generateContent`,
231
234
  OpenRouter on its OpenAI-compatible chat endpoint.
232
235
  - **Local/server** providers call the configured endpoint (`/v1/chat/completions`
233
236
  for LM Studio/llama.cpp/vLLM; the native API for Ollama).
237
+ - **External app bridges** for subscription CLIs are disabled by default because
238
+ they delegate the turn to another agent app. Opt in with
239
+ `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` only when that behavior is intentional.
234
240
 
235
241
  Ollama is used only when Ollama is selected. There is no silent cross-provider
236
242
  fallback: if dispatch fails, UR reports the selected provider, model, and runtime
@@ -304,7 +310,7 @@ viewer mode.
304
310
  Example:
305
311
 
306
312
  ```text
307
- UR-AGENT v1.30.3 | Provider: Codex CLI | Auth: subscription | model: codex/gpt-5.5 | mode: ask | branch: main | tasks: idle
313
+ UR-AGENT v1.30.4 | Provider: Ollama | Auth: local | model: llama3 | mode: ask | branch: main | tasks: idle
308
314
  ```
309
315
 
310
316
  The bar reflects the active in-session provider/model immediately after a