ur-agent 1.45.2 → 1.45.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 +32 -0
- package/README.md +10 -7
- package/dist/cli.js +3486 -2122
- package/docs/AGENT_FEATURES.md +20 -2
- package/docs/AGENT_TRENDS.md +3 -3
- package/docs/CONFIGURATION.md +11 -2
- package/docs/DEVELOPMENT.md +11 -0
- package/docs/TROUBLESHOOTING.md +9 -1
- package/docs/USAGE.md +19 -5
- package/docs/VALIDATION.md +27 -6
- package/documentation/app.js +47 -19
- package/documentation/index.html +22 -11
- 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_FEATURES.md
CHANGED
|
@@ -81,6 +81,24 @@ The optional `provider.fallback` value is used only to print an explicit
|
|
|
81
81
|
recovery recommendation in provider diagnostics. It never silently or
|
|
82
82
|
automatically changes the active provider.
|
|
83
83
|
|
|
84
|
+
## v1.45.4 Additions
|
|
85
|
+
|
|
86
|
+
- Fresh workspaces require a provider/model choice before their first
|
|
87
|
+
interactive session and persist the validated pair locally.
|
|
88
|
+
- Fresh headless workspaces fail before model execution unless a model is
|
|
89
|
+
supplied explicitly or by workspace/managed configuration.
|
|
90
|
+
- Resume, initialization-only, and explicit model paths remain uninterrupted;
|
|
91
|
+
AutoApprove behavior is unchanged.
|
|
92
|
+
|
|
93
|
+
## v1.45.3 Additions
|
|
94
|
+
|
|
95
|
+
| Addition | Surface | What it adds |
|
|
96
|
+
| --- | --- | --- |
|
|
97
|
+
| Deterministic slash registry | `src/commands.ts`, `test/commandRegistryIntegrity.test.ts` | Resolves bundled, plugin, project, workflow, and built-in commands by explicit source priority; rejects duplicate canonical tokens, removes only conflicting aliases, validates every lazy loader, and keeps the technical command catalog complete. |
|
|
98
|
+
| Unified sandbox command | `/sandbox [status\|check\|init\|eval\|exclude]` | One interactive slash command now owns both the settings UI and text subcommands; the shell-facing `ur sandbox` implementation is shared rather than separately registered. |
|
|
99
|
+
| Actionable CI cwd handling | `ur ci-loop --cwd <path>` | Reports the absolute execution directory, retains assertion and stack context, and stops "No tests found" after one attempt without wasting a fix-agent run. |
|
|
100
|
+
| Explicit worktree completion | `/debug-v2`, `/refactor`, `/paper-implementation`, `/benchmark`, `/security-review`, `/dockerize`, `/latex-paper`, `/batch` | Keeps changes local, asks before the final full suite, and never commits, pushes, or opens a PR unless separately requested. |
|
|
101
|
+
|
|
84
102
|
## v1.25.x Additions
|
|
85
103
|
|
|
86
104
|
| Addition | Surface | What it adds |
|
|
@@ -273,7 +291,7 @@ runners, so the core logic is deterministic and unit-tested offline.
|
|
|
273
291
|
| Spec-driven development | `ur spec init\|generate\|approve\|run\|status` + `.ur/specs/` | requirements -> design -> tasks documents and a phase/approval record; executes the Spec Kit / Kiro `- [ ] T1: ...` task list one task at a time, checking off each PASS |
|
|
274
292
|
| In-loop model escalation | `ur escalate plan\|run\|oracle\|policy` + `.ur/escalation.json` | capability-aware fast/oracle tiers from `model-doctor`; routine work runs fast and auto-escalates hard/failed work to the strong model; `oracle` is a one-shot second opinion |
|
|
275
293
|
| Best-of-N judging | `ur arena "<task>" [--agents N] [--apply]` | runs N agents on one task in isolated worktrees, scores diffs with the self-review gate + verdict/diff heuristics, surfaces (optionally applies) the winner |
|
|
276
|
-
| Self-healing CI loop | `ur ci-loop [--command ...] [--commit] [--push]` | run -> on failure summarize -> fix agent -> re-run, bounded by retries; commits/pushes are self-review gated; `--from-log` seeds the first failure |
|
|
294
|
+
| Self-healing CI loop | `ur ci-loop [--command ...] [--cwd ...] [--commit] [--push]` | run -> on failure summarize -> fix agent -> re-run, bounded by retries; no-test failures stop immediately with cwd guidance; commits/pushes are self-review gated; `--from-log` seeds the first failure |
|
|
277
295
|
| Verifiable artifacts | `ur artifacts add\|capture-diff\|capture-tests\|approve\|reject` + `.ur/artifacts/` | reviewable deliverables with pending/approved/rejected status and threaded feedback; threads into the provenance stack (`claim-ledger`, `trace`, `evidence`) |
|
|
278
296
|
|
|
279
297
|
### Commands
|
|
@@ -286,7 +304,7 @@ ur escalate plan "debug the race condition in the scheduler"
|
|
|
286
304
|
ur escalate run "refactor the cache layer" --force-oracle
|
|
287
305
|
ur escalate oracle "is this lock-free queue correct?"
|
|
288
306
|
ur arena "implement the rate limiter" --agents 3 --apply
|
|
289
|
-
ur ci-loop --command "bun test" --max-attempts 3
|
|
307
|
+
ur ci-loop --command "bun test" --cwd . --max-attempts 3
|
|
290
308
|
ur artifacts capture-diff
|
|
291
309
|
ur artifacts capture-tests --command "bun test"
|
|
292
310
|
ur artifacts approve 1
|
package/docs/AGENT_TRENDS.md
CHANGED
|
@@ -48,7 +48,7 @@ ur context-pack remember --decision "Use manifest commands first"
|
|
|
48
48
|
ur context-pack compress
|
|
49
49
|
ur acp serve --port 8123
|
|
50
50
|
ur exec "add tests for the parser" --concurrency 4 --json
|
|
51
|
-
ur ci-loop --command "bun test" --dry-run
|
|
51
|
+
ur ci-loop --command "bun test" --cwd . --dry-run
|
|
52
52
|
ur artifacts capture-diff
|
|
53
53
|
ur artifacts capture-tests --command "bun test"
|
|
54
54
|
ur claim-ledger validate
|
|
@@ -87,7 +87,7 @@ Inside an interactive session:
|
|
|
87
87
|
| Spec-driven development | Covered | `ur spec` scaffolds requirements/design/tasks under `.ur/specs/`, tracks phase/approvals, and runs the Spec Kit / Kiro task list one task at a time | Add bidirectional sync with an external `specs/` directory |
|
|
88
88
|
| Capability-aware model escalation | Covered | `ur escalate` selects fast/oracle tiers from `model-doctor`, runs routine work fast, and auto-escalates hard/failed work to the strong local model | Learn per-model success rates to tune the difficulty threshold |
|
|
89
89
|
| Best-of-N agent judging | Covered | `ur arena` runs N agents per task in isolated worktrees and judges diffs with the self-review gate; winner is selectable/appliable | Add an optional model judge alongside the deterministic scorer |
|
|
90
|
-
| Self-healing CI | Covered | `ur ci-loop`
|
|
90
|
+
| Self-healing CI | Covered | `ur ci-loop` reports its resolved cwd, preserves assertion/stack context, stops no-test configuration failures before invoking a fixer, and re-runs real failures with bounded retries; commits/pushes require explicit flags and are self-review gated | Wire to `ur trigger` so a failed CI webhook can explicitly launch the loop |
|
|
91
91
|
| Verifiable artifacts | Covered | `ur artifacts` records plans/diffs/test-runs with approve/reject/feedback under `.ur/artifacts/`; comments steer active background agents through stream-json inbox injection | Attach browser-QA screenshots and link artifacts to claim-ledger entries |
|
|
92
92
|
| Native IDE review | Covered | `ur ide diff` writes `.ur/ide/diffs/` bundles and `extensions/vscode-ur-inline-diffs/` provides a VS Code tree/webview/comment surface | Add JetBrains packaging if demand appears |
|
|
93
93
|
| ACP / IDE agent server | Covered | `ur acp serve|stop|status` exposes an HTTP+JSON-RPC agent server so VS Code/Cursor/Zed extensions can list tools, call tools, and submit tasks | Ship reference editor extensions |
|
|
@@ -105,7 +105,7 @@ ur spec run demo --all --dry-run
|
|
|
105
105
|
ur arena "implement a debounce helper" --agents 2 --dry-run
|
|
106
106
|
ur escalate run "refactor the cache layer" --force-oracle --dry-run
|
|
107
107
|
ur test-first --dry-run
|
|
108
|
-
ur ci-loop --command "bun test" --dry-run
|
|
108
|
+
ur ci-loop --command "bun test" --cwd . --dry-run
|
|
109
109
|
ur artifacts capture-tests --command "bun test"
|
|
110
110
|
```
|
|
111
111
|
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -77,6 +77,15 @@ incompatible saved model instead of silently carrying it across providers. The
|
|
|
77
77
|
saved provider/model pair controls the runtime backend for the next agent
|
|
78
78
|
request; Ollama is only used when `ollama` is the selected provider.
|
|
79
79
|
|
|
80
|
+
The same provider-first picker is mandatory on the first interactive run in a
|
|
81
|
+
workspace with no model in `.ur/settings.json` or `.ur/settings.local.json`.
|
|
82
|
+
The result is validated and written to the gitignored local settings file.
|
|
83
|
+
User-global and built-in model defaults do not silently select a model for a
|
|
84
|
+
new folder. `--model`, `OLLAMA_MODEL`, `UR_MODEL`, agent configuration,
|
|
85
|
+
`--settings`, managed settings, and resumed sessions are deliberate selections
|
|
86
|
+
and therefore do not open the startup picker. Fresh `-p` runs without one of
|
|
87
|
+
those inputs fail with an actionable message before making a model request.
|
|
88
|
+
|
|
80
89
|
Use this to inspect the active runtime path:
|
|
81
90
|
|
|
82
91
|
```sh
|
|
@@ -127,8 +136,8 @@ UR_MODEL=qwen2.5-coder:7b
|
|
|
127
136
|
```
|
|
128
137
|
|
|
129
138
|
`OLLAMA_MODEL` selects the model name and takes precedence over `UR_MODEL` only
|
|
130
|
-
for Ollama runtime sessions. If neither is set
|
|
131
|
-
|
|
139
|
+
for Ollama runtime sessions. If neither is set and the workspace has no saved
|
|
140
|
+
model, interactive startup asks and headless startup requires `--model`.
|
|
132
141
|
|
|
133
142
|
### Discovering LAN Ollama servers
|
|
134
143
|
|
package/docs/DEVELOPMENT.md
CHANGED
|
@@ -56,6 +56,11 @@ context.
|
|
|
56
56
|
|
|
57
57
|
The GitHub install path uses the bundled launcher in `dist/cli.js`, so `bun run bundle` must be run before packaging or pushing a release. `bun run release:check` verifies that `package.json`, `bunfig.toml`, the bundle, docs, and `node ./bin/ur.js --version` agree. The GitHub workflow keeps production bundle, release, package, and global-install checks behind the Bun test step; do not publish, tag, or push release artifacts until that workflow is green.
|
|
58
58
|
|
|
59
|
+
For a patch release, keep the version synchronized in `package.json`,
|
|
60
|
+
`bunfig.toml`, the VS Code extension manifest, the JetBrains Gradle build,
|
|
61
|
+
`documentation/index.html`, `technical/README.md`, and `CHANGELOG.md`. Rebuild
|
|
62
|
+
`dist/cli.js` after changing the version.
|
|
63
|
+
|
|
59
64
|
## Build
|
|
60
65
|
|
|
61
66
|
```sh
|
|
@@ -73,6 +78,7 @@ only the root README. Check:
|
|
|
73
78
|
- `CHANGELOG.md`
|
|
74
79
|
- `docs/`
|
|
75
80
|
- `documentation/`
|
|
81
|
+
- `technical/`
|
|
76
82
|
- `examples/`
|
|
77
83
|
- extension and plugin README files when the feature affects them
|
|
78
84
|
|
|
@@ -80,6 +86,11 @@ For top-level commands, also update the static documentation site command data
|
|
|
80
86
|
in `documentation/app.js` and any relevant tutorial section in
|
|
81
87
|
`documentation/index.html`.
|
|
82
88
|
|
|
89
|
+
For slash-command changes, update `technical/03-slash-commands.md` and run
|
|
90
|
+
`bun test test/commandRegistryIntegrity.test.ts`. That test verifies unique
|
|
91
|
+
canonical names and aliases, non-empty descriptions, loadable implementations,
|
|
92
|
+
and coverage of every visible shipped command in the technical reference.
|
|
93
|
+
|
|
83
94
|
For command surfaces that write `.ur/` state, update configuration and
|
|
84
95
|
validation docs with the generated files and cleanup expectations.
|
|
85
96
|
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -182,10 +182,18 @@ ur sandbox check
|
|
|
182
182
|
gates.
|
|
183
183
|
|
|
184
184
|
```sh
|
|
185
|
-
ur ci-loop --command "bun test" --max-attempts 3
|
|
185
|
+
ur ci-loop --command "bun test" --cwd . --max-attempts 3
|
|
186
186
|
ur test-first detect
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
+
If the runner says "No tests found", check the working directory printed by
|
|
190
|
+
the result and run from the test root or pass it explicitly. This configuration
|
|
191
|
+
failure stops after the first attempt and does not invoke a fix agent:
|
|
192
|
+
|
|
193
|
+
```sh
|
|
194
|
+
ur ci-loop --command "bun test" --cwd ./packages/app --max-attempts 3
|
|
195
|
+
```
|
|
196
|
+
|
|
189
197
|
## Integrations
|
|
190
198
|
|
|
191
199
|
### Plugin fails to load
|
package/docs/USAGE.md
CHANGED
|
@@ -8,6 +8,13 @@ UR is a terminal agent. Running `ur` opens an interactive session in the current
|
|
|
8
8
|
ur
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
On the first interactive run in a folder without a workspace model, UR opens
|
|
12
|
+
the provider-first model picker before the REPL. A validated choice is saved to
|
|
13
|
+
`.ur/settings.local.json` and reused in that workspace. A global user model is
|
|
14
|
+
not silently copied into new folders. Shared `.ur/settings.json`, managed,
|
|
15
|
+
`--settings`, agent, CLI, environment, and resumed-session choices remain
|
|
16
|
+
explicit inputs and skip this one-time picker.
|
|
17
|
+
|
|
11
18
|
Use interactive mode for iterative coding, debugging, research, and repository exploration. The session can read project instructions, use tools, call slash commands, and keep resumable conversation history.
|
|
12
19
|
|
|
13
20
|
Useful options:
|
|
@@ -29,9 +36,13 @@ UR also accepts custom "Other" answers when the dialog includes one.
|
|
|
29
36
|
Print mode is useful for scripts and shell pipelines:
|
|
30
37
|
|
|
31
38
|
```sh
|
|
32
|
-
ur -p "write a changelog entry for the current diff"
|
|
39
|
+
ur -p --model qwen2.5-coder:7b "write a changelog entry for the current diff"
|
|
33
40
|
```
|
|
34
41
|
|
|
42
|
+
In a fresh workspace without a configured model, print mode exits before any
|
|
43
|
+
model request and tells the caller to pass `--model <model>` or run interactive
|
|
44
|
+
setup. This keeps automation deterministic instead of selecting a default.
|
|
45
|
+
|
|
35
46
|
Output formats:
|
|
36
47
|
|
|
37
48
|
```sh
|
|
@@ -57,8 +68,9 @@ in this order:
|
|
|
57
68
|
1. `OLLAMA_MODEL`
|
|
58
69
|
2. `UR_MODEL`
|
|
59
70
|
|
|
60
|
-
If neither variable is set
|
|
61
|
-
|
|
71
|
+
If neither variable is set, a fresh workspace requires an interactive choice.
|
|
72
|
+
After the provider/model pair has been stored locally, that exact pair is used
|
|
73
|
+
for subsequent sessions.
|
|
62
74
|
|
|
63
75
|
You can also choose the model for a single session:
|
|
64
76
|
|
|
@@ -241,7 +253,9 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
241
253
|
- `ur escalate ...` to plan, run, or ask an oracle model for hard tasks
|
|
242
254
|
- `ur arena ...` to run multiple agents on the same task and select a winner
|
|
243
255
|
- `ur test-first ...` to detect compile/test/lint commands, store failure traces, and install after-edit gates
|
|
244
|
-
- `ur ci-loop ...` to run tests
|
|
256
|
+
- `ur ci-loop ...` to run tests in an explicit working directory, repair real
|
|
257
|
+
failures, and rerun with a bounded loop. A "No tests found" result stops
|
|
258
|
+
after one attempt and reports how to correct `--cwd`.
|
|
245
259
|
- `ur artifacts ...` to capture reviewable diffs, test runs, notes, and feedback
|
|
246
260
|
- `ur ide diff ...` to capture editor-readable inline diff bundles
|
|
247
261
|
- `ur acp ...` to start/stop/status the Agent Communication Protocol server for IDE extensions
|
|
@@ -334,7 +348,7 @@ ur context-pack remember --accepted "Use p-map for concurrency" --scope project
|
|
|
334
348
|
ur context-pack compress
|
|
335
349
|
ur acp serve --port 8123
|
|
336
350
|
ur exec "add tests for the parser" --concurrency 4 --json
|
|
337
|
-
ur ci-loop --command "bun test" --dry-run
|
|
351
|
+
ur ci-loop --command "bun test" --cwd . --dry-run
|
|
338
352
|
ur artifacts capture-diff
|
|
339
353
|
ur bg run "fix the flaky parser test" --worktree --dry-run
|
|
340
354
|
ur worktree list
|
package/docs/VALIDATION.md
CHANGED
|
@@ -19,10 +19,28 @@ You need:
|
|
|
19
19
|
|
|
20
20
|
```sh
|
|
21
21
|
ur --version
|
|
22
|
-
# expected
|
|
22
|
+
# expected for this release: "1.45.4 (UR-Nexus)"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
## 0.1
|
|
25
|
+
## 0.1 First-workspace model selection (1.45.4)
|
|
26
|
+
|
|
27
|
+
In a new temporary directory, run `ur`. Expected: before the REPL appears, UR
|
|
28
|
+
opens the provider-first picker. After selecting a connected provider and one
|
|
29
|
+
of its models, `.ur/settings.local.json` contains both `provider.active` and
|
|
30
|
+
the selected model. A second `ur` run in the same directory reuses that local
|
|
31
|
+
pair without showing the startup picker.
|
|
32
|
+
|
|
33
|
+
Before making the interactive choice, the equivalent headless command must
|
|
34
|
+
exit non-zero without contacting a model:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
ur -p "say hi"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Expected: `No model has been selected for this workspace`. Supplying
|
|
41
|
+
`--model <model>`, `OLLAMA_MODEL`, or `UR_MODEL` bypasses the gate for that run.
|
|
42
|
+
|
|
43
|
+
## 0.2 Permission safety and context pack (1.19.0)
|
|
26
44
|
|
|
27
45
|
In a project checkout:
|
|
28
46
|
|
|
@@ -47,7 +65,7 @@ Expected:
|
|
|
47
65
|
- `remember` appends task memory entries under `.ur/context/task-memory.jsonl`.
|
|
48
66
|
- `compress` writes `.ur/context/compressed.md`.
|
|
49
67
|
|
|
50
|
-
## 0.
|
|
68
|
+
## 0.3 Test-first execution loop (1.18.0)
|
|
51
69
|
|
|
52
70
|
In a project checkout:
|
|
53
71
|
|
|
@@ -74,7 +92,7 @@ ur test-first --max-attempts 1
|
|
|
74
92
|
Expected: a non-zero command creates a log under
|
|
75
93
|
`.ur/test-first/traces/`, and the command reports `exhausted`, not `passed`.
|
|
76
94
|
|
|
77
|
-
## 0.
|
|
95
|
+
## 0.4 Reliable repo editing (1.17.0)
|
|
78
96
|
|
|
79
97
|
In a disposable checkout:
|
|
80
98
|
|
|
@@ -92,7 +110,7 @@ Expected:
|
|
|
92
110
|
- If the check command exits non-zero, every touched file is restored and the
|
|
93
111
|
JSON result reports `"rolledBack": true`.
|
|
94
112
|
|
|
95
|
-
## 0.
|
|
113
|
+
## 0.5 Network Ollama discovery (1.16.0)
|
|
96
114
|
|
|
97
115
|
With at least one other Ollama server reachable on your LAN:
|
|
98
116
|
|
|
@@ -287,11 +305,14 @@ ur escalate run "refactor the cache layer" --force-oracle --dry-run
|
|
|
287
305
|
ur test-first --dry-run
|
|
288
306
|
ur safety check --command "rm -rf build"
|
|
289
307
|
ur context-pack scan
|
|
290
|
-
ur ci-loop --command "bun test" --dry-run
|
|
308
|
+
ur ci-loop --command "bun test" --cwd . --dry-run
|
|
291
309
|
ur artifacts capture-tests --command "bun test"
|
|
292
310
|
```
|
|
293
311
|
|
|
294
312
|
Expected: no `unknown option` or `too many arguments` parser errors.
|
|
313
|
+
The CI-loop result should include the resolved working directory. If that
|
|
314
|
+
directory has no matching tests, the run should stop after its first attempt
|
|
315
|
+
with `--cwd` guidance and must not launch a fix agent.
|
|
295
316
|
|
|
296
317
|
## What to do if any step fails
|
|
297
318
|
|
package/documentation/app.js
CHANGED
|
@@ -2,7 +2,7 @@ const featureGroups = [
|
|
|
2
2
|
{
|
|
3
3
|
title: 'Core agent runtime',
|
|
4
4
|
tags: ['interactive', 'headless', 'models'],
|
|
5
|
-
text: 'Interactive terminal sessions, one-shot print mode, JSON and stream-json output, resumable conversations, custom agents, model routing, local runtimes, and legal provider adapters.',
|
|
5
|
+
text: 'Interactive terminal sessions with first-workspace provider/model selection, deterministic one-shot print mode, JSON and stream-json output, resumable conversations, custom agents, model routing, local runtimes, and legal provider adapters.',
|
|
6
6
|
commands: ['ur', 'ur -p', 'ur --resume', 'ur --continue', 'ur --model <model>', 'ur provider'],
|
|
7
7
|
},
|
|
8
8
|
{
|
|
@@ -72,15 +72,15 @@ const commands = [
|
|
|
72
72
|
name: 'ur',
|
|
73
73
|
category: 'Core',
|
|
74
74
|
aliases: [],
|
|
75
|
-
summary: 'Start an interactive
|
|
75
|
+
summary: 'Start an interactive session; a fresh workspace must choose and locally persist a validated provider/model pair first.',
|
|
76
76
|
examples: ['ur', 'ur --model qwen3-coder:480b-cloud', 'ur --continue', 'ur --resume'],
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
name: 'ur -p',
|
|
80
80
|
category: 'Core',
|
|
81
81
|
aliases: ['--print'],
|
|
82
|
-
summary: 'Run one prompt headlessly and exit.
|
|
83
|
-
examples: ['ur -p "Summarize this repository"', 'ur -p --output-format json "Review the current diff"', 'ur -p --json-schema \'{"type":"object"}\' "Return structured output"'],
|
|
82
|
+
summary: 'Run one prompt headlessly and exit. Fresh workspaces require an explicit or workspace-configured model instead of loading a default.',
|
|
83
|
+
examples: ['ur -p --model qwen3-coder:480b-cloud "Summarize this repository"', 'ur -p --model qwen3-coder:480b-cloud --output-format json "Review the current diff"', 'ur -p --model qwen3-coder:480b-cloud --json-schema \'{"type":"object"}\' "Return structured output"'],
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
name: 'acp',
|
|
@@ -191,8 +191,8 @@ const commands = [
|
|
|
191
191
|
name: 'ci-loop',
|
|
192
192
|
category: 'Automation',
|
|
193
193
|
aliases: ['heal'],
|
|
194
|
-
summary: 'Run a build or test command
|
|
195
|
-
examples: ['ur ci-loop --command "bun test" --dry-run', 'ur ci-loop --command "bun test" --max-attempts 3', 'ur ci-loop --from-log failure.log --dry-run', 'ur ci-loop --command "bun test" --
|
|
194
|
+
summary: 'Run a build or test command in an explicit working directory, preserve useful failure context, and rerun real failures with a bounded fix budget. No-test configuration failures stop immediately.',
|
|
195
|
+
examples: ['ur ci-loop --command "bun test" --cwd . --dry-run', 'ur ci-loop --command "bun test" --cwd ./packages/app --max-attempts 3', 'ur ci-loop --from-log failure.log --cwd . --dry-run', 'ur ci-loop --command "bun test" --cwd . --json'],
|
|
196
196
|
},
|
|
197
197
|
{
|
|
198
198
|
name: 'context-pack',
|
|
@@ -264,13 +264,6 @@ const commands = [
|
|
|
264
264
|
summary: 'Track persistent long-horizon objectives with notes, linked workflows, and resumable execution.',
|
|
265
265
|
examples: ['ur goal add release-docs --objective "Ship professional docs" --workflow docs', 'ur goal note release-docs --note "Command reference drafted"', 'ur goal resume release-docs --dry-run', 'ur goal done release-docs'],
|
|
266
266
|
},
|
|
267
|
-
{
|
|
268
|
-
name: 'update',
|
|
269
|
-
category: 'Ops',
|
|
270
|
-
aliases: ['upgrade'],
|
|
271
|
-
summary: 'Check npm for UR-Nexus updates.',
|
|
272
|
-
examples: ['ur update', 'ur upgrade'],
|
|
273
|
-
},
|
|
274
267
|
{
|
|
275
268
|
name: 'connect',
|
|
276
269
|
category: 'Providers',
|
|
@@ -432,6 +425,41 @@ const commands = [
|
|
|
432
425
|
summary: 'Parse GitHub, Slack, or generic webhook payloads and optionally launch a headless UR run.',
|
|
433
426
|
examples: ['ur trigger parse --file payload.json --source github', 'ur trigger run --file payload.json --keyword /ur --dry-run', 'ur trigger run --file slack.json --max-turns 8'],
|
|
434
427
|
},
|
|
428
|
+
{
|
|
429
|
+
name: 'audit',
|
|
430
|
+
category: 'Verification',
|
|
431
|
+
aliases: [],
|
|
432
|
+
summary: 'Export the hash-chained project audit trail or verify it for tampering.',
|
|
433
|
+
examples: ['ur audit export --format jsonl', 'ur audit export --format csv --out audit.csv', 'ur audit verify'],
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
name: 'cloud',
|
|
437
|
+
category: 'Agent Platform',
|
|
438
|
+
aliases: [],
|
|
439
|
+
summary: 'Run detached best-of-N tasks, inspect their results, and explicitly apply a selected winner.',
|
|
440
|
+
examples: ['ur cloud run "speed up parser" --attempts 3', 'ur cloud list', 'ur cloud show <id>', 'ur cloud apply <id>'],
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
name: 'recipe',
|
|
444
|
+
category: 'Automation',
|
|
445
|
+
aliases: ['recipes'],
|
|
446
|
+
summary: 'Create and run structured-output playbooks whose child result must satisfy the recipe schema.',
|
|
447
|
+
examples: ['ur recipe init triage', 'ur recipe list', 'ur recipe run triage "login returns 500"'],
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
name: 'thread',
|
|
451
|
+
category: 'Sessions',
|
|
452
|
+
aliases: ['threads'],
|
|
453
|
+
summary: 'Share a session transcript through the local artifacts server or list shared threads.',
|
|
454
|
+
examples: ['ur thread share', 'ur thread list', 'ur thread share <session-id>'],
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
name: 'wiki',
|
|
458
|
+
category: 'Knowledge',
|
|
459
|
+
aliases: ['repo-wiki'],
|
|
460
|
+
summary: 'Generate a living repository wiki and map, inspect status, or install its maintenance hook.',
|
|
461
|
+
examples: ['ur wiki generate', 'ur wiki map', 'ur wiki status', 'ur wiki install-hook'],
|
|
462
|
+
},
|
|
435
463
|
{
|
|
436
464
|
name: 'update',
|
|
437
465
|
category: 'Ops',
|
|
@@ -472,7 +500,7 @@ const slashGroups = [
|
|
|
472
500
|
{
|
|
473
501
|
title: 'Agent skills',
|
|
474
502
|
items: ['/debug-v2', '/refactor', '/paper-implementation', '/benchmark', '/security-review', '/dockerize', '/latex-paper', '/simplify', '/debug'],
|
|
475
|
-
text: 'Bundled slash skills that dispatch focused
|
|
503
|
+
text: 'Bundled slash skills that dispatch focused work in isolated git worktrees, keep changes local, ask before the final full suite, and publish only after a separate explicit request.',
|
|
476
504
|
},
|
|
477
505
|
{
|
|
478
506
|
title: 'Memory and evidence',
|
|
@@ -486,8 +514,8 @@ const slashGroups = [
|
|
|
486
514
|
},
|
|
487
515
|
{
|
|
488
516
|
title: 'Models, tools, and interop',
|
|
489
|
-
items: ['/model', '/model-doctor', '/model-route', '/escalate', '/mcp', '/plugin', '/skills', '/sdk', '/a2a-card'],
|
|
490
|
-
text: 'Pick models, inspect capabilities,
|
|
517
|
+
items: ['/model', '/model-doctor', '/model-route', '/escalate', '/mcp', '/plugin', '/skills', '/skill', '/sdk', '/a2a-card'],
|
|
518
|
+
text: 'Pick models, inspect capabilities, manage MCP/plugin extensions, browse prompt skills with /skills, run executable workflows with /skill, and expose interop surfaces.',
|
|
491
519
|
},
|
|
492
520
|
{
|
|
493
521
|
title: 'Security operations',
|
|
@@ -502,7 +530,7 @@ const slashGroups = [
|
|
|
502
530
|
{
|
|
503
531
|
title: 'Preferences and environment',
|
|
504
532
|
items: ['/config', '/permissions', '/sandbox', '/mode', '/theme', '/vim', '/terminal-setup', '/usage', '/ide'],
|
|
505
|
-
text: 'Configure permissions
|
|
533
|
+
text: 'Configure permissions and UI preferences; /sandbox combines its interactive settings with status, check, init, eval, and exclude operations.',
|
|
506
534
|
},
|
|
507
535
|
];
|
|
508
536
|
|
|
@@ -662,8 +690,8 @@ const examples = [
|
|
|
662
690
|
},
|
|
663
691
|
{
|
|
664
692
|
title: 'Self-healing CI',
|
|
665
|
-
text: 'Run
|
|
666
|
-
code: 'ur ci-loop --command "bun test" --dry-run\nur ci-loop --command "bun test" --max-attempts 3',
|
|
693
|
+
text: 'Run in an explicit cwd, preserve useful assertion and stack context, and attempt a bounded fix loop only for actionable failures.',
|
|
694
|
+
code: 'ur ci-loop --command "bun test" --cwd . --dry-run\nur ci-loop --command "bun test" --cwd ./packages/app --max-attempts 3',
|
|
667
695
|
},
|
|
668
696
|
{
|
|
669
697
|
title: 'Test-first command evidence',
|
package/documentation/index.html
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
<main id="content" class="content">
|
|
45
45
|
<header class="topbar">
|
|
46
46
|
<div>
|
|
47
|
-
<p class="eyebrow">Version 1.45.
|
|
47
|
+
<p class="eyebrow">Version 1.45.4</p>
|
|
48
48
|
<h1>UR-Nexus Documentation</h1>
|
|
49
49
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
|
|
50
50
|
</div>
|
|
@@ -89,6 +89,10 @@
|
|
|
89
89
|
<strong>Test-first execution</strong>
|
|
90
90
|
<span><code>ur test-first</code> detects compile/test/lint commands, stores failure traces, and installs edit-time verifier gates.</span>
|
|
91
91
|
</article>
|
|
92
|
+
<article>
|
|
93
|
+
<strong>Deterministic commands</strong>
|
|
94
|
+
<span>The external runtime exposes 150 commands and 217 unique slash tokens; registry tests reject ambiguous names, broken loaders, and undocumented visible commands.</span>
|
|
95
|
+
</article>
|
|
92
96
|
<article>
|
|
93
97
|
<strong>Safety and context</strong>
|
|
94
98
|
<span><code>ur safety</code> evaluates command risk. <code>ur context-pack</code> writes architecture context and task memory.</span>
|
|
@@ -122,13 +126,13 @@ ur --model qwen3-coder:480b-cloud</code></pre>
|
|
|
122
126
|
<article class="step">
|
|
123
127
|
<span>3</span>
|
|
124
128
|
<h3>Run once in scripts</h3>
|
|
125
|
-
<pre><code>ur -p "Summarize this repository"
|
|
126
|
-
ur -p --output-format json "Review the current diff"</code></pre>
|
|
129
|
+
<pre><code>ur -p --model qwen3-coder:480b-cloud "Summarize this repository"
|
|
130
|
+
ur -p --model qwen3-coder:480b-cloud --output-format json "Review the current diff"</code></pre>
|
|
127
131
|
</article>
|
|
128
132
|
</div>
|
|
129
133
|
<div class="callout">
|
|
130
134
|
<strong>Runtime requirement</strong>
|
|
131
|
-
<p>UR expects Bun.
|
|
135
|
+
<p>UR expects Bun. On the first interactive run in a workspace, choose a provider and model; UR validates and saves the pair locally before starting the session. Fresh print-mode workspaces require <code>--model</code> or another explicit model source.</p>
|
|
132
136
|
</div>
|
|
133
137
|
</section>
|
|
134
138
|
|
|
@@ -159,7 +163,7 @@ ur config set provider.fallback ollama</code></pre>
|
|
|
159
163
|
</article>
|
|
160
164
|
<article>
|
|
161
165
|
<h3>Status bar and updates</h3>
|
|
162
|
-
<pre><code>Ollama | llama3 | ask | main | update 1.
|
|
166
|
+
<pre><code>Ollama | llama3 | ask | main | update 1.45.4 available</code></pre>
|
|
163
167
|
<p>The interactive status bar shows only important runtime state: provider, model, mode, branch, active tasks, checks status when known, and update availability. It is hidden in CI, dumb terminals, and print mode.</p>
|
|
164
168
|
</article>
|
|
165
169
|
</div>
|
|
@@ -396,13 +400,14 @@ ur arena "fix the parser" --agents 3 --apply</code></pre>
|
|
|
396
400
|
<article>
|
|
397
401
|
<h3>Repair failing CI in a bounded loop</h3>
|
|
398
402
|
<ol>
|
|
399
|
-
<li>Run the build or test command.</li>
|
|
400
|
-
<li>
|
|
403
|
+
<li>Run the build or test command in the printed working directory.</li>
|
|
404
|
+
<li>Preserve the assertion and stack context, then launch a fix attempt only for an actionable failure.</li>
|
|
401
405
|
<li>Rerun until the command passes or the retry budget is exhausted.</li>
|
|
402
406
|
</ol>
|
|
403
|
-
<
|
|
404
|
-
ur ci-loop --command "bun test" --
|
|
405
|
-
ur ci-loop --
|
|
407
|
+
<p>A <code>No tests found</code> result stops after the first attempt and points to <code>--cwd</code>; it does not invoke a fix agent.</p>
|
|
408
|
+
<pre><code>ur ci-loop --command "bun test" --cwd . --dry-run
|
|
409
|
+
ur ci-loop --command "bun test" --cwd ./packages/app --max-attempts 3
|
|
410
|
+
ur ci-loop --from-log failure.log --cwd . --dry-run</code></pre>
|
|
406
411
|
</article>
|
|
407
412
|
|
|
408
413
|
<article>
|
|
@@ -453,7 +458,7 @@ ur artifacts approve 1</code></pre>
|
|
|
453
458
|
<pre><code>OLLAMA_MODEL=qwen3-coder:480b-cloud ur
|
|
454
459
|
UR_MODEL=qwen3-coder:480b-cloud ur
|
|
455
460
|
ur --model qwen2.5-coder:latest</code></pre>
|
|
456
|
-
<p><code>OLLAMA_MODEL</code> wins over <code>UR_MODEL</code>. Without
|
|
461
|
+
<p><code>OLLAMA_MODEL</code> wins over <code>UR_MODEL</code>. Without an explicit or workspace model, interactive startup opens the provider/model picker and fresh print mode exits before model execution.</p>
|
|
457
462
|
</article>
|
|
458
463
|
<article>
|
|
459
464
|
<h3>Permissions</h3>
|
|
@@ -554,6 +559,12 @@ ur agent-inspect --file session.jsonl
|
|
|
554
559
|
ur artifacts list
|
|
555
560
|
ur eval report starter
|
|
556
561
|
ur claim-ledger validate</code></pre>
|
|
562
|
+
</article>
|
|
563
|
+
<article>
|
|
564
|
+
<h3>CI loop reports no tests</h3>
|
|
565
|
+
<p>Use the working directory printed in the result. The loop stops after one attempt because changing code cannot repair a test-discovery cwd error.</p>
|
|
566
|
+
<pre><code>ur ci-loop --command "bun test" --cwd . --max-attempts 3
|
|
567
|
+
ur ci-loop --command "bun test" --cwd ./packages/app --max-attempts 3</code></pre>
|
|
557
568
|
</article>
|
|
558
569
|
<article>
|
|
559
570
|
<h3>New agent-platform command is missing</h3>
|
|
@@ -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.45.
|
|
5
|
+
"version": "1.45.4",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED