ur-agent 1.45.6 → 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 +69 -0
- package/QUALITY.md +8 -3
- package/README.md +67 -13
- package/RELEASE.md +9 -6
- package/dist/cli.js +73656 -36080
- package/docs/A2A.md +180 -0
- package/docs/ACP.md +69 -17
- package/docs/AGENT_FEATURES.md +64 -7
- package/docs/AGENT_TRENDS.md +91 -26
- package/docs/AG_UI.md +132 -0
- package/docs/CONFIGURATION.md +123 -3
- package/docs/DEVELOPMENT.md +1 -0
- package/docs/IDE.md +20 -17
- package/docs/TROUBLESHOOTING.md +5 -3
- package/docs/USAGE.md +34 -4
- package/docs/VALIDATION.md +31 -1
- package/docs/providers.md +15 -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/README.md +12 -5
- package/extensions/jetbrains-ur/build.gradle.kts +22 -6
- package/extensions/jetbrains-ur/gradle.properties +1 -0
- package/extensions/jetbrains-ur/settings.gradle.kts +4 -0
- package/extensions/jetbrains-ur/src/main/kotlin/dev/urnexus/SendSelectionAction.kt +39 -5
- package/extensions/jetbrains-ur/src/main/kotlin/dev/urnexus/UrAcpClient.kt +52 -20
- package/extensions/jetbrains-ur/src/main/kotlin/dev/urnexus/UrToolWindowFactory.kt +7 -4
- package/extensions/jetbrains-ur/src/main/resources/META-INF/plugin.xml +1 -1
- package/extensions/vscode-ur-inline-diffs/README.md +6 -2
- package/extensions/vscode-ur-inline-diffs/out/extension.js +328 -157
- package/extensions/vscode-ur-inline-diffs/package.json +33 -5
- package/package.json +70 -56
- 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/A2A.md
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Agent2Agent (A2A)
|
|
2
|
+
|
|
3
|
+
UR exposes an opt-in agent-to-agent server with two deliberately distinct API
|
|
4
|
+
surfaces:
|
|
5
|
+
|
|
6
|
+
| Surface | Path | Contract |
|
|
7
|
+
| --- | --- | --- |
|
|
8
|
+
| Agent Card | `/.well-known/agent-card.json` | Strict v1 card by default; send `A2A-Version: 0.3` for the separate v0.3 card |
|
|
9
|
+
| A2A v1 JSON-RPC | `/` or `/a2a/v1/jsonrpc` | ProtoJSON, PascalCase lifecycle methods, `A2A-Version: 1.0` |
|
|
10
|
+
| A2A v1 HTTP+JSON | `/message:send`, `/tasks`, or `/a2a/v1/...` | Versioned REST lifecycle with pagination, artifacts, references, and cancellation |
|
|
11
|
+
| A2A v0.3 JSON-RPC | `/a2a/jsonrpc` | Stable v0.3 binding implemented with the official JavaScript SDK |
|
|
12
|
+
| UR compatibility API | `/a2a/tasks` and `/a2a/tasks/:id` | UR-specific REST-style background-task controls; not an A2A REST binding |
|
|
13
|
+
|
|
14
|
+
The two protocol versions deliberately use separate schemas and handlers. The
|
|
15
|
+
stable SDK remains pinned for v0.3; UR's dependency-free v1 compatibility layer
|
|
16
|
+
translates strict v1 messages and tasks onto the same bounded durable execution
|
|
17
|
+
engine. It is covered by UR tests and the official A2A TCK, but does not claim
|
|
18
|
+
certification by the prerelease JavaScript SDK.
|
|
19
|
+
|
|
20
|
+
## Start the server
|
|
21
|
+
|
|
22
|
+
Loopback without authentication is allowed for local development:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
ur a2a serve --port 8765
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
For authenticated use, keep secrets out of process arguments:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
UR_A2A_TOKEN='<random-secret>' ur a2a serve --port 8765
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
An off-loopback bind requires either `UR_A2A_TOKEN` or
|
|
35
|
+
`UR_A2A_DELEGATION_SECRET`. A wildcard bind also requires a reachable external
|
|
36
|
+
base URL so the Agent Card never advertises `0.0.0.0`:
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
UR_A2A_TOKEN='<random-secret>' \
|
|
40
|
+
ur a2a serve --host 0.0.0.0 --port 8765 \
|
|
41
|
+
--public-base-url https://agent.example.com
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Terminate TLS at a trusted reverse proxy for non-loopback deployments; bearer
|
|
45
|
+
tokens must not travel over plaintext networks.
|
|
46
|
+
|
|
47
|
+
## Agent Card and protocol calls
|
|
48
|
+
|
|
49
|
+
Inspect the live card:
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
curl -s http://127.0.0.1:8765/.well-known/agent-card.json
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Without a version header, discovery returns the v1 ProtoJSON card with
|
|
56
|
+
`supportedInterfaces` for JSON-RPC, HTTP+JSON, and the legacy v0.3 binding. Use
|
|
57
|
+
`A2A-Version: 0.3` to retrieve the standalone v0.3 SDK card. Both cards report
|
|
58
|
+
the installed UR version, skills, implemented capabilities, and only the
|
|
59
|
+
authentication schemes configured for that server; responses include
|
|
60
|
+
`Vary: A2A-Version`.
|
|
61
|
+
|
|
62
|
+
Send a blocking v1 message over JSON-RPC:
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
curl -s http://127.0.0.1:8765/a2a/v1/jsonrpc \
|
|
66
|
+
-H 'content-type: application/json' \
|
|
67
|
+
-H 'A2A-Version: 1.0' \
|
|
68
|
+
-H "authorization: Bearer $UR_A2A_TOKEN" \
|
|
69
|
+
-d '{
|
|
70
|
+
"jsonrpc":"2.0",
|
|
71
|
+
"id":"request-v1",
|
|
72
|
+
"method":"SendMessage",
|
|
73
|
+
"params":{
|
|
74
|
+
"configuration":{"blocking":true},
|
|
75
|
+
"message":{
|
|
76
|
+
"messageId":"message-v1",
|
|
77
|
+
"role":"ROLE_USER",
|
|
78
|
+
"parts":[{"text":"Review the current diff."}]
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}'
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
The v1 HTTP+JSON binding accepts `application/a2a+json` and exposes
|
|
85
|
+
`message:send`, task list/get/cancel, continuation, and artifact/reference
|
|
86
|
+
operations at the advertised transport root or under `/a2a/v1`. List cursors
|
|
87
|
+
are opaque and filter-bound. An optional tenant segment, for example
|
|
88
|
+
`/a2a/v1/acme/tasks`, requires a matching `tenant:acme` delegation scope.
|
|
89
|
+
|
|
90
|
+
Send a blocking v0.3 message:
|
|
91
|
+
|
|
92
|
+
```sh
|
|
93
|
+
curl -s http://127.0.0.1:8765/a2a/jsonrpc \
|
|
94
|
+
-H 'content-type: application/json' \
|
|
95
|
+
-H 'A2A-Version: 0.3' \
|
|
96
|
+
-H "authorization: Bearer $UR_A2A_TOKEN" \
|
|
97
|
+
-d '{
|
|
98
|
+
"jsonrpc":"2.0",
|
|
99
|
+
"id":"request-1",
|
|
100
|
+
"method":"message/send",
|
|
101
|
+
"params":{
|
|
102
|
+
"configuration":{"blocking":true},
|
|
103
|
+
"metadata":{"skill":"coding-agent"},
|
|
104
|
+
"message":{
|
|
105
|
+
"kind":"message",
|
|
106
|
+
"messageId":"message-1",
|
|
107
|
+
"role":"user",
|
|
108
|
+
"parts":[{"kind":"text","text":"Review the current diff."}]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}'
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Set `configuration.blocking` to `false` to receive a working task promptly,
|
|
115
|
+
then call `tasks/get`; use `tasks/cancel` for a nonterminal task. The v0.3
|
|
116
|
+
binding supports `message/send`, `tasks/get`, and `tasks/cancel`. Streaming,
|
|
117
|
+
resubscription, push notifications, and authenticated extended cards are not
|
|
118
|
+
advertised by either card and return protocol errors if requested.
|
|
119
|
+
|
|
120
|
+
`params.metadata.skill` selects an advertised skill; the default is
|
|
121
|
+
`coding-agent`. Requests with an unknown skill are rejected before execution.
|
|
122
|
+
Prompts enter the child process through stdin, and the child uses fail-closed
|
|
123
|
+
`dontAsk` permissions because this network binding has no interactive approval
|
|
124
|
+
bridge.
|
|
125
|
+
|
|
126
|
+
## Delegation tokens
|
|
127
|
+
|
|
128
|
+
UR delegation tokens are short-lived HMAC-signed capabilities bound to a
|
|
129
|
+
subject, one audience, an expiry, and explicit skill scopes:
|
|
130
|
+
|
|
131
|
+
```sh
|
|
132
|
+
export UR_A2A_DELEGATION_SECRET='<issuer-secret>'
|
|
133
|
+
TOKEN=$(ur a2a token mint --sub peer-a --aud ur-nexus \
|
|
134
|
+
--scope coding-agent --ttl 900)
|
|
135
|
+
printf '%s\n' "$TOKEN" | ur a2a token verify --token-stdin \
|
|
136
|
+
--aud ur-nexus --scope coding-agent
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The HMAC secret belongs only to the trusted issuer. A narrower child token can
|
|
140
|
+
be minted by that issuer, but an untrusted holder cannot attenuate the token
|
|
141
|
+
without the root signing secret. Protocol and compatibility tasks are isolated
|
|
142
|
+
by both delegation subject and skill, including get, continue, reference, and
|
|
143
|
+
cancel operations.
|
|
144
|
+
|
|
145
|
+
## UR compatibility task API
|
|
146
|
+
|
|
147
|
+
The compatibility API preserves older UR-specific background options:
|
|
148
|
+
|
|
149
|
+
- `POST /a2a/tasks` — submit `{ prompt, skill, mode, worktree, model, maxTurns }`
|
|
150
|
+
- `GET /a2a/tasks` — list tasks visible to the caller
|
|
151
|
+
- `GET /a2a/tasks/:id` — status
|
|
152
|
+
- `GET /a2a/tasks/:id/output` — bounded output metadata and logs
|
|
153
|
+
- `POST /a2a/tasks/:id/cancel` or `DELETE /a2a/tasks/:id` — cancel
|
|
154
|
+
|
|
155
|
+
These routes do not use the A2A wire schema and must not be presented to A2A
|
|
156
|
+
clients as an A2A REST endpoint. `skipPermissions` additionally requires the
|
|
157
|
+
static operator token or a delegation scope of `permissions:bypass`.
|
|
158
|
+
|
|
159
|
+
## Operational limits
|
|
160
|
+
|
|
161
|
+
The server bounds work with these environment variables:
|
|
162
|
+
|
|
163
|
+
- `UR_A2A_MAX_REQUEST_BYTES` and `UR_A2A_MAX_PROMPT_CHARS`
|
|
164
|
+
- `UR_A2A_MAX_OUTPUT_BYTES`
|
|
165
|
+
- `UR_A2A_MAX_SUBMISSIONS_PER_MINUTE`
|
|
166
|
+
- `UR_A2A_MAX_CONCURRENT_SUBMISSIONS`
|
|
167
|
+
- `UR_A2A_MAX_ACTIVE_TASKS`
|
|
168
|
+
- `UR_A2A_MAX_ACTIVE_TASKS_PER_OWNER`
|
|
169
|
+
- `UR_A2A_TASK_TIMEOUT_MS`
|
|
170
|
+
|
|
171
|
+
Protocol task state and v1 artifacts are persisted with owner, tenant, skill,
|
|
172
|
+
and version metadata under `.ur/a2a/` using owner-only permissions and atomic
|
|
173
|
+
writes. Retrieval, continuation, reference lookup, listing, and cancellation
|
|
174
|
+
all re-check the caller boundary. UR compatibility task state remains under the
|
|
175
|
+
same directory and links to `.ur/background/` output files.
|
|
176
|
+
|
|
177
|
+
References: [A2A v1 specification](https://a2a-protocol.org/latest/specification/),
|
|
178
|
+
[A2A v1 announcement](https://a2a-protocol.org/latest/announcing-1.0/),
|
|
179
|
+
[official JavaScript SDK](https://github.com/a2aproject/a2a-js), and
|
|
180
|
+
[official TCK](https://github.com/a2aproject/a2a-tck).
|
package/docs/ACP.md
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
# Agent
|
|
1
|
+
# Agent Client Protocol (ACP)
|
|
2
2
|
|
|
3
|
-
UR exposes
|
|
3
|
+
UR exposes one native ACP transport and one separate HTTP integration surface:
|
|
4
4
|
|
|
5
|
-
1. **Stdio ACP agent** (`ur acp stdio`) —
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
2. **HTTP JSON-RPC server** (`ur acp serve`) — a
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
1. **Stdio ACP agent** (`ur acp stdio`) — the stable ACP v1 wire protocol over
|
|
6
|
+
newline-delimited JSON-RPC, implemented with the official TypeScript SDK.
|
|
7
|
+
Use this for Zed and other native ACP clients.
|
|
8
|
+
2. **UR HTTP JSON-RPC compatibility server** (`ur acp serve`) — a separate
|
|
9
|
+
loopback endpoint for scripting, the experimental JetBrains plugin, tool
|
|
10
|
+
calls, and background tasks. It is not an ACP transport binding and is not
|
|
11
|
+
advertised as one.
|
|
11
12
|
|
|
12
13
|
## Stdio ACP agent
|
|
13
14
|
|
|
@@ -16,6 +17,8 @@ ur acp stdio
|
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
The editor launches this process and exchanges one JSON-RPC object per line.
|
|
20
|
+
The official SDK owns wire parsing, request concurrency, notification
|
|
21
|
+
semantics, and error envelopes.
|
|
19
22
|
|
|
20
23
|
Methods:
|
|
21
24
|
|
|
@@ -24,9 +27,16 @@ Methods:
|
|
|
24
27
|
| `initialize` | client → agent | `{ protocolVersion, agentCapabilities, authMethods }` |
|
|
25
28
|
| `authenticate` | client → agent | `{}` (no auth required for local stdio) |
|
|
26
29
|
| `session/new` | client → agent | `{ sessionId }` |
|
|
30
|
+
| `session/list` | client → agent | returns a 50-item page and opaque, filter-bound cursor |
|
|
31
|
+
| `session/load` | client → agent | restores a session and replays its exact ordered updates |
|
|
32
|
+
| `session/delete` | client → agent | deletes private metadata and history after stopping active work |
|
|
33
|
+
| `session/resume` | client → agent | restores identity without replaying history |
|
|
34
|
+
| `session/close` | client → agent | cancels active work and releases the in-process session |
|
|
35
|
+
| `session/set_mode` | client → agent | selects `default`, `acceptEdits`, or `plan` |
|
|
36
|
+
| `session/set_config_option` | client → agent | selects full tool updates or permission-only updates |
|
|
27
37
|
| `session/prompt` | client → agent | `{ stopReason }`, with streaming `session/update` notifications |
|
|
28
38
|
| `session/cancel` | client → agent (notification) | aborts the in-flight prompt |
|
|
29
|
-
| `
|
|
39
|
+
| `session/request_permission` | agent → client | asks the user to allow or reject a tool call |
|
|
30
40
|
|
|
31
41
|
During `session/prompt` the agent emits `session/update` notifications:
|
|
32
42
|
|
|
@@ -38,22 +48,64 @@ During `session/prompt` the agent emits `session/update` notifications:
|
|
|
38
48
|
```
|
|
39
49
|
|
|
40
50
|
`session/prompt` resolves with `{ "stopReason": "end_turn" }` (or `"cancelled"`
|
|
41
|
-
if a `session/cancel` arrived).
|
|
51
|
+
if a `session/cancel` arrived). Repeated prompts resume the underlying UR CLI
|
|
52
|
+
conversation for that ACP session. `session/resume` reconnects after an agent
|
|
53
|
+
restart without replay; `session/load` emits the bounded, exact stored update
|
|
54
|
+
sequence before current session information and available commands. UR stores
|
|
55
|
+
the ACP-to-CLI identity, working directory, modes/options, and append-only
|
|
56
|
+
history in private metadata under `~/.ur/acp/sessions/`. Writes are locked,
|
|
57
|
+
atomic, bounded, migration-aware, and fail closed on malformed state. MCP
|
|
58
|
+
credentials are never persisted there. Configure the agent with
|
|
59
|
+
`ur ide config zed`.
|
|
60
|
+
|
|
61
|
+
The stdio surface advertises text and resource-link prompt support, additional
|
|
62
|
+
workspace directories, MCP stdio/HTTP/SSE transports, load/list/delete,
|
|
63
|
+
resume/close, modes, configuration options, and available commands.
|
|
64
|
+
Client-provided MCP configuration is validated, written to a mode-`0600`
|
|
65
|
+
temporary file instead of argv, and removed after each turn. Image, audio, and
|
|
66
|
+
embedded-context capabilities are not advertised.
|
|
67
|
+
|
|
68
|
+
Tool calls that require approval are bridged to the client's native ACP
|
|
69
|
+
permission UI with allow-once, reject, and (when UR supplies a durable rule)
|
|
70
|
+
always-allow choices. Cancellation and client errors fail closed. The prompt is
|
|
71
|
+
sent over stdin rather than argv. Session count, prompt size, output size, and
|
|
72
|
+
runtime are bounded by `UR_ACP_STDIO_MAX_SESSIONS`,
|
|
73
|
+
`UR_ACP_STDIO_MAX_PROMPT_CHARS`, `UR_ACP_STDIO_MAX_OUTPUT_CHARS`, and
|
|
74
|
+
`UR_ACP_STDIO_PROMPT_TIMEOUT_MS`. History additionally enforces per-event,
|
|
75
|
+
event-count, total-byte, and discovery-scan limits.
|
|
42
76
|
|
|
43
77
|
## HTTP JSON-RPC server
|
|
44
78
|
|
|
45
79
|
```sh
|
|
46
|
-
ur acp serve --host 127.0.0.1 --port 8123 [--
|
|
80
|
+
UR_ACP_TOKEN='<secret>' ur acp serve --host 127.0.0.1 --port 8123 [--debug]
|
|
47
81
|
ur acp status [--json]
|
|
48
82
|
ur acp stop
|
|
49
83
|
```
|
|
50
84
|
|
|
51
|
-
Binds to loopback
|
|
52
|
-
|
|
53
|
-
|
|
85
|
+
Binds to loopback by default; binding off-loopback requires a bearer token.
|
|
86
|
+
Prefer `UR_ACP_TOKEN` because command-line secrets may be visible to other
|
|
87
|
+
local processes. `--debug` logs method names and outcomes—not request params or
|
|
88
|
+
secrets—to stderr. POST JSON-RPC to `/acp`; `GET /healthz` returns `{ ok: true }`.
|
|
89
|
+
|
|
90
|
+
Tool calls are schema-validated and pass through the normal permission engine.
|
|
91
|
+
Because the HTTP API has no interactive approval channel, requests that need an
|
|
92
|
+
approval fail closed. Requests, prompts, tool I/O, task submission rate, tool
|
|
93
|
+
call rate, concurrency, retained sessions/tasks, response size, and runtime are
|
|
94
|
+
bounded. A session may select an existing subdirectory of the configured server
|
|
95
|
+
workspace, but cannot escape that root (including through symlinks). Deployments
|
|
96
|
+
can tune these defaults with `UR_ACP_MAX_REQUESTS_PER_MINUTE`,
|
|
97
|
+
`UR_ACP_MAX_CONCURRENT_REQUESTS`, `UR_ACP_MAX_REQUEST_BYTES`,
|
|
98
|
+
`UR_ACP_MAX_RESPONSE_BYTES`, `UR_ACP_MAX_ERROR_CHARS`,
|
|
99
|
+
`UR_ACP_MAX_PROMPT_CHARS`, `UR_ACP_MAX_SESSIONS`,
|
|
100
|
+
`UR_ACP_MAX_ACTIVE_TASKS`, `UR_ACP_MAX_RETAINED_TASKS`,
|
|
101
|
+
`UR_ACP_MAX_TASKS_PER_MINUTE`, `UR_ACP_MAX_CONCURRENT_TASKS`,
|
|
102
|
+
`UR_ACP_MAX_TASK_OUTPUT_BYTES`, `UR_ACP_TASK_TIMEOUT_MS`,
|
|
103
|
+
`UR_ACP_MAX_TOOL_CALLS_PER_MINUTE`, `UR_ACP_MAX_CONCURRENT_TOOL_CALLS`,
|
|
104
|
+
`UR_ACP_TOOL_TIMEOUT_MS`, `UR_ACP_MAX_TOOL_INPUT_CHARS`, and
|
|
105
|
+
`UR_ACP_MAX_TOOL_OUTPUT_CHARS` environment variables.
|
|
54
106
|
|
|
55
107
|
Methods: `initialize` (returns `capabilities` and `workspaceRoot`),
|
|
56
|
-
`session/new`, `session/prompt`, `session/cancel`, `tools/list`, `tools/call`,
|
|
108
|
+
`session/new`, `session/prompt`, `session/cancel`, `session/close`, `tools/list`, `tools/call`,
|
|
57
109
|
`tasks/send` / `tasks/get` / `tasks/cancel`, `ide/diffCapture`, `ide/select`,
|
|
58
110
|
and `shutdown` (acknowledges, then stops the server).
|
|
59
111
|
|
|
@@ -75,8 +127,8 @@ curl -s http://127.0.0.1:8123/acp \
|
|
|
75
127
|
|
|
76
128
|
## Capabilities and limitations
|
|
77
129
|
|
|
78
|
-
- The stdio agent streams via `session/update`;
|
|
79
|
-
on the active provider.
|
|
130
|
+
- The stdio agent streams text deltas via `session/update`; chunk granularity
|
|
131
|
+
depends on the active provider's stream.
|
|
80
132
|
- The HTTP server returns unary responses (`streaming: false`); use the stdio
|
|
81
133
|
agent for incremental updates.
|
|
82
134
|
- Neither surface silently falls back to another provider; dispatch failures are
|
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -9,6 +9,62 @@ reproducible autonomous software engineering agent: every substantial task can
|
|
|
9
9
|
be driven as `spec -> plan -> patch -> test -> report -> rollback`, with the
|
|
10
10
|
spec as the durable source of truth and command evidence as the success gate.
|
|
11
11
|
|
|
12
|
+
## v1.47.0 Additions
|
|
13
|
+
|
|
14
|
+
- `ur ag-ui serve` adds a secure AG-UI HTTP/SSE boundary for user-facing
|
|
15
|
+
applications. Official schemas and encoding, truthful capability discovery,
|
|
16
|
+
full text/tool/state lifecycle events, cancellation, exact CORS, bearer
|
|
17
|
+
protection, redacted errors, and independent resource bounds are covered by
|
|
18
|
+
provider-free regression tests.
|
|
19
|
+
- A2A now runs v0.3 and v1 side by side. Strict v1 JSON-RPC and HTTP+JSON
|
|
20
|
+
bindings add version negotiation, tenant isolation, durable tasks and
|
|
21
|
+
artifacts, pagination, continuation, references, and cancellation without
|
|
22
|
+
removing the stable v0.3 SDK path.
|
|
23
|
+
- ACP stdio now implements durable list/load/delete/resume/close, bounded exact
|
|
24
|
+
history replay, modes, configuration options, and available commands in
|
|
25
|
+
addition to streaming prompts, permission requests, MCP servers, and roots.
|
|
26
|
+
- `ur mcp serve-http` exposes the opt-in stateless MCP 2026 compatibility
|
|
27
|
+
surface with Tasks and a self-contained Apps resource. It is loopback-only
|
|
28
|
+
without authentication and enforces request metadata, capability negotiation,
|
|
29
|
+
owner isolation, limits, private persistence, and corrupt-state quarantine.
|
|
30
|
+
- OpenAI users can opt into the Responses transport with
|
|
31
|
+
`ur config set openai_transport responses`. Chat Completions remains the
|
|
32
|
+
default; Responses defaults to `store=false` and supports streaming,
|
|
33
|
+
background polling/cancellation, WebSocket continuation, compaction, and
|
|
34
|
+
deferred tool search through tested provider adapters.
|
|
35
|
+
- OpenTelemetry export is explicit per signal. GenAI inference, agent,
|
|
36
|
+
workflow, tool, memory, duration, token, cache, response,
|
|
37
|
+
time-to-first-chunk, inter-output-chunk latency, and error fields follow
|
|
38
|
+
current semantic conventions, while prompts and tool/memory content stay
|
|
39
|
+
redacted unless the operator
|
|
40
|
+
separately opts in.
|
|
41
|
+
- Agent Skills receive strict open-spec validation and deterministic provenance.
|
|
42
|
+
`ur skill verify|sign|keygen` supports Ed25519 integrity manifests and trusted
|
|
43
|
+
keys; loaded skills are re-hashed immediately before execution. Native
|
|
44
|
+
`.ur/skills/` and standard cross-client `.agents/skills/` project/user roots
|
|
45
|
+
use explicit, deterministic precedence.
|
|
46
|
+
- Project task memory now has per-entry provenance, UUIDs, SHA-256 content
|
|
47
|
+
digests, an append-only hash chain, cross-process locks, private atomic writes,
|
|
48
|
+
and `ur context-pack memory verify|quarantine|rollback` recovery commands.
|
|
49
|
+
|
|
50
|
+
## v1.46.0 Additions
|
|
51
|
+
|
|
52
|
+
- Native ACP v1 stdio support now uses the official SDK and includes durable
|
|
53
|
+
sessions, resume/close, MCP server configuration, additional roots,
|
|
54
|
+
permission requests, cancellation, and streaming updates. The separate HTTP
|
|
55
|
+
automation API is documented as UR JSON-RPC rather than mislabelled ACP.
|
|
56
|
+
- A2A interoperability now uses the official stable JavaScript SDK for the
|
|
57
|
+
advertised v0.3 JSON-RPC binding, with authenticated discovery, scoped
|
|
58
|
+
delegation, durable tasks, cancellation, and bounded request execution.
|
|
59
|
+
- The VS Code Actions view can safely start, inspect, and cancel background
|
|
60
|
+
tasks, including isolated worktree execution. The JetBrains client now
|
|
61
|
+
propagates cancellation, rejects overlapping prompts, and closes sessions.
|
|
62
|
+
- Background-task state uses locked, atomic, private manifest writes with
|
|
63
|
+
corruption detection, structural limits, and symlink-safe artifact paths.
|
|
64
|
+
- Provider protocol handling, MCP validation, CI supply-chain controls, release
|
|
65
|
+
version checks, and secret-input paths received additional compatibility and
|
|
66
|
+
security coverage.
|
|
67
|
+
|
|
12
68
|
## v1.45.6 Additions
|
|
13
69
|
|
|
14
70
|
- Project verification approval is deduplicated per user turn. The agent asks
|
|
@@ -41,6 +97,7 @@ ur automation run nightly --dry-run
|
|
|
41
97
|
ur automation run-due
|
|
42
98
|
ur model-doctor
|
|
43
99
|
ur a2a serve --dry-run
|
|
100
|
+
ur ag-ui serve --help
|
|
44
101
|
ur bg run "fix the flaky parser test" --worktree --dry-run
|
|
45
102
|
ur test-first detect
|
|
46
103
|
ur test-first --dry-run
|
|
@@ -181,7 +238,7 @@ components instead of one giant prompt.
|
|
|
181
238
|
|
|
182
239
|
| Addition | Surface | What it adds |
|
|
183
240
|
| --- | --- | --- |
|
|
184
|
-
| ACP
|
|
241
|
+
| ACP and IDE transports | `ur acp stdio`; `ur acp serve\|stop\|status` | Official-SDK ACP v1 stdio agent for native ACP editors, plus a distinct UR HTTP JSON-RPC API for tools, tasks, scripts, and the experimental JetBrains plugin. |
|
|
185
242
|
| Non-interactive pool execution | `ur exec [prompts...]` | Run one or more prompts headlessly with optional concurrency, worktrees, output capture, and dry-run. |
|
|
186
243
|
| GitHub tool | `GitHub` | PR/issue/repo operations via the `gh` CLI. |
|
|
187
244
|
| API tool | `Api` | REST HTTP calls with JSON/text output. |
|
|
@@ -199,8 +256,8 @@ while keeping them project-local and manifest-backed:
|
|
|
199
256
|
| --- | --- | --- |
|
|
200
257
|
| Agent | `ur`, `ur agents`, `ur crew`, `ur bg`, `ur agent-templates` | `.ur/agents/`, `AGENTS.md`, `UR.md` |
|
|
201
258
|
| Rules | `ur context-pack scan`, `ur safety`, `/guardrails`, `/hooks` | `AGENTS.md`, `UR.md`, `.cursor/rules/*.mdc`, `.cursorrules`, `.ur/safety-policy.json`, `.ur/guardrails.json`, `.ur/hooks.json` |
|
|
202
|
-
| MCP | `ur mcp`,
|
|
203
|
-
| Skills | `/skills`, `/create-skill`,
|
|
259
|
+
| MCP | `ur mcp`, stdio mode, opt-in MCP 2026 HTTP Tasks/Apps, tools/resources | `.mcp.json`, `.ur/mcp/`, plugin manifests |
|
|
260
|
+
| Skills | `/skills`, `/create-skill`, `ur skill verify\|sign\|keygen`, bundled/plugin skills | `.ur/skills/`, `.agents/skills/`, user skills, plugin skill folders, trusted key store |
|
|
204
261
|
| CLI | `ur --help`, `ur -p`, `ur exec`, `ur acp`, workflow subcommands | `package.json` scripts, `.ur/project-manifest.json`, `.ur/verify.json` |
|
|
205
262
|
| Models | `/model`, `ur model-doctor`, model router, Ollama discovery | Ollama endpoint, settings, `OLLAMA_MODEL`, model metadata cache |
|
|
206
263
|
|
|
@@ -240,7 +297,7 @@ and route model work through the local Ollama-backed UR runtime.
|
|
|
240
297
|
| Auto compaction and memory retention | `compaction.autoThreshold`, `ur memory retention` | Configurable context compaction threshold plus TTL/max/decay pruning for `.ur/memory/*.jsonl` |
|
|
241
298
|
| Code-index auto-reindex | `codeIndex.autoReindex`, `ur code-index watch` | File watcher that rebuilds the local semantic code index after source changes |
|
|
242
299
|
| Live artifact steering | `ur artifacts comment <id> --feedback ... --task <bg_id>` | Artifact feedback is queued into the linked background task inbox and injected into active stream-json background agents as `priority: "now"` turns |
|
|
243
|
-
|
|
|
300
|
+
| Opt-in A2A + compatibility server | `ur a2a serve`, `/a2a/jsonrpc`, `/a2a/v1/*`, `/a2a/tasks` | Negotiated v1 JSON-RPC/HTTP+JSON and stable-SDK v0.3, plus clearly separate protected UR background-task compatibility routes |
|
|
244
301
|
| IDE inline diff bundles | `ur ide diff capture|list|show|comment|schema`, `extensions/vscode-ur-inline-diffs/` | Editor-readable `.ur/ide/diffs/` manifest, metadata, patch files, comments, plus a native VS Code tree/webview review extension |
|
|
245
302
|
| Benchmark adapters | `ur eval bench swe-bench|terminal-bench|aider-polyglot` | Imports local benchmark JSON/JSONL exports into UR eval suites without external downloads |
|
|
246
303
|
|
|
@@ -253,12 +310,12 @@ and route model work through the local Ollama-backed UR runtime.
|
|
|
253
310
|
| Model capability report | `ur model-doctor` | Local Ollama model inventory with context length, advertised capabilities, and likely vision/code readiness |
|
|
254
311
|
| Reusable agent templates | `ur agent-templates install` | Project agents for review, tests, browser QA, docs research, security, release notes, PR fixes, and memory curation |
|
|
255
312
|
| GitHub agent runner | `.github/workflows/ur.yml` scaffold | Opt-in CI entry point for manual prompts or `/ur` issue comments |
|
|
256
|
-
| A2A
|
|
313
|
+
| A2A interoperability | `ur a2a serve` | Version-negotiated strict v1 JSON-RPC/HTTP+JSON plus stable-SDK v0.3, durable tenant-isolated protocol state, and a separate UR compatibility API |
|
|
257
314
|
| Semantic memory index | `ur semantic-memory build|search` | Local memory index over durable memory, docs, README, and UR instructions |
|
|
258
315
|
| Claim provenance ledger | `ur claim-ledger add|list|validate` | Maps generated claims to web, file, MCP, tool, or user sources |
|
|
259
316
|
| Browser replay evals | `ur browser-qa list|validate|run` | Validates replay fixtures and performs lightweight target smoke checks |
|
|
260
317
|
| Permission and safety policy | `ur safety status|init|check` | Project-aware shell safety checks for destructive operations, sandbox recommendations, permission classes, and secret exfiltration denial |
|
|
261
|
-
| Project context pack | `ur context-pack scan|remember|compress` | Architecture manifest,
|
|
318
|
+
| Project context pack | `ur context-pack scan|remember|memory|compress` | Architecture manifest, provenance/hash-chained task memory with verify/quarantine/rollback, and compressed context summaries |
|
|
262
319
|
|
|
263
320
|
## Design Notes
|
|
264
321
|
|
|
@@ -268,7 +325,7 @@ tasks, custom agents, memory files, browser workflows, evidence commands, A2A
|
|
|
268
325
|
Agent Card export, and local Ollama routing; these surfaces make those
|
|
269
326
|
capabilities easier to discover and reuse.
|
|
270
327
|
|
|
271
|
-
Network-facing behavior, such as
|
|
328
|
+
Network-facing behavior, such as the opt-in A2A server or a GitHub bot that can
|
|
272
329
|
push code, should remain explicitly opt-in because it changes the trust and
|
|
273
330
|
permission boundary.
|
|
274
331
|
|
package/docs/AGENT_TRENDS.md
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
# Agent Trend Coverage
|
|
2
2
|
|
|
3
|
-
UR is a local-first terminal coding agent. This page tracks
|
|
4
|
-
current agent
|
|
3
|
+
UR is a provider-flexible, local-first terminal coding agent. This page tracks
|
|
4
|
+
how UR maps to current agent-platform trends and where future work should go
|
|
5
|
+
next. The factual comparison below is a **2026-07-15 research snapshot**; run
|
|
6
|
+
`ur agent-trends` for the versioned machine-readable report and re-check the
|
|
7
|
+
linked primary sources before acting on prerelease standards.
|
|
5
8
|
|
|
6
9
|
## Quick Commands
|
|
7
10
|
|
|
@@ -10,6 +13,7 @@ ur agent-trends
|
|
|
10
13
|
ur agent-trends --json
|
|
11
14
|
ur a2a card
|
|
12
15
|
ur a2a card --base-url https://example.com
|
|
16
|
+
ur ag-ui serve --help
|
|
13
17
|
ur agent-features
|
|
14
18
|
ur agent-features init
|
|
15
19
|
ur agent-templates install
|
|
@@ -66,12 +70,15 @@ Inside an interactive session:
|
|
|
66
70
|
|
|
67
71
|
| Trend | UR status | Current coverage | Professional next step |
|
|
68
72
|
| --- | --- | --- | --- |
|
|
69
|
-
|
|
|
70
|
-
| MCP tool ecosystem | Covered | `ur mcp`, MCP OAuth/XAA
|
|
71
|
-
|
|
|
73
|
+
| Provider-flexible, local-first runtime | Covered | Local Ollama; direct OpenAI, Anthropic, Gemini, OpenRouter, and OpenAI-compatible APIs; authenticated subscription-CLI adapters; explicit provider selection | Normalize capability discovery across providers and make automatic per-step routing opt-in |
|
|
74
|
+
| MCP tool ecosystem | Covered | `ur mcp`, MCP OAuth/XAA/elicitation, fail-closed bounded stdio tools, and the opt-in stateless MCP 2026 HTTP adapter | Track the final 2026 spec/SDK and add independent-client fixtures before promoting the adapter |
|
|
75
|
+
| MCP Tasks and MCP Apps | Covered | Negotiated Tasks lifecycle, owner-isolated durable state, and a self-contained Apps resource through `ur mcp serve-http` | Reconcile final extension schemas and broaden client interoperability tests |
|
|
76
|
+
| A2A / Agent Card interoperability | Covered | Stable-SDK v0.3 plus strict v1 ProtoJSON JSON-RPC/HTTP+JSON, negotiated cards, tenant isolation, durable artifacts, and TCK coverage | Adopt the stable v1 SDK when released; add signed-card verification and streaming only with truthful end-to-end tests |
|
|
77
|
+
| AG-UI agent-to-frontend interoperability | Covered | Official-schema HTTP/SSE adapter, truthful capabilities, ordered state/text/tool events, cancellation, exact CORS, bounded requests/output, and loopback-or-bearer security | Add independent frontend fixtures before advertising optional interrupts, binary/WebSocket transport, or client tools |
|
|
72
78
|
| Durable workflows and checkpoints | Covered | resume, rewind, `ur bg` background runs, optional worktrees/PRs, cron/workflow internals, file restore | Publish a checkpointed workflow format for repeated automations |
|
|
73
79
|
| Multi-agent orchestration | Covered | built-in planning, exploration, verification, and general-purpose agents; custom agents | Document reusable team patterns and role selection |
|
|
74
|
-
| Long-term memory |
|
|
80
|
+
| Long-term memory | Partial | Existing memory/retrieval plus a provenance-rich SHA-256 project task-memory chain with private atomic writes, verification, quarantine, and rollback | Extend the same deletion and integrity guarantees to team, semantic, embedding, and legacy stores |
|
|
81
|
+
| Portable Agent Skills | Covered | Native and `.agents/skills/` project/user discovery, strict validation, deterministic tree/permission digests, Ed25519 signing, trusted keys, and invocation-time integrity checks | Require registry attestations and dependency review before community one-command installation |
|
|
75
82
|
| Semantic codebase retrieval | Covered | local embedding-based code index (`ur code-index`), opt-in `CodeSearch` tool, incremental re-index, auto-reindex watcher, Ollama embeddings | Add richer symbol-aware ranking |
|
|
76
83
|
| Reliable repo editing | Covered | `ur repo-edit` builds a file/symbol index, performs AST-aware JS/TS identifier rename planning, previews patches before writing, and applies multi-file edits transactionally with rollback on syntax or check failure | Extend AST edits beyond identifier rename into import moves and signature-aware refactors |
|
|
77
84
|
| Permission and safety policy | Covered | `ur safety`, `.ur/safety-policy.json`, pre-Bash safety evaluation, read/write/execute/network command classes, destructive-command approval, sandbox recommendations, and secret exfiltration denial | Record sandbox attestation in every risky command's evidence trail |
|
|
@@ -79,18 +86,20 @@ Inside an interactive session:
|
|
|
79
86
|
| AGENTS.md interoperability | Covered | `AGENTS.md` loaded as runtime project context (before `UR.md`), plus imported by the `/init` command | Keep aligned as the AGENTS.md spec evolves |
|
|
80
87
|
| Browser and computer-use workflows | Covered | `/browser`, `/chrome`, Playwright-aware tasks, WebSearch, WebFetch, risky-action approval | Add more release fixtures with screenshots and replay assertions |
|
|
81
88
|
| Provenance and citations | Partial | WebFetch source URLs, `/cite`, `/graph`, `/trace`, evidence ledgers | Add claim-to-source mapping for web/MCP answers |
|
|
82
|
-
| Evals and observability |
|
|
89
|
+
| Evals and observability | Partial | verifier gates, `.ur/verify.json`, `/verify`, `/trace`, OpenTelemetry hooks, replayable evals, dashboard, benchmark adapters | Grade complete trajectories in CI and publish versioned pass rates by category |
|
|
90
|
+
| Standard GenAI telemetry | Covered | Explicit OTLP/console exporters; GenAI inference, agent/workflow, tool, memory, token, cache, response, latency, streaming time-to-first-chunk/inter-output-chunk, and error semantics; content off by default | Add trajectory policy graders and cross-provider dashboards without increasing content capture/cardinality |
|
|
83
91
|
| Test-first execution | Covered | `ur test-first` detects compile/test/lint commands, stores failure traces, retries through a fix agent, and installs detected commands into `.ur/verify.json` for edit-time gates | Add per-package command plans for large monorepos |
|
|
84
|
-
| Security and prompt-injection resistance | Covered | allow/ask/deny permissions, shell safety analysis, secret scan, untrusted web-content guidance, OS-level execution sandbox (macOS Seatbelt, Linux bubblewrap) | Continuously test web/MCP injection cases |
|
|
85
|
-
| Agent identity and delegated authorization | Covered | MCP OAuth/XAA helpers, A2A bearer/delegation tokens, local trust boundaries, permission rules | Keep delegated scopes narrow and auditable |
|
|
92
|
+
| Security and prompt-injection resistance | Covered | allow/ask/deny permissions, shell safety analysis, secret scan, untrusted web-content guidance, OS-level execution sandbox (macOS Seatbelt, Linux bubblewrap) | Continuously test web/MCP/repository/skill/memory injection, confused-deputy, and tool-abuse cases |
|
|
93
|
+
| Agent identity and delegated authorization | Covered | MCP OAuth/XAA helpers, issuer-minted A2A bearer/delegation tokens, subject/audience/expiry/skill binding, local trust boundaries, permission rules | Keep delegated scopes narrow and auditable; HMAC child-token narrowing remains issuer-side |
|
|
86
94
|
| Multimodal workflows | Partial | `/image`, `/video`, `/youtube`, `/voice`, browser workflows | Add model-aware multimodal capability reporting for local Ollama setups |
|
|
87
95
|
| Spec-driven development | Covered | `ur spec` scaffolds requirements/design/tasks under `.ur/specs/`, tracks phase/approvals, and runs the Spec Kit / Kiro task list one task at a time | Add bidirectional sync with an external `specs/` directory |
|
|
88
96
|
| Capability-aware model escalation | Covered | `ur escalate` selects fast/oracle tiers from `model-doctor`, runs routine work fast, and auto-escalates hard/failed work to the strong local model | Learn per-model success rates to tune the difficulty threshold |
|
|
89
97
|
| Best-of-N agent judging | Covered | `ur arena` runs N agents per task in isolated worktrees and judges diffs with the self-review gate; winner is selectable/appliable | Add an optional model judge alongside the deterministic scorer |
|
|
90
98
|
| Self-healing CI | Covered | `ur ci-loop` reports its resolved cwd, preserves assertion/stack context, stops no-test configuration failures before invoking a fixer, and re-runs real failures with bounded retries; commits/pushes require explicit flags and are self-review gated | Wire to `ur trigger` so a failed CI webhook can explicitly launch the loop |
|
|
91
99
|
| Verifiable artifacts | Covered | `ur artifacts` records plans/diffs/test-runs with approve/reject/feedback under `.ur/artifacts/`; comments steer active background agents through stream-json inbox injection | Attach browser-QA screenshots and link artifacts to claim-ledger entries |
|
|
92
|
-
| Native IDE review | Covered | `ur ide diff`
|
|
93
|
-
| ACP / IDE agent server | Covered |
|
|
100
|
+
| Native IDE review | Covered | `ur ide diff` bundles, a VS Code tree/webview/comment surface with background task controls, and a buildable JetBrains ACP client with cancellation | Add signed marketplace packaging and keep behavior parity covered in editor-host integration tests |
|
|
101
|
+
| ACP / IDE agent server | Covered | Official-SDK ACP v1 with durable list/load/delete/resume/close, exact replay, modes, config options, commands, permissions, MCP, roots, streaming, and cancellation | Add editor-host interoperability fixtures before expanding optional UX capabilities |
|
|
102
|
+
| Provider-native durable inference | Covered | Chat Completions remains default; opt-in Responses adds SSE, background polling/cancel, WebSocket continuation, compaction, deferred tools, and `store=false` | Generalize explicit provider capability discovery without silently emulating native features |
|
|
94
103
|
| External tool integration | Covered | Built-in `GitHub`, `Api`, `Browser`, `Docker`, `TestRunner`, and `Database` tools complement existing file-system, terminal, web, and MCP tools | Add richer output parsing and error recovery |
|
|
95
104
|
|
|
96
105
|
## v1.13.9 Direct CLI Surfaces
|
|
@@ -111,18 +120,59 @@ ur artifacts capture-tests --command "bun test"
|
|
|
111
120
|
|
|
112
121
|
## A2A Position
|
|
113
122
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
123
|
+
`ur a2a serve` keeps the official stable JavaScript SDK's v0.3 JSON-RPC binding
|
|
124
|
+
at `/a2a/jsonrpc` and adds separate strict v1 ProtoJSON JSON-RPC and HTTP+JSON
|
|
125
|
+
bindings. `/.well-known/agent-card.json` returns the v1 card by default and the
|
|
126
|
+
v0.3 card for `A2A-Version: 0.3`; `Vary` prevents cache confusion. The v1
|
|
127
|
+
routes provide durable tasks/artifacts, pagination, continuation, references,
|
|
128
|
+
cancellation, and tenant isolation. Streaming and push notifications are not
|
|
129
|
+
advertised.
|
|
130
|
+
|
|
131
|
+
The existing `/a2a/tasks` submission/list/status/output/cancel routes are a
|
|
132
|
+
separate **UR compatibility API**, not an A2A REST binding. They remain useful
|
|
133
|
+
for UR background-task options such as worktrees and bounded turns. On these
|
|
134
|
+
routes, `skipPermissions` is rejected unless the caller uses the static
|
|
135
|
+
operator token or a token that grants `permissions:bypass`; the official A2A
|
|
136
|
+
runner always uses fail-closed `dontAsk` permissions.
|
|
137
|
+
|
|
138
|
+
The server refuses unauthenticated off-loopback binds and requires
|
|
139
|
+
`--public-base-url` for wildcard binds so discovery never advertises
|
|
140
|
+
`0.0.0.0`. Prefer `UR_A2A_TOKEN` and `UR_A2A_DELEGATION_SECRET` over argv
|
|
141
|
+
secrets. Request size, prompt size, output size, submission rate, concurrent
|
|
142
|
+
submissions, and active tasks are bounded by `UR_A2A_*` settings. UR's v1
|
|
143
|
+
compatibility layer is covered by the official TCK while the JavaScript SDK's
|
|
144
|
+
v1 line remains prerelease; the stable v0.3 path therefore stays available
|
|
145
|
+
during the negotiated migration.
|
|
119
146
|
|
|
120
147
|
## Model Runtime Position
|
|
121
148
|
|
|
122
|
-
UR
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
149
|
+
UR is local-first, not local-only. Ollama supports private on-device execution;
|
|
150
|
+
direct adapters support OpenAI, Anthropic, Gemini, OpenRouter, and compatible
|
|
151
|
+
endpoints; subscription adapters use the provider's authenticated CLI. Provider
|
|
152
|
+
and model selection are explicit, credentials are resolved through the
|
|
153
|
+
credential layer, and the optional fallback setting is diagnostic advice rather
|
|
154
|
+
than an automatic provider switch.
|
|
155
|
+
|
|
156
|
+
## v1.47 Frontier Priorities
|
|
157
|
+
|
|
158
|
+
The `1.46.0` frontier set is implemented in `1.47.0`. A second free/open-source
|
|
159
|
+
scan after the version bump also closed AG-UI frontend interoperability,
|
|
160
|
+
cross-client `.agents/skills/` discovery, and the latest OpenTelemetry
|
|
161
|
+
`invoke_workflow`/streaming-chunk latency gap. The remaining ordered backlog keeps
|
|
162
|
+
prerelease protocols opt-in and focuses on evidence and trust:
|
|
163
|
+
|
|
164
|
+
1. Adopt final MCP 2026 and stable A2A v1 SDK artifacts when published, while
|
|
165
|
+
preserving dual-stack negotiation and independent-client fixtures.
|
|
166
|
+
2. Add A2A signed-card verification, streaming/resubscription, and push only
|
|
167
|
+
with authenticated end-to-end conformance tests.
|
|
168
|
+
3. Extend task-memory provenance, deletion proofs, quarantine, and rollback to
|
|
169
|
+
every team, semantic, embedding-backed, and legacy memory store.
|
|
170
|
+
4. Turn trajectory graders for tool choice, handoffs, policy compliance,
|
|
171
|
+
recovery, and outcome quality into versioned CI regression gates.
|
|
172
|
+
5. Require registry attestations, dependency review, revocation, and update
|
|
173
|
+
transparency before one-command community skill/plugin installation.
|
|
174
|
+
6. Enforce claim-to-source links for final web/MCP answers and complete Windows
|
|
175
|
+
OS-sandbox parity.
|
|
126
176
|
|
|
127
177
|
## Source And Trust Policy
|
|
128
178
|
|
|
@@ -141,13 +191,28 @@ Professional answer requirements:
|
|
|
141
191
|
|
|
142
192
|
## References
|
|
143
193
|
|
|
144
|
-
- OpenAI
|
|
145
|
-
- OpenAI
|
|
194
|
+
- OpenAI Responses background mode: https://developers.openai.com/api/docs/guides/background
|
|
195
|
+
- OpenAI Responses WebSocket mode: https://developers.openai.com/api/docs/guides/websocket-mode
|
|
196
|
+
- OpenAI Responses compaction: https://developers.openai.com/api/docs/guides/compaction
|
|
197
|
+
- OpenAI deferred tool search: https://developers.openai.com/api/docs/guides/tools-tool-search
|
|
198
|
+
- OpenAI agent evals: https://developers.openai.com/api/docs/guides/agent-evals
|
|
146
199
|
- Model Context Protocol: https://modelcontextprotocol.io/docs/getting-started/intro
|
|
147
|
-
- MCP
|
|
200
|
+
- MCP 2026-07-28 release candidate: https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/
|
|
201
|
+
- MCP Tasks extension: https://tasks.extensions.modelcontextprotocol.io/
|
|
202
|
+
- MCP Apps extension: https://apps.extensions.modelcontextprotocol.io/
|
|
203
|
+
- ACP v1 schema: https://agentclientprotocol.com/protocol/v1/schema
|
|
148
204
|
- A2A protocol specification: https://a2a-protocol.org/latest/specification/
|
|
205
|
+
- A2A JavaScript SDK: https://github.com/a2aproject/a2a-js
|
|
206
|
+
- Agent Skills specification: https://agentskills.io/specification
|
|
207
|
+
- Agent Skills integration guide: https://agentskills.io/client-implementation/adding-skills-support
|
|
208
|
+
- AG-UI documentation: https://docs.ag-ui.com/
|
|
209
|
+
- AG-UI reference implementation: https://github.com/ag-ui-protocol/ag-ui
|
|
210
|
+
- OpenTelemetry GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/
|
|
211
|
+
- OpenTelemetry GenAI metrics: https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/gen-ai/gen-ai-metrics.md
|
|
212
|
+
- OWASP AI Agent Security Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/AI_Agent_Security_Cheat_Sheet.html
|
|
213
|
+
- OWASP Agent Memory Guard: https://owasp.org/www-project-agent-memory-guard/
|
|
149
214
|
- LangGraph overview: https://docs.langchain.com/oss/python/langgraph/overview
|
|
150
|
-
- OpenAI computer use guide: https://
|
|
215
|
+
- OpenAI computer use guide: https://developers.openai.com/api/docs/guides/tools-computer-use
|
|
151
216
|
- Ollama docs: https://docs.ollama.com/
|
|
152
|
-
- MCP authorization specification: https://modelcontextprotocol.io/specification/2025-
|
|
153
|
-
- MCP security best practices: https://modelcontextprotocol.io/specification/2025-
|
|
217
|
+
- MCP authorization specification: https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization
|
|
218
|
+
- MCP security best practices: https://modelcontextprotocol.io/specification/2025-11-25/basic/security_best_practices
|