ur-agent 1.46.0 → 1.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,43 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.47.0
4
+
5
+ - Added a secure, opt-in AG-UI HTTP/SSE adapter with official schema/encoder
6
+ integration, truthful capability discovery, ordered text/tool/state events,
7
+ cancellation, exact CORS, bearer protection for network exposure, resource
8
+ limits, redacted errors, and explicit rejection of unsupported capabilities.
9
+ - Added a dual-stack A2A server: the stable v0.3 SDK binding remains available,
10
+ while strict v1 ProtoJSON JSON-RPC and HTTP+JSON routes provide versioned
11
+ discovery, pagination, artifacts, cancellation, tenant isolation, durable
12
+ state, and compatibility coverage against the official A2A TCK.
13
+ - Completed the ACP v1 stdio lifecycle with private durable history,
14
+ `session/list`, `session/load`, `session/delete`, bounded ordered replay,
15
+ session modes, configuration options, available-command updates, and
16
+ cancellation-safe concurrent transport behavior.
17
+ - Added an opt-in MCP 2026-07-28 stateless HTTP adapter with strict request
18
+ metadata, negotiated Tasks and Apps extensions, owner-isolated durable tasks,
19
+ schema-referenced extension headers, cache/TTL discovery metadata, CORS,
20
+ bearer authentication, rate/concurrency limits, and corruption quarantine.
21
+ - Added an opt-in OpenAI Responses transport while retaining Chat Completions
22
+ as the default. It supports multimodal/tool translation, structured output,
23
+ semantic SSE streaming, background create/poll/resume/cancel, WebSocket
24
+ continuation, server compaction, deferred tool search, and privacy-first
25
+ `store: false` state handling. No paid API calls are required by its tests.
26
+ - Added explicit OpenTelemetry OTLP/console exporters and current GenAI
27
+ inference, agent, workflow, tool, memory, token, cache, latency,
28
+ time-to-first-chunk, inter-output-chunk latency, and error semantics. Export
29
+ and message-content capture remain disabled by default.
30
+ - Added strict Agent Skills validation, deterministic permission/tree digests,
31
+ Ed25519 signing and trusted-key verification, invocation-time integrity
32
+ rechecks, `ur skill verify|sign|keygen` commands, and deterministic discovery
33
+ from the cross-client `.agents/skills/` project/user locations.
34
+ - Upgraded project task memory to a tamper-evident provenance chain with atomic
35
+ private writes, cross-process locking, legacy anchoring, fail-closed reads,
36
+ verification, quarantine, and rollback commands.
37
+ - Hardened all new durable stores with bounded input/state, symlink rejection,
38
+ private permissions, atomic replacement, corruption handling, and focused
39
+ concurrency/adversarial tests.
40
+
3
41
  ## 1.46.0
4
42
 
5
43
  - Added a stable, official-SDK ACP v1 stdio agent with resumable sessions,
package/README.md CHANGED
@@ -265,6 +265,24 @@ ur config set provider.fallback ollama
265
265
  guidance. UR never switches providers automatically: inspect the failure and
266
266
  select the recovery provider explicitly with `ur config set provider <id>`.
267
267
 
268
+ OpenAI API traffic uses Chat Completions by default. The Responses transport is
269
+ an explicit, provider-scoped opt-in with privacy-conscious defaults:
270
+
271
+ ```sh
272
+ ur config set provider openai-api
273
+ ur config set openai_transport responses
274
+ ur config set responses.store false
275
+ ur config set responses.compact_threshold 20000
276
+ ur config set responses.tool_search hosted
277
+ ```
278
+
279
+ The Responses adapter supports semantic SSE streaming, background
280
+ create/retrieve/poll/cancel, WebSocket continuation, server compaction, and
281
+ deferred tool discovery. `store` defaults to `false`; the durable local cursor
282
+ store records identifiers and status only. Compacted context is persisted only
283
+ when `UR_OPENAI_RESPONSES_STATE_KEY` contains a 32-byte encryption key. Return
284
+ to the default with `ur config set openai_transport chat-completions`.
285
+
268
286
  Provider config accepts canonical IDs and common aliases. Examples:
269
287
  `openai-api`, `anthropic-api`, `gemini-api`, `openrouter`, `ollama`,
270
288
  `lmstudio`, `LM Studio`, `llama.cpp`, `vllm`, and the subscription CLIs
@@ -329,8 +347,9 @@ identity line in the system prompt reflects it too:
329
347
 
330
348
  - **API** providers call each service in its native wire format — Anthropic
