@robota-sdk/agent-transport-http 3.0.0-beta.82 → 3.0.0-beta.83
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
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# @robota-sdk/agent-transport-http
|
|
2
|
+
|
|
3
|
+
## 3.0.0-beta.83
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 6e6b06b: A wire client can now render the whole session the way the in-process terminal UI does: the full
|
|
8
|
+
history, the context window as it changes, when the history changes, and where each turn came from.
|
|
9
|
+
|
|
10
|
+
- `agent-interface-session` is **`major`**: `ISessionConversationRead` gains a required
|
|
11
|
+
`getFullHistory()`. Any implementation of it, or of `IInteractiveSession`, must add it.
|
|
12
|
+
- `agent-transport` is **`major`**:
|
|
13
|
+
- It adds `get-history { fromIndex? }` → `history { startIndex, total, entries }`. The history
|
|
14
|
+
crosses one bounded page at a time (at most 256 KiB of entries; a single larger entry is sent
|
|
15
|
+
alone), from `fromIndex` (default 0), so no reply grows with the session. The client asks for
|
|
16
|
+
the next page after the previous one arrived. Entries are `IWireHistoryEntry`: a history entry
|
|
17
|
+
with an ISO 8601 `timestamp`. An observer may send it.
|
|
18
|
+
- `complete` and `interrupted` carry the turn's result without the session's history
|
|
19
|
+
(`TWireExecutionResult`); a client reads the history with `get-history`.
|
|
20
|
+
- It adds `get-prompts`: the host sends the permission and ask prompts still open as the
|
|
21
|
+
`permission_request` / `ask_request` frames that asked them, for a client that attached later.
|
|
22
|
+
An observer may not send it.
|
|
23
|
+
- `pending` gains an optional `pendingCount`: a host sends it when it knows how many prompts are
|
|
24
|
+
queued, and a client that gets none counts the prompt it shows. The host sends `pending` in
|
|
25
|
+
reply to a `submit` once it has taken the prompt, so a prompt queued behind a running turn shows
|
|
26
|
+
as queued.
|
|
27
|
+
- `command` takes an optional `requestId`, which the host echoes on the command's
|
|
28
|
+
`command_result` or `protocol_error`.
|
|
29
|
+
- The session's `context_update` is pushed as the `context` frame that `get-context` answers with.
|
|
30
|
+
- `compact`, `skill_activation` and `memory_event` push the new `history_changed`; the client
|
|
31
|
+
reads the history again.
|
|
32
|
+
- `turn_source` is pushed as the new `turn_source` frame.
|
|
33
|
+
- An exhaustive map over `TClientMessage` or `TServerMessage` types must add the new variants,
|
|
34
|
+
and `IProtocolSession` now requires `getFullHistory()`.
|
|
35
|
+
- `agent-transport-http` is **`major`** only because `IHttpTransportSession` includes the conversation
|
|
36
|
+
read role, so a session handed to it must now provide `getFullHistory()`.
|
|
37
|
+
- `agent-framework`: `SessionSlot` forwards `getFullHistory()` to the current session.
|
|
38
|
+
- `agent-ui-web` receives the new frames and does not render them.
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- 57280bf: Every published package now declares `"engines": { "node": ">=22.12.0" }`. Before, 27 of the 38
|
|
43
|
+
packages declared no floor (`agent-core`, `agent-tools` and every provider among them),
|
|
44
|
+
`agent-session` and `agent-file-authority` declared `>=20.19.0`, and the other nine declared
|
|
45
|
+
`>=22.0.0`, so a consumer on Node 20 saw at most a warning from a transitive dependency.
|
|
46
|
+
|
|
47
|
+
Why 22.12: `agent-cli` and `agent-ui-terminal` need Node 22 through `ink` 7, and the CommonJS entries
|
|
48
|
+
of `agent-tools` and its dependents, `agent-transport`/`node` and its dependents, and
|
|
49
|
+
`agent-ui-terminal` `require()` ESM-only dependencies (`p-limit`, `jose`, `chalk`), which Node 22
|
|
50
|
+
supports unflagged only from 22.12. `engines` is advisory unless the consumer enables `engine-strict`.
|
|
51
|
+
|
|
52
|
+
No code changes: `tsdown` now reads `node22.12.0` as its build target from the field.
|
|
53
|
+
|
|
54
|
+
- 18c0d5c: Every published package now exports `./package.json`, so `require('<package>/package.json')` and
|
|
55
|
+
`import('<package>/package.json', { with: { type: 'json' } })` work instead of failing with
|
|
56
|
+
`ERR_PACKAGE_PATH_NOT_EXPORTED`, and each tarball now ships the package's `CHANGELOG.md`.
|
|
57
|
+
- Updated dependencies [724fabb]
|
|
58
|
+
- Updated dependencies [d877de2]
|
|
59
|
+
- Updated dependencies [d61e159]
|
|
60
|
+
- Updated dependencies [bfe8ed5]
|
|
61
|
+
- Updated dependencies [7b72344]
|
|
62
|
+
- Updated dependencies [6ae3f28]
|
|
63
|
+
- Updated dependencies [57f57f5]
|
|
64
|
+
- Updated dependencies [ba822c1]
|
|
65
|
+
- Updated dependencies [6e6b06b]
|
|
66
|
+
- Updated dependencies [57280bf]
|
|
67
|
+
- Updated dependencies [18c0d5c]
|
|
68
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.83
|
|
69
|
+
- @robota-sdk/agent-transport@3.0.0-beta.83
|
|
70
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.83
|
|
71
|
+
|
|
72
|
+
## 3.0.0-beta.82
|
|
73
|
+
|
|
74
|
+
### Patch Changes
|
|
75
|
+
|
|
76
|
+
- Updated dependencies [c7f9203]
|
|
77
|
+
- @robota-sdk/agent-transport@3.0.0-beta.82
|
|
78
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.82
|
|
79
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.82
|
|
80
|
+
|
|
81
|
+
## 3.0.0-beta.81
|
|
82
|
+
|
|
83
|
+
### Patch Changes
|
|
84
|
+
|
|
85
|
+
- Updated dependencies [3038eb7]
|
|
86
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.81
|
|
87
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.81
|
|
88
|
+
- @robota-sdk/agent-transport@3.0.0-beta.81
|
|
89
|
+
|
|
90
|
+
## 3.0.0-beta.80
|
|
91
|
+
|
|
92
|
+
### Major Changes
|
|
93
|
+
|
|
94
|
+
- e82215f: **ARCH-011: replace the ambiguous transport lifecycle stub with executable conformance.**
|
|
95
|
+
|
|
96
|
+
`ITransportAdapter` now requires a frozen `service | runner` lifecycle descriptor. `start()` resolves
|
|
97
|
+
at the concrete transport's documented readiness boundary; start before attach and repeated active
|
|
98
|
+
start reject a stable lifecycle error, repeated stop is safe, and stopped adapters can reattach and
|
|
99
|
+
restart.
|
|
100
|
+
|
|
101
|
+
Runner adapters launch separately and expose a typed terminal outcome through
|
|
102
|
+
`waitForCompletion()`. The registry accepts base adapters, rejects duplicate names, keeps
|
|
103
|
+
configuration as an optional capability, returns complete ordered records whose pending slots become
|
|
104
|
+
registry-owned `abandoned` outcomes on stop/rollback, and exposes a real-runner-only first-failure
|
|
105
|
+
wait. It serializes startup/stop, rejects active restart before mutation, and reverses partial startup
|
|
106
|
+
from the currently failing adapter with typed safe rollback details. Runtime host and serve mode
|
|
107
|
+
propagate real nonzero runner results without treating normal shutdown abandonment as failure.
|
|
108
|
+
|
|
109
|
+
HTTP, MCP, both WebSocket adapters, WebRTC, and headless invoke one shared public conformance kit.
|
|
110
|
+
The former `TuiTransport` export is removed because it ignored the attached session; use `renderApp`
|
|
111
|
+
or `TuiInteractionChannel`, which honestly own their session lifecycle.
|
|
112
|
+
|
|
113
|
+
### Minor Changes
|
|
114
|
+
|
|
115
|
+
- 9db63ee: Add named session capability roles and explicit capability-host queries while preserving the legacy
|
|
116
|
+
`IInteractiveSession` interface shape. HTTP, MCP, protocol, WS, WebRTC, and headless transports now
|
|
117
|
+
declare only the session roles they consume, and the direct aggregate-cast floor is zero.
|
|
118
|
+
|
|
119
|
+
### Patch Changes
|
|
120
|
+
|
|
121
|
+
- 4f3c075: Assemble complete, verified package generations before switching build output; preserve the previous generation on build failure and pack only verified regular-file images. Include copied CLI web assets in affected-build ordering and artifact transfer. Preserve the CLI version in managed build paths. Public runtime contracts remain compatible (patch).
|
|
122
|
+
- Updated dependencies [37b4bd7]
|
|
123
|
+
- Updated dependencies [50d2c9f]
|
|
124
|
+
- Updated dependencies [a5961c9]
|
|
125
|
+
- Updated dependencies [4c5148e]
|
|
126
|
+
- Updated dependencies [0116a29]
|
|
127
|
+
- Updated dependencies [e82215f]
|
|
128
|
+
- Updated dependencies [52b7346]
|
|
129
|
+
- Updated dependencies [9db63ee]
|
|
130
|
+
- Updated dependencies [b078afa]
|
|
131
|
+
- Updated dependencies [2ebff01]
|
|
132
|
+
- Updated dependencies [9db63ee]
|
|
133
|
+
- Updated dependencies [2ebff01]
|
|
134
|
+
- Updated dependencies [4772067]
|
|
135
|
+
- Updated dependencies [0f98419]
|
|
136
|
+
- Updated dependencies [64ba748]
|
|
137
|
+
- Updated dependencies [d312755]
|
|
138
|
+
- Updated dependencies [3244fb8]
|
|
139
|
+
- Updated dependencies [1e3f91a]
|
|
140
|
+
- Updated dependencies [4f3c075]
|
|
141
|
+
- Updated dependencies [7669851]
|
|
142
|
+
- Updated dependencies [4b76cfa]
|
|
143
|
+
- Updated dependencies [07b627f]
|
|
144
|
+
- Updated dependencies [9665c6e]
|
|
145
|
+
- Updated dependencies [44393be]
|
|
146
|
+
- Updated dependencies [c7fa299]
|
|
147
|
+
- Updated dependencies [5134b3b]
|
|
148
|
+
- Updated dependencies [5c5ff23]
|
|
149
|
+
- Updated dependencies [9814afc]
|
|
150
|
+
- @robota-sdk/agent-interface-session@3.0.0-beta.80
|
|
151
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.80
|
|
152
|
+
- @robota-sdk/agent-transport@3.0.0-beta.80
|
|
153
|
+
|
|
154
|
+
## 3.0.0-beta.79
|
|
155
|
+
|
|
156
|
+
### Patch Changes
|
|
157
|
+
|
|
158
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.79
|
|
159
|
+
|
|
160
|
+
## 3.0.0-beta.78
|
|
161
|
+
|
|
162
|
+
### Patch Changes
|
|
163
|
+
|
|
164
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.78
|
|
165
|
+
|
|
166
|
+
## 3.0.0-beta.77
|
|
167
|
+
|
|
168
|
+
### Patch Changes
|
|
169
|
+
|
|
170
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.77
|
|
171
|
+
|
|
172
|
+
## 3.0.0-beta.76
|
|
173
|
+
|
|
174
|
+
### Minor Changes
|
|
175
|
+
|
|
176
|
+
- 9df3a88: Split the consolidated `@robota-sdk/agent-transport` package into per-concern transport packages (DQ-AUDIT-005) so unrelated heavy dependencies (React/Ink, ws, Hono, MCP SDK) no longer share one publishable unit and are not dragged into non-TUI consumers' graphs:
|
|
177
|
+
|
|
178
|
+
- `@robota-sdk/agent-transport` — lean core: headless adapter + `TransportRegistry` + scripted-provider testing fixtures (no external runtime deps).
|
|
179
|
+
- `@robota-sdk/agent-transport-tui` — React + Ink terminal UI.
|
|
180
|
+
- `@robota-sdk/agent-transport-ws` — WebSocket transport + protocol (`agent-web-ui` now depends only on this for WS types).
|
|
181
|
+
- `@robota-sdk/agent-transport-http` — Hono HTTP transport.
|
|
182
|
+
- `@robota-sdk/agent-transport-mcp` — MCP server transport.
|
|
183
|
+
|
|
184
|
+
The default transport-registry wiring (pre-registering `WsTransport`) moves to the CLI composition root, removing the core→ws edge.
|
|
185
|
+
|
|
186
|
+
### Patch Changes
|
|
187
|
+
|
|
188
|
+
- @robota-sdk/agent-interface-transport@3.0.0-beta.76
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robota-sdk/agent-transport-http",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.83",
|
|
4
4
|
"description": "HTTP (Hono) transport for the Robota SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/node/index.js",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"default": "./dist/node/index.cjs"
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
}
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json"
|
|
32
33
|
},
|
|
33
34
|
"repository": {
|
|
34
35
|
"type": "git",
|
|
@@ -39,17 +40,18 @@
|
|
|
39
40
|
"url": "https://github.com/woojubb/robota/issues"
|
|
40
41
|
},
|
|
41
42
|
"engines": {
|
|
42
|
-
"node": ">=22.
|
|
43
|
+
"node": ">=22.12.0"
|
|
43
44
|
},
|
|
44
45
|
"files": [
|
|
45
46
|
"dist",
|
|
46
|
-
"src"
|
|
47
|
+
"src",
|
|
48
|
+
"CHANGELOG.md"
|
|
47
49
|
],
|
|
48
50
|
"dependencies": {
|
|
49
51
|
"hono": "^4.12.32",
|
|
50
|
-
"@robota-sdk/agent-interface-session": "3.0.0-beta.
|
|
51
|
-
"@robota-sdk/agent-interface-transport": "3.0.0-beta.
|
|
52
|
-
"@robota-sdk/agent-transport": "3.0.0-beta.
|
|
52
|
+
"@robota-sdk/agent-interface-session": "3.0.0-beta.83",
|
|
53
|
+
"@robota-sdk/agent-interface-transport": "3.0.0-beta.83",
|
|
54
|
+
"@robota-sdk/agent-transport": "3.0.0-beta.83"
|
|
53
55
|
},
|
|
54
56
|
"devDependencies": {
|
|
55
57
|
"rimraf": "^5.0.10",
|
|
@@ -18,7 +18,9 @@ function createMockSession(): IHttpTransportSession {
|
|
|
18
18
|
getSession,
|
|
19
19
|
executeCommand,
|
|
20
20
|
listCommands,
|
|
21
|
+
listSkills,
|
|
21
22
|
getMessages,
|
|
23
|
+
getFullHistory,
|
|
22
24
|
getContextState,
|
|
23
25
|
isExecuting,
|
|
24
26
|
getPendingPrompt,
|
|
@@ -33,7 +35,9 @@ function createMockSession(): IHttpTransportSession {
|
|
|
33
35
|
getSession,
|
|
34
36
|
executeCommand,
|
|
35
37
|
listCommands,
|
|
38
|
+
listSkills,
|
|
36
39
|
getMessages,
|
|
40
|
+
getFullHistory,
|
|
37
41
|
getContextState,
|
|
38
42
|
isExecuting,
|
|
39
43
|
getPendingPrompt,
|
|
@@ -49,7 +53,7 @@ describe('createHttpTransport', () => {
|
|
|
49
53
|
(session: IHttpTransportSession) => void
|
|
50
54
|
>();
|
|
51
55
|
expectTypeOf<IHttpTransportSession>().not.toHaveProperty('listRuntimeTools');
|
|
52
|
-
expect(Object.keys(createMockSession())).toHaveLength(
|
|
56
|
+
expect(Object.keys(createMockSession())).toHaveLength(15);
|
|
53
57
|
});
|
|
54
58
|
|
|
55
59
|
it('returns an adapter with name "http"', () => {
|
|
@@ -120,14 +120,14 @@ describe('HTTP Transport Routes', () => {
|
|
|
120
120
|
it('serves requests, a turn stream, and cancellation through only the declared port', async () => {
|
|
121
121
|
const { session: full, startedTurns } = createHonestSession();
|
|
122
122
|
const {
|
|
123
|
-
submit, on, off, abort, cancelQueue, getSession, executeCommand, listCommands,
|
|
124
|
-
getMessages, getContextState, isExecuting, getPendingPrompt, getPendingCount,
|
|
123
|
+
submit, on, off, abort, cancelQueue, getSession, executeCommand, listCommands, listSkills,
|
|
124
|
+
getMessages, getFullHistory, getContextState, isExecuting, getPendingPrompt, getPendingCount,
|
|
125
125
|
} = full;
|
|
126
126
|
const port: IHttpTransportSession = {
|
|
127
|
-
submit, on, off, abort, cancelQueue, getSession, executeCommand, listCommands,
|
|
128
|
-
getMessages, getContextState, isExecuting, getPendingPrompt, getPendingCount,
|
|
127
|
+
submit, on, off, abort, cancelQueue, getSession, executeCommand, listCommands, listSkills,
|
|
128
|
+
getMessages, getFullHistory, getContextState, isExecuting, getPendingPrompt, getPendingCount,
|
|
129
129
|
};
|
|
130
|
-
expect(Object.keys(port)).toHaveLength(
|
|
130
|
+
expect(Object.keys(port)).toHaveLength(15);
|
|
131
131
|
const transport = createHttpTransport({
|
|
132
132
|
admission: { open: true, openReason: 'least-authority HTTP port scenario' },
|
|
133
133
|
});
|