@robota-sdk/agent-cli 3.0.0-beta.95 → 3.0.0-beta.97
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/dist/node/bin.js +8 -8
- package/dist/node/{cli-core-DJIgDK0t.js → cli-core-DU_nEQWX.js} +328 -328
- package/dist/node/desktop-host.js +1 -1
- package/dist/node/headless.js +1 -1
- package/dist/node/host.d.ts +1 -1
- package/dist/node/host.js +1 -1
- package/dist/node/index.d.ts +1 -2
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +2 -2
- package/dist/node/index.js.map +1 -1
- package/dist/node/{node-Dr_K99X7.js → node-BRvqhy29.js} +23 -23
- package/dist/node/{node-Dr_K99X7.js.map → node-BRvqhy29.js.map} +1 -1
- package/dist/node/node-BTKWbzr0.js +15 -0
- package/dist/node/node-BZfTvzcV.js +15 -0
- package/dist/node/node-BZfTvzcV.js.map +1 -0
- package/dist/node/{node-CV7kyP4U.js → node-Cyp5gJlO.js} +1 -1
- package/dist/node/{node-BOLpvRke.js → node-DhmX4waZ.js} +2 -2
- package/dist/node/{node-BOLpvRke.js.map → node-DhmX4waZ.js.map} +1 -1
- package/dist/node/{node-DsYjDBKf.js → node-zABT8WBL.js} +22 -22
- package/dist/node/product-host-BOEjCDu-.js +2954 -0
- package/dist/node/product-host-BOEjCDu-.js.map +1 -0
- package/dist/node/{product-host-BACfuTu4.d.ts → product-host-DYR8lHfh.d.ts} +16 -4
- package/dist/node/product-host-DYR8lHfh.d.ts.map +1 -0
- package/dist/web/app-sandbox.html +145 -0
- package/dist/web/assets/index-2GhVGsHN.js +314 -0
- package/dist/web/index.html +2 -2
- package/package.json +47 -39
- package/scripts/native-build.mjs +9 -0
- package/dist/node/node-BBey07fn.js +0 -15
- package/dist/node/node-BBey07fn.js.map +0 -1
- package/dist/node/node-Bxcf0vqP.js +0 -15
- package/dist/node/product-host-BACfuTu4.d.ts.map +0 -1
- package/dist/node/product-host-BwV-X6oS.js +0 -2954
- package/dist/node/product-host-BwV-X6oS.js.map +0 -1
- package/dist/web/assets/index-DB915Rm-.js +0 -314
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,74 @@
|
|
|
1
1
|
# @robota-sdk/agent-cli
|
|
2
2
|
|
|
3
|
+
## 3.0.0-beta.97
|
|
4
|
+
### Minor Changes
|
|
5
|
+
|
|
6
|
+
- 0d43f37: **An editor can reopen an earlier conversation over ACP and offer the agent's slash commands.**
|
|
7
|
+
|
|
8
|
+
`@robota-sdk/agent-transport-acp` sends `available_commands_update` once the editor holds the session
|
|
9
|
+
id — the runtime's commands and the user-invocable skills, each with its argument hint — and again
|
|
10
|
+
after a prompt that changed the list (a plugin reload, a preset). A host can supply `loadSession`;
|
|
11
|
+
the agent then offers `session/load`, checks it exactly like `session/new` (the served directory, no
|
|
12
|
+
editor MCP servers or extra roots, workspace trust), refuses it while a prompt runs, and replays the
|
|
13
|
+
loaded conversation — what was typed, what the agent answered, and each finished tool call, a reused
|
|
14
|
+
call id getting a row of its own — before it answers. The port makes the stored session current in
|
|
15
|
+
the object the transport was attached to, so a host attaches a forwarder such as a session slot.
|
|
16
|
+
The published narrow `IAcpTransportSession` contract remains supported: command listing and history
|
|
17
|
+
display reads are optional capabilities. Loading is offered only with both the host port and the
|
|
18
|
+
history read, so a session cannot be replaced without replaying its conversation.
|
|
19
|
+
|
|
20
|
+
`robota acp` supplies the load: the editor may load a stored session of the folder it serves that
|
|
21
|
+
this version can read, and the agent replaces its session with it and shuts the old one down. A load
|
|
22
|
+
is refused while the current session has work in progress, and for a stored session with an active
|
|
23
|
+
goal, a live loop or a schedule that restore would re-arm to fire, which would otherwise run unseen
|
|
24
|
+
by the editor. With `--no-session-persistence` nothing is stored, so loading is not offered.
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- e5a4254: **An editor that offers its file system carries the file tools' reads and writes.**
|
|
29
|
+
|
|
30
|
+
`Read`, `Write` and `Edit` take an optional `editorFiles` port (`IEditorFileAccess`), asked at each
|
|
31
|
+
call. On the host, after the tool's containment check (the permission gate has already decided),
|
|
32
|
+
`Read` returns the editor's text, unsaved changes included, and `Write` hands the content to the
|
|
33
|
+
editor; `Edit` reads where `Read` reads and writes where `Write` writes. The editor's text keeps
|
|
34
|
+
`Read`'s byte budget, binary refusal, formatting and cancellation, and an editor failure becomes the
|
|
35
|
+
tool's error result. `Glob` and `Grep` still search the disk and end their result with a note saying
|
|
36
|
+
so while an editor is attached. A sandbox with its own filesystem still carries every file tool, and
|
|
37
|
+
commands never use the editor. `createDefaultTools` and `createCodingPack` pass `editorFiles` through
|
|
38
|
+
to those tools only.
|
|
39
|
+
|
|
40
|
+
The ACP agent transport records the editor's `clientCapabilities.fs` and, once `session/new` binds the
|
|
41
|
+
session, hands the host an access through the new `onEditorFileAccess` option that sends
|
|
42
|
+
`fs/read_text_file` and `fs/write_text_file` for that session, for what the editor offered; stopping
|
|
43
|
+
the transport withdraws it. `robota acp` connects the two, so Read, Write and Edit go through the
|
|
44
|
+
editor in an editor that offers `fs`; `terminal/*` is not used.
|
|
45
|
+
|
|
46
|
+
## 3.0.0-beta.96
|
|
47
|
+
### Minor Changes
|
|
48
|
+
|
|
49
|
+
- 68dda38: MCP Apps: a tool's declared view can ride its result to a surface that can host it.
|
|
50
|
+
|
|
51
|
+
`agent-mcp` declares the `io.modelcontextprotocol/ui` extension only when the host opts in
|
|
52
|
+
(`IMCPOpenSessionOptions.apps`), on both protocol eras. A tool's `_meta.ui` reference (a `ui://`
|
|
53
|
+
resource and its audience) is kept in discovery and the catalog only when the server declared the
|
|
54
|
+
extension and resources too; a malformed declaration is reported by a fixed reason and the tool is
|
|
55
|
+
still offered without a view, and a tool the server hides from the model is rejected with a reason
|
|
56
|
+
rather than offered. `IMCPSession` gains `readResource` (a general `resources/read`, also on
|
|
57
|
+
`MCPConnectionSupervisor`) and `apps`; a custom `IMCPSession` implementation must add `readResource`.
|
|
58
|
+
After a successful call, `DiscoveredMCPTool` reads the declared resource and, when it is one
|
|
59
|
+
`text/html;profile=mcp-app` document within the size bound, attaches `IToolResult.view`; otherwise the
|
|
60
|
+
text result is unchanged and the omission is reported. The view never enters model context.
|
|
61
|
+
|
|
62
|
+
`agent-cli` opts in only for the plain `--serve` host that the desktop app and web GUI drive, not the
|
|
63
|
+
TUI, print runs, `mcp serve` or the ACP agent.
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- fbb287d: Show a finished MCP tool call's app in an opaque frame with a source-bound JSON-RPC bridge. App callbacks use the session's view authority and permission prompt. Session changes and frame disposal reject pending local requests.
|
|
68
|
+
|
|
69
|
+
Hosts can provide a sandbox URL through `SessionSurface`. The web GUI serves a separate sandbox document with content restrictions and `Connection-Allowlist` enforcement. App execution requires Chromium 158 or newer and native network isolation; other browsers and hosts without the response policy show an unavailable message and retain the text result. A surface without a sandbox URL never reads the app document.
|
|
70
|
+
- Keep E2B out of the base Node installation and defer SDK loading until stock hosted execution is selected. Install `e2b@2.51.0` alongside the CLI in the same project or global prefix to enable that capability. A missing SDK produces installation guidance before admission requests and never falls back to host execution. Public E2B exports and injected executors remain compatible; stock native binaries retain the embedded SDK, and consumer native builds require it as explicit build tooling.
|
|
71
|
+
|
|
3
72
|
## 3.0.0-beta.95
|
|
4
73
|
### Minor Changes
|
|
5
74
|
|