331
349
  `x-api-key` + `anthropic-version` on `/v1/messages`, OpenAI `Bearer` on
332
- `/v1/chat/completions`, Gemini `x-goog-api-key` on `:generateContent`,
333
- OpenRouter on its OpenAI-compatible chat endpoint.
350
+ `/v1/chat/completions` by default or `/v1/responses` when explicitly
351
+ selected, Gemini `x-goog-api-key` on `:generateContent`, and OpenRouter on its
352
+ OpenAI-compatible chat endpoint.
334
353
  - **Local/server** providers call the configured endpoint (`/v1/chat/completions`
335
354
  for LM Studio/llama.cpp/vLLM; the native API for Ollama).
336
355
  - **Subscription CLIs** (Codex, Claude Code, Gemini, Antigravity) are external
@@ -369,7 +388,7 @@ as first-class subcommands in the shipped CLI.
369
388
  | `ur test-first` | Detect the project stack, run compile/test/lint commands, store failure traces, and install edit-time verify gates. |
370
389
  | `ur safety` | Inspect or initialize project shell safety policy and evaluate command risk before execution. |
371
390
  | `ur sandbox` | Inspect and manage the sandbox/permission architecture: status, dependency check, policy init, and command approval levels. |
372
- | `ur context-pack` | Write project architecture context, task memory, and compressed context under `.ur/`. Supports memory kinds `decision`, `constraint`, `command`, `diff`, `note`, `architecture`, `preference`, `attempt`, `accepted`, and `rejected`. |
391
+ | `ur context-pack` | Write project architecture context, tamper-evident task memory, and compressed context under `.ur/`; verify, quarantine, or roll back the memory chain. |
373
392
  | `/hooks` | Inspect lifecycle hooks (`BeforeEdit`, `AfterEdit`, `BeforeCommand`, `AfterCommand`, `BeforeCommit`, `OnFailure`) configured via settings files. |
374
393
  | `ur bg` | Run and manage detached local background agents with optional worktrees and PR creation. |
375
394
  | `ur worktree` | List, inspect, and clean up UR agent worktrees. |
@@ -402,14 +421,16 @@ as first-class subcommands in the shipped CLI.
402
421
  | `ur auth gemini` | Use the official Gemini CLI login flow where supported. |
403
422
  | `ur auth antigravity` | Use the official Antigravity CLI login flow where supported. |
404
423
  | `ur config set` | Persist safe non-secret provider settings such as provider, model, base URL, command path, and fallback. |
405
- | `ur mcp` | Configure MCP servers or expose fail-closed, schema-validated built-in tools over stdio. |
424
+ | `ur mcp` | Configure MCP servers, expose fail-closed built-in tools over stdio, or run the opt-in stateless MCP 2026 HTTP adapter with Tasks and Apps. |
425
+ | `ur skill` | Initialize, run, strictly verify, Ed25519-sign, and create trusted signing keys for portable skills. |
426
+ | `ur ag-ui serve` | Start the secure AG-UI HTTP/SSE adapter for user-facing applications with truthful capability discovery. |
406
427
  | `ur plugin` | Install, update, enable, disable, and validate UR plugins that can add MCP tools, skills, templates, validators, language adapters, LSP servers, agents, hooks, output styles, and commands. |
407
428
  | `ur role-mode` | Install built-in Architect, Code, Debug, and Ask role modes. |
408
429
  | `ur acp` | Run official-SDK ACP v1 over stdio, or manage the separate UR HTTP JSON-RPC server. |
409
430
  | `ur exec` | Run one or more prompts in non-interactive mode with optional concurrency. |
410
431
  | `ur ide diff` | Capture editor-readable inline diff bundles. |
411
- | `ur a2a card` | Print an A2A Agent Card preview. |
412
- | `ur a2a serve` | Start the opt-in official-SDK A2A v0.3 JSON-RPC binding and UR compatibility task API. |
432
+ | `ur a2a card` | Print the v0.3 Agent Card preview; the live server negotiates a separate strict v1 card. |
433
+ | `ur a2a serve` | Start opt-in A2A v0.3 plus v1 JSON-RPC/HTTP+JSON bindings and the separate UR compatibility task API. |
413
434
  | `ur sdk` | Show programmatic headless usage and scaffold SDK examples. |
414
435
  | `ur trigger` | Parse a GitHub/Slack webhook payload and optionally launch a headless UR run. |
415
436
  | `ur agent-templates` | List or install reusable project agent templates. |
@@ -558,6 +579,9 @@ ur context-pack remember --preference "Use bun test over jest"
558
579
  ur context-pack remember --accepted "Use p-map for bounded concurrency" --scope project
