ur-agent 1.33.0 → 1.35.0

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,40 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.35.0
4
+
5
+ - New `ur connect` CLI command (same implementation as the `/connect` slash
6
+ command): `ur connect status`, `ur connect <provider>`,
7
+ `ur connect <provider> --key <KEY>`, and `ur connect logout <provider>`.
8
+ Provider doctor fix-it hints that referenced `ur connect` now work as shown.
9
+ - `ur spec run`/`ur spec verify` now accept the documented `--kernel` flag
10
+ from the CLI (previously only the slash command parsed it).
11
+ - Hidden non-functional legacy commands from `--help`: `ur setup-token`,
12
+ `ur auth login`, `ur auth logout`, and the native-build `ur install`
13
+ (no native package is published; use `ur update`).
14
+ - Removed dead external-bridge gating code left over from pre-1.34 behavior
15
+ (`UR_ENABLE_EXTERNAL_APP_PROVIDERS` and the persisted opt-in list); the env
16
+ var was already ignored at runtime.
17
+ - Documentation overhaul: provider/model docs now match the 1.34 first-class
18
+ subscription-CLI behavior everywhere; new `docs/TROUBLESHOOTING.md`;
19
+ README command table covers the full public CLI; static docs site updated
20
+ (stale `install`/`setup-token` entries replaced with `connect`, `ide`,
21
+ `skill`, `task`, `sandbox`, `memory`, `local-first`, `update`).
22
+ - Removed stale duplicate docs (`docs/AGENT_UPGRADE_1.15.0.md` …
23
+ `1.22.0.md`, `docs/CODE_FEATURE_INVENTORY.md`); release history lives in
24
+ this changelog.
25
+ - Fixed `.gitignore` ignoring itself, so ignore rules ship with the repo.
26
+
27
+ ## 1.34.0
28
+
29
+ - Restore the 1.30.3 subscription approach: Codex CLI, Claude Code, Gemini CLI
30
+ and Antigravity are first-class in `/model` again — shown by default and
31
+ usable directly (no `UR_ENABLE_EXTERNAL_APP_PROVIDERS` opt-in and no runtime
32
+ block). They dispatch through the official CLI; log in with
33
+ `ur auth <provider>`. The internal generic `subscription` placeholder is
34
+ hidden from listings.
35
+ - API and local/server providers are unchanged: live model discovery from each
36
+ provider's `/models` endpoint and in-app masked API-key entry.
37
+
3
38
  ## 1.33.0
4
39
 
5
40
  - Add API keys from inside UR while it is running: in `/model`, selecting an
package/QUALITY.md CHANGED
@@ -40,7 +40,7 @@ do not tag or publish until that workflow is green.
40
40
  Public feature releases should update the full documentation set:
41
41
 
42
42
  - root README
43
- - changelog and upgrade notes
43
+ - `CHANGELOG.md`
44
44
  - `docs/`
45
45
  - static site files under `documentation/`
46
46
  - examples
@@ -49,10 +49,15 @@ Public feature releases should update the full documentation set:
49
49
  ## Runtime Assumptions
50
50
 
51
51
  - UR runs through Bun.
52
- - Model requests go to the local Ollama app at `http://localhost:11434/api`.
53
- - The local Ollama app may expose local models or Ollama Cloud-backed models.
54
- - UR does not call model provider APIs directly and does not manage model API
55
- keys.
52
+ - The default provider is the local Ollama app at `http://localhost:11434/api`;
53
+ it may expose local models or Ollama Cloud-backed models.
54
+ - Selecting an API provider (OpenAI, Anthropic, Gemini, OpenRouter) makes UR
55
+ call that provider's API directly, using a key stored via `ur connect`
56
+ (OS keychain) or read from an environment variable. Keys are never written
57
+ to settings files.
58
+ - Selecting a subscription CLI provider (Codex CLI, Claude Code, Gemini CLI,
59
+ Antigravity) dispatches turns through the vendor's official CLI. There is no
60
+ silent cross-provider fallback.
56
61
  - The GitHub install path runs `dist/cli.js`, so the bundle must match the
57
62
  package version.
58
63
 
package/README.md CHANGED
@@ -69,8 +69,10 @@ handing work off to other tools or agents when needed.
69
69
  ### Requirements
70
70
 
71
71
  - Bun. This repository is configured with `bun@1.3.14`.
