@mono-agent/operator-adapter 0.20.11 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -12
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tui/errors.d.ts +1 -1
- package/dist/tui/errors.d.ts.map +1 -1
- package/dist/tui/errors.js.map +1 -1
- package/dist/tui/index.d.ts +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/server.d.ts +85 -9
- package/dist/tui/server.d.ts.map +1 -1
- package/dist/tui/server.js +766 -20
- package/dist/tui/server.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -61,6 +61,7 @@ Keep bearer values out of source config when possible. Set
|
|
|
61
61
|
|
|
62
62
|
- `GET {basePath}/v1/info` returns the wire `schema`, process id, and attachment
|
|
63
63
|
capability. `capabilities.liveInput`, `capabilities.historyAppend`,
|
|
64
|
+
`capabilities.contextImport`,
|
|
64
65
|
`capabilities.askUser`, `capabilities.askById`, and `capabilities.cron` are
|
|
65
66
|
advertised additively when their routes are supported. `capabilities.cron`
|
|
66
67
|
reports `status: "ready" | "degraded"` and separates read support from
|
|
@@ -73,13 +74,43 @@ Keep bearer values out of source config when possible. Set
|
|
|
73
74
|
expose a bounded `skills` snapshot with ready/error state and per-item
|
|
74
75
|
inlined/on-demand/unavailable status. `info` may be a function so local-model
|
|
75
76
|
choices and skills can refresh without restarting the endpoint.
|
|
77
|
+
- `POST {basePath}/v1/conversations/:id/context-imports` is present only when
|
|
78
|
+
`capabilities.contextImport = { version: 1, maxTextBytes: 32768 }` is
|
|
79
|
+
advertised. Its exact `{ text, idempotencyKey }` body imports canonical
|
|
80
|
+
provenance plus assistant context without a model turn. The decoded
|
|
81
|
+
conversation id is capped at 4096 UTF-8 bytes, the key at 512, and the JSON
|
|
82
|
+
parser ceiling is 199711 bytes (the sixfold escaping maximum). Results are
|
|
83
|
+
`appended`/`duplicate` (`200`), `context_import_conflict` with a bounded
|
|
84
|
+
canonical reason (`409`), `context_import_unsupported` (`501`), or a
|
|
85
|
+
sanitized `context_import_failed` (`500`); responses are private and
|
|
86
|
+
non-cacheable. Whitespace-only text/keys are invalid, while accepted opaque
|
|
87
|
+
values retain their original whitespace.
|
|
88
|
+
- `GET {basePath}/v1/provider-auth` plus the paired session create, poll,
|
|
89
|
+
input, and delete routes expose a host-injected `ProviderAuthOperator`.
|
|
90
|
+
`capabilities.providerAuth = { version: 1 }` and every route are available
|
|
91
|
+
whenever that service is present. Routes are keyless when the operator
|
|
92
|
+
endpoint has no API key and otherwise require its normal bearer. Strict
|
|
93
|
+
responses are secret-free and set `Cache-Control: private, no-store,
|
|
94
|
+
max-age=0`. The adapter never resolves an auth-store path or persists
|
|
95
|
+
session/input data. Repeating a semantically valid session POST replaces the
|
|
96
|
+
host's current login and returns a fresh session; invalid POST bodies are
|
|
97
|
+
rejected before the operator is called, and an active live check remains an
|
|
98
|
+
explicit conflict.
|
|
99
|
+
When the operator also exposes checks, the nested additive
|
|
100
|
+
`providerAuth.checks.version = 1` capability enables check start, poll, and
|
|
101
|
+
cancel routes under `/v1/provider-auth/checks`. A check is an explicit
|
|
102
|
+
side-effecting action; status reads never start one. Cooldown responses use
|
|
103
|
+
`429` plus `Retry-After`.
|
|
76
104
|
- `POST {basePath}/v1/turns` accepts
|
|
77
105
|
`{ conversationId, text, attachments?, metadata? }`; attachment-only web
|
|
78
106
|
turns are valid. Web model/effort metadata is preserved and mirrored into the
|
|
79
107
|
shared TUI override lane before the responder runs. The response is chunked
|
|
80
108
|
`application/x-ndjson` with frames
|
|
81
109
|
(`status | append | replace | event | finish | error`). Closing the socket
|
|
82
|
-
aborts the in-flight turn.
|
|
110
|
+
aborts the in-flight turn. Host Monitor wake keys in turn submissions or live
|
|
111
|
+
input additionally require the independent Monitor owner bearer in
|
|
112
|
+
`x-mono-agent-monitor-wake-authorization`; an ordinary operator API key cannot
|
|
113
|
+
authorize a Monitor flight.
|
|
83
114
|
- `GET {basePath}/v1/conversations/:id/ask` - the current pending `AskUser`
|
|
84
115
|
snapshot, or `{ ask: null }`.
|
|
85
116
|
- `GET {basePath}/v1/interactions/:interactionId` - an exact pending or bounded
|
|
@@ -92,9 +123,15 @@ Keep bearer values out of source config when possible. Set
|
|
|
92
123
|
- `POST {basePath}/v1/conversations/:id/cancel` - explicit cancel (202; 501
|
|
93
124
|
when the responder has no `cancel`); pending AskUser state is cancelled too.
|
|
94
125
|
- `POST {basePath}/v1/conversations/:id/live-input` - offer bounded
|
|
95
|
-
`{ id, text, receivedAt }` guidance to the active
|
|
96
|
-
|
|
97
|
-
`
|
|
126
|
+
`{ id, text, receivedAt, targetTurnId?, targetRunId? }` guidance to the active
|
|
127
|
+
turn. When `/v1/info` advertises `liveInputTargeting.version: 1`, a Web
|
|
128
|
+
`targetTurnId` waits behind that exact operation's host-only harness ownership
|
|
129
|
+
and is forwarded with its actual `targetRunId`; closed, mismatched, timed-out,
|
|
130
|
+
disconnected, or stopped waiters detach without being offered to a successor.
|
|
131
|
+
The response waits for
|
|
132
|
+
`applied`, `requeue`, `discarded`, or `uncertain`; inactive/unsupported offers
|
|
133
|
+
return `unavailable`. A rejected accepted-settlement promise serializes as
|
|
134
|
+
`uncertain` rather than an untyped error or retry signal.
|
|
98
135
|
- `POST {basePath}/v1/conversations/:id/verbatim` - authenticated
|
|
99
136
|
`{ text, idempotencyKey }` durable-history append with no model turn (200; 501
|
|
100
137
|
when the responder has no `deliverVerbatim`).
|
|
@@ -137,8 +174,9 @@ Event NDJSON lines are capped at 256 KiB. Oversized thought and tool payloads
|
|
|
137
174
|
are reduced and remeasured; an event that still cannot fit becomes a bounded
|
|
138
175
|
`oversized_event` marker. That size guard is not a redaction boundary.
|
|
139
176
|
|
|
140
|
-
`replyAttachments
|
|
141
|
-
when the responder does not implement the corresponding
|
|
177
|
+
`liveInputTargeting`, `replyAttachments`, and `mcpApps` are additive capabilities: they are omitted
|
|
178
|
+
when the responder does not implement the corresponding ownership or authorized
|
|
179
|
+
resource surface.
|
|
142
180
|
The web consumer retains the legacy 8 MiB input ceiling so it can read an older
|
|
143
181
|
agent even though current producers emit at most 256 KiB per frame. See
|
|
144
182
|
[Reply files and MCP Apps](https://mono-agent-docs.vercel.app/tools/rich-replies/).
|
|
@@ -154,17 +192,18 @@ agent even though current producers emit at most 256 KiB per frame. See
|
|
|
154
192
|
structured NDJSON frames until `finish` or `error`, and may offer live input
|
|
155
193
|
while that turn is active; disconnecting the turn stream aborts the request.
|
|
156
194
|
|
|
157
|
-
Web
|
|
158
|
-
`processJobWakeDeliveryKey` on reserved fallback turns.
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
195
|
+
Web host wakes carry `deliveryKey` on live-input requests and the legacy-named
|
|
196
|
+
`processJobWakeDeliveryKey` on reserved fallback turns. That additive field now
|
|
197
|
+
carries either a ProcessJobs key or a namespaced `monitor:<id>:<seq>` key. The
|
|
198
|
+
server validates both, forwards the exact-run target to the responder, and moves
|
|
199
|
+
the fallback identity onto a non-enumerable host-only metadata symbol so it
|
|
200
|
+
cannot become prompt, history, or JSON wire content.
|
|
162
201
|
|
|
163
202
|
### Package structure
|
|
164
203
|
|
|
165
204
|
| Source module | Responsibility |
|
|
166
205
|
| --- | --- |
|
|
167
|
-
| [`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, owner-authenticated process-job projection/cancel, attachment, and NDJSON framing routes. |
|
|
206
|
+
| [`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, conditionally bearer-protected provider-auth and owner-authenticated process-job projection/cancel, attachment, and NDJSON framing routes. |
|
|
168
207
|
| [`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. |
|
|
169
208
|
| [`index.ts`](https://github.com/robertsreberski/mono-agent/blob/main/packages/operator-adapter/src/index.ts) | Supported public package surface for the operator endpoint. |
|
|
170
209
|
|
|
@@ -223,6 +262,12 @@ TuiAdapterInfo
|
|
|
223
262
|
TuiAdapterLogger
|
|
224
263
|
TuiAdapterOptions
|
|
225
264
|
TuiAdapterStartResult
|
|
265
|
+
TuiCatalogModel
|
|
266
|
+
TuiModelCatalogPage
|
|
267
|
+
TuiModelCatalogProvider
|
|
268
|
+
TuiModelCatalogRequest
|
|
269
|
+
TuiModelOption
|
|
270
|
+
TuiProviderInfo
|
|
226
271
|
TuiSkillAvailability
|
|
227
272
|
TuiSkillInfo
|
|
228
273
|
TuiSkillRegistry
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { TuiAdapterError } from "./tui/index.js";
|
|
|
2
2
|
export { CronOperatorError, MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, } from "./tui/index.js";
|
|
3
3
|
export type { TuiAdapterErrorCode, TuiAdapterErrorDetails } from "./tui/index.js";
|
|
4
4
|
export { startTuiAdapter } from "./tui/index.js";
|
|
5
|
-
export type { TuiAdapterInfo, TuiAdapterLogger, TuiAdapterOptions, TuiAdapterStartResult, TuiSkillAvailability, TuiSkillInfo, TuiSkillRegistry, TuiSkillUnavailableReason, CronOperatorActionInput, CronOperatorConfirmation, CronOperatorHealth, CronOperatorJob, CronOperatorMutationResult, CronOperatorOverview, CronOperatorRun, CronOperatorRunBase, CronOperatorRunDetail, CronOperatorRunPage, CronOperatorRunSummary, CronOperatorRunStatus, CronOperatorRunTruncatedField, CronOperatorRunTrigger, CronOperatorService, CronOperatorErrorCode, } from "./tui/index.js";
|
|
5
|
+
export type { TuiAdapterInfo, TuiAdapterLogger, TuiAdapterOptions, TuiAdapterStartResult, TuiCatalogModel, TuiModelCatalogPage, TuiModelCatalogProvider, TuiModelCatalogRequest, TuiModelOption, TuiProviderInfo, TuiSkillAvailability, TuiSkillInfo, TuiSkillRegistry, TuiSkillUnavailableReason, CronOperatorActionInput, CronOperatorConfirmation, CronOperatorHealth, CronOperatorJob, CronOperatorMutationResult, CronOperatorOverview, CronOperatorRun, CronOperatorRunBase, CronOperatorRunDetail, CronOperatorRunPage, CronOperatorRunSummary, CronOperatorRunStatus, CronOperatorRunTruncatedField, CronOperatorRunTrigger, CronOperatorService, CronOperatorErrorCode, } from "./tui/index.js";
|
|
6
6
|
export { loadTuiAdapterConfig, redactTuiAdapterConfig, TUI_CONFIG_FIELDS, } from "./tui/index.js";
|
|
7
7
|
export type { LoadTuiAdapterConfigInput, RedactedTuiAdapterConfig, RequestToolEnvironmentConfig, TuiAdapterConfig, } from "./tui/index.js";
|
|
8
8
|
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";
|
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,OAAO,EACL,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAC9C,MAAM,gBAAgB,CAAC;AACxB,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,EACrB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,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,OAAO,EACL,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAC9C,MAAM,gBAAgB,CAAC;AACxB,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,EACrB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,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.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;AACjD,OAAO,EACL,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAC9C,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAC9C,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiCjD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,EACL,iBAAiB,IAAI,qBAAqB,EAC1C,YAAY,IAAI,gBAAgB,EAChC,YAAY,IAAI,gBAAgB,EAChC,eAAe,EACf,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
|
package/dist/tui/errors.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CodedError } from "@mono-agent/agent-contracts";
|
|
2
|
-
export type TuiAdapterErrorCode = "invalid_config" | "invalid_request" | "missing_required_config" | "process_job_response_too_large" | "unsafe_host" | "start_failed";
|
|
2
|
+
export type TuiAdapterErrorCode = "context_import_conflict" | "context_import_failed" | "context_import_unsupported" | "invalid_config" | "invalid_request" | "missing_required_config" | "model_catalog_too_large" | "process_job_response_too_large" | "unsafe_host" | "start_failed";
|
|
3
3
|
export interface TuiAdapterErrorDetails {
|
|
4
4
|
readonly code?: TuiAdapterErrorCode;
|
|
5
5
|
readonly reason?: string;
|
package/dist/tui/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tui/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAC3B,gBAAgB,GAChB,iBAAiB,GACjB,yBAAyB,GACzB,gCAAgC,GAChC,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,eAAgB,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IAClE,SAAiB,OAAO,EAAE,sBAAsB,CAAC;gBAG/C,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,sBAA2B;CAIvC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/tui/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAC3B,yBAAyB,GACzB,uBAAuB,GACvB,4BAA4B,GAC5B,gBAAgB,GAChB,iBAAiB,GACjB,yBAAyB,GACzB,yBAAyB,GACzB,gCAAgC,GAChC,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,qBAAa,eAAgB,SAAQ,UAAU,CAAC,mBAAmB,CAAC;IAClE,SAAiB,OAAO,EAAE,sBAAsB,CAAC;gBAG/C,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,sBAA2B;CAIvC"}
|
package/dist/tui/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tui/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tui/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAoBzD,MAAM,OAAO,eAAgB,SAAQ,UAA+B;IAGlE,YACE,IAAyB,EACzB,OAAe,EACf,UAAkC,EAAE;QAEpC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;CACF"}
|
package/dist/tui/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { TuiAdapterError } from "./errors.js";
|
|
2
2
|
export type { TuiAdapterErrorCode, TuiAdapterErrorDetails } from "./errors.js";
|
|
3
3
|
export { startTuiAdapter } from "./server.js";
|
|
4
|
-
export type { TuiAdapterInfo, TuiAdapterLogger, TuiAdapterOptions, TuiAdapterStartResult, TuiSkillAvailability, TuiSkillInfo, TuiSkillRegistry, TuiSkillUnavailableReason, } from "./server.js";
|
|
4
|
+
export type { TuiAdapterInfo, TuiAdapterLogger, TuiAdapterOptions, TuiAdapterStartResult, TuiCatalogModel, TuiModelCatalogPage, TuiModelCatalogProvider, TuiModelCatalogRequest, TuiModelOption, TuiProviderInfo, TuiSkillAvailability, TuiSkillInfo, TuiSkillRegistry, TuiSkillUnavailableReason, } from "./server.js";
|
|
5
5
|
export { loadTuiAdapterConfig, redactTuiAdapterConfig, TUI_CONFIG_FIELDS, } from "./config.js";
|
|
6
6
|
export type { LoadTuiAdapterConfigInput, RedactedTuiAdapterConfig, RequestToolEnvironmentConfig, TuiAdapterConfig, } from "./config.js";
|
|
7
7
|
export { DEFAULT_BASE_PATH, DEFAULT_HOST, DEFAULT_PORT, MAX_FRAME_BYTES, TUI_WIRE_SCHEMA } from "./constants.js";
|
package/dist/tui/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjH,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAC9C,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjH,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAC9C,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/tui/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAiB9C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAkBjH,OAAO,EACL,iBAAiB,EACjB,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAC9C,MAAM,WAAW,CAAC"}
|
package/dist/tui/server.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AgentResponder, type ChannelInteractionHub, type ProcessJobOperator } from "@mono-agent/agent-contracts";
|
|
1
|
+
import { type MonitorOperator, type AgentResponder, type ChannelInteractionHub, type ProcessJobOperator, type ProviderAuthOperator } from "@mono-agent/agent-contracts";
|
|
2
2
|
import { type CronOperatorService } from "./cron.js";
|
|
3
3
|
import type { RequestToolEnvironmentConfig } from "./config.js";
|
|
4
4
|
export interface TuiAdapterLogger {
|
|
@@ -27,6 +27,74 @@ export type TuiSkillRegistry = {
|
|
|
27
27
|
readonly items: readonly [];
|
|
28
28
|
};
|
|
29
29
|
/** Static facts surfaced by GET /v1/info so the TUI can label the session. */
|
|
30
|
+
export interface TuiModelOption {
|
|
31
|
+
readonly effortLevels?: readonly string[];
|
|
32
|
+
/**
|
|
33
|
+
* Configured fallback-route effort. A string pins the route, `null` selects
|
|
34
|
+
* provider default, and absence means the producer predates this field.
|
|
35
|
+
*/
|
|
36
|
+
readonly effort?: string | null;
|
|
37
|
+
readonly reasoning?: boolean;
|
|
38
|
+
readonly reasoningMode?: string;
|
|
39
|
+
readonly label?: string;
|
|
40
|
+
/** Known model context capacity, in tokens. Omitted when unknown. */
|
|
41
|
+
readonly contextWindow?: number;
|
|
42
|
+
/** Canonical provider id the model belongs to. */
|
|
43
|
+
readonly provider?: string;
|
|
44
|
+
/** Provider display label. */
|
|
45
|
+
readonly providerLabel?: string;
|
|
46
|
+
}
|
|
47
|
+
/** One provider advertised in the bounded `/v1/info` provider catalog. */
|
|
48
|
+
export interface TuiProviderInfo {
|
|
49
|
+
/** Canonical provider id, e.g. "anthropic". */
|
|
50
|
+
readonly id: string;
|
|
51
|
+
/** Human display label, e.g. "Anthropic". */
|
|
52
|
+
readonly label: string;
|
|
53
|
+
/** Number of models this provider advertises (post-narrowing, post-cap). */
|
|
54
|
+
readonly modelCount: number;
|
|
55
|
+
/** Present only when the advertised list was capped, so a UI can say "100 of 351". */
|
|
56
|
+
readonly totalModelCount?: number;
|
|
57
|
+
readonly source: "builtin" | "custom" | "discovered";
|
|
58
|
+
/** The agent explicitly supports this provider: it is listed in `providers`,
|
|
59
|
+
* or a configured runtime route uses it. */
|
|
60
|
+
readonly configured?: true;
|
|
61
|
+
}
|
|
62
|
+
/** One model served by the lazy `/v1/models` catalog endpoint. */
|
|
63
|
+
export interface TuiCatalogModel {
|
|
64
|
+
readonly id: string;
|
|
65
|
+
readonly name: string;
|
|
66
|
+
readonly provider: string;
|
|
67
|
+
readonly providerLabel: string;
|
|
68
|
+
readonly contextWindow?: number;
|
|
69
|
+
readonly reasoning?: boolean;
|
|
70
|
+
readonly effortLevels?: readonly string[];
|
|
71
|
+
readonly reasoningMode?: string;
|
|
72
|
+
}
|
|
73
|
+
/** A bounded, serializable model-catalog page produced by the injected provider. */
|
|
74
|
+
export interface TuiModelCatalogRequest {
|
|
75
|
+
/** Provider-scoped listing. Mutually exclusive with `query`. */
|
|
76
|
+
readonly provider?: string;
|
|
77
|
+
/** Cross-provider text search. Mutually exclusive with `provider`. */
|
|
78
|
+
readonly query?: string;
|
|
79
|
+
/** Opaque pagination cursor returned by a previous page. */
|
|
80
|
+
readonly cursor?: string;
|
|
81
|
+
/** Page size, already bounded by the adapter to 1..maxPageSize. */
|
|
82
|
+
readonly limit: number;
|
|
83
|
+
}
|
|
84
|
+
export interface TuiModelCatalogPage {
|
|
85
|
+
readonly models: readonly TuiCatalogModel[];
|
|
86
|
+
readonly nextCursor?: string;
|
|
87
|
+
readonly truncated: boolean;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Injected model-catalog data source for GET /v1/models. The adapter validates,
|
|
91
|
+
* bounds, and serializes; the channel composition layer supplies the data
|
|
92
|
+
* (mirroring the `info` seam). Absent when the host does not serve a catalog,
|
|
93
|
+
* in which case `/v1/models` 404s and `/v1/info` omits the `modelCatalog`
|
|
94
|
+
* capability.
|
|
95
|
+
*/
|
|
96
|
+
export type TuiModelCatalogProvider = (request: TuiModelCatalogRequest) => TuiModelCatalogPage;
|
|
97
|
+
/** Static facts surfaced by GET /v1/info so the TUI can label the session. */
|
|
30
98
|
export interface TuiAdapterInfo {
|
|
31
99
|
readonly label?: string;
|
|
32
100
|
readonly model?: string;
|
|
@@ -50,14 +118,9 @@ export interface TuiAdapterInfo {
|
|
|
50
118
|
* with no mode/levels so the TUI falls back to the global effort enum. Absent
|
|
51
119
|
* on older agents; the TUI tolerates that and offers no model-aware picker.
|
|
52
120
|
*/
|
|
53
|
-
readonly modelOptions?: Record<string,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
readonly reasoningMode?: string;
|
|
57
|
-
readonly label?: string;
|
|
58
|
-
/** Known model context capacity, in tokens. Omitted when unknown. */
|
|
59
|
-
readonly contextWindow?: number;
|
|
60
|
-
}>;
|
|
121
|
+
readonly modelOptions?: Record<string, TuiModelOption>;
|
|
122
|
+
/** Bounded provider catalog so the TUI can browse beyond the configured shortlist. */
|
|
123
|
+
readonly providers?: readonly TuiProviderInfo[];
|
|
61
124
|
/** Bounded active-agent skill registry. Absent only on older producers. */
|
|
62
125
|
readonly skills?: TuiSkillRegistry;
|
|
63
126
|
}
|
|
@@ -80,6 +143,13 @@ export interface TuiAdapterOptions {
|
|
|
80
143
|
* just calls it (and awaits it) on every request.
|
|
81
144
|
*/
|
|
82
145
|
readonly info?: TuiAdapterInfo | (() => TuiAdapterInfo | Promise<TuiAdapterInfo>);
|
|
146
|
+
/**
|
|
147
|
+
* Optional lazy model-catalog data source served through GET /v1/models.
|
|
148
|
+
* Absent when the host does not expose a browsable catalog. The adapter
|
|
149
|
+
* validates/bounds/serializes every request and response; the supplier
|
|
150
|
+
* returns already-bounded, deterministic pages.
|
|
151
|
+
*/
|
|
152
|
+
readonly modelCatalog?: TuiModelCatalogProvider;
|
|
83
153
|
/**
|
|
84
154
|
* Invoked when the already-listening HTTP server dies (e.g. EADDRINUSE
|
|
85
155
|
* appearing later, socket-level failure). The hosting channel driver maps
|
|
@@ -95,6 +165,12 @@ export interface TuiAdapterOptions {
|
|
|
95
165
|
readonly processJobs?: ProcessJobOperator;
|
|
96
166
|
/** Independent owner bearer for process-job routes. Required with processJobs. */
|
|
97
167
|
readonly processJobsBearer?: string;
|
|
168
|
+
/** Owner-authorized monitor control plane; omitted when unavailable. */
|
|
169
|
+
readonly monitors?: MonitorOperator;
|
|
170
|
+
/** Independent owner bearer for monitor routes. Required with monitors. */
|
|
171
|
+
readonly monitorsBearer?: string;
|
|
172
|
+
/** Pi credential status/login surface; uses apiKey when the endpoint has one. */
|
|
173
|
+
readonly providerAuth?: ProviderAuthOperator;
|
|
98
174
|
}
|
|
99
175
|
export interface TuiAdapterStartResult {
|
|
100
176
|
readonly url: string;
|
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":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/tui/server.ts"],"names":[],"mappings":"AAIA,OAAO,EAiCL,KAAK,eAAe,EAKpB,KAAK,cAAc,EAMnB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAEvB,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AA6CrC,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAEhE,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,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;AAC3E,MAAM,MAAM,yBAAyB,GAAG,cAAc,GAAG,qBAAqB,GAAG,kBAAkB,CAAC;AAEpG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;CACxD;AAED,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;CAC7B,CAAC;AAEN,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;IACrD;iDAC6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;CAC5B;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,sBAAsB,KAAK,mBAAmB,CAAC;AAE/F,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,cAAc,CAAC,CAAC;IACvD,sFAAsF;IACtF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CACpC;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,+EAA+E;IAC/E,QAAQ,CAAC,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;IAC/D,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,YAAY,CAAC,EAAE,uBAAuB,CAAC;IAChD;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC;IAC7C,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,iFAAiF;IACjF,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,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;AAiCD,wBAAsB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAsoChG"}
|