ur-agent 1.22.1 → 1.22.3
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 +56 -0
- package/QUALITY.md +1 -0
- package/README.md +39 -8
- package/dist/cli.js +6071 -4059
- package/docs/AGENT_FEATURES.md +40 -0
- package/docs/AGENT_UPGRADE_1.18.0.md +4 -2
- package/docs/CONFIGURATION.md +3 -2
- package/docs/DEVELOPMENT.md +1 -0
- package/docs/USAGE.md +55 -1
- package/documentation/index.html +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +2 -1
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -4,6 +4,11 @@ This page tracks the agent-platform additions that were prioritized after
|
|
|
4
4
|
comparing UR with current Codex, Claude Code, Copilot, and Jules-style agent
|
|
5
5
|
workflows.
|
|
6
6
|
|
|
7
|
+
UR's intended advantage is not being another generic coding agent. It is a
|
|
8
|
+
reproducible autonomous software engineering agent: every substantial task can
|
|
9
|
+
be driven as `spec -> plan -> patch -> test -> report -> rollback`, with the
|
|
10
|
+
spec as the durable source of truth and command evidence as the success gate.
|
|
11
|
+
|
|
7
12
|
## Commands
|
|
8
13
|
|
|
9
14
|
```sh
|
|
@@ -59,6 +64,20 @@ ur spec run auth-refactor --all
|
|
|
59
64
|
ur spec verify auth-refactor
|
|
60
65
|
```
|
|
61
66
|
|
|
67
|
+
## v1.22.3 Additions
|
|
68
|
+
|
|
69
|
+
| Addition | Surface | What it adds |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| Executable skill directories | `ur skill list\|show\|run\|init`, `src/skills/skillSpec.ts` | A `.ur/skills/<name>/` directory with `skill.yaml` compiles into a `WorkflowSpec`. Supports `instructions.md`, `scripts/`, `templates/`, and `checklists/`. Step prompts support `$ARGUMENTS`, `$0..$N`, and `$ARGUMENTS[N]`. |
|
|
72
|
+
| Semantic repo index | `ur code-index repo build\|status\|search\|symbols\|callers\|tests\|docs\|configs`, `src/utils/codeIndex/repoIndex.ts` | Offline, dependency-free indexes under `.ur/code-index/`: `repo.json`, `symbols.json`, `calls.json`, `tests.json`, `docs.json`, `configs.json`. Classifies files, extracts symbols, records intra-file calls, maps tests, and indexes doc refs and config keys. |
|
|
73
|
+
|
|
74
|
+
## v1.22.2 Additions
|
|
75
|
+
|
|
76
|
+
| Addition | Surface | What it adds |
|
|
77
|
+
| --- | --- | --- |
|
|
78
|
+
| Lifecycle hooks | `.ur/hooks.json`, `UR.md` frontmatter, `src/utils/hooks.ts` | New hook events `BeforeEdit`, `AfterEdit`, `BeforeCommand`, `AfterCommand`, `BeforeCommit`, and `OnFailure`. Fire around file edits, shell commands, git commits, and failures. Advisory by default; can block actions or write project memory. |
|
|
79
|
+
| Persistent project memory | `ur context-pack remember`, `src/services/context/projectContextManifest.ts` | New memory kinds `architecture`, `preference`, `attempt`, `accepted`, and `rejected` with status, rationale, scope, and source metadata. Stored in `.ur/context/task-memory.jsonl` and surfaced in the compressed context summary. |
|
|
80
|
+
|
|
62
81
|
## v1.22.0 Additions
|
|
63
82
|
|
|
64
83
|
| Addition | Surface | What it adds |
|
|
@@ -71,6 +90,13 @@ ur spec verify auth-refactor
|
|
|
71
90
|
| Rich task decomposition | `ur crew create|run|plan ... --decompose`, `src/services/agents/decomposer.ts` | Splits large goals into atomic subtasks with goal, files touched, risk level (low/medium/high), tests required, and rollback point. Deterministic fallback + optional LLM-driven JSON decomposition. |
|
|
72
91
|
| Parallel specialized subagents | `ur pattern parallel "<task>" --execute`, `src/services/agents/patterns.ts` | Bug finder, patch writer, test writer, security auditor, and style reviewer run in parallel via the workflow executor, then a synthesizer merges results into one plan. |
|
|
73
92
|
|
|
93
|
+
The spec-first path is the default reliability story: `ur spec init` turns a
|
|
94
|
+
request into requirements/design/tasks, `ur spec run --all` applies atomic
|
|
95
|
+
tasks, and `ur spec verify` requires compile proof, test proof, lint proof,
|
|
96
|
+
diff proof, and runtime proof. The AgentKernel keeps planner, executor,
|
|
97
|
+
verifier, critic, memory manager, tool router, and permission guard as separate
|
|
98
|
+
components instead of one giant prompt.
|
|
99
|
+
|
|
74
100
|
## v1.21.0 Additions
|
|
75
101
|
|
|
76
102
|
| Addition | Surface | What it adds |
|
|
@@ -93,6 +119,20 @@ ur spec verify auth-refactor
|
|
|
93
119
|
| Test-runner tool | `TestRunner` | Auto-detect and run project tests. |
|
|
94
120
|
| Database tool | `Database` | SQL queries against SQLite, Postgres, MySQL, and DuckDB. |
|
|
95
121
|
|
|
122
|
+
## Core Agent Primitives
|
|
123
|
+
|
|
124
|
+
UR documents the same core primitives that Cursor-style agent products expose,
|
|
125
|
+
while keeping them project-local and manifest-backed:
|
|
126
|
+
|
|
127
|
+
| Primitive | UR surface | Project-backed source |
|
|
128
|
+
| --- | --- | --- |
|
|
129
|
+
| Agent | `ur`, `ur agents`, `ur crew`, `ur bg`, `ur agent-templates` | `.ur/agents/`, `AGENTS.md`, `UR.md` |
|
|
130
|
+
| Rules | `ur context-pack scan`, `ur safety`, `ur guardrails`, `ur hooks` | `AGENTS.md`, `UR.md`, `.cursor/rules/*.mdc`, `.cursorrules`, `.ur/safety-policy.json`, `.ur/guardrails.json`, `.ur/hooks.json` |
|
|
131
|
+
| MCP | `ur mcp`, built-in MCP server mode, MCP tools/resources | `.mcp.json`, `.ur/mcp/`, plugin manifests |
|
|
132
|
+
| Skills | `/skills`, `/create-skill`, bundled skills, plugin skills | `.ur/skills/`, user skills, plugin skill folders |
|
|
133
|
+
| CLI | `ur --help`, `ur -p`, `ur exec`, `ur acp`, workflow subcommands | `package.json` scripts, `.ur/project-manifest.json`, `.ur/verify.json` |
|
|
134
|
+
| Models | `ur model`, `ur model-doctor`, model router, Ollama discovery | Ollama endpoint, settings, `OLLAMA_MODEL`, model metadata cache |
|
|
135
|
+
|
|
96
136
|
## v1.19.0 Additions
|
|
97
137
|
|
|
98
138
|
| Addition | Surface | What it adds |
|
|
@@ -34,10 +34,12 @@ ur tf-loop detect
|
|
|
34
34
|
|
|
35
35
|
```sh
|
|
36
36
|
bun run typecheck
|
|
37
|
+
bun run lint
|
|
37
38
|
bun test test/testFirstLoop.test.ts
|
|
38
39
|
node ./bin/ur.js test-first --help
|
|
39
40
|
node ./bin/ur.js test-first detect
|
|
40
41
|
```
|
|
41
42
|
|
|
42
|
-
If
|
|
43
|
-
instead of inventing a command.
|
|
43
|
+
If an external project has no lint script, `test-first` reports lint as a
|
|
44
|
+
missing phase instead of inventing a command. UR itself now exposes
|
|
45
|
+
`bun run lint`, so local quality detection includes compile, test, and lint.
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -178,8 +178,9 @@ ur context-pack compress
|
|
|
178
178
|
Generated files:
|
|
179
179
|
|
|
180
180
|
- `.ur/project-manifest.json` — architecture manifest from Project DNA,
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
package scripts, instruction files, Cursor-style rules, `.ur/verify.json`,
|
|
182
|
+
`.ur/safety-policy.json`, MCP config, editor settings, workflow files, and
|
|
183
|
+
other manifests.
|
|
183
184
|
- `.ur/context/architecture.md` — human-readable architecture summary.
|
|
184
185
|
- `.ur/context/task-memory.jsonl` — decisions, constraints, commands, diffs,
|
|
185
186
|
and notes.
|
package/docs/DEVELOPMENT.md
CHANGED
package/docs/USAGE.md
CHANGED
|
@@ -100,6 +100,53 @@ ur context-pack remember --decision "Use package scripts before ad hoc commands"
|
|
|
100
100
|
ur context-pack compress
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
+
## Project memory
|
|
104
|
+
|
|
105
|
+
`ur context-pack remember` stores durable project memory in `.ur/context/task-memory.jsonl`. Use it to record decisions, constraints, preferred commands, failed attempts, accepted patterns, rejected approaches, and architecture notes. The compressed summary in `.ur/context/compressed.md` is included in agent context.
|
|
106
|
+
|
|
107
|
+
Memory kinds:
|
|
108
|
+
|
|
109
|
+
- `decision`, `constraint`, `command`, `diff`, `note` — original task memory categories.
|
|
110
|
+
- `architecture` — architecture decisions and design rationale.
|
|
111
|
+
- `preference` — preferred commands, tools, or workflows.
|
|
112
|
+
- `attempt` — things you tried that did not work out (often written by `OnFailure` hooks).
|
|
113
|
+
- `accepted` — patterns or approaches that worked and should be reused.
|
|
114
|
+
- `rejected` — approaches that should not be repeated, optionally with an `alternative-to`.
|
|
115
|
+
|
|
116
|
+
```sh
|
|
117
|
+
ur context-pack remember --architecture "Repository pattern for data access" --status accepted --rationale "Testability"
|
|
118
|
+
ur context-pack remember --preference "Use bun test over jest"
|
|
119
|
+
ur context-pack remember --accepted "Use p-map for bounded concurrency" --scope project
|
|
120
|
+
ur context-pack remember --rejected "Switch to esbuild" --alternative-to "Keep bun bundle"
|
|
121
|
+
ur context-pack remember --attempt "Tried Deno runtime" --status superseded
|
|
122
|
+
ur context-pack compress
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Lifecycle hooks
|
|
126
|
+
|
|
127
|
+
UR supports lifecycle hook events that fire around agent actions. Hooks are configured in `.ur/hooks.json` or `UR.md` frontmatter and receive JSON payloads.
|
|
128
|
+
|
|
129
|
+
| Event | Fires | Payload |
|
|
130
|
+
| --- | --- | --- |
|
|
131
|
+
| `BeforeEdit` | Before `FileEditTool` writes a file. | `file_path`, `old_string`, `new_string`, `replace_all`, `tool_use_id` |
|
|
132
|
+
| `AfterEdit` | After a file edit succeeds. | Same as `BeforeEdit` plus `success: true`. Can write project memory. |
|
|
133
|
+
| `BeforeCommand` | Before a Bash/PowerShell command runs. | `command`, `shell_type`, `cwd`, `timeout_ms`, `sandbox`, `tool_use_id` |
|
|
134
|
+
| `AfterCommand` | After a command finishes. | `command`, `exit_code`, `stdout`, `stderr`, `tool_use_id` |
|
|
135
|
+
| `BeforeCommit` | After a successful `git commit` command. | `command`, `message`, `files`, `tool_use_id` |
|
|
136
|
+
| `OnFailure` | When a tool, turn, or API call fails. | `error`, `stage`, `tool_name`, `tool_use_id` |
|
|
137
|
+
|
|
138
|
+
Example `UR.md` frontmatter hook:
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
---
|
|
142
|
+
hooks:
|
|
143
|
+
- event: BeforeCommit
|
|
144
|
+
command: 'echo "Commit detected: $UR_CODE_HOOK_INPUT" >> /tmp/ur-commits.log'
|
|
145
|
+
---
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Hooks are advisory by default. A `BeforeEdit`/`BeforeCommand`/`BeforeCommit` hook can block the action by returning `{"decision":"block","reason":"..."}` or exit code 2. `AfterEdit` and `OnFailure` hooks can return `{"hookSpecificOutput":{"hookEventName":"...","memory":{"kind":"accepted","text":"..."}}}` to append project memory automatically.
|
|
149
|
+
|
|
103
150
|
## Commands
|
|
104
151
|
|
|
105
152
|
UR includes slash commands and CLI subcommands for common workflows:
|
|
@@ -113,8 +160,10 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
113
160
|
- `ur bg ...` to run detached local background agents with optional worktrees and PRs
|
|
114
161
|
- `ur repo-edit ...` to index the repo, plan AST-aware renames, preview patches, and apply with rollback
|
|
115
162
|
- `ur safety ...` to inspect project shell safety policy and preview command risk
|
|
116
|
-
- `ur context-pack ...` to summarize architecture and persist
|
|
163
|
+
- `ur context-pack ...` to summarize architecture and persist project memory (decisions, constraints, commands, diffs, architecture, preferences, attempts, accepted, rejected)
|
|
117
164
|
- `ur code-index watch` to keep the local semantic code index fresh
|
|
165
|
+
- `ur code-index repo build` to build a richer semantic repo index (files, symbols, calls, tests, docs, configs)
|
|
166
|
+
- `ur skill init ...` and `ur skill run ...` for executable skill workflows
|
|
118
167
|
- `ur memory retention ...` to prune project-local memory by TTL, max entries, and decay
|
|
119
168
|
- `ur spec ...` to scaffold requirements, design, and tasks, run a spec task list, and verify with strict proof gates
|
|
120
169
|
- `ur escalate ...` to plan, run, or ask an oracle model for hard tasks
|
|
@@ -150,11 +199,16 @@ ur arena "implement a debounce helper" --agents 2 --dry-run
|
|
|
150
199
|
ur escalate run "refactor the cache layer" --force-oracle --dry-run
|
|
151
200
|
ur test-first detect
|
|
152
201
|
ur test-first --dry-run
|
|
202
|
+
ur skill init security-review
|
|
203
|
+
ur skill run security-review "src/auth.ts"
|
|
204
|
+
ur code-index repo build
|
|
205
|
+
ur code-index repo search "rate limiter"
|
|
153
206
|
ur test-first install
|
|
154
207
|
ur safety status
|
|
155
208
|
ur safety check --command "rm -rf build"
|
|
156
209
|
ur context-pack scan
|
|
157
210
|
ur context-pack remember --constraint "Run command evidence before claiming success"
|
|
211
|
+
ur context-pack remember --accepted "Use p-map for concurrency" --scope project
|
|
158
212
|
ur context-pack compress
|
|
159
213
|
ur acp serve --port 8123
|
|
160
214
|
ur exec "add tests for the parser" --concurrency 4 --json
|
package/documentation/index.html
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<main id="content" class="content">
|
|
44
44
|
<header class="topbar">
|
|
45
45
|
<div>
|
|
46
|
-
<p class="eyebrow">Version 1.22.
|
|
46
|
+
<p class="eyebrow">Version 1.22.3</p>
|
|
47
47
|
<h1>UR Agent Documentation</h1>
|
|
48
48
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR Agent.</p>
|
|
49
49
|
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ur-agent",
|
|
3
|
-
"version": "1.22.
|
|
3
|
+
"version": "1.22.3",
|
|
4
4
|
"description": "UR terminal coding agent CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1.3.14",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"bundle": "node scripts/bundle.mjs",
|
|
42
42
|
"release:check": "node scripts/release-check.mjs",
|
|
43
43
|
"typecheck": "bun run tsc --noEmit",
|
|
44
|
+
"lint": "node scripts/lint.mjs",
|
|
44
45
|
"test": "bun test",
|
|
45
46
|
"smoke": "node ./bin/ur.js --version",
|
|
46
47
|
"secrets:scan": "bash scripts/secret-scan.sh",
|