@qilin-agent/schedule 3.1.6 → 3.1.8

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.
@@ -11,12 +11,34 @@ const _qilin_agent_schedule_schedule_catalog_result$schema = () => (_qilin_agent
11
11
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
12
12
  'afterSeconds': z.number().readonly().describe('Positive safe-integer delay accepted at creation.'),
13
13
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
14
- 'sessionId': z.string().readonly().describe('Session receiving this reminder when it becomes due.'),
15
- 'status': z.union([z.literal("active"), z.literal("inactive")]).readonly().describe('Inactive reminders remain visible but never schedule another delivery.'),
14
+ 'target': z.union([z.object({
15
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
16
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
17
+ }), z.object({
18
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
19
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
20
+ 'create': z.object({
21
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
22
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
23
+ }).readonly().describe('Values used to create the reserved Session.'),
24
+ }), z.object({
25
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
26
+ 'create': z.object({
27
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
28
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
29
+ }).readonly().describe('Values used to create each Session.'),
30
+ })]).readonly().describe('Destination of the next delivery.'),
31
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
32
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
33
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
34
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
35
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
36
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
16
37
  'lastDelivery': z.object({
17
38
  'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
18
39
  'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
19
40
  'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
41
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
20
42
  }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
21
43
  }), z.object({
22
44
  'id': z.string().readonly().describe('Globally unique task identity.'),
@@ -24,12 +46,34 @@ const _qilin_agent_schedule_schedule_catalog_result$schema = () => (_qilin_agent
24
46
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
25
47
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
26
48
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
27
- 'sessionId': z.string().readonly().describe('Session receiving this reminder when it becomes due.'),
28
- 'status': z.union([z.literal("active"), z.literal("inactive")]).readonly().describe('Inactive reminders remain visible but never schedule another delivery.'),
49
+ 'target': z.union([z.object({
50
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
51
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
52
+ }), z.object({
53
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
54
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
55
+ 'create': z.object({
56
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
57
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
58
+ }).readonly().describe('Values used to create the reserved Session.'),
59
+ }), z.object({
60
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
61
+ 'create': z.object({
62
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
63
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
64
+ }).readonly().describe('Values used to create each Session.'),
65
+ })]).readonly().describe('Destination of the next delivery.'),
66
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
67
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
68
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
69
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
70
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
71
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
29
72
  'lastDelivery': z.object({
30
73
  'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
31
74
  'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
32
75
  'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
76
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
33
77
  }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
34
78
  }), z.object({
35
79
  'id': z.string().readonly().describe('Globally unique task identity.'),
@@ -38,12 +82,34 @@ const _qilin_agent_schedule_schedule_catalog_result$schema = () => (_qilin_agent
38
82
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
39
83
  'everySeconds': z.number().readonly().describe('Fixed safe-integer interval, never below one minute.'),
40
84
  'scheduledAt': z.string().readonly().describe('Next anchor-aligned occurrence while active, or final occurrence when inactive.'),
41
- 'sessionId': z.string().readonly().describe('Session receiving this reminder when it becomes due.'),
42
- 'status': z.union([z.literal("active"), z.literal("inactive")]).readonly().describe('Inactive reminders remain visible but never schedule another delivery.'),
85
+ 'target': z.union([z.object({
86
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
87
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
88
+ }), z.object({
89
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
90
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
91
+ 'create': z.object({
92
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
93
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
94
+ }).readonly().describe('Values used to create the reserved Session.'),
95
+ }), z.object({
96
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
97
+ 'create': z.object({
98
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
99
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
100
+ }).readonly().describe('Values used to create each Session.'),
101
+ })]).readonly().describe('Destination of the next delivery.'),
102
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
103
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
104
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
105
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
106
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
107
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
43
108
  'lastDelivery': z.object({
44
109
  'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
45
110
  'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
46
111
  'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
112
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
47
113
  }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
48
114
  }), z.object({
49
115
  'id': z.string().readonly().describe('Globally unique task identity.'),
@@ -53,12 +119,34 @@ const _qilin_agent_schedule_schedule_catalog_result$schema = () => (_qilin_agent
53
119
  'time': z.string().readonly().describe('Local time normalized to HH:mm:ss.SSS.'),
54
120
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
55
121
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
56
- 'sessionId': z.string().readonly().describe('Session receiving this reminder when it becomes due.'),
57
- 'status': z.union([z.literal("active"), z.literal("inactive")]).readonly().describe('Inactive reminders remain visible but never schedule another delivery.'),
122
+ 'target': z.union([z.object({
123
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
124
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
125
+ }), z.object({
126
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
127
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
128
+ 'create': z.object({
129
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
130
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
131
+ }).readonly().describe('Values used to create the reserved Session.'),
132
+ }), z.object({
133
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
134
+ 'create': z.object({
135
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
136
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
137
+ }).readonly().describe('Values used to create each Session.'),
138
+ })]).readonly().describe('Destination of the next delivery.'),
139
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
140
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
141
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
142
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
143
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
144
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
58
145
  'lastDelivery': z.object({
59
146
  'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
60
147
  'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
61
148
  'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
149
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
62
150
  }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
63
151
  }), z.object({
64
152
  'id': z.string().readonly().describe('Globally unique task identity.'),
@@ -69,12 +157,34 @@ const _qilin_agent_schedule_schedule_catalog_result$schema = () => (_qilin_agent
69
157
  'timeZone': z.string().readonly().describe('Explicit canonical IANA zone; equivalent timing edits retain the stored spelling.'),
70
158
  'weekdays': z.array(z.number()).readonly().describe('Unique ascending ISO weekdays, Monday 1 through Sunday 7.'),
71
159
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
72
- 'sessionId': z.string().readonly().describe('Session receiving this reminder when it becomes due.'),
73
- 'status': z.union([z.literal("active"), z.literal("inactive")]).readonly().describe('Inactive reminders remain visible but never schedule another delivery.'),
160
+ 'target': z.union([z.object({
161
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
162
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
163
+ }), z.object({
164
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
165
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
166
+ 'create': z.object({
167
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
168
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
169
+ }).readonly().describe('Values used to create the reserved Session.'),
170
+ }), z.object({
171
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
172
+ 'create': z.object({
173
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
174
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
175
+ }).readonly().describe('Values used to create each Session.'),
176
+ })]).readonly().describe('Destination of the next delivery.'),
177
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
178
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
179
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
180
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
181
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
182
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
74
183
  'lastDelivery': z.object({
75
184
  'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
76
185
  'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
77
186
  'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
187
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
78
188
  }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
79
189
  }), z.object({
80
190
  'id': z.string().readonly().describe('Globally unique task identity.'),
@@ -84,73 +194,533 @@ const _qilin_agent_schedule_schedule_catalog_result$schema = () => (_qilin_agent
84
194
  'expression': z.string().readonly().describe('Canonical five-field cron expression: minute hour day-of-month month day-of-week.'),
85
195
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
86
196
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
87
- 'sessionId': z.string().readonly().describe('Session receiving this reminder when it becomes due.'),
88
- 'status': z.union([z.literal("active"), z.literal("inactive")]).readonly().describe('Inactive reminders remain visible but never schedule another delivery.'),
197
+ 'target': z.union([z.object({
198
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
199
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
200
+ }), z.object({
201
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
202
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
203
+ 'create': z.object({
204
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
205
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
206
+ }).readonly().describe('Values used to create the reserved Session.'),
207
+ }), z.object({
208
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
209
+ 'create': z.object({
210
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
211
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
212
+ }).readonly().describe('Values used to create each Session.'),
213
+ })]).readonly().describe('Destination of the next delivery.'),
214
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
215
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
216
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
217
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
218
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
219
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
89
220
  'lastDelivery': z.object({
90
221
  'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
91
222
  'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
92
223
  'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
224
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
225
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
226
+ }), z.object({
227
+ 'kind': z.literal("rrule").readonly(),
228
+ 'id': z.string().readonly().describe('Host-generated canonical identity.'),
229
+ 'title': z.string().readonly().describe('Task name; already trimmed, non-empty, and at most 120 characters.'),
230
+ 'prompt': z.string().readonly().describe('Trimmed instruction sent when an occurrence becomes due.'),
231
+ 'rrule': z.string().readonly().describe('One normalized DTSTART line and one RRULE line.'),
232
+ 'scheduledAt': z.string().readonly().describe('Next unaccepted occurrence while active, or the final accepted occurrence when ended.'),
233
+ 'target': z.union([z.object({
234
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
235
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
236
+ }), z.object({
237
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
238
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
239
+ 'create': z.object({
240
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
241
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
242
+ }).readonly().describe('Values used to create the reserved Session.'),
243
+ }), z.object({
244
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
245
+ 'create': z.object({
246
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
247
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
248
+ }).readonly().describe('Values used to create each Session.'),
249
+ })]).readonly().describe('Destination of the next delivery.'),
250
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
251
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
252
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
253
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
254
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
255
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
256
+ 'lastDelivery': z.object({
257
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
258
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
259
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
260
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
93
261
  }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
94
262
  })])))
95
- let _qilin_agent_schedule_schedule_delete_parameter_0$schema$value
96
- const _qilin_agent_schedule_schedule_delete_parameter_0$schema = () => (_qilin_agent_schedule_schedule_delete_parameter_0$schema$value ??= z.object({
97
- 'id': z.string().describe('Task to remove.'),
98
- 'sessionId': z.string().describe('Original Session binding.'),
99
- }))
100
- let _qilin_agent_schedule_schedule_delete_result$schema$value
101
- const _qilin_agent_schedule_schedule_delete_result$schema = () => (_qilin_agent_schedule_schedule_delete_result$schema$value ??= z.union([z.object({
102
- 'id': z.string().readonly(),
103
- 'deleted': z.literal(true).readonly(),
263
+ let _qilin_agent_schedule_schedule_create_parameter_0$schema$value
264
+ const _qilin_agent_schedule_schedule_create_parameter_0$schema = () => (_qilin_agent_schedule_schedule_create_parameter_0$schema$value ??= z.object({
265
+ 'title': z.string().readonly().describe('Task name of at most 120 characters, non-empty after trimming.'),
266
+ 'prompt': z.string().readonly().describe('Instruction sent at each occurrence; non-empty after trimming.'),
267
+ 'timing': z.union([z.object({
268
+ 'kind': z.literal("after").readonly(),
269
+ 'after_seconds': z.number().readonly(),
104
270
  }), z.object({
105
- 'id': z.string().readonly(),
106
- 'deleted': z.literal(false).readonly(),
107
- 'code': z.literal("schedule_not_found").readonly(),
108
- })]))
109
- let _qilin_agent_schedule_schedule_history_parameter_0$schema$value
110
- const _qilin_agent_schedule_schedule_history_parameter_0$schema = () => (_qilin_agent_schedule_schedule_history_parameter_0$schema$value ??= z.object({
111
- 'limit': z.number().describe('Required safe-integer page size from 1 through 100.'),
112
- 'before': z.string().optional().describe('Message identity of the oldest entry in the previous page; excluded from this page.'),
113
- 'id': z.string().describe('Task to remove.'),
114
- 'sessionId': z.string().describe('Original Session binding.'),
271
+ 'kind': z.literal("at").readonly(),
272
+ 'at': z.union([z.string(), z.object({
273
+ 'date': z.string().readonly().describe('Four-digit ISO calendar date.'),
274
+ 'time': z.string().readonly().describe('Local wall-clock time with optional one-to-three digit milliseconds.'),
275
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
276
+ })]).readonly(),
277
+ }), z.object({
278
+ 'kind': z.literal("every").readonly(),
279
+ 'every_seconds': z.number().readonly(),
280
+ }), z.object({
281
+ 'kind': z.literal("daily").readonly(),
282
+ 'daily': z.object({
283
+ 'time': z.string().readonly().describe('Local HH:mm:ss time with optional one-to-three fractional digits.'),
284
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
285
+ }).readonly(),
286
+ }), z.object({
287
+ 'kind': z.literal("weekly").readonly(),
288
+ 'weekly': z.object({
289
+ 'time': z.string().readonly().describe('Local HH:mm:ss time with optional one-to-three fractional digits.'),
290
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
291
+ 'weekdays': z.array(z.number()).readonly().describe('Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions.'),
292
+ }).readonly(),
293
+ }), z.object({
294
+ 'kind': z.literal("cron").readonly(),
295
+ 'cron': z.object({
296
+ 'expression': z.string().readonly().describe('Five-field Vixie cron expression: minute hour day-of-month month day-of-week.'),
297
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
298
+ }).readonly(),
299
+ }), z.object({
300
+ 'kind': z.literal("rrule").readonly(),
301
+ 'rrule': z.string().readonly(),
302
+ })]).readonly().describe('Authoritative typed timing with at least one future occurrence.'),
303
+ 'target': z.union([z.object({
304
+ 'kind': z.literal("session").readonly().describe('Deliver to one existing Session that is not a delegated child.'),
305
+ 'sessionId': z.string().readonly().describe('Existing Session that receives each delivery.'),
306
+ }), z.object({
307
+ 'kind': z.literal("new_once").readonly().describe('Create one Session at the first delivery.'),
308
+ 'create': z.object({
309
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
310
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
311
+ }).readonly().optional().describe('Creation values; omission uses the Host defaults.'),
312
+ }), z.object({
313
+ 'kind': z.literal("new").readonly().describe('Create a fresh Session at each delivery.'),
314
+ 'create': z.object({
315
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
316
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
317
+ }).readonly().optional().describe('Creation values; omission uses the Host defaults.'),
318
+ })]).readonly().optional().describe('Delivery destination; omission creates one Session at first delivery and reuses it.'),
115
319
  }))
116
- let _qilin_agent_schedule_schedule_history_result$schema$value
117
- const _qilin_agent_schedule_schedule_history_result$schema = () => (_qilin_agent_schedule_schedule_history_result$schema$value ??= z.union([z.object({
118
- 'id': z.string().readonly(),
119
- 'records': z.array(z.object({
120
- 'prompt': z.string().readonly().optional().describe('Prompt sent for this occurrence; unavailable for legacy receipts.'),
320
+ let _qilin_agent_schedule_schedule_create_result$schema$value
321
+ const _qilin_agent_schedule_schedule_create_result$schema = () => (_qilin_agent_schedule_schedule_create_result$schema$value ??= z.union([z.object({
322
+ 'id': z.string().readonly().describe('Globally unique task identity.'),
323
+ 'kind': z.literal("after").readonly().describe('Rule discriminator for a delayed one-shot reminder.'),
324
+ 'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
325
+ 'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
326
+ 'afterSeconds': z.number().readonly().describe('Positive safe-integer delay accepted at creation.'),
327
+ 'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
328
+ 'target': z.union([z.object({
329
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
330
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
331
+ }), z.object({
332
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
333
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
334
+ 'create': z.object({
335
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
336
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
337
+ }).readonly().describe('Values used to create the reserved Session.'),
338
+ }), z.object({
339
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
340
+ 'create': z.object({
341
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
342
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
343
+ }).readonly().describe('Values used to create each Session.'),
344
+ })]).readonly().describe('Destination of the next delivery.'),
345
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
346
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
347
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
348
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
349
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
350
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
351
+ 'lastDelivery': z.object({
121
352
  'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
122
353
  'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
123
354
  'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
124
- })).readonly(),
125
- 'earlierRecordsUnavailable': z.boolean().readonly().describe('Whether earlier delivery records may be unavailable; missing receipts are never reconstructed.'),
126
- 'earlierRecordsPruned': z.boolean().readonly().describe('True only after an append removed saved records; absent legacy evidence is false.'),
127
- 'retention': z.object({
128
- 'days': z.number().readonly().describe('Retained window in days, measured back from the acknowledgment being appended.'),
129
- 'records': z.number().readonly().describe('Maximum retained records per task; the newest survive.'),
130
- }).readonly().describe('Current Host retention configuration, also used by the delivery writer.'),
131
- 'nextBefore': z.string().readonly().optional().describe('Oldest returned message identity, present only when older saved records remain.'),
355
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
356
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
132
357
  }), z.object({
133
- 'id': z.string().readonly(),
134
- 'code': z.union([z.literal("schedule_not_found"), z.literal("delivery_cursor_not_found")]).readonly(),
358
+ 'id': z.string().readonly().describe('Globally unique task identity.'),
359
+ 'kind': z.literal("at").readonly().describe('Rule discriminator for an absolute one-shot reminder.'),
360
+ 'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
361
+ 'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
362
+ 'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
363
+ 'target': z.union([z.object({
364
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
365
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
366
+ }), z.object({
367
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
368
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
369
+ 'create': z.object({
370
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
371
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
372
+ }).readonly().describe('Values used to create the reserved Session.'),
373
+ }), z.object({
374
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
375
+ 'create': z.object({
376
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
377
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
378
+ }).readonly().describe('Values used to create each Session.'),
379
+ })]).readonly().describe('Destination of the next delivery.'),
380
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
381
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
382
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
383
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
384
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
385
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
386
+ 'lastDelivery': z.object({
387
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
388
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
389
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
390
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
391
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
392
+ }), z.object({
393
+ 'id': z.string().readonly().describe('Globally unique task identity.'),
394
+ 'kind': z.literal("every").readonly().describe('Rule discriminator for a fixed-rate recurring reminder.'),
395
+ 'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
396
+ 'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
397
+ 'everySeconds': z.number().readonly().describe('Fixed safe-integer interval, never below one minute.'),
398
+ 'scheduledAt': z.string().readonly().describe('Next anchor-aligned occurrence while active, or final occurrence when inactive.'),
399
+ 'target': z.union([z.object({
400
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
401
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
402
+ }), z.object({
403
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
404
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
405
+ 'create': z.object({
406
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
407
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
408
+ }).readonly().describe('Values used to create the reserved Session.'),
409
+ }), z.object({
410
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
411
+ 'create': z.object({
412
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
413
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
414
+ }).readonly().describe('Values used to create each Session.'),
415
+ })]).readonly().describe('Destination of the next delivery.'),
416
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
417
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
418
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
419
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
420
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
421
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
422
+ 'lastDelivery': z.object({
423
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
424
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
425
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
426
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
427
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
428
+ }), z.object({
429
+ 'id': z.string().readonly().describe('Globally unique task identity.'),
430
+ 'kind': z.literal("daily").readonly().describe('Rule discriminator for a daily wall-clock reminder.'),
431
+ 'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
432
+ 'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
433
+ 'time': z.string().readonly().describe('Local time normalized to HH:mm:ss.SSS.'),
434
+ 'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
435
+ 'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
436
+ 'target': z.union([z.object({
437
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
438
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
439
+ }), z.object({
440
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
441
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
442
+ 'create': z.object({
443
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
444
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
445
+ }).readonly().describe('Values used to create the reserved Session.'),
446
+ }), z.object({
447
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
448
+ 'create': z.object({
449
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
450
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
451
+ }).readonly().describe('Values used to create each Session.'),
452
+ })]).readonly().describe('Destination of the next delivery.'),
453
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
454
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
455
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
456
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
457
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
458
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
459
+ 'lastDelivery': z.object({
460
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
461
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
462
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
463
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
464
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
465
+ }), z.object({
466
+ 'id': z.string().readonly().describe('Globally unique task identity.'),
467
+ 'kind': z.literal("weekly").readonly().describe('Rule discriminator for a weekly wall-clock reminder.'),
468
+ 'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
469
+ 'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
470
+ 'time': z.string().readonly().describe('Local time normalized to HH:mm:ss.SSS.'),
471
+ 'timeZone': z.string().readonly().describe('Explicit canonical IANA zone; equivalent timing edits retain the stored spelling.'),
472
+ 'weekdays': z.array(z.number()).readonly().describe('Unique ascending ISO weekdays, Monday 1 through Sunday 7.'),
473
+ 'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
474
+ 'target': z.union([z.object({
475
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
476
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
477
+ }), z.object({
478
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
479
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
480
+ 'create': z.object({
481
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
482
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
483
+ }).readonly().describe('Values used to create the reserved Session.'),
484
+ }), z.object({
485
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
486
+ 'create': z.object({
487
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
488
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
489
+ }).readonly().describe('Values used to create each Session.'),
490
+ })]).readonly().describe('Destination of the next delivery.'),
491
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
492
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
493
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
494
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
495
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
496
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
497
+ 'lastDelivery': z.object({
498
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
499
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
500
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
501
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
502
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
503
+ }), z.object({
504
+ 'id': z.string().readonly().describe('Globally unique task identity.'),
505
+ 'kind': z.literal("cron").readonly().describe('Rule discriminator for a five-field cron wall-clock reminder.'),
506
+ 'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
507
+ 'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
508
+ 'expression': z.string().readonly().describe('Canonical five-field cron expression: minute hour day-of-month month day-of-week.'),
509
+ 'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
510
+ 'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
511
+ 'target': z.union([z.object({
512
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
513
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
514
+ }), z.object({
515
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
516
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
517
+ 'create': z.object({
518
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
519
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
520
+ }).readonly().describe('Values used to create the reserved Session.'),
521
+ }), z.object({
522
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
523
+ 'create': z.object({
524
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
525
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
526
+ }).readonly().describe('Values used to create each Session.'),
527
+ })]).readonly().describe('Destination of the next delivery.'),
528
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
529
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
530
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
531
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
532
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
533
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
534
+ 'lastDelivery': z.object({
535
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
536
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
537
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
538
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
539
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
540
+ }), z.object({
541
+ 'kind': z.literal("rrule").readonly(),
542
+ 'id': z.string().readonly().describe('Host-generated canonical identity.'),
543
+ 'title': z.string().readonly().describe('Task name; already trimmed, non-empty, and at most 120 characters.'),
544
+ 'prompt': z.string().readonly().describe('Trimmed instruction sent when an occurrence becomes due.'),
545
+ 'rrule': z.string().readonly().describe('One normalized DTSTART line and one RRULE line.'),
546
+ 'scheduledAt': z.string().readonly().describe('Next unaccepted occurrence while active, or the final accepted occurrence when ended.'),
547
+ 'target': z.union([z.object({
548
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
549
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
550
+ }), z.object({
551
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
552
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
553
+ 'create': z.object({
554
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
555
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
556
+ }).readonly().describe('Values used to create the reserved Session.'),
557
+ }), z.object({
558
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
559
+ 'create': z.object({
560
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
561
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
562
+ }).readonly().describe('Values used to create each Session.'),
563
+ })]).readonly().describe('Destination of the next delivery.'),
564
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
565
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
566
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
567
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
568
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
569
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
570
+ 'lastDelivery': z.object({
571
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
572
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
573
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
574
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
575
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
135
576
  })]))
136
- let _qilin_agent_schedule_schedule_list_parameter_0$schema$value
137
- const _qilin_agent_schedule_schedule_list_parameter_0$schema = () => (_qilin_agent_schedule_schedule_list_parameter_0$schema$value ??= z.object({
138
- 'sessionId': z.string().describe('Original Session binding.'),
577
+ let _qilin_agent_schedule_schedule_deleteInactive_result$schema$value
578
+ const _qilin_agent_schedule_schedule_deleteInactive_result$schema = () => (_qilin_agent_schedule_schedule_deleteInactive_result$schema$value ??= z.object({
579
+ 'deleted': z.number().readonly().describe('Ended task rows this call removed; zero when the Host held none.'),
139
580
  }))
140
- let _qilin_agent_schedule_schedule_list_result$schema$value
141
- const _qilin_agent_schedule_schedule_list_result$schema = () => (_qilin_agent_schedule_schedule_list_result$schema$value ??= z.array(z.union([z.object({
581
+ let _qilin_agent_schedule_schedule_deliveryLimits_result$schema$value
582
+ const _qilin_agent_schedule_schedule_deliveryLimits_result$schema = () => (_qilin_agent_schedule_schedule_deliveryLimits_result$schema$value ??= z.object({
583
+ 'newSessionIntervalSeconds': z.number().readonly(),
584
+ }))
585
+ let _qilin_agent_schedule_schedule_edit_parameter_0$schema$value
586
+ const _qilin_agent_schedule_schedule_edit_parameter_0$schema = () => (_qilin_agent_schedule_schedule_edit_parameter_0$schema$value ??= z.union([z.object({
587
+ 'id': z.string().readonly().describe('Task to change.'),
588
+ 'action': z.literal("update").readonly().describe('Apply `patch` as one atomic change.'),
589
+ 'patch': z.object({
590
+ 'title': z.string().readonly().optional().describe('Replacement task name.'),
591
+ 'prompt': z.string().readonly().optional().describe('Replacement instruction.'),
592
+ 'timing': z.union([z.object({
593
+ 'kind': z.literal("after").readonly(),
594
+ 'after_seconds': z.number().readonly(),
595
+ }), z.object({
596
+ 'kind': z.literal("at").readonly(),
597
+ 'at': z.union([z.string(), z.object({
598
+ 'date': z.string().readonly().describe('Four-digit ISO calendar date.'),
599
+ 'time': z.string().readonly().describe('Local wall-clock time with optional one-to-three digit milliseconds.'),
600
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
601
+ })]).readonly(),
602
+ }), z.object({
603
+ 'kind': z.literal("every").readonly(),
604
+ 'every_seconds': z.number().readonly(),
605
+ }), z.object({
606
+ 'kind': z.literal("daily").readonly(),
607
+ 'daily': z.object({
608
+ 'time': z.string().readonly().describe('Local HH:mm:ss time with optional one-to-three fractional digits.'),
609
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
610
+ }).readonly(),
611
+ }), z.object({
612
+ 'kind': z.literal("weekly").readonly(),
613
+ 'weekly': z.object({
614
+ 'time': z.string().readonly().describe('Local HH:mm:ss time with optional one-to-three fractional digits.'),
615
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
616
+ 'weekdays': z.array(z.number()).readonly().describe('Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions.'),
617
+ }).readonly(),
618
+ }), z.object({
619
+ 'kind': z.literal("cron").readonly(),
620
+ 'cron': z.object({
621
+ 'expression': z.string().readonly().describe('Five-field Vixie cron expression: minute hour day-of-month month day-of-week.'),
622
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
623
+ }).readonly(),
624
+ }), z.object({
625
+ 'kind': z.literal("rrule").readonly(),
626
+ 'rrule': z.string().readonly(),
627
+ })]).readonly().optional().describe('Replacement timing; a changed rule recomputes the next occurrence.'),
628
+ 'target': z.union([z.object({
629
+ 'kind': z.literal("session").readonly().describe('Deliver to one existing Session that is not a delegated child.'),
630
+ 'sessionId': z.string().readonly().describe('Existing Session that receives each delivery.'),
631
+ }), z.object({
632
+ 'kind': z.literal("new_once").readonly().describe('Create one Session at the first delivery.'),
633
+ 'create': z.object({
634
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
635
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
636
+ }).readonly().optional().describe('Creation values; omission uses the Host defaults.'),
637
+ }), z.object({
638
+ 'kind': z.literal("new").readonly().describe('Create a fresh Session at each delivery.'),
639
+ 'create': z.object({
640
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
641
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
642
+ }).readonly().optional().describe('Creation values; omission uses the Host defaults.'),
643
+ })]).readonly().optional().describe('Replacement destination.'),
644
+ 'active': z.boolean().readonly().optional().describe('`false` pauses the task; `true` resumes a recurrence from its first future occurrence.'),
645
+ }).readonly().describe('Fields to change; at least one member is required.'),
646
+ 'expectedUpdatedAt': z.union([z.literal(null), z.string()]).readonly().optional().describe('`updatedAt` value that the editor read; a different stored value returns `schedule_conflict`.'),
647
+ }), z.object({
648
+ 'id': z.string().readonly().describe('Task to remove.'),
649
+ 'action': z.literal("delete").readonly().describe('Remove the task and its saved deliveries.'),
650
+ 'expectedUpdatedAt': z.union([z.literal(null), z.string()]).readonly().optional().describe('`updatedAt` value that the editor read; a different stored value returns `schedule_conflict`.'),
651
+ })]))
652
+ let _qilin_agent_schedule_schedule_edit_result$schema$value
653
+ const _qilin_agent_schedule_schedule_edit_result$schema = () => (_qilin_agent_schedule_schedule_edit_result$schema$value ??= z.union([z.object({
142
654
  'id': z.string().readonly().describe('Globally unique task identity.'),
143
655
  'kind': z.literal("after").readonly().describe('Rule discriminator for a delayed one-shot reminder.'),
144
656
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
145
657
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
146
658
  'afterSeconds': z.number().readonly().describe('Positive safe-integer delay accepted at creation.'),
147
659
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
660
+ 'target': z.union([z.object({
661
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
662
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
663
+ }), z.object({
664
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
665
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
666
+ 'create': z.object({
667
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
668
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
669
+ }).readonly().describe('Values used to create the reserved Session.'),
670
+ }), z.object({
671
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
672
+ 'create': z.object({
673
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
674
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
675
+ }).readonly().describe('Values used to create each Session.'),
676
+ })]).readonly().describe('Destination of the next delivery.'),
677
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
678
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
679
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
680
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
681
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
682
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
683
+ 'lastDelivery': z.object({
684
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
685
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
686
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
687
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
688
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
148
689
  }), z.object({
149
690
  'id': z.string().readonly().describe('Globally unique task identity.'),
150
691
  'kind': z.literal("at").readonly().describe('Rule discriminator for an absolute one-shot reminder.'),
151
692
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
152
693
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
153
694
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
695
+ 'target': z.union([z.object({
696
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
697
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
698
+ }), z.object({
699
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
700
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
701
+ 'create': z.object({
702
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
703
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
704
+ }).readonly().describe('Values used to create the reserved Session.'),
705
+ }), z.object({
706
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
707
+ 'create': z.object({
708
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
709
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
710
+ }).readonly().describe('Values used to create each Session.'),
711
+ })]).readonly().describe('Destination of the next delivery.'),
712
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
713
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
714
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
715
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
716
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
717
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
718
+ 'lastDelivery': z.object({
719
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
720
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
721
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
722
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
723
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
154
724
  }), z.object({
155
725
  'id': z.string().readonly().describe('Globally unique task identity.'),
156
726
  'kind': z.literal("every").readonly().describe('Rule discriminator for a fixed-rate recurring reminder.'),
@@ -158,6 +728,35 @@ const _qilin_agent_schedule_schedule_list_result$schema = () => (_qilin_agent_sc
158
728
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
159
729
  'everySeconds': z.number().readonly().describe('Fixed safe-integer interval, never below one minute.'),
160
730
  'scheduledAt': z.string().readonly().describe('Next anchor-aligned occurrence while active, or final occurrence when inactive.'),
731
+ 'target': z.union([z.object({
732
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
733
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
734
+ }), z.object({
735
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
736
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
737
+ 'create': z.object({
738
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
739
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
740
+ }).readonly().describe('Values used to create the reserved Session.'),
741
+ }), z.object({
742
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
743
+ 'create': z.object({
744
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
745
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
746
+ }).readonly().describe('Values used to create each Session.'),
747
+ })]).readonly().describe('Destination of the next delivery.'),
748
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
749
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
750
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
751
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
752
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
753
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
754
+ 'lastDelivery': z.object({
755
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
756
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
757
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
758
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
759
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
161
760
  }), z.object({
162
761
  'id': z.string().readonly().describe('Globally unique task identity.'),
163
762
  'kind': z.literal("daily").readonly().describe('Rule discriminator for a daily wall-clock reminder.'),
@@ -166,6 +765,35 @@ const _qilin_agent_schedule_schedule_list_result$schema = () => (_qilin_agent_sc
166
765
  'time': z.string().readonly().describe('Local time normalized to HH:mm:ss.SSS.'),
167
766
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
168
767
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
768
+ 'target': z.union([z.object({
769
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
770
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
771
+ }), z.object({
772
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
773
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
774
+ 'create': z.object({
775
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
776
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
777
+ }).readonly().describe('Values used to create the reserved Session.'),
778
+ }), z.object({
779
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
780
+ 'create': z.object({
781
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
782
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
783
+ }).readonly().describe('Values used to create each Session.'),
784
+ })]).readonly().describe('Destination of the next delivery.'),
785
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
786
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
787
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
788
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
789
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
790
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
791
+ 'lastDelivery': z.object({
792
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
793
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
794
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
795
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
796
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
169
797
  }), z.object({
170
798
  'id': z.string().readonly().describe('Globally unique task identity.'),
171
799
  'kind': z.literal("weekly").readonly().describe('Rule discriminator for a weekly wall-clock reminder.'),
@@ -175,6 +803,35 @@ const _qilin_agent_schedule_schedule_list_result$schema = () => (_qilin_agent_sc
175
803
  'timeZone': z.string().readonly().describe('Explicit canonical IANA zone; equivalent timing edits retain the stored spelling.'),
176
804
  'weekdays': z.array(z.number()).readonly().describe('Unique ascending ISO weekdays, Monday 1 through Sunday 7.'),
177
805
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
806
+ 'target': z.union([z.object({
807
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
808
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
809
+ }), z.object({
810
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
811
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
812
+ 'create': z.object({
813
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
814
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
815
+ }).readonly().describe('Values used to create the reserved Session.'),
816
+ }), z.object({
817
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
818
+ 'create': z.object({
819
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
820
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
821
+ }).readonly().describe('Values used to create each Session.'),
822
+ })]).readonly().describe('Destination of the next delivery.'),
823
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
824
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
825
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
826
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
827
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
828
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
829
+ 'lastDelivery': z.object({
830
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
831
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
832
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
833
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
834
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
178
835
  }), z.object({
179
836
  'id': z.string().readonly().describe('Globally unique task identity.'),
180
837
  'kind': z.literal("cron").readonly().describe('Rule discriminator for a five-field cron wall-clock reminder.'),
@@ -183,22 +840,187 @@ const _qilin_agent_schedule_schedule_list_result$schema = () => (_qilin_agent_sc
183
840
  'expression': z.string().readonly().describe('Canonical five-field cron expression: minute hour day-of-month month day-of-week.'),
184
841
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
185
842
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
186
- })])))
187
- let _qilin_agent_schedule_schedule_update_parameter_0$schema$value
188
- const _qilin_agent_schedule_schedule_update_parameter_0$schema = () => (_qilin_agent_schedule_schedule_update_parameter_0$schema$value ??= z.object({
189
- 'expected': z.union([z.object({
843
+ 'target': z.union([z.object({
844
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
845
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
846
+ }), z.object({
847
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
848
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
849
+ 'create': z.object({
850
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
851
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
852
+ }).readonly().describe('Values used to create the reserved Session.'),
853
+ }), z.object({
854
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
855
+ 'create': z.object({
856
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
857
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
858
+ }).readonly().describe('Values used to create each Session.'),
859
+ })]).readonly().describe('Destination of the next delivery.'),
860
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
861
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
862
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
863
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
864
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
865
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
866
+ 'lastDelivery': z.object({
867
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
868
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
869
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
870
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
871
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
872
+ }), z.object({
873
+ 'kind': z.literal("rrule").readonly(),
874
+ 'id': z.string().readonly().describe('Host-generated canonical identity.'),
875
+ 'title': z.string().readonly().describe('Task name; already trimmed, non-empty, and at most 120 characters.'),
876
+ 'prompt': z.string().readonly().describe('Trimmed instruction sent when an occurrence becomes due.'),
877
+ 'rrule': z.string().readonly().describe('One normalized DTSTART line and one RRULE line.'),
878
+ 'scheduledAt': z.string().readonly().describe('Next unaccepted occurrence while active, or the final accepted occurrence when ended.'),
879
+ 'target': z.union([z.object({
880
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
881
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
882
+ }), z.object({
883
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
884
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
885
+ 'create': z.object({
886
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
887
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
888
+ }).readonly().describe('Values used to create the reserved Session.'),
889
+ }), z.object({
890
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
891
+ 'create': z.object({
892
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
893
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
894
+ }).readonly().describe('Values used to create each Session.'),
895
+ })]).readonly().describe('Destination of the next delivery.'),
896
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
897
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
898
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
899
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
900
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
901
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
902
+ 'lastDelivery': z.object({
903
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
904
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
905
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
906
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
907
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
908
+ }), z.object({
909
+ 'id': z.string().readonly().describe('Requested task identity.'),
910
+ 'code': z.literal("schedule_not_found").readonly().describe('Lookup miss discriminator.'),
911
+ }), z.object({
912
+ 'id': z.string().readonly(),
913
+ 'deleted': z.literal(true).readonly(),
914
+ }), z.object({
915
+ 'id': z.string().readonly().describe('Requested task identity.'),
916
+ 'code': z.literal("schedule_conflict").readonly().describe('Optimistic revision mismatch discriminator.'),
917
+ })]))
918
+ let _qilin_agent_schedule_schedule_history_parameter_0$schema$value
919
+ const _qilin_agent_schedule_schedule_history_parameter_0$schema = () => (_qilin_agent_schedule_schedule_history_parameter_0$schema$value ??= z.object({
920
+ 'id': z.string().readonly().describe('Task whose saved deliveries are read.'),
921
+ 'limit': z.number().readonly().describe('Required safe-integer page size from 1 through 100.'),
922
+ 'before': z.string().readonly().optional().describe('Message identity of the oldest entry in the previous page; excluded from this page.'),
923
+ }))
924
+ let _qilin_agent_schedule_schedule_history_result$schema$value
925
+ const _qilin_agent_schedule_schedule_history_result$schema = () => (_qilin_agent_schedule_schedule_history_result$schema$value ??= z.union([z.object({
926
+ 'id': z.string().readonly().describe('Task whose saved deliveries this page lists.'),
927
+ 'records': z.array(z.object({
928
+ 'prompt': z.string().readonly().optional().describe('Prompt sent for this occurrence; unavailable for legacy receipts.'),
929
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
930
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
931
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
932
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
933
+ })).readonly().describe('Saved deliveries, newest first.'),
934
+ 'earlierRecordsUnavailable': z.boolean().readonly().describe('Whether deliveries before the saved records may exist; the Host never reconstructs them.'),
935
+ 'earlierRecordsPruned': z.boolean().readonly().describe('Whether a retention limit removed saved records; legacy history without that fact is false.'),
936
+ 'retention': z.object({
937
+ 'days': z.number().readonly().describe('Retained window in days, measured back from the acknowledgment being appended.'),
938
+ 'records': z.number().readonly().describe('Maximum retained records per task; the newest survive.'),
939
+ }).readonly().describe('Current Host retention limits; the delivery writer applies the same limits.'),
940
+ 'nextBefore': z.string().readonly().optional().describe('Cursor for the next page; present only when older saved records remain.'),
941
+ }), z.object({
942
+ 'id': z.string().readonly().describe('Requested task identity.'),
943
+ 'code': z.union([z.literal("schedule_not_found"), z.literal("delivery_cursor_not_found")]).readonly().describe('`delivery_cursor_not_found` means `before` names no saved record of this task.'),
944
+ })]))
945
+ let _qilin_agent_schedule_schedule_list_parameter_0$schema$value
946
+ const _qilin_agent_schedule_schedule_list_parameter_0$schema = () => (_qilin_agent_schedule_schedule_list_parameter_0$schema$value ??= z.object({
947
+ 'active': z.boolean().readonly().optional().describe('`true` lists only active tasks; `false` lists only paused and ended tasks; omission lists all tasks.'),
948
+ 'limit': z.number().readonly().optional().describe('Page size from 1 through 500; the default is 100.'),
949
+ 'offset': z.number().readonly().optional().describe('Number of sorted tasks to skip; the default is 0.'),
950
+ }))
951
+ let _qilin_agent_schedule_schedule_list_result$schema$value
952
+ const _qilin_agent_schedule_schedule_list_result$schema = () => (_qilin_agent_schedule_schedule_list_result$schema$value ??= z.object({
953
+ 'items': z.array(z.union([z.object({
190
954
  'id': z.string().readonly().describe('Globally unique task identity.'),
191
955
  'kind': z.literal("after").readonly().describe('Rule discriminator for a delayed one-shot reminder.'),
192
956
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
193
957
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
194
958
  'afterSeconds': z.number().readonly().describe('Positive safe-integer delay accepted at creation.'),
195
959
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
960
+ 'target': z.union([z.object({
961
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
962
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
963
+ }), z.object({
964
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
965
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
966
+ 'create': z.object({
967
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
968
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
969
+ }).readonly().describe('Values used to create the reserved Session.'),
970
+ }), z.object({
971
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
972
+ 'create': z.object({
973
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
974
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
975
+ }).readonly().describe('Values used to create each Session.'),
976
+ })]).readonly().describe('Destination of the next delivery.'),
977
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
978
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
979
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
980
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
981
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
982
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
983
+ 'lastDelivery': z.object({
984
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
985
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
986
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
987
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
988
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
196
989
  }), z.object({
197
990
  'id': z.string().readonly().describe('Globally unique task identity.'),
198
991
  'kind': z.literal("at").readonly().describe('Rule discriminator for an absolute one-shot reminder.'),
199
992
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
200
993
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
201
994
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
995
+ 'target': z.union([z.object({
996
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
997
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
998
+ }), z.object({
999
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1000
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1001
+ 'create': z.object({
1002
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1003
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1004
+ }).readonly().describe('Values used to create the reserved Session.'),
1005
+ }), z.object({
1006
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1007
+ 'create': z.object({
1008
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1009
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1010
+ }).readonly().describe('Values used to create each Session.'),
1011
+ })]).readonly().describe('Destination of the next delivery.'),
1012
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1013
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1014
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1015
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1016
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1017
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1018
+ 'lastDelivery': z.object({
1019
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1020
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1021
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1022
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1023
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
202
1024
  }), z.object({
203
1025
  'id': z.string().readonly().describe('Globally unique task identity.'),
204
1026
  'kind': z.literal("every").readonly().describe('Rule discriminator for a fixed-rate recurring reminder.'),
@@ -206,6 +1028,35 @@ const _qilin_agent_schedule_schedule_update_parameter_0$schema = () => (_qilin_a
206
1028
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
207
1029
  'everySeconds': z.number().readonly().describe('Fixed safe-integer interval, never below one minute.'),
208
1030
  'scheduledAt': z.string().readonly().describe('Next anchor-aligned occurrence while active, or final occurrence when inactive.'),
1031
+ 'target': z.union([z.object({
1032
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1033
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1034
+ }), z.object({
1035
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1036
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1037
+ 'create': z.object({
1038
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1039
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1040
+ }).readonly().describe('Values used to create the reserved Session.'),
1041
+ }), z.object({
1042
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1043
+ 'create': z.object({
1044
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1045
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1046
+ }).readonly().describe('Values used to create each Session.'),
1047
+ })]).readonly().describe('Destination of the next delivery.'),
1048
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1049
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1050
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1051
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1052
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1053
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1054
+ 'lastDelivery': z.object({
1055
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1056
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1057
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1058
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1059
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
209
1060
  }), z.object({
210
1061
  'id': z.string().readonly().describe('Globally unique task identity.'),
211
1062
  'kind': z.literal("daily").readonly().describe('Rule discriminator for a daily wall-clock reminder.'),
@@ -214,6 +1065,35 @@ const _qilin_agent_schedule_schedule_update_parameter_0$schema = () => (_qilin_a
214
1065
  'time': z.string().readonly().describe('Local time normalized to HH:mm:ss.SSS.'),
215
1066
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
216
1067
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
1068
+ 'target': z.union([z.object({
1069
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1070
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1071
+ }), z.object({
1072
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1073
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1074
+ 'create': z.object({
1075
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1076
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1077
+ }).readonly().describe('Values used to create the reserved Session.'),
1078
+ }), z.object({
1079
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1080
+ 'create': z.object({
1081
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1082
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1083
+ }).readonly().describe('Values used to create each Session.'),
1084
+ })]).readonly().describe('Destination of the next delivery.'),
1085
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1086
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1087
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1088
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1089
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1090
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1091
+ 'lastDelivery': z.object({
1092
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1093
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1094
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1095
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1096
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
217
1097
  }), z.object({
218
1098
  'id': z.string().readonly().describe('Globally unique task identity.'),
219
1099
  'kind': z.literal("weekly").readonly().describe('Rule discriminator for a weekly wall-clock reminder.'),
@@ -223,6 +1103,35 @@ const _qilin_agent_schedule_schedule_update_parameter_0$schema = () => (_qilin_a
223
1103
  'timeZone': z.string().readonly().describe('Explicit canonical IANA zone; equivalent timing edits retain the stored spelling.'),
224
1104
  'weekdays': z.array(z.number()).readonly().describe('Unique ascending ISO weekdays, Monday 1 through Sunday 7.'),
225
1105
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
1106
+ 'target': z.union([z.object({
1107
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1108
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1109
+ }), z.object({
1110
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1111
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1112
+ 'create': z.object({
1113
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1114
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1115
+ }).readonly().describe('Values used to create the reserved Session.'),
1116
+ }), z.object({
1117
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1118
+ 'create': z.object({
1119
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1120
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1121
+ }).readonly().describe('Values used to create each Session.'),
1122
+ })]).readonly().describe('Destination of the next delivery.'),
1123
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1124
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1125
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1126
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1127
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1128
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1129
+ 'lastDelivery': z.object({
1130
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1131
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1132
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1133
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1134
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
226
1135
  }), z.object({
227
1136
  'id': z.string().readonly().describe('Globally unique task identity.'),
228
1137
  'kind': z.literal("cron").readonly().describe('Rule discriminator for a five-field cron wall-clock reminder.'),
@@ -231,59 +1140,153 @@ const _qilin_agent_schedule_schedule_update_parameter_0$schema = () => (_qilin_a
231
1140
  'expression': z.string().readonly().describe('Canonical five-field cron expression: minute hour day-of-month month day-of-week.'),
232
1141
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
233
1142
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
234
- })]).readonly().describe('Complete record observed when editing began, including the committed target.'),
235
- 'change': z.union([z.object({
236
- 'kind': z.literal("at").readonly(),
237
- 'at': z.union([z.string(), z.object({
238
- 'date': z.string().readonly().describe('Four-digit ISO calendar date.'),
239
- 'time': z.string().readonly().describe('Local wall-clock time with optional one-to-three digit milliseconds.'),
240
- 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
241
- })]).readonly(),
1143
+ 'target': z.union([z.object({
1144
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1145
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
242
1146
  }), z.object({
243
- 'kind': z.literal("every").readonly(),
244
- 'every_seconds': z.number().readonly(),
1147
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1148
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1149
+ 'create': z.object({
1150
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1151
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1152
+ }).readonly().describe('Values used to create the reserved Session.'),
245
1153
  }), z.object({
246
- 'kind': z.literal("daily").readonly(),
247
- 'daily': z.object({
248
- 'time': z.string().readonly().describe('Local HH:mm:ss time with optional one-to-three fractional digits.'),
249
- 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
250
- }).readonly(),
1154
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1155
+ 'create': z.object({
1156
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1157
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1158
+ }).readonly().describe('Values used to create each Session.'),
1159
+ })]).readonly().describe('Destination of the next delivery.'),
1160
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1161
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1162
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1163
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1164
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1165
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1166
+ 'lastDelivery': z.object({
1167
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1168
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1169
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1170
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1171
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
251
1172
  }), z.object({
252
- 'kind': z.literal("weekly").readonly(),
253
- 'weekly': z.object({
254
- 'time': z.string().readonly().describe('Local HH:mm:ss time with optional one-to-three fractional digits.'),
255
- 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
256
- 'weekdays': z.array(z.number()).readonly().describe('Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions.'),
257
- }).readonly(),
1173
+ 'kind': z.literal("rrule").readonly(),
1174
+ 'id': z.string().readonly().describe('Host-generated canonical identity.'),
1175
+ 'title': z.string().readonly().describe('Task name; already trimmed, non-empty, and at most 120 characters.'),
1176
+ 'prompt': z.string().readonly().describe('Trimmed instruction sent when an occurrence becomes due.'),
1177
+ 'rrule': z.string().readonly().describe('One normalized DTSTART line and one RRULE line.'),
1178
+ 'scheduledAt': z.string().readonly().describe('Next unaccepted occurrence while active, or the final accepted occurrence when ended.'),
1179
+ 'target': z.union([z.object({
1180
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1181
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
258
1182
  }), z.object({
259
- 'kind': z.literal("cron").readonly(),
260
- 'cron': z.object({
261
- 'expression': z.string().readonly().describe('Five-field Vixie cron expression: minute hour day-of-month month day-of-week.'),
262
- 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
263
- }).readonly(),
264
- })]).readonly().optional().describe('New timing; its kind may differ from the stored record\'s kind, and an omitted value keeps the committed target.'),
265
- 'id': z.string().describe('Task to remove.'),
266
- 'sessionId': z.string().describe('Original Session binding.'),
267
- 'title': z.string().readonly().optional().describe('Task name of at most 120 characters, non-empty after trimming; omitted keeps the stored name.'),
268
- 'prompt': z.string().readonly().optional().describe('Reminder instruction, non-empty after trimming; omitted keeps the stored instruction.'),
1183
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1184
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1185
+ 'create': z.object({
1186
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1187
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1188
+ }).readonly().describe('Values used to create the reserved Session.'),
1189
+ }), z.object({
1190
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1191
+ 'create': z.object({
1192
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1193
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1194
+ }).readonly().describe('Values used to create each Session.'),
1195
+ })]).readonly().describe('Destination of the next delivery.'),
1196
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1197
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1198
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1199
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1200
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1201
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1202
+ 'lastDelivery': z.object({
1203
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1204
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1205
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1206
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1207
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
1208
+ })])).readonly().describe('Tasks in this page.'),
1209
+ 'shown': z.number().readonly().describe('Number of tasks in this page.'),
1210
+ 'total': z.number().readonly().describe('Number of tasks that match the filter.'),
1211
+ 'limit': z.number().readonly().describe('Applied page size.'),
1212
+ 'offset': z.number().readonly().describe('Applied offset.'),
269
1213
  }))
270
- let _qilin_agent_schedule_schedule_update_result$schema$value
271
- const _qilin_agent_schedule_schedule_update_result$schema = () => (_qilin_agent_schedule_schedule_update_result$schema$value ??= z.union([z.object({
272
- 'id': z.string().readonly(),
273
- 'updated': z.boolean().readonly(),
274
- 'record': z.union([z.object({
1214
+ let _qilin_agent_schedule_schedule_run_parameter_0$schema$value
1215
+ const _qilin_agent_schedule_schedule_run_parameter_0$schema = () => (_qilin_agent_schedule_schedule_run_parameter_0$schema$value ??= z.object({
1216
+ 'id': z.string().readonly().describe('Task to run now.'),
1217
+ }))
1218
+ let _qilin_agent_schedule_schedule_run_result$schema$value
1219
+ const _qilin_agent_schedule_schedule_run_result$schema = () => (_qilin_agent_schedule_schedule_run_result$schema$value ??= z.union([z.object({
275
1220
  'id': z.string().readonly().describe('Globally unique task identity.'),
276
1221
  'kind': z.literal("after").readonly().describe('Rule discriminator for a delayed one-shot reminder.'),
277
1222
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
278
1223
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
279
1224
  'afterSeconds': z.number().readonly().describe('Positive safe-integer delay accepted at creation.'),
280
1225
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
1226
+ 'target': z.union([z.object({
1227
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1228
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1229
+ }), z.object({
1230
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1231
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1232
+ 'create': z.object({
1233
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1234
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1235
+ }).readonly().describe('Values used to create the reserved Session.'),
1236
+ }), z.object({
1237
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1238
+ 'create': z.object({
1239
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1240
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1241
+ }).readonly().describe('Values used to create each Session.'),
1242
+ })]).readonly().describe('Destination of the next delivery.'),
1243
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1244
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1245
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1246
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1247
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1248
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1249
+ 'lastDelivery': z.object({
1250
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1251
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1252
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1253
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1254
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
281
1255
  }), z.object({
282
1256
  'id': z.string().readonly().describe('Globally unique task identity.'),
283
1257
  'kind': z.literal("at").readonly().describe('Rule discriminator for an absolute one-shot reminder.'),
284
1258
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
285
1259
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
286
1260
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
1261
+ 'target': z.union([z.object({
1262
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1263
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1264
+ }), z.object({
1265
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1266
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1267
+ 'create': z.object({
1268
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1269
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1270
+ }).readonly().describe('Values used to create the reserved Session.'),
1271
+ }), z.object({
1272
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1273
+ 'create': z.object({
1274
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1275
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1276
+ }).readonly().describe('Values used to create each Session.'),
1277
+ })]).readonly().describe('Destination of the next delivery.'),
1278
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1279
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1280
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1281
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1282
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1283
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1284
+ 'lastDelivery': z.object({
1285
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1286
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1287
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1288
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1289
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
287
1290
  }), z.object({
288
1291
  'id': z.string().readonly().describe('Globally unique task identity.'),
289
1292
  'kind': z.literal("every").readonly().describe('Rule discriminator for a fixed-rate recurring reminder.'),
@@ -291,6 +1294,35 @@ const _qilin_agent_schedule_schedule_update_result$schema = () => (_qilin_agent_
291
1294
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
292
1295
  'everySeconds': z.number().readonly().describe('Fixed safe-integer interval, never below one minute.'),
293
1296
  'scheduledAt': z.string().readonly().describe('Next anchor-aligned occurrence while active, or final occurrence when inactive.'),
1297
+ 'target': z.union([z.object({
1298
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1299
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1300
+ }), z.object({
1301
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1302
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1303
+ 'create': z.object({
1304
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1305
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1306
+ }).readonly().describe('Values used to create the reserved Session.'),
1307
+ }), z.object({
1308
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1309
+ 'create': z.object({
1310
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1311
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1312
+ }).readonly().describe('Values used to create each Session.'),
1313
+ })]).readonly().describe('Destination of the next delivery.'),
1314
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1315
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1316
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1317
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1318
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1319
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1320
+ 'lastDelivery': z.object({
1321
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1322
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1323
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1324
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1325
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
294
1326
  }), z.object({
295
1327
  'id': z.string().readonly().describe('Globally unique task identity.'),
296
1328
  'kind': z.literal("daily").readonly().describe('Rule discriminator for a daily wall-clock reminder.'),
@@ -299,6 +1331,35 @@ const _qilin_agent_schedule_schedule_update_result$schema = () => (_qilin_agent_
299
1331
  'time': z.string().readonly().describe('Local time normalized to HH:mm:ss.SSS.'),
300
1332
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
301
1333
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
1334
+ 'target': z.union([z.object({
1335
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1336
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1337
+ }), z.object({
1338
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1339
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1340
+ 'create': z.object({
1341
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1342
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1343
+ }).readonly().describe('Values used to create the reserved Session.'),
1344
+ }), z.object({
1345
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1346
+ 'create': z.object({
1347
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1348
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1349
+ }).readonly().describe('Values used to create each Session.'),
1350
+ })]).readonly().describe('Destination of the next delivery.'),
1351
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1352
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1353
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1354
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1355
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1356
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1357
+ 'lastDelivery': z.object({
1358
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1359
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1360
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1361
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1362
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
302
1363
  }), z.object({
303
1364
  'id': z.string().readonly().describe('Globally unique task identity.'),
304
1365
  'kind': z.literal("weekly").readonly().describe('Rule discriminator for a weekly wall-clock reminder.'),
@@ -308,6 +1369,35 @@ const _qilin_agent_schedule_schedule_update_result$schema = () => (_qilin_agent_
308
1369
  'timeZone': z.string().readonly().describe('Explicit canonical IANA zone; equivalent timing edits retain the stored spelling.'),
309
1370
  'weekdays': z.array(z.number()).readonly().describe('Unique ascending ISO weekdays, Monday 1 through Sunday 7.'),
310
1371
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
1372
+ 'target': z.union([z.object({
1373
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1374
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1375
+ }), z.object({
1376
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1377
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1378
+ 'create': z.object({
1379
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1380
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1381
+ }).readonly().describe('Values used to create the reserved Session.'),
1382
+ }), z.object({
1383
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1384
+ 'create': z.object({
1385
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1386
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1387
+ }).readonly().describe('Values used to create each Session.'),
1388
+ })]).readonly().describe('Destination of the next delivery.'),
1389
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1390
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1391
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1392
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1393
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1394
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1395
+ 'lastDelivery': z.object({
1396
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1397
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1398
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1399
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1400
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
311
1401
  }), z.object({
312
1402
  'id': z.string().readonly().describe('Globally unique task identity.'),
313
1403
  'kind': z.literal("cron").readonly().describe('Rule discriminator for a five-field cron wall-clock reminder.'),
@@ -316,78 +1406,191 @@ const _qilin_agent_schedule_schedule_update_result$schema = () => (_qilin_agent_
316
1406
  'expression': z.string().readonly().describe('Canonical five-field cron expression: minute hour day-of-month month day-of-week.'),
317
1407
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
318
1408
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
319
- })]).readonly(),
320
- }), z.object({
321
- 'id': z.string().readonly(),
322
- 'updated': z.literal(false).readonly(),
323
- 'code': z.union([z.literal("schedule_not_found"), z.literal("schedule_ended"), z.literal("schedule_conflict")]).readonly(),
324
- }), z.object({
325
- 'code': z.literal("invalid_prompt").readonly(),
326
- 'message': z.string().readonly(),
1409
+ 'target': z.union([z.object({
1410
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1411
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
327
1412
  }), z.object({
328
- 'code': z.literal("invalid_selector").readonly(),
329
- 'message': z.string().readonly(),
1413
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1414
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1415
+ 'create': z.object({
1416
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1417
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1418
+ }).readonly().describe('Values used to create the reserved Session.'),
330
1419
  }), z.object({
331
- 'code': z.literal("invalid_rule").readonly(),
332
- 'message': z.string().readonly(),
333
- }), z.object({
334
- 'code': z.literal("invalid_time_zone").readonly(),
335
- 'message': z.string().readonly(),
1420
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1421
+ 'create': z.object({
1422
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1423
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1424
+ }).readonly().describe('Values used to create each Session.'),
1425
+ })]).readonly().describe('Destination of the next delivery.'),
1426
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1427
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1428
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1429
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1430
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1431
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1432
+ 'lastDelivery': z.object({
1433
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1434
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1435
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1436
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1437
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
336
1438
  }), z.object({
337
- 'code': z.literal("not_future").readonly(),
338
- 'message': z.string().readonly(),
1439
+ 'kind': z.literal("rrule").readonly(),
1440
+ 'id': z.string().readonly().describe('Host-generated canonical identity.'),
1441
+ 'title': z.string().readonly().describe('Task name; already trimmed, non-empty, and at most 120 characters.'),
1442
+ 'prompt': z.string().readonly().describe('Trimmed instruction sent when an occurrence becomes due.'),
1443
+ 'rrule': z.string().readonly().describe('One normalized DTSTART line and one RRULE line.'),
1444
+ 'scheduledAt': z.string().readonly().describe('Next unaccepted occurrence while active, or the final accepted occurrence when ended.'),
1445
+ 'target': z.union([z.object({
1446
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1447
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
339
1448
  }), z.object({
340
- 'code': z.literal("time_out_of_range").readonly(),
341
- 'message': z.string().readonly(),
1449
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1450
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1451
+ 'create': z.object({
1452
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1453
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1454
+ }).readonly().describe('Values used to create the reserved Session.'),
342
1455
  }), z.object({
343
- 'code': z.literal("frequency_too_high").readonly(),
344
- 'message': z.string().readonly(),
1456
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1457
+ 'create': z.object({
1458
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1459
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1460
+ }).readonly().describe('Values used to create each Session.'),
1461
+ })]).readonly().describe('Destination of the next delivery.'),
1462
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1463
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1464
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1465
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1466
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1467
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1468
+ 'lastDelivery': z.object({
1469
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1470
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1471
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1472
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1473
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
345
1474
  }), z.object({
346
- 'code': z.literal("subagent_session").readonly(),
347
- 'message': z.string().readonly(),
1475
+ 'id': z.string().readonly().describe('Requested task identity.'),
1476
+ 'code': z.literal("schedule_not_found").readonly().describe('Lookup miss discriminator.'),
348
1477
  }), z.object({
349
- 'code': z.literal("internal_error").readonly(),
350
- 'message': z.string().readonly(),
1478
+ 'id': z.string().readonly().describe('Requested task identity.'),
1479
+ 'code': z.literal("schedule_execution_pending").readonly().describe('Consolidated execution discriminator.'),
351
1480
  })]))
352
- let _qilin_agent_schedule_schedule_delete_parameter_0_strict$schema$value
353
- const _qilin_agent_schedule_schedule_delete_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_delete_parameter_0_strict$schema$value ??= z.strictObject({
354
- 'id': z.string().describe('Task to remove.'),
355
- 'sessionId': z.string().describe('Original Session binding.'),
356
- }))
357
- let _qilin_agent_schedule_schedule_history_parameter_0_strict$schema$value
358
- const _qilin_agent_schedule_schedule_history_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_history_parameter_0_strict$schema$value ??= z.strictObject({
359
- 'limit': z.number().describe('Required safe-integer page size from 1 through 100.'),
360
- 'before': z.string().optional().describe('Message identity of the oldest entry in the previous page; excluded from this page.'),
361
- 'id': z.string().describe('Task to remove.'),
362
- 'sessionId': z.string().describe('Original Session binding.'),
363
- }))
364
- let _qilin_agent_schedule_schedule_list_parameter_0_strict$schema$value
365
- const _qilin_agent_schedule_schedule_list_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_list_parameter_0_strict$schema$value ??= z.strictObject({
366
- 'sessionId': z.string().describe('Original Session binding.'),
1481
+ let _qilin_agent_schedule_schedule_view_parameter_0$schema$value
1482
+ const _qilin_agent_schedule_schedule_view_parameter_0$schema = () => (_qilin_agent_schedule_schedule_view_parameter_0$schema$value ??= z.object({
1483
+ 'id': z.string().readonly().describe('Task to read.'),
367
1484
  }))
368
- let _qilin_agent_schedule_schedule_update_parameter_0_strict$schema$value
369
- const _qilin_agent_schedule_schedule_update_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_update_parameter_0_strict$schema$value ??= z.strictObject({
370
- 'expected': z.union([z.strictObject({
1485
+ let _qilin_agent_schedule_schedule_view_result$schema$value
1486
+ const _qilin_agent_schedule_schedule_view_result$schema = () => (_qilin_agent_schedule_schedule_view_result$schema$value ??= z.union([z.object({
371
1487
  'id': z.string().readonly().describe('Globally unique task identity.'),
372
1488
  'kind': z.literal("after").readonly().describe('Rule discriminator for a delayed one-shot reminder.'),
373
1489
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
374
1490
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
375
1491
  'afterSeconds': z.number().readonly().describe('Positive safe-integer delay accepted at creation.'),
376
1492
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
377
- }), z.strictObject({
1493
+ 'target': z.union([z.object({
1494
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1495
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1496
+ }), z.object({
1497
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1498
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1499
+ 'create': z.object({
1500
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1501
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1502
+ }).readonly().describe('Values used to create the reserved Session.'),
1503
+ }), z.object({
1504
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1505
+ 'create': z.object({
1506
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1507
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1508
+ }).readonly().describe('Values used to create each Session.'),
1509
+ })]).readonly().describe('Destination of the next delivery.'),
1510
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1511
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1512
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1513
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1514
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1515
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1516
+ 'lastDelivery': z.object({
1517
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1518
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1519
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1520
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1521
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
1522
+ }), z.object({
378
1523
  'id': z.string().readonly().describe('Globally unique task identity.'),
379
1524
  'kind': z.literal("at").readonly().describe('Rule discriminator for an absolute one-shot reminder.'),
380
1525
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
381
1526
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
382
1527
  'scheduledAt': z.string().readonly().describe('Four-digit-year RFC 3339 UTC target.'),
383
- }), z.strictObject({
1528
+ 'target': z.union([z.object({
1529
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1530
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1531
+ }), z.object({
1532
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1533
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1534
+ 'create': z.object({
1535
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1536
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1537
+ }).readonly().describe('Values used to create the reserved Session.'),
1538
+ }), z.object({
1539
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1540
+ 'create': z.object({
1541
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1542
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1543
+ }).readonly().describe('Values used to create each Session.'),
1544
+ })]).readonly().describe('Destination of the next delivery.'),
1545
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1546
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1547
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1548
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1549
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1550
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1551
+ 'lastDelivery': z.object({
1552
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1553
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1554
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1555
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1556
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
1557
+ }), z.object({
384
1558
  'id': z.string().readonly().describe('Globally unique task identity.'),
385
1559
  'kind': z.literal("every").readonly().describe('Rule discriminator for a fixed-rate recurring reminder.'),
386
1560
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
387
1561
  'prompt': z.string().readonly().describe('Trimmed reminder content supplied at creation.'),
388
1562
  'everySeconds': z.number().readonly().describe('Fixed safe-integer interval, never below one minute.'),
389
1563
  'scheduledAt': z.string().readonly().describe('Next anchor-aligned occurrence while active, or final occurrence when inactive.'),
390
- }), z.strictObject({
1564
+ 'target': z.union([z.object({
1565
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1566
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1567
+ }), z.object({
1568
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1569
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1570
+ 'create': z.object({
1571
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1572
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1573
+ }).readonly().describe('Values used to create the reserved Session.'),
1574
+ }), z.object({
1575
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1576
+ 'create': z.object({
1577
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1578
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1579
+ }).readonly().describe('Values used to create each Session.'),
1580
+ })]).readonly().describe('Destination of the next delivery.'),
1581
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1582
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1583
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1584
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1585
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1586
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1587
+ 'lastDelivery': z.object({
1588
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1589
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1590
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1591
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1592
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
1593
+ }), z.object({
391
1594
  'id': z.string().readonly().describe('Globally unique task identity.'),
392
1595
  'kind': z.literal("daily").readonly().describe('Rule discriminator for a daily wall-clock reminder.'),
393
1596
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
@@ -395,7 +1598,36 @@ const _qilin_agent_schedule_schedule_update_parameter_0_strict$schema = () => (_
395
1598
  'time': z.string().readonly().describe('Local time normalized to HH:mm:ss.SSS.'),
396
1599
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
397
1600
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
398
- }), z.strictObject({
1601
+ 'target': z.union([z.object({
1602
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1603
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1604
+ }), z.object({
1605
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1606
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1607
+ 'create': z.object({
1608
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1609
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1610
+ }).readonly().describe('Values used to create the reserved Session.'),
1611
+ }), z.object({
1612
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1613
+ 'create': z.object({
1614
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1615
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1616
+ }).readonly().describe('Values used to create each Session.'),
1617
+ })]).readonly().describe('Destination of the next delivery.'),
1618
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1619
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1620
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1621
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1622
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1623
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1624
+ 'lastDelivery': z.object({
1625
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1626
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1627
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1628
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1629
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
1630
+ }), z.object({
399
1631
  'id': z.string().readonly().describe('Globally unique task identity.'),
400
1632
  'kind': z.literal("weekly").readonly().describe('Rule discriminator for a weekly wall-clock reminder.'),
401
1633
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
@@ -404,7 +1636,36 @@ const _qilin_agent_schedule_schedule_update_parameter_0_strict$schema = () => (_
404
1636
  'timeZone': z.string().readonly().describe('Explicit canonical IANA zone; equivalent timing edits retain the stored spelling.'),
405
1637
  'weekdays': z.array(z.number()).readonly().describe('Unique ascending ISO weekdays, Monday 1 through Sunday 7.'),
406
1638
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
407
- }), z.strictObject({
1639
+ 'target': z.union([z.object({
1640
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1641
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1642
+ }), z.object({
1643
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1644
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1645
+ 'create': z.object({
1646
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1647
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1648
+ }).readonly().describe('Values used to create the reserved Session.'),
1649
+ }), z.object({
1650
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1651
+ 'create': z.object({
1652
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1653
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1654
+ }).readonly().describe('Values used to create each Session.'),
1655
+ })]).readonly().describe('Destination of the next delivery.'),
1656
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1657
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1658
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1659
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1660
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1661
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1662
+ 'lastDelivery': z.object({
1663
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1664
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1665
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1666
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1667
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
1668
+ }), z.object({
408
1669
  'id': z.string().readonly().describe('Globally unique task identity.'),
409
1670
  'kind': z.literal("cron").readonly().describe('Rule discriminator for a five-field cron wall-clock reminder.'),
410
1671
  'title': z.string().readonly().describe('Required stored task name; already trimmed, non-empty, and at most 120 characters.'),
@@ -412,8 +1673,143 @@ const _qilin_agent_schedule_schedule_update_parameter_0_strict$schema = () => (_
412
1673
  'expression': z.string().readonly().describe('Canonical five-field cron expression: minute hour day-of-month month day-of-week.'),
413
1674
  'timeZone': z.string().readonly().describe('Explicit IANA zone; equivalent timing edits retain the stored spelling.'),
414
1675
  'scheduledAt': z.string().readonly().describe('Committed next UTC instant while active, or final occurrence when inactive.'),
415
- })]).readonly().describe('Complete record observed when editing began, including the committed target.'),
416
- 'change': z.union([z.strictObject({
1676
+ 'target': z.union([z.object({
1677
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1678
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1679
+ }), z.object({
1680
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1681
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1682
+ 'create': z.object({
1683
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1684
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1685
+ }).readonly().describe('Values used to create the reserved Session.'),
1686
+ }), z.object({
1687
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1688
+ 'create': z.object({
1689
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1690
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1691
+ }).readonly().describe('Values used to create each Session.'),
1692
+ })]).readonly().describe('Destination of the next delivery.'),
1693
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1694
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1695
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1696
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1697
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1698
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1699
+ 'lastDelivery': z.object({
1700
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1701
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1702
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1703
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1704
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
1705
+ }), z.object({
1706
+ 'kind': z.literal("rrule").readonly(),
1707
+ 'id': z.string().readonly().describe('Host-generated canonical identity.'),
1708
+ 'title': z.string().readonly().describe('Task name; already trimmed, non-empty, and at most 120 characters.'),
1709
+ 'prompt': z.string().readonly().describe('Trimmed instruction sent when an occurrence becomes due.'),
1710
+ 'rrule': z.string().readonly().describe('One normalized DTSTART line and one RRULE line.'),
1711
+ 'scheduledAt': z.string().readonly().describe('Next unaccepted occurrence while active, or the final accepted occurrence when ended.'),
1712
+ 'target': z.union([z.object({
1713
+ 'kind': z.literal("session").readonly().describe('Every occurrence goes to one existing Session.'),
1714
+ 'sessionId': z.string().readonly().describe('Session that receives each delivery.'),
1715
+ }), z.object({
1716
+ 'kind': z.literal("new_once").readonly().describe('The first delivery creates one Session; later deliveries go to that Session.'),
1717
+ 'sessionId': z.string().readonly().describe('Reserved at creation; the first delivery creates it and the target becomes `session`.'),
1718
+ 'create': z.object({
1719
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1720
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1721
+ }).readonly().describe('Values used to create the reserved Session.'),
1722
+ }), z.object({
1723
+ 'kind': z.literal("new").readonly().describe('Every delivery creates a fresh Session.'),
1724
+ 'create': z.object({
1725
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1726
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1727
+ }).readonly().describe('Values used to create each Session.'),
1728
+ })]).readonly().describe('Destination of the next delivery.'),
1729
+ 'involvedSessionIds': z.array(z.string()).readonly().describe('Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded.'),
1730
+ 'status': z.union([z.literal("active"), z.literal("paused"), z.literal("ended")]).readonly().describe('Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible.'),
1731
+ 'createdAt': z.string().readonly().optional().describe('Canonical UTC creation time.'),
1732
+ 'updatedAt': z.string().readonly().optional().describe('Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`.'),
1733
+ 'executionActive': z.literal(true).readonly().optional().describe('The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it.'),
1734
+ 'deliveryFloorEndsAt': z.string().readonly().optional().describe('End of the minimum delivery interval, present while it remains in the future.'),
1735
+ 'lastDelivery': z.object({
1736
+ 'scheduledAt': z.string().readonly().describe('Canonical UTC target of the delivered occurrence.'),
1737
+ 'deliveredAt': z.string().readonly().describe('Canonical UTC time sampled after Session persistence acknowledged delivery.'),
1738
+ 'messageId': z.string().readonly().describe('Identity of the delivered message, shared by tasks in one recurring batch.'),
1739
+ 'targetSessionId': z.string().readonly().describe('Session that durably accepted the delivered message.'),
1740
+ }).readonly().optional().describe('Most recent durably acknowledged inbox delivery, when available.'),
1741
+ }), z.object({
1742
+ 'id': z.string().readonly().describe('Requested task identity.'),
1743
+ 'code': z.literal("schedule_not_found").readonly().describe('Lookup miss discriminator.'),
1744
+ })]))
1745
+ let _qilin_agent_schedule_schedule_create_parameter_0_strict$schema$value
1746
+ const _qilin_agent_schedule_schedule_create_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_create_parameter_0_strict$schema$value ??= z.strictObject({
1747
+ 'title': z.string().readonly().describe('Task name of at most 120 characters, non-empty after trimming.'),
1748
+ 'prompt': z.string().readonly().describe('Instruction sent at each occurrence; non-empty after trimming.'),
1749
+ 'timing': z.union([z.strictObject({
1750
+ 'kind': z.literal("after").readonly(),
1751
+ 'after_seconds': z.number().readonly(),
1752
+ }), z.strictObject({
1753
+ 'kind': z.literal("at").readonly(),
1754
+ 'at': z.union([z.string(), z.strictObject({
1755
+ 'date': z.string().readonly().describe('Four-digit ISO calendar date.'),
1756
+ 'time': z.string().readonly().describe('Local wall-clock time with optional one-to-three digit milliseconds.'),
1757
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
1758
+ })]).readonly(),
1759
+ }), z.strictObject({
1760
+ 'kind': z.literal("every").readonly(),
1761
+ 'every_seconds': z.number().readonly(),
1762
+ }), z.strictObject({
1763
+ 'kind': z.literal("daily").readonly(),
1764
+ 'daily': z.strictObject({
1765
+ 'time': z.string().readonly().describe('Local HH:mm:ss time with optional one-to-three fractional digits.'),
1766
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
1767
+ }).readonly(),
1768
+ }), z.strictObject({
1769
+ 'kind': z.literal("weekly").readonly(),
1770
+ 'weekly': z.strictObject({
1771
+ 'time': z.string().readonly().describe('Local HH:mm:ss time with optional one-to-three fractional digits.'),
1772
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
1773
+ 'weekdays': z.array(z.number()).readonly().describe('Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions.'),
1774
+ }).readonly(),
1775
+ }), z.strictObject({
1776
+ 'kind': z.literal("cron").readonly(),
1777
+ 'cron': z.strictObject({
1778
+ 'expression': z.string().readonly().describe('Five-field Vixie cron expression: minute hour day-of-month month day-of-week.'),
1779
+ 'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
1780
+ }).readonly(),
1781
+ }), z.strictObject({
1782
+ 'kind': z.literal("rrule").readonly(),
1783
+ 'rrule': z.string().readonly(),
1784
+ })]).readonly().describe('Authoritative typed timing with at least one future occurrence.'),
1785
+ 'target': z.union([z.strictObject({
1786
+ 'kind': z.literal("session").readonly().describe('Deliver to one existing Session that is not a delegated child.'),
1787
+ 'sessionId': z.string().readonly().describe('Existing Session that receives each delivery.'),
1788
+ }), z.strictObject({
1789
+ 'kind': z.literal("new_once").readonly().describe('Create one Session at the first delivery.'),
1790
+ 'create': z.strictObject({
1791
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1792
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1793
+ }).readonly().optional().describe('Creation values; omission uses the Host defaults.'),
1794
+ }), z.strictObject({
1795
+ 'kind': z.literal("new").readonly().describe('Create a fresh Session at each delivery.'),
1796
+ 'create': z.strictObject({
1797
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1798
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1799
+ }).readonly().optional().describe('Creation values; omission uses the Host defaults.'),
1800
+ })]).readonly().optional().describe('Delivery destination; omission creates one Session at first delivery and reuses it.'),
1801
+ }))
1802
+ let _qilin_agent_schedule_schedule_edit_parameter_0_strict$schema$value
1803
+ const _qilin_agent_schedule_schedule_edit_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_edit_parameter_0_strict$schema$value ??= z.union([z.strictObject({
1804
+ 'id': z.string().readonly().describe('Task to change.'),
1805
+ 'action': z.literal("update").readonly().describe('Apply `patch` as one atomic change.'),
1806
+ 'patch': z.strictObject({
1807
+ 'title': z.string().readonly().optional().describe('Replacement task name.'),
1808
+ 'prompt': z.string().readonly().optional().describe('Replacement instruction.'),
1809
+ 'timing': z.union([z.strictObject({
1810
+ 'kind': z.literal("after").readonly(),
1811
+ 'after_seconds': z.number().readonly(),
1812
+ }), z.strictObject({
417
1813
  'kind': z.literal("at").readonly(),
418
1814
  'at': z.union([z.string(), z.strictObject({
419
1815
  'date': z.string().readonly().describe('Four-digit ISO calendar date.'),
@@ -442,11 +1838,53 @@ const _qilin_agent_schedule_schedule_update_parameter_0_strict$schema = () => (_
442
1838
  'expression': z.string().readonly().describe('Five-field Vixie cron expression: minute hour day-of-month month day-of-week.'),
443
1839
  'time_zone': z.string().readonly().describe('Explicit UTC or IANA Area/Location zone.'),
444
1840
  }).readonly(),
445
- })]).readonly().optional().describe('New timing; its kind may differ from the stored record\'s kind, and an omitted value keeps the committed target.'),
446
- 'id': z.string().describe('Task to remove.'),
447
- 'sessionId': z.string().describe('Original Session binding.'),
448
- 'title': z.string().readonly().optional().describe('Task name of at most 120 characters, non-empty after trimming; omitted keeps the stored name.'),
449
- 'prompt': z.string().readonly().optional().describe('Reminder instruction, non-empty after trimming; omitted keeps the stored instruction.'),
1841
+ }), z.strictObject({
1842
+ 'kind': z.literal("rrule").readonly(),
1843
+ 'rrule': z.string().readonly(),
1844
+ })]).readonly().optional().describe('Replacement timing; a changed rule recomputes the next occurrence.'),
1845
+ 'target': z.union([z.strictObject({
1846
+ 'kind': z.literal("session").readonly().describe('Deliver to one existing Session that is not a delegated child.'),
1847
+ 'sessionId': z.string().readonly().describe('Existing Session that receives each delivery.'),
1848
+ }), z.strictObject({
1849
+ 'kind': z.literal("new_once").readonly().describe('Create one Session at the first delivery.'),
1850
+ 'create': z.strictObject({
1851
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1852
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1853
+ }).readonly().optional().describe('Creation values; omission uses the Host defaults.'),
1854
+ }), z.strictObject({
1855
+ 'kind': z.literal("new").readonly().describe('Create a fresh Session at each delivery.'),
1856
+ 'create': z.strictObject({
1857
+ 'cwd': z.string().readonly().optional().describe('Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory.'),
1858
+ 'agentPreset': z.string().readonly().optional().describe('Agent preset of the created Session; omission uses the default preset.'),
1859
+ }).readonly().optional().describe('Creation values; omission uses the Host defaults.'),
1860
+ })]).readonly().optional().describe('Replacement destination.'),
1861
+ 'active': z.boolean().readonly().optional().describe('`false` pauses the task; `true` resumes a recurrence from its first future occurrence.'),
1862
+ }).readonly().describe('Fields to change; at least one member is required.'),
1863
+ 'expectedUpdatedAt': z.union([z.literal(null), z.string()]).readonly().optional().describe('`updatedAt` value that the editor read; a different stored value returns `schedule_conflict`.'),
1864
+ }), z.strictObject({
1865
+ 'id': z.string().readonly().describe('Task to remove.'),
1866
+ 'action': z.literal("delete").readonly().describe('Remove the task and its saved deliveries.'),
1867
+ 'expectedUpdatedAt': z.union([z.literal(null), z.string()]).readonly().optional().describe('`updatedAt` value that the editor read; a different stored value returns `schedule_conflict`.'),
1868
+ })]))
1869
+ let _qilin_agent_schedule_schedule_history_parameter_0_strict$schema$value
1870
+ const _qilin_agent_schedule_schedule_history_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_history_parameter_0_strict$schema$value ??= z.strictObject({
1871
+ 'id': z.string().readonly().describe('Task whose saved deliveries are read.'),
1872
+ 'limit': z.number().readonly().describe('Required safe-integer page size from 1 through 100.'),
1873
+ 'before': z.string().readonly().optional().describe('Message identity of the oldest entry in the previous page; excluded from this page.'),
1874
+ }))
1875
+ let _qilin_agent_schedule_schedule_list_parameter_0_strict$schema$value
1876
+ const _qilin_agent_schedule_schedule_list_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_list_parameter_0_strict$schema$value ??= z.strictObject({
1877
+ 'active': z.boolean().readonly().optional().describe('`true` lists only active tasks; `false` lists only paused and ended tasks; omission lists all tasks.'),
1878
+ 'limit': z.number().readonly().optional().describe('Page size from 1 through 500; the default is 100.'),
1879
+ 'offset': z.number().readonly().optional().describe('Number of sorted tasks to skip; the default is 0.'),
1880
+ }))
1881
+ let _qilin_agent_schedule_schedule_run_parameter_0_strict$schema$value
1882
+ const _qilin_agent_schedule_schedule_run_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_run_parameter_0_strict$schema$value ??= z.strictObject({
1883
+ 'id': z.string().readonly().describe('Task to run now.'),
1884
+ }))
1885
+ let _qilin_agent_schedule_schedule_view_parameter_0_strict$schema$value
1886
+ const _qilin_agent_schedule_schedule_view_parameter_0_strict$schema = () => (_qilin_agent_schedule_schedule_view_parameter_0_strict$schema$value ??= z.strictObject({
1887
+ 'id': z.string().readonly().describe('Task to read.'),
450
1888
  }))
451
1889
 
452
1890
  const $remote = createTypertRemoteInfo({
@@ -454,7 +1892,7 @@ const $remote = createTypertRemoteInfo({
454
1892
  methods: {
455
1893
  'schedule/catalog': {
456
1894
  service: 'schedule',
457
- description: 'Read all active and inactive Host reminders with their original Session bindings. A deleted reminder has no row, so it is absent here. Does not activate Sessions or read Session history.',
1895
+ description: 'Read every Host task without a page bound or Session activation.',
458
1896
  invocation: { kind: 'direct' },
459
1897
  parameters: [
460
1898
  ],
@@ -462,64 +1900,130 @@ const $remote = createTypertRemoteInfo({
462
1900
  mode: 'strict',
463
1901
  typeSymbol: '@qilin-agent/schedule#schedule/catalog:result',
464
1902
  create: _qilin_agent_schedule_schedule_catalog_result$schema,
465
- description: 'Reminders ordered by scheduledAt ascending, then lexicographically by id.',
466
- jsonSchema: {"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"after","description":"Rule discriminator for a delayed one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"afterSeconds":{"type":"number","description":"Positive safe-integer delay accepted at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."},"sessionId":{"type":"string","description":"Session receiving this reminder when it becomes due."},"status":{"type":"string","enum":["active","inactive"],"description":"Inactive reminders remain visible but never schedule another delivery."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."}},"required":["scheduledAt","deliveredAt","messageId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","afterSeconds","scheduledAt","sessionId","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"at","description":"Rule discriminator for an absolute one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."},"sessionId":{"type":"string","description":"Session receiving this reminder when it becomes due."},"status":{"type":"string","enum":["active","inactive"],"description":"Inactive reminders remain visible but never schedule another delivery."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."}},"required":["scheduledAt","deliveredAt","messageId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","scheduledAt","sessionId","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"every","description":"Rule discriminator for a fixed-rate recurring reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"everySeconds":{"type":"number","description":"Fixed safe-integer interval, never below one minute."},"scheduledAt":{"type":"string","description":"Next anchor-aligned occurrence while active, or final occurrence when inactive."},"sessionId":{"type":"string","description":"Session receiving this reminder when it becomes due."},"status":{"type":"string","enum":["active","inactive"],"description":"Inactive reminders remain visible but never schedule another delivery."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."}},"required":["scheduledAt","deliveredAt","messageId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","everySeconds","scheduledAt","sessionId","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"daily","description":"Rule discriminator for a daily wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"sessionId":{"type":"string","description":"Session receiving this reminder when it becomes due."},"status":{"type":"string","enum":["active","inactive"],"description":"Inactive reminders remain visible but never schedule another delivery."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."}},"required":["scheduledAt","deliveredAt","messageId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","time","timeZone","scheduledAt","sessionId","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"weekly","description":"Rule discriminator for a weekly wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit canonical IANA zone; equivalent timing edits retain the stored spelling."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Unique ascending ISO weekdays, Monday 1 through Sunday 7."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"sessionId":{"type":"string","description":"Session receiving this reminder when it becomes due."},"status":{"type":"string","enum":["active","inactive"],"description":"Inactive reminders remain visible but never schedule another delivery."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."}},"required":["scheduledAt","deliveredAt","messageId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","time","timeZone","weekdays","scheduledAt","sessionId","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"cron","description":"Rule discriminator for a five-field cron wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"expression":{"type":"string","description":"Canonical five-field cron expression: minute hour day-of-month month day-of-week."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"sessionId":{"type":"string","description":"Session receiving this reminder when it becomes due."},"status":{"type":"string","enum":["active","inactive"],"description":"Inactive reminders remain visible but never schedule another delivery."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."}},"required":["scheduledAt","deliveredAt","messageId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","expression","timeZone","scheduledAt","sessionId","status"],"additionalProperties":true}]}},
1903
+ description: 'All tasks, active first, with target and execution metadata.',
1904
+ jsonSchema: {"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"after","description":"Rule discriminator for a delayed one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"afterSeconds":{"type":"number","description":"Positive safe-integer delay accepted at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","afterSeconds","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"at","description":"Rule discriminator for an absolute one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"every","description":"Rule discriminator for a fixed-rate recurring reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"everySeconds":{"type":"number","description":"Fixed safe-integer interval, never below one minute."},"scheduledAt":{"type":"string","description":"Next anchor-aligned occurrence while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","everySeconds","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"daily","description":"Rule discriminator for a daily wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","time","timeZone","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"weekly","description":"Rule discriminator for a weekly wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit canonical IANA zone; equivalent timing edits retain the stored spelling."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Unique ascending ISO weekdays, Monday 1 through Sunday 7."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","time","timeZone","weekdays","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"cron","description":"Rule discriminator for a five-field cron wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"expression":{"type":"string","description":"Canonical five-field cron expression: minute hour day-of-month month day-of-week."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","expression","timeZone","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"rrule"},"id":{"type":"string","description":"Host-generated canonical identity."},"title":{"type":"string","description":"Task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed instruction sent when an occurrence becomes due."},"rrule":{"type":"string","description":"One normalized DTSTART line and one RRULE line."},"scheduledAt":{"type":"string","description":"Next unaccepted occurrence while active, or the final accepted occurrence when ended."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["kind","id","title","prompt","rrule","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true}]}},
1905
+ },
1906
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":448,"column":9},
1907
+ },
1908
+ 'schedule/create': {
1909
+ service: 'schedule',
1910
+ description: 'Create one task with a Host-generated identity for a human Remote caller.',
1911
+ implementation: 'remoteCreate',
1912
+ invocation: { kind: 'direct' },
1913
+ parameters: [
1914
+ {
1915
+ name: 'request',
1916
+ description: 'Title, prompt, recurrence, and delivery destination.',
1917
+ source: 'json',
1918
+ codec: {
1919
+ mode: 'strict',
1920
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleCreateRequest',
1921
+ create: _qilin_agent_schedule_schedule_create_parameter_0$schema,
1922
+ jsonSchema: {"type":"object","properties":{"title":{"type":"string","description":"Task name of at most 120 characters, non-empty after trimming."},"prompt":{"type":"string","description":"Instruction sent at each occurrence; non-empty after trimming."},"timing":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"after"},"after_seconds":{"type":"number"}},"required":["kind","after_seconds"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"at"},"at":{"oneOf":[{"type":"string"},{"type":"object","properties":{"date":{"type":"string","description":"Four-digit ISO calendar date."},"time":{"type":"string","description":"Local wall-clock time with optional one-to-three digit milliseconds."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["date","time","time_zone"],"additionalProperties":true}]}},"required":["kind","at"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"every"},"every_seconds":{"type":"number"}},"required":["kind","every_seconds"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"daily"},"daily":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["time","time_zone"],"additionalProperties":true}},"required":["kind","daily"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"weekly":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions."}},"required":["time","time_zone","weekdays"],"additionalProperties":true}},"required":["kind","weekly"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"cron"},"cron":{"type":"object","properties":{"expression":{"type":"string","description":"Five-field Vixie cron expression: minute hour day-of-month month day-of-week."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["expression","time_zone"],"additionalProperties":true}},"required":["kind","cron"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"rrule"},"rrule":{"type":"string"}},"required":["kind","rrule"],"additionalProperties":true}],"description":"Authoritative typed timing with at least one future occurrence."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Deliver to one existing Session that is not a delegated child."},"sessionId":{"type":"string","description":"Existing Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"Create one Session at the first delivery."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Creation values; omission uses the Host defaults."}},"required":["kind"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Create a fresh Session at each delivery."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Creation values; omission uses the Host defaults."}},"required":["kind"],"additionalProperties":true}],"description":"Delivery destination; omission creates one Session at first delivery and reuses it."}},"required":["title","prompt","timing"],"additionalProperties":true},
1923
+ },
1924
+ strictCodec: {
1925
+ mode: 'strict',
1926
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleCreateRequest',
1927
+ create: _qilin_agent_schedule_schedule_create_parameter_0_strict$schema,
1928
+ jsonSchema: {"type":"object","properties":{"title":{"type":"string","description":"Task name of at most 120 characters, non-empty after trimming."},"prompt":{"type":"string","description":"Instruction sent at each occurrence; non-empty after trimming."},"timing":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"after"},"after_seconds":{"type":"number"}},"required":["kind","after_seconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"at"},"at":{"oneOf":[{"type":"string"},{"type":"object","properties":{"date":{"type":"string","description":"Four-digit ISO calendar date."},"time":{"type":"string","description":"Local wall-clock time with optional one-to-three digit milliseconds."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["date","time","time_zone"],"additionalProperties":false}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"every"},"every_seconds":{"type":"number"}},"required":["kind","every_seconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"daily"},"daily":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["time","time_zone"],"additionalProperties":false}},"required":["kind","daily"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"weekly":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions."}},"required":["time","time_zone","weekdays"],"additionalProperties":false}},"required":["kind","weekly"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cron"},"cron":{"type":"object","properties":{"expression":{"type":"string","description":"Five-field Vixie cron expression: minute hour day-of-month month day-of-week."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["expression","time_zone"],"additionalProperties":false}},"required":["kind","cron"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rrule"},"rrule":{"type":"string"}},"required":["kind","rrule"],"additionalProperties":false}],"description":"Authoritative typed timing with at least one future occurrence."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Deliver to one existing Session that is not a delegated child."},"sessionId":{"type":"string","description":"Existing Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"Create one Session at the first delivery."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":false,"description":"Creation values; omission uses the Host defaults."}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Create a fresh Session at each delivery."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":false,"description":"Creation values; omission uses the Host defaults."}},"required":["kind"],"additionalProperties":false}],"description":"Delivery destination; omission creates one Session at first delivery and reuses it."}},"required":["title","prompt","timing"],"additionalProperties":false},
1929
+ },
1930
+ },
1931
+ ],
1932
+ cancellation: { parameter: 'signal' },
1933
+ result: {
1934
+ mode: 'strict',
1935
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleCatalogEntry',
1936
+ create: _qilin_agent_schedule_schedule_create_result$schema,
1937
+ description: 'The stored task. Cancellation does not roll back an in-flight write.',
1938
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"after","description":"Rule discriminator for a delayed one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"afterSeconds":{"type":"number","description":"Positive safe-integer delay accepted at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","afterSeconds","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"at","description":"Rule discriminator for an absolute one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"every","description":"Rule discriminator for a fixed-rate recurring reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"everySeconds":{"type":"number","description":"Fixed safe-integer interval, never below one minute."},"scheduledAt":{"type":"string","description":"Next anchor-aligned occurrence while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","everySeconds","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"daily","description":"Rule discriminator for a daily wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","time","timeZone","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"weekly","description":"Rule discriminator for a weekly wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit canonical IANA zone; equivalent timing edits retain the stored spelling."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Unique ascending ISO weekdays, Monday 1 through Sunday 7."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","time","timeZone","weekdays","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"cron","description":"Rule discriminator for a five-field cron wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"expression":{"type":"string","description":"Canonical five-field cron expression: minute hour day-of-month month day-of-week."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","expression","timeZone","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"rrule"},"id":{"type":"string","description":"Host-generated canonical identity."},"title":{"type":"string","description":"Task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed instruction sent when an occurrence becomes due."},"rrule":{"type":"string","description":"One normalized DTSTART line and one RRULE line."},"scheduledAt":{"type":"string","description":"Next unaccepted occurrence while active, or the final accepted occurrence when ended."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["kind","id","title","prompt","rrule","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true}]},
1939
+ },
1940
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":370,"column":9},
1941
+ },
1942
+ 'schedule/deleteInactive': {
1943
+ service: 'schedule',
1944
+ description: 'Delete every ended Host task, leaving active tasks armed. Ended tasks never schedule another delivery, so the removal changes no pending target and no timer is recomputed. Rows are enumerated and removed in one FIFO slot, so a delivery ordered behind this call ends its task after the enumeration rather than during it. Each row is one durable write: a failure rejects with the rows removed so far gone and the remaining rows still stored. A successful nonempty removal emits `schedule/changed` without Agent notices. A rejected removal announces `schedule/changed` because it does not establish which rows landed, and clients then re-read the catalog.',
1945
+ invocation: { kind: 'direct' },
1946
+ parameters: [
1947
+ ],
1948
+ result: {
1949
+ mode: 'strict',
1950
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleDeleteInactiveResult',
1951
+ create: _qilin_agent_schedule_schedule_deleteInactive_result$schema,
1952
+ description: 'Count of removed rows; zero when the Host held no ended task.',
1953
+ jsonSchema: {"type":"object","properties":{"deleted":{"type":"number","description":"Ended task rows this call removed; zero when the Host held none."}},"required":["deleted"],"additionalProperties":true},
467
1954
  },
468
- sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":286,"column":9},
1955
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":526,"column":9},
469
1956
  },
470
- 'schedule/delete': {
1957
+ 'schedule/deliveryLimits': {
471
1958
  service: 'schedule',
472
- description: 'Delete one task belonging to the selected Session, leaving queued messages intact. The row is removed: the task no longer schedules, leaves `list` and `catalog`, and its saved delivery records go with it. A task bound to a Session a delegated child owns stays deletable even though creation and timing edits refuse that binding, so a task stored before that rule existed remains removable.',
1959
+ description: 'Read effective delivery limits without loading or activating a task.',
1960
+ invocation: { kind: 'direct' },
1961
+ parameters: [
1962
+ ],
1963
+ result: {
1964
+ mode: 'strict',
1965
+ typeSymbol: '@qilin-agent/schedule#schedule/deliveryLimits:result',
1966
+ create: _qilin_agent_schedule_schedule_deliveryLimits_result$schema,
1967
+ description: 'The configured minimum spacing between deliveries that each create a Session, in seconds.',
1968
+ jsonSchema: {"type":"object","properties":{"newSessionIntervalSeconds":{"type":"number"}},"required":["newSessionIntervalSeconds"],"additionalProperties":true},
1969
+ },
1970
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":359,"column":3},
1971
+ },
1972
+ 'schedule/edit': {
1973
+ service: 'schedule',
1974
+ description: 'Update or delete one task for a human Remote caller; an invalid patch rejects with `schedule/input-invalid`.',
1975
+ implementation: 'remoteEdit',
473
1976
  invocation: { kind: 'direct' },
474
1977
  parameters: [
475
1978
  {
476
1979
  name: 'request',
477
- description: 'Session and exact task identity.',
1980
+ description: 'Task identity and one update or delete operation.',
478
1981
  source: 'json',
479
1982
  codec: {
480
1983
  mode: 'strict',
481
- typeSymbol: '@qilin-agent/schedule/client#ScheduleDeleteRequest',
482
- create: _qilin_agent_schedule_schedule_delete_parameter_0$schema,
483
- jsonSchema: {"type":"object","properties":{"id":{"type":"string","description":"Task to remove."},"sessionId":{"type":"string","description":"Original Session binding."}},"required":["id","sessionId"],"additionalProperties":true},
1984
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleEditRequest',
1985
+ create: _qilin_agent_schedule_schedule_edit_parameter_0$schema,
1986
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Task to change."},"action":{"type":"string","const":"update","description":"Apply `patch` as one atomic change."},"patch":{"type":"object","properties":{"title":{"type":"string","description":"Replacement task name."},"prompt":{"type":"string","description":"Replacement instruction."},"timing":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"after"},"after_seconds":{"type":"number"}},"required":["kind","after_seconds"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"at"},"at":{"oneOf":[{"type":"string"},{"type":"object","properties":{"date":{"type":"string","description":"Four-digit ISO calendar date."},"time":{"type":"string","description":"Local wall-clock time with optional one-to-three digit milliseconds."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["date","time","time_zone"],"additionalProperties":true}]}},"required":["kind","at"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"every"},"every_seconds":{"type":"number"}},"required":["kind","every_seconds"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"daily"},"daily":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["time","time_zone"],"additionalProperties":true}},"required":["kind","daily"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"weekly":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions."}},"required":["time","time_zone","weekdays"],"additionalProperties":true}},"required":["kind","weekly"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"cron"},"cron":{"type":"object","properties":{"expression":{"type":"string","description":"Five-field Vixie cron expression: minute hour day-of-month month day-of-week."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["expression","time_zone"],"additionalProperties":true}},"required":["kind","cron"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"rrule"},"rrule":{"type":"string"}},"required":["kind","rrule"],"additionalProperties":true}],"description":"Replacement timing; a changed rule recomputes the next occurrence."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Deliver to one existing Session that is not a delegated child."},"sessionId":{"type":"string","description":"Existing Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"Create one Session at the first delivery."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Creation values; omission uses the Host defaults."}},"required":["kind"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Create a fresh Session at each delivery."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Creation values; omission uses the Host defaults."}},"required":["kind"],"additionalProperties":true}],"description":"Replacement destination."},"active":{"type":"boolean","description":"`false` pauses the task; `true` resumes a recurrence from its first future occurrence."}},"required":[],"additionalProperties":true,"description":"Fields to change; at least one member is required."},"expectedUpdatedAt":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"`updatedAt` value that the editor read; a different stored value returns `schedule_conflict`."}},"required":["id","action","patch"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Task to remove."},"action":{"type":"string","const":"delete","description":"Remove the task and its saved deliveries."},"expectedUpdatedAt":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"`updatedAt` value that the editor read; a different stored value returns `schedule_conflict`."}},"required":["id","action"],"additionalProperties":true}]},
484
1987
  },
485
1988
  strictCodec: {
486
1989
  mode: 'strict',
487
- typeSymbol: '@qilin-agent/schedule/client#ScheduleDeleteRequest',
488
- create: _qilin_agent_schedule_schedule_delete_parameter_0_strict$schema,
489
- jsonSchema: {"type":"object","properties":{"id":{"type":"string","description":"Task to remove."},"sessionId":{"type":"string","description":"Original Session binding."}},"required":["id","sessionId"],"additionalProperties":false},
1990
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleEditRequest',
1991
+ create: _qilin_agent_schedule_schedule_edit_parameter_0_strict$schema,
1992
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Task to change."},"action":{"type":"string","const":"update","description":"Apply `patch` as one atomic change."},"patch":{"type":"object","properties":{"title":{"type":"string","description":"Replacement task name."},"prompt":{"type":"string","description":"Replacement instruction."},"timing":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"after"},"after_seconds":{"type":"number"}},"required":["kind","after_seconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"at"},"at":{"oneOf":[{"type":"string"},{"type":"object","properties":{"date":{"type":"string","description":"Four-digit ISO calendar date."},"time":{"type":"string","description":"Local wall-clock time with optional one-to-three digit milliseconds."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["date","time","time_zone"],"additionalProperties":false}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"every"},"every_seconds":{"type":"number"}},"required":["kind","every_seconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"daily"},"daily":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["time","time_zone"],"additionalProperties":false}},"required":["kind","daily"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"weekly":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions."}},"required":["time","time_zone","weekdays"],"additionalProperties":false}},"required":["kind","weekly"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cron"},"cron":{"type":"object","properties":{"expression":{"type":"string","description":"Five-field Vixie cron expression: minute hour day-of-month month day-of-week."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["expression","time_zone"],"additionalProperties":false}},"required":["kind","cron"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"rrule"},"rrule":{"type":"string"}},"required":["kind","rrule"],"additionalProperties":false}],"description":"Replacement timing; a changed rule recomputes the next occurrence."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Deliver to one existing Session that is not a delegated child."},"sessionId":{"type":"string","description":"Existing Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"Create one Session at the first delivery."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":false,"description":"Creation values; omission uses the Host defaults."}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Create a fresh Session at each delivery."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":false,"description":"Creation values; omission uses the Host defaults."}},"required":["kind"],"additionalProperties":false}],"description":"Replacement destination."},"active":{"type":"boolean","description":"`false` pauses the task; `true` resumes a recurrence from its first future occurrence."}},"required":[],"additionalProperties":false,"description":"Fields to change; at least one member is required."},"expectedUpdatedAt":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"`updatedAt` value that the editor read; a different stored value returns `schedule_conflict`."}},"required":["id","action","patch"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","description":"Task to remove."},"action":{"type":"string","const":"delete","description":"Remove the task and its saved deliveries."},"expectedUpdatedAt":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"`updatedAt` value that the editor read; a different stored value returns `schedule_conflict`."}},"required":["id","action"],"additionalProperties":false}]},
490
1993
  },
491
1994
  },
492
1995
  ],
493
1996
  cancellation: { parameter: 'signal' },
494
1997
  result: {
495
1998
  mode: 'strict',
496
- typeSymbol: '@qilin-agent/schedule/client#ScheduleDeleteResult',
497
- create: _qilin_agent_schedule_schedule_delete_result$schema,
498
- description: 'Whether that Session owned a deleted task. Cancellation does not roll back an in-flight write.',
499
- jsonSchema: {"oneOf":[{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean","const":true}},"required":["id","deleted"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean","const":false},"code":{"type":"string","const":"schedule_not_found"}},"required":["id","deleted","code"],"additionalProperties":true}]},
1999
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleEditResult',
2000
+ create: _qilin_agent_schedule_schedule_edit_result$schema,
2001
+ description: 'The updated task, the deletion outcome, or a non-mutating miss or conflict.',
2002
+ jsonSchemaError: 'typert tool schema: selected union branches overlap or have no required discriminator',
500
2003
  },
501
- sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":327,"column":9},
2004
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":543,"column":9},
502
2005
  },
503
2006
  'schedule/history': {
504
2007
  service: 'schedule',
505
- description: 'Read saved inbox deliveries without activating or reading the original Session. The task\'s own row supplies its binding, so its records stay readable through this lookup.',
2008
+ description: 'Remote form of the target-based {@link ScheduleService.history}; an invalid limit rejects with `schedule/input-invalid`.',
2009
+ implementation: 'remoteHistory',
506
2010
  invocation: { kind: 'direct' },
507
2011
  parameters: [
508
2012
  {
509
2013
  name: 'request',
510
- description: 'Session binding, task identity, explicit limit, and optional exclusive message cursor.',
2014
+ description: 'Task identity, explicit limit, and optional exclusive message cursor.',
511
2015
  source: 'json',
512
2016
  codec: {
513
2017
  mode: 'strict',
514
2018
  typeSymbol: '@qilin-agent/schedule/client#ScheduleDeliveryHistoryRequest',
515
2019
  create: _qilin_agent_schedule_schedule_history_parameter_0$schema,
516
- jsonSchema: {"type":"object","properties":{"limit":{"type":"number","description":"Required safe-integer page size from 1 through 100."},"before":{"type":"string","description":"Message identity of the oldest entry in the previous page; excluded from this page."},"id":{"type":"string","description":"Task to remove."},"sessionId":{"type":"string","description":"Original Session binding."}},"required":["limit","id","sessionId"],"additionalProperties":true},
2020
+ jsonSchema: {"type":"object","properties":{"id":{"type":"string","description":"Task whose saved deliveries are read."},"limit":{"type":"number","description":"Required safe-integer page size from 1 through 100."},"before":{"type":"string","description":"Message identity of the oldest entry in the previous page; excluded from this page."}},"required":["id","limit"],"additionalProperties":true},
517
2021
  },
518
2022
  strictCodec: {
519
2023
  mode: 'strict',
520
2024
  typeSymbol: '@qilin-agent/schedule/client#ScheduleDeliveryHistoryRequest',
521
2025
  create: _qilin_agent_schedule_schedule_history_parameter_0_strict$schema,
522
- jsonSchema: {"type":"object","properties":{"limit":{"type":"number","description":"Required safe-integer page size from 1 through 100."},"before":{"type":"string","description":"Message identity of the oldest entry in the previous page; excluded from this page."},"id":{"type":"string","description":"Task to remove."},"sessionId":{"type":"string","description":"Original Session binding."}},"required":["limit","id","sessionId"],"additionalProperties":false},
2026
+ jsonSchema: {"type":"object","properties":{"id":{"type":"string","description":"Task whose saved deliveries are read."},"limit":{"type":"number","description":"Required safe-integer page size from 1 through 100."},"before":{"type":"string","description":"Message identity of the oldest entry in the previous page; excluded from this page."}},"required":["id","limit"],"additionalProperties":false},
523
2027
  },
524
2028
  },
525
2029
  ],
@@ -530,72 +2034,105 @@ const $remote = createTypertRemoteInfo({
530
2034
  description: 'Newest-first deliveries in append order, or a task/cursor lookup failure.',
531
2035
  jsonSchemaError: 'typert tool schema: selected union branches overlap or have no required discriminator',
532
2036
  },
533
- sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":304,"column":9},
2037
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":485,"column":9},
534
2038
  },
535
2039
  'schedule/list': {
536
2040
  service: 'schedule',
537
- description: 'Read the selected Session\'s active tasks without resuming its Agent.',
2041
+ description: 'Remote form of the shared Host-wide list.',
2042
+ implementation: 'remoteList',
538
2043
  invocation: { kind: 'direct' },
539
2044
  parameters: [
540
2045
  {
541
2046
  name: 'request',
542
- description: 'Session whose task list is requested.',
2047
+ description: 'Optional activity filter, page size, and offset.',
543
2048
  source: 'json',
544
2049
  codec: {
545
2050
  mode: 'strict',
546
2051
  typeSymbol: '@qilin-agent/schedule/client#ScheduleListRequest',
547
2052
  create: _qilin_agent_schedule_schedule_list_parameter_0$schema,
548
- jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Original Session binding."}},"required":["sessionId"],"additionalProperties":true},
2053
+ jsonSchema: {"type":"object","properties":{"active":{"type":"boolean","description":"`true` lists only active tasks; `false` lists only paused and ended tasks; omission lists all tasks."},"limit":{"type":"number","description":"Page size from 1 through 500; the default is 100."},"offset":{"type":"number","description":"Number of sorted tasks to skip; the default is 0."}},"required":[],"additionalProperties":true},
549
2054
  },
550
2055
  strictCodec: {
551
2056
  mode: 'strict',
552
2057
  typeSymbol: '@qilin-agent/schedule/client#ScheduleListRequest',
553
2058
  create: _qilin_agent_schedule_schedule_list_parameter_0_strict$schema,
554
- jsonSchema: {"type":"object","properties":{"sessionId":{"type":"string","description":"Original Session binding."}},"required":["sessionId"],"additionalProperties":false},
2059
+ jsonSchema: {"type":"object","properties":{"active":{"type":"boolean","description":"`true` lists only active tasks; `false` lists only paused and ended tasks; omission lists all tasks."},"limit":{"type":"number","description":"Page size from 1 through 500; the default is 100."},"offset":{"type":"number","description":"Number of sorted tasks to skip; the default is 0."}},"required":[],"additionalProperties":false},
555
2060
  },
556
2061
  },
557
2062
  ],
558
2063
  result: {
559
2064
  mode: 'strict',
560
- typeSymbol: '@qilin-agent/schedule#schedule/list:result',
2065
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleListResult',
561
2066
  create: _qilin_agent_schedule_schedule_list_result$schema,
562
- description: 'Persisted reminders in storage order.',
563
- jsonSchema: {"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"after","description":"Rule discriminator for a delayed one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"afterSeconds":{"type":"number","description":"Positive safe-integer delay accepted at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."}},"required":["id","kind","title","prompt","afterSeconds","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"at","description":"Rule discriminator for an absolute one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."}},"required":["id","kind","title","prompt","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"every","description":"Rule discriminator for a fixed-rate recurring reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"everySeconds":{"type":"number","description":"Fixed safe-integer interval, never below one minute."},"scheduledAt":{"type":"string","description":"Next anchor-aligned occurrence while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","everySeconds","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"daily","description":"Rule discriminator for a daily wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","time","timeZone","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"weekly","description":"Rule discriminator for a weekly wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit canonical IANA zone; equivalent timing edits retain the stored spelling."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Unique ascending ISO weekdays, Monday 1 through Sunday 7."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","time","timeZone","weekdays","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"cron","description":"Rule discriminator for a five-field cron wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"expression":{"type":"string","description":"Canonical five-field cron expression: minute hour day-of-month month day-of-week."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","expression","timeZone","scheduledAt"],"additionalProperties":true}]}},
2067
+ description: 'The requested page and total matching task count.',
2068
+ jsonSchema: {"type":"object","properties":{"items":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"after","description":"Rule discriminator for a delayed one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"afterSeconds":{"type":"number","description":"Positive safe-integer delay accepted at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","afterSeconds","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"at","description":"Rule discriminator for an absolute one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"every","description":"Rule discriminator for a fixed-rate recurring reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"everySeconds":{"type":"number","description":"Fixed safe-integer interval, never below one minute."},"scheduledAt":{"type":"string","description":"Next anchor-aligned occurrence while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","everySeconds","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"daily","description":"Rule discriminator for a daily wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","time","timeZone","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"weekly","description":"Rule discriminator for a weekly wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit canonical IANA zone; equivalent timing edits retain the stored spelling."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Unique ascending ISO weekdays, Monday 1 through Sunday 7."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","time","timeZone","weekdays","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"cron","description":"Rule discriminator for a five-field cron wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"expression":{"type":"string","description":"Canonical five-field cron expression: minute hour day-of-month month day-of-week."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["id","kind","title","prompt","expression","timeZone","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"rrule"},"id":{"type":"string","description":"Host-generated canonical identity."},"title":{"type":"string","description":"Task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed instruction sent when an occurrence becomes due."},"rrule":{"type":"string","description":"One normalized DTSTART line and one RRULE line."},"scheduledAt":{"type":"string","description":"Next unaccepted occurrence while active, or the final accepted occurrence when ended."},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"session","description":"Every occurrence goes to one existing Session."},"sessionId":{"type":"string","description":"Session that receives each delivery."}},"required":["kind","sessionId"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new_once","description":"The first delivery creates one Session; later deliveries go to that Session."},"sessionId":{"type":"string","description":"Reserved at creation; the first delivery creates it and the target becomes `session`."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create the reserved Session."}},"required":["kind","sessionId","create"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"new","description":"Every delivery creates a fresh Session."},"create":{"type":"object","properties":{"cwd":{"type":"string","description":"Project directory of the created Session, which joins the Workspace registered there; omission uses the Host project directory."},"agentPreset":{"type":"string","description":"Agent preset of the created Session; omission uses the default preset."}},"required":[],"additionalProperties":true,"description":"Values used to create each Session."}},"required":["kind","create"],"additionalProperties":true}],"description":"Destination of the next delivery."},"involvedSessionIds":{"type":"array","items":{"type":"string"},"description":"Sessions told about later changes while their Agent is live: the creating and editing Agent Sessions and each existing or reserved target Session. Sessions created by a `new` target are excluded."},"status":{"type":"string","enum":["active","paused","ended"],"description":"Only `active` tasks have a timer obligation; `paused` and `ended` tasks stay visible."},"createdAt":{"type":"string","description":"Canonical UTC creation time."},"updatedAt":{"type":"string","description":"Canonical UTC time of the latest stored change; editors send it back as `expectedUpdatedAt`."},"executionActive":{"type":"boolean","const":true,"description":"The latest delivery is queued or running in its reused target Session; a `new` target, whose deliveries run beside one another, never sets it."},"deliveryFloorEndsAt":{"type":"string","description":"End of the minimum delivery interval, present while it remains in the future."},"lastDelivery":{"type":"object","properties":{"scheduledAt":{"type":"string","description":"Canonical UTC target of the delivered occurrence."},"deliveredAt":{"type":"string","description":"Canonical UTC time sampled after Session persistence acknowledged delivery."},"messageId":{"type":"string","description":"Identity of the delivered message, shared by tasks in one recurring batch."},"targetSessionId":{"type":"string","description":"Session that durably accepted the delivered message."}},"required":["scheduledAt","deliveredAt","messageId","targetSessionId"],"additionalProperties":true,"description":"Most recent durably acknowledged inbox delivery, when available."}},"required":["kind","id","title","prompt","rrule","scheduledAt","target","involvedSessionIds","status"],"additionalProperties":true}]},"description":"Tasks in this page."},"shown":{"type":"number","description":"Number of tasks in this page."},"total":{"type":"number","description":"Number of tasks that match the filter."},"limit":{"type":"number","description":"Applied page size."},"offset":{"type":"number","description":"Applied offset."}},"required":["items","shown","total","limit","offset"],"additionalProperties":true},
564
2069
  },
565
- sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":272,"column":9},
2070
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":435,"column":9},
566
2071
  },
567
- 'schedule/update': {
2072
+ 'schedule/run': {
568
2073
  service: 'schedule',
569
- description: 'Update the name, instruction, and timing of an active task within the original Session binding without activating the Session or changing saved deliveries. Each supplied field replaces its stored value; an omitted field keeps it. A name or instruction change alone does not reset the committed target. A Session a delegated child owns returns the non-mutating `subagent_session` result, so an edit cannot re-arm a task bound to a Session delivery can never reach, and the Web editor can explain the refusal through the ordinary result it already renders.',
2074
+ description: 'Deliver one task now without consuming or moving its scheduled occurrence; an archived destination Session rejects with `schedule/target-archived`.',
570
2075
  invocation: { kind: 'direct' },
571
2076
  parameters: [
572
2077
  {
573
2078
  name: 'request',
574
- description: 'Task binding, complete observed record, and any combination of timing, name, and instruction.',
2079
+ description: 'Task identity.',
575
2080
  source: 'json',
576
2081
  codec: {
577
2082
  mode: 'strict',
578
- typeSymbol: '@qilin-agent/schedule/client#ScheduleUpdateRequest',
579
- create: _qilin_agent_schedule_schedule_update_parameter_0$schema,
580
- jsonSchema: {"type":"object","properties":{"expected":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"after","description":"Rule discriminator for a delayed one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"afterSeconds":{"type":"number","description":"Positive safe-integer delay accepted at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."}},"required":["id","kind","title","prompt","afterSeconds","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"at","description":"Rule discriminator for an absolute one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."}},"required":["id","kind","title","prompt","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"every","description":"Rule discriminator for a fixed-rate recurring reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"everySeconds":{"type":"number","description":"Fixed safe-integer interval, never below one minute."},"scheduledAt":{"type":"string","description":"Next anchor-aligned occurrence while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","everySeconds","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"daily","description":"Rule discriminator for a daily wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","time","timeZone","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"weekly","description":"Rule discriminator for a weekly wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit canonical IANA zone; equivalent timing edits retain the stored spelling."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Unique ascending ISO weekdays, Monday 1 through Sunday 7."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","time","timeZone","weekdays","scheduledAt"],"additionalProperties":true},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"cron","description":"Rule discriminator for a five-field cron wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"expression":{"type":"string","description":"Canonical five-field cron expression: minute hour day-of-month month day-of-week."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","expression","timeZone","scheduledAt"],"additionalProperties":true}],"description":"Complete record observed when editing began, including the committed target."},"change":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"at"},"at":{"oneOf":[{"type":"string"},{"type":"object","properties":{"date":{"type":"string","description":"Four-digit ISO calendar date."},"time":{"type":"string","description":"Local wall-clock time with optional one-to-three digit milliseconds."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["date","time","time_zone"],"additionalProperties":true}]}},"required":["kind","at"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"every"},"every_seconds":{"type":"number"}},"required":["kind","every_seconds"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"daily"},"daily":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["time","time_zone"],"additionalProperties":true}},"required":["kind","daily"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"weekly":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions."}},"required":["time","time_zone","weekdays"],"additionalProperties":true}},"required":["kind","weekly"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"cron"},"cron":{"type":"object","properties":{"expression":{"type":"string","description":"Five-field Vixie cron expression: minute hour day-of-month month day-of-week."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["expression","time_zone"],"additionalProperties":true}},"required":["kind","cron"],"additionalProperties":true}],"description":"New timing; its kind may differ from the stored record's kind, and an omitted value keeps the committed target."},"id":{"type":"string","description":"Task to remove."},"sessionId":{"type":"string","description":"Original Session binding."},"title":{"type":"string","description":"Task name of at most 120 characters, non-empty after trimming; omitted keeps the stored name."},"prompt":{"type":"string","description":"Reminder instruction, non-empty after trimming; omitted keeps the stored instruction."}},"required":["expected","id","sessionId"],"additionalProperties":true},
2083
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleRunRequest',
2084
+ create: _qilin_agent_schedule_schedule_run_parameter_0$schema,
2085
+ jsonSchema: {"type":"object","properties":{"id":{"type":"string","description":"Task to run now."}},"required":["id"],"additionalProperties":true},
581
2086
  },
582
2087
  strictCodec: {
583
2088
  mode: 'strict',
584
- typeSymbol: '@qilin-agent/schedule/client#ScheduleUpdateRequest',
585
- create: _qilin_agent_schedule_schedule_update_parameter_0_strict$schema,
586
- jsonSchema: {"type":"object","properties":{"expected":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"after","description":"Rule discriminator for a delayed one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"afterSeconds":{"type":"number","description":"Positive safe-integer delay accepted at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."}},"required":["id","kind","title","prompt","afterSeconds","scheduledAt"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"at","description":"Rule discriminator for an absolute one-shot reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"scheduledAt":{"type":"string","description":"Four-digit-year RFC 3339 UTC target."}},"required":["id","kind","title","prompt","scheduledAt"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"every","description":"Rule discriminator for a fixed-rate recurring reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"everySeconds":{"type":"number","description":"Fixed safe-integer interval, never below one minute."},"scheduledAt":{"type":"string","description":"Next anchor-aligned occurrence while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","everySeconds","scheduledAt"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"daily","description":"Rule discriminator for a daily wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","time","timeZone","scheduledAt"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"weekly","description":"Rule discriminator for a weekly wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"time":{"type":"string","description":"Local time normalized to HH:mm:ss.SSS."},"timeZone":{"type":"string","description":"Explicit canonical IANA zone; equivalent timing edits retain the stored spelling."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Unique ascending ISO weekdays, Monday 1 through Sunday 7."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","time","timeZone","weekdays","scheduledAt"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","description":"Globally unique task identity."},"kind":{"type":"string","const":"cron","description":"Rule discriminator for a five-field cron wall-clock reminder."},"title":{"type":"string","description":"Required stored task name; already trimmed, non-empty, and at most 120 characters."},"prompt":{"type":"string","description":"Trimmed reminder content supplied at creation."},"expression":{"type":"string","description":"Canonical five-field cron expression: minute hour day-of-month month day-of-week."},"timeZone":{"type":"string","description":"Explicit IANA zone; equivalent timing edits retain the stored spelling."},"scheduledAt":{"type":"string","description":"Committed next UTC instant while active, or final occurrence when inactive."}},"required":["id","kind","title","prompt","expression","timeZone","scheduledAt"],"additionalProperties":false}],"description":"Complete record observed when editing began, including the committed target."},"change":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"at"},"at":{"oneOf":[{"type":"string"},{"type":"object","properties":{"date":{"type":"string","description":"Four-digit ISO calendar date."},"time":{"type":"string","description":"Local wall-clock time with optional one-to-three digit milliseconds."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["date","time","time_zone"],"additionalProperties":false}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"every"},"every_seconds":{"type":"number"}},"required":["kind","every_seconds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"daily"},"daily":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["time","time_zone"],"additionalProperties":false}},"required":["kind","daily"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"weekly":{"type":"object","properties":{"time":{"type":"string","description":"Local HH:mm:ss time with optional one-to-three fractional digits."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."},"weekdays":{"type":"array","items":{"type":"number"},"description":"Non-empty ISO weekday set, Monday 1 through Sunday 7, without repetitions."}},"required":["time","time_zone","weekdays"],"additionalProperties":false}},"required":["kind","weekly"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"cron"},"cron":{"type":"object","properties":{"expression":{"type":"string","description":"Five-field Vixie cron expression: minute hour day-of-month month day-of-week."},"time_zone":{"type":"string","description":"Explicit UTC or IANA Area/Location zone."}},"required":["expression","time_zone"],"additionalProperties":false}},"required":["kind","cron"],"additionalProperties":false}],"description":"New timing; its kind may differ from the stored record's kind, and an omitted value keeps the committed target."},"id":{"type":"string","description":"Task to remove."},"sessionId":{"type":"string","description":"Original Session binding."},"title":{"type":"string","description":"Task name of at most 120 characters, non-empty after trimming; omitted keeps the stored name."},"prompt":{"type":"string","description":"Reminder instruction, non-empty after trimming; omitted keeps the stored instruction."}},"required":["expected","id","sessionId"],"additionalProperties":false},
2089
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleRunRequest',
2090
+ create: _qilin_agent_schedule_schedule_run_parameter_0_strict$schema,
2091
+ jsonSchema: {"type":"object","properties":{"id":{"type":"string","description":"Task to run now."}},"required":["id"],"additionalProperties":false},
587
2092
  },
588
2093
  },
589
2094
  ],
590
2095
  cancellation: { parameter: 'signal' },
591
2096
  result: {
592
2097
  mode: 'strict',
593
- typeSymbol: '@qilin-agent/schedule/client#ScheduleUpdateResult',
594
- create: _qilin_agent_schedule_schedule_update_result$schema,
595
- description: 'The committed record, unchanged record for a no-op, or a non-mutating input/lookup/conflict/refusal result. Storage and lifecycle failures reject; cancellation after a write starts does not roll it back.',
2098
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleRunResult',
2099
+ create: _qilin_agent_schedule_schedule_run_result$schema,
2100
+ description: 'Task state after Session persistence acknowledged the delivery, `schedule_execution_pending` while another execution of the task is queued, running, or inside its delivery floor, or a non-mutating miss.',
2101
+ jsonSchemaError: 'typert tool schema: selected union branches overlap or have no required discriminator',
2102
+ },
2103
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":502,"column":9},
2104
+ },
2105
+ 'schedule/view': {
2106
+ service: 'schedule',
2107
+ description: 'Read one task without activating its target Sessions.',
2108
+ invocation: { kind: 'direct' },
2109
+ parameters: [
2110
+ {
2111
+ name: 'request',
2112
+ description: 'Task identity.',
2113
+ source: 'json',
2114
+ codec: {
2115
+ mode: 'strict',
2116
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleViewRequest',
2117
+ create: _qilin_agent_schedule_schedule_view_parameter_0$schema,
2118
+ jsonSchema: {"type":"object","properties":{"id":{"type":"string","description":"Task to read."}},"required":["id"],"additionalProperties":true},
2119
+ },
2120
+ strictCodec: {
2121
+ mode: 'strict',
2122
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleViewRequest',
2123
+ create: _qilin_agent_schedule_schedule_view_parameter_0_strict$schema,
2124
+ jsonSchema: {"type":"object","properties":{"id":{"type":"string","description":"Task to read."}},"required":["id"],"additionalProperties":false},
2125
+ },
2126
+ },
2127
+ ],
2128
+ result: {
2129
+ mode: 'strict',
2130
+ typeSymbol: '@qilin-agent/schedule/client#ScheduleViewResult',
2131
+ create: _qilin_agent_schedule_schedule_view_result$schema,
2132
+ description: 'The task, or a non-mutating miss.',
596
2133
  jsonSchemaError: 'typert tool schema: selected union branches overlap or have no required discriminator',
597
2134
  },
598
- sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":357,"column":9},
2135
+ sourceLocation: {"file":"packages/schedule/schedule/src/index.ts","line":458,"column":9},
599
2136
  },
600
2137
  },
601
2138
  }, z)
@@ -609,10 +2146,10 @@ export const TYPERT = {
609
2146
  model: {
610
2147
  "services": [
611
2148
  {
612
- "description": "Shared management service; reads, deletion, and timing edits never activate a Session. `sessionPersistence` is a load-order requirement rather than a directly called service: a delivery commits only when `ctx.sessions.flush()` reports that a `session/flush` listener participated, and the persistence backend providing this service is the plugin that registers that listener.",
613
- "summary": "Shared management service; reads, deletion, and timing edits never activate a Session.",
2149
+ "description": "Shared management service; reads and management writes never activate a Session, and only delivery creates or resumes one. `sessionPersistence` supplies header-only target validation and the `session/flush` listener that acknowledges durable inbox delivery through `ctx.sessions.flush()`.",
2150
+ "summary": "Shared management service; reads and management writes never activate a Session, and only delivery creates or resumes one.",
614
2151
  "tags": [],
615
- "jsDoc": "/**\n * Shared management service; reads, deletion, and timing edits never activate a Session.\n *\n * `sessionPersistence` is a load-order requirement rather than a directly called\n * service: a delivery commits only when `ctx.sessions.flush()` reports that a\n * `session/flush` listener participated, and the persistence backend providing this\n * service is the plugin that registers that listener.\n */",
2152
+ "jsDoc": "/**\n * Shared management service; reads and management writes never activate a Session, and only delivery creates or\n * resumes one.\n *\n * `sessionPersistence` supplies header-only target validation and the `session/flush`\n * listener that acknowledges durable inbox delivery through `ctx.sessions.flush()`.\n */",
616
2153
  "key": "schedule",
617
2154
  "exportName": "ScheduleService",
618
2155
  "members": [
@@ -621,47 +2158,96 @@ export const TYPERT = {
621
2158
  "name": "[Service.init]",
622
2159
  "signature": "async [Service.init](): Promise<void>"
623
2160
  },
2161
+ {
2162
+ "kind": "method",
2163
+ "name": "deliveryLimits",
2164
+ "signature": "@Remote('deliveryLimits') deliveryLimits(): { readonly newSessionIntervalSeconds: number }",
2165
+ "summary": "Read effective delivery limits without loading or activating a task.",
2166
+ "jsDoc": "/** Read effective delivery limits without loading or activating a task.\n * @returns The configured minimum spacing between deliveries that each create a Session, in seconds.\n */"
2167
+ },
2168
+ {
2169
+ "kind": "method",
2170
+ "name": "remoteCreate",
2171
+ "signature": "@Remote('create') async remoteCreate(request: ScheduleCreateRequest, signal?: AbortSignal): Promise<ScheduleCatalogEntry>",
2172
+ "summary": "Create one task with a Host-generated identity for a human Remote caller.",
2173
+ "jsDoc": "/**\n * Create one task with a Host-generated identity for a human Remote caller.\n * @param request - Title, prompt, recurrence, and delivery destination.\n * @param signal - Cancellation checked before the durable write begins, including after FIFO waits.\n * @returns The stored task. Cancellation does not roll back an in-flight write.\n */"
2174
+ },
624
2175
  {
625
2176
  "kind": "method",
626
2177
  "name": "create",
627
- "signature": "async create(sessionId: SessionId, request: ScheduleCreateRequest, signal?: AbortSignal): Promise<ScheduleRecord>",
628
- "summary": "Create a reminder bound to the caller-selected Session without activating it.",
629
- "jsDoc": "/**\n * Create a reminder bound to the caller-selected Session without activating it.\n *\n * The request must supply a title; a missing, blank-after-trim, or over-long\n * title rejects with `invalid_prompt` instead of deriving one from the prompt.\n * A Session a delegated child owns rejects with `subagent_session`, because delivery\n * can never reach it: the child is one whose delegation depth is above zero.\n * The record is built from the clock reading taken before the request joins the\n * serialized queue, so a create that waits behind a longer operation keeps its\n * request-time anchor and may already be due when the queue reaches it.\n * @param sessionId - Original Session receiving the reminder.\n * @param request - Validated tool selector, required title, and reminder content.\n * @param signal - Optional cancellation checked before persistence begins, including after FIFO waits.\n * @returns The durably stored schedule. Cancellation does not roll back an in-flight write.\n */"
2178
+ "signature": "async create( request: ScheduleCreateRequest, actorSessionId?: SessionId, signal?: AbortSignal, ): Promise<ScheduleCatalogEntry>",
2179
+ "summary": "Create one task and record the acting Agent's Session as involved; the Remote form omits that Session.",
2180
+ "jsDoc": "/**\n * Create one task and record the acting Agent's Session as involved; the Remote form omits that Session.\n *\n * The record is built from the clock reading taken before the request joins the serialized queue. A `session`\n * target must exist and must not belong to a delegated child; a `new_once` target reserves its Session identity.\n * @param request - Title, prompt, recurrence, and delivery destination.\n * @param actorSessionId - Session of the acting Agent, or undefined for a human caller.\n * @param signal - Cancellation checked before the durable write begins, including after FIFO waits.\n * @returns The stored task. Cancellation does not roll back an in-flight write.\n */"
630
2181
  },
631
2182
  {
632
2183
  "kind": "method",
633
2184
  "name": "list",
634
- "signature": "@Remote('list') async list(request: ScheduleListRequest): Promise<ScheduleRecord[]>",
635
- "summary": "Read the selected Session's active tasks without resuming its Agent.",
636
- "jsDoc": "/**\n * Read the selected Session's active tasks without resuming its Agent.\n * @param request - Session whose task list is requested.\n * @returns Persisted reminders in storage order.\n */"
2185
+ "signature": "async list(request: ScheduleListRequest = {}): Promise<ScheduleListResult>",
2186
+ "summary": "Read one page of Host tasks without activating target Sessions.",
2187
+ "jsDoc": "/**\n * Read one page of Host tasks without activating target Sessions.\n * @param request - Optional activity filter, page size, and offset.\n * @returns The requested page and total matching task count.\n */"
2188
+ },
2189
+ {
2190
+ "kind": "method",
2191
+ "name": "remoteList",
2192
+ "signature": "@Remote('list') async remoteList(request: ScheduleListRequest): Promise<ScheduleListResult>",
2193
+ "summary": "Remote form of the shared Host-wide list.",
2194
+ "jsDoc": "/**\n * Remote form of the shared Host-wide list.\n * @param request - Optional activity filter, page size, and offset.\n * @returns The requested page and total matching task count.\n */"
637
2195
  },
638
2196
  {
639
2197
  "kind": "method",
640
2198
  "name": "catalog",
641
2199
  "signature": "@Remote('catalog') async catalog(): Promise<ScheduleCatalogEntry[]>",
642
- "summary": "Read all active and inactive Host reminders with their original Session bindings.",
643
- "jsDoc": "/**\n * Read all active and inactive Host reminders with their original Session bindings.\n * A deleted reminder has no row, so it is absent here.\n * Does not activate Sessions or read Session history.\n * @returns Reminders ordered by scheduledAt ascending, then lexicographically by id.\n */"
2200
+ "summary": "Read every Host task without a page bound or Session activation.",
2201
+ "jsDoc": "/**\n * Read every Host task without a page bound or Session activation.\n * @returns All tasks, active first, with target and execution metadata.\n */"
2202
+ },
2203
+ {
2204
+ "kind": "method",
2205
+ "name": "view",
2206
+ "signature": "@Remote('view') async view(request: ScheduleViewRequest): Promise<ScheduleViewResult>",
2207
+ "summary": "Read one task without activating its target Sessions.",
2208
+ "jsDoc": "/**\n * Read one task without activating its target Sessions.\n * @param request - Task identity.\n * @returns The task, or a non-mutating miss.\n */"
644
2209
  },
645
2210
  {
646
2211
  "kind": "method",
647
2212
  "name": "history",
648
- "signature": "@Remote('history') async history(request: ScheduleDeliveryHistoryRequest): Promise<ScheduleDeliveryHistoryResult>",
649
- "summary": "Read saved inbox deliveries without activating or reading the original Session.",
650
- "jsDoc": "/**\n * Read saved inbox deliveries without activating or reading the original Session.\n * The task's own row supplies its binding, so its records stay readable through this lookup.\n * @param request - Session binding, task identity, explicit limit, and optional exclusive message cursor.\n * @returns Newest-first deliveries in append order, or a task/cursor lookup failure.\n * @throws ScheduleInputError when limit is not a safe integer from 1 through 100.\n */"
2213
+ "signature": "async history(request: ScheduleDeliveryHistoryRequest): Promise<ScheduleDeliveryHistoryResult>",
2214
+ "summary": "Read one page of saved deliveries without activating or reading a target Session.",
2215
+ "jsDoc": "/**\n * Read one page of saved deliveries without activating or reading a target Session.\n * @param request - Task identity, explicit page size, and optional exclusive cursor.\n * @returns Newest-first saved deliveries, or a task/cursor lookup failure.\n */"
2216
+ },
2217
+ {
2218
+ "kind": "method",
2219
+ "name": "remoteHistory",
2220
+ "signature": "@Remote('history') async remoteHistory(request: ScheduleDeliveryHistoryRequest): Promise<ScheduleDeliveryHistoryResult>",
2221
+ "summary": "Remote form of the target-based {@link ScheduleService.history}; an invalid limit rejects with `schedule/input-invalid`.",
2222
+ "jsDoc": "/**\n * Remote form of the target-based {@link ScheduleService.history}; an invalid limit rejects with\n * `schedule/input-invalid`.\n * @param request - Task identity, explicit limit, and optional exclusive message cursor.\n * @returns Newest-first deliveries in append order, or a task/cursor lookup failure.\n */"
2223
+ },
2224
+ {
2225
+ "kind": "method",
2226
+ "name": "run",
2227
+ "signature": "@Remote('run') async run(request: ScheduleRunRequest, signal?: AbortSignal): Promise<ScheduleRunResult>",
2228
+ "summary": "Deliver one task now without consuming or moving its scheduled occurrence; an archived destination Session rejects with `schedule/target-archived`.",
2229
+ "jsDoc": "/**\n * Deliver one task now without consuming or moving its scheduled occurrence; an archived destination Session rejects\n * with `schedule/target-archived`.\n * @param request - Task identity.\n * @param signal - Cancellation checked after entering the delivery transaction and before delivery.\n * @returns Task state after Session persistence acknowledged the delivery, `schedule_execution_pending` while\n * another execution of the task is queued, running, or inside its delivery floor, or a non-mutating miss.\n */"
2230
+ },
2231
+ {
2232
+ "kind": "method",
2233
+ "name": "deleteInactive",
2234
+ "signature": "@Remote('deleteInactive') async deleteInactive(): Promise<ScheduleDeleteInactiveResult>",
2235
+ "summary": "Delete every ended Host task, leaving active tasks armed.",
2236
+ "jsDoc": "/**\n * Delete every ended Host task, leaving active tasks armed.\n *\n * Ended tasks never schedule another delivery, so the removal changes no pending\n * target and no timer is recomputed. Rows are enumerated and removed in one FIFO\n * slot, so a delivery ordered behind this call ends its task after the\n * enumeration rather than during it. Each row is one durable write: a failure\n * rejects with the rows removed so far gone and the remaining rows still\n * stored.\n * A successful nonempty removal emits `schedule/changed` without Agent notices.\n * A rejected removal announces `schedule/changed` because it does not establish\n * which rows landed, and clients then re-read the catalog.\n * @returns Count of removed rows; zero when the Host held no ended task.\n */"
651
2237
  },
652
2238
  {
653
2239
  "kind": "method",
654
- "name": "delete",
655
- "signature": "@Remote('delete') async delete(request: ScheduleDeleteRequest, signal?: AbortSignal): Promise<ScheduleDeleteResult>",
656
- "summary": "Delete one task belonging to the selected Session, leaving queued messages intact.",
657
- "jsDoc": "/**\n * Delete one task belonging to the selected Session, leaving queued messages intact.\n *\n * The row is removed: the task no longer schedules, leaves `list` and `catalog`, and its\n * saved delivery records go with it. A task bound to a Session a delegated child owns\n * stays deletable even though creation and timing edits refuse that binding, so a task\n * stored before that rule existed remains removable.\n * @param request - Session and exact task identity.\n * @param signal - Optional cancellation checked before persistence begins, including after FIFO waits.\n * @returns Whether that Session owned a deleted task. Cancellation does not roll back an in-flight write.\n */"
2240
+ "name": "remoteEdit",
2241
+ "signature": "@Remote('edit') async remoteEdit(request: ScheduleEditRequest, signal?: AbortSignal): Promise<ScheduleEditResult>",
2242
+ "summary": "Update or delete one task for a human Remote caller; an invalid patch rejects with `schedule/input-invalid`.",
2243
+ "jsDoc": "/**\n * Update or delete one task for a human Remote caller; an invalid patch rejects with `schedule/input-invalid`.\n * @param request - Task identity and one update or delete operation.\n * @param signal - Cancellation checked before the durable write begins, including after FIFO waits.\n * @returns The updated task, the deletion outcome, or a non-mutating miss or conflict.\n */"
658
2244
  },
659
2245
  {
660
2246
  "kind": "method",
661
- "name": "update",
662
- "signature": "@Remote('update') async update(request: ScheduleUpdateRequest, signal?: AbortSignal): Promise<ScheduleUpdateResult>",
663
- "summary": "Update the name, instruction, and timing of an active task within the original Session binding without activating the Session or changing saved deliveries.",
664
- "jsDoc": "/**\n * Update the name, instruction, and timing of an active task within the original Session\n * binding without activating the Session or changing saved deliveries.\n *\n * Each supplied field replaces its stored value; an omitted field keeps it. A name or\n * instruction change alone does not reset the committed target. A Session a delegated\n * child owns returns the non-mutating `subagent_session` result, so an edit cannot\n * re-arm a task bound to a Session delivery can never reach, and the Web editor can\n * explain the refusal through the ordinary result it already renders.\n * @param request - Task binding, complete observed record, and any combination of timing, name, and instruction.\n * @param signal - Cancellation checked after domain readiness and FIFO waits, before persistence begins.\n * @returns The committed record, unchanged record for a no-op, or a non-mutating input/lookup/conflict/refusal result.\n * Storage and lifecycle failures reject; cancellation after a write starts does not roll it back.\n */"
2247
+ "name": "edit",
2248
+ "signature": "async edit( request: ScheduleEditRequest, actorSessionId?: SessionId, signal?: AbortSignal, ): Promise<ScheduleEditResult>",
2249
+ "summary": "Update or delete one task and record the acting Agent's Session as involved; the Remote form omits that Session.",
2250
+ "jsDoc": "/**\n * Update or delete one task and record the acting Agent's Session as involved; the Remote form omits that Session.\n *\n * An update applies every patch field in one write and recomputes the next occurrence when the rule changes or\n * the task resumes. A supplied `expectedUpdatedAt` that differs from the stored value returns `schedule_conflict`.\n * @param request - Task identity and one update or delete operation.\n * @param actorSessionId - Session of the acting Agent, or undefined for a human caller.\n * @param signal - Cancellation checked before the durable write begins, including after FIFO waits.\n * @returns The updated task, the deletion outcome, or a non-mutating miss or conflict.\n */"
665
2251
  }
666
2252
  ],
667
2253
  "types": [
@@ -705,30 +2291,6 @@ export const TYPERT = {
705
2291
  "name": "EveryScheduleRecord",
706
2292
  "declaration": "export interface EveryScheduleRecord {\n readonly id: ScheduleId;\n readonly kind: 'every';\n readonly title: string;\n readonly prompt: string;\n readonly everySeconds: number;\n readonly scheduledAt: string;\n}"
707
2293
  },
708
- {
709
- "name": "FrequencyTooHighError",
710
- "declaration": "export interface FrequencyTooHighError {\n readonly code: 'frequency_too_high';\n readonly message: string;\n}"
711
- },
712
- {
713
- "name": "InternalScheduleError",
714
- "declaration": "export interface InternalScheduleError {\n readonly code: 'internal_error';\n readonly message: string;\n}"
715
- },
716
- {
717
- "name": "InvalidPromptError",
718
- "declaration": "export interface InvalidPromptError {\n readonly code: 'invalid_prompt';\n readonly message: string;\n}"
719
- },
720
- {
721
- "name": "InvalidRuleError",
722
- "declaration": "export interface InvalidRuleError {\n readonly code: 'invalid_rule';\n readonly message: string;\n}"
723
- },
724
- {
725
- "name": "InvalidSelectorError",
726
- "declaration": "export interface InvalidSelectorError {\n readonly code: 'invalid_selector';\n readonly message: string;\n}"
727
- },
728
- {
729
- "name": "InvalidTimeZoneError",
730
- "declaration": "export interface InvalidTimeZoneError {\n readonly code: 'invalid_time_zone';\n readonly message: string;\n}"
731
- },
732
2294
  {
733
2295
  "name": "LocalAtInput",
734
2296
  "declaration": "export interface LocalAtInput {\n readonly date: string;\n readonly time: string;\n readonly time_zone: string;\n}"
@@ -737,97 +2299,133 @@ export const TYPERT = {
737
2299
  "name": "MessageId",
738
2300
  "declaration": "export type MessageId = Branded<'MessageId'>;"
739
2301
  },
740
- {
741
- "name": "NotFutureError",
742
- "declaration": "export interface NotFutureError {\n readonly code: 'not_future';\n readonly message: string;\n}"
743
- },
744
2302
  {
745
2303
  "name": "OneShotScheduleRecord",
746
2304
  "declaration": "export type OneShotScheduleRecord = AfterScheduleRecord | AtScheduleRecord;"
747
2305
  },
748
2306
  {
749
2307
  "name": "RecurringScheduleRecord",
750
- "declaration": "export type RecurringScheduleRecord = EveryScheduleRecord | DailyScheduleRecord | WeeklyScheduleRecord | CronScheduleRecord;"
2308
+ "declaration": "export type RecurringScheduleRecord = EveryScheduleRecord | DailyScheduleRecord | WeeklyScheduleRecord | CronScheduleRecord | RRuleScheduleRecord;"
2309
+ },
2310
+ {
2311
+ "name": "RRuleScheduleRecord",
2312
+ "declaration": "export interface RRuleScheduleRecord {\n readonly kind: 'rrule';\n readonly id: ScheduleId;\n readonly title: string;\n readonly prompt: string;\n readonly rrule: string;\n readonly scheduledAt: string;\n}"
751
2313
  },
752
2314
  {
753
2315
  "name": "ScheduleCatalogEntry",
754
- "declaration": "export type ScheduleCatalogEntry = ScheduleRecord & { readonly sessionId: SessionId; readonly status: 'active' | 'inactive'; readonly lastDelivery?: ScheduleDeliveryReceipt; };"
2316
+ "declaration": "export type ScheduleCatalogEntry = ScheduleRecord & { readonly target: ScheduleTarget; readonly involvedSessionIds: SessionId[]; readonly status: 'active' | 'paused' | 'ended'; readonly createdAt?: string; readonly updatedAt?: string; readonly executionActive?: true; readonly deliveryFloorEndsAt?: string; readonly lastDelivery?: ScheduleDeliveryReceipt; };"
2317
+ },
2318
+ {
2319
+ "name": "ScheduleConflictResult",
2320
+ "declaration": "export interface ScheduleConflictResult {\n readonly id: ScheduleId;\n readonly code: 'schedule_conflict';\n}"
755
2321
  },
756
2322
  {
757
2323
  "name": "ScheduleCreateRequest",
758
- "declaration": "export interface ScheduleCreateRequest {\n prompt: string;\n title: string;\n after_seconds?: number;\n at?: AtInput;\n every_seconds?: number;\n daily?: DailyInput;\n weekly?: WeeklyInput;\n cron?: CronInput;\n}"
2324
+ "declaration": "export interface ScheduleCreateRequest {\n readonly title: string;\n readonly prompt: string;\n readonly timing: ScheduleTiming;\n readonly target?: ScheduleTargetRequest;\n}"
759
2325
  },
760
2326
  {
761
- "name": "ScheduleDeleteRequest",
762
- "declaration": "export interface ScheduleDeleteRequest extends ScheduleListRequest {\n id: ScheduleId;\n}"
2327
+ "name": "ScheduleDeleteInactiveResult",
2328
+ "declaration": "export interface ScheduleDeleteInactiveResult {\n readonly deleted: number;\n}"
763
2329
  },
764
2330
  {
765
2331
  "name": "ScheduleDeleteResult",
766
2332
  "declaration": "export type ScheduleDeleteResult = { readonly id: ScheduleId; readonly deleted: true; } | { readonly id: ScheduleId; readonly deleted: false; readonly code: 'schedule_not_found'; };"
767
2333
  },
2334
+ {
2335
+ "name": "ScheduleDeliveryHistoryMiss",
2336
+ "declaration": "export interface ScheduleDeliveryHistoryMiss {\n readonly id: ScheduleId;\n readonly code: 'schedule_not_found' | 'delivery_cursor_not_found';\n}"
2337
+ },
2338
+ {
2339
+ "name": "ScheduleDeliveryHistoryPage",
2340
+ "declaration": "export interface ScheduleDeliveryHistoryPage {\n readonly id: ScheduleId;\n readonly records: ScheduleDeliveryRecord[];\n readonly earlierRecordsUnavailable: boolean;\n readonly earlierRecordsPruned: boolean;\n readonly retention: DeliveryRetentionBounds;\n readonly nextBefore?: MessageId;\n}"
2341
+ },
768
2342
  {
769
2343
  "name": "ScheduleDeliveryHistoryRequest",
770
- "declaration": "export interface ScheduleDeliveryHistoryRequest extends ScheduleDeleteRequest {\n limit: number;\n before?: MessageId;\n}"
2344
+ "declaration": "export interface ScheduleDeliveryHistoryRequest {\n readonly id: ScheduleId;\n readonly limit: number;\n readonly before?: MessageId;\n}"
771
2345
  },
772
2346
  {
773
2347
  "name": "ScheduleDeliveryHistoryResult",
774
- "declaration": "export type ScheduleDeliveryHistoryResult = { readonly id: ScheduleId; readonly records: ScheduleDeliveryRecord[]; readonly earlierRecordsUnavailable: boolean; readonly earlierRecordsPruned: boolean; readonly retention: DeliveryRetentionBounds; readonly nextBefore?: MessageId; } | { readonly id: ScheduleId; readonly code: 'schedule_not_found' | 'delivery_cursor_not_found'; };"
2348
+ "declaration": "export type ScheduleDeliveryHistoryResult = ScheduleDeliveryHistoryPage | ScheduleDeliveryHistoryMiss;"
775
2349
  },
776
2350
  {
777
2351
  "name": "ScheduleDeliveryReceipt",
778
- "declaration": "export interface ScheduleDeliveryReceipt {\n readonly scheduledAt: string;\n readonly deliveredAt: string;\n readonly messageId: MessageId;\n}"
2352
+ "declaration": "export interface ScheduleDeliveryReceipt {\n readonly scheduledAt: string;\n readonly deliveredAt: string;\n readonly messageId: MessageId;\n readonly targetSessionId: SessionId;\n}"
779
2353
  },
780
2354
  {
781
2355
  "name": "ScheduleDeliveryRecord",
782
2356
  "declaration": "export interface ScheduleDeliveryRecord extends ScheduleDeliveryReceipt {\n readonly prompt?: string;\n}"
783
2357
  },
2358
+ {
2359
+ "name": "ScheduleEditRequest",
2360
+ "declaration": "export type ScheduleEditRequest = { readonly id: ScheduleId; readonly action: 'update'; readonly patch: SchedulePatch; readonly expectedUpdatedAt?: string | null; } | { readonly id: ScheduleId; readonly action: 'delete'; readonly expectedUpdatedAt?: string | null; };"
2361
+ },
2362
+ {
2363
+ "name": "ScheduleEditResult",
2364
+ "declaration": "export type ScheduleEditResult = ScheduleCatalogEntry | Extract<ScheduleDeleteResult, { readonly deleted: true; }> | ScheduleNotFoundResult | ScheduleConflictResult;"
2365
+ },
2366
+ {
2367
+ "name": "ScheduleExecutionPendingResult",
2368
+ "declaration": "export interface ScheduleExecutionPendingResult {\n readonly id: ScheduleId;\n readonly code: 'schedule_execution_pending';\n}"
2369
+ },
784
2370
  {
785
2371
  "name": "ScheduleId",
786
2372
  "declaration": "export type ScheduleId = Branded<'ScheduleId'>;"
787
2373
  },
788
2374
  {
789
2375
  "name": "ScheduleListRequest",
790
- "declaration": "export interface ScheduleListRequest {\n sessionId: SessionId;\n}"
2376
+ "declaration": "export interface ScheduleListRequest {\n readonly active?: boolean;\n readonly limit?: number;\n readonly offset?: number;\n}"
2377
+ },
2378
+ {
2379
+ "name": "ScheduleListResult",
2380
+ "declaration": "export interface ScheduleListResult {\n readonly items: ScheduleCatalogEntry[];\n readonly shown: number;\n readonly total: number;\n readonly limit: number;\n readonly offset: number;\n}"
2381
+ },
2382
+ {
2383
+ "name": "ScheduleNotFoundResult",
2384
+ "declaration": "export interface ScheduleNotFoundResult {\n readonly id: ScheduleId;\n readonly code: 'schedule_not_found';\n}"
2385
+ },
2386
+ {
2387
+ "name": "SchedulePatch",
2388
+ "declaration": "export interface SchedulePatch {\n readonly title?: string;\n readonly prompt?: string;\n readonly timing?: ScheduleTiming;\n readonly target?: ScheduleTargetRequest;\n readonly active?: boolean;\n}"
791
2389
  },
792
2390
  {
793
2391
  "name": "ScheduleRecord",
794
2392
  "declaration": "export type ScheduleRecord = OneShotScheduleRecord | RecurringScheduleRecord;"
795
2393
  },
796
2394
  {
797
- "name": "ScheduleTimingChange",
798
- "declaration": "export type ScheduleTimingChange = { readonly kind: 'at'; readonly at: AtInput; } | { readonly kind: 'every'; readonly every_seconds: number; } | { readonly kind: 'daily'; readonly daily: DailyInput; } | { readonly kind: 'weekly'; readonly weekly: WeeklyInput; } | { readonly kind: 'cron'; readonly cron: CronInput; };"
2395
+ "name": "ScheduleRunRequest",
2396
+ "declaration": "export interface ScheduleRunRequest {\n readonly id: ScheduleId;\n}"
799
2397
  },
800
2398
  {
801
- "name": "ScheduleToolError",
802
- "declaration": "export type ScheduleToolError = InvalidPromptError | InvalidSelectorError | InvalidRuleError | InvalidTimeZoneError | NotFutureError | TimeOutOfRangeError | FrequencyTooHighError | SubagentSessionError | InternalScheduleError;"
2399
+ "name": "ScheduleRunResult",
2400
+ "declaration": "export type ScheduleRunResult = ScheduleCatalogEntry | ScheduleNotFoundResult | ScheduleExecutionPendingResult;"
803
2401
  },
804
2402
  {
805
- "name": "ScheduleUpdateContent",
806
- "declaration": "export interface ScheduleUpdateContent {\n readonly title?: string;\n readonly prompt?: string;\n}"
2403
+ "name": "ScheduleSessionCreateSpec",
2404
+ "declaration": "export interface ScheduleSessionCreateSpec {\n readonly cwd?: string;\n readonly agentPreset?: string;\n}"
807
2405
  },
808
2406
  {
809
- "name": "ScheduleUpdateMiss",
810
- "declaration": "export interface ScheduleUpdateMiss {\n readonly id: ScheduleId;\n readonly updated: false;\n readonly code: 'schedule_not_found' | 'schedule_ended' | 'schedule_conflict';\n}"
2407
+ "name": "ScheduleTarget",
2408
+ "declaration": "export type ScheduleTarget = { readonly kind: 'session'; readonly sessionId: SessionId; } | { readonly kind: 'new_once'; readonly sessionId: SessionId; readonly create: ScheduleSessionCreateSpec; } | { readonly kind: 'new'; readonly create: ScheduleSessionCreateSpec; };"
811
2409
  },
812
2410
  {
813
- "name": "ScheduleUpdateRequest",
814
- "declaration": "export interface ScheduleUpdateRequest extends ScheduleDeleteRequest, ScheduleUpdateContent {\n readonly expected: ScheduleRecord;\n readonly change?: ScheduleTimingChange;\n}"
2411
+ "name": "ScheduleTargetRequest",
2412
+ "declaration": "export type ScheduleTargetRequest = { readonly kind: 'session'; readonly sessionId: SessionId; } | { readonly kind: 'new_once'; readonly create?: ScheduleSessionCreateSpec; } | { readonly kind: 'new'; readonly create?: ScheduleSessionCreateSpec; };"
815
2413
  },
816
2414
  {
817
- "name": "ScheduleUpdateResult",
818
- "declaration": "export type ScheduleUpdateResult = { readonly id: ScheduleId; readonly updated: boolean; readonly record: ScheduleRecord; } | ScheduleUpdateMiss | ScheduleToolError;"
2415
+ "name": "ScheduleTiming",
2416
+ "declaration": "export type ScheduleTiming = { readonly kind: 'after'; readonly after_seconds: number; } | { readonly kind: 'at'; readonly at: AtInput; } | { readonly kind: 'every'; readonly every_seconds: number; } | { readonly kind: 'daily'; readonly daily: DailyInput; } | { readonly kind: 'weekly'; readonly weekly: WeeklyInput; } | { readonly kind: 'cron'; readonly cron: CronInput; } | { readonly kind: 'rrule'; readonly rrule: string; };"
819
2417
  },
820
2418
  {
821
- "name": "SessionId",
822
- "declaration": "export type SessionId = Branded<'SessionId'>;"
2419
+ "name": "ScheduleViewRequest",
2420
+ "declaration": "export interface ScheduleViewRequest {\n readonly id: ScheduleId;\n}"
823
2421
  },
824
2422
  {
825
- "name": "SubagentSessionError",
826
- "declaration": "export interface SubagentSessionError {\n readonly code: 'subagent_session';\n readonly message: string;\n}"
2423
+ "name": "ScheduleViewResult",
2424
+ "declaration": "export type ScheduleViewResult = ScheduleCatalogEntry | ScheduleNotFoundResult;"
827
2425
  },
828
2426
  {
829
- "name": "TimeOutOfRangeError",
830
- "declaration": "export interface TimeOutOfRangeError {\n readonly code: 'time_out_of_range';\n readonly message: string;\n}"
2427
+ "name": "SessionId",
2428
+ "declaration": "export type SessionId = Branded<'SessionId'>;"
831
2429
  },
832
2430
  {
833
2431
  "name": "WeeklyInput",
@@ -855,6 +2453,27 @@ export const TYPERT = {
855
2453
  "name": "schedule/changed",
856
2454
  "mode": "emit",
857
2455
  "signature": "'schedule/changed'(): void"
2456
+ },
2457
+ {
2458
+ "description": "Restore a reminder's Session through its embedding's owning controller. Call next() to use the Web Session controller.",
2459
+ "summary": "Restore a reminder's Session through its embedding's owning controller.",
2460
+ "tags": [
2461
+ {
2462
+ "name": "param",
2463
+ "argument": "sessionId",
2464
+ "comment": "- Original Session receiving the reminder.",
2465
+ "text": "@param sessionId - Original Session receiving the reminder.\n *"
2466
+ },
2467
+ {
2468
+ "name": "mode",
2469
+ "comment": "waterfall",
2470
+ "text": "@mode waterfall"
2471
+ }
2472
+ ],
2473
+ "jsDoc": "/**\n * Restore a reminder's Session through its embedding's owning controller.\n * Call next() to use the Web Session controller.\n * @param sessionId - Original Session receiving the reminder.\n * @mode waterfall\n */",
2474
+ "name": "schedule/resolve-agent",
2475
+ "mode": "waterfall",
2476
+ "signature": "'schedule/resolve-agent'(sessionId: SessionId, next: () => Promise<Agent>): Promise<Agent>"
858
2477
  }
859
2478
  ],
860
2479
  "objects": []