72
- - A Node.js-compatible shell environment.
73
- - A running Ollama app or server. UR defaults to `http://localhost:11434/api`.
72
+ - A Node.js-compatible shell environment (Node 18+ for the npm launcher).
73
+ - For the default local setup: a running Ollama app or server
74
+ (`http://localhost:11434/api`). Any other supported provider (API key,
75
+ OpenAI-compatible server, or subscription CLI) works without Ollama.
74
76
  - Optional tools for specific workflows: GitHub CLI, tmux, and supported IDE
75
77
  integrations.
76
78
 
@@ -157,12 +159,14 @@ environment variables. API, local, and OpenAI-compatible server providers are
157
159
  UR-native runtimes and behave like Ollama: UR owns the conversation loop, tool
158
160
  loop, errors, and output.
159
161
 
160
- The default provider list includes a generic `subscription` access entry so the
161
- access type is visible, but this build does not invent subscription models or
162
- route through provider apps. If no independent subscription runtime is
163
- configured, that entry is marked unavailable. Subscription CLI integrations are
164
- external app bridges; they are diagnostics/opt-in only and are disabled for
165
- normal runtime selection unless `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set.
162
+ The provider list shows the subscription CLIs (Codex CLI, Claude Code, Gemini
163
+ CLI, Antigravity) alongside the API and local/server providers, and they are
164
+ first-class: pick one in `/model` and it dispatches through the official CLI.
165
+ These are external app bridges they run the vendor's own CLI using your
166
+ subscription so you log in with `ur auth <provider>` (e.g. `ur auth chatgpt`,
167
+ `ur auth claude`). UR does not invent subscription models; each subscription
168
+ shows its curated model list. The generic `subscription` entry is an internal
169
+ placeholder and is hidden from the list.
166
170
 
167
171
  ```sh
168
172
  ur provider list
@@ -180,23 +184,33 @@ ur config set provider.fallback ollama
180
184
 
181
185
  Provider config accepts canonical IDs and common aliases. Examples:
