@mono-agent/operator-adapter 0.19.1 → 0.20.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 CHANGED
@@ -60,9 +60,14 @@ Keep bearer values out of source config when possible. Set
60
60
  ### Conversational endpoints
61
61
 
62
62
  - `GET {basePath}/v1/info` returns the wire `schema`, process id, and attachment
63
- capability. `capabilities.liveInput`, `capabilities.historyAppend`, and
64
- `capabilities.askUser` are advertised additively when their routes are
65
- supported. The response also
63
+ capability. `capabilities.liveInput`, `capabilities.historyAppend`,
64
+ `capabilities.askUser`, `capabilities.askById`, and `capabilities.cron` are
65
+ advertised additively when their routes are supported. `capabilities.cron`
66
+ reports `status: "ready" | "degraded"` and separates read support from
67
+ authenticated/agent-enabled actions. `jobs: true` is advertised only when a
68
+ process-job operator and its independent owner bearer are both present. The wire
69
+ schema remains `1`; clients must feature-detect rather than reject an older
70
+ agent. The response also
66
71
  includes `label`, default `model`, default `effort`, candidate `models`, and
67
72
  per-model `modelOptions` when the host supplies them. A host may additionally
68
73
  expose a bounded `skills` snapshot with ready/error state and per-item
@@ -77,6 +82,10 @@ Keep bearer values out of source config when possible. Set
77
82
  aborts the in-flight turn.
78
83
  - `GET {basePath}/v1/conversations/:id/ask` - the current pending `AskUser`
79
84
  snapshot, or `{ ask: null }`.
85
+ - `GET {basePath}/v1/interactions/:interactionId` - an exact pending or bounded
86
+ terminal `AskUser` snapshot when the host supplies optional `getAsk`; otherwise
87
+ the route is unsupported. This does not change the asking tool's
88
+ single-consumer long-poll contract.
80
89
  - `POST {basePath}/v1/conversations/:id/ask` - submit the snapshot's
81
90
  `{ interactionId, answers }` with one or more consecutive complete answers;
82
91
  the same turn resumes after all questions are answered.
@@ -89,27 +98,67 @@ Keep bearer values out of source config when possible. Set
89
98
  - `POST {basePath}/v1/conversations/:id/verbatim` - authenticated
90
99
  `{ text, idempotencyKey }` durable-history append with no model turn (200; 501
91
100
  when the responder has no `deliverVerbatim`).
101
+ - `GET {basePath}/v1/conversations/:id/reply-artifacts/:artifactId` -
102
+ bearer-protected, conversation-owned, integrity-checked reply download when
103
+ `capabilities.replyAttachments` is advertised. Responses explicitly disable
104
+ byte ranges.
105
+ - `GET {basePath}/v1/conversations/:id/mcp-apps/:invocationId` and the paired
106
+ request route - exact conversation/connection MCP App resource loading and
107
+ bridge operations when `capabilities.mcpApps` is advertised. Forbidden
108
+ resources and rate-limited requests have stable HTTP errors.
109
+ - `GET {basePath}/v1/cron` and
110
+ `GET {basePath}/v1/cron/jobs/:jobId/runs?limit=&before=` - agent-authoritative
111
+ job state and total-order keyset run history.
112
+ - `GET {basePath}/v1/cron/config-view` - the host's redacted cron config view;
113
+ clients must not read the config file themselves.
114
+ - `POST {basePath}/v1/cron/jobs/:jobId/run` and
115
+ `POST {basePath}/v1/cron/jobs/:jobId/effective-enabled` - API-key-protected,
116
+ idempotent actions with an agent-issued confirmation challenge. The host owns
117
+ persistence, audit, overlap, and watchdog semantics.
118
+
119
+ Cron reads follow the operator endpoint's existing compatibility posture: when
120
+ no operator API key is configured they remain keyless, and when a key is
121
+ configured they require the same bearer as every other operator route. Cron
122
+ mutations are stricter: they are unavailable without a configured operator API
123
+ key, explicit host opt-in, and an agent-issued confirmation. The config-view
124
+ route exposes only the host's existing source-annotated cron field registry,
125
+ including the already-visible job prompt; it does not expose arbitrary config
126
+ keys, credentials, or the console host's copy of the config file. If the cron
127
+ overview itself fails, `/v1/info` remains a `200` liveness response and advertises
128
+ cron as degraded with reads and actions unavailable.
129
+ - `GET {basePath}/v1/jobs` and `GET {basePath}/v1/jobs/:jobId` - strict bounded
130
+ process-job projections through an independent owner bearer. An app-hosted
131
+ list keeps every queued, starting, and running projection plus a
132
+ deterministic newest-terminal prefix within the 16 MiB response ceiling.
133
+ - `POST {basePath}/v1/jobs/:jobId/cancel` - cancel an owned process job and
134
+ return its resulting projection. This route uses the same independent bearer.
92
135
 
