@deepseek-ai/dsh-client-ui-schedule 0.2.1-rc.4 → 0.2.2-alpha.2

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.
@@ -1,20 +1,29 @@
1
1
  /**
2
2
  * Transient outcome notice for schedule deletions.
3
3
  *
4
- * Every deletion — the Tasks page detail, the session task tab, and the
5
- * Session-header popover — reports its settled outcome into one store, and one
6
- * `shell.overlay` entry renders it as the app-wide banner. The surfaces keep no
7
- * in-place deletion notice of their own, so an outcome outlives the panel or
8
- * tab that asked for it.
4
+ * Every deletion — the Tasks page detail, the session task tab, the
5
+ * Session-header popover, and the Tasks page's removal of every ended task —
6
+ * reports its settled outcome into one store, and one `shell.overlay` entry
7
+ * renders it as the app-wide banner. The surfaces keep no in-place deletion
8
+ * notice of their own, so an outcome outlives the panel or tab that asked for
9
+ * it.
9
10
  */
10
11
  import type { ReactNode } from 'react';
11
12
  import type { HostObservable, InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
12
13
  import type { CatalogDeleteOutcome } from './catalog-source.ts';
13
- /** One reported deletion outcome; `seq` keys the banner so a re-show restarts it. */
14
- export interface DeleteToastState {
14
+ import type { ClearEndedOutcome } from './clear-ended.ts';
15
+ /** One reported outcome; `seq` keys the banner so a re-show restarts it. */
16
+ export type DeleteToastState = {
15
17
  readonly kind: 'deleted' | 'deleteFailed';
16
18
  readonly seq: number;
17
- }
19
+ } | {
20
+ readonly kind: 'cleared';
21
+ readonly count: number;
22
+ readonly seq: number;
23
+ } | {
24
+ readonly kind: 'clearFailed';
25
+ readonly seq: number;
26
+ };
18
27
  /** Store the deletion wiring reports into and the overlay entry reads. */
19
28
  export interface DeleteToastSource {
20
29
  /** Current notice for the overlay entry, or null while none shows. */
@@ -27,6 +36,11 @@ export interface DeleteToastSource {
27
36
  * @param outcome - resolution of `CatalogInjected.onDelete`.
28
37
  */
29
38
  readonly report: (outcome: CatalogDeleteOutcome) => void;
39
+ /**
40
+ * Show the notice of one settled bulk removal.
41
+ * @param outcome - resolution of the management page's bulk removal callback.
42
+ */
43
+ readonly reportClear: (outcome: ClearEndedOutcome) => void;
30
44
  /** Clear the shown notice. */
31
45
  readonly dismiss: () => void;
32
46
  }
@@ -36,10 +50,11 @@ export interface DeleteToastSource {
36
50
  */
37
51
  export declare function createDeleteToastSource(): DeleteToastSource;
38
52
  /** Props of the `shell.overlay` entry: the notice store and localized copy. */
39
- export type ScheduleDeleteToastProps = PropsRuntime<'shell.overlay'> & PropsLocale<'schedule.manager'> & InjectFace<Omit<DeleteToastSource, 'report'>>;
53
+ export type ScheduleDeleteToastProps = PropsRuntime<'shell.overlay'> & PropsLocale<'schedule.manager'> & InjectFace<Omit<DeleteToastSource, 'report' | 'reportClear'>>;
40
54
  /**
41
- * Render the current deletion notice: a success banner for a confirmed
42
- * deletion, a warning for one that could not be confirmed, or nothing.
55
+ * Render the current deletion notice: a success banner for a confirmed deletion
56
+ * or settled bulk removal, a warning for one that could not be confirmed, or
57
+ * nothing.
43
58
  * @param props - the notice hook, its dismissal, and the locale seat.
44
59
  * @returns the banner on display, or null.
45
60
  */
@@ -10,6 +10,11 @@ export type ScheduleCatalogActionProps = PropsRuntime<'conversation.session.head
10
10
  */
11
11
  readonly openTaskDetail: (id: ScheduleId) => void;
12
12
  }>;
13
- /** Current-Session reminder catalog with durable deletion. */
14
- export declare function ScheduleCatalogAction({ useSession, useCatalog, onDelete, onRetry, openTaskDetail, t, }: ScheduleCatalogActionProps): import("react").JSX.Element | null;
13
+ /**
14
+ * Current-Session reminder catalog with durable deletion, rendered only while
15
+ * the current Peer may list this Session's reminders.
16
+ * @param props - the Session seats, the injected catalog and verbs, and localized copy.
17
+ * @returns the reminder catalog action, or nothing without access.
18
+ */
19
+ export declare function ScheduleCatalogAction(props: ScheduleCatalogActionProps): import("react").JSX.Element | null;
15
20
  //# sourceMappingURL=ScheduleCatalogAction.d.ts.map
@@ -0,0 +1,12 @@
1
+ /** Decorative document-and-clock artwork with theme-owned colors. */
2
+ interface ScheduleEmptyIllustrationProps {
3
+ readonly className?: string | undefined;
4
+ }
5
+ /**
6
+ * Render the empty-state illustration without adding an accessible announcement.
7
+ * @param props - optional CSS class applied to the root SVG.
8
+ * @returns the decorative inline SVG element.
9
+ */
10
+ export declare function ScheduleEmptyIllustration({ className }: ScheduleEmptyIllustrationProps): import("react").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=ScheduleEmptyIllustration.d.ts.map
@@ -13,6 +13,16 @@ export interface TaskManagerInjected extends TaskDetailInjected {
13
13
  * schedule it. The page deliberately has no creation form of its own.
14
14
  */
15
15
  readonly onNewTask: () => void;
16
+ /**
17
+ * Remove every ended Host task, after this page has confirmed the action.
18
+ *
19
+ * The call requests no task ids, so the Host's ended set is the one removed;
20
+ * the page's rows are only a snapshot that a delivery can have moved. It
21
+ * resolves once the settled outcome has been reported through the app-wide
22
+ * notice, which is the only place the result is stated.
23
+ * @returns resolution after the outcome is reported.
24
+ */
25
+ readonly onClearEnded: () => Promise<void>;
16
26
  }
17
27
  /** Root-scoped task catalog props derived from the framework and injected actions. */
18
28
  export type TaskManagerPageProps = PropsRuntime<'main'> & InjectFace<TaskManagerInjected> & PropsLocale<'schedule.manager'>;
@@ -66,8 +66,9 @@ export interface TaskMenuProps {
66
66
  * @param props.portal - render the list into document.body, fixed-positioned
67
67
  * from the anchor rect (follows scroll and resize while open).
68
68
  * @param props.header - owner content pinned above the scrolling rows; a control
69
- * it marks `data-menu-field` takes the keyboard once the list is placed, which
70
- * is the frame a portaled list becomes focusable in.
69
+ * it marks `data-menu-field` takes the keyboard on desktop once the list is placed,
70
+ * which is the frame a portaled list becomes focusable in. Phones and tablets
71
+ * require explicit field focus.
71
72
  * @param props.className - extra class on the anchor wrapper span.
72
73
  * @param props.listClassName - extra class on the dropdown card itself.
73
74
  * @returns the anchor wrapper with the conditional list.
@@ -0,0 +1,33 @@
1
+ /** Host-wide removal of every ended task, as the management page's one action reports it. */
2
+ import type { RemoteResult } from '@deepseek-ai/dsh-api-remotes/client';
3
+ import type { ScheduleDeleteInactiveResult } from '@deepseek-ai/dsh-schedule/client';
4
+ /** How one bulk removal settled; the wiring reports it as an app-wide notice. */
5
+ export type ClearEndedOutcome = {
6
+ readonly cleared: true;
7
+ readonly count: number;
8
+ } | {
9
+ readonly cleared: false;
10
+ };
11
+ /** Remote removal and the authoritative readback that follows it. */
12
+ export interface ClearEndedDependencies {
13
+ /** Ask the Host to remove every ended task; it answers how many rows it removed. */
14
+ readonly removeInactive: () => Promise<RemoteResult<ScheduleDeleteInactiveResult>>;
15
+ /**
16
+ * Read the catalog again, naming the newest request ordinal so a read sent
17
+ * before the removal is superseded rather than reused.
18
+ * @returns resolution after the read result is published.
19
+ */
20
+ readonly refresh: () => Promise<void>;
21
+ }
22
+ /**
23
+ * Create the management page's bulk removal callback.
24
+ *
25
+ * The call names no task ids: the Host owns which rows are ended, and a
26
+ * delivery can have moved the catalog between the confirmation and the
27
+ * request. The readback follows the acknowledged removal and supersedes a read
28
+ * issued before it, so the list follows the removal rather than a stale read.
29
+ * @param deps - Remote removal and its catalog readback.
30
+ * @returns a callback that resolves once the settled outcome is available.
31
+ */
32
+ export declare function createClearEnded(deps: ClearEndedDependencies): () => Promise<ClearEndedOutcome>;
33
+ //# sourceMappingURL=clear-ended.d.ts.map
@@ -68,4 +68,346 @@ export declare const frequencyZh: {
68
68
  };
69
69
  /** English rule and duration copy, key-identical to the Chinese source. */
70
70
  export declare const frequencyEn: Record<keyof typeof frequencyZh, string>;
71
+ /** Japanese copy, checked against the English keys. */
72
+ export declare const frequencyJa: {
73
+ 'time.locale': string;
74
+ 'time.utcPrefix': string;
75
+ 'frequency.daily': string;
76
+ 'frequency.dailyLocal': string;
77
+ 'frequency.weekly': string;
78
+ 'frequency.weeklyLocal': string;
79
+ 'frequency.cron': string;
80
+ 'frequency.cronLocal': string;
81
+ 'frequency.cronRule': string;
82
+ 'cron.list.join': string;
83
+ 'cron.part.join': string;
84
+ 'cron.weekday.name': string;
85
+ 'cron.weekday.range': string;
86
+ 'cron.months': string;
87
+ 'cron.day.every': string;
88
+ 'cron.day.weekdays': string;
89
+ 'cron.day.monthDays': string;
90
+ 'cron.day.both': string;
91
+ 'cron.day.bothStarred': string;
92
+ 'cron.hours.range': string;
93
+ 'cron.hours.list': string;
94
+ 'cron.time.everyMinute': string;
95
+ 'cron.time.everyMinutes': string;
96
+ 'cron.time.joinedEveryMinute': string;
97
+ 'cron.time.joinedEveryMinutes': string;
98
+ 'cron.time.everyHour': string;
99
+ 'cron.time.joinedEveryHour': string;
100
+ 'cron.time.everyNHours': string;
101
+ 'cron.time.joinedEveryNHours': string;
102
+ 'cron.time.hourlyAt': string;
103
+ 'cron.time.joinedHourlyAt': string;
104
+ 'cron.time.hoursEveryMinute': string;
105
+ 'cron.time.hoursEveryMinutes': string;
106
+ 'cron.time.at': string;
107
+ 'cron.time.hoursAt': string;
108
+ 'frequency.weekday.join': string;
109
+ 'frequency.weekday.1': string;
110
+ 'frequency.weekday.2': string;
111
+ 'frequency.weekday.3': string;
112
+ 'frequency.weekday.4': string;
113
+ 'frequency.weekday.5': string;
114
+ 'frequency.weekday.6': string;
115
+ 'frequency.weekday.7': string;
116
+ 'unit.day.one': string;
117
+ 'unit.day.other': string;
118
+ 'unit.hour.one': string;
119
+ 'unit.hour.other': string;
120
+ 'unit.minute.one': string;
121
+ 'unit.minute.other': string;
122
+ 'unit.second.one': string;
123
+ 'unit.second.other': string;
124
+ 'relative.now': string;
125
+ 'relative.future': string;
126
+ 'relative.overdue': string;
127
+ };
128
+ /** Spanish dictionary, checked against the English keys. */
129
+ export declare const frequencyEs: {
130
+ 'time.locale': string;
131
+ 'time.utcPrefix': string;
132
+ 'frequency.daily': string;
133
+ 'frequency.dailyLocal': string;
134
+ 'frequency.weekly': string;
135
+ 'frequency.weeklyLocal': string;
136
+ 'frequency.cron': string;
137
+ 'frequency.cronLocal': string;
138
+ 'frequency.cronRule': string;
139
+ 'cron.list.join': string;
140
+ 'cron.part.join': string;
141
+ 'cron.weekday.name': string;
142
+ 'cron.weekday.range': string;
143
+ 'cron.months': string;
144
+ 'cron.day.every': string;
145
+ 'cron.day.weekdays': string;
146
+ 'cron.day.monthDays': string;
147
+ 'cron.day.both': string;
148
+ 'cron.day.bothStarred': string;
149
+ 'cron.hours.range': string;
150
+ 'cron.hours.list': string;
151
+ 'cron.time.everyMinute': string;
152
+ 'cron.time.everyMinutes': string;
153
+ 'cron.time.joinedEveryMinute': string;
154
+ 'cron.time.joinedEveryMinutes': string;
155
+ 'cron.time.everyHour': string;
156
+ 'cron.time.joinedEveryHour': string;
157
+ 'cron.time.everyNHours': string;
158
+ 'cron.time.joinedEveryNHours': string;
159
+ 'cron.time.hourlyAt': string;
160
+ 'cron.time.joinedHourlyAt': string;
161
+ 'cron.time.hoursEveryMinute': string;
162
+ 'cron.time.hoursEveryMinutes': string;
163
+ 'cron.time.at': string;
164
+ 'cron.time.hoursAt': string;
165
+ 'frequency.weekday.join': string;
166
+ 'frequency.weekday.1': string;
167
+ 'frequency.weekday.2': string;
168
+ 'frequency.weekday.3': string;
169
+ 'frequency.weekday.4': string;
170
+ 'frequency.weekday.5': string;
171
+ 'frequency.weekday.6': string;
172
+ 'frequency.weekday.7': string;
173
+ 'unit.day.one': string;
174
+ 'unit.day.other': string;
175
+ 'unit.hour.one': string;
176
+ 'unit.hour.other': string;
177
+ 'unit.minute.one': string;
178
+ 'unit.minute.other': string;
179
+ 'unit.second.one': string;
180
+ 'unit.second.other': string;
181
+ 'relative.now': string;
182
+ 'relative.future': string;
183
+ 'relative.overdue': string;
184
+ };
185
+ /** French dictionary, checked against the English keys. */
186
+ export declare const frequencyFr: {
187
+ 'time.locale': string;
188
+ 'time.utcPrefix': string;
189
+ 'frequency.daily': string;
190
+ 'frequency.dailyLocal': string;
191
+ 'frequency.weekly': string;
192
+ 'frequency.weeklyLocal': string;
193
+ 'frequency.cron': string;
194
+ 'frequency.cronLocal': string;
195
+ 'frequency.cronRule': string;
196
+ 'cron.list.join': string;
197
+ 'cron.part.join': string;
198
+ 'cron.weekday.name': string;
199
+ 'cron.weekday.range': string;
200
+ 'cron.months': string;
201
+ 'cron.day.every': string;
202
+ 'cron.day.weekdays': string;
203
+ 'cron.day.monthDays': string;
204
+ 'cron.day.both': string;
205
+ 'cron.day.bothStarred': string;
206
+ 'cron.hours.range': string;
207
+ 'cron.hours.list': string;
208
+ 'cron.time.everyMinute': string;
209
+ 'cron.time.everyMinutes': string;
210
+ 'cron.time.joinedEveryMinute': string;
211
+ 'cron.time.joinedEveryMinutes': string;
212
+ 'cron.time.everyHour': string;
213
+ 'cron.time.joinedEveryHour': string;
214
+ 'cron.time.everyNHours': string;
215
+ 'cron.time.joinedEveryNHours': string;
216
+ 'cron.time.hourlyAt': string;
217
+ 'cron.time.joinedHourlyAt': string;
218
+ 'cron.time.hoursEveryMinute': string;
219
+ 'cron.time.hoursEveryMinutes': string;
220
+ 'cron.time.at': string;
221
+ 'cron.time.hoursAt': string;
222
+ 'frequency.weekday.join': string;
223
+ 'frequency.weekday.1': string;
224
+ 'frequency.weekday.2': string;
225
+ 'frequency.weekday.3': string;
226
+ 'frequency.weekday.4': string;
227
+ 'frequency.weekday.5': string;
228
+ 'frequency.weekday.6': string;
229
+ 'frequency.weekday.7': string;
230
+ 'unit.day.one': string;
231
+ 'unit.day.other': string;
232
+ 'unit.hour.one': string;
233
+ 'unit.hour.other': string;
234
+ 'unit.minute.one': string;
235
+ 'unit.minute.other': string;
236
+ 'unit.second.one': string;
237
+ 'unit.second.other': string;
238
+ 'relative.now': string;
239
+ 'relative.future': string;
240
+ 'relative.overdue': string;
241
+ };
242
+ /** German dictionary, checked against the English keys. */
243
+ export declare const frequencyDe: {
244
+ 'time.locale': string;
245
+ 'time.utcPrefix': string;
246
+ 'frequency.daily': string;
247
+ 'frequency.dailyLocal': string;
248
+ 'frequency.weekly': string;
249
+ 'frequency.weeklyLocal': string;
250
+ 'frequency.cron': string;
251
+ 'frequency.cronLocal': string;
252
+ 'frequency.cronRule': string;
253
+ 'cron.list.join': string;
254
+ 'cron.part.join': string;
255
+ 'cron.weekday.name': string;
256
+ 'cron.weekday.range': string;
257
+ 'cron.months': string;
258
+ 'cron.day.every': string;
259
+ 'cron.day.weekdays': string;
260
+ 'cron.day.monthDays': string;
261
+ 'cron.day.both': string;
262
+ 'cron.day.bothStarred': string;
263
+ 'cron.hours.range': string;
264
+ 'cron.hours.list': string;
265
+ 'cron.time.everyMinute': string;
266
+ 'cron.time.everyMinutes': string;
267
+ 'cron.time.joinedEveryMinute': string;
268
+ 'cron.time.joinedEveryMinutes': string;
269
+ 'cron.time.everyHour': string;
270
+ 'cron.time.joinedEveryHour': string;
271
+ 'cron.time.everyNHours': string;
272
+ 'cron.time.joinedEveryNHours': string;
273
+ 'cron.time.hourlyAt': string;
274
+ 'cron.time.joinedHourlyAt': string;
275
+ 'cron.time.hoursEveryMinute': string;
276
+ 'cron.time.hoursEveryMinutes': string;
277
+ 'cron.time.at': string;
278
+ 'cron.time.hoursAt': string;
279
+ 'frequency.weekday.join': string;
280
+ 'frequency.weekday.1': string;
281
+ 'frequency.weekday.2': string;
282
+ 'frequency.weekday.3': string;
283
+ 'frequency.weekday.4': string;
284
+ 'frequency.weekday.5': string;
285
+ 'frequency.weekday.6': string;
286
+ 'frequency.weekday.7': string;
287
+ 'unit.day.one': string;
288
+ 'unit.day.other': string;
289
+ 'unit.hour.one': string;
290
+ 'unit.hour.other': string;
291
+ 'unit.minute.one': string;
292
+ 'unit.minute.other': string;
293
+ 'unit.second.one': string;
294
+ 'unit.second.other': string;
295
+ 'relative.now': string;
296
+ 'relative.future': string;
297
+ 'relative.overdue': string;
298
+ };
299
+ /** Russian dictionary, checked against the English keys. */
300
+ export declare const frequencyRu: {
301
+ 'time.locale': string;
302
+ 'time.utcPrefix': string;
303
+ 'frequency.daily': string;
304
+ 'frequency.dailyLocal': string;
305
+ 'frequency.weekly': string;
306
+ 'frequency.weeklyLocal': string;
307
+ 'frequency.cron': string;
308
+ 'frequency.cronLocal': string;
309
+ 'frequency.cronRule': string;
310
+ 'cron.list.join': string;
311
+ 'cron.part.join': string;
312
+ 'cron.weekday.name': string;
313
+ 'cron.weekday.range': string;
314
+ 'cron.months': string;
315
+ 'cron.day.every': string;
316
+ 'cron.day.weekdays': string;
317
+ 'cron.day.monthDays': string;
318
+ 'cron.day.both': string;
319
+ 'cron.day.bothStarred': string;
320
+ 'cron.hours.range': string;
321
+ 'cron.hours.list': string;
322
+ 'cron.time.everyMinute': string;
323
+ 'cron.time.everyMinutes': string;
324
+ 'cron.time.joinedEveryMinute': string;
325
+ 'cron.time.joinedEveryMinutes': string;
326
+ 'cron.time.everyHour': string;
327
+ 'cron.time.joinedEveryHour': string;
328
+ 'cron.time.everyNHours': string;
329
+ 'cron.time.joinedEveryNHours': string;
330
+ 'cron.time.hourlyAt': string;
331
+ 'cron.time.joinedHourlyAt': string;
332
+ 'cron.time.hoursEveryMinute': string;
333
+ 'cron.time.hoursEveryMinutes': string;
334
+ 'cron.time.at': string;
335
+ 'cron.time.hoursAt': string;
336
+ 'frequency.weekday.join': string;
337
+ 'frequency.weekday.1': string;
338
+ 'frequency.weekday.2': string;
339
+ 'frequency.weekday.3': string;
340
+ 'frequency.weekday.4': string;
341
+ 'frequency.weekday.5': string;
342
+ 'frequency.weekday.6': string;
343
+ 'frequency.weekday.7': string;
344
+ 'unit.day.one': string;
345
+ 'unit.day.other': string;
346
+ 'unit.hour.one': string;
347
+ 'unit.hour.other': string;
348
+ 'unit.minute.one': string;
349
+ 'unit.minute.other': string;
350
+ 'unit.second.one': string;
351
+ 'unit.second.other': string;
352
+ 'relative.now': string;
353
+ 'relative.future': string;
354
+ 'relative.overdue': string;
355
+ };
356
+ /** Portuguese dictionary, checked against the English keys. */
357
+ export declare const frequencyPt: {
358
+ 'time.locale': string;
359
+ 'time.utcPrefix': string;
360
+ 'frequency.daily': string;
361
+ 'frequency.dailyLocal': string;
362
+ 'frequency.weekly': string;
363
+ 'frequency.weeklyLocal': string;
364
+ 'frequency.cron': string;
365
+ 'frequency.cronLocal': string;
366
+ 'frequency.cronRule': string;
367
+ 'cron.list.join': string;
368
+ 'cron.part.join': string;
369
+ 'cron.weekday.name': string;
370
+ 'cron.weekday.range': string;
371
+ 'cron.months': string;
372
+ 'cron.day.every': string;
373
+ 'cron.day.weekdays': string;
374
+ 'cron.day.monthDays': string;
375
+ 'cron.day.both': string;
376
+ 'cron.day.bothStarred': string;
377
+ 'cron.hours.range': string;
378
+ 'cron.hours.list': string;
379
+ 'cron.time.everyMinute': string;
380
+ 'cron.time.everyMinutes': string;
381
+ 'cron.time.joinedEveryMinute': string;
382
+ 'cron.time.joinedEveryMinutes': string;
383
+ 'cron.time.everyHour': string;
384
+ 'cron.time.joinedEveryHour': string;
385
+ 'cron.time.everyNHours': string;
386
+ 'cron.time.joinedEveryNHours': string;
387
+ 'cron.time.hourlyAt': string;
388
+ 'cron.time.joinedHourlyAt': string;
389
+ 'cron.time.hoursEveryMinute': string;
390
+ 'cron.time.hoursEveryMinutes': string;
391
+ 'cron.time.at': string;
392
+ 'cron.time.hoursAt': string;
393
+ 'frequency.weekday.join': string;
394
+ 'frequency.weekday.1': string;
395
+ 'frequency.weekday.2': string;
396
+ 'frequency.weekday.3': string;
397
+ 'frequency.weekday.4': string;
398
+ 'frequency.weekday.5': string;
399
+ 'frequency.weekday.6': string;
400
+ 'frequency.weekday.7': string;
401
+ 'unit.day.one': string;
402
+ 'unit.day.other': string;
403
+ 'unit.hour.one': string;
404
+ 'unit.hour.other': string;
405
+ 'unit.minute.one': string;
406
+ 'unit.minute.other': string;
407
+ 'unit.second.one': string;
408
+ 'unit.second.other': string;
409
+ 'relative.now': string;
410
+ 'relative.future': string;
411
+ 'relative.overdue': string;
412
+ };
71
413
  //# sourceMappingURL=frequency-locales.d.ts.map
@@ -38,12 +38,12 @@ declare module '@deepseek-ai/dsh-client-ui-slots' {
38
38
  'schedule.manager': TaskManagerKey;
39
39
  }
40
40
  }
41
- /** Required services for catalogs, ambient Session marks, the right Sidebar, Remote queries, and original-Session navigation. */
41
+ /** Required services for catalogs, ambient Session marks, the right Sidebar, Remote queries, original-Session navigation, and access. */
42
42
  export declare const inject: string[];
43
43
  /**
44
44
  * Register the Host task page, the Session-header reminder catalog, the
45
45
  * right-Sidebar page that shows one task's detail, and the transcript card of
46
- * one created task.
46
+ * one created task while the current Peer may read the task catalog.
47
47
  * @param ctx - browser services used by these contributions.
48
48
  */
49
49
  export declare function apply(ctx: ClientContext): void;