@brydio/manifest 0.1.0-alpha.3 → 0.1.0-alpha.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/package.json +2 -2
- package/src/base.d.ts +17 -1
- package/src/base.js +13 -1
- package/src/bundle.d.ts +8 -1
- package/src/bundle.js +28 -3
- package/src/define.d.ts +1 -1
- package/src/define.js +1 -1
- package/src/field-types.d.ts +24 -4
- package/src/field-types.js +42 -4
- package/src/grants.d.ts +1 -1
- package/src/grants.js +1 -1
- package/src/index.d.ts +6 -5
- package/src/index.js +6 -5
- package/src/requirements.d.ts +122 -0
- package/src/requirements.js +692 -0
- package/src/schema.d.ts +434 -4
- package/src/schema.js +233 -15
- package/src/secrets.d.ts +14 -0
- package/src/secrets.js +27 -5
- package/src/validate.d.ts +8 -2
- package/src/validate.js +7 -5
package/src/schema.d.ts
CHANGED
|
@@ -1,6 +1,50 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { FieldTypeInvalid, type FieldType } from './field-types.js';
|
|
3
3
|
export { COLOUR_TOKENS, FIELD_LIMITS, parseFieldType, RESERVED_FIELDS, structuredFields, type FieldKind, type FieldType, } from './field-types.js';
|
|
4
|
+
/**
|
|
5
|
+
* What an app adds to `.brydio/app.json` to be more than a bundle of servers
|
|
6
|
+
* and skills: where it is shown, what it keeps, the tools that come from what
|
|
7
|
+
* it keeps, its screens, and what it asks the workspace for (contracts §4).
|
|
8
|
+
*
|
|
9
|
+
* Every key is optional, so every manifest E5 already imports still parses.
|
|
10
|
+
* A copy of Brydio's `apps/api/src/apps/manifest/manifest-ext.schema.ts`, the
|
|
11
|
+
* schema the server reads an installed app's manifest with. The two change
|
|
12
|
+
* together; `test/manifest.test.ts` parses the same manifests with both.
|
|
13
|
+
*
|
|
14
|
+
* Zod says what the additions *are*. The checks that are claims about one
|
|
15
|
+
* field against another — a search list naming a date, a placement naming a
|
|
16
|
+
* screen nobody declared — are `dataProblems` below, with a code each, so an
|
|
17
|
+
* import report can say which collection and which field, not just "invalid".
|
|
18
|
+
*/
|
|
19
|
+
declare const placementSettingSchema: z.ZodObject<{
|
|
20
|
+
type: z.ZodEnum<{
|
|
21
|
+
string: "string";
|
|
22
|
+
url: "url";
|
|
23
|
+
}>;
|
|
24
|
+
label: z.ZodString;
|
|
25
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
26
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
export type PlacementSettingSpec = z.infer<typeof placementSettingSchema>;
|
|
29
|
+
/**
|
|
30
|
+
* How deep a folder's rows may nest, counting its own rows as the first
|
|
31
|
+
* level (ADR-A21): Issues → sprints → issues is two. Each level is listed
|
|
32
|
+
* only when a person opens its parent, so depth costs nothing while closed;
|
|
33
|
+
* the limit is for the sidebar's width and a person's patience.
|
|
34
|
+
*/
|
|
35
|
+
export declare const MAX_FOLDER_DEPTH = 4;
|
|
36
|
+
/** The sizes a Home card or a project widget can be drawn at (CC11-F10). */
|
|
37
|
+
export declare const HOME_CARD_SIZES: readonly ["small", "medium", "large"];
|
|
38
|
+
export type HomeCardSize = (typeof HOME_CARD_SIZES)[number];
|
|
39
|
+
/** The kinds drawn as a card, which say the sizes they draw well at. */
|
|
40
|
+
export declare const SIZED_PLACEMENT_KINDS: readonly ["home", "project-widget"];
|
|
41
|
+
/** A stable identity for one independently addable placement offering. */
|
|
42
|
+
export declare const PLACEMENT_KEY: RegExp;
|
|
43
|
+
export declare function effectivePlacementKey(one: {
|
|
44
|
+
key?: string;
|
|
45
|
+
kind: string;
|
|
46
|
+
screen: string;
|
|
47
|
+
}): string;
|
|
4
48
|
/** Most custom tools one app may declare (A3-F08). */
|
|
5
49
|
export declare const MAX_CUSTOM_TOOLS = 20;
|
|
6
50
|
/** A tool name the model and a policy row can both use as it is. */
|
|
@@ -18,16 +62,80 @@ declare const customToolSchema: z.ZodObject<{
|
|
|
18
62
|
collection: z.ZodOptional<z.ZodString>;
|
|
19
63
|
}, z.core.$strip>;
|
|
20
64
|
export type CustomToolSpec = z.infer<typeof customToolSchema>;
|
|
65
|
+
/** Most secrets one app may declare (ADR-A24). */
|
|
66
|
+
export declare const MAX_APP_SECRETS = 20;
|
|
67
|
+
/** The longest value one secret may hold, in characters. */
|
|
68
|
+
export declare const MAX_SECRET_CHARS: number;
|
|
69
|
+
/** A secret's name, as a handler asks for it: `api_key`. */
|
|
70
|
+
export declare const SECRET_NAME: RegExp;
|
|
71
|
+
/**
|
|
72
|
+
* A secret the app needs (ADR-A24): named here, never valued here. The value
|
|
73
|
+
* is entered in the app's settings by an administrator, or stored by the
|
|
74
|
+
* app's own handler with `secrets.set`, and only that app's handlers can read
|
|
75
|
+
* it, with `secrets.get`. A screen never can.
|
|
76
|
+
*
|
|
77
|
+
* `install` (the default) is one value for the whole install; `instance` is
|
|
78
|
+
* one per instance.
|
|
79
|
+
*/
|
|
80
|
+
declare const secretSchema: z.ZodObject<{
|
|
81
|
+
name: z.ZodString;
|
|
82
|
+
label: z.ZodString;
|
|
83
|
+
description: z.ZodOptional<z.ZodString>;
|
|
84
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
85
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
86
|
+
instance: "instance";
|
|
87
|
+
install: "install";
|
|
88
|
+
}>>;
|
|
89
|
+
}, z.core.$strip>;
|
|
90
|
+
export type SecretSpec = z.infer<typeof secretSchema>;
|
|
21
91
|
declare const extensionShape: {
|
|
22
92
|
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
93
|
+
key: z.ZodOptional<z.ZodString>;
|
|
23
94
|
kind: z.ZodEnum<{
|
|
95
|
+
home: "home";
|
|
96
|
+
"project-widget": "project-widget";
|
|
24
97
|
"project-tab": "project-tab";
|
|
25
98
|
"project-sidebar": "project-sidebar";
|
|
26
99
|
"workspace-sidebar": "workspace-sidebar";
|
|
27
100
|
}>;
|
|
28
101
|
screen: z.ZodString;
|
|
102
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
103
|
+
small: "small";
|
|
104
|
+
medium: "medium";
|
|
105
|
+
large: "large";
|
|
106
|
+
}>>>;
|
|
29
107
|
label: z.ZodOptional<z.ZodString>;
|
|
30
108
|
icon: z.ZodOptional<z.ZodString>;
|
|
109
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
110
|
+
type: z.ZodEnum<{
|
|
111
|
+
string: "string";
|
|
112
|
+
url: "url";
|
|
113
|
+
}>;
|
|
114
|
+
label: z.ZodString;
|
|
115
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
116
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
117
|
+
}, z.core.$strip>>>;
|
|
118
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
119
|
+
tool: z.ZodString;
|
|
120
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
121
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
122
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
123
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
124
|
+
tool: z.ZodString;
|
|
125
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
126
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
127
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
128
|
+
}, z.core.$strip>>;
|
|
129
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
130
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
131
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
132
|
+
tool: z.ZodString;
|
|
133
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
134
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
135
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
136
|
+
}, z.core.$strip>>;
|
|
137
|
+
}, z.core.$strip>>>;
|
|
138
|
+
}, z.core.$strip>>;
|
|
31
139
|
}, z.core.$strip>>>;
|
|
32
140
|
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
33
141
|
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
@@ -53,6 +161,17 @@ declare const extensionShape: {
|
|
|
53
161
|
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
54
162
|
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
55
163
|
}, z.core.$strip>>;
|
|
164
|
+
/** The secrets its handlers read (ADR-A24): names only, never values. */
|
|
165
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
166
|
+
name: z.ZodString;
|
|
167
|
+
label: z.ZodString;
|
|
168
|
+
description: z.ZodOptional<z.ZodString>;
|
|
169
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
170
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
171
|
+
instance: "instance";
|
|
172
|
+
install: "install";
|
|
173
|
+
}>>;
|
|
174
|
+
}, z.core.$strip>>>;
|
|
56
175
|
/**
|
|
57
176
|
* How records move when the schema changes between versions (A3-F07).
|
|
58
177
|
* Checked against the previous version when a version is published, and
|
|
@@ -99,7 +218,7 @@ export interface DataProblem {
|
|
|
99
218
|
field?: string;
|
|
100
219
|
message: string;
|
|
101
220
|
}
|
|
102
|
-
export type DataProblemCode = FieldTypeInvalid['code'] | 'data_too_many_collections' | 'data_too_many_fields' | 'data_collection_name_format' | 'data_field_name_format' | 'data_field_reserved' | 'data_label_format' | 'data_label_taken' | 'data_project_field_twice' | 'data_search_unknown_field' | 'data_search_not_text' | 'grant_collection_missing' | 'grant_tool_missing' | 'custom_name_taken' | 'custom_collection_unknown' | 'custom_input_invalid' | 'placement_screen_unknown';
|
|
221
|
+
export type DataProblemCode = FieldTypeInvalid['code'] | 'data_too_many_collections' | 'data_too_many_fields' | 'data_collection_name_format' | 'data_field_name_format' | 'data_field_reserved' | 'data_label_format' | 'data_label_taken' | 'data_project_field_twice' | 'data_search_unknown_field' | 'data_search_not_text' | 'grant_collection_missing' | 'grant_tool_missing' | 'custom_name_taken' | 'custom_collection_unknown' | 'custom_input_invalid' | 'placement_key_taken' | 'placement_screen_unknown' | 'placement_home_sizes' | 'placement_sizes_not_home' | 'placement_widget_sizes' | 'placement_tab_retired' | 'placement_children_too_deep' | 'placement_create_tool_unknown' | 'placement_create_not_write' | 'secret_name_taken' | 'grant_secrets_missing';
|
|
103
222
|
type Additions = z.infer<z.ZodObject<typeof extensionShape>>;
|
|
104
223
|
/**
|
|
105
224
|
* Everything wrong with an app's additions that a type cannot say.
|
|
@@ -108,20 +227,62 @@ type Additions = z.infer<z.ZodObject<typeof extensionShape>>;
|
|
|
108
227
|
* report; the zod schemas below run it too, so a parse never accepts what
|
|
109
228
|
* this refuses.
|
|
110
229
|
*/
|
|
111
|
-
export
|
|
230
|
+
export interface DataProblemOptions {
|
|
231
|
+
/** Off where the grants are the install's record, not the manifest's. */
|
|
112
232
|
grants?: boolean;
|
|
113
|
-
|
|
233
|
+
/** On for a manifest being written now: refuses kinds that are retired, such as `project-tab`. */
|
|
234
|
+
retired?: boolean;
|
|
235
|
+
}
|
|
236
|
+
export declare function dataProblems(additions: Additions, options?: DataProblemOptions): DataProblem[];
|
|
114
237
|
/** The additions alone, for code that has the rest of the manifest already. */
|
|
115
238
|
export declare const manifestExtensionsSchema: z.ZodObject<{
|
|
116
239
|
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
240
|
+
key: z.ZodOptional<z.ZodString>;
|
|
117
241
|
kind: z.ZodEnum<{
|
|
242
|
+
home: "home";
|
|
243
|
+
"project-widget": "project-widget";
|
|
118
244
|
"project-tab": "project-tab";
|
|
119
245
|
"project-sidebar": "project-sidebar";
|
|
120
246
|
"workspace-sidebar": "workspace-sidebar";
|
|
121
247
|
}>;
|
|
122
248
|
screen: z.ZodString;
|
|
249
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
250
|
+
small: "small";
|
|
251
|
+
medium: "medium";
|
|
252
|
+
large: "large";
|
|
253
|
+
}>>>;
|
|
123
254
|
label: z.ZodOptional<z.ZodString>;
|
|
124
255
|
icon: z.ZodOptional<z.ZodString>;
|
|
256
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
257
|
+
type: z.ZodEnum<{
|
|
258
|
+
string: "string";
|
|
259
|
+
url: "url";
|
|
260
|
+
}>;
|
|
261
|
+
label: z.ZodString;
|
|
262
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
263
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
264
|
+
}, z.core.$strip>>>;
|
|
265
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
266
|
+
tool: z.ZodString;
|
|
267
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
268
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
269
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
270
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
271
|
+
tool: z.ZodString;
|
|
272
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
273
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
274
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
275
|
+
}, z.core.$strip>>;
|
|
276
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
277
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
278
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
279
|
+
tool: z.ZodString;
|
|
280
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
281
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
282
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
283
|
+
}, z.core.$strip>>;
|
|
284
|
+
}, z.core.$strip>>>;
|
|
285
|
+
}, z.core.$strip>>;
|
|
125
286
|
}, z.core.$strip>>>;
|
|
126
287
|
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
127
288
|
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
@@ -147,6 +308,16 @@ export declare const manifestExtensionsSchema: z.ZodObject<{
|
|
|
147
308
|
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
148
309
|
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
149
310
|
}, z.core.$strip>>;
|
|
311
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
312
|
+
name: z.ZodString;
|
|
313
|
+
label: z.ZodString;
|
|
314
|
+
description: z.ZodOptional<z.ZodString>;
|
|
315
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
316
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
317
|
+
instance: "instance";
|
|
318
|
+
install: "install";
|
|
319
|
+
}>>;
|
|
320
|
+
}, z.core.$strip>>>;
|
|
150
321
|
migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
151
322
|
version: z.ZodString;
|
|
152
323
|
steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -183,14 +354,52 @@ export declare const manifestExtensionsSchema: z.ZodObject<{
|
|
|
183
354
|
*/
|
|
184
355
|
export declare const storedExtensionsSchema: z.ZodObject<{
|
|
185
356
|
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
357
|
+
key: z.ZodOptional<z.ZodString>;
|
|
186
358
|
kind: z.ZodEnum<{
|
|
359
|
+
home: "home";
|
|
360
|
+
"project-widget": "project-widget";
|
|
187
361
|
"project-tab": "project-tab";
|
|
188
362
|
"project-sidebar": "project-sidebar";
|
|
189
363
|
"workspace-sidebar": "workspace-sidebar";
|
|
190
364
|
}>;
|
|
191
365
|
screen: z.ZodString;
|
|
366
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
367
|
+
small: "small";
|
|
368
|
+
medium: "medium";
|
|
369
|
+
large: "large";
|
|
370
|
+
}>>>;
|
|
192
371
|
label: z.ZodOptional<z.ZodString>;
|
|
193
372
|
icon: z.ZodOptional<z.ZodString>;
|
|
373
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
374
|
+
type: z.ZodEnum<{
|
|
375
|
+
string: "string";
|
|
376
|
+
url: "url";
|
|
377
|
+
}>;
|
|
378
|
+
label: z.ZodString;
|
|
379
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
380
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
381
|
+
}, z.core.$strip>>>;
|
|
382
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
383
|
+
tool: z.ZodString;
|
|
384
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
385
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
386
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
387
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
388
|
+
tool: z.ZodString;
|
|
389
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
390
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
391
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
392
|
+
}, z.core.$strip>>;
|
|
393
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
394
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
395
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
396
|
+
tool: z.ZodString;
|
|
397
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
398
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
399
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
400
|
+
}, z.core.$strip>>;
|
|
401
|
+
}, z.core.$strip>>>;
|
|
402
|
+
}, z.core.$strip>>;
|
|
194
403
|
}, z.core.$strip>>>;
|
|
195
404
|
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
196
405
|
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
@@ -216,6 +425,16 @@ export declare const storedExtensionsSchema: z.ZodObject<{
|
|
|
216
425
|
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
217
426
|
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
218
427
|
}, z.core.$strip>>;
|
|
428
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
429
|
+
name: z.ZodString;
|
|
430
|
+
label: z.ZodString;
|
|
431
|
+
description: z.ZodOptional<z.ZodString>;
|
|
432
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
433
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
434
|
+
instance: "instance";
|
|
435
|
+
install: "install";
|
|
436
|
+
}>>;
|
|
437
|
+
}, z.core.$strip>>>;
|
|
219
438
|
migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
220
439
|
version: z.ZodString;
|
|
221
440
|
steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -266,7 +485,14 @@ export declare const appManifestSchema: z.ZodObject<{
|
|
|
266
485
|
terms: z.ZodOptional<z.ZodString>;
|
|
267
486
|
support: z.ZodOptional<z.ZodString>;
|
|
268
487
|
}, z.core.$strip>>;
|
|
269
|
-
|
|
488
|
+
logo: z.ZodOptional<z.ZodObject<{
|
|
489
|
+
color: z.ZodString;
|
|
490
|
+
mono: z.ZodString;
|
|
491
|
+
}, z.core.$strip>>;
|
|
492
|
+
icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
493
|
+
color: z.ZodString;
|
|
494
|
+
mono: z.ZodString;
|
|
495
|
+
}, z.core.$strip>]>>;
|
|
270
496
|
brandColor: z.ZodOptional<z.ZodString>;
|
|
271
497
|
brandColorDark: z.ZodOptional<z.ZodString>;
|
|
272
498
|
defaultPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -280,14 +506,52 @@ export declare const appManifestSchema: z.ZodObject<{
|
|
|
280
506
|
}, z.core.$strip>>;
|
|
281
507
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
282
508
|
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
509
|
+
key: z.ZodOptional<z.ZodString>;
|
|
283
510
|
kind: z.ZodEnum<{
|
|
511
|
+
home: "home";
|
|
512
|
+
"project-widget": "project-widget";
|
|
284
513
|
"project-tab": "project-tab";
|
|
285
514
|
"project-sidebar": "project-sidebar";
|
|
286
515
|
"workspace-sidebar": "workspace-sidebar";
|
|
287
516
|
}>;
|
|
288
517
|
screen: z.ZodString;
|
|
518
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
519
|
+
small: "small";
|
|
520
|
+
medium: "medium";
|
|
521
|
+
large: "large";
|
|
522
|
+
}>>>;
|
|
289
523
|
label: z.ZodOptional<z.ZodString>;
|
|
290
524
|
icon: z.ZodOptional<z.ZodString>;
|
|
525
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
526
|
+
type: z.ZodEnum<{
|
|
527
|
+
string: "string";
|
|
528
|
+
url: "url";
|
|
529
|
+
}>;
|
|
530
|
+
label: z.ZodString;
|
|
531
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
532
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
533
|
+
}, z.core.$strip>>>;
|
|
534
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
535
|
+
tool: z.ZodString;
|
|
536
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
537
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
538
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
539
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
540
|
+
tool: z.ZodString;
|
|
541
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
542
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
543
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
544
|
+
}, z.core.$strip>>;
|
|
545
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
546
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
547
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
548
|
+
tool: z.ZodString;
|
|
549
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
550
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
551
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
552
|
+
}, z.core.$strip>>;
|
|
553
|
+
}, z.core.$strip>>>;
|
|
554
|
+
}, z.core.$strip>>;
|
|
291
555
|
}, z.core.$strip>>>;
|
|
292
556
|
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
293
557
|
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
@@ -313,6 +577,172 @@ export declare const appManifestSchema: z.ZodObject<{
|
|
|
313
577
|
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
314
578
|
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
315
579
|
}, z.core.$strip>>;
|
|
580
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
581
|
+
name: z.ZodString;
|
|
582
|
+
label: z.ZodString;
|
|
583
|
+
description: z.ZodOptional<z.ZodString>;
|
|
584
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
585
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
586
|
+
instance: "instance";
|
|
587
|
+
install: "install";
|
|
588
|
+
}>>;
|
|
589
|
+
}, z.core.$strip>>>;
|
|
590
|
+
migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
591
|
+
version: z.ZodString;
|
|
592
|
+
steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
593
|
+
op: z.ZodLiteral<"add">;
|
|
594
|
+
collection: z.ZodString;
|
|
595
|
+
field: z.ZodString;
|
|
596
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
597
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
598
|
+
op: z.ZodLiteral<"rename">;
|
|
599
|
+
collection: z.ZodString;
|
|
600
|
+
from: z.ZodString;
|
|
601
|
+
to: z.ZodString;
|
|
602
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
603
|
+
op: z.ZodLiteral<"drop">;
|
|
604
|
+
collection: z.ZodString;
|
|
605
|
+
field: z.ZodString;
|
|
606
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
607
|
+
op: z.ZodLiteral<"dropCollection">;
|
|
608
|
+
collection: z.ZodString;
|
|
609
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
610
|
+
op: z.ZodLiteral<"replace">;
|
|
611
|
+
collection: z.ZodString;
|
|
612
|
+
field: z.ZodString;
|
|
613
|
+
from: z.ZodString;
|
|
614
|
+
to: z.ZodString;
|
|
615
|
+
}, z.core.$strip>], "op">>;
|
|
616
|
+
}, z.core.$strip>>>;
|
|
617
|
+
sdk: z.ZodOptional<z.ZodString>;
|
|
618
|
+
}, z.core.$strip>;
|
|
619
|
+
/**
|
|
620
|
+
* A manifest being written now, as `brydio validate`, `build` and `dev` read
|
|
621
|
+
* it: the same, and nothing retired (`placement_tab_retired`) — which a
|
|
622
|
+
* published version may still hold.
|
|
623
|
+
*/
|
|
624
|
+
export declare const newAppManifestSchema: z.ZodObject<{
|
|
625
|
+
name: z.ZodString;
|
|
626
|
+
version: z.ZodString;
|
|
627
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
628
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
629
|
+
description: z.ZodOptional<z.ZodString>;
|
|
630
|
+
author: z.ZodOptional<z.ZodObject<{
|
|
631
|
+
name: z.ZodString;
|
|
632
|
+
email: z.ZodOptional<z.ZodString>;
|
|
633
|
+
url: z.ZodOptional<z.ZodString>;
|
|
634
|
+
}, z.core.$strip>>;
|
|
635
|
+
homepage: z.ZodOptional<z.ZodString>;
|
|
636
|
+
repository: z.ZodOptional<z.ZodString>;
|
|
637
|
+
license: z.ZodOptional<z.ZodString>;
|
|
638
|
+
keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
639
|
+
links: z.ZodOptional<z.ZodObject<{
|
|
640
|
+
privacy: z.ZodOptional<z.ZodString>;
|
|
641
|
+
terms: z.ZodOptional<z.ZodString>;
|
|
642
|
+
support: z.ZodOptional<z.ZodString>;
|
|
643
|
+
}, z.core.$strip>>;
|
|
644
|
+
logo: z.ZodOptional<z.ZodObject<{
|
|
645
|
+
color: z.ZodString;
|
|
646
|
+
mono: z.ZodString;
|
|
647
|
+
}, z.core.$strip>>;
|
|
648
|
+
icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
649
|
+
color: z.ZodString;
|
|
650
|
+
mono: z.ZodString;
|
|
651
|
+
}, z.core.$strip>]>>;
|
|
652
|
+
brandColor: z.ZodOptional<z.ZodString>;
|
|
653
|
+
brandColorDark: z.ZodOptional<z.ZodString>;
|
|
654
|
+
defaultPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
655
|
+
skills: z.ZodOptional<z.ZodString>;
|
|
656
|
+
servers: z.ZodOptional<z.ZodString>;
|
|
657
|
+
integrations: z.ZodOptional<z.ZodString>;
|
|
658
|
+
requires: z.ZodOptional<z.ZodObject<{
|
|
659
|
+
servers: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
660
|
+
integrations: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
661
|
+
builtin: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
662
|
+
}, z.core.$strip>>;
|
|
663
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
664
|
+
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
665
|
+
key: z.ZodOptional<z.ZodString>;
|
|
666
|
+
kind: z.ZodEnum<{
|
|
667
|
+
home: "home";
|
|
668
|
+
"project-widget": "project-widget";
|
|
669
|
+
"project-tab": "project-tab";
|
|
670
|
+
"project-sidebar": "project-sidebar";
|
|
671
|
+
"workspace-sidebar": "workspace-sidebar";
|
|
672
|
+
}>;
|
|
673
|
+
screen: z.ZodString;
|
|
674
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
675
|
+
small: "small";
|
|
676
|
+
medium: "medium";
|
|
677
|
+
large: "large";
|
|
678
|
+
}>>>;
|
|
679
|
+
label: z.ZodOptional<z.ZodString>;
|
|
680
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
681
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
682
|
+
type: z.ZodEnum<{
|
|
683
|
+
string: "string";
|
|
684
|
+
url: "url";
|
|
685
|
+
}>;
|
|
686
|
+
label: z.ZodString;
|
|
687
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
688
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
689
|
+
}, z.core.$strip>>>;
|
|
690
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
691
|
+
tool: z.ZodString;
|
|
692
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
693
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
694
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
695
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
696
|
+
tool: z.ZodString;
|
|
697
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
698
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
699
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
700
|
+
}, z.core.$strip>>;
|
|
701
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
702
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
703
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
704
|
+
tool: z.ZodString;
|
|
705
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
706
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
707
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
708
|
+
}, z.core.$strip>>;
|
|
709
|
+
}, z.core.$strip>>>;
|
|
710
|
+
}, z.core.$strip>>;
|
|
711
|
+
}, z.core.$strip>>>;
|
|
712
|
+
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
713
|
+
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
714
|
+
search: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
715
|
+
label: z.ZodOptional<z.ZodString>;
|
|
716
|
+
}, z.core.$strip>>>;
|
|
717
|
+
tools: z.ZodOptional<z.ZodObject<{
|
|
718
|
+
generated: z.ZodOptional<z.ZodBoolean>;
|
|
719
|
+
custom: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
720
|
+
name: z.ZodString;
|
|
721
|
+
description: z.ZodString;
|
|
722
|
+
handler: z.ZodString;
|
|
723
|
+
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
724
|
+
write: z.ZodOptional<z.ZodBoolean>;
|
|
725
|
+
collection: z.ZodOptional<z.ZodString>;
|
|
726
|
+
}, z.core.$strip>>>;
|
|
727
|
+
}, z.core.$strip>>;
|
|
728
|
+
screens: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
729
|
+
entry: z.ZodString;
|
|
730
|
+
}, z.core.$strip>>>;
|
|
731
|
+
grants: z.ZodOptional<z.ZodObject<{
|
|
732
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
733
|
+
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
734
|
+
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
735
|
+
}, z.core.$strip>>;
|
|
736
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
737
|
+
name: z.ZodString;
|
|
738
|
+
label: z.ZodString;
|
|
739
|
+
description: z.ZodOptional<z.ZodString>;
|
|
740
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
741
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
742
|
+
instance: "instance";
|
|
743
|
+
install: "install";
|
|
744
|
+
}>>;
|
|
745
|
+
}, z.core.$strip>>>;
|
|
316
746
|
migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
317
747
|
version: z.ZodString;
|
|
318
748
|
steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|