93
136
  Event NDJSON lines are capped at 256 KiB. Oversized thought and tool payloads
94
137
  are reduced and remeasured; an event that still cannot fit becomes a bounded
95
138
  `oversized_event` marker. That size guard is not a redaction boundary.
96
139
 
140
+ `replyAttachments` and `mcpApps` are additive capabilities: they are omitted
141
+ when the responder does not implement the corresponding authorization routes.
142
+ The web consumer retains the legacy 8 MiB input ceiling so it can read an older
143
+ agent even though current producers emit at most 256 KiB per frame. See
144
+ [Reply files and MCP Apps](https://mono-agent-docs.vercel.app/tools/rich-replies/).
145
+
97
146
  ## Architecture
98
147
 
99
148
  ### Data flow
100
149
 
101
150
  1. The host passes an `AgentResponder` to `startTuiAdapter` and publishes the
102
151
  returned conversational base URL through its trace-source metadata.
103
- 2. A TUI or web client reads `/v1/info` (including additive live skill metadata
104
- when provided), submits a turn, consumes structured NDJSON frames until
105
- `finish` or `error`, and may offer live input while that turn is active;
106
- disconnecting the turn stream aborts the request.
152
+ 2. A TUI or web client reads `/v1/info` (including additive live skill, exact
153
+ ask, and cron capabilities when provided), submits a turn, consumes
154
+ structured NDJSON frames until `finish` or `error`, and may offer live input
155
+ while that turn is active; disconnecting the turn stream aborts the request.
107
156
 
108
157
  ### Package structure
109
158
 
110
159
  | Source module | Responsibility |
111
160
  | --- | --- |
112
- | [`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. |
161
+ | [`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. |
113
162
  | [`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. |
114
163
  | [`index.ts`](https://github.com/robertsreberski/mono-agent/blob/main/packages/operator-adapter/src/index.ts) | Supported public package surface for the operator endpoint. |
115
164
 
@@ -131,10 +180,30 @@ Every symbol exported by each public code entrypoint is listed below.
131
180
  **`@mono-agent/operator-adapter`**
132
181
 
133
182
  ```text
183
+ CronOperatorActionInput
184
+ CronOperatorConfirmation
185
+ CronOperatorError
186
+ CronOperatorErrorCode
187
+ CronOperatorHealth
188
+ CronOperatorJob
189
+ CronOperatorMutationResult
190
+ CronOperatorOverview
191
+ CronOperatorRun
192
+ CronOperatorRunBase
193
+ CronOperatorRunDetail
194
+ CronOperatorRunPage
195
+ CronOperatorRunStatus
196
+ CronOperatorRunSummary
197
+ CronOperatorRunTrigger
198
+ CronOperatorRunTruncatedField
199
+ CronOperatorService
134
200
  DEFAULT_TUI_BASE_PATH
135
201
  DEFAULT_TUI_HOST
136
202
  DEFAULT_TUI_PORT
137
203
  LoadTuiAdapterConfigInput
204
+ MAX_CRON_OPERATOR_RESPONSE_BYTES
205
+ MAX_CRON_OPERATOR_RUN_PAGE
206
+ MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES
138
207
  MAX_FRAME_BYTES
139
208
  RedactedTuiAdapterConfig
140
209
  RequestToolEnvironmentConfig
@@ -179,6 +248,7 @@ loopback is a host decision guarded by `allowNonLoopback`.
179
248
  - [Terminal UI](https://mono-agent-docs.vercel.app/observability/tui/)
180
249
  - [Always-on web console](https://mono-agent-docs.vercel.app/observability/web-console/)
181
250
  - [Artifacts and traces](https://mono-agent-docs.vercel.app/observability/artifacts-and-traces/)
251
+ - [Reply files and MCP Apps](https://mono-agent-docs.vercel.app/tools/rich-replies/)
182
252
 
183
253
  ## Verification
184
254
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export { TuiAdapterError } from "./tui/index.js";
2
+ export { CronOperatorError, MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, } from "./tui/index.js";
2
3
  export type { TuiAdapterErrorCode, TuiAdapterErrorDetails } from "./tui/index.js";
3
4
  export { startTuiAdapter } from "./tui/index.js";
4
- export type { TuiAdapterInfo, TuiAdapterLogger, TuiAdapterOptions, TuiAdapterStartResult, TuiSkillAvailability, TuiSkillInfo, TuiSkillRegistry, TuiSkillUnavailableReason, } 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
6
  export { loadTuiAdapterConfig, redactTuiAdapterConfig, TUI_CONFIG_FIELDS, } from "./tui/index.js";
6
7
  export type { LoadTuiAdapterConfigInput, RedactedTuiAdapterConfig, RequestToolEnvironmentConfig, TuiAdapterConfig, } from "./tui/index.js";
7
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,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,GAC1B,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,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 CHANGED
@@ -1,4 +1,5 @@
1
1
  export { TuiAdapterError } from "./tui/index.js";
2
+ export { CronOperatorError, MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, } from "./tui/index.js";
2
3
  export { startTuiAdapter } from "./tui/index.js";
3
4
  export { loadTuiAdapterConfig, redactTuiAdapterConfig, TUI_CONFIG_FIELDS, } from "./tui/index.js";
4
5
  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.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;AAWjD,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;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"}
@@ -0,0 +1,50 @@
1
+ import { MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, type ChannelConfigViewSection, type CronOperatorHealth, type CronOperatorJob, type CronOperatorOverview, type CronOperatorRun, type CronOperatorRunBase, type CronOperatorRunDetail, type CronOperatorRunPage, type CronOperatorRunStatus, type CronOperatorRunSummary, type CronOperatorRunTrigger, type CronOperatorRunTruncatedField } from "@mono-agent/agent-contracts";
2
+ export { MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, };
3
+ export type { CronOperatorHealth, CronOperatorJob, CronOperatorOverview, CronOperatorRun, CronOperatorRunBase, CronOperatorRunDetail, CronOperatorRunPage, CronOperatorRunStatus, CronOperatorRunSummary, CronOperatorRunTrigger, CronOperatorRunTruncatedField, };
4
+ export type CronOperatorErrorCode = "invalid_request" | "not_found" | "actions_disabled" | "confirmation_invalid" | "idempotency_conflict" | "replay_expired" | "unavailable";
5
+ export declare class CronOperatorError extends Error {
6
+ readonly code: CronOperatorErrorCode;
7
+ readonly status: number;
8
+ constructor(code: CronOperatorErrorCode, message: string, status: number);
9
+ }
10
+ export interface CronOperatorConfirmation {
11
+ readonly token: string;
12
+ readonly expiresAt: string;
13
+ readonly message: string;
14
+ }
15
+ export type CronOperatorMutationResult<T> = {
16
+ readonly kind: "confirmation_required";
17
+ readonly confirmation: CronOperatorConfirmation;
18
+ } | {
19
+ readonly kind: "completed";
20
+ readonly value: T;
21
+ readonly replayed: boolean;
22
+ };
23
+ export interface CronOperatorActionInput {
24
+ readonly idempotencyKey: string;
25
+ readonly confirmationToken?: string;
26
+ }
27
+ export interface CronOperatorService {
28
+ overview(): CronOperatorOverview | Promise<CronOperatorOverview>;
29
+ runs(input: {
30
+ readonly jobId: string;
31
+ readonly limit: number;
32
+ readonly before?: string;
33
+ }): CronOperatorRunPage | Promise<CronOperatorRunPage>;
34
+ run(input: {
35
+ readonly jobId: string;
36
+ readonly runId: string;
37
+ }): CronOperatorRunDetail | Promise<CronOperatorRunDetail>;
38
+ configView(): ChannelConfigViewSection | Promise<ChannelConfigViewSection>;
39
+ runNow(jobId: string, input: CronOperatorActionInput): CronOperatorMutationResult<{
40
+ readonly run: CronOperatorRunSummary;
41
+ }> | Promise<CronOperatorMutationResult<{
42
+ readonly run: CronOperatorRunSummary;
43
+ }>>;
44
+ setEffectiveEnabled(jobId: string, enabled: boolean, input: CronOperatorActionInput): CronOperatorMutationResult<{
45
+ readonly job: CronOperatorJob;
46
+ }> | Promise<CronOperatorMutationResult<{
47
+ readonly job: CronOperatorJob;
48
+ }>>;
49
+ }
50
+ //# sourceMappingURL=cron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/tui/cron.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, } from "@mono-agent/agent-contracts";
2
+ export { MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, };
3
+ export class CronOperatorError extends Error {
4
+ code;
5
+ status;
6
+ constructor(code, message, status) {
7
+ super(message);
8
+ this.name = "CronOperatorError";
9
+ this.code = code;
10
+ this.status = status;
11
+ }
12
+ }
13
+ //# sourceMappingURL=cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/tui/cron.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAa9C,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,6CAA6C,GAC9C,CAAC;AAwBF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,CAAwB;IAC5B,MAAM,CAAS;IAExB,YAAY,IAA2B,EAAE,OAAe,EAAE,MAAc;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { CodedError } from "@mono-agent/agent-contracts";
2
- export type TuiAdapterErrorCode = "invalid_config" | "invalid_request" | "missing_required_config" | "unsafe_host" | "start_failed";
2
+ export type TuiAdapterErrorCode = "invalid_config" | "invalid_request" | "missing_required_config" | "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,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,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 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/tui/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAezD,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;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"}
@@ -5,4 +5,7 @@ export type { TuiAdapterInfo, TuiAdapterLogger, TuiAdapterOptions, TuiAdapterSta
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";
8
+ export type { CronOperatorActionInput, CronOperatorConfirmation, CronOperatorHealth, CronOperatorJob, CronOperatorMutationResult, CronOperatorOverview, CronOperatorRun, CronOperatorRunBase, CronOperatorRunDetail, CronOperatorRunPage, CronOperatorRunSummary, CronOperatorRunStatus, CronOperatorRunTruncatedField, CronOperatorRunTrigger, CronOperatorService, } from "./cron.js";
9
+ export { CronOperatorError, MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, } from "./cron.js";
10
+ export type { CronOperatorErrorCode } from "./cron.js";
8
11
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
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"}
package/dist/tui/index.js CHANGED
@@ -2,4 +2,5 @@ export { TuiAdapterError } from "./errors.js";
2
2
  export { startTuiAdapter } from "./server.js";
3
3
  export { loadTuiAdapterConfig, redactTuiAdapterConfig, TUI_CONFIG_FIELDS, } from "./config.js";
4
4
  export { DEFAULT_BASE_PATH, DEFAULT_HOST, DEFAULT_PORT, MAX_FRAME_BYTES, TUI_WIRE_SCHEMA } from "./constants.js";
5
+ export { CronOperatorError, MAX_CRON_OPERATOR_RESPONSE_BYTES, MAX_CRON_OPERATOR_RUN_PAGE, MAX_CRON_OPERATOR_SUMMARY_REPLY_PART_OUTCOMES, } from "./cron.js";
5
6
  //# sourceMappingURL=index.js.map
@@ -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"}
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,4 +1,5 @@
1
- import { type AgentResponder, type ChannelInteractionHub } from "@mono-agent/agent-contracts";
1
+ import { type AgentResponder, type ChannelInteractionHub, type ProcessJobOperator } from "@mono-agent/agent-contracts";
2
+ import { type CronOperatorService } from "./cron.js";
2
3
  import type { RequestToolEnvironmentConfig } from "./config.js";
3
4
  export interface TuiAdapterLogger {
4
5
  debug?(message: string, metadata?: Record<string, unknown>): void;
@@ -88,6 +89,12 @@ export interface TuiAdapterOptions {
88
89
  readonly onServerError?: (reason: string) => void;
89
90
  /** In-process bridge state used by the web console's structured AskUser form. */
90
91
  readonly interaction?: ChannelInteractionHub;
92
+ /** Agent-owned cron truth and controls. Absent on older/non-cron hosts. */
93
+ readonly cron?: CronOperatorService;
94
+ /** Owner-authorized process-job control plane; omitted when unavailable. */
95
+ readonly processJobs?: ProcessJobOperator;
96
+ /** Independent owner bearer for process-job routes. Required with processJobs. */
97
+ readonly processJobsBearer?: string;
91
98
  }
92
99
  export interface TuiAdapterStartResult {
93
100
  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":"AAIA,OAAO,EAsBL,KAAK,cAAc,EAMnB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAExB,MAAM,6BAA6B,CAAC;AAgBrC,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,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;IACH,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,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;CACrC;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;AAwBD,wBAAsB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4rBhG"}