ur-agent 1.24.0 → 1.25.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 +9 -3
- package/CONTRIBUTING.md +21 -0
- package/LICENSE +1 -1
- package/README.md +100 -14
- package/RELEASE.md +54 -0
- package/SECURITY.md +22 -0
- package/bin/ur.js +5 -5
- package/dist/cli.js +1772 -1071
- package/docs/AGENT_FEATURES.md +2 -2
- package/docs/AGENT_UPGRADE_1.15.0.md +1 -1
- package/docs/AGENT_UPGRADE_1.16.0.md +1 -1
- package/docs/AGENT_UPGRADE_1.17.0.md +1 -1
- package/docs/AGENT_UPGRADE_1.18.0.md +1 -1
- package/docs/AGENT_UPGRADE_1.19.0.md +1 -1
- package/docs/AGENT_UPGRADE_1.20.0.md +1 -1
- package/docs/AGENT_UPGRADE_1.21.0.md +1 -1
- package/docs/AGENT_UPGRADE_1.22.0.md +1 -1
- package/docs/CODE_FEATURE_INVENTORY.md +5 -4
- package/docs/CONFIGURATION.md +38 -2
- package/docs/DEVELOPMENT.md +6 -3
- package/docs/USAGE.md +41 -2
- package/docs/VALIDATION.md +4 -4
- package/docs/plugins.md +52 -0
- package/docs/providers.md +104 -0
- package/documentation/README.md +2 -2
- package/documentation/app.js +2 -2
- package/documentation/assets/ur-architecture.svg +1 -1
- package/documentation/index.html +6 -6
- package/package.json +11 -7
- package/plugins/bunBundleDev.ts +32 -0
- package/plugins/community/.gitkeep +1 -0
- package/{marketplace-plugins → plugins/core}/README.md +3 -3
- package/plugins/core/code-review/.ur-plugin/plugin.json +13 -0
- package/{marketplace-plugins → plugins/core}/engineering-discipline/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/evaluate-response/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/explain-error/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/git-summary/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/github/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/gitlab/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/hello/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/hello/README.md +4 -4
- package/{marketplace-plugins → plugins/core}/huggingface/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/miro/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/obsidian/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/powerpoint/.ur-plugin/plugin.json +4 -4
- package/plugins/core/release-notes/.ur-plugin/plugin.json +13 -0
- package/{marketplace-plugins → plugins/core}/skill-forge/.ur-plugin/plugin.json +4 -4
- package/{marketplace-plugins → plugins/core}/word/.ur-plugin/plugin.json +4 -4
- package/plugins/examples/README.md +12 -0
- package/plugins/examples/command-template/.ur-plugin/plugin.json +12 -0
- package/plugins/examples/command-template/README.md +9 -0
- package/plugins/examples/command-template/commands/example.md +7 -0
- package/marketplace-plugins/code-review/.ur-plugin/plugin.json +0 -13
- package/marketplace-plugins/release-notes/.ur-plugin/plugin.json +0 -13
- /package/{marketplace-plugins → plugins/core}/code-review/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/code-review/commands/code-review.md +0 -0
- /package/{marketplace-plugins → plugins/core}/engineering-discipline/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/engineering-discipline/commands/discipline-check.md +0 -0
- /package/{marketplace-plugins → plugins/core}/engineering-discipline/skills/reproducible-release/SKILL.md +0 -0
- /package/{marketplace-plugins → plugins/core}/engineering-discipline/templates/release-verifier.md +0 -0
- /package/{marketplace-plugins → plugins/core}/engineering-discipline/validators/release-gate.json +0 -0
- /package/{marketplace-plugins → plugins/core}/evaluate-response/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/evaluate-response/commands/evaluate-response.md +0 -0
- /package/{marketplace-plugins → plugins/core}/explain-error/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/explain-error/commands/explain-error.md +0 -0
- /package/{marketplace-plugins → plugins/core}/git-summary/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/git-summary/commands/git-summary.md +0 -0
- /package/{marketplace-plugins → plugins/core}/github/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/github/commands/gh-issues.md +0 -0
- /package/{marketplace-plugins → plugins/core}/github/commands/gh-pr-create.md +0 -0
- /package/{marketplace-plugins → plugins/core}/github/commands/gh-pr-review.md +0 -0
- /package/{marketplace-plugins → plugins/core}/github/commands/gh-repo-health.md +0 -0
- /package/{marketplace-plugins → plugins/core}/github/skills/github-workflow/SKILL.md +0 -0
- /package/{marketplace-plugins → plugins/core}/gitlab/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/gitlab/commands/gl-issues.md +0 -0
- /package/{marketplace-plugins → plugins/core}/gitlab/commands/gl-mr-create.md +0 -0
- /package/{marketplace-plugins → plugins/core}/gitlab/commands/gl-mr-review.md +0 -0
- /package/{marketplace-plugins → plugins/core}/gitlab/commands/gl-pipeline.md +0 -0
- /package/{marketplace-plugins → plugins/core}/gitlab/skills/gitlab-workflow/SKILL.md +0 -0
- /package/{marketplace-plugins → plugins/core}/hello/commands/hello.md +0 -0
- /package/{marketplace-plugins → plugins/core}/huggingface/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/huggingface/commands/hf-dataset-search.md +0 -0
- /package/{marketplace-plugins → plugins/core}/huggingface/commands/hf-download.md +0 -0
- /package/{marketplace-plugins → plugins/core}/huggingface/commands/hf-model-card.md +0 -0
- /package/{marketplace-plugins → plugins/core}/huggingface/commands/hf-model-search.md +0 -0
- /package/{marketplace-plugins → plugins/core}/huggingface/skills/huggingface-workflow/SKILL.md +0 -0
- /package/{marketplace-plugins → plugins/core}/miro/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/miro/commands/miro-board.md +0 -0
- /package/{marketplace-plugins → plugins/core}/miro/commands/miro-diagram.md +0 -0
- /package/{marketplace-plugins → plugins/core}/miro/commands/miro-export.md +0 -0
- /package/{marketplace-plugins → plugins/core}/miro/commands/miro-stickies.md +0 -0
- /package/{marketplace-plugins → plugins/core}/miro/skills/miro-workflow/SKILL.md +0 -0
- /package/{marketplace-plugins → plugins/core}/obsidian/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/obsidian/commands/backlinks.md +0 -0
- /package/{marketplace-plugins → plugins/core}/obsidian/commands/daily-note.md +0 -0
- /package/{marketplace-plugins → plugins/core}/obsidian/commands/moc.md +0 -0
- /package/{marketplace-plugins → plugins/core}/obsidian/commands/second-brain.md +0 -0
- /package/{marketplace-plugins → plugins/core}/obsidian/commands/vault-search.md +0 -0
- /package/{marketplace-plugins → plugins/core}/obsidian/skills/second-brain/SKILL.md +0 -0
- /package/{marketplace-plugins → plugins/core}/powerpoint/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/powerpoint/commands/pptx-from-md.md +0 -0
- /package/{marketplace-plugins → plugins/core}/powerpoint/commands/pptx-new.md +0 -0
- /package/{marketplace-plugins → plugins/core}/powerpoint/commands/pptx-review.md +0 -0
- /package/{marketplace-plugins → plugins/core}/powerpoint/commands/pptx-theme.md +0 -0
- /package/{marketplace-plugins → plugins/core}/powerpoint/skills/deck-craft/SKILL.md +0 -0
- /package/{marketplace-plugins → plugins/core}/release-notes/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/release-notes/commands/release-notes.md +0 -0
- /package/{marketplace-plugins → plugins/core}/skill-forge/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/skill-forge/commands/forge-skill.md +0 -0
- /package/{marketplace-plugins → plugins/core}/skill-forge/commands/skill-refine.md +0 -0
- /package/{marketplace-plugins → plugins/core}/skill-forge/skills/skill-authoring/SKILL.md +0 -0
- /package/{marketplace-plugins → plugins/core}/word/README.md +0 -0
- /package/{marketplace-plugins → plugins/core}/word/commands/docx-edit.md +0 -0
- /package/{marketplace-plugins → plugins/core}/word/commands/docx-from-md.md +0 -0
- /package/{marketplace-plugins → plugins/core}/word/commands/docx-new.md +0 -0
- /package/{marketplace-plugins → plugins/core}/word/commands/docx-review.md +0 -0
- /package/{marketplace-plugins → plugins/core}/word/skills/document-craft/SKILL.md +0 -0
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -68,8 +68,8 @@ ur spec verify auth-refactor
|
|
|
68
68
|
|
|
69
69
|
| Addition | Surface | What it adds |
|
|
70
70
|
| --- | --- | --- |
|
|
71
|
-
| Plugin marketplace capability surfaces | `.ur-plugin/marketplace.json`, `src/utils/plugins/schemas.ts`, `
|
|
72
|
-
| Autonomous engineering workflow identity | `README.md`, `documentation/`, `
|
|
71
|
+
| Plugin marketplace capability surfaces | `.ur-plugin/marketplace.json`, `src/utils/plugins/schemas.ts`, `plugins/core/engineering-discipline/` | Marketplace entries can advertise MCP tools, executable skills, templates, validators, language adapters, LSP servers, hooks, agents, and commands. The `engineering-discipline` reference plugin ships a command, reproducible-release skill, release-verifier template, release-gate validator, and Markdown adapter metadata. |
|
|
72
|
+
| Autonomous engineering workflow identity | `README.md`, `documentation/`, `plugins/core/engineering-discipline/skills/reproducible-release` | Positions UR as an autonomous engineering workflow engine: plan, execute, test, verify, document, benchmark, and reproduce, with command evidence and rollback discipline as the product promise. |
|
|
73
73
|
| Release readiness guard | `.github/workflows/test.yml`, `test/releaseReadiness.test.ts` | Asserts production bundle, release, package, and global-install checks run only after the Bun test step succeeds in GitHub CI. |
|
|
74
74
|
|
|
75
75
|
## v1.22.3 Additions
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# UR
|
|
1
|
+
# UR-AGENT code feature inventory
|
|
2
2
|
|
|
3
3
|
This file is a code-derived inventory of what this agent can do in the
|
|
4
4
|
`ur-agent` 1.19.0 source tree. It is meant to cover behavior that is easy to
|
|
@@ -22,7 +22,7 @@ Sources traced include:
|
|
|
22
22
|
- `src/utils/plugins/**`
|
|
23
23
|
- `src/entrypoints/mcp.ts`
|
|
24
24
|
- `src/sdk/index.ts`
|
|
25
|
-
- `
|
|
25
|
+
- `plugins/core/**`
|
|
26
26
|
|
|
27
27
|
Notes:
|
|
28
28
|
|
|
@@ -876,7 +876,7 @@ Plugin loading supports:
|
|
|
876
876
|
- strict known-marketplace policy
|
|
877
877
|
- managed plugin settings
|
|
878
878
|
|
|
879
|
-
Bundled marketplace plugin families in `
|
|
879
|
+
Bundled marketplace plugin families in `plugins/core/**`:
|
|
880
880
|
|
|
881
881
|
- code review
|
|
882
882
|
- evaluate response
|
|
@@ -977,7 +977,8 @@ The broader settings schema also covers:
|
|
|
977
977
|
|
|
978
978
|
## Model/provider behavior
|
|
979
979
|
|
|
980
|
-
- This external build
|
|
980
|
+
- This external build supports legal provider adapters for subscription CLIs,
|
|
981
|
+
explicit API-key providers, and local/OpenAI-compatible runtimes.
|
|
981
982
|
- The Ollama router inspects local models and classifies likely coding/fast
|
|
982
983
|
capabilities.
|
|
983
984
|
- Auto-routing is on by default through `UR_OLLAMA_AUTO_ROUTE`.
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -2,9 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
UR reads configuration from CLI flags, environment variables, and project or user settings files.
|
|
4
4
|
|
|
5
|
-
## Model
|
|
5
|
+
## Model Providers
|
|
6
6
|
|
|
7
|
-
UR
|
|
7
|
+
UR-AGENT supports official provider access paths only:
|
|
8
|
+
|
|
9
|
+
- Subscription/login CLI providers: Codex CLI, Claude Code CLI, Gemini CLI,
|
|
10
|
+
and Antigravity CLI where officially supported.
|
|
11
|
+
- Explicit API providers: OpenAI, Anthropic, Gemini, OpenRouter, and
|
|
12
|
+
OpenAI-compatible endpoints.
|
|
13
|
+
- Local providers: Ollama, LM Studio, llama.cpp, and vLLM OpenAI-compatible
|
|
14
|
+
server mode.
|
|
15
|
+
|
|
16
|
+
UR-AGENT never scrapes browser sessions, extracts OAuth refresh tokens, reads
|
|
17
|
+
hidden provider auth files, bypasses provider restrictions, or proxies consumer
|
|
18
|
+
web sessions as APIs.
|
|
19
|
+
|
|
20
|
+
The default local request endpoint is:
|
|
8
21
|
|
|
9
22
|
```text
|
|
10
23
|
http://localhost:11434/api
|
|
@@ -12,6 +25,29 @@ http://localhost:11434/api
|
|
|
12
25
|
|
|
13
26
|
Any model exposed by that Ollama app can be used, including local models and Ollama Cloud-backed models. UR does not call remote provider APIs directly and does not manage model API keys.
|
|
14
27
|
|
|
28
|
+
Provider configuration commands:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
ur provider list
|
|
32
|
+
ur provider doctor
|
|
33
|
+
ur provider status
|
|
34
|
+
ur config set provider ollama
|
|
35
|
+
ur config set provider openai-compatible
|
|
36
|
+
ur config set provider.fallback ollama
|
|
37
|
+
ur config set model <model>
|
|
38
|
+
ur config set base_url <url>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
API keys are not written to UR settings. Set them in the environment when you
|
|
42
|
+
explicitly choose API mode:
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
OPENAI_API_KEY=...
|
|
46
|
+
ANTHROPIC_API_KEY=...
|
|
47
|
+
GEMINI_API_KEY=...
|
|
48
|
+
OPENROUTER_API_KEY=...
|
|
49
|
+
```
|
|
50
|
+
|
|
15
51
|
### Reconfiguring the Ollama host
|
|
16
52
|
|
|
17
53
|
The endpoint can be changed from UR in three ways, in order of precedence:
|
package/docs/DEVELOPMENT.md
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
- `src/services/` contains API, MCP, analytics, sync, safety, context, and
|
|
11
11
|
runtime services.
|
|
12
12
|
- `src/components/` and `src/ink/` implement the terminal UI.
|
|
13
|
+
- `plugins/core/`, `plugins/community/`, and `plugins/examples/` contain
|
|
14
|
+
shipped plugins, contributed plugin staging, and copyable plugin templates.
|
|
13
15
|
- `examples/` contains example prompts and workflows.
|
|
14
16
|
- `test/` contains Bun tests for local UR utility modules.
|
|
15
17
|
|
|
@@ -34,11 +36,12 @@ bun run dev
|
|
|
34
36
|
bun run typecheck
|
|
35
37
|
bun run lint
|
|
36
38
|
bun test
|
|
37
|
-
bun run
|
|
39
|
+
bun run build
|
|
38
40
|
bun run smoke
|
|
39
41
|
bun run secrets:scan
|
|
40
42
|
bun run release:check
|
|
41
43
|
bun run package:check
|
|
44
|
+
npm pack --dry-run
|
|
42
45
|
npm publish --dry-run
|
|
43
46
|
```
|
|
44
47
|
|
|
@@ -71,7 +74,7 @@ only the root README. Check:
|
|
|
71
74
|
- `docs/`
|
|
72
75
|
- `documentation/`
|
|
73
76
|
- `examples/`
|
|
74
|
-
- extension and
|
|
77
|
+
- extension and plugin README files when the feature affects them
|
|
75
78
|
|
|
76
79
|
For top-level commands, also update the static documentation site command data
|
|
77
80
|
in `documentation/app.js` and any relevant tutorial section in
|
|
@@ -94,7 +97,7 @@ ur --version
|
|
|
94
97
|
This package is configured for install without cloning:
|
|
95
98
|
|
|
96
99
|
```sh
|
|
97
|
-
bun add -g github:Maitham16/UR
|
|
100
|
+
bun add -g github:Maitham16/UR
|
|
98
101
|
```
|
|
99
102
|
|
|
100
103
|
The package exposes the global `ur` command from `bin/ur.js`. That launcher reads `package.json` for version and repository metadata, then runs `src/entrypoints/cli.tsx` with Bun.
|
package/docs/USAGE.md
CHANGED
|
@@ -45,7 +45,7 @@ ur -p \
|
|
|
45
45
|
"summarize this project"
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
## Models
|
|
48
|
+
## Models And Providers
|
|
49
49
|
|
|
50
50
|
The wrapper in `bin/ur.js` honors explicit model choices in this order:
|
|
51
51
|
|
|
@@ -82,7 +82,31 @@ Precedence: `--ollama-host` > `OLLAMA_HOST` env > `ollama.host` setting > `local
|
|
|
82
82
|
`--discover-ollama` shows the picker every time but does **not** save the choice;
|
|
83
83
|
use `ollama.host` in settings if you want plain `ur` to default to a LAN host.
|
|
84
84
|
|
|
85
|
-
Models exposed by the chosen Ollama app are valid, including local models and
|
|
85
|
+
Models exposed by the chosen Ollama app are valid, including local models and
|
|
86
|
+
Ollama Cloud-backed models.
|
|
87
|
+
|
|
88
|
+
UR-AGENT also has explicit provider commands for legal access paths:
|
|
89
|
+
|
|
90
|
+
```sh
|
|
91
|
+
ur provider list
|
|
92
|
+
ur provider status
|
|
93
|
+
ur provider doctor
|
|
94
|
+
ur auth chatgpt
|
|
95
|
+
ur auth claude
|
|
96
|
+
ur auth gemini
|
|
97
|
+
ur auth antigravity
|
|
98
|
+
ur config set provider ollama
|
|
99
|
+
ur config set provider openai-compatible
|
|
100
|
+
ur config set model <model>
|
|
101
|
+
ur config set base_url <url>
|
|
102
|
+
ur config set provider.fallback ollama
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
API modes are explicit and read keys only from environment variables:
|
|
106
|
+
`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`, and
|
|
107
|
+
`OPENROUTER_API_KEY`. Subscription modes call official CLIs such as Codex,
|
|
108
|
+
Claude Code, Gemini CLI, or Antigravity where supported. UR-AGENT never scrapes
|
|
109
|
+
browser sessions, extracts OAuth tokens, or bypasses provider restrictions.
|
|
86
110
|
|
|
87
111
|
## Project Instructions
|
|
88
112
|
|
|
@@ -187,6 +211,21 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
187
211
|
|
|
188
212
|
Interactive sessions also check the published package version and show
|
|
189
213
|
`Update available: <current> -> <latest>` when a newer release is available.
|
|
214
|
+
Source checkouts print
|
|
215
|
+
`Development build detected. To update, pull latest source or install from npm.`
|
|
216
|
+
instead of attempting to mutate the checkout.
|
|
217
|
+
|
|
218
|
+
## Status bar
|
|
219
|
+
|
|
220
|
+
Interactive sessions include a compact bottom status bar when stdout is a real
|
|
221
|
+
terminal:
|
|
222
|
+
|
|
223
|
+
```text
|
|
224
|
+
UR-AGENT v1.25.0 | Provider: Ollama | Auth: local | model: qwen3-coder:480b-cloud | mode: ask | branch: main | tasks: idle | Update: 1.24.0 -> 1.25.0 available
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
The bar is not rendered in non-interactive mode, CI, dumb terminals, or
|
|
228
|
+
assistant viewer mode. Custom status-line hooks override the built-in bar.
|
|
190
229
|
|
|
191
230
|
Run each command with `--help` for exact flags.
|
|
192
231
|
|
package/docs/VALIDATION.md
CHANGED
|
@@ -11,14 +11,14 @@ You need:
|
|
|
11
11
|
work because UR talks to the configured Ollama host.
|
|
12
12
|
- A second Ollama server on the LAN if you want to test network discovery.
|
|
13
13
|
- UR installed globally (`npm install -g ur-agent`) or this repo installed
|
|
14
|
-
globally (`bun add -g github:Maitham16/UR
|
|
14
|
+
globally (`bun add -g github:Maitham16/UR`) or a
|
|
15
15
|
local checkout (`bun run dev`).
|
|
16
16
|
|
|
17
17
|
## 0. Smoke
|
|
18
18
|
|
|
19
19
|
```sh
|
|
20
20
|
ur --version
|
|
21
|
-
# expected: 1.
|
|
21
|
+
# expected: 1.25.0 (UR-AGENT)
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## 0.1 Permission safety and context pack (1.19.0)
|
|
@@ -125,7 +125,7 @@ Then inside:
|
|
|
125
125
|
|
|
126
126
|
Expected: the plugin picker lists `ur-plugins-official` and `hello`. If the
|
|
127
127
|
marketplace failed to clone, you'll see no entries — fall back to
|
|
128
|
-
`/plugin marketplace add github:Maitham16/UR
|
|
128
|
+
`/plugin marketplace add github:Maitham16/UR` and re-run `/plugin`.
|
|
129
129
|
|
|
130
130
|
Install `hello`:
|
|
131
131
|
|
|
@@ -295,7 +295,7 @@ Expected: no `unknown option` or `too many arguments` parser errors.
|
|
|
295
295
|
## What to do if any step fails
|
|
296
296
|
|
|
297
297
|
- Step 1 (marketplace): check `ls ~/.ur/marketplaces/` — `ur-plugins-official`
|
|
298
|
-
should be there. If absent, `gh repo clone Maitham16/UR
|
|
298
|
+
should be there. If absent, `gh repo clone Maitham16/UR` manually
|
|
299
299
|
into `~/.ur/marketplaces/ur-plugins-official` as a fallback.
|
|
300
300
|
- Steps 2-5 (verifier): set `UR_VERIFIER_MODE=off` and re-run to confirm
|
|
301
301
|
the issue is the verifier path, not the rest of the loop. Then file an
|
package/docs/plugins.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# UR-AGENT plugins
|
|
2
|
+
|
|
3
|
+
UR-AGENT plugins are trusted local extension bundles. They can contribute slash
|
|
4
|
+
commands, MCP servers, executable skills, templates, validators, language
|
|
5
|
+
adapters, LSP servers, hooks, output styles, and agents.
|
|
6
|
+
|
|
7
|
+
## Repository layout
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
plugins/
|
|
11
|
+
core/ # first-party plugins shipped with UR-AGENT
|
|
12
|
+
community/ # contributed plugins staged for review
|
|
13
|
+
examples/ # templates users can copy
|
|
14
|
+
src/plugins/ # built-in plugin registration code
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The official marketplace manifest lives at `.ur-plugin/marketplace.json` and
|
|
18
|
+
uses local paths such as `./plugins/core/hello`. It does not depend on previous
|
|
19
|
+
repositories.
|
|
20
|
+
|
|
21
|
+
## Create a plugin
|
|
22
|
+
|
|
23
|
+
Copy the command template:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
cp -R plugins/examples/command-template plugins/community/my-plugin
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Edit:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
plugins/community/my-plugin/.ur-plugin/plugin.json
|
|
33
|
+
plugins/community/my-plugin/commands/example.md
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Then run it locally:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
ur --plugin-dir ./plugins/community/my-plugin
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Add a first-party marketplace plugin
|
|
43
|
+
|
|
44
|
+
1. Put the plugin under `plugins/core/<name>/`.
|
|
45
|
+
2. Keep its manifest at `plugins/core/<name>/.ur-plugin/plugin.json`.
|
|
46
|
+
3. Add an entry to `.ur-plugin/marketplace.json` with `source` set to
|
|
47
|
+
`./plugins/core/<name>`.
|
|
48
|
+
4. Set `capabilities` accurately so users know what the plugin enables.
|
|
49
|
+
5. Run `bun test test/marketplaceTree.test.ts` before submitting.
|
|
50
|
+
|
|
51
|
+
Plugins are loaded from local UR-AGENT paths first. Network marketplace installs
|
|
52
|
+
remain explicit user actions and are subject to plugin policy checks.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# UR-AGENT providers
|
|
2
|
+
|
|
3
|
+
UR-AGENT integrates official model access paths only. It supports subscription
|
|
4
|
+
CLI login flows, explicit API-key providers, and local OpenAI-compatible
|
|
5
|
+
runtimes. It does not implement hidden or unofficial authentication.
|
|
6
|
+
|
|
7
|
+
## Legal auth policy
|
|
8
|
+
|
|
9
|
+
UR-AGENT never:
|
|
10
|
+
|
|
11
|
+
- scrapes browser cookies or browser sessions
|
|
12
|
+
- extracts, copies, or reuses OAuth refresh tokens
|
|
13
|
+
- reads hidden provider auth files directly
|
|
14
|
+
- bypasses subscription, quota, region, product, or organization restrictions
|
|
15
|
+
- proxies a consumer web session as an API
|
|
16
|
+
- claims provider support unless the official CLI/API path works
|
|
17
|
+
|
|
18
|
+
UR-AGENT stores only safe config: provider name, model name, base URL, command
|
|
19
|
+
path, fallback preference, and non-secret preferences. API keys are read from
|
|
20
|
+
environment variables only when the user explicitly selects API mode.
|
|
21
|
+
|
|
22
|
+
## Provider matrix
|
|
23
|
+
|
|
24
|
+
| Provider | Access type | Legal path |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| ChatGPT/Codex | subscription | official Codex CLI login |
|
|
27
|
+
| Claude Code | subscription | official Claude Code login |
|
|
28
|
+
| Gemini CLI | subscription | official Gemini Code Assist login |
|
|
29
|
+
| Antigravity | subscription | official Antigravity login, where supported |
|
|
30
|
+
| OpenAI | API | `OPENAI_API_KEY` |
|
|
31
|
+
| Anthropic Claude | API | `ANTHROPIC_API_KEY` |
|
|
32
|
+
| Gemini | API | `GEMINI_API_KEY` |
|
|
33
|
+
| OpenRouter | API/router | `OPENROUTER_API_KEY` |
|
|
34
|
+
| Ollama | local | localhost Ollama runtime |
|
|
35
|
+
| LM Studio | local | local OpenAI-compatible server |
|
|
36
|
+
| llama.cpp | local | local OpenAI-compatible server |
|
|
37
|
+
| vLLM | local/server | OpenAI-compatible server |
|
|
38
|
+
|
|
39
|
+
## Commands
|
|
40
|
+
|
|
41
|
+
```sh
|
|
42
|
+
ur provider list
|
|
43
|
+
ur provider status
|
|
44
|
+
ur provider doctor
|
|
45
|
+
ur provider doctor codex-cli
|
|
46
|
+
ur auth chatgpt
|
|
47
|
+
ur auth claude
|
|
48
|
+
ur auth gemini
|
|
49
|
+
ur auth antigravity
|
|
50
|
+
ur config set provider codex-cli
|
|
51
|
+
ur config set provider ollama
|
|
52
|
+
ur config set provider openai-compatible
|
|
53
|
+
ur config set model <model>
|
|
54
|
+
ur config set base_url <url>
|
|
55
|
+
ur config set provider.fallback ollama
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`ur provider doctor` checks the selected provider. It reports installed/missing
|
|
59
|
+
CLIs, official login status where available, API key presence for API providers,
|
|
60
|
+
local endpoint reachability, detectable model availability, unsupported account
|
|
61
|
+
type signals, and fallback configuration.
|
|
62
|
+
|
|
63
|
+
Fallback is never silent by default. If the selected provider fails, UR-AGENT
|
|
64
|
+
reports the selected provider, failure reason, suggested fix, and configured
|
|
65
|
+
fallback option.
|
|
66
|
+
|
|
67
|
+
## Subscription CLI providers
|
|
68
|
+
|
|
69
|
+
- `codex-cli`: detects `codex --version`, uses `codex login` or
|
|
70
|
+
`codex login --device-auth`, and checks `codex login status`.
|
|
71
|
+
- `claude-code-cli`: detects `claude --version`, uses `claude auth login`, and
|
|
72
|
+
checks `claude auth status` when available. If `ANTHROPIC_API_KEY` is set,
|
|
73
|
+
doctor warns that API-key mode may override subscription auth.
|
|
74
|
+
- `gemini-cli`: launches only the official Gemini CLI flow. If the detected
|
|
75
|
+
path is an unsupported personal-account path, UR-AGENT prints a clear error.
|
|
76
|
+
- `antigravity-cli`: launches only an installed official CLI command where
|
|
77
|
+
supported; UR-AGENT does not invent flags.
|
|
78
|
+
|
|
79
|
+
## API and local providers
|
|
80
|
+
|
|
81
|
+
API providers require explicit user selection and environment keys:
|
|
82
|
+
|
|
83
|
+
```sh
|
|
84
|
+
OPENAI_API_KEY=...
|
|
85
|
+
ANTHROPIC_API_KEY=...
|
|
86
|
+
GEMINI_API_KEY=...
|
|
87
|
+
OPENROUTER_API_KEY=...
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
OpenAI-compatible endpoints can point at local or cloud endpoints:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
ur config set provider openai-compatible
|
|
94
|
+
ur config set base_url http://localhost:1234/v1
|
|
95
|
+
ur config set model local-model-name
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Local providers use their normal servers:
|
|
99
|
+
|
|
100
|
+
- Ollama: `http://localhost:11434`
|
|
101
|
+
- LM Studio: `http://localhost:1234/v1`
|
|
102
|
+
- llama.cpp server mode: `http://localhost:8080/v1`
|
|
103
|
+
- vLLM server mode: `http://localhost:8000/v1`
|
|
104
|
+
|
package/documentation/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# UR
|
|
1
|
+
# UR-AGENT Documentation Site
|
|
2
2
|
|
|
3
|
-
This folder is a static documentation project for UR
|
|
3
|
+
This folder is a static documentation project for UR-AGENT.
|
|
4
4
|
|
|
5
5
|
Open `index.html` directly in a browser. No build step or dev server is
|
|
6
6
|
required.
|
package/documentation/app.js
CHANGED
|
@@ -66,7 +66,7 @@ const commands = [
|
|
|
66
66
|
name: 'ur',
|
|
67
67
|
category: 'Core',
|
|
68
68
|
aliases: [],
|
|
69
|
-
summary: 'Start an interactive UR
|
|
69
|
+
summary: 'Start an interactive UR-AGENT session in the current workspace.',
|
|
70
70
|
examples: ['ur', 'ur --model qwen3-coder:480b-cloud', 'ur --continue', 'ur --resume'],
|
|
71
71
|
},
|
|
72
72
|
{
|
|
@@ -374,7 +374,7 @@ const commands = [
|
|
|
374
374
|
name: 'update',
|
|
375
375
|
category: 'Ops',
|
|
376
376
|
aliases: ['upgrade'],
|
|
377
|
-
summary: 'Check for updates
|
|
377
|
+
summary: 'Check npm for UR-AGENT updates. Interactive sessions also show an update-available notice when a newer package is published.',
|
|
378
378
|
examples: ['ur update', 'ur upgrade'],
|
|
379
379
|
},
|
|
380
380
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" width="1120" height="560" viewBox="0 0 1120 560" role="img" aria-labelledby="title desc">
|
|
2
|
-
<title id="title">UR
|
|
2
|
+
<title id="title">UR-AGENT runtime architecture</title>
|
|
3
3
|
<desc id="desc">A diagram showing users, the UR CLI, project context, tools, agent orchestration, local Ollama models, and outputs.</desc>
|
|
4
4
|
<defs>
|
|
5
5
|
<linearGradient id="panel" x1="0" x2="1" y1="0" y2="1">
|
package/documentation/index.html
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>UR
|
|
7
|
-
<meta name="description" content="Professional documentation, tutorials, examples, and command reference for UR
|
|
6
|
+
<title>UR-AGENT Documentation</title>
|
|
7
|
+
<meta name="description" content="Professional documentation, tutorials, examples, and command reference for UR-AGENT.">
|
|
8
8
|
<link rel="stylesheet" href="styles.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<div class="brand">
|
|
15
15
|
<div class="brand-mark" aria-hidden="true">UR</div>
|
|
16
16
|
<div>
|
|
17
|
-
<strong>UR
|
|
17
|
+
<strong>UR-AGENT</strong>
|
|
18
18
|
<span>Documentation</span>
|
|
19
19
|
</div>
|
|
20
20
|
</div>
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
<header class="topbar">
|
|
45
45
|
<div>
|
|
46
46
|
<p class="eyebrow">Version 1.24.0</p>
|
|
47
|
-
<h1>UR
|
|
48
|
-
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR
|
|
47
|
+
<h1>UR-AGENT Documentation</h1>
|
|
48
|
+
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-AGENT.</p>
|
|
49
49
|
</div>
|
|
50
50
|
<div class="topbar-actions">
|
|
51
51
|
<a class="button" href="#quickstart">Start</a>
|
|
@@ -134,7 +134,7 @@ ur -p --output-format json "Review the current diff"</code></pre>
|
|
|
134
134
|
<p>The CLI is the control plane. Project context and <code>.ur</code> assets feed agent orchestration, which uses local Ollama models and approved tools to produce code, docs, PRs, reports, and automation outputs.</p>
|
|
135
135
|
</div>
|
|
136
136
|
<figure class="diagram">
|
|
137
|
-
<img src="assets/ur-architecture.svg" alt="UR
|
|
137
|
+
<img src="assets/ur-architecture.svg" alt="UR-AGENT runtime architecture diagram">
|
|
138
138
|
</figure>
|
|
139
139
|
</section>
|
|
140
140
|
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ur-agent",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "UR — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
|
|
3
|
+
"version": "1.25.0",
|
|
4
|
+
"description": "UR-AGENT — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1.3.14",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/Maitham16/UR
|
|
9
|
+
"url": "git+https://github.com/Maitham16/UR.git"
|
|
10
10
|
},
|
|
11
11
|
"bugs": {
|
|
12
|
-
"url": "https://github.com/Maitham16/UR
|
|
12
|
+
"url": "https://github.com/Maitham16/UR/issues"
|
|
13
13
|
},
|
|
14
|
-
"homepage": "https://github.com/Maitham16/UR
|
|
15
|
-
"license": "LicenseRef-UR-
|
|
14
|
+
"homepage": "https://github.com/Maitham16/UR#readme",
|
|
15
|
+
"license": "LicenseRef-UR-AGENT-Non-Commercial-Self-Responsibility",
|
|
16
16
|
"keywords": [
|
|
17
17
|
"agent",
|
|
18
18
|
"cli",
|
|
@@ -30,16 +30,20 @@
|
|
|
30
30
|
"documentation",
|
|
31
31
|
"extensions",
|
|
32
32
|
"examples",
|
|
33
|
-
"
|
|
33
|
+
"plugins",
|
|
34
34
|
"CHANGELOG.md",
|
|
35
|
+
"CONTRIBUTING.md",
|
|
35
36
|
"QUALITY.md",
|
|
36
37
|
"README.md",
|
|
38
|
+
"RELEASE.md",
|
|
39
|
+
"SECURITY.md",
|
|
37
40
|
"LICENSE"
|
|
38
41
|
],
|
|
39
42
|
"scripts": {
|
|
40
43
|
"start": "node ./bin/ur.js",
|
|
41
44
|
"dev": "bun --watch run src/entrypoints/cli.tsx",
|
|
42
45
|
"bundle": "node scripts/bundle.mjs",
|
|
46
|
+
"build": "node scripts/bundle.mjs",
|
|
43
47
|
"release:check": "node scripts/release-check.mjs",
|
|
44
48
|
"typecheck": "bun run tsc --noEmit",
|
|
45
49
|
"lint": "node scripts/lint.mjs",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bun plugin that provides a runtime implementation of the `bun:bundle` module.
|
|
3
|
+
*
|
|
4
|
+
* In production, Bun's bundler statically replaces `feature()` calls at compile
|
|
5
|
+
* time. During development (running unbundled with `bun run`), this plugin
|
|
6
|
+
* intercepts `bun:bundle` imports and returns a stub where every feature flag
|
|
7
|
+
* is `false` by default.
|
|
8
|
+
*
|
|
9
|
+
* To enable specific flags during dev, set the env var FEATURE_FLAGS as a
|
|
10
|
+
* comma-separated list:
|
|
11
|
+
*
|
|
12
|
+
* FEATURE_FLAGS=KAIROS,VOICE_MODE bun run src/main.tsx
|
|
13
|
+
*/
|
|
14
|
+
import { plugin } from 'bun'
|
|
15
|
+
|
|
16
|
+
const enabledFlags = new Set(
|
|
17
|
+
(process.env.FEATURE_FLAGS ?? '').split(',').filter(Boolean),
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
plugin({
|
|
21
|
+
name: 'bun-bundle-dev',
|
|
22
|
+
setup(build) {
|
|
23
|
+
build.module('bun:bundle', () => ({
|
|
24
|
+
exports: {
|
|
25
|
+
feature(flag: string): boolean {
|
|
26
|
+
return enabledFlags.has(flag)
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
loader: 'object',
|
|
30
|
+
}))
|
|
31
|
+
},
|
|
32
|
+
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# plugins/core/
|
|
2
2
|
|
|
3
3
|
First-party plugins for the **ur-plugins-official** marketplace.
|
|
4
4
|
|
|
@@ -42,7 +42,7 @@ templates, deterministic validators, language adapters, and LSP server metadata.
|
|
|
42
42
|
|
|
43
43
|
## Adding a new plugin
|
|
44
44
|
|
|
45
|
-
1. Copy `hello/` to a new directory, e.g. `
|
|
45
|
+
1. Copy `hello/` to a new directory, e.g. `plugins/core/my-plugin/`.
|
|
46
46
|
2. Edit `my-plugin/.ur-plugin/plugin.json` with the plugin's real metadata.
|
|
47
47
|
3. Replace the example command in `my-plugin/commands/` with your own.
|
|
48
48
|
4. Add optional extension folders as needed:
|
|
@@ -56,7 +56,7 @@ templates, deterministic validators, language adapters, and LSP server metadata.
|
|
|
56
56
|
6. Set the entry's `capabilities` array so users can see whether it adds MCP
|
|
57
57
|
tools, skills, templates, validators, language adapters, LSP servers,
|
|
58
58
|
commands, agents, or hooks before installation.
|
|
59
|
-
7. Open a PR against `Maitham16/UR
|
|
59
|
+
7. Open a PR against `Maitham16/UR`.
|
|
60
60
|
|
|
61
61
|
See [`hello/README.md`](./hello/README.md) for the smallest possible example.
|
|
62
62
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "code-review",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Adds /code-review — structured review of the working diff against a base ref.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Maitham Al-rubaye",
|
|
7
|
+
"url": "https://github.com/Maitham16/UR"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/Maitham16/UR/tree/master/plugins/core/code-review",
|
|
10
|
+
"repository": "https://github.com/Maitham16/UR",
|
|
11
|
+
"license": "LicenseRef-UR-AGENT-Non-Commercial-Self-Responsibility",
|
|
12
|
+
"keywords": ["code-review", "git", "diff", "quality"]
|
|
13
|
+
}
|