@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 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 turn. The response waits for
96
- `applied`, `requeue`, or `discarded`; inactive/unsupported offers return
97
- `unavailable` without inventing success.
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` and `mcpApps` are additive capabilities: they are omitted
141
- when the responder does not implement the corresponding authorization routes.
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 ProcessJobs wakes carry `deliveryKey` on live-input requests and
158
- `processJobWakeDeliveryKey` on reserved fallback turns. The server validates
159
- both, forwards the exact-run target to the responder, and moves the fallback
160
- identity onto a non-enumerable host-only metadata symbol so it cannot become
161
- prompt, history, or JSON wire content.
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";
@@ -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;AA2BjD,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"}
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"}
@@ -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;
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tui/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAgBzD,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"}
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"}
@@ -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";
@@ -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"}
@@ -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;AAW9C,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"}
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"}
@@ -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
- readonly effortLevels?: readonly string[];
55
- readonly reasoning?: boolean;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/tui/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/tui/server.ts"],"names":[],"mappings":"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"}