ur-agent 1.46.0 → 1.47.1
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 +51 -0
- package/README.md +62 -9
- package/dist/cli.js +30626 -11299
- package/docs/A2A.md +54 -17
- package/docs/ACP.md +21 -13
- package/docs/AGENT_FEATURES.md +44 -5
- package/docs/AGENT_TRENDS.md +48 -44
- package/docs/AG_UI.md +132 -0
- package/docs/CONFIGURATION.md +92 -9
- package/docs/USAGE.md +34 -4
- package/docs/VALIDATION.md +31 -1
- package/docs/providers.md +11 -1
- package/documentation/app.js +18 -6
- package/documentation/index.html +27 -8
- package/examples/agent_features.md +18 -0
- package/examples/agent_trends.md +5 -0
- package/examples/mcp.md +4 -0
- package/examples/memory.md +5 -2
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +9 -2
- package/plugins/core/engineering-discipline/skills/reproducible-release/SKILL.md +2 -1
- package/plugins/core/github/skills/github-workflow/SKILL.md +2 -1
- package/plugins/core/gitlab/skills/gitlab-workflow/SKILL.md +2 -1
- package/plugins/core/huggingface/skills/huggingface-workflow/SKILL.md +2 -1
- package/plugins/core/miro/skills/miro-workflow/SKILL.md +2 -1
- package/plugins/core/obsidian/skills/second-brain/SKILL.md +2 -1
- package/plugins/core/powerpoint/skills/deck-craft/SKILL.md +2 -1
- package/plugins/core/skill-forge/skills/skill-authoring/SKILL.md +2 -1
- package/plugins/core/word/skills/document-craft/SKILL.md +2 -1
package/docs/CONFIGURATION.md
CHANGED
|
@@ -107,6 +107,28 @@ GEMINI_API_KEY=...
|
|
|
107
107
|
OPENROUTER_API_KEY=...
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
+
### OpenAI Responses transport
|
|
111
|
+
|
|
112
|
+
OpenAI uses Chat Completions unless the Responses transport is selected
|
|
113
|
+
explicitly:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
ur config set openai_transport responses
|
|
117
|
+
ur config set responses.store false
|
|
118
|
+
ur config set responses.compact_threshold 20000
|
|
119
|
+
ur config set responses.tool_search hosted
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Supported safe settings are `chat-completions|responses`, boolean
|
|
123
|
+
`responses.store`, an integer compaction threshold of at least 1,000 tokens,
|
|
124
|
+
and `off|hosted` tool search. Responses defaults to `store=false`, no server
|
|
125
|
+
compaction, and no deferred tool search. Background and WebSocket state is kept
|
|
126
|
+
under `.ur/openai-responses/` with private atomic writes; identifiers, status,
|
|
127
|
+
model, mode, and cursors are the only plaintext durable fields. To retain an
|
|
128
|
+
opaque compacted window, set `UR_OPENAI_RESPONSES_STATE_KEY` to exactly 32
|
|
129
|
+
bytes encoded as 64 hexadecimal characters or base64. Without that key UR
|
|
130
|
+
refuses to persist compacted context.
|
|
131
|
+
|
|
110
132
|
### Reconfiguring the Ollama host
|
|
111
133
|
|
|
112
134
|
The endpoint can be changed from UR in three ways, in order of precedence:
|
|
@@ -415,6 +437,9 @@ ur context-pack remember --decision "Use package scripts before ad hoc commands"
|
|
|
415
437
|
ur context-pack remember --constraint "Do not expose secret values"
|
|
416
438
|
ur context-pack remember --command "bun run typecheck"
|
|
417
439
|
ur context-pack remember --diff "Safety policy wired into Bash permission checks"
|
|
440
|
+
ur context-pack memory verify
|
|
441
|
+
ur context-pack memory quarantine
|
|
442
|
+
ur context-pack memory rollback --to <entry-id>
|
|
418
443
|
ur context-pack compress
|
|
419
444
|
```
|
|
420
445
|
|
|
@@ -425,8 +450,10 @@ Generated files:
|
|
|
425
450
|
`.ur/safety-policy.json`, MCP config, editor settings, workflow files, and
|
|
426
451
|
other manifests.
|
|
427
452
|
- `.ur/context/architecture.md` — human-readable architecture summary.
|
|
428
|
-
- `.ur/context/task-memory.jsonl` —
|
|
429
|
-
and notes
|
|
453
|
+
- `.ur/context/task-memory.jsonl` — private, append-only decisions,
|
|
454
|
+
constraints, commands, diffs, and notes with explicit provenance, UUIDs, and
|
|
455
|
+
a SHA-256 content/hash chain. Legacy entries are anchored when the chain
|
|
456
|
+
starts rather than silently rewritten.
|
|
430
457
|
- `.ur/context/compressed.md` — compressed task context summary.
|
|
431
458
|
|
|
432
459
|
Two related slash commands:
|
|
@@ -448,6 +475,7 @@ ur mcp get <name>
|
|
|
448
475
|
ur mcp add-json <name> '<json>'
|
|
449
476
|
ur mcp remove <name>
|
|
450
477
|
ur mcp serve
|
|
478
|
+
UR_MCP_HTTP_TOKEN='<secret>' ur mcp serve-http --port 8976
|
|
451
479
|
```
|
|
452
480
|
|
|
453
481
|
MCP servers may execute code or access external services. Only enable servers you trust, and keep credentials out of committed config.
|
|
@@ -459,6 +487,15 @@ adjusted with `UR_MCP_MAX_CALLS_PER_MINUTE`,
|
|
|
459
487
|
`UR_MCP_MAX_CONCURRENT_CALLS`, `UR_MCP_TOOL_TIMEOUT_MS`,
|
|
460
488
|
`UR_MCP_MAX_INPUT_CHARS`, and `UR_MCP_MAX_OUTPUT_CHARS`.
|
|
461
489
|
|
|
490
|
+
`serve-http` is a separate, opt-in MCP 2026-07-28 compatibility surface at
|
|
491
|
+
`POST /mcp`. It is stateless at the transport layer and exposes capability-
|
|
492
|
+
negotiated Tasks and a self-contained overview App backed by UR's real MCP
|
|
493
|
+
tool registry. Every call must supply matching protocol/method/name metadata.
|
|
494
|
+
Off-loopback binds require `UR_MCP_HTTP_TOKEN`; browser clients also require an
|
|
495
|
+
exact `--allow-origin`. HTTP request, rate, concurrency, task-retention, and
|
|
496
|
+
runtime limits use the `UR_MCP_HTTP_*` prefix. Durable task state is private,
|
|
497
|
+
owner-isolated, bounded, atomic, and quarantined if corrupt.
|
|
498
|
+
|
|
462
499
|
## Background Agents
|
|
463
500
|
|
|
464
501
|
Detached `ur bg` task state is stored under `.ur/background/`. Manifest updates
|
|
@@ -476,17 +513,27 @@ For native editor integration, `ur acp stdio` implements stable Agent Client
|
|
|
476
513
|
Protocol v1 through the official SDK. Its resource controls use the
|
|
477
514
|
`UR_ACP_STDIO_*` prefix. It supports client-provided MCP stdio/HTTP/SSE
|
|
478
515
|
servers, additional workspace roots, native permission requests, cancellation,
|
|
479
|
-
and persistent
|
|
516
|
+
and persistent list/load/delete/resume/close with exact history replay, modes,
|
|
517
|
+
config options, and available commands; see the [ACP Guide](ACP.md).
|
|
480
518
|
|
|
481
519
|
`ur acp serve` is a separate UR HTTP JSON-RPC API. Set `UR_ACP_TOKEN` instead
|
|
482
520
|
of putting its bearer token in argv. Request, task, and tool limits use the
|
|
483
521
|
`UR_ACP_*` prefix.
|
|
484
522
|
|
|
485
|
-
`ur a2a serve` exposes
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
523
|
+
`ur a2a serve` exposes strict v1 JSON-RPC and HTTP+JSON bindings alongside the
|
|
524
|
+
stable official-SDK v0.3 JSON-RPC binding and a separate UR compatibility task
|
|
525
|
+
API. Use `UR_A2A_TOKEN` for a static operator token or
|
|
526
|
+
`UR_A2A_DELEGATION_SECRET` for issuer-minted skill/tenant-scoped tokens. Limits
|
|
527
|
+
use the `UR_A2A_*` prefix. See the [A2A Guide](A2A.md) for endpoints, protocol
|
|
528
|
+
negotiation, proxy setup, and isolation.
|
|
529
|
+
|
|
530
|
+
`ur ag-ui serve` exposes an opt-in AG-UI HTTP/SSE adapter at `POST /ag-ui`,
|
|
531
|
+
with capability discovery at `GET /ag-ui/capabilities`. It binds to loopback by
|
|
532
|
+
default; off-loopback binds require `UR_AG_UI_TOKEN`, and browser clients must
|
|
533
|
+
be listed with exact `--allow-origin` values. Request, rate, concurrency,
|
|
534
|
+
runtime, and output controls use the `UR_AG_UI_*` prefix. Unsupported client
|
|
535
|
+
tools, multimodal/encrypted input, interrupts, and unimplemented transports are
|
|
536
|
+
rejected rather than silently ignored. See the [AG-UI Guide](AG_UI.md).
|
|
490
537
|
|
|
491
538
|
## Plugins and Skills
|
|
492
539
|
|
|
@@ -499,7 +546,43 @@ ur plugin update <plugin>
|
|
|
499
546
|
ur plugin disable <plugin>
|
|
500
547
|
```
|
|
501
548
|
|
|
502
|
-
Skills can be stored in `.ur/skills/` for project-specific workflows or in
|
|
549
|
+
Skills can be stored in `.ur/skills/` for project-specific workflows or in
|
|
550
|
+
`~/.ur/skills/` for personal workflows. UR also discovers the cross-client
|
|
551
|
+
`.agents/skills/` and `~/.agents/skills/` locations from the Agent Skills
|
|
552
|
+
integration guide. At an equal scope, native `.ur` skills win; project skills
|
|
553
|
+
win over user skills, and nearer project roots win over parent roots.
|
|
554
|
+
|
|
555
|
+
Portable `SKILL.md` directories are validated against the Agent Skills
|
|
556
|
+
frontmatter contract and receive deterministic content and permission digests.
|
|
557
|
+
Inspect and sign them with:
|
|
558
|
+
|
|
559
|
+
```sh
|
|
560
|
+
ur skill verify <name-or-directory> [--require-trusted] [--json]
|
|
561
|
+
ur skill keygen <key-id> [--out <private-key.pem>]
|
|
562
|
+
ur skill sign <name-or-directory> --key <private-key.pem> --key-id <key-id>
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
Set `UR_SKILLS_STRICT_SPEC=true` to reject spec-invalid file skills and
|
|
566
|
+
`UR_SKILLS_REQUIRE_TRUSTED_SIGNATURE=true` to require a verified key at load
|
|
567
|
+
and invocation. `UR_SKILL_TRUSTED_KEYS_FILE` can override the private trusted
|
|
568
|
+
key store (normally under the UR config directory). Signed skills cannot
|
|
569
|
+
contain symlinks and are re-hashed immediately before every invocation.
|
|
570
|
+
|
|
571
|
+
## OpenTelemetry
|
|
572
|
+
|
|
573
|
+
No telemetry exporter is enabled by default. Configure each signal with the
|
|
574
|
+
standard `OTEL_TRACES_EXPORTER`, `OTEL_METRICS_EXPORTER`, and
|
|
575
|
+
`OTEL_LOGS_EXPORTER` variables; supported values are `otlp`, `console`, or
|
|
576
|
+
`none`. OTLP uses HTTP/protobuf and the standard
|
|
577
|
+
`OTEL_EXPORTER_OTLP[_<SIGNAL>]_ENDPOINT` variables. UR validates endpoints,
|
|
578
|
+
protocols, and export intervals before registering providers.
|
|
579
|
+
|
|
580
|
+
GenAI spans and metrics cover inference, agent/workflow invocation, tools, memory,
|
|
581
|
+
duration, token/cache usage, response identity, finish reason, time to first
|
|
582
|
+
chunk, and bounded error type. Content is excluded unless
|
|
583
|
+
`OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true`; use
|
|
584
|
+
`UR_OTEL_GENAI_PROVIDER` only when a gateway hides the provider identity.
|
|
585
|
+
`OTEL_SDK_DISABLED=true` disables the SDK globally.
|
|
503
586
|
|
|
504
587
|
## Secrets
|
|
505
588
|
|
package/docs/USAGE.md
CHANGED
|
@@ -128,12 +128,23 @@ ur config set provider openai-compatible
|
|
|
128
128
|
ur config set model <model>
|
|
129
129
|
ur config set base_url <url>
|
|
130
130
|
ur config set provider.fallback ollama
|
|
131
|
+
ur config set openai_transport responses
|
|
132
|
+
ur config set responses.store false
|
|
133
|
+
ur config set responses.compact_threshold 20000
|
|
134
|
+
ur config set responses.tool_search hosted
|
|
131
135
|
```
|
|
132
136
|
|
|
133
137
|
`provider.fallback` only controls the recovery suggestion printed by provider
|
|
134
138
|
diagnostics. UR does not switch or retry across providers automatically; use
|
|
135
139
|
`ur config set provider <id>` after reviewing the failure.
|
|
136
140
|
|
|
141
|
+
The OpenAI API continues to use Chat Completions by default. Selecting
|
|
142
|
+
`openai_transport responses` opts into Responses semantic streaming,
|
|
143
|
+
background/poll/cancel support, WebSocket continuation, server compaction, and
|
|
144
|
+
deferred tool search. Remote storage is off by default. Local state contains
|
|
145
|
+
only bounded identifiers/status/cursors unless a 32-byte
|
|
146
|
+
`UR_OPENAI_RESPONSES_STATE_KEY` is supplied for AES-256-GCM compacted context.
|
|
147
|
+
|
|
137
148
|
In the interactive app, `/model` chooses a provider first and then a model from
|
|
138
149
|
that provider only. The saved pair controls the runtime backend for the next
|
|
139
150
|
agent request. There is no cross-provider fallback: OpenAI API does not fall
|
|
@@ -210,9 +221,17 @@ ur context-pack remember --preference "Use bun test over jest"
|
|
|
210
221
|
ur context-pack remember --accepted "Use p-map for bounded concurrency" --scope project
|
|
211
222
|
ur context-pack remember --rejected "Switch to esbuild" --alternative-to "Keep bun bundle"
|
|
212
223
|
ur context-pack remember --attempt "Tried Deno runtime" --status superseded
|
|
224
|
+
ur context-pack memory verify
|
|
225
|
+
ur context-pack memory quarantine
|
|
226
|
+
ur context-pack memory rollback --to <entry-id>
|
|
213
227
|
ur context-pack compress
|
|
214
228
|
```
|
|
215
229
|
|
|
230
|
+
New entries carry explicit source provenance and form a SHA-256 hash chain.
|
|
231
|
+
Reads fail closed on malformed or tampered state. `quarantine` preserves the
|
|
232
|
+
complete original privately and restores the verified prefix; `rollback`
|
|
233
|
+
preserves a backup before truncating to the requested entry.
|
|
234
|
+
|
|
216
235
|
## Lifecycle hooks
|
|
217
236
|
|
|
218
237
|
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.
|
|
@@ -244,7 +263,10 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
244
263
|
|
|
245
264
|
- `/help` or `ur --help` for command discovery
|
|
246
265
|
- `ur connect ...` to connect provider accounts (subscription login or stored API key)
|
|
247
|
-
- `ur mcp ...` to configure MCP servers
|
|
266
|
+
- `ur mcp ...` to configure MCP servers, run the stdio server, or start the
|
|
267
|
+
opt-in stateless MCP 2026 Tasks/Apps adapter with `ur mcp serve-http`
|
|
268
|
+
- `ur ag-ui serve` to expose the secure AG-UI HTTP/SSE adapter to an explicitly
|
|
269
|
+
allowed user-facing application
|
|
248
270
|
- `ur plugin ...` to manage plugins and marketplaces. Marketplace plugins can
|
|
249
271
|
add MCP tools, commands, executable skills, templates, validators, language
|
|
250
272
|
adapters, LSP servers, agents, hooks, and output styles.
|
|
@@ -257,7 +279,8 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
257
279
|
- `ur context-pack ...` to summarize architecture and persist project memory (decisions, constraints, commands, diffs, architecture, preferences, attempts, accepted, rejected)
|
|
258
280
|
- `ur code-index watch` to keep the local semantic code index fresh
|
|
259
281
|
- `ur code-index repo build` to build a richer semantic repo index (files, symbols, calls, tests, docs, configs)
|
|
260
|
-
- `ur skill init
|
|
282
|
+
- `ur skill init|run ...` for executable skill workflows, plus
|
|
283
|
+
`ur skill verify|sign|keygen` for strict provenance and Ed25519 trust
|
|
261
284
|
- `ur memory retention ...` to prune project-local memory by TTL, max entries, and decay
|
|
262
285
|
- `ur spec ...` to scaffold requirements, design, and tasks, run a spec task list, and verify with strict proof gates
|
|
263
286
|
- `ur escalate ...` to plan, run, or ask an oracle model for hard tasks
|
|
@@ -268,7 +291,9 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
268
291
|
after one attempt and reports how to correct `--cwd`.
|
|
269
292
|
- `ur artifacts ...` to capture reviewable diffs, test runs, notes, and feedback
|
|
270
293
|
- `ur ide diff ...` to capture editor-readable inline diff bundles
|
|
271
|
-
- `ur acp stdio` for the official-SDK
|
|
294
|
+
- `ur acp stdio` for the official-SDK ACP v1 editor transport with durable
|
|
295
|
+
list/load/delete/resume, modes, config options, and commands; and
|
|
296
|
+
`ur acp serve|stop|status` for the separate UR HTTP JSON-RPC API
|
|
272
297
|
- `ur exec ...` to run prompts in non-interactive mode with optional concurrency
|
|
273
298
|
- `ur eval run ...` to run a suite, grade results, and capture execution metrics
|
|
274
299
|
- `ur eval report ...` to show a saved report or write a single-suite dashboard
|
|
@@ -292,7 +317,9 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
292
317
|
- `ur trigger ...` to parse GitHub/Slack webhook payloads and optionally launch a headless run
|
|
293
318
|
- `ur agent-templates ...`, `ur agent-task ...`, `ur agent-inspect`, `ur agent-features`, and `ur agent-trends` for agent template, PR handoff, timeline, and coverage utilities
|
|
294
319
|
- `ur role-mode ...` to install built-in Architect, Code, Debug, and Ask role modes
|
|
295
|
-
- `ur a2a ...` for
|
|
320
|
+
- `ur a2a ...` for negotiated v1 JSON-RPC/HTTP+JSON, the stable v0.3 SDK
|
|
321
|
+
binding, scoped delegation tokens, durable protocol state, and separate UR
|
|
322
|
+
compatibility task routes
|
|
296
323
|
- `ur sdk ...` to scaffold TS/Python headless SDK examples
|
|
297
324
|
- `ur doctor` to inspect CLI health
|
|
298
325
|
- `ur update` or `ur upgrade` to check for updates
|
|
@@ -347,6 +374,7 @@ ur test-first detect
|
|
|
347
374
|
ur test-first --dry-run
|
|
348
375
|
ur skill init security-review
|
|
349
376
|
ur skill run security-review "src/auth.ts"
|
|
377
|
+
ur skill verify security-review --require-trusted
|
|
350
378
|
ur code-index repo build
|
|
351
379
|
ur code-index repo search "rate limiter"
|
|
352
380
|
ur test-first install
|
|
@@ -355,7 +383,9 @@ ur safety check --command "rm -rf build"
|
|
|
355
383
|
ur context-pack scan
|
|
356
384
|
ur context-pack remember --constraint "Run command evidence before claiming success"
|
|
357
385
|
ur context-pack remember --accepted "Use p-map for concurrency" --scope project
|
|
386
|
+
ur context-pack memory verify
|
|
358
387
|
ur context-pack compress
|
|
388
|
+
UR_MCP_HTTP_TOKEN='<secret>' ur mcp serve-http --port 8976
|
|
359
389
|
ur acp serve --port 8123
|
|
360
390
|
ur exec "add tests for the parser" --concurrency 4 --json
|
|
361
391
|
ur ci-loop --command "bun test" --cwd . --dry-run
|
package/docs/VALIDATION.md
CHANGED
|
@@ -19,7 +19,7 @@ You need:
|
|
|
19
19
|
|
|
20
20
|
```sh
|
|
21
21
|
ur --version
|
|
22
|
-
# expected for this release: "1.
|
|
22
|
+
# expected for this release: "1.47.1 (UR-Nexus)"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## 0.1 First-workspace model selection (1.45.4)
|
|
@@ -84,6 +84,8 @@ Expected:
|
|
|
84
84
|
- `context-pack scan` writes `.ur/project-manifest.json` and
|
|
85
85
|
`.ur/context/architecture.md`.
|
|
86
86
|
- `remember` appends task memory entries under `.ur/context/task-memory.jsonl`.
|
|
87
|
+
- `ur context-pack memory verify` reports a valid integrity chain. Tamper tests
|
|
88
|
+
must use a disposable copy; quarantine and rollback preserve private backups.
|
|
87
89
|
- `compress` writes `.ur/context/compressed.md`.
|
|
88
90
|
|
|
89
91
|
## 0.3 Test-first execution loop (1.18.0)
|
|
@@ -149,6 +151,34 @@ ur --ollama-host http://localhost:11434 -p "say hi"
|
|
|
149
151
|
ur --settings '{"ollama":{"host":"http://localhost:11434"}}' -p "say hi"
|
|
150
152
|
```
|
|
151
153
|
|
|
154
|
+
## 0.6 v1.47 protocol, provenance, and telemetry gates
|
|
155
|
+
|
|
156
|
+
These deterministic tests use local fixtures, fake transports, and mock
|
|
157
|
+
exporters. They do not require a paid provider account or make paid model calls:
|
|
158
|
+
|
|
159
|
+
```sh
|
|
160
|
+
bun test test/acpStdio.test.ts test/a2aV1.test.ts test/mcp2026.test.ts
|
|
161
|
+
bun test test/openaiResponses.test.ts test/genAiTelemetry.test.ts
|
|
162
|
+
bun test test/agUi.test.ts test/skillCommand.test.ts
|
|
163
|
+
bun test test/skillProvenance.test.ts test/taskMemoryIntegrity.test.ts
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Expected: ACP lifecycle/replay, A2A dual-stack isolation, MCP Tasks/Apps,
|
|
167
|
+
Responses HTTP/SSE/WebSocket/background behavior, OpenTelemetry redaction,
|
|
168
|
+
AG-UI lifecycle/security, `.agents/skills/` precedence, Ed25519 skill trust,
|
|
169
|
+
and task-memory quarantine/rollback all pass. Then run:
|
|
170
|
+
|
|
171
|
+
```sh
|
|
172
|
+
bun run typecheck
|
|
173
|
+
bun run lint
|
|
174
|
+
bun test
|
|
175
|
+
bun run build
|
|
176
|
+
bun run secrets:scan
|
|
177
|
+
bun run dependencies:audit
|
|
178
|
+
bun run release:check
|
|
179
|
+
bun run package:check
|
|
180
|
+
```
|
|
181
|
+
|
|
152
182
|
## 1. Marketplace tree resolves
|
|
153
183
|
|
|
154
184
|
In a fresh interactive session:
|
package/docs/providers.md
CHANGED
|
@@ -105,12 +105,22 @@ ur config set model <model>
|
|
|
105
105
|
ur provider select-model <provider> <model> --json
|
|
106
106
|
ur config set base_url <url>
|
|
107
107
|
ur config set provider.fallback ollama
|
|
108
|
+
ur config set openai_transport responses
|
|
109
|
+
ur config set responses.store false
|
|
110
|
+
ur config set responses.compact_threshold 20000
|
|
111
|
+
ur config set responses.tool_search hosted
|
|
108
112
|
```
|
|
109
113
|
|
|
110
114
|
The fallback setting is a recovery hint for `ur provider doctor`; it does not
|
|
111
115
|
route a failed request to another provider. Review the failure and use
|
|
112
116
|
`ur config set provider <id>` to switch explicitly.
|
|
113
117
|
|
|
118
|
+
OpenAI API uses Chat Completions by default. `openai_transport responses` is an
|
|
119
|
+
explicit opt-in to the native Responses adapter; it defaults to `store=false`
|
|
120
|
+
and supports semantic streaming, background polling/cancellation, WebSocket
|
|
121
|
+
continuation, server compaction, and deferred tool search. It does not change
|
|
122
|
+
OpenAI-compatible, OpenRouter, local, or subscription-CLI providers.
|
|
123
|
+
|
|
114
124
|
## Provider-scoped model selection
|
|
115
125
|
|
|
116
126
|
UR-Nexus shows providers first, then only models available for the selected provider. This prevents incompatible model/provider pairs and keeps API-key, local/server, subscription, and external app bridge model lists separate. The generic `subscription` entry has no models unless a real independent subscription runtime is configured; UR does not list fake subscription models.
|
|
@@ -120,7 +130,7 @@ UR-Nexus shows providers first, then only models available for the selected prov
|
|
|
120
130
|
When you select a UR-native provider and model, every agent request is routed
|
|
121
131
|
through that provider's backend:
|
|
122
132
|
|
|
123
|
-
- **API providers** make direct HTTP calls in each provider's native wire format: Anthropic uses `x-api-key` + `anthropic-version` against `/v1/messages`; OpenAI uses `Authorization: Bearer` against `/v1/chat/completions
|
|
133
|
+
- **API providers** make direct HTTP calls in each provider's native wire format: Anthropic uses `x-api-key` + `anthropic-version` against `/v1/messages`; OpenAI uses `Authorization: Bearer` against `/v1/chat/completions` by default or `/v1/responses` when explicitly selected; Gemini uses `x-goog-api-key` against `…:generateContent`; OpenRouter uses its OpenAI-compatible chat endpoint.
|
|
124
134
|
- **Local/server providers** connect to the configured local or OpenAI-compatible endpoint (`/v1/chat/completions` for LM Studio, llama.cpp and vLLM; the native tags/chat API for Ollama)
|
|
125
135
|
- **Subscription CLI providers** (Codex CLI, Claude Code, Gemini CLI,
|
|
126
136
|
Antigravity) dispatch the turn through the vendor's official CLI using your
|
package/documentation/app.js
CHANGED
|
@@ -49,9 +49,9 @@ const featureGroups = [
|
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
51
|
title: 'Interoperability',
|
|
52
|
-
tags: ['MCP', 'plugins', 'A2A', 'SDK'],
|
|
53
|
-
text: 'MCP servers, plugin marketplaces
|
|
54
|
-
commands: ['ur mcp', 'ur plugin', 'ur a2a', 'ur sdk'],
|
|
52
|
+
tags: ['MCP', 'plugins', 'A2A', 'AG-UI', 'SDK'],
|
|
53
|
+
text: 'MCP servers, plugin marketplaces, native and cross-client Agent Skills, ACP editor transport, A2A Agent Card/task bindings, a secure AG-UI frontend stream, delegation tokens, and a TypeScript SDK wrapper around headless UR.',
|
|
54
|
+
commands: ['ur mcp', 'ur plugin', 'ur acp', 'ur a2a', 'ur ag-ui', 'ur sdk'],
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
title: 'Providers and auth',
|
|
@@ -86,16 +86,23 @@ const commands = [
|
|
|
86
86
|
name: 'acp',
|
|
87
87
|
category: 'Interop',
|
|
88
88
|
aliases: [],
|
|
89
|
-
summary: '
|
|
90
|
-
examples: ['ur acp serve --port 8123', 'ur acp status --json'
|
|
89
|
+
summary: 'Run official-SDK ACP v1 over stdio, or manage the distinct UR HTTP JSON-RPC API used by bundled IDE integrations.',
|
|
90
|
+
examples: ['ur acp stdio', 'ur acp serve --port 8123', 'ur acp status --json'],
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
name: 'a2a',
|
|
94
94
|
category: 'Interop',
|
|
95
95
|
aliases: [],
|
|
96
|
-
summary: 'A2A
|
|
96
|
+
summary: 'Run negotiated strict A2A v1 JSON-RPC/HTTP+JSON beside the stable-SDK v0.3 binding, or inspect cards and delegation tokens.',
|
|
97
97
|
examples: ['ur a2a card', 'ur a2a serve --dry-run', 'ur a2a token mint --secret "$UR_A2A_DELEGATION_SECRET" --scope coding,review'],
|
|
98
98
|
},
|
|
99
|
+
{
|
|
100
|
+
name: 'ag-ui',
|
|
101
|
+
category: 'Interop',
|
|
102
|
+
aliases: [],
|
|
103
|
+
summary: 'Start the secure AG-UI HTTP/SSE adapter for user-facing applications with official events and truthful capability discovery.',
|
|
104
|
+
examples: ['ur ag-ui serve', 'ur ag-ui serve --allow-origin https://app.example', 'UR_AG_UI_TOKEN="$TOKEN" ur ag-ui serve --host 0.0.0.0'],
|
|
105
|
+
},
|
|
99
106
|
{
|
|
100
107
|
name: 'bg',
|
|
101
108
|
category: 'Agent Platform',
|
|
@@ -718,6 +725,11 @@ const examples = [
|
|
|
718
725
|
text: 'Expose Agent Card discovery and token-gated task execution.',
|
|
719
726
|
code: 'ur a2a card\nur a2a serve --host 127.0.0.1 --port 8765 --dry-run',
|
|
720
727
|
},
|
|
728
|
+
{
|
|
729
|
+
title: 'AG-UI frontend stream',
|
|
730
|
+
text: 'Expose the official-schema SSE adapter on loopback, or require a bearer token and exact browser origin for network use.',
|
|
731
|
+
code: 'ur ag-ui serve\nUR_AG_UI_TOKEN="$TOKEN" ur ag-ui serve --host 0.0.0.0 --allow-origin https://app.example',
|
|
732
|
+
},
|
|
721
733
|
{
|
|
722
734
|
title: 'Delegated A2A token',
|
|
723
735
|
text: 'Mint an attenuated token scoped to selected skills.',
|
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.
|
|
47
|
+
<p class="eyebrow">Version 1.47.1</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>
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
</article>
|
|
72
72
|
<article>
|
|
73
73
|
<strong>Agent platform</strong>
|
|
74
|
-
<span>Workflows, patterns, crews, goals, evals, memory, knowledge, A2A, provenance, and templates are first-class commands.</span>
|
|
74
|
+
<span>Workflows, patterns, crews, goals, evals, memory, knowledge, ACP, A2A, AG-UI, provenance, and templates are first-class commands.</span>
|
|
75
75
|
</article>
|
|
76
76
|
<article>
|
|
77
77
|
<strong>Plugin marketplace</strong>
|
|
@@ -158,12 +158,14 @@ ur provider doctor agy</code></pre>
|
|
|
158
158
|
ur config set provider openai-api
|
|
159
159
|
ur config set base_url http://localhost:11434/v1
|
|
160
160
|
ur config set model qwen3-coder:480b-cloud
|
|
161
|
-
ur config set provider.fallback ollama
|
|
162
|
-
|
|
161
|
+
ur config set provider.fallback ollama
|
|
162
|
+
ur config set openai_transport responses
|
|
163
|
+
ur config set responses.store false</code></pre>
|
|
164
|
+
<p>API providers require explicit selection and read keys from a key stored via <code>ur connect</code> (OS keychain) or from environment variables. OpenAI Responses is opt-in and privacy-first; Chat Completions remains the default. Local providers include Ollama, LM Studio, llama.cpp, and vLLM.</p>
|
|
163
165
|
</article>
|
|
164
166
|
<article>
|
|
165
167
|
<h3>Status bar and updates</h3>
|
|
166
|
-
<pre><code>Ollama | llama3 | ask | main | update 1.
|
|
168
|
+
<pre><code>Ollama | llama3 | ask | main | update 1.47.1 available</code></pre>
|
|
167
169
|
<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>
|
|
168
170
|
</article>
|
|
169
171
|
<article>
|
|
@@ -298,13 +300,14 @@ ur test-first install</code></pre>
|
|
|
298
300
|
ur safety check --command "rm -rf build"
|
|
299
301
|
ur context-pack scan
|
|
300
302
|
ur context-pack remember --decision "Use manifest commands first"
|
|
303
|
+
ur context-pack memory verify
|
|
301
304
|
ur context-pack compress</code></pre>
|
|
302
305
|
</article>
|
|
303
306
|
|
|
304
307
|
<article>
|
|
305
308
|
<h3>Start the ACP server and run a prompt pool</h3>
|
|
306
309
|
<ol>
|
|
307
|
-
<li>Start the Agent
|
|
310
|
+
<li>Start the Agent Client Protocol server for IDE extensions.</li>
|
|
308
311
|
<li>Run one or more prompts in non-interactive mode with concurrency.</li>
|
|
309
312
|
<li>Capture per-prompt outputs to a directory.</li>
|
|
310
313
|
</ol>
|
|
@@ -314,6 +317,18 @@ ur exec "add tests for the parser" --concurrency 4 --json
|
|
|
314
317
|
ur exec --file prompts.jsonl --output-dir ./outputs --dry-run</code></pre>
|
|
315
318
|
</article>
|
|
316
319
|
|
|
320
|
+
<article>
|
|
321
|
+
<h3>Connect a user-facing app with AG-UI</h3>
|
|
322
|
+
<ol>
|
|
323
|
+
<li>Start the official-schema HTTP/SSE adapter on loopback.</li>
|
|
324
|
+
<li>Inspect its truthful capability document.</li>
|
|
325
|
+
<li>For browser or network use, require a bearer token and exact allowed origin.</li>
|
|
326
|
+
</ol>
|
|
327
|
+
<pre><code>ur ag-ui serve
|
|
328
|
+
curl http://127.0.0.1:8977/ag-ui/capabilities
|
|
329
|
+
UR_AG_UI_TOKEN="$TOKEN" ur ag-ui serve --host 0.0.0.0 --allow-origin https://app.example</code></pre>
|
|
330
|
+
</article>
|
|
331
|
+
|
|
317
332
|
<article>
|
|
318
333
|
<h3>Use a multi-agent pattern</h3>
|
|
319
334
|
<ol>
|
|
@@ -477,8 +492,9 @@ ur safety check --command "rm -rf build"</code></pre>
|
|
|
477
492
|
<h3>Project context</h3>
|
|
478
493
|
<pre><code>ur context-pack scan
|
|
479
494
|
ur context-pack remember --constraint "Run command evidence before success claims"
|
|
495
|
+
ur context-pack memory verify
|
|
480
496
|
ur context-pack compress</code></pre>
|
|
481
|
-
<p>Context packs summarize architecture
|
|
497
|
+
<p>Context packs summarize architecture and preserve provenance-rich, hash-chained task memory under <code>.ur/context</code>, with verification, quarantine, and rollback recovery.</p>
|
|
482
498
|
</article>
|
|
483
499
|
<article>
|
|
484
500
|
<h3>Verifier</h3>
|
|
@@ -493,9 +509,12 @@ UR_VERIFIER_AUTO_SUBAGENT=1</code></pre>
|
|
|
493
509
|
<h3>MCP and plugins</h3>
|
|
494
510
|
<pre><code>ur mcp list
|
|
495
511
|
ur mcp add-json local-tools '{"command":"node","args":["server.js"]}'
|
|
512
|
+
ur mcp serve-http --port 8976
|
|
513
|
+
ur skill verify <name-or-directory>
|
|
514
|
+
ur ag-ui serve --help
|
|
496
515
|
ur plugin list
|
|
497
516
|
ur plugin install <plugin></code></pre>
|
|
498
|
-
<p>MCP
|
|
517
|
+
<p>The opt-in stateless MCP HTTP adapter exposes negotiated Tasks and Apps. Portable skills load from native and cross-client roots with strict validation and Ed25519 provenance. AG-UI provides a bounded, opt-in frontend stream. Treat MCP servers and plugins as trusted code.</p>
|
|
499
518
|
</article>
|
|
500
519
|
<article>
|
|
501
520
|
<h3>IDE inline diffs</h3>
|
|
@@ -56,6 +56,7 @@ ur safety check --command "rm -rf build"
|
|
|
56
56
|
ur context-pack scan
|
|
57
57
|
ur context-pack remember --decision "Use package scripts before ad hoc commands"
|
|
58
58
|
ur context-pack remember --constraint "Never expose secret values"
|
|
59
|
+
ur context-pack memory verify
|
|
59
60
|
ur context-pack compress
|
|
60
61
|
```
|
|
61
62
|
|
|
@@ -90,3 +91,20 @@ Run the opt-in A2A server on loopback:
|
|
|
90
91
|
ur a2a serve --dry-run
|
|
91
92
|
curl http://127.0.0.1:8765/healthz
|
|
92
93
|
```
|
|
94
|
+
|
|
95
|
+
Inspect signed skills and the stateless MCP adapter:
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
ur skill verify <name-or-directory>
|
|
99
|
+
ur mcp serve-http --help
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Inspect the provider-free AG-UI surface and cross-client skill discovery:
|
|
103
|
+
|
|
104
|
+
```sh
|
|
105
|
+
ur ag-ui serve --help
|
|
106
|
+
ur skill verify <name-or-directory>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Portable skills may be placed in `.agents/skills/<name>/SKILL.md`; project
|
|
110
|
+
skills override user skills, and native `.ur/skills/` wins at the same scope.
|
package/examples/agent_trends.md
CHANGED
|
@@ -3,11 +3,16 @@
|
|
|
3
3
|
- Run `ur agent-trends` for a human-readable coverage report.
|
|
4
4
|
- Run `ur agent-trends --json` when another tool needs structured coverage data.
|
|
5
5
|
- Run `ur a2a card` to print UR's Agent Card metadata for A2A discovery.
|
|
6
|
+
- Run `ur ag-ui serve --help` to inspect the user-facing HTTP/SSE adapter
|
|
7
|
+
without starting a model call.
|
|
6
8
|
- Run `ur test-first --dry-run` to preview the detected compile/test/lint
|
|
7
9
|
evidence loop for the current project.
|
|
8
10
|
- Run `ur safety check --command "rm -rf build"` to preview command permission
|
|
9
11
|
class, destructive approval, and sandbox posture.
|
|
10
12
|
- Run `ur context-pack scan` and `ur context-pack compress` to preserve
|
|
11
13
|
manifest-derived architecture context and task memory.
|
|
14
|
+
- Run `ur context-pack memory verify`, `ur skill verify <name>`, and
|
|
15
|
+
`ur mcp serve-http --help`, and `ur ag-ui serve --help` to inspect the v1.47 integrity and protocol
|
|
16
|
+
surfaces without making a paid model call.
|
|
12
17
|
- Use `/agent-trends` inside a session before planning upgrades to local
|
|
13
18
|
runtime, MCP, A2A, memory, browser, eval, identity, or provenance workflows.
|
package/examples/mcp.md
CHANGED
|
@@ -5,3 +5,7 @@
|
|
|
5
5
|
their tools into the registry and runs them through the same approval +
|
|
6
6
|
evidence-ledger path as built-in tools (so MCP calls appear in `/evidence`).
|
|
7
7
|
- Risky MCP tools require approval before they run.
|
|
8
|
+
- `ur mcp serve` exposes the fail-closed stdio server. The separate
|
|
9
|
+
`UR_MCP_HTTP_TOKEN='<secret>' ur mcp serve-http` command starts the opt-in
|
|
10
|
+
stateless MCP 2026 HTTP surface with negotiated Tasks and a self-contained
|
|
11
|
+
App; off-loopback use requires bearer authentication.
|
package/examples/memory.md
CHANGED
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
`.ur/context/architecture.md` from package scripts, instruction files,
|
|
10
10
|
`.ur/verify.json`, and safety config.
|
|
11
11
|
- `ur context-pack remember --decision|--constraint|--command|--diff|--note`
|
|
12
|
-
appends
|
|
13
|
-
|
|
12
|
+
appends provenance-rich, hash-chained task memory to
|
|
13
|
+
`.ur/context/task-memory.jsonl`; `ur context-pack memory verify|quarantine`
|
|
14
|
+
checks or repairs a corrupt tail, `memory rollback --to <entry-id>` preserves
|
|
15
|
+
a private backup before truncation, and `compress` writes
|
|
16
|
+
`.ur/context/compressed.md`.
|
|
14
17
|
- `/ur-init` scaffolds the `.ur/` asset folder (docs, superpowers, brainstorming,
|
|
15
18
|
memory, prompts).
|
|
@@ -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.
|
|
5
|
+
"version": "1.47.1",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ur-agent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.47.1",
|
|
4
4
|
"description": "UR-Nexus — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1.3.14",
|
|
@@ -71,7 +71,9 @@
|
|
|
71
71
|
"prepack": "bun run release:check"
|
|
72
72
|
},
|
|
73
73
|
"overrides": {
|
|
74
|
-
"
|
|
74
|
+
"@hono/node-server": "2.0.11",
|
|
75
|
+
"body-parser": "2.3.0",
|
|
76
|
+
"fast-uri": "3.1.4",
|
|
75
77
|
"form-data": "4.0.6",
|
|
76
78
|
"hono": "4.12.30",
|
|
77
79
|
"ip-address": "10.2.0",
|
|
@@ -79,6 +81,8 @@
|
|
|
79
81
|
},
|
|
80
82
|
"dependencies": {
|
|
81
83
|
"@a2a-js/sdk": "0.3.14",
|
|
84
|
+
"@ag-ui/core": "0.0.57",
|
|
85
|
+
"@ag-ui/encoder": "0.0.57",
|
|
82
86
|
"diff2html": "^3.4.56",
|
|
83
87
|
"playwright-core": "^1.61.1",
|
|
84
88
|
"sharp": "^0.35.3"
|
|
@@ -93,6 +97,9 @@
|
|
|
93
97
|
"@opentelemetry/api": "1.9.1",
|
|
94
98
|
"@opentelemetry/api-logs": "0.220.0",
|
|
95
99
|
"@opentelemetry/core": "2.9.0",
|
|
100
|
+
"@opentelemetry/exporter-logs-otlp-http": "0.220.0",
|
|
101
|
+
"@opentelemetry/exporter-metrics-otlp-http": "0.220.0",
|
|
102
|
+
"@opentelemetry/exporter-trace-otlp-http": "0.220.0",
|
|
96
103
|
"@opentelemetry/resources": "2.9.0",
|
|
97
104
|
"@opentelemetry/sdk-logs": "0.220.0",
|
|
98
105
|
"@opentelemetry/sdk-metrics": "2.9.0",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: reproducible-release
|
|
3
|
+
display-name: Reproducible Release
|
|
3
4
|
description: Use when preparing a UR-style engineering change for release. Enforces spec -> plan -> patch -> test -> verify -> document -> benchmark -> reproduce, with explicit command evidence and rollback notes.
|
|
4
5
|
version: 0.1.0
|
|
5
6
|
---
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: github-workflow
|
|
3
|
+
display-name: GitHub Workflow
|
|
3
4
|
description: Reference for operating GitHub safely from an agent — the official MCP server toolsets, gh CLI cheatsheet, token scopes, pull-request etiquette, and guardrails. Use when reviewing or creating PRs, triaging issues, or inspecting CI on GitHub.
|
|
4
5
|
version: 0.1.0
|
|
5
6
|
---
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: gitlab-workflow
|
|
3
|
+
display-name: GitLab Workflow
|
|
3
4
|
description: Reference for operating GitLab from an agent — the official MCP server transport and prerequisites, glab CLI cheatsheet, token scopes, merge-request etiquette, pipeline triage, and guardrails. Use when reviewing or creating MRs, triaging issues, or inspecting CI/CD on GitLab.
|
|
4
5
|
version: 0.1.0
|
|
5
6
|
---
|