@rizom/brain 0.2.0-alpha.47 → 0.2.0-alpha.48

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,129 +1,925 @@
1
- import type { z } from "zod";
1
+ import { z } from 'zod';
2
2
 
3
- export const UserPermissionLevelSchema: z.ZodSchema<UserPermissionLevel>;
4
- export type UserPermissionLevel = "public" | "trusted" | "anchor";
5
- export interface PermissionRule {
6
- pattern: string;
7
- level: UserPermissionLevel;
3
+ declare const MessageResponseSchema: z.ZodUnion<[z.ZodObject<{
4
+ success: z.ZodBoolean;
5
+ data: z.ZodOptional<z.ZodUnknown>;
6
+ error: z.ZodOptional<z.ZodString>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ success: boolean;
9
+ data?: unknown;
10
+ error?: string | undefined;
11
+ }, {
12
+ success: boolean;
13
+ data?: unknown;
14
+ error?: string | undefined;
15
+ }>, z.ZodObject<{
16
+ noop: z.ZodLiteral<true>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ noop: true;
19
+ }, {
20
+ noop: true;
21
+ }>]>;
22
+ type MessageResponse<T = unknown> = ({
23
+ success: boolean;
24
+ error?: string | undefined;
25
+ } & {
26
+ data?: T | undefined;
27
+ }) | {
28
+ noop: true;
29
+ };
30
+ declare const BaseMessageSchema: z.ZodObject<{
31
+ id: z.ZodString;
32
+ timestamp: z.ZodString;
33
+ type: z.ZodString;
34
+ source: z.ZodString;
35
+ target: z.ZodOptional<z.ZodString>;
36
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ type: string;
39
+ id: string;
40
+ timestamp: string;
41
+ source: string;
42
+ target?: string | undefined;
43
+ metadata?: Record<string, unknown> | undefined;
44
+ }, {
45
+ type: string;
46
+ id: string;
47
+ timestamp: string;
48
+ source: string;
49
+ target?: string | undefined;
50
+ metadata?: Record<string, unknown> | undefined;
51
+ }>;
52
+ type BaseMessage = z.infer<typeof BaseMessageSchema>;
53
+ type MessageWithPayload<T = unknown> = BaseMessage & {
54
+ payload: T;
55
+ };
56
+ interface MessageSendOptions {
57
+ broadcast?: boolean;
8
58
  }
9
- export interface PermissionConfig {
10
- rules: PermissionRule[];
11
- }
12
- export interface WithVisibility {
13
- visibility?: UserPermissionLevel;
59
+ type MessageSender<T = unknown, R = unknown> = (type: string, payload: T, options?: MessageSendOptions) => Promise<MessageResponse<R>>;
60
+ interface MessageContext {
61
+ userId?: string;
62
+ channelId?: string;
63
+ messageId?: string;
64
+ timestamp?: string;
65
+ interfaceType?: string;
66
+ userPermissionLevel?: "public" | "trusted" | "anchor";
67
+ threadId?: string;
14
68
  }
15
69
 
16
- export interface DaemonHealth {
17
- healthy: boolean;
18
- message?: string;
19
- }
20
- export interface DaemonStatusInfo {
21
- name: string;
22
- status: string;
23
- healthy?: boolean;
24
- message?: string;
70
+ /**
71
+ * Section definition schema
72
+ */
73
+ declare const SectionDefinitionSchema: z.ZodObject<{
74
+ id: z.ZodString;
75
+ template: z.ZodString;
76
+ content: z.ZodOptional<z.ZodUnknown>;
77
+ dataQuery: z.ZodOptional<z.ZodObject<{
78
+ entityType: z.ZodOptional<z.ZodString>;
79
+ template: z.ZodOptional<z.ZodString>;
80
+ query: z.ZodOptional<z.ZodObject<{
81
+ id: z.ZodOptional<z.ZodString>;
82
+ limit: z.ZodOptional<z.ZodNumber>;
83
+ offset: z.ZodOptional<z.ZodNumber>;
84
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
85
+ id: z.ZodOptional<z.ZodString>;
86
+ limit: z.ZodOptional<z.ZodNumber>;
87
+ offset: z.ZodOptional<z.ZodNumber>;
88
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
89
+ id: z.ZodOptional<z.ZodString>;
90
+ limit: z.ZodOptional<z.ZodNumber>;
91
+ offset: z.ZodOptional<z.ZodNumber>;
92
+ }, z.ZodTypeAny, "passthrough">>>;
93
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
94
+ entityType: z.ZodOptional<z.ZodString>;
95
+ template: z.ZodOptional<z.ZodString>;
96
+ query: z.ZodOptional<z.ZodObject<{
97
+ id: z.ZodOptional<z.ZodString>;
98
+ limit: z.ZodOptional<z.ZodNumber>;
99
+ offset: z.ZodOptional<z.ZodNumber>;
100
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
101
+ id: z.ZodOptional<z.ZodString>;
102
+ limit: z.ZodOptional<z.ZodNumber>;
103
+ offset: z.ZodOptional<z.ZodNumber>;
104
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
105
+ id: z.ZodOptional<z.ZodString>;
106
+ limit: z.ZodOptional<z.ZodNumber>;
107
+ offset: z.ZodOptional<z.ZodNumber>;
108
+ }, z.ZodTypeAny, "passthrough">>>;
109
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
110
+ entityType: z.ZodOptional<z.ZodString>;
111
+ template: z.ZodOptional<z.ZodString>;
112
+ query: z.ZodOptional<z.ZodObject<{
113
+ id: z.ZodOptional<z.ZodString>;
114
+ limit: z.ZodOptional<z.ZodNumber>;
115
+ offset: z.ZodOptional<z.ZodNumber>;
116
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
117
+ id: z.ZodOptional<z.ZodString>;
118
+ limit: z.ZodOptional<z.ZodNumber>;
119
+ offset: z.ZodOptional<z.ZodNumber>;
120
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
121
+ id: z.ZodOptional<z.ZodString>;
122
+ limit: z.ZodOptional<z.ZodNumber>;
123
+ offset: z.ZodOptional<z.ZodNumber>;
124
+ }, z.ZodTypeAny, "passthrough">>>;
125
+ }, z.ZodTypeAny, "passthrough">>>;
126
+ order: z.ZodOptional<z.ZodNumber>;
127
+ }, "strip", z.ZodTypeAny, {
128
+ id: string;
129
+ template: string;
130
+ content?: unknown;
131
+ dataQuery?: z.objectOutputType<{
132
+ entityType: z.ZodOptional<z.ZodString>;
133
+ template: z.ZodOptional<z.ZodString>;
134
+ query: z.ZodOptional<z.ZodObject<{
135
+ id: z.ZodOptional<z.ZodString>;
136
+ limit: z.ZodOptional<z.ZodNumber>;
137
+ offset: z.ZodOptional<z.ZodNumber>;
138
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
139
+ id: z.ZodOptional<z.ZodString>;
140
+ limit: z.ZodOptional<z.ZodNumber>;
141
+ offset: z.ZodOptional<z.ZodNumber>;
142
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
143
+ id: z.ZodOptional<z.ZodString>;
144
+ limit: z.ZodOptional<z.ZodNumber>;
145
+ offset: z.ZodOptional<z.ZodNumber>;
146
+ }, z.ZodTypeAny, "passthrough">>>;
147
+ }, z.ZodTypeAny, "passthrough"> | undefined;
148
+ order?: number | undefined;
149
+ }, {
150
+ id: string;
151
+ template: string;
152
+ content?: unknown;
153
+ dataQuery?: z.objectInputType<{
154
+ entityType: z.ZodOptional<z.ZodString>;
155
+ template: z.ZodOptional<z.ZodString>;
156
+ query: z.ZodOptional<z.ZodObject<{
157
+ id: z.ZodOptional<z.ZodString>;
158
+ limit: z.ZodOptional<z.ZodNumber>;
159
+ offset: z.ZodOptional<z.ZodNumber>;
160
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
161
+ id: z.ZodOptional<z.ZodString>;
162
+ limit: z.ZodOptional<z.ZodNumber>;
163
+ offset: z.ZodOptional<z.ZodNumber>;
164
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
165
+ id: z.ZodOptional<z.ZodString>;
166
+ limit: z.ZodOptional<z.ZodNumber>;
167
+ offset: z.ZodOptional<z.ZodNumber>;
168
+ }, z.ZodTypeAny, "passthrough">>>;
169
+ }, z.ZodTypeAny, "passthrough"> | undefined;
170
+ order?: number | undefined;
171
+ }>;
172
+ /**
173
+ * Navigation slot types
174
+ */
175
+ declare const NavigationSlots: readonly ["primary", "secondary"];
176
+ type NavigationSlot = (typeof NavigationSlots)[number];
177
+ /**
178
+ * Display and behavior metadata for an entity type.
179
+ *
180
+ * Keyed by entity type on `SitePackage.entityDisplay`, these entries
181
+ * describe how an entity type should present itself — its human label,
182
+ * plural name, default layout, pagination, and navigation slot. The
183
+ * site-builder's dynamic route generator consults them when producing
184
+ * auto-generated list/detail routes for each active entity plugin, but
185
+ * the metadata is conceptually about the entity type itself, not about
186
+ * any particular route.
187
+ */
188
+ interface EntityDisplayEntry {
189
+ label: string;
190
+ pluralName?: string;
191
+ /** Layout name for this entity type's generated routes (defaults to "default") */
192
+ layout?: string;
193
+ /** Enable pagination for list pages */
194
+ paginate?: boolean;
195
+ /** Items per page (default: 10) */
196
+ pageSize?: number;
197
+ navigation?: {
198
+ show?: boolean;
199
+ slot?: NavigationSlot;
200
+ priority?: number;
201
+ };
25
202
  }
26
- export type DaemonInfo = DaemonStatusInfo;
27
- export interface Daemon {
28
- start(): Promise<void> | void;
29
- stop(): Promise<void> | void;
30
- health?(): Promise<DaemonHealth> | DaemonHealth;
203
+ /**
204
+ * Route definition schema
205
+ */
206
+ declare const RouteDefinitionSchema: z.ZodObject<{
207
+ id: z.ZodString;
208
+ path: z.ZodString;
209
+ title: z.ZodDefault<z.ZodString>;
210
+ description: z.ZodDefault<z.ZodString>;
211
+ sections: z.ZodDefault<z.ZodArray<z.ZodObject<{
212
+ id: z.ZodString;
213
+ template: z.ZodString;
214
+ content: z.ZodOptional<z.ZodUnknown>;
215
+ dataQuery: z.ZodOptional<z.ZodObject<{
216
+ entityType: z.ZodOptional<z.ZodString>;
217
+ template: z.ZodOptional<z.ZodString>;
218
+ query: z.ZodOptional<z.ZodObject<{
219
+ id: z.ZodOptional<z.ZodString>;
220
+ limit: z.ZodOptional<z.ZodNumber>;
221
+ offset: z.ZodOptional<z.ZodNumber>;
222
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
223
+ id: z.ZodOptional<z.ZodString>;
224
+ limit: z.ZodOptional<z.ZodNumber>;
225
+ offset: z.ZodOptional<z.ZodNumber>;
226
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
227
+ id: z.ZodOptional<z.ZodString>;
228
+ limit: z.ZodOptional<z.ZodNumber>;
229
+ offset: z.ZodOptional<z.ZodNumber>;
230
+ }, z.ZodTypeAny, "passthrough">>>;
231
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
232
+ entityType: z.ZodOptional<z.ZodString>;
233
+ template: z.ZodOptional<z.ZodString>;
234
+ query: z.ZodOptional<z.ZodObject<{
235
+ id: z.ZodOptional<z.ZodString>;
236
+ limit: z.ZodOptional<z.ZodNumber>;
237
+ offset: z.ZodOptional<z.ZodNumber>;
238
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
239
+ id: z.ZodOptional<z.ZodString>;
240
+ limit: z.ZodOptional<z.ZodNumber>;
241
+ offset: z.ZodOptional<z.ZodNumber>;
242
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
243
+ id: z.ZodOptional<z.ZodString>;
244
+ limit: z.ZodOptional<z.ZodNumber>;
245
+ offset: z.ZodOptional<z.ZodNumber>;
246
+ }, z.ZodTypeAny, "passthrough">>>;
247
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
248
+ entityType: z.ZodOptional<z.ZodString>;
249
+ template: z.ZodOptional<z.ZodString>;
250
+ query: z.ZodOptional<z.ZodObject<{
251
+ id: z.ZodOptional<z.ZodString>;
252
+ limit: z.ZodOptional<z.ZodNumber>;
253
+ offset: z.ZodOptional<z.ZodNumber>;
254
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
255
+ id: z.ZodOptional<z.ZodString>;
256
+ limit: z.ZodOptional<z.ZodNumber>;
257
+ offset: z.ZodOptional<z.ZodNumber>;
258
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
259
+ id: z.ZodOptional<z.ZodString>;
260
+ limit: z.ZodOptional<z.ZodNumber>;
261
+ offset: z.ZodOptional<z.ZodNumber>;
262
+ }, z.ZodTypeAny, "passthrough">>>;
263
+ }, z.ZodTypeAny, "passthrough">>>;
264
+ order: z.ZodOptional<z.ZodNumber>;
265
+ }, "strip", z.ZodTypeAny, {
266
+ id: string;
267
+ template: string;
268
+ content?: unknown;
269
+ dataQuery?: z.objectOutputType<{
270
+ entityType: z.ZodOptional<z.ZodString>;
271
+ template: z.ZodOptional<z.ZodString>;
272
+ query: z.ZodOptional<z.ZodObject<{
273
+ id: z.ZodOptional<z.ZodString>;
274
+ limit: z.ZodOptional<z.ZodNumber>;
275
+ offset: z.ZodOptional<z.ZodNumber>;
276
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
277
+ id: z.ZodOptional<z.ZodString>;
278
+ limit: z.ZodOptional<z.ZodNumber>;
279
+ offset: z.ZodOptional<z.ZodNumber>;
280
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
281
+ id: z.ZodOptional<z.ZodString>;
282
+ limit: z.ZodOptional<z.ZodNumber>;
283
+ offset: z.ZodOptional<z.ZodNumber>;
284
+ }, z.ZodTypeAny, "passthrough">>>;
285
+ }, z.ZodTypeAny, "passthrough"> | undefined;
286
+ order?: number | undefined;
287
+ }, {
288
+ id: string;
289
+ template: string;
290
+ content?: unknown;
291
+ dataQuery?: z.objectInputType<{
292
+ entityType: z.ZodOptional<z.ZodString>;
293
+ template: z.ZodOptional<z.ZodString>;
294
+ query: z.ZodOptional<z.ZodObject<{
295
+ id: z.ZodOptional<z.ZodString>;
296
+ limit: z.ZodOptional<z.ZodNumber>;
297
+ offset: z.ZodOptional<z.ZodNumber>;
298
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
299
+ id: z.ZodOptional<z.ZodString>;
300
+ limit: z.ZodOptional<z.ZodNumber>;
301
+ offset: z.ZodOptional<z.ZodNumber>;
302
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
303
+ id: z.ZodOptional<z.ZodString>;
304
+ limit: z.ZodOptional<z.ZodNumber>;
305
+ offset: z.ZodOptional<z.ZodNumber>;
306
+ }, z.ZodTypeAny, "passthrough">>>;
307
+ }, z.ZodTypeAny, "passthrough"> | undefined;
308
+ order?: number | undefined;
309
+ }>, "many">>;
310
+ layout: z.ZodDefault<z.ZodString>;
311
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
312
+ pluginId: z.ZodOptional<z.ZodString>;
313
+ sourceEntityType: z.ZodOptional<z.ZodString>;
314
+ external: z.ZodOptional<z.ZodBoolean>;
315
+ navigation: z.ZodOptional<z.ZodObject<{
316
+ show: z.ZodDefault<z.ZodBoolean>;
317
+ label: z.ZodOptional<z.ZodString>;
318
+ slot: z.ZodDefault<z.ZodEnum<["primary", "secondary"]>>;
319
+ priority: z.ZodDefault<z.ZodNumber>;
320
+ }, "strip", z.ZodTypeAny, {
321
+ show: boolean;
322
+ slot: "primary" | "secondary";
323
+ priority: number;
324
+ label?: string | undefined;
325
+ }, {
326
+ show?: boolean | undefined;
327
+ label?: string | undefined;
328
+ slot?: "primary" | "secondary" | undefined;
329
+ priority?: number | undefined;
330
+ }>>;
331
+ }, "strip", z.ZodTypeAny, {
332
+ id: string;
333
+ path: string;
334
+ title: string;
335
+ description: string;
336
+ sections: {
337
+ id: string;
338
+ template: string;
339
+ content?: unknown;
340
+ dataQuery?: z.objectOutputType<{
341
+ entityType: z.ZodOptional<z.ZodString>;
342
+ template: z.ZodOptional<z.ZodString>;
343
+ query: z.ZodOptional<z.ZodObject<{
344
+ id: z.ZodOptional<z.ZodString>;
345
+ limit: z.ZodOptional<z.ZodNumber>;
346
+ offset: z.ZodOptional<z.ZodNumber>;
347
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
348
+ id: z.ZodOptional<z.ZodString>;
349
+ limit: z.ZodOptional<z.ZodNumber>;
350
+ offset: z.ZodOptional<z.ZodNumber>;
351
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
352
+ id: z.ZodOptional<z.ZodString>;
353
+ limit: z.ZodOptional<z.ZodNumber>;
354
+ offset: z.ZodOptional<z.ZodNumber>;
355
+ }, z.ZodTypeAny, "passthrough">>>;
356
+ }, z.ZodTypeAny, "passthrough"> | undefined;
357
+ order?: number | undefined;
358
+ }[];
359
+ layout: string;
360
+ fullscreen?: boolean | undefined;
361
+ pluginId?: string | undefined;
362
+ sourceEntityType?: string | undefined;
363
+ external?: boolean | undefined;
364
+ navigation?: {
365
+ show: boolean;
366
+ slot: "primary" | "secondary";
367
+ priority: number;
368
+ label?: string | undefined;
369
+ } | undefined;
370
+ }, {
371
+ id: string;
372
+ path: string;
373
+ title?: string | undefined;
374
+ description?: string | undefined;
375
+ sections?: {
376
+ id: string;
377
+ template: string;
378
+ content?: unknown;
379
+ dataQuery?: z.objectInputType<{
380
+ entityType: z.ZodOptional<z.ZodString>;
381
+ template: z.ZodOptional<z.ZodString>;
382
+ query: z.ZodOptional<z.ZodObject<{
383
+ id: z.ZodOptional<z.ZodString>;
384
+ limit: z.ZodOptional<z.ZodNumber>;
385
+ offset: z.ZodOptional<z.ZodNumber>;
386
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
387
+ id: z.ZodOptional<z.ZodString>;
388
+ limit: z.ZodOptional<z.ZodNumber>;
389
+ offset: z.ZodOptional<z.ZodNumber>;
390
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
391
+ id: z.ZodOptional<z.ZodString>;
392
+ limit: z.ZodOptional<z.ZodNumber>;
393
+ offset: z.ZodOptional<z.ZodNumber>;
394
+ }, z.ZodTypeAny, "passthrough">>>;
395
+ }, z.ZodTypeAny, "passthrough"> | undefined;
396
+ order?: number | undefined;
397
+ }[] | undefined;
398
+ layout?: string | undefined;
399
+ fullscreen?: boolean | undefined;
400
+ pluginId?: string | undefined;
401
+ sourceEntityType?: string | undefined;
402
+ external?: boolean | undefined;
403
+ navigation?: {
404
+ show?: boolean | undefined;
405
+ label?: string | undefined;
406
+ slot?: "primary" | "secondary" | undefined;
407
+ priority?: number | undefined;
408
+ } | undefined;
409
+ }>;
410
+ type SectionDefinition = z.infer<typeof SectionDefinitionSchema>;
411
+ type RouteDefinition = z.infer<typeof RouteDefinitionSchema>;
412
+ type RouteDefinitionInput = z.input<typeof RouteDefinitionSchema>;
413
+ interface NavigationItem {
414
+ label: string;
415
+ href: string;
416
+ priority: number;
31
417
  }
418
+ /**
419
+ * Message payload schemas for route operations
420
+ */
421
+ declare const RegisterRoutesPayloadSchema: z.ZodObject<{
422
+ routes: z.ZodArray<z.ZodObject<{
423
+ id: z.ZodString;
424
+ path: z.ZodString;
425
+ title: z.ZodDefault<z.ZodString>;
426
+ description: z.ZodDefault<z.ZodString>;
427
+ sections: z.ZodDefault<z.ZodArray<z.ZodObject<{
428
+ id: z.ZodString;
429
+ template: z.ZodString;
430
+ content: z.ZodOptional<z.ZodUnknown>;
431
+ dataQuery: z.ZodOptional<z.ZodObject<{
432
+ entityType: z.ZodOptional<z.ZodString>;
433
+ template: z.ZodOptional<z.ZodString>;
434
+ query: z.ZodOptional<z.ZodObject<{
435
+ id: z.ZodOptional<z.ZodString>;
436
+ limit: z.ZodOptional<z.ZodNumber>;
437
+ offset: z.ZodOptional<z.ZodNumber>;
438
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
439
+ id: z.ZodOptional<z.ZodString>;
440
+ limit: z.ZodOptional<z.ZodNumber>;
441
+ offset: z.ZodOptional<z.ZodNumber>;
442
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
443
+ id: z.ZodOptional<z.ZodString>;
444
+ limit: z.ZodOptional<z.ZodNumber>;
445
+ offset: z.ZodOptional<z.ZodNumber>;
446
+ }, z.ZodTypeAny, "passthrough">>>;
447
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
448
+ entityType: z.ZodOptional<z.ZodString>;
449
+ template: z.ZodOptional<z.ZodString>;
450
+ query: z.ZodOptional<z.ZodObject<{
451
+ id: z.ZodOptional<z.ZodString>;
452
+ limit: z.ZodOptional<z.ZodNumber>;
453
+ offset: z.ZodOptional<z.ZodNumber>;
454
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
455
+ id: z.ZodOptional<z.ZodString>;
456
+ limit: z.ZodOptional<z.ZodNumber>;
457
+ offset: z.ZodOptional<z.ZodNumber>;
458
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
459
+ id: z.ZodOptional<z.ZodString>;
460
+ limit: z.ZodOptional<z.ZodNumber>;
461
+ offset: z.ZodOptional<z.ZodNumber>;
462
+ }, z.ZodTypeAny, "passthrough">>>;
463
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
464
+ entityType: z.ZodOptional<z.ZodString>;
465
+ template: z.ZodOptional<z.ZodString>;
466
+ query: z.ZodOptional<z.ZodObject<{
467
+ id: z.ZodOptional<z.ZodString>;
468
+ limit: z.ZodOptional<z.ZodNumber>;
469
+ offset: z.ZodOptional<z.ZodNumber>;
470
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
471
+ id: z.ZodOptional<z.ZodString>;
472
+ limit: z.ZodOptional<z.ZodNumber>;
473
+ offset: z.ZodOptional<z.ZodNumber>;
474
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
475
+ id: z.ZodOptional<z.ZodString>;
476
+ limit: z.ZodOptional<z.ZodNumber>;
477
+ offset: z.ZodOptional<z.ZodNumber>;
478
+ }, z.ZodTypeAny, "passthrough">>>;
479
+ }, z.ZodTypeAny, "passthrough">>>;
480
+ order: z.ZodOptional<z.ZodNumber>;
481
+ }, "strip", z.ZodTypeAny, {
482
+ id: string;
483
+ template: string;
484
+ content?: unknown;
485
+ dataQuery?: z.objectOutputType<{
486
+ entityType: z.ZodOptional<z.ZodString>;
487
+ template: z.ZodOptional<z.ZodString>;
488
+ query: z.ZodOptional<z.ZodObject<{
489
+ id: z.ZodOptional<z.ZodString>;
490
+ limit: z.ZodOptional<z.ZodNumber>;
491
+ offset: z.ZodOptional<z.ZodNumber>;
492
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
493
+ id: z.ZodOptional<z.ZodString>;
494
+ limit: z.ZodOptional<z.ZodNumber>;
495
+ offset: z.ZodOptional<z.ZodNumber>;
496
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
497
+ id: z.ZodOptional<z.ZodString>;
498
+ limit: z.ZodOptional<z.ZodNumber>;
499
+ offset: z.ZodOptional<z.ZodNumber>;
500
+ }, z.ZodTypeAny, "passthrough">>>;
501
+ }, z.ZodTypeAny, "passthrough"> | undefined;
502
+ order?: number | undefined;
503
+ }, {
504
+ id: string;
505
+ template: string;
506
+ content?: unknown;
507
+ dataQuery?: z.objectInputType<{
508
+ entityType: z.ZodOptional<z.ZodString>;
509
+ template: z.ZodOptional<z.ZodString>;
510
+ query: z.ZodOptional<z.ZodObject<{
511
+ id: z.ZodOptional<z.ZodString>;
512
+ limit: z.ZodOptional<z.ZodNumber>;
513
+ offset: z.ZodOptional<z.ZodNumber>;
514
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
515
+ id: z.ZodOptional<z.ZodString>;
516
+ limit: z.ZodOptional<z.ZodNumber>;
517
+ offset: z.ZodOptional<z.ZodNumber>;
518
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
519
+ id: z.ZodOptional<z.ZodString>;
520
+ limit: z.ZodOptional<z.ZodNumber>;
521
+ offset: z.ZodOptional<z.ZodNumber>;
522
+ }, z.ZodTypeAny, "passthrough">>>;
523
+ }, z.ZodTypeAny, "passthrough"> | undefined;
524
+ order?: number | undefined;
525
+ }>, "many">>;
526
+ layout: z.ZodDefault<z.ZodString>;
527
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
528
+ pluginId: z.ZodOptional<z.ZodString>;
529
+ sourceEntityType: z.ZodOptional<z.ZodString>;
530
+ external: z.ZodOptional<z.ZodBoolean>;
531
+ navigation: z.ZodOptional<z.ZodObject<{
532
+ show: z.ZodDefault<z.ZodBoolean>;
533
+ label: z.ZodOptional<z.ZodString>;
534
+ slot: z.ZodDefault<z.ZodEnum<["primary", "secondary"]>>;
535
+ priority: z.ZodDefault<z.ZodNumber>;
536
+ }, "strip", z.ZodTypeAny, {
537
+ show: boolean;
538
+ slot: "primary" | "secondary";
539
+ priority: number;
540
+ label?: string | undefined;
541
+ }, {
542
+ show?: boolean | undefined;
543
+ label?: string | undefined;
544
+ slot?: "primary" | "secondary" | undefined;
545
+ priority?: number | undefined;
546
+ }>>;
547
+ }, "strip", z.ZodTypeAny, {
548
+ id: string;
549
+ path: string;
550
+ title: string;
551
+ description: string;
552
+ sections: {
553
+ id: string;
554
+ template: string;
555
+ content?: unknown;
556
+ dataQuery?: z.objectOutputType<{
557
+ entityType: z.ZodOptional<z.ZodString>;
558
+ template: z.ZodOptional<z.ZodString>;
559
+ query: z.ZodOptional<z.ZodObject<{
560
+ id: z.ZodOptional<z.ZodString>;
561
+ limit: z.ZodOptional<z.ZodNumber>;
562
+ offset: z.ZodOptional<z.ZodNumber>;
563
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
564
+ id: z.ZodOptional<z.ZodString>;
565
+ limit: z.ZodOptional<z.ZodNumber>;
566
+ offset: z.ZodOptional<z.ZodNumber>;
567
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
568
+ id: z.ZodOptional<z.ZodString>;
569
+ limit: z.ZodOptional<z.ZodNumber>;
570
+ offset: z.ZodOptional<z.ZodNumber>;
571
+ }, z.ZodTypeAny, "passthrough">>>;
572
+ }, z.ZodTypeAny, "passthrough"> | undefined;
573
+ order?: number | undefined;
574
+ }[];
575
+ layout: string;
576
+ fullscreen?: boolean | undefined;
577
+ pluginId?: string | undefined;
578
+ sourceEntityType?: string | undefined;
579
+ external?: boolean | undefined;
580
+ navigation?: {
581
+ show: boolean;
582
+ slot: "primary" | "secondary";
583
+ priority: number;
584
+ label?: string | undefined;
585
+ } | undefined;
586
+ }, {
587
+ id: string;
588
+ path: string;
589
+ title?: string | undefined;
590
+ description?: string | undefined;
591
+ sections?: {
592
+ id: string;
593
+ template: string;
594
+ content?: unknown;
595
+ dataQuery?: z.objectInputType<{
596
+ entityType: z.ZodOptional<z.ZodString>;
597
+ template: z.ZodOptional<z.ZodString>;
598
+ query: z.ZodOptional<z.ZodObject<{
599
+ id: z.ZodOptional<z.ZodString>;
600
+ limit: z.ZodOptional<z.ZodNumber>;
601
+ offset: z.ZodOptional<z.ZodNumber>;
602
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
603
+ id: z.ZodOptional<z.ZodString>;
604
+ limit: z.ZodOptional<z.ZodNumber>;
605
+ offset: z.ZodOptional<z.ZodNumber>;
606
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
607
+ id: z.ZodOptional<z.ZodString>;
608
+ limit: z.ZodOptional<z.ZodNumber>;
609
+ offset: z.ZodOptional<z.ZodNumber>;
610
+ }, z.ZodTypeAny, "passthrough">>>;
611
+ }, z.ZodTypeAny, "passthrough"> | undefined;
612
+ order?: number | undefined;
613
+ }[] | undefined;
614
+ layout?: string | undefined;
615
+ fullscreen?: boolean | undefined;
616
+ pluginId?: string | undefined;
617
+ sourceEntityType?: string | undefined;
618
+ external?: boolean | undefined;
619
+ navigation?: {
620
+ show?: boolean | undefined;
621
+ label?: string | undefined;
622
+ slot?: "primary" | "secondary" | undefined;
623
+ priority?: number | undefined;
624
+ } | undefined;
625
+ }>, "many">;
626
+ pluginId: z.ZodString;
627
+ }, "strip", z.ZodTypeAny, {
628
+ pluginId: string;
629
+ routes: {
630
+ id: string;
631
+ path: string;
632
+ title: string;
633
+ description: string;
634
+ sections: {
635
+ id: string;
636
+ template: string;
637
+ content?: unknown;
638
+ dataQuery?: z.objectOutputType<{
639
+ entityType: z.ZodOptional<z.ZodString>;
640
+ template: z.ZodOptional<z.ZodString>;
641
+ query: z.ZodOptional<z.ZodObject<{
642
+ id: z.ZodOptional<z.ZodString>;
643
+ limit: z.ZodOptional<z.ZodNumber>;
644
+ offset: z.ZodOptional<z.ZodNumber>;
645
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
646
+ id: z.ZodOptional<z.ZodString>;
647
+ limit: z.ZodOptional<z.ZodNumber>;
648
+ offset: z.ZodOptional<z.ZodNumber>;
649
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
650
+ id: z.ZodOptional<z.ZodString>;
651
+ limit: z.ZodOptional<z.ZodNumber>;
652
+ offset: z.ZodOptional<z.ZodNumber>;
653
+ }, z.ZodTypeAny, "passthrough">>>;
654
+ }, z.ZodTypeAny, "passthrough"> | undefined;
655
+ order?: number | undefined;
656
+ }[];
657
+ layout: string;
658
+ fullscreen?: boolean | undefined;
659
+ pluginId?: string | undefined;
660
+ sourceEntityType?: string | undefined;
661
+ external?: boolean | undefined;
662
+ navigation?: {
663
+ show: boolean;
664
+ slot: "primary" | "secondary";
665
+ priority: number;
666
+ label?: string | undefined;
667
+ } | undefined;
668
+ }[];
669
+ }, {
670
+ pluginId: string;
671
+ routes: {
672
+ id: string;
673
+ path: string;
674
+ title?: string | undefined;
675
+ description?: string | undefined;
676
+ sections?: {
677
+ id: string;
678
+ template: string;
679
+ content?: unknown;
680
+ dataQuery?: z.objectInputType<{
681
+ entityType: z.ZodOptional<z.ZodString>;
682
+ template: z.ZodOptional<z.ZodString>;
683
+ query: z.ZodOptional<z.ZodObject<{
684
+ id: z.ZodOptional<z.ZodString>;
685
+ limit: z.ZodOptional<z.ZodNumber>;
686
+ offset: z.ZodOptional<z.ZodNumber>;
687
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
688
+ id: z.ZodOptional<z.ZodString>;
689
+ limit: z.ZodOptional<z.ZodNumber>;
690
+ offset: z.ZodOptional<z.ZodNumber>;
691
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
692
+ id: z.ZodOptional<z.ZodString>;
693
+ limit: z.ZodOptional<z.ZodNumber>;
694
+ offset: z.ZodOptional<z.ZodNumber>;
695
+ }, z.ZodTypeAny, "passthrough">>>;
696
+ }, z.ZodTypeAny, "passthrough"> | undefined;
697
+ order?: number | undefined;
698
+ }[] | undefined;
699
+ layout?: string | undefined;
700
+ fullscreen?: boolean | undefined;
701
+ pluginId?: string | undefined;
702
+ sourceEntityType?: string | undefined;
703
+ external?: boolean | undefined;
704
+ navigation?: {
705
+ show?: boolean | undefined;
706
+ label?: string | undefined;
707
+ slot?: "primary" | "secondary" | undefined;
708
+ priority?: number | undefined;
709
+ } | undefined;
710
+ }[];
711
+ }>;
712
+ declare const UnregisterRoutesPayloadSchema: z.ZodObject<{
713
+ paths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
714
+ pluginId: z.ZodOptional<z.ZodString>;
715
+ }, "strip", z.ZodTypeAny, {
716
+ pluginId?: string | undefined;
717
+ paths?: string[] | undefined;
718
+ }, {
719
+ pluginId?: string | undefined;
720
+ paths?: string[] | undefined;
721
+ }>;
722
+ declare const ListRoutesPayloadSchema: z.ZodObject<{
723
+ pluginId: z.ZodOptional<z.ZodString>;
724
+ }, "strip", z.ZodTypeAny, {
725
+ pluginId?: string | undefined;
726
+ }, {
727
+ pluginId?: string | undefined;
728
+ }>;
729
+ declare const GetRoutePayloadSchema: z.ZodObject<{
730
+ path: z.ZodString;
731
+ }, "strip", z.ZodTypeAny, {
732
+ path: string;
733
+ }, {
734
+ path: string;
735
+ }>;
32
736
 
33
- export const NavigationSlots: readonly ["primary", "secondary"];
34
- export type NavigationSlot = (typeof NavigationSlots)[number];
35
- export interface EntityDisplayEntry {
36
- label: string;
37
- pluralName?: string;
38
- layout?: string;
39
- paginate?: boolean;
40
- pageSize?: number;
41
- navigation?: { show?: boolean; slot?: NavigationSlot; priority?: number };
42
- }
43
- export interface SectionDefinition {
44
- id: string;
45
- template: string;
46
- content?: unknown;
47
- dataQuery?: Record<string, unknown>;
48
- order?: number;
49
- }
50
- export interface RouteDefinition {
51
- id: string;
52
- path: string;
53
- title: string;
54
- description: string;
55
- sections: SectionDefinition[];
56
- layout: string;
57
- fullscreen?: boolean;
58
- pluginId?: string;
59
- sourceEntityType?: string;
60
- external?: boolean;
61
- navigation?: {
62
- show?: boolean;
63
- label?: string;
64
- slot?: NavigationSlot;
65
- priority?: number;
66
- };
737
+ declare const apiRouteDefinitionSchema: z.ZodObject<{
738
+ /** Path suffix (prefixed with /api/{pluginId}) */
739
+ path: z.ZodString;
740
+ /** HTTP method */
741
+ method: z.ZodDefault<z.ZodEnum<["GET", "POST", "PUT", "DELETE"]>>;
742
+ /** Tool to invoke (without plugin prefix) */
743
+ tool: z.ZodString;
744
+ /** Allow unauthenticated access */
745
+ public: z.ZodDefault<z.ZodBoolean>;
746
+ /** Redirect URL on success (for form submissions) */
747
+ successRedirect: z.ZodOptional<z.ZodString>;
748
+ /** Redirect URL on error (for form submissions) */
749
+ errorRedirect: z.ZodOptional<z.ZodString>;
750
+ }, "strip", z.ZodTypeAny, {
751
+ path: string;
752
+ method: "GET" | "POST" | "PUT" | "DELETE";
753
+ tool: string;
754
+ public: boolean;
755
+ successRedirect?: string | undefined;
756
+ errorRedirect?: string | undefined;
757
+ }, {
758
+ path: string;
759
+ tool: string;
760
+ method?: "GET" | "POST" | "PUT" | "DELETE" | undefined;
761
+ public?: boolean | undefined;
762
+ successRedirect?: string | undefined;
763
+ errorRedirect?: string | undefined;
764
+ }>;
765
+ type ApiRouteDefinition = z.infer<typeof apiRouteDefinitionSchema>;
766
+ /**
767
+ * A registered API route with full path and plugin context
768
+ * Returned by Shell.getPluginApiRoutes()
769
+ */
770
+ interface RegisteredApiRoute {
771
+ /** The plugin that registered this route */
772
+ pluginId: string;
773
+ /** Full path including /api/{pluginId} prefix */
774
+ fullPath: string;
775
+ /** The original route definition */
776
+ definition: ApiRouteDefinition;
67
777
  }
68
- export type RouteDefinitionInput = Partial<RouteDefinition> &
69
- Pick<RouteDefinition, "id" | "path">;
70
- export interface NavigationItem {
71
- label: string;
72
- href: string;
73
- priority: number;
74
- }
75
- export const RouteDefinitionSchema: z.ZodSchema<RouteDefinition>;
76
- export const RegisterRoutesPayloadSchema: z.ZodSchema<unknown>;
77
- export const UnregisterRoutesPayloadSchema: z.ZodSchema<unknown>;
78
- export const ListRoutesPayloadSchema: z.ZodSchema<unknown>;
79
- export const GetRoutePayloadSchema: z.ZodSchema<unknown>;
80
778
 
81
- export interface ApiRouteDefinition {
82
- path: string;
83
- method?: "GET" | "POST" | "PUT" | "DELETE";
84
- tool: string;
85
- public?: boolean;
86
- successRedirect?: string;
87
- errorRedirect?: string;
779
+ declare const WebRouteMethods: readonly ["GET", "POST", "PUT", "DELETE", "OPTIONS"];
780
+ type WebRouteMethod = (typeof WebRouteMethods)[number];
781
+ type WebRouteHandler = (request: Request) => Response | Promise<Response>;
782
+ interface WebRouteDefinition {
783
+ /** Absolute mounted path (e.g. "/cms" or "/cms-config") */
784
+ path: string;
785
+ /** HTTP method */
786
+ method?: WebRouteMethod;
787
+ /** Allow unauthenticated access */
788
+ public?: boolean;
789
+ /** Request handler */
790
+ handler: WebRouteHandler;
88
791
  }
89
- export interface RegisteredApiRoute {
90
- pluginId: string;
91
- fullPath: string;
92
- definition: ApiRouteDefinition;
792
+ interface RegisteredWebRoute {
793
+ /** The plugin that registered this route */
794
+ pluginId: string;
795
+ /** The mounted path */
796
+ fullPath: string;
797
+ /** The original route definition */
798
+ definition: WebRouteDefinition;
93
799
  }
94
- export type WebRouteMethod = "GET" | "POST" | "PUT" | "DELETE" | "OPTIONS";
95
- export type WebRouteHandler = (
96
- request: Request,
97
- ) => Response | Promise<Response>;
98
- export interface WebRouteDefinition {
99
- path: string;
100
- method?: WebRouteMethod;
101
- public?: boolean;
102
- handler: WebRouteHandler;
800
+
801
+ /**
802
+ * Daemon health status schema
803
+ */
804
+ declare const DaemonHealthSchema: z.ZodObject<{
805
+ status: z.ZodEnum<["healthy", "warning", "error", "unknown"]>;
806
+ message: z.ZodOptional<z.ZodString>;
807
+ lastCheck: z.ZodOptional<z.ZodDate>;
808
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
809
+ }, "strip", z.ZodTypeAny, {
810
+ status: "unknown" | "healthy" | "warning" | "error";
811
+ message?: string | undefined;
812
+ lastCheck?: Date | undefined;
813
+ details?: Record<string, unknown> | undefined;
814
+ }, {
815
+ status: "unknown" | "healthy" | "warning" | "error";
816
+ message?: string | undefined;
817
+ lastCheck?: Date | undefined;
818
+ details?: Record<string, unknown> | undefined;
819
+ }>;
820
+ type DaemonHealth = z.infer<typeof DaemonHealthSchema>;
821
+ /**
822
+ * Daemon status info schema for validation
823
+ */
824
+ declare const DaemonStatusInfoSchema: z.ZodObject<{
825
+ name: z.ZodString;
826
+ pluginId: z.ZodString;
827
+ status: z.ZodString;
828
+ health: z.ZodOptional<z.ZodObject<{
829
+ status: z.ZodEnum<["healthy", "warning", "error", "unknown"]>;
830
+ message: z.ZodOptional<z.ZodString>;
831
+ lastCheck: z.ZodOptional<z.ZodDate>;
832
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
833
+ }, "strip", z.ZodTypeAny, {
834
+ status: "unknown" | "healthy" | "warning" | "error";
835
+ message?: string | undefined;
836
+ lastCheck?: Date | undefined;
837
+ details?: Record<string, unknown> | undefined;
838
+ }, {
839
+ status: "unknown" | "healthy" | "warning" | "error";
840
+ message?: string | undefined;
841
+ lastCheck?: Date | undefined;
842
+ details?: Record<string, unknown> | undefined;
843
+ }>>;
844
+ }, "strip", z.ZodTypeAny, {
845
+ status: string;
846
+ name: string;
847
+ pluginId: string;
848
+ health?: {
849
+ status: "unknown" | "healthy" | "warning" | "error";
850
+ message?: string | undefined;
851
+ lastCheck?: Date | undefined;
852
+ details?: Record<string, unknown> | undefined;
853
+ } | undefined;
854
+ }, {
855
+ status: string;
856
+ name: string;
857
+ pluginId: string;
858
+ health?: {
859
+ status: "unknown" | "healthy" | "warning" | "error";
860
+ message?: string | undefined;
861
+ lastCheck?: Date | undefined;
862
+ details?: Record<string, unknown> | undefined;
863
+ } | undefined;
864
+ }>;
865
+ type DaemonStatusInfo = z.infer<typeof DaemonStatusInfoSchema>;
866
+ /**
867
+ * Daemon interface for long-running interface processes
868
+ */
869
+ interface Daemon {
870
+ /**
871
+ * Start the daemon - called when plugin is initialized
872
+ */
873
+ start: () => Promise<void>;
874
+ /**
875
+ * Stop the daemon - called when plugin is unloaded/shutdown
876
+ */
877
+ stop: () => Promise<void>;
878
+ /**
879
+ * Optional health check - called periodically to monitor daemon health
880
+ */
881
+ healthCheck?: () => Promise<DaemonHealth>;
103
882
  }
104
- export interface RegisteredWebRoute {
105
- pluginId: string;
106
- fullPath: string;
107
- definition: WebRouteDefinition;
883
+ /**
884
+ * Information about a registered daemon
885
+ */
886
+ interface DaemonInfo {
887
+ name: string;
888
+ daemon: Daemon;
889
+ pluginId: string;
890
+ status: "stopped" | "starting" | "running" | "stopping" | "error";
891
+ health?: DaemonHealth;
892
+ error?: Error;
893
+ startedAt?: Date;
894
+ stoppedAt?: Date;
108
895
  }
109
896
 
110
- export interface MessageResponse<T = unknown> {
111
- success: boolean;
112
- data?: T;
113
- error?: string;
897
+ /**
898
+ * User permission level schema
899
+ */
900
+ declare const UserPermissionLevelSchema: z.ZodEnum<["anchor", "trusted", "public"]>;
901
+ type UserPermissionLevel = z.infer<typeof UserPermissionLevelSchema>;
902
+ /**
903
+ * Generic interface for items with visibility
904
+ */
905
+ interface WithVisibility {
906
+ visibility?: UserPermissionLevel;
114
907
  }
115
- export type MessageSender = <T = unknown, R = unknown>(
116
- channel: string,
117
- payload: T,
118
- ) => Promise<MessageResponse<R>>;
119
- export interface MessageWithPayload<T = unknown> {
120
- channel: string;
121
- payload: T;
122
- timestamp?: number;
908
+ /**
909
+ * Permission rule for pattern-based permission matching
910
+ */
911
+ interface PermissionRule {
912
+ pattern: string;
913
+ level: UserPermissionLevel;
123
914
  }
124
- export interface MessageContext {
125
- interfaceType?: string;
126
- userId?: string;
127
- channelId?: string;
128
- [key: string]: unknown;
915
+ /**
916
+ * Configuration for the permission system
917
+ */
918
+ interface PermissionConfig {
919
+ anchors?: string[];
920
+ trusted?: string[];
921
+ rules?: PermissionRule[];
129
922
  }
923
+
924
+ export { BaseMessageSchema, GetRoutePayloadSchema, ListRoutesPayloadSchema, MessageResponseSchema, NavigationSlots, RegisterRoutesPayloadSchema, RouteDefinitionSchema, UnregisterRoutesPayloadSchema, UserPermissionLevelSchema };
925
+ export type { ApiRouteDefinition, BaseMessage, Daemon, DaemonHealth, DaemonInfo, DaemonStatusInfo, EntityDisplayEntry, MessageContext, MessageResponse, MessageSendOptions, MessageSender, MessageWithPayload, NavigationItem, NavigationSlot, PermissionConfig, PermissionRule, RegisteredApiRoute, RegisteredWebRoute, RouteDefinition, RouteDefinitionInput, SectionDefinition, UserPermissionLevel, WebRouteDefinition, WebRouteHandler, WebRouteMethod, WithVisibility };