@mono-agent/operator-adapter 0.14.0 → 0.15.1
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/README.md +26 -80
- package/dist/index.d.ts +0 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +1 -1
- package/dist/tui/server.d.ts.map +1 -1
- package/dist/tui/server.js +87 -21
- package/dist/tui/server.js.map +1 -1
- package/package.json +4 -4
- package/dist/live/config.d.ts +0 -28
- package/dist/live/config.d.ts.map +0 -1
- package/dist/live/config.js +0 -68
- package/dist/live/config.js.map +0 -1
- package/dist/live/constants.d.ts +0 -18
- package/dist/live/constants.d.ts.map +0 -1
- package/dist/live/constants.js +0 -18
- package/dist/live/constants.js.map +0 -1
- package/dist/live/errors.d.ts +0 -12
- package/dist/live/errors.d.ts.map +0 -1
- package/dist/live/errors.js +0 -7
- package/dist/live/errors.js.map +0 -1
- package/dist/live/index.d.ts +0 -10
- package/dist/live/index.d.ts.map +0 -1
- package/dist/live/index.js +0 -8
- package/dist/live/index.js.map +0 -1
- package/dist/live/server.d.ts +0 -40
- package/dist/live/server.d.ts.map +0 -1
- package/dist/live/server.js +0 -234
- package/dist/live/server.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @mono-agent/operator-adapter
|
|
2
2
|
|
|
3
|
-
Serve the
|
|
4
|
-
|
|
3
|
+
Serve the local bidirectional NDJSON operator protocol used by mono-agent's
|
|
4
|
+
terminal and browser consoles.
|
|
5
5
|
|
|
6
6
|
## Category
|
|
7
7
|
|
|
@@ -10,28 +10,21 @@ bidirectional NDJSON turn endpoint and a read-only SSE run-event relay.
|
|
|
10
10
|
|
|
11
11
|
Category: `communication`
|
|
12
12
|
Tier: `core`
|
|
13
|
-
Catalog responsibility: Exposes
|
|
13
|
+
Catalog responsibility: Exposes the structured local TUI NDJSON endpoint used by the terminal and browser operator consoles.
|
|
14
14
|
|
|
15
15
|
<!-- package-metadata:end -->
|
|
16
16
|
|
|
17
17
|
## Responsibility
|
|
18
18
|
|
|
19
|
-
This communication package exposes host-provided
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
preserves structured `AgentStreamEvent` frames; and
|
|
24
|
-
- the `live` lane replays and streams `RunEventFrame` telemetry to read-only
|
|
25
|
-
consumers such as `@mono-agent/session-web`.
|
|
26
|
-
|
|
27
|
-
Both lanes default to loopback, use independent config and bearer keys, and
|
|
28
|
-
refuse non-loopback binds unless the host explicitly opts in.
|
|
19
|
+
This communication package exposes a host-provided responder over the `tui`
|
|
20
|
+
HTTP lane. It accepts turns from `mono-agent tui` and `mono-agent web` while
|
|
21
|
+
preserving structured `AgentStreamEvent` frames. The endpoint defaults to
|
|
22
|
+
loopback and refuses a non-loopback bind unless the host explicitly opts in.
|
|
29
23
|
|
|
30
24
|
## Install / Usage
|
|
31
25
|
|
|
32
26
|
`@mono-agent/agent-app` already includes this package. In a config-first agent,
|
|
33
|
-
the
|
|
34
|
-
independently:
|
|
27
|
+
the operator endpoint is enabled by default and can be narrowed or disabled:
|
|
35
28
|
|
|
36
29
|
```json
|
|
37
30
|
{
|
|
@@ -40,12 +33,6 @@ independently:
|
|
|
40
33
|
"host": "127.0.0.1",
|
|
41
34
|
"port": 0,
|
|
42
35
|
"basePath": "/gui"
|
|
43
|
-
},
|
|
44
|
-
"live": {
|
|
45
|
-
"enabled": true,
|
|
46
|
-
"host": "127.0.0.1",
|
|
47
|
-
"port": 0,
|
|
48
|
-
"basePath": "/live"
|
|
49
36
|
}
|
|
50
37
|
}
|
|
51
38
|
```
|
|
@@ -57,32 +44,25 @@ pnpm add @mono-agent/operator-adapter
|
|
|
57
44
|
```
|
|
58
45
|
|
|
59
46
|
```ts
|
|
60
|
-
import {
|
|
61
|
-
createLiveEventBus,
|
|
62
|
-
startLiveAdapter,
|
|
63
|
-
startTuiAdapter,
|
|
64
|
-
} from "@mono-agent/operator-adapter";
|
|
47
|
+
import { startTuiAdapter } from "@mono-agent/operator-adapter";
|
|
65
48
|
|
|
66
49
|
const tui = await startTuiAdapter({
|
|
67
50
|
responder,
|
|
68
51
|
info: { label: "personal-agent", model: "claude-fable-5" },
|
|
69
52
|
});
|
|
70
53
|
|
|
71
|
-
const bus = createLiveEventBus();
|
|
72
|
-
const live = await startLiveAdapter({ bus, host: "127.0.0.1", port: 0 });
|
|
73
|
-
|
|
74
54
|
await tui.stop();
|
|
75
|
-
await live.stop();
|
|
76
55
|
```
|
|
77
56
|
|
|
78
57
|
Keep bearer values out of source config when possible. Set
|
|
79
|
-
`MONO_AGENT_TUI_API_KEY`
|
|
58
|
+
`MONO_AGENT_TUI_API_KEY` in the agent's `.env`.
|
|
80
59
|
|
|
81
60
|
### Conversational endpoints
|
|
82
61
|
|
|
83
62
|
- `GET {basePath}/v1/info` returns the wire `schema`, process id, and attachment
|
|
84
|
-
capability. `capabilities.
|
|
85
|
-
advertised additively when their routes are
|
|
63
|
+
capability. `capabilities.liveInput`, `capabilities.historyAppend`, and
|
|
64
|
+
`capabilities.askUser` are advertised additively when their routes are
|
|
65
|
+
supported. The response also
|
|
86
66
|
includes `label`, default `model`, default `effort`, candidate `models`, and
|
|
87
67
|
per-model `modelOptions` when the host supplies them. `info` may be a function
|
|
88
68
|
so local-model choices can refresh without restarting the endpoint.
|
|
@@ -100,16 +80,14 @@ Keep bearer values out of source config when possible. Set
|
|
|
100
80
|
the same turn resumes after all questions are answered.
|
|
101
81
|
- `POST {basePath}/v1/conversations/:id/cancel` - explicit cancel (202; 501
|
|
102
82
|
when the responder has no `cancel`); pending AskUser state is cancelled too.
|
|
83
|
+
- `POST {basePath}/v1/conversations/:id/live-input` - offer bounded
|
|
84
|
+
`{ id, text, receivedAt }` guidance to the active turn. The response waits for
|
|
85
|
+
`applied`, `requeue`, or `discarded`; inactive/unsupported offers return
|
|
86
|
+
`unavailable` without inventing success.
|
|
103
87
|
- `POST {basePath}/v1/conversations/:id/verbatim` - authenticated
|
|
104
88
|
`{ text, idempotencyKey }` durable-history append with no model turn (200; 501
|
|
105
89
|
when the responder has no `deliverVerbatim`).
|
|
106
90
|
|
|
107
|
-
### Read-only live endpoints
|
|
108
|
-
|
|
109
|
-
- `GET {basePath}/v1/info` - `{ schema, pid, label? }`.
|
|
110
|
-
- `GET {basePath}/v1/events` - `text/event-stream` replaying recent
|
|
111
|
-
`RunEventFrame` values and streaming future frames.
|
|
112
|
-
|
|
113
91
|
Event NDJSON lines are capped at 256 KiB. Oversized thought and tool payloads
|
|
114
92
|
are reduced and remeasured; an event that still cannot fit becomes a bounded
|
|
115
93
|
`oversized_event` marker. That size guard is not a redaction boundary.
|
|
@@ -120,21 +98,17 @@ are reduced and remeasured; an event that still cannot fit becomes a bounded
|
|
|
120
98
|
|
|
121
99
|
1. The host passes an `AgentResponder` to `startTuiAdapter` and publishes the
|
|
122
100
|
returned conversational base URL through its trace-source metadata.
|
|
123
|
-
2. A TUI or web client reads `/v1/info`, submits a turn,
|
|
124
|
-
NDJSON frames until `finish` or `error
|
|
125
|
-
|
|
126
|
-
4. `startLiveAdapter` exposes the bus's bounded replay plus future frames as
|
|
127
|
-
authenticated SSE without any turn-driving route.
|
|
101
|
+
2. A TUI or web client reads `/v1/info`, submits a turn, consumes structured
|
|
102
|
+
NDJSON frames until `finish` or `error`, and may offer live input while that
|
|
103
|
+
turn is active; disconnecting the turn stream aborts the request.
|
|
128
104
|
|
|
129
105
|
### Package structure
|
|
130
106
|
|
|
131
107
|
| Source module | Responsibility |
|
|
132
108
|
| --- | --- |
|
|
133
|
-
| [`tui/server.ts`](https://github.com/robertsreberski/mono-agent/blob/main/packages/operator-adapter/src/tui/server.ts) | Conversational info, turn, cancel, pending/submitted `AskUser`, history-append, attachment, and NDJSON framing routes. |
|
|
109
|
+
| [`tui/server.ts`](https://github.com/robertsreberski/mono-agent/blob/main/packages/operator-adapter/src/tui/server.ts) | Conversational info, turn, live-input, cancel, pending/submitted `AskUser`, history-append, attachment, and NDJSON framing routes. |
|
|
134
110
|
| [`tui/config.ts`](https://github.com/robertsreberski/mono-agent/blob/main/packages/operator-adapter/src/tui/config.ts) | `tui.*` JSON/env layering, validation, and secret redaction. |
|
|
135
|
-
| [`
|
|
136
|
-
| [`live/config.ts`](https://github.com/robertsreberski/mono-agent/blob/main/packages/operator-adapter/src/live/config.ts) | `live.*` JSON/env layering, validation, and secret redaction. |
|
|
137
|
-
| [`index.ts`](https://github.com/robertsreberski/mono-agent/blob/main/packages/operator-adapter/src/index.ts) | Supported public package surface for both lanes. |
|
|
111
|
+
| [`index.ts`](https://github.com/robertsreberski/mono-agent/blob/main/packages/operator-adapter/src/index.ts) | Supported public package surface for the operator endpoint. |
|
|
138
112
|
|
|
139
113
|
## Public API
|
|
140
114
|
|
|
@@ -145,9 +119,6 @@ are reduced and remeasured; an event that still cannot fit becomes a bounded
|
|
|
145
119
|
| `startTuiAdapter` | Expose a structural responder over the conversational operator protocol. |
|
|
146
120
|
| `TuiAdapterInfo` | Advertise identity, model choices, model-specific effort support, and context windows. |
|
|
147
121
|
| `loadTuiAdapterConfig` / `TUI_CONFIG_FIELDS` | Reuse the config-first host's `tui.*` validation and provenance metadata. |
|
|
148
|
-
| `createLiveEventBus` | Create the bounded in-process publisher/replay bus for run frames. |
|
|
149
|
-
| `startLiveAdapter` | Serve that bus over the read-only live SSE protocol. |
|
|
150
|
-
| `loadLiveAdapterConfig` / `LIVE_CONFIG_FIELDS` | Reuse `live.*` config validation and provenance metadata. |
|
|
151
122
|
|
|
152
123
|
<!-- public-api-inventory:start -->
|
|
153
124
|
<!-- Generated by scripts/generate-public-api-docs.mjs. Do not edit by hand. -->
|
|
@@ -157,32 +128,12 @@ Every symbol exported by each public code entrypoint is listed below.
|
|
|
157
128
|
**`@mono-agent/operator-adapter`**
|
|
158
129
|
|
|
159
130
|
```text
|
|
160
|
-
CreateLiveEventBusOptions
|
|
161
|
-
DEFAULT_LIVE_BASE_PATH
|
|
162
|
-
DEFAULT_LIVE_HOST
|
|
163
|
-
DEFAULT_LIVE_PORT
|
|
164
131
|
DEFAULT_TUI_BASE_PATH
|
|
165
132
|
DEFAULT_TUI_HOST
|
|
166
133
|
DEFAULT_TUI_PORT
|
|
167
|
-
LIVE_ADAPTER_INFO_SCHEMA
|
|
168
|
-
LIVE_CONFIG_FIELDS
|
|
169
|
-
LIVE_EVENT_SCHEMA
|
|
170
|
-
LIVE_HEARTBEAT_INTERVAL_MS
|
|
171
|
-
LiveAdapterConfig
|
|
172
|
-
LiveAdapterError
|
|
173
|
-
LiveAdapterErrorCode
|
|
174
|
-
LiveAdapterErrorDetails
|
|
175
|
-
LiveAdapterHandle
|
|
176
|
-
LiveAdapterLogger
|
|
177
|
-
LiveAdapterOptions
|
|
178
|
-
LoadLiveAdapterConfigInput
|
|
179
134
|
LoadTuiAdapterConfigInput
|
|
180
135
|
MAX_FRAME_BYTES
|
|
181
|
-
RedactedLiveAdapterConfig
|
|
182
136
|
RedactedTuiAdapterConfig
|
|
183
|
-
RunEventBus
|
|
184
|
-
RunEventFrame
|
|
185
|
-
RunEventSink
|
|
186
137
|
TUI_CONFIG_FIELDS
|
|
187
138
|
TUI_WIRE_SCHEMA
|
|
188
139
|
TuiAdapterConfig
|
|
@@ -193,12 +144,8 @@ TuiAdapterInfo
|
|
|
193
144
|
TuiAdapterLogger
|
|
194
145
|
TuiAdapterOptions
|
|
195
146
|
TuiAdapterStartResult
|
|
196
|
-
createLiveEventBus
|
|
197
|
-
loadLiveAdapterConfig
|
|
198
147
|
loadTuiAdapterConfig
|
|
199
|
-
redactLiveAdapterConfig
|
|
200
148
|
redactTuiAdapterConfig
|
|
201
|
-
startLiveAdapter
|
|
202
149
|
startTuiAdapter
|
|
203
150
|
```
|
|
204
151
|
|
|
@@ -209,15 +156,14 @@ startTuiAdapter
|
|
|
209
156
|
This adapter depends on Express plus shared `@mono-agent/agent-contracts`
|
|
210
157
|
primitives. It must not depend on the agent harness, runtime adapter, operator
|
|
211
158
|
surfaces, memory, observability, other communication adapters, or host/demo
|
|
212
|
-
code. Hosts compose it with structural responders
|
|
159
|
+
code. Hosts compose it with structural responders.
|
|
213
160
|
|
|
214
161
|
## What This Package Does Not Own
|
|
215
162
|
|
|
216
163
|
It does not build prompts, run models, persist conversations, discover running
|
|
217
|
-
agents, render operator UIs,
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
`allowNonLoopback`.
|
|
164
|
+
agents, render operator UIs, implement replay/config views, or own TLS/public
|
|
165
|
+
deployment policy. The server binds loopback-only by default; exposing it beyond
|
|
166
|
+
loopback is a host decision guarded by `allowNonLoopback`.
|
|
221
167
|
|
|
222
168
|
## Related Documentation
|
|
223
169
|
|
package/dist/index.d.ts
CHANGED
|
@@ -5,13 +5,4 @@ export type { TuiAdapterInfo, TuiAdapterLogger, TuiAdapterOptions, TuiAdapterSta
|
|
|
5
5
|
export { loadTuiAdapterConfig, redactTuiAdapterConfig, TUI_CONFIG_FIELDS, } from "./tui/index.js";
|
|
6
6
|
export type { LoadTuiAdapterConfigInput, RedactedTuiAdapterConfig, TuiAdapterConfig, } from "./tui/index.js";
|
|
7
7
|
export { DEFAULT_BASE_PATH as DEFAULT_TUI_BASE_PATH, DEFAULT_HOST as DEFAULT_TUI_HOST, DEFAULT_PORT as DEFAULT_TUI_PORT, MAX_FRAME_BYTES, TUI_WIRE_SCHEMA, } from "./tui/constants.js";
|
|
8
|
-
export { startLiveAdapter } from "./live/index.js";
|
|
9
|
-
export type { LiveAdapterHandle, LiveAdapterLogger, LiveAdapterOptions, } from "./live/index.js";
|
|
10
|
-
export { LiveAdapterError } from "./live/index.js";
|
|
11
|
-
export type { LiveAdapterErrorCode, LiveAdapterErrorDetails } from "./live/index.js";
|
|
12
|
-
export { loadLiveAdapterConfig, redactLiveAdapterConfig, LIVE_CONFIG_FIELDS } from "./live/index.js";
|
|
13
|
-
export type { LiveAdapterConfig, RedactedLiveAdapterConfig, LoadLiveAdapterConfigInput, } from "./live/index.js";
|
|
14
|
-
export { DEFAULT_LIVE_BASE_PATH, DEFAULT_LIVE_HOST, DEFAULT_LIVE_PORT, LIVE_ADAPTER_INFO_SCHEMA, LIVE_HEARTBEAT_INTERVAL_MS, } from "./live/index.js";
|
|
15
|
-
export { LIVE_EVENT_SCHEMA, createLiveEventBus } from "./live/index.js";
|
|
16
|
-
export type { CreateLiveEventBusOptions, RunEventBus, RunEventFrame, RunEventSink, } from "./live/index.js";
|
|
17
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,YAAY,IAAI,gBAAgB,EAChC,YAAY,IAAI,gBAAgB,EAChC,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,YAAY,IAAI,gBAAgB,EAChC,YAAY,IAAI,gBAAgB,EAChC,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,4 @@ export { TuiAdapterError } from "./tui/index.js";
|
|
|
2
2
|
export { startTuiAdapter } from "./tui/index.js";
|
|
3
3
|
export { loadTuiAdapterConfig, redactTuiAdapterConfig, TUI_CONFIG_FIELDS, } from "./tui/index.js";
|
|
4
4
|
export { DEFAULT_BASE_PATH as DEFAULT_TUI_BASE_PATH, DEFAULT_HOST as DEFAULT_TUI_HOST, DEFAULT_PORT as DEFAULT_TUI_PORT, MAX_FRAME_BYTES, TUI_WIRE_SCHEMA, } from "./tui/constants.js";
|
|
5
|
-
export { startLiveAdapter } from "./live/index.js";
|
|
6
|
-
export { LiveAdapterError } from "./live/index.js";
|
|
7
|
-
export { loadLiveAdapterConfig, redactLiveAdapterConfig, LIVE_CONFIG_FIELDS } from "./live/index.js";
|
|
8
|
-
export { DEFAULT_LIVE_BASE_PATH, DEFAULT_LIVE_HOST, DEFAULT_LIVE_PORT, LIVE_ADAPTER_INFO_SCHEMA, LIVE_HEARTBEAT_INTERVAL_MS, } from "./live/index.js";
|
|
9
|
-
export { LIVE_EVENT_SCHEMA, createLiveEventBus } from "./live/index.js";
|
|
10
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOjD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,YAAY,IAAI,gBAAgB,EAChC,YAAY,IAAI,gBAAgB,EAChC,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOjD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,YAAY,IAAI,gBAAgB,EAChC,YAAY,IAAI,gBAAgB,EAChC,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
|
package/dist/tui/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/tui/server.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/tui/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAeL,KAAK,cAAc,EAKnB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAerC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACnE;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,qEAAqE;QACrE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAClF;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC;CAC9C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAaD,wBAAsB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiUhG"}
|
package/dist/tui/server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { createServer } from "node:http";
|
|
3
|
-
import { DEFAULT_AGENT_ATTACHMENT_MAX_BYTES, DEFAULT_AGENT_ATTACHMENT_MIME_ALLOWLIST, agentAttachmentKindFromMimeType, createChannelUserCancelReason, decodeAgentAttachmentText, isAgentResponseCancelledError, serializeAgentStreamFrame, } from "@mono-agent/agent-contracts";
|
|
4
|
-
import { assertSafeBind, bearerTokensEqual,
|
|
3
|
+
import { AGENT_LIVE_INPUT_MAX_CHARACTERS, DEFAULT_AGENT_ATTACHMENT_MAX_BYTES, DEFAULT_AGENT_ATTACHMENT_MIME_ALLOWLIST, BoundedHttpResponseWriter, agentAttachmentKindFromMimeType, closeServerBounded, createChannelUserCancelReason, decodeAgentAttachmentText, isAgentResponseCancelledError, serializeAgentStreamFrame, } from "@mono-agent/agent-contracts";
|
|
4
|
+
import { assertSafeBind, bearerTokensEqual, hostForUrl, isLoopbackHost, listen, normalizeOptionalString, readAuthorizationBearer, } from "@mono-agent/agent-contracts";
|
|
5
5
|
import express, {} from "express";
|
|
6
6
|
import { DEFAULT_BASE_PATH, DEFAULT_HOST, DEFAULT_PORT, MAX_FRAME_BYTES, TUI_WIRE_SCHEMA } from "./constants.js";
|
|
7
7
|
import { TuiAdapterError } from "./errors.js";
|
|
@@ -9,6 +9,7 @@ const MAX_TURN_BODY_BYTES = 96 * 1024 * 1024;
|
|
|
9
9
|
const MAX_VERBATIM_BODY_BYTES = 2 * 1024 * 1024;
|
|
10
10
|
const MAX_VERBATIM_TEXT_CHARACTERS = 200_000;
|
|
11
11
|
const MAX_VERBATIM_TEXT_BYTES = 1024 * 1024;
|
|
12
|
+
const MAX_LIVE_INPUT_BODY_BYTES = 32 * 1024;
|
|
12
13
|
const MAX_WEB_ATTACHMENTS = 10;
|
|
13
14
|
const MAX_WEB_ATTACHMENT_BYTES = 64 * 1024 * 1024;
|
|
14
15
|
const ALLOWED_ATTACHMENT_MIME_TYPES = new Set(DEFAULT_AGENT_ATTACHMENT_MIME_ALLOWLIST.map((mimeType) => mimeType.toLowerCase()));
|
|
@@ -23,10 +24,14 @@ export async function startTuiAdapter(options) {
|
|
|
23
24
|
assertSafeBind(host, options.allowNonLoopback === true, (boundHost) => new TuiAdapterError("unsafe_host", "TUI adapter refuses to bind a non-loopback host unless allowNonLoopback is true.", { host: boundHost }));
|
|
24
25
|
const app = express();
|
|
25
26
|
const server = createServer(app);
|
|
27
|
+
const activeTurns = new Set();
|
|
28
|
+
let stopping = false;
|
|
29
|
+
let stopPromise;
|
|
26
30
|
const infoPath = `${basePath}/v1/info`;
|
|
27
31
|
const turnsPath = `${basePath}/v1/turns`;
|
|
28
32
|
const cancelPath = `${basePath}/v1/conversations/:conversationId/cancel`;
|
|
29
33
|
const verbatimPath = `${basePath}/v1/conversations/:conversationId/verbatim`;
|
|
34
|
+
const liveInputPath = `${basePath}/v1/conversations/:conversationId/live-input`;
|
|
30
35
|
const askPath = `${basePath}/v1/conversations/:conversationId/ask`;
|
|
31
36
|
app.get(infoPath, (req, res) => {
|
|
32
37
|
if (!authorize(req, res, apiKey)) {
|
|
@@ -39,6 +44,7 @@ export async function startTuiAdapter(options) {
|
|
|
39
44
|
pid: process.pid,
|
|
40
45
|
capabilities: {
|
|
41
46
|
attachments: true,
|
|
47
|
+
...(typeof options.responder.offerLiveInput === "function" ? { liveInput: true } : {}),
|
|
42
48
|
...(typeof options.responder.deliverVerbatim === "function" ? { historyAppend: true } : {}),
|
|
43
49
|
...(options.interaction === undefined ? {} : { askUser: true }),
|
|
44
50
|
},
|
|
@@ -109,6 +115,49 @@ export async function startTuiAdapter(options) {
|
|
|
109
115
|
res.status(200).json({ recorded: true, conversationId: body.conversationId });
|
|
110
116
|
}).catch(next);
|
|
111
117
|
});
|
|
118
|
+
app.post(liveInputPath, express.json({ limit: MAX_LIVE_INPUT_BODY_BYTES, strict: true }), (req, res, next) => {
|
|
119
|
+
if (!authorize(req, res, apiKey))
|
|
120
|
+
return;
|
|
121
|
+
const conversationId = normalizeOptionalString(typeof req.params.conversationId === "string" ? req.params.conversationId : undefined);
|
|
122
|
+
const body = typeof req.body === "object" && req.body !== null
|
|
123
|
+
? req.body
|
|
124
|
+
: {};
|
|
125
|
+
if (conversationId === undefined
|
|
126
|
+
|| typeof body.id !== "string"
|
|
127
|
+
|| body.id.trim().length === 0
|
|
128
|
+
|| typeof body.text !== "string"
|
|
129
|
+
|| body.text.trim().length === 0
|
|
130
|
+
|| body.text.length > AGENT_LIVE_INPUT_MAX_CHARACTERS
|
|
131
|
+
|| typeof body.receivedAt !== "string"
|
|
132
|
+
|| Number.isNaN(Date.parse(body.receivedAt))) {
|
|
133
|
+
next(new TuiAdapterError("invalid_request", `Live input requires id, receivedAt, and 1-${String(AGENT_LIVE_INPUT_MAX_CHARACTERS)} text characters.`));
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
if (typeof options.responder.offerLiveInput !== "function") {
|
|
137
|
+
res.status(200).json({ status: "unavailable", reason: "unsupported" });
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
let offer;
|
|
141
|
+
try {
|
|
142
|
+
offer = options.responder.offerLiveInput({
|
|
143
|
+
conversationId,
|
|
144
|
+
id: body.id,
|
|
145
|
+
text: body.text,
|
|
146
|
+
receivedAt: body.receivedAt,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
next(error);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (offer.status === "unavailable") {
|
|
154
|
+
res.status(200).json(offer);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
void offer.settled.then((settlement) => {
|
|
158
|
+
res.status(200).json(settlement);
|
|
159
|
+
}).catch(next);
|
|
160
|
+
});
|
|
112
161
|
app.get(askPath, (req, res) => {
|
|
113
162
|
if (!authorize(req, res, apiKey))
|
|
114
163
|
return;
|
|
@@ -163,7 +212,11 @@ export async function startTuiAdapter(options) {
|
|
|
163
212
|
noAddress: () => new TuiAdapterError("start_failed", "TUI adapter did not receive a TCP address."),
|
|
164
213
|
});
|
|
165
214
|
async function closeRejectedServer() {
|
|
166
|
-
|
|
215
|
+
stopping = true;
|
|
216
|
+
for (const controller of activeTurns)
|
|
217
|
+
controller.abort(new Error("TUI adapter rejected its actual bound address."));
|
|
218
|
+
await closeServerBounded(server);
|
|
219
|
+
activeTurns.clear();
|
|
167
220
|
}
|
|
168
221
|
const boundNonLoopback = !isLoopbackHost(address.address);
|
|
169
222
|
if (boundNonLoopback && options.allowNonLoopback !== true) {
|
|
@@ -178,6 +231,9 @@ export async function startTuiAdapter(options) {
|
|
|
178
231
|
async function handleTurn(req, res) {
|
|
179
232
|
const body = normalizeTurnBody(req.body);
|
|
180
233
|
const controller = new AbortController();
|
|
234
|
+
activeTurns.add(controller);
|
|
235
|
+
if (stopping)
|
|
236
|
+
controller.abort(new Error("TUI adapter is stopping."));
|
|
181
237
|
const requestId = randomUUID();
|
|
182
238
|
const request = {
|
|
183
239
|
conversationId: body.conversationId,
|
|
@@ -198,10 +254,10 @@ export async function startTuiAdapter(options) {
|
|
|
198
254
|
controller.abort(new Error("TUI client disconnected."));
|
|
199
255
|
}
|
|
200
256
|
});
|
|
201
|
-
const stream = new NdjsonMessageStream(res);
|
|
257
|
+
const stream = new NdjsonMessageStream(res, (error) => controller.abort(error));
|
|
202
258
|
try {
|
|
203
259
|
const response = await options.responder.respond(request, stream);
|
|
204
|
-
stream.writeFrame({
|
|
260
|
+
await stream.writeFrame({
|
|
205
261
|
kind: "finish",
|
|
206
262
|
...(response.text === undefined ? {} : { finalText: response.text }),
|
|
207
263
|
...(response.metadata === undefined ? {} : { metadata: response.metadata }),
|
|
@@ -210,14 +266,15 @@ export async function startTuiAdapter(options) {
|
|
|
210
266
|
catch (error) {
|
|
211
267
|
const cancelled = isAgentResponseCancelledError(error) || controller.signal.aborted;
|
|
212
268
|
const code = codeOf(error);
|
|
213
|
-
stream.writeFrame({
|
|
269
|
+
await stream.writeFrame({
|
|
214
270
|
kind: "error",
|
|
215
271
|
message: errorToMessage(error),
|
|
216
272
|
...(code === undefined ? {} : { code }),
|
|
217
273
|
cancelled,
|
|
218
|
-
});
|
|
274
|
+
}).catch(() => undefined);
|
|
219
275
|
}
|
|
220
276
|
finally {
|
|
277
|
+
activeTurns.delete(controller);
|
|
221
278
|
res.end();
|
|
222
279
|
}
|
|
223
280
|
}
|
|
@@ -228,24 +285,33 @@ export async function startTuiAdapter(options) {
|
|
|
228
285
|
turnsUrl: `${url}${turnsPath}`,
|
|
229
286
|
host,
|
|
230
287
|
port: boundPort,
|
|
231
|
-
|
|
232
|
-
|
|
288
|
+
stop() {
|
|
289
|
+
stopPromise ??= (async () => {
|
|
290
|
+
stopping = true;
|
|
291
|
+
for (const controller of activeTurns)
|
|
292
|
+
controller.abort(new Error("TUI adapter stopped."));
|
|
293
|
+
await closeServerBounded(server);
|
|
294
|
+
activeTurns.clear();
|
|
295
|
+
})();
|
|
296
|
+
return stopPromise;
|
|
233
297
|
},
|
|
234
298
|
};
|
|
235
299
|
}
|
|
236
300
|
/**
|
|
237
|
-
* Serializes each AgentMessageStream callback as one NDJSON frame. Writes
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
* with a marker to meet the exported UTF-8 byte
|
|
241
|
-
* their existing behavior.
|
|
301
|
+
* Serializes each AgentMessageStream callback as one NDJSON frame. Writes honor
|
|
302
|
+
* the response's backpressure signal and carry a bounded pending-byte budget,
|
|
303
|
+
* so a slow client cannot grow the process heap without limit. Oversized event
|
|
304
|
+
* frames are reduced or replaced with a marker to meet the exported UTF-8 byte
|
|
305
|
+
* cap; non-event frames retain their existing behavior.
|
|
242
306
|
*/
|
|
243
307
|
class NdjsonMessageStream {
|
|
244
308
|
res;
|
|
245
|
-
|
|
309
|
+
writer;
|
|
310
|
+
constructor(res, onWriteFailure) {
|
|
246
311
|
this.res = res;
|
|
312
|
+
this.writer = new BoundedHttpResponseWriter(res, { onFailure: onWriteFailure });
|
|
247
313
|
}
|
|
248
|
-
writeFrame(frame) {
|
|
314
|
+
async writeFrame(frame) {
|
|
249
315
|
if (this.res.writableEnded) {
|
|
250
316
|
return;
|
|
251
317
|
}
|
|
@@ -253,19 +319,19 @@ class NdjsonMessageStream {
|
|
|
253
319
|
if (Buffer.byteLength(line, "utf8") > MAX_FRAME_BYTES && frame.kind === "event") {
|
|
254
320
|
line = serializeCappedEventFrame(frame.event, line);
|
|
255
321
|
}
|
|
256
|
-
this.
|
|
322
|
+
await this.writer.write(line);
|
|
257
323
|
}
|
|
258
324
|
async status(text) {
|
|
259
|
-
this.writeFrame({ kind: "status", text });
|
|
325
|
+
await this.writeFrame({ kind: "status", text });
|
|
260
326
|
}
|
|
261
327
|
async append(delta) {
|
|
262
|
-
this.writeFrame({ kind: "append", delta });
|
|
328
|
+
await this.writeFrame({ kind: "append", delta });
|
|
263
329
|
}
|
|
264
330
|
async replace(text) {
|
|
265
|
-
this.writeFrame({ kind: "replace", text });
|
|
331
|
+
await this.writeFrame({ kind: "replace", text });
|
|
266
332
|
}
|
|
267
333
|
async event(event) {
|
|
268
|
-
this.writeFrame({ kind: "event", event });
|
|
334
|
+
await this.writeFrame({ kind: "event", event });
|
|
269
335
|
}
|
|
270
336
|
async finish() {
|
|
271
337
|
// The terminal "finish" frame is written by handleTurn from the responder's
|
package/dist/tui/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/tui/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/tui/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mono-agent/operator-adapter",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Loopback operator
|
|
3
|
+
"version": "0.15.1",
|
|
4
|
+
"description": "Loopback operator adapter for mono-agent structured TUI and web NDJSON turns.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "GPL-3.0-only",
|
|
7
7
|
"repository": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"README.md"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@mono-agent/agent-contracts": "0.
|
|
29
|
+
"@mono-agent/agent-contracts": "0.15.1",
|
|
30
30
|
"express": "^5.1.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -38,6 +38,6 @@
|
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "tsc -p tsconfig.build.json",
|
|
40
40
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
41
|
-
"test": "vitest run
|
|
41
|
+
"test": "vitest run"
|
|
42
42
|
}
|
|
43
43
|
}
|
package/dist/live/config.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { JsonEnvFieldSpec, RedactedSecretValue, SettingsJson } from "@mono-agent/agent-contracts";
|
|
2
|
-
export interface LiveAdapterConfig {
|
|
3
|
-
readonly enabled: boolean;
|
|
4
|
-
readonly host: string;
|
|
5
|
-
readonly port: number;
|
|
6
|
-
readonly basePath: string;
|
|
7
|
-
readonly allowNonLoopback: boolean;
|
|
8
|
-
readonly apiKey?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface RedactedLiveAdapterConfig extends Omit<LiveAdapterConfig, "apiKey"> {
|
|
11
|
-
readonly apiKey: RedactedSecretValue;
|
|
12
|
-
}
|
|
13
|
-
export interface LoadLiveAdapterConfigInput {
|
|
14
|
-
readonly env: Record<string, string | undefined>;
|
|
15
|
-
readonly json?: SettingsJson;
|
|
16
|
-
readonly jsonPath?: string;
|
|
17
|
-
}
|
|
18
|
-
export declare function loadLiveAdapterConfig(input: LoadLiveAdapterConfigInput): Promise<LiveAdapterConfig>;
|
|
19
|
-
export declare function redactLiveAdapterConfig(config: LiveAdapterConfig): RedactedLiveAdapterConfig;
|
|
20
|
-
/**
|
|
21
|
-
* The `live` section's field registry: the single source of truth for JSON→env
|
|
22
|
-
* layering and the app's config provenance view. The `live.apiKey` id doubles as
|
|
23
|
-
* a cross-package contract — `@mono-agent/session-web` resolves a running
|
|
24
|
-
* agent's key by reading this field from the agent's config file (the registry
|
|
25
|
-
* carries no secrets).
|
|
26
|
-
*/
|
|
27
|
-
export declare const LIVE_CONFIG_FIELDS: readonly JsonEnvFieldSpec[];
|
|
28
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/live/config.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKvG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAClF,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAcD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAoB5B;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,yBAAyB,CAS5F;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAOzD,CAAC"}
|
package/dist/live/config.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { fieldSpecMappings, layerJsonOntoEnv, normalizeOptionalString, readBoolean, readInteger, readJsonSection, readSettingsJson, readString, redactedSecret, } from "@mono-agent/agent-contracts";
|
|
2
|
-
import { DEFAULT_LIVE_BASE_PATH, DEFAULT_LIVE_HOST, DEFAULT_LIVE_PORT } from "./constants.js";
|
|
3
|
-
import { LiveAdapterError } from "./errors.js";
|
|
4
|
-
/**
|
|
5
|
-
* Like the TUI endpoint (and unlike every chat channel, default OFF), the live
|
|
6
|
-
* event relay is ON by default: it is a read-only operator surface, binds
|
|
7
|
-
* loopback-only on an ephemeral port, and needs no credentials — so read-only
|
|
8
|
-
* consumers such as `@mono-agent/session-web` can observe any running agent
|
|
9
|
-
* without a per-agent config edit. Set `"live": { "enabled": false }` to opt out.
|
|
10
|
-
*/
|
|
11
|
-
const DEFAULT_ENABLED = true;
|
|
12
|
-
const invalidConfig = (message, details) => new LiveAdapterError("invalid_config", message, details);
|
|
13
|
-
export async function loadLiveAdapterConfig(input) {
|
|
14
|
-
const json = input.json ?? (input.jsonPath === undefined ? {} : (await readSettingsJson(input.jsonPath)).json);
|
|
15
|
-
const env = layerLiveJsonOntoEnv(json, input.env);
|
|
16
|
-
const apiKey = normalizeOptionalString(env.MONO_AGENT_LIVE_API_KEY);
|
|
17
|
-
return {
|
|
18
|
-
enabled: readBoolean(env.MONO_AGENT_LIVE_ENABLED, "MONO_AGENT_LIVE_ENABLED", DEFAULT_ENABLED, invalidConfig),
|
|
19
|
-
host: readString(env.MONO_AGENT_LIVE_HOST, DEFAULT_LIVE_HOST),
|
|
20
|
-
port: readInteger(env.MONO_AGENT_LIVE_PORT, "MONO_AGENT_LIVE_PORT", DEFAULT_LIVE_PORT, invalidConfig, {
|
|
21
|
-
min: 0,
|
|
22
|
-
max: 65535,
|
|
23
|
-
}),
|
|
24
|
-
basePath: readBasePath(env.MONO_AGENT_LIVE_BASE_PATH),
|
|
25
|
-
allowNonLoopback: readBoolean(env.MONO_AGENT_LIVE_ALLOW_NON_LOOPBACK, "MONO_AGENT_LIVE_ALLOW_NON_LOOPBACK", false, invalidConfig),
|
|
26
|
-
...(apiKey === undefined ? {} : { apiKey }),
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
export function redactLiveAdapterConfig(config) {
|
|
30
|
-
return {
|
|
31
|
-
enabled: config.enabled,
|
|
32
|
-
host: config.host,
|
|
33
|
-
port: config.port,
|
|
34
|
-
basePath: config.basePath,
|
|
35
|
-
allowNonLoopback: config.allowNonLoopback,
|
|
36
|
-
apiKey: redactedSecret(config.apiKey),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* The `live` section's field registry: the single source of truth for JSON→env
|
|
41
|
-
* layering and the app's config provenance view. The `live.apiKey` id doubles as
|
|
42
|
-
* a cross-package contract — `@mono-agent/session-web` resolves a running
|
|
43
|
-
* agent's key by reading this field from the agent's config file (the registry
|
|
44
|
-
* carries no secrets).
|
|
45
|
-
*/
|
|
46
|
-
export const LIVE_CONFIG_FIELDS = [
|
|
47
|
-
{ id: "live.enabled", env: "MONO_AGENT_LIVE_ENABLED", kind: "boolean", fromJson: (s) => s.enabled },
|
|
48
|
-
{ id: "live.host", env: "MONO_AGENT_LIVE_HOST", fromJson: (s) => s.host },
|
|
49
|
-
{ id: "live.port", env: "MONO_AGENT_LIVE_PORT", kind: "integer", fromJson: (s) => s.port },
|
|
50
|
-
{ id: "live.basePath", env: "MONO_AGENT_LIVE_BASE_PATH", fromJson: (s) => s.basePath },
|
|
51
|
-
{ id: "live.allowNonLoopback", env: "MONO_AGENT_LIVE_ALLOW_NON_LOOPBACK", kind: "boolean", fromJson: (s) => s.allowNonLoopback },
|
|
52
|
-
{ id: "live.apiKey", env: "MONO_AGENT_LIVE_API_KEY", secret: true, fromJson: (s) => s.apiKey },
|
|
53
|
-
];
|
|
54
|
-
function layerLiveJsonOntoEnv(json, env) {
|
|
55
|
-
return layerJsonOntoEnv(env, fieldSpecMappings(readJsonSection(json, "live"), LIVE_CONFIG_FIELDS));
|
|
56
|
-
}
|
|
57
|
-
function readBasePath(raw) {
|
|
58
|
-
const value = readString(raw, DEFAULT_LIVE_BASE_PATH);
|
|
59
|
-
if (!isLiteralBasePath(value)) {
|
|
60
|
-
throw invalidConfig("MONO_AGENT_LIVE_BASE_PATH must be an absolute literal path made of slash-separated URL path segments.");
|
|
61
|
-
}
|
|
62
|
-
const stripped = value.replace(/\/+$/u, "");
|
|
63
|
-
return stripped.length === 0 ? "/" : stripped;
|
|
64
|
-
}
|
|
65
|
-
function isLiteralBasePath(basePath) {
|
|
66
|
-
return basePath === "/" || /^\/[A-Za-z0-9._~-]+(?:\/[A-Za-z0-9._~-]+)*\/?$/u.test(basePath);
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=config.js.map
|
package/dist/live/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/live/config.ts"],"names":[],"mappings":"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"}
|
package/dist/live/constants.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/** Loopback-only default bind host — the adapter refuses non-loopback unless explicitly allowed. */
|
|
2
|
-
export declare const DEFAULT_LIVE_HOST = "127.0.0.1";
|
|
3
|
-
/** Default TCP port. `0` lets the OS pick a free ephemeral port (read back from the handle's baseUrl). */
|
|
4
|
-
export declare const DEFAULT_LIVE_PORT = 0;
|
|
5
|
-
/** Default URL prefix under which the adapter mounts `/v1/info` and `/v1/events`. */
|
|
6
|
-
export declare const DEFAULT_LIVE_BASE_PATH = "/live";
|
|
7
|
-
/**
|
|
8
|
-
* Schema tag surfaced by GET /v1/info so a discovery probe can identify the
|
|
9
|
-
* adapter and its wire version before subscribing to the event stream.
|
|
10
|
-
*/
|
|
11
|
-
export declare const LIVE_ADAPTER_INFO_SCHEMA = "live-adapter.v1";
|
|
12
|
-
/**
|
|
13
|
-
* Interval between SSE heartbeat comment lines (`: ping\n\n`). Heartbeats keep
|
|
14
|
-
* idle proxies/clients from dropping the connection between runs; the comment
|
|
15
|
-
* form carries no data and is ignored by SSE parsers.
|
|
16
|
-
*/
|
|
17
|
-
export declare const LIVE_HEARTBEAT_INTERVAL_MS = 15000;
|
|
18
|
-
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/live/constants.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C,0GAA0G;AAC1G,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,qFAAqF;AACrF,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,oBAAoB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC"}
|
package/dist/live/constants.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/** Loopback-only default bind host — the adapter refuses non-loopback unless explicitly allowed. */
|
|
2
|
-
export const DEFAULT_LIVE_HOST = "127.0.0.1";
|
|
3
|
-
/** Default TCP port. `0` lets the OS pick a free ephemeral port (read back from the handle's baseUrl). */
|
|
4
|
-
export const DEFAULT_LIVE_PORT = 0;
|
|
5
|
-
/** Default URL prefix under which the adapter mounts `/v1/info` and `/v1/events`. */
|
|
6
|
-
export const DEFAULT_LIVE_BASE_PATH = "/live";
|
|
7
|
-
/**
|
|
8
|
-
* Schema tag surfaced by GET /v1/info so a discovery probe can identify the
|
|
9
|
-
* adapter and its wire version before subscribing to the event stream.
|
|
10
|
-
*/
|
|
11
|
-
export const LIVE_ADAPTER_INFO_SCHEMA = "live-adapter.v1";
|
|
12
|
-
/**
|
|
13
|
-
* Interval between SSE heartbeat comment lines (`: ping\n\n`). Heartbeats keep
|
|
14
|
-
* idle proxies/clients from dropping the connection between runs; the comment
|
|
15
|
-
* form carries no data and is ignored by SSE parsers.
|
|
16
|
-
*/
|
|
17
|
-
export const LIVE_HEARTBEAT_INTERVAL_MS = 15_000;
|
|
18
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/live/constants.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAE7C,0GAA0G;AAC1G,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,qFAAqF;AACrF,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC"}
|
package/dist/live/errors.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { CodedError } from "@mono-agent/agent-contracts";
|
|
2
|
-
export type LiveAdapterErrorCode = "invalid_config" | "unsafe_host" | "start_failed";
|
|
3
|
-
export interface LiveAdapterErrorDetails {
|
|
4
|
-
readonly code?: LiveAdapterErrorCode;
|
|
5
|
-
readonly reason?: string;
|
|
6
|
-
readonly [key: string]: unknown;
|
|
7
|
-
}
|
|
8
|
-
export declare class LiveAdapterError extends CodedError<LiveAdapterErrorCode> {
|
|
9
|
-
readonly details: LiveAdapterErrorDetails;
|
|
10
|
-
constructor(code: LiveAdapterErrorCode, message: string, details?: LiveAdapterErrorDetails);
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/live/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAC5B,gBAAgB,GAChB,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,oBAAoB,CAAC;IACpE,SAAiB,OAAO,EAAE,uBAAuB,CAAC;gBAGhD,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B;CAIxC"}
|
package/dist/live/errors.js
DELETED
package/dist/live/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/live/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAazD,MAAM,OAAO,gBAAiB,SAAQ,UAAgC;IAGpE,YACE,IAA0B,EAC1B,OAAe,EACf,UAAmC,EAAE;QAErC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF"}
|
package/dist/live/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { startLiveAdapter } from "./server.js";
|
|
2
|
-
export type { LiveAdapterHandle, LiveAdapterLogger, LiveAdapterOptions, } from "./server.js";
|
|
3
|
-
export { LiveAdapterError } from "./errors.js";
|
|
4
|
-
export type { LiveAdapterErrorCode, LiveAdapterErrorDetails } from "./errors.js";
|
|
5
|
-
export { loadLiveAdapterConfig, redactLiveAdapterConfig, LIVE_CONFIG_FIELDS } from "./config.js";
|
|
6
|
-
export type { LiveAdapterConfig, RedactedLiveAdapterConfig, LoadLiveAdapterConfigInput, } from "./config.js";
|
|
7
|
-
export { DEFAULT_LIVE_BASE_PATH, DEFAULT_LIVE_HOST, DEFAULT_LIVE_PORT, LIVE_ADAPTER_INFO_SCHEMA, LIVE_HEARTBEAT_INTERVAL_MS, } from "./constants.js";
|
|
8
|
-
export { LIVE_EVENT_SCHEMA, createLiveEventBus } from "@mono-agent/agent-contracts";
|
|
9
|
-
export type { CreateLiveEventBusOptions, RunEventBus, RunEventFrame, RunEventSink, } from "@mono-agent/agent-contracts";
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/live/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjG,YAAY,EACV,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACpF,YAAY,EACV,yBAAyB,EACzB,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,6BAA6B,CAAC"}
|
package/dist/live/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { startLiveAdapter } from "./server.js";
|
|
2
|
-
export { LiveAdapterError } from "./errors.js";
|
|
3
|
-
export { loadLiveAdapterConfig, redactLiveAdapterConfig, LIVE_CONFIG_FIELDS } from "./config.js";
|
|
4
|
-
export { DEFAULT_LIVE_BASE_PATH, DEFAULT_LIVE_HOST, DEFAULT_LIVE_PORT, LIVE_ADAPTER_INFO_SCHEMA, LIVE_HEARTBEAT_INTERVAL_MS, } from "./constants.js";
|
|
5
|
-
// Re-export the shared live-event contract + the in-process bus factory (both live
|
|
6
|
-
// in core) so consumers can build/type producers and subscribers from one import.
|
|
7
|
-
export { LIVE_EVENT_SCHEMA, createLiveEventBus } from "@mono-agent/agent-contracts";
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/dist/live/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/live/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAM/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMjG,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,mFAAmF;AACnF,kFAAkF;AAClF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
|
package/dist/live/server.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { type RunEventBus } from "@mono-agent/agent-contracts";
|
|
2
|
-
export interface LiveAdapterLogger {
|
|
3
|
-
debug?(message: string, metadata?: Record<string, unknown>): void;
|
|
4
|
-
info?(message: string, metadata?: Record<string, unknown>): void;
|
|
5
|
-
warn?(message: string, metadata?: Record<string, unknown>): void;
|
|
6
|
-
error?(message: string, metadata?: Record<string, unknown>): void;
|
|
7
|
-
}
|
|
8
|
-
export interface LiveAdapterOptions {
|
|
9
|
-
/** In-process bus the adapter subscribes to and replays. Read-only — never written. */
|
|
10
|
-
readonly bus: RunEventBus;
|
|
11
|
-
readonly host?: string;
|
|
12
|
-
readonly port?: number;
|
|
13
|
-
readonly basePath?: string;
|
|
14
|
-
readonly allowNonLoopback?: boolean;
|
|
15
|
-
/** When set, both routes require `Authorization: Bearer <apiKey>`; a mismatch is a 401. */
|
|
16
|
-
readonly apiKey?: string;
|
|
17
|
-
/** Human label surfaced by GET /v1/info so a discovery probe can name the instance. */
|
|
18
|
-
readonly label?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Invoked when the already-listening HTTP server dies (e.g. a socket-level
|
|
21
|
-
* failure appearing later). The hosting channel driver maps this to its
|
|
22
|
-
* onFailure hook so the channel flips to "failed" instead of silently serving
|
|
23
|
-
* nothing.
|
|
24
|
-
*/
|
|
25
|
-
readonly onServerError?: (reason: string) => void;
|
|
26
|
-
readonly logger?: LiveAdapterLogger;
|
|
27
|
-
}
|
|
28
|
-
export interface LiveAdapterHandle {
|
|
29
|
-
/** SSE root: `http://<host>:<actualPort><basePath>`. `/v1/events` and `/v1/info` hang off it. */
|
|
30
|
-
readonly baseUrl: string;
|
|
31
|
-
/** Tear down every open SSE connection and close the HTTP server. */
|
|
32
|
-
stop(): Promise<void>;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Start a loopback, read-only SSE server that relays a {@link RunEventBus} to
|
|
36
|
-
* operator surfaces. It observes only: there is no turn-driving endpoint and no
|
|
37
|
-
* reference to a responder.
|
|
38
|
-
*/
|
|
39
|
-
export declare function startLiveAdapter(options: LiveAdapterOptions): Promise<LiveAdapterHandle>;
|
|
40
|
-
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/live/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqC,KAAK,WAAW,EAAsB,MAAM,6BAA6B,CAAC;AAyBtH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAClE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,kBAAkB;IACjC,uFAAuF;IACvF,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,iGAAiG;IACjG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AASD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyM9F"}
|
package/dist/live/server.js
DELETED
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
import { createServer } from "node:http";
|
|
2
|
-
import { DEFAULT_RUN_EVENT_MAX_FRAME_BYTES } from "@mono-agent/agent-contracts";
|
|
3
|
-
import { assertSafeBind, bearerTokensEqual, close, hostForUrl, isLoopbackHost, listen, normalizeOptionalString, readAuthorizationBearer, } from "@mono-agent/agent-contracts";
|
|
4
|
-
import express, {} from "express";
|
|
5
|
-
import { DEFAULT_LIVE_BASE_PATH, DEFAULT_LIVE_HOST, DEFAULT_LIVE_PORT, LIVE_ADAPTER_INFO_SCHEMA, LIVE_HEARTBEAT_INTERVAL_MS, } from "./constants.js";
|
|
6
|
-
import { LiveAdapterError } from "./errors.js";
|
|
7
|
-
const MAX_SSE_QUEUE_FRAMES = 1_000;
|
|
8
|
-
const FRAME_ENCODER = new TextEncoder();
|
|
9
|
-
/**
|
|
10
|
-
* Start a loopback, read-only SSE server that relays a {@link RunEventBus} to
|
|
11
|
-
* operator surfaces. It observes only: there is no turn-driving endpoint and no
|
|
12
|
-
* reference to a responder.
|
|
13
|
-
*/
|
|
14
|
-
export async function startLiveAdapter(options) {
|
|
15
|
-
if (options.bus === undefined || typeof options.bus.subscribe !== "function") {
|
|
16
|
-
throw new LiveAdapterError("invalid_config", "startLiveAdapter requires a RunEventBus.");
|
|
17
|
-
}
|
|
18
|
-
const host = options.host ?? DEFAULT_LIVE_HOST;
|
|
19
|
-
const port = options.port ?? DEFAULT_LIVE_PORT;
|
|
20
|
-
const basePath = normalizeBasePath(options.basePath ?? DEFAULT_LIVE_BASE_PATH);
|
|
21
|
-
const apiKey = normalizeOptionalString(options.apiKey);
|
|
22
|
-
const label = normalizeOptionalString(options.label);
|
|
23
|
-
assertSafeBind(host, options.allowNonLoopback === true, (boundHost) => new LiveAdapterError("unsafe_host", "Live adapter refuses to bind a non-loopback host unless allowNonLoopback is true.", { host: boundHost }));
|
|
24
|
-
const app = express();
|
|
25
|
-
const server = createServer(app);
|
|
26
|
-
const infoPath = `${basePath}/v1/info`;
|
|
27
|
-
const eventsPath = `${basePath}/v1/events`;
|
|
28
|
-
const connections = new Set();
|
|
29
|
-
app.get(infoPath, (req, res) => {
|
|
30
|
-
if (!authorize(req, res, apiKey)) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
res.status(200).json({
|
|
34
|
-
schema: LIVE_ADAPTER_INFO_SCHEMA,
|
|
35
|
-
pid: process.pid,
|
|
36
|
-
...(label === undefined ? {} : { label }),
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
app.get(eventsPath, (req, res) => {
|
|
40
|
-
if (!authorize(req, res, apiKey)) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
handleEvents(res);
|
|
44
|
-
});
|
|
45
|
-
const address = await listen(server, port, host, {
|
|
46
|
-
listenFailed: (reason) => new LiveAdapterError("start_failed", "Live adapter failed to listen.", { reason }),
|
|
47
|
-
noAddress: () => new LiveAdapterError("start_failed", "Live adapter did not receive a TCP address."),
|
|
48
|
-
});
|
|
49
|
-
async function closeRejectedServer() {
|
|
50
|
-
for (const connection of [...connections]) {
|
|
51
|
-
connection.teardown();
|
|
52
|
-
if (!connection.res.writableEnded) {
|
|
53
|
-
connection.res.end();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
connections.clear();
|
|
57
|
-
await close(server);
|
|
58
|
-
}
|
|
59
|
-
const boundNonLoopback = !isLoopbackHost(address.address);
|
|
60
|
-
if (boundNonLoopback && options.allowNonLoopback !== true) {
|
|
61
|
-
await closeRejectedServer();
|
|
62
|
-
throw new LiveAdapterError("unsafe_host", "Live adapter resolved a loopback host to a non-loopback bind address.", { host, boundAddress: address.address, boundPort: address.port });
|
|
63
|
-
}
|
|
64
|
-
server.on("error", (error) => {
|
|
65
|
-
options.onServerError?.(errorToMessage(error));
|
|
66
|
-
});
|
|
67
|
-
const baseUrl = `http://${hostForUrl(host)}:${address.port}${basePath}`;
|
|
68
|
-
function handleEvents(res) {
|
|
69
|
-
// SSE handshake. Mirror the openai-api-adapter header set; disable Nagle so
|
|
70
|
-
// each frame flushes immediately, and flush headers before subscribing so
|
|
71
|
-
// the client sees the stream open promptly.
|
|
72
|
-
res.status(200);
|
|
73
|
-
res.setHeader("Content-Type", "text/event-stream");
|
|
74
|
-
res.setHeader("Cache-Control", "no-cache, no-transform");
|
|
75
|
-
res.setHeader("Connection", "keep-alive");
|
|
76
|
-
res.setHeader("X-Accel-Buffering", "no");
|
|
77
|
-
res.socket?.setNoDelay(true);
|
|
78
|
-
res.flushHeaders();
|
|
79
|
-
const queue = [];
|
|
80
|
-
let draining = false;
|
|
81
|
-
let closed = false;
|
|
82
|
-
let teardown;
|
|
83
|
-
const flush = () => {
|
|
84
|
-
while (!closed && !draining && queue.length > 0) {
|
|
85
|
-
const payload = queue.shift();
|
|
86
|
-
if (payload === undefined) {
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
if (res.writableEnded) {
|
|
90
|
-
closed = true;
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const ok = res.write(payload);
|
|
94
|
-
if (!ok) {
|
|
95
|
-
draining = true;
|
|
96
|
-
res.once("drain", () => {
|
|
97
|
-
draining = false;
|
|
98
|
-
flush();
|
|
99
|
-
});
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
const closeSlowClient = () => {
|
|
105
|
-
if (closed) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
options.logger?.warn?.("Closing slow live SSE client after queue overflow.", {
|
|
109
|
-
queuedFrames: queue.length,
|
|
110
|
-
maxQueuedFrames: MAX_SSE_QUEUE_FRAMES,
|
|
111
|
-
});
|
|
112
|
-
teardown?.();
|
|
113
|
-
closed = true;
|
|
114
|
-
queue.length = 0;
|
|
115
|
-
if (!res.writableEnded) {
|
|
116
|
-
res.end();
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
const enqueue = (payload) => {
|
|
120
|
-
if (closed || res.writableEnded) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
queue.push(payload);
|
|
124
|
-
if (queue.length > MAX_SSE_QUEUE_FRAMES) {
|
|
125
|
-
closeSlowClient();
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
flush();
|
|
129
|
-
};
|
|
130
|
-
const write = (frame) => {
|
|
131
|
-
const payload = serializeFrame(frame, options.logger);
|
|
132
|
-
if (payload !== undefined) {
|
|
133
|
-
enqueue(payload);
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
// Replay the ring buffer (oldest-first) so a late joiner can reconstruct
|
|
137
|
-
// in-flight runs, then stream every subsequent frame the same way.
|
|
138
|
-
for (const frame of options.bus.recentFrames()) {
|
|
139
|
-
write(frame);
|
|
140
|
-
}
|
|
141
|
-
if (closed) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const unsubscribe = options.bus.subscribe(write);
|
|
145
|
-
const heartbeat = setInterval(() => {
|
|
146
|
-
if (closed || draining || res.writableEnded) {
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
enqueue(": ping\n\n");
|
|
150
|
-
}, LIVE_HEARTBEAT_INTERVAL_MS);
|
|
151
|
-
// Never keep the process alive solely for the heartbeat timer.
|
|
152
|
-
heartbeat.unref?.();
|
|
153
|
-
let torn = false;
|
|
154
|
-
teardown = () => {
|
|
155
|
-
if (torn) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
torn = true;
|
|
159
|
-
closed = true;
|
|
160
|
-
clearInterval(heartbeat);
|
|
161
|
-
unsubscribe();
|
|
162
|
-
queue.length = 0;
|
|
163
|
-
};
|
|
164
|
-
const connection = { res, teardown };
|
|
165
|
-
connections.add(connection);
|
|
166
|
-
res.once("close", () => {
|
|
167
|
-
connections.delete(connection);
|
|
168
|
-
teardown();
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
return {
|
|
172
|
-
baseUrl,
|
|
173
|
-
async stop() {
|
|
174
|
-
// SSE connections never end on their own, so `server.close()` would hang
|
|
175
|
-
// waiting for them — tear each down and end the response first.
|
|
176
|
-
for (const connection of [...connections]) {
|
|
177
|
-
connection.teardown();
|
|
178
|
-
if (!connection.res.writableEnded) {
|
|
179
|
-
connection.res.end();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
connections.clear();
|
|
183
|
-
await close(server);
|
|
184
|
-
},
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
function authorize(req, res, apiKey) {
|
|
188
|
-
if (apiKey === undefined) {
|
|
189
|
-
return true;
|
|
190
|
-
}
|
|
191
|
-
const presented = readAuthorizationBearer(req.header("authorization"));
|
|
192
|
-
if (presented !== undefined && bearerTokensEqual(presented, apiKey)) {
|
|
193
|
-
return true;
|
|
194
|
-
}
|
|
195
|
-
res.status(401).json({ error: { message: "Invalid API key.", code: "invalid_api_key" } });
|
|
196
|
-
return false;
|
|
197
|
-
}
|
|
198
|
-
function errorToMessage(error) {
|
|
199
|
-
if (error instanceof Error && error.message.length > 0) {
|
|
200
|
-
return error.message;
|
|
201
|
-
}
|
|
202
|
-
return String(error);
|
|
203
|
-
}
|
|
204
|
-
function normalizeBasePath(basePath) {
|
|
205
|
-
if (!isLiteralBasePath(basePath)) {
|
|
206
|
-
throw new LiveAdapterError("invalid_config", "basePath must be an absolute literal path made of slash-separated URL path segments.");
|
|
207
|
-
}
|
|
208
|
-
return basePath.length === 1 ? "" : basePath.replace(/\/+$/u, "");
|
|
209
|
-
}
|
|
210
|
-
function serializeFrame(frame, logger) {
|
|
211
|
-
try {
|
|
212
|
-
// JSON.stringify is single-line, so the only newlines are the SSE terminator.
|
|
213
|
-
const json = JSON.stringify(frame);
|
|
214
|
-
if (FRAME_ENCODER.encode(json).length > DEFAULT_RUN_EVENT_MAX_FRAME_BYTES) {
|
|
215
|
-
logger?.warn?.("Dropped oversized live event frame.", {
|
|
216
|
-
maxFrameBytes: DEFAULT_RUN_EVENT_MAX_FRAME_BYTES,
|
|
217
|
-
runId: "runId" in frame ? frame.runId : undefined,
|
|
218
|
-
});
|
|
219
|
-
return undefined;
|
|
220
|
-
}
|
|
221
|
-
return `data: ${json}\n\n`;
|
|
222
|
-
}
|
|
223
|
-
catch (error) {
|
|
224
|
-
logger?.warn?.("Dropped unserializable live event frame.", {
|
|
225
|
-
reason: error instanceof Error ? error.message : String(error),
|
|
226
|
-
runId: "runId" in frame ? frame.runId : undefined,
|
|
227
|
-
});
|
|
228
|
-
return undefined;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
function isLiteralBasePath(basePath) {
|
|
232
|
-
return basePath === "/" || /^\/[A-Za-z0-9._~-]+(?:\/[A-Za-z0-9._~-]+)*\/?$/u.test(basePath);
|
|
233
|
-
}
|
|
234
|
-
//# sourceMappingURL=server.js.map
|
package/dist/live/server.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/live/server.ts"],"names":[],"mappings":"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"}
|