182
186
  `openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `ollama`,
183
- `lmstudio`, `LM Studio`, `llama.cpp`, and `vllm`. External app bridge aliases
184
- such as `codex-cli`, `claude-code-cli`, `gemini-cli`, and `antigravity-cli` are
185
- accepted only when the external bridge opt-in is enabled.
186
- Use quotes for shell values with spaces.
187
+ `lmstudio`, `LM Studio`, `llama.cpp`, `vllm`, and the subscription CLIs
188
+ `codex-cli` (`chatgpt`), `claude-code-cli` (`claude`), `gemini-cli` (`gemini`),
189
+ and `antigravity-cli` (`agy`). Use quotes for shell values with spaces.
190
+
191
+ Connect accounts once with `ur connect` (or `/connect` in a session):
192
+
193
+ ```sh
194
+ ur connect status # connection state for every provider
195
+ ur connect codex-cli # subscription: launches the official login
196
+ echo "$OPENAI_API_KEY" | ur connect openai-api # API: store a key in the OS keychain
197
+ ur connect logout openai-api # clear a stored key
198
+ ```
187
199
 
188
200
  | Provider | Access type | Runtime kind | Legal path |
189
201
  | --- | --- | --- | --- |
190
- | Subscription | subscription | unavailable until configured | independent subscription runtime only |
191
- | OpenAI API | API key | UR-native | `OPENAI_API_KEY` |
192
- | Claude API | API key | UR-native | `ANTHROPIC_API_KEY` |
193
- | Gemini API | API key | UR-native | `GEMINI_API_KEY` |
194
- | OpenRouter | API/router | UR-native | `OPENROUTER_API_KEY` |
202
+ | OpenAI API | API key | UR-native | `OPENAI_API_KEY` or `ur connect openai-api` |
203
+ | Claude API | API key | UR-native | `ANTHROPIC_API_KEY` or `ur connect anthropic-api` |
204
+ | Gemini API | API key | UR-native | `GEMINI_API_KEY` or `ur connect gemini-api` |
205
+ | OpenRouter | API/router | UR-native | `OPENROUTER_API_KEY` or `ur connect openrouter` |
195
206
  | Ollama | local | UR-native | localhost Ollama runtime |
196
207
  | LM Studio | local/server | UR-native | local OpenAI-compatible server |
197
208
  | llama.cpp | local/server | UR-native | local OpenAI-compatible server |
198
209
  | vLLM | local/server | UR-native | OpenAI-compatible server |
199
- | External app bridges | subscription | opt-in diagnostics | disabled unless explicitly enabled |
210
+ | Codex CLI | subscription | external app bridge | official Codex CLI login (`ur auth chatgpt`) |
211
+ | Claude Code | subscription | external app bridge | official Claude Code login (`ur auth claude`) |
212
+ | Gemini CLI | subscription | external app bridge | official Gemini Code Assist login (`ur auth gemini`) |
213
+ | Antigravity | subscription | external app bridge | official Antigravity CLI login (`ur auth antigravity`) |
200
214
 
201
215
  #### Provider-first model selection
202
216
 
@@ -210,9 +224,10 @@ In the interactive app, `/model` is a two-step, provider-first picker:
210
224
  by source: `live` (discovered from the endpoint), `cache` (last discovery),
211
225
  or `static` (predefined). Local/server providers (Ollama, LM Studio,
212
226
  llama.cpp, vLLM) and OpenAI-compatible endpoints are discovered live; API
213
- providers use their curated model list. The generic `subscription` entry has
214
- no models unless a real independent subscription backend is configured.
215
- External app bridges are hidden unless explicitly opted in.
227
+ providers use live discovery from their `/models` endpoint once a key is
228
+ connected (with a curated fallback list before that). Subscription CLIs show
229
+ their curated model list because the official CLIs expose no models API. The
230
+ generic `subscription` entry is an internal placeholder hidden from listings.
216
231
 
217
232
  Model lists never cross providers: OpenAI API, Claude API, Gemini API,
218
233
  OpenRouter, Ollama, and OpenAI-compatible local/server endpoints are separate
@@ -235,9 +250,9 @@ identity line in the system prompt reflects it too:
235
250
  OpenRouter on its OpenAI-compatible chat endpoint.
236
251
  - **Local/server** providers call the configured endpoint (`/v1/chat/completions`
237
252
  for LM Studio/llama.cpp/vLLM; the native API for Ollama).
238
- - **External app bridges** for subscription CLIs are disabled by default because
239
- they delegate the turn to another agent app. Opt in with
240
- `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` only when that behavior is intentional.
253
+ - **Subscription CLIs** (Codex, Claude Code, Gemini, Antigravity) are external
254
+ app bridges: selecting one dispatches the turn through the vendor's official
255
+ CLI using your subscription. Log in with `ur auth <provider>`.
241
256
  - **Subscription** access does not list fake models. If no independent
242
257
  subscription backend is configured, `/model` marks it unavailable and asks you
243
258
  to choose a connected local, server, or API provider.
@@ -267,10 +282,12 @@ as first-class subcommands in the shipped CLI.
267
282
  | `ur ci-loop` | Run a build or test command, hand failures to a fix agent, and retry with a bounded budget. |
268
283
  | `ur test-first` | Detect the project stack, run compile/test/lint commands, store failure traces, and install edit-time verify gates. |
269
284
  | `ur safety` | Inspect or initialize project shell safety policy and evaluate command risk before execution. |
285
+ | `ur sandbox` | Inspect and manage the sandbox/permission architecture: status, dependency check, policy init, and command approval levels. |
270
286
  | `ur context-pack` | Write project architecture context, task memory, and compressed context under `.ur/`. Supports memory kinds `decision`, `constraint`, `command`, `diff`, `note`, `architecture`, `preference`, `attempt`, `accepted`, and `rejected`. |
271
287
  | `/hooks` | Inspect lifecycle hooks (`BeforeEdit`, `AfterEdit`, `BeforeCommand`, `AfterCommand`, `BeforeCommit`, `OnFailure`) configured via settings files. |
272
288
  | `ur bg` | Run and manage detached local background agents with optional worktrees and PR creation. |
273
289
  | `ur worktree` | List, inspect, and clean up UR agent worktrees. |
290
+ | `ur task` | Start, run, and hand off worktree-per-task sessions with optional PR creation. |
274
291
  | `ur automation` | Store and run project-local scheduled automation specs under `.ur/automations/`. |
275
292
  | `ur workflow` | Define, validate, graph, run, and resume declarative agent workflows. |
276
293
  | `ur crew` | Run a lead and worker subagent crew over a shared task board; `--decompose` auto-splits tasks with risk/tests/rollback metadata. |
@@ -279,6 +296,7 @@ as first-class subcommands in the shipped CLI.
279
296
  | `ur repo-edit` | Build a repo edit index, plan AST-aware renames, preview patches, and apply with rollback. |
280
297
  | `ur code-index` | Build, query, or watch a local semantic code index using Ollama embeddings; `ur code-index repo` adds files/symbols/calls/tests/docs/configs. |
281
298
  | `ur semantic-memory` | Build and search a project-local memory index. |
299
+ | `ur memory retention` | Configure and apply local memory retention policies (TTL, max entries, decay). |
282
300
  | `ur knowledge` | Manage a curated project knowledge base with provenance. |
283
301
  | `ur artifacts` | Capture diffs, test runs, notes, and review feedback under `.ur/artifacts/`. |
284
302
  | `ur claim-ledger` | Map generated claims to file, web, MCP, tool, or user sources. |
@@ -289,7 +307,10 @@ as first-class subcommands in the shipped CLI.
289
307
  | `ur eval bench` | Import local SWE-bench, Terminal-Bench, or Aider Polyglot exports. |
290
308
  | `ur model-doctor` | Inspect Ollama models and report likely agent capabilities. |
291
309
  | `ur model-route` | Recommend a local model for a task by capability fit. |
310
+ | `ur route` | Classify a task and recommend the best subagent and collaboration pattern. |
311
+ | `ur local-first` | Show readiness for no-cloud, private, lab, offline, and edge/server environments. |
292
312
  | `ur provider` | List, check, and diagnose legal model provider adapters. |
313
+ | `ur connect` | Connect a provider account: subscription login or store an API key in the OS keychain. |
293
314
  | `ur auth chatgpt` | Launch the official Codex CLI login for ChatGPT subscription access. |
294
315
  | `ur auth claude` | Launch the official Claude Code login flow. |
295
316
  | `ur auth gemini` | Use the official Gemini CLI login flow where supported. |
@@ -304,6 +325,15 @@ as first-class subcommands in the shipped CLI.
304
325
  | `ur a2a card` | Print UR-AGENT Card metadata for agent interoperability. |
305
326
  | `ur a2a serve` | Start an opt-in local A2A task server with bearer or delegation auth. |
306
327
  | `ur sdk` | Show programmatic headless usage and scaffold SDK examples. |
328
+ | `ur trigger` | Parse a GitHub/Slack webhook payload and optionally launch a headless UR run. |
329
+ | `ur agent-templates` | List or install reusable project agent templates. |
330
+ | `ur agent-task` | Summarize task state, git diff status, and PR handoff commands. |
331
+ | `ur agent-inspect` | Reconstruct a per-subagent timeline from a session transcript. |
332
+ | `ur agent-features` | Show or initialize agent feature expansion scaffolds. |
333
+ | `ur agent-trends` | Show UR coverage for current agent technology trends. |
334
+ | `ur agents` | List configured agents. |
335
+ | `ur doctor` | Check the health of the UR installation and auto-updater. |
336
+ | `ur update` | Check npm for UR-AGENT updates (`ur upgrade` is an alias). |
307
337
 
308
338
  ### Status Bar
309
339
 
@@ -402,8 +432,8 @@ project-backed features: Agent surfaces (`ur`, `ur agents`, `ur crew`, `ur bg`),
402
432
  Rules (`AGENTS.md`, `UR.md`, `.cursor/rules/*.mdc`, `.cursorrules`, safety and
403
433
  guardrail config), MCP (`ur mcp`, `.mcp.json`, plugin MCP servers), Skills
404
434
  (`/skills`, bundled, project, user, and plugin skills), CLI (`ur --help`, `ur -p`,
405
- `ur exec`, `ur acp`), and Models (`ur model`, `ur model-doctor`, Ollama routing
406
- and discovery).
435
+ `ur exec`, `ur acp`), and Models (`/model`, `ur config set model`,
436
+ `ur model-doctor`, Ollama routing and discovery).
407
437
 
408
438
  Examples:
409
439
 
@@ -523,6 +553,20 @@ the permission boundary matters.
523
553
  See [Configuration](docs/CONFIGURATION.md), [Validation](docs/VALIDATION.md),
524
554
  and [Quality Notes](QUALITY.md) for operational guidance.
525
555
 
556
+ ## Troubleshooting
557
+
558
+ Common problems — `ur` not found after install, a provider that is selected
559
+ but not connected, a model that belongs to another provider, unreachable local
560
+ servers, plugin or editor connection issues — are covered with symptom, cause,
561
+ fix, and a verification command in the
562
+ [Troubleshooting Guide](docs/TROUBLESHOOTING.md). Start with:
563
+
564
+ ```sh
565
+ ur --version
566
+ ur provider status
567
+ ur provider doctor
568
+ ```
569
+
526
570
  ## Development
527
571
 
528
572
  Install dependencies:
@@ -560,24 +604,32 @@ The GitHub workflow runs production bundle, smoke, release, package, and global
560
604
  install checks only after the Bun test step succeeds. Do not publish or tag a
561
605
  release until that GitHub run is green.
562
606
 
607
+ ## Package
608
+
609
+ - npm package: [`ur-agent`](https://www.npmjs.com/package/ur-agent), binary `ur`.
610
+ - The published package ships the bundled CLI (`dist/cli.js`), launcher
611
+ (`bin/ur.js`), documentation (`docs/`, `documentation/`, `examples/`), and
612
+ first-party plugins (`plugins/`, `.ur-plugin` marketplace manifest is part of
613
+ the repository).
614
+ - Releases follow the [Release Runbook](RELEASE.md); every release is recorded
615
+ in [CHANGELOG.md](CHANGELOG.md).
616
+
563
617
  ## Documentation
564
618
 
565
619
  - [Usage Guide](docs/USAGE.md)
566
620
  - [Configuration](docs/CONFIGURATION.md)
567
621
  - [Provider Guide](docs/providers.md)
622
+ - [Troubleshooting](docs/TROUBLESHOOTING.md)
568
623
  - [Agent Feature Expansion](docs/AGENT_FEATURES.md)
569
624
  - [Agent Trend Coverage](docs/AGENT_TRENDS.md)
570
- - [1.22.0 Upgrade Notes](docs/AGENT_UPGRADE_1.22.0.md)
571
- - [1.20.0 Upgrade Notes](docs/AGENT_UPGRADE_1.20.0.md)
572
- - [1.19.0 Upgrade Notes](docs/AGENT_UPGRADE_1.19.0.md)
573
- - [1.18.0 Upgrade Notes](docs/AGENT_UPGRADE_1.18.0.md)
574
- - [1.17.0 Upgrade Notes](docs/AGENT_UPGRADE_1.17.0.md)
625
+ - [Changelog](CHANGELOG.md)
575
626
  - [Development Guide](docs/DEVELOPMENT.md)
576
627
  - [IDE Guide](docs/IDE.md)
577
628
  - [ACP Guide](docs/ACP.md)
578
629
  - [Plugin Guide](docs/plugins.md)
579
630
  - [Validation Runbook](docs/VALIDATION.md)
580
631
  - [Release Runbook](RELEASE.md)
632
+ - [Quality Notes](QUALITY.md)
581
633
  - [Contributing](CONTRIBUTING.md)
582
634
  - [Security](SECURITY.md)
583
635
  - [Static Documentation Site](documentation/index.html)
package/RELEASE.md CHANGED
@@ -36,9 +36,19 @@ set and version:
36
36
 
37
37
  ```bash
38
38
  rg -n "Version [0-9]|expected: [0-9]|UR-AGENT v[0-9]" README.md docs documentation
39
- bun test test/docsCoverage.test.ts
39
+ bun test test/docsCoverage.test.ts test/docsCommands.test.ts
40
40
  ```
41
41
 
42
+ Version bump checklist (all three must move together):
43
+
44
+ 1. `package.json` `version`
45
+ 2. `bunfig.toml` `MACRO.VERSION`
46
+ 3. `documentation/index.html` version eyebrow
47
+ 4. `extensions/vscode-ur-inline-diffs/package.json` `version` (the VSIX test
48
+ requires it to match the root package version)
49
+ 5. Add a `CHANGELOG.md` entry, then run `bun run build` so `dist/cli.js`
50
+ embeds the new version (`bun run release:check` verifies all of this).
51
+
42
52
  If `npm whoami` fails, run:
43
53
 
44
54
  ```bash