@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.82",
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.0.0"
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.82",
51
- "@robota-sdk/agent-interface-transport": "3.0.0-beta.82",
52
- "@robota-sdk/agent-transport": "3.0.0-beta.82"
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(13);
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(13);
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
  });