559
580
  ur context-pack remember --rejected "Switch to esbuild" --alternative-to "Keep bun bundle"
560
581
  ur context-pack remember --attempt "Tried Deno runtime" --status superseded
582
+ ur context-pack memory verify
583
+ ur context-pack memory quarantine
584
+ ur context-pack memory rollback --to <entry-id>
561
585
  ur context-pack compress
562
586
  ur ci-loop --command "bun test" --cwd . --max-attempts 3 --dry-run
563
587
  ur bg run "fix the flaky parser test" --worktree --dry-run
@@ -569,6 +593,10 @@ ur code-index repo build
569
593
  ur code-index repo search "rate limiter"
570
594
  ur skill init security-review
571
595
  ur skill run security-review "src/auth.ts"
596
+ ur skill verify security-review --require-trusted
597
+ ur skill keygen release --out ~/.ur/keys/release.pem
598
+ ur skill sign security-review --key ~/.ur/keys/release.pem --key-id release
599
+ UR_MCP_HTTP_TOKEN='<secret>' ur mcp serve-http --port 8976
572
600
  ur artifacts capture-tests --command "bun test"
573
601
  ur artifacts serve --port 4180
574
602
  ur agent-task pr --create --dry-run
@@ -585,14 +613,18 @@ UR reads repository instructions and local runtime state from project files:
585
613
 
586
614
  - `AGENTS.md` and `UR.md` provide shared project instructions.
587
615
  - `UR.local.md` is for private local instructions.
588
- - `.ur/skills/` stores project skills.
616
+ - `.ur/skills/` stores native project skills; `.agents/skills/` is the
617
+ cross-client Agent Skills location. User equivalents live under `~/.ur/skills/`
618
+ and `~/.agents/skills/`, with deterministic project/native precedence.
589
619
  - `.ur/agents/` stores custom agents and role modes.
590
620
  - `.ur/safety-policy.json` configures project shell safety rules for read,
591
621
  write, execute, and network command classes.
592
622
  - `.ur/project-manifest.json` and `.ur/context/` hold architecture summaries,
593
623
  task memory, compressed context, and project memory including architecture
594
- decisions, preferred commands, failed attempts, accepted patterns, and rejected
595
- approaches.
624
+ decisions, preferred commands, failed attempts, accepted patterns, and
625
+ rejected approaches. Task-memory v2 entries include provenance and an
626
+ integrity chain; corrupt tails can be quarantined without discarding the
627
+ verified prefix.
596
628
  - `.ur/specs/`, `.ur/artifacts/`, `.ur/automations/`, `.ur/test-first/`,
597
629
  `.ur/memory/`, and `.ur/index/` hold workflow state, review artifacts,
598
630
  scheduled jobs, failure traces, memory, and indexes.
@@ -624,6 +656,26 @@ settings, generated indexes, memory, logs, and secrets out of Git.
624
656
  - `plugins/community/` stages contributed plugins.
625
657
  - `plugins/examples/` contains plugin templates users can copy.
626
658
 
659
+ ## OpenTelemetry
660
+
661
+ Telemetry export is off unless an operator explicitly configures a signal:
662
+
663
+ ```sh
664
+ OTEL_TRACES_EXPORTER=otlp \
665
+ OTEL_METRICS_EXPORTER=otlp \
666
+ OTEL_LOGS_EXPORTER=otlp \
667
+ OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4318 \
668
+ ur
669
+ ```
670
+
671
+ UR emits bounded OpenTelemetry GenAI inference, agent, workflow, tool, and
672
+ memory spans plus duration, token, streaming time-to-first-chunk, and
673
+ inter-output-chunk latency metrics. Raw prompts, system instructions, tool
674
+ arguments/results, and memory records are omitted by default; set
675
+ `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true` only inside an
676
+ appropriately secured telemetry environment. `OTEL_SDK_DISABLED=true` is the
677
+ global kill switch.
678
+
627
679
  ## Safety Model
628
680
 
629
681
  UR can read files, edit code, execute commands, and call configured tools, so
@@ -747,6 +799,7 @@ release until that GitHub run is green.
747
799
  - [IDE Guide](docs/IDE.md)
748
800
  - [ACP Guide](docs/ACP.md)
749
801
  - [A2A Guide](docs/A2A.md)
802
+ - [AG-UI Guide](docs/AG_UI.md)
750
803
  - [Plugin Guide](docs/plugins.md)
751
804
  - [Validation Runbook](docs/VALIDATION.md)
752
805
  - [Release Runbook](RELEASE.md)