@brydio/manifest 0.1.0-alpha.4 → 0.1.0-alpha.41
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/anonymous.d.ts +42 -0
- package/src/anonymous.js +86 -0
- 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/confirm-email.d.ts +40 -0
- package/src/confirm-email.js +78 -0
- package/src/define.d.ts +1 -1
- package/src/define.js +1 -1
- package/src/field-types.d.ts +40 -4
- package/src/field-types.js +59 -9
- package/src/grants.d.ts +10 -2
- package/src/grants.js +24 -2
- package/src/index.d.ts +10 -5
- package/src/index.js +10 -5
- package/src/migrations.d.ts +1 -1
- package/src/migrations.js +29 -0
- package/src/open-schema.d.ts +128 -0
- package/src/open-schema.js +444 -0
- package/src/readers.d.ts +54 -0
- package/src/readers.js +96 -0
- package/src/requirements.d.ts +122 -0
- package/src/requirements.js +692 -0
- package/src/schema.d.ts +576 -8
- package/src/schema.js +418 -27
- 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,54 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { FieldTypeInvalid, type FieldType } from './field-types.js';
|
|
3
|
+
import { type OpenProblemCode } from './open-schema.js';
|
|
4
|
+
import { type ConfirmProblemCode } from './confirm-email.js';
|
|
5
|
+
import { type AnonymousProblemCode, type AnonymousSpec } from './anonymous.js';
|
|
6
|
+
import { type EditorsProblemCode, type ReadersProblemCode } from './readers.js';
|
|
3
7
|
export { COLOUR_TOKENS, FIELD_LIMITS, parseFieldType, RESERVED_FIELDS, structuredFields, type FieldKind, type FieldType, } from './field-types.js';
|
|
8
|
+
/**
|
|
9
|
+
* What an app adds to `.brydio/app.json` to be more than a bundle of servers
|
|
10
|
+
* and skills: where it is shown, what it keeps, the tools that come from what
|
|
11
|
+
* it keeps, its screens, and what it asks the workspace for (contracts §4).
|
|
12
|
+
*
|
|
13
|
+
* Every key is optional, so every manifest E5 already imports still parses.
|
|
14
|
+
* A copy of Brydio's `apps/api/src/apps/manifest/manifest-ext.schema.ts`, the
|
|
15
|
+
* schema the server reads an installed app's manifest with. The two change
|
|
16
|
+
* together; `test/manifest.test.ts` parses the same manifests with both.
|
|
17
|
+
*
|
|
18
|
+
* Zod says what the additions *are*. The checks that are claims about one
|
|
19
|
+
* field against another — a search list naming a date, a placement naming a
|
|
20
|
+
* screen nobody declared — are `dataProblems` below, with a code each, so an
|
|
21
|
+
* import report can say which collection and which field, not just "invalid".
|
|
22
|
+
*/
|
|
23
|
+
declare const placementSettingSchema: z.ZodObject<{
|
|
24
|
+
type: z.ZodEnum<{
|
|
25
|
+
string: "string";
|
|
26
|
+
url: "url";
|
|
27
|
+
}>;
|
|
28
|
+
label: z.ZodString;
|
|
29
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
30
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export type PlacementSettingSpec = z.infer<typeof placementSettingSchema>;
|
|
33
|
+
/**
|
|
34
|
+
* How deep a folder's rows may nest, counting its own rows as the first
|
|
35
|
+
* level (ADR-A21): Issues → sprints → issues is two. Each level is listed
|
|
36
|
+
* only when a person opens its parent, so depth costs nothing while closed;
|
|
37
|
+
* the limit is for the sidebar's width and a person's patience.
|
|
38
|
+
*/
|
|
39
|
+
export declare const MAX_FOLDER_DEPTH = 4;
|
|
40
|
+
/** The sizes a Home card or a project widget can be drawn at (CC11-F10). */
|
|
41
|
+
export declare const HOME_CARD_SIZES: readonly ["small", "medium", "large"];
|
|
42
|
+
export type HomeCardSize = (typeof HOME_CARD_SIZES)[number];
|
|
43
|
+
/** The kinds drawn as a card, which say the sizes they draw well at. */
|
|
44
|
+
export declare const SIZED_PLACEMENT_KINDS: readonly ["home", "project-widget"];
|
|
45
|
+
/** A stable identity for one independently addable placement offering. */
|
|
46
|
+
export declare const PLACEMENT_KEY: RegExp;
|
|
47
|
+
export declare function effectivePlacementKey(one: {
|
|
48
|
+
key?: string;
|
|
49
|
+
kind: string;
|
|
50
|
+
screen: string;
|
|
51
|
+
}): string;
|
|
4
52
|
/** Most custom tools one app may declare (A3-F08). */
|
|
5
53
|
export declare const MAX_CUSTOM_TOOLS = 20;
|
|
6
54
|
/** A tool name the model and a policy row can both use as it is. */
|
|
@@ -16,26 +64,111 @@ declare const customToolSchema: z.ZodObject<{
|
|
|
16
64
|
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
17
65
|
write: z.ZodOptional<z.ZodBoolean>;
|
|
18
66
|
collection: z.ZodOptional<z.ZodString>;
|
|
67
|
+
public: z.ZodOptional<z.ZodBoolean>;
|
|
19
68
|
}, z.core.$strip>;
|
|
20
69
|
export type CustomToolSpec = z.infer<typeof customToolSchema>;
|
|
70
|
+
/** Most secrets one app may declare (ADR-A24). */
|
|
71
|
+
export declare const MAX_APP_SECRETS = 20;
|
|
72
|
+
/** The longest value one secret may hold, in characters. */
|
|
73
|
+
export declare const MAX_SECRET_CHARS: number;
|
|
74
|
+
/** A secret's name, as a handler asks for it: `api_key`. */
|
|
75
|
+
export declare const SECRET_NAME: RegExp;
|
|
76
|
+
/**
|
|
77
|
+
* A secret the app needs (ADR-A24): named here, never valued here. The value
|
|
78
|
+
* is entered in the app's settings by an administrator, or stored by the
|
|
79
|
+
* app's own handler with `secrets.set`, and only that app's handlers can read
|
|
80
|
+
* it, with `secrets.get`. A screen never can.
|
|
81
|
+
*
|
|
82
|
+
* `install` (the default) is one value for the whole install; `instance` is
|
|
83
|
+
* one per instance.
|
|
84
|
+
*/
|
|
85
|
+
declare const secretSchema: z.ZodObject<{
|
|
86
|
+
name: z.ZodString;
|
|
87
|
+
label: z.ZodString;
|
|
88
|
+
description: z.ZodOptional<z.ZodString>;
|
|
89
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
90
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
91
|
+
instance: "instance";
|
|
92
|
+
install: "install";
|
|
93
|
+
}>>;
|
|
94
|
+
}, z.core.$strip>;
|
|
95
|
+
export type SecretSpec = z.infer<typeof secretSchema>;
|
|
21
96
|
declare const extensionShape: {
|
|
22
97
|
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
98
|
+
key: z.ZodOptional<z.ZodString>;
|
|
23
99
|
kind: z.ZodEnum<{
|
|
100
|
+
home: "home";
|
|
101
|
+
"project-widget": "project-widget";
|
|
24
102
|
"project-tab": "project-tab";
|
|
25
103
|
"project-sidebar": "project-sidebar";
|
|
26
104
|
"workspace-sidebar": "workspace-sidebar";
|
|
105
|
+
"public-page": "public-page";
|
|
106
|
+
"chat-card": "chat-card";
|
|
27
107
|
}>;
|
|
28
108
|
screen: z.ZodString;
|
|
109
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
110
|
+
small: "small";
|
|
111
|
+
medium: "medium";
|
|
112
|
+
large: "large";
|
|
113
|
+
}>>>;
|
|
29
114
|
label: z.ZodOptional<z.ZodString>;
|
|
30
115
|
icon: z.ZodOptional<z.ZodString>;
|
|
116
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
117
|
+
type: z.ZodEnum<{
|
|
118
|
+
string: "string";
|
|
119
|
+
url: "url";
|
|
120
|
+
}>;
|
|
121
|
+
label: z.ZodString;
|
|
122
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
123
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
124
|
+
}, z.core.$strip>>>;
|
|
125
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
126
|
+
tool: z.ZodString;
|
|
127
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
128
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
129
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
130
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
131
|
+
tool: z.ZodString;
|
|
132
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
133
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
134
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
135
|
+
}, z.core.$strip>>;
|
|
136
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
137
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
138
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
139
|
+
tool: z.ZodString;
|
|
140
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
141
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
142
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
143
|
+
}, z.core.$strip>>;
|
|
144
|
+
}, z.core.$strip>>>;
|
|
145
|
+
}, z.core.$strip>>;
|
|
31
146
|
}, z.core.$strip>>>;
|
|
32
147
|
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
33
148
|
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
34
149
|
search: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
35
150
|
label: z.ZodOptional<z.ZodString>;
|
|
151
|
+
openSchema: z.ZodOptional<z.ZodObject<{
|
|
152
|
+
fields: z.ZodString;
|
|
153
|
+
table: z.ZodOptional<z.ZodString>;
|
|
154
|
+
}, z.core.$strict>>;
|
|
155
|
+
publicRead: z.ZodOptional<z.ZodBoolean>;
|
|
156
|
+
publicSubmit: z.ZodOptional<z.ZodBoolean>;
|
|
157
|
+
confirmEmail: z.ZodOptional<z.ZodObject<{
|
|
158
|
+
field: z.ZodString;
|
|
159
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
160
|
+
message: z.ZodOptional<z.ZodString>;
|
|
161
|
+
link: z.ZodOptional<z.ZodBoolean>;
|
|
162
|
+
}, z.core.$strict>>;
|
|
163
|
+
anonymous: z.ZodOptional<z.ZodObject<{
|
|
164
|
+
group: z.ZodString;
|
|
165
|
+
minimum: z.ZodOptional<z.ZodNumber>;
|
|
166
|
+
}, z.core.$strict>>;
|
|
167
|
+
readers: z.ZodOptional<z.ZodString>;
|
|
168
|
+
editors: z.ZodOptional<z.ZodString>;
|
|
36
169
|
}, z.core.$strip>>>;
|
|
37
170
|
tools: z.ZodOptional<z.ZodObject<{
|
|
38
|
-
generated: z.ZodOptional<z.ZodBoolean
|
|
171
|
+
generated: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"read">]>>;
|
|
39
172
|
custom: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
40
173
|
name: z.ZodString;
|
|
41
174
|
description: z.ZodString;
|
|
@@ -43,6 +176,7 @@ declare const extensionShape: {
|
|
|
43
176
|
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
44
177
|
write: z.ZodOptional<z.ZodBoolean>;
|
|
45
178
|
collection: z.ZodOptional<z.ZodString>;
|
|
179
|
+
public: z.ZodOptional<z.ZodBoolean>;
|
|
46
180
|
}, z.core.$strip>>>;
|
|
47
181
|
}, z.core.$strip>>;
|
|
48
182
|
screens: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
@@ -53,6 +187,17 @@ declare const extensionShape: {
|
|
|
53
187
|
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
54
188
|
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
55
189
|
}, z.core.$strip>>;
|
|
190
|
+
/** The secrets its handlers read (ADR-A24): names only, never values. */
|
|
191
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
192
|
+
name: z.ZodString;
|
|
193
|
+
label: z.ZodString;
|
|
194
|
+
description: z.ZodOptional<z.ZodString>;
|
|
195
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
196
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
197
|
+
instance: "instance";
|
|
198
|
+
install: "install";
|
|
199
|
+
}>>;
|
|
200
|
+
}, z.core.$strip>>>;
|
|
56
201
|
/**
|
|
57
202
|
* How records move when the schema changes between versions (A3-F07).
|
|
58
203
|
* Checked against the previous version when a version is published, and
|
|
@@ -99,7 +244,7 @@ export interface DataProblem {
|
|
|
99
244
|
field?: string;
|
|
100
245
|
message: string;
|
|
101
246
|
}
|
|
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';
|
|
247
|
+
export type DataProblemCode = FieldTypeInvalid['code'] | OpenProblemCode | ConfirmProblemCode | AnonymousProblemCode | ReadersProblemCode | EditorsProblemCode | '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_public_shape' | 'placement_public_nothing' | 'placement_chat_card_shape' | 'grant_tool_cross_app_self' | 'placement_children_too_deep' | 'placement_create_tool_unknown' | 'placement_create_not_write' | 'secret_name_taken' | 'grant_secrets_missing';
|
|
103
248
|
type Additions = z.infer<z.ZodObject<typeof extensionShape>>;
|
|
104
249
|
/**
|
|
105
250
|
* Everything wrong with an app's additions that a type cannot say.
|
|
@@ -108,28 +253,101 @@ type Additions = z.infer<z.ZodObject<typeof extensionShape>>;
|
|
|
108
253
|
* report; the zod schemas below run it too, so a parse never accepts what
|
|
109
254
|
* this refuses.
|
|
110
255
|
*/
|
|
111
|
-
export
|
|
256
|
+
export interface DataProblemOptions {
|
|
257
|
+
/** Off where the grants are the install's record, not the manifest's. */
|
|
112
258
|
grants?: boolean;
|
|
113
|
-
|
|
259
|
+
/** On for a manifest being written now: refuses kinds that are retired, such as `project-tab`. */
|
|
260
|
+
retired?: boolean;
|
|
261
|
+
}
|
|
262
|
+
export declare function dataProblems(additions: Additions, options?: DataProblemOptions): DataProblem[];
|
|
263
|
+
/**
|
|
264
|
+
* Another installed app's tool, as `grants.tools` names it (FO07): the name
|
|
265
|
+
* the assistant knows it by, `<slug>__<tool>`. Null for anything else.
|
|
266
|
+
* A handler calls it with `tools.call('<slug>__<tool>', input)`.
|
|
267
|
+
*/
|
|
268
|
+
export declare function crossAppTool(name: string): {
|
|
269
|
+
app: string;
|
|
270
|
+
tool: string;
|
|
271
|
+
} | null;
|
|
272
|
+
/** An app's name as the front of its tools' assistant names: `issue-tracker` → `issue_tracker`. */
|
|
273
|
+
export declare const appToolPrefix: (name: string) => string;
|
|
114
274
|
/** The additions alone, for code that has the rest of the manifest already. */
|
|
115
275
|
export declare const manifestExtensionsSchema: z.ZodObject<{
|
|
116
276
|
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
277
|
+
key: z.ZodOptional<z.ZodString>;
|
|
117
278
|
kind: z.ZodEnum<{
|
|
279
|
+
home: "home";
|
|
280
|
+
"project-widget": "project-widget";
|
|
118
281
|
"project-tab": "project-tab";
|
|
119
282
|
"project-sidebar": "project-sidebar";
|
|
120
283
|
"workspace-sidebar": "workspace-sidebar";
|
|
284
|
+
"public-page": "public-page";
|
|
285
|
+
"chat-card": "chat-card";
|
|
121
286
|
}>;
|
|
122
287
|
screen: z.ZodString;
|
|
288
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
289
|
+
small: "small";
|
|
290
|
+
medium: "medium";
|
|
291
|
+
large: "large";
|
|
292
|
+
}>>>;
|
|
123
293
|
label: z.ZodOptional<z.ZodString>;
|
|
124
294
|
icon: z.ZodOptional<z.ZodString>;
|
|
295
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
296
|
+
type: z.ZodEnum<{
|
|
297
|
+
string: "string";
|
|
298
|
+
url: "url";
|
|
299
|
+
}>;
|
|
300
|
+
label: z.ZodString;
|
|
301
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
302
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
303
|
+
}, z.core.$strip>>>;
|
|
304
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
305
|
+
tool: z.ZodString;
|
|
306
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
307
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
308
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
309
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
310
|
+
tool: z.ZodString;
|
|
311
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
312
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
313
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
314
|
+
}, z.core.$strip>>;
|
|
315
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
316
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
317
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
318
|
+
tool: z.ZodString;
|
|
319
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
320
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
321
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
322
|
+
}, z.core.$strip>>;
|
|
323
|
+
}, z.core.$strip>>>;
|
|
324
|
+
}, z.core.$strip>>;
|
|
125
325
|
}, z.core.$strip>>>;
|
|
126
326
|
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
127
327
|
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
128
328
|
search: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
129
329
|
label: z.ZodOptional<z.ZodString>;
|
|
330
|
+
openSchema: z.ZodOptional<z.ZodObject<{
|
|
331
|
+
fields: z.ZodString;
|
|
332
|
+
table: z.ZodOptional<z.ZodString>;
|
|
333
|
+
}, z.core.$strict>>;
|
|
334
|
+
publicRead: z.ZodOptional<z.ZodBoolean>;
|
|
335
|
+
publicSubmit: z.ZodOptional<z.ZodBoolean>;
|
|
336
|
+
confirmEmail: z.ZodOptional<z.ZodObject<{
|
|
337
|
+
field: z.ZodString;
|
|
338
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
339
|
+
message: z.ZodOptional<z.ZodString>;
|
|
340
|
+
link: z.ZodOptional<z.ZodBoolean>;
|
|
341
|
+
}, z.core.$strict>>;
|
|
342
|
+
anonymous: z.ZodOptional<z.ZodObject<{
|
|
343
|
+
group: z.ZodString;
|
|
344
|
+
minimum: z.ZodOptional<z.ZodNumber>;
|
|
345
|
+
}, z.core.$strict>>;
|
|
346
|
+
readers: z.ZodOptional<z.ZodString>;
|
|
347
|
+
editors: z.ZodOptional<z.ZodString>;
|
|
130
348
|
}, z.core.$strip>>>;
|
|
131
349
|
tools: z.ZodOptional<z.ZodObject<{
|
|
132
|
-
generated: z.ZodOptional<z.ZodBoolean
|
|
350
|
+
generated: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"read">]>>;
|
|
133
351
|
custom: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
134
352
|
name: z.ZodString;
|
|
135
353
|
description: z.ZodString;
|
|
@@ -137,6 +355,7 @@ export declare const manifestExtensionsSchema: z.ZodObject<{
|
|
|
137
355
|
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
138
356
|
write: z.ZodOptional<z.ZodBoolean>;
|
|
139
357
|
collection: z.ZodOptional<z.ZodString>;
|
|
358
|
+
public: z.ZodOptional<z.ZodBoolean>;
|
|
140
359
|
}, z.core.$strip>>>;
|
|
141
360
|
}, z.core.$strip>>;
|
|
142
361
|
screens: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
@@ -147,6 +366,16 @@ export declare const manifestExtensionsSchema: z.ZodObject<{
|
|
|
147
366
|
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
148
367
|
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
149
368
|
}, z.core.$strip>>;
|
|
369
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
370
|
+
name: z.ZodString;
|
|
371
|
+
label: z.ZodString;
|
|
372
|
+
description: z.ZodOptional<z.ZodString>;
|
|
373
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
374
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
375
|
+
instance: "instance";
|
|
376
|
+
install: "install";
|
|
377
|
+
}>>;
|
|
378
|
+
}, z.core.$strip>>>;
|
|
150
379
|
migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
151
380
|
version: z.ZodString;
|
|
152
381
|
steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -183,22 +412,80 @@ export declare const manifestExtensionsSchema: z.ZodObject<{
|
|
|
183
412
|
*/
|
|
184
413
|
export declare const storedExtensionsSchema: z.ZodObject<{
|
|
185
414
|
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
415
|
+
key: z.ZodOptional<z.ZodString>;
|
|
186
416
|
kind: z.ZodEnum<{
|
|
417
|
+
home: "home";
|
|
418
|
+
"project-widget": "project-widget";
|
|
187
419
|
"project-tab": "project-tab";
|
|
188
420
|
"project-sidebar": "project-sidebar";
|
|
189
421
|
"workspace-sidebar": "workspace-sidebar";
|
|
422
|
+
"public-page": "public-page";
|
|
423
|
+
"chat-card": "chat-card";
|
|
190
424
|
}>;
|
|
191
425
|
screen: z.ZodString;
|
|
426
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
427
|
+
small: "small";
|
|
428
|
+
medium: "medium";
|
|
429
|
+
large: "large";
|
|
430
|
+
}>>>;
|
|
192
431
|
label: z.ZodOptional<z.ZodString>;
|
|
193
432
|
icon: z.ZodOptional<z.ZodString>;
|
|
433
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
434
|
+
type: z.ZodEnum<{
|
|
435
|
+
string: "string";
|
|
436
|
+
url: "url";
|
|
437
|
+
}>;
|
|
438
|
+
label: z.ZodString;
|
|
439
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
440
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
441
|
+
}, z.core.$strip>>>;
|
|
442
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
443
|
+
tool: z.ZodString;
|
|
444
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
445
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
446
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
447
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
448
|
+
tool: z.ZodString;
|
|
449
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
450
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
451
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
452
|
+
}, z.core.$strip>>;
|
|
453
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
454
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
455
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
456
|
+
tool: z.ZodString;
|
|
457
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
458
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
459
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
460
|
+
}, z.core.$strip>>;
|
|
461
|
+
}, z.core.$strip>>>;
|
|
462
|
+
}, z.core.$strip>>;
|
|
194
463
|
}, z.core.$strip>>>;
|
|
195
464
|
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
196
465
|
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
197
466
|
search: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
198
467
|
label: z.ZodOptional<z.ZodString>;
|
|
468
|
+
openSchema: z.ZodOptional<z.ZodObject<{
|
|
469
|
+
fields: z.ZodString;
|
|
470
|
+
table: z.ZodOptional<z.ZodString>;
|
|
471
|
+
}, z.core.$strict>>;
|
|
472
|
+
publicRead: z.ZodOptional<z.ZodBoolean>;
|
|
473
|
+
publicSubmit: z.ZodOptional<z.ZodBoolean>;
|
|
474
|
+
confirmEmail: z.ZodOptional<z.ZodObject<{
|
|
475
|
+
field: z.ZodString;
|
|
476
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
477
|
+
message: z.ZodOptional<z.ZodString>;
|
|
478
|
+
link: z.ZodOptional<z.ZodBoolean>;
|
|
479
|
+
}, z.core.$strict>>;
|
|
480
|
+
anonymous: z.ZodOptional<z.ZodObject<{
|
|
481
|
+
group: z.ZodString;
|
|
482
|
+
minimum: z.ZodOptional<z.ZodNumber>;
|
|
483
|
+
}, z.core.$strict>>;
|
|
484
|
+
readers: z.ZodOptional<z.ZodString>;
|
|
485
|
+
editors: z.ZodOptional<z.ZodString>;
|
|
199
486
|
}, z.core.$strip>>>;
|
|
200
487
|
tools: z.ZodOptional<z.ZodObject<{
|
|
201
|
-
generated: z.ZodOptional<z.ZodBoolean
|
|
488
|
+
generated: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"read">]>>;
|
|
202
489
|
custom: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
203
490
|
name: z.ZodString;
|
|
204
491
|
description: z.ZodString;
|
|
@@ -206,6 +493,7 @@ export declare const storedExtensionsSchema: z.ZodObject<{
|
|
|
206
493
|
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
207
494
|
write: z.ZodOptional<z.ZodBoolean>;
|
|
208
495
|
collection: z.ZodOptional<z.ZodString>;
|
|
496
|
+
public: z.ZodOptional<z.ZodBoolean>;
|
|
209
497
|
}, z.core.$strip>>>;
|
|
210
498
|
}, z.core.$strip>>;
|
|
211
499
|
screens: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
@@ -216,6 +504,16 @@ export declare const storedExtensionsSchema: z.ZodObject<{
|
|
|
216
504
|
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
217
505
|
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
218
506
|
}, z.core.$strip>>;
|
|
507
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
508
|
+
name: z.ZodString;
|
|
509
|
+
label: z.ZodString;
|
|
510
|
+
description: z.ZodOptional<z.ZodString>;
|
|
511
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
512
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
513
|
+
instance: "instance";
|
|
514
|
+
install: "install";
|
|
515
|
+
}>>;
|
|
516
|
+
}, z.core.$strip>>>;
|
|
219
517
|
migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
220
518
|
version: z.ZodString;
|
|
221
519
|
steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -266,7 +564,14 @@ export declare const appManifestSchema: z.ZodObject<{
|
|
|
266
564
|
terms: z.ZodOptional<z.ZodString>;
|
|
267
565
|
support: z.ZodOptional<z.ZodString>;
|
|
268
566
|
}, z.core.$strip>>;
|
|
269
|
-
|
|
567
|
+
logo: z.ZodOptional<z.ZodObject<{
|
|
568
|
+
color: z.ZodString;
|
|
569
|
+
mono: z.ZodString;
|
|
570
|
+
}, z.core.$strip>>;
|
|
571
|
+
icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
572
|
+
color: z.ZodString;
|
|
573
|
+
mono: z.ZodString;
|
|
574
|
+
}, z.core.$strip>]>>;
|
|
270
575
|
brandColor: z.ZodOptional<z.ZodString>;
|
|
271
576
|
brandColorDark: z.ZodOptional<z.ZodString>;
|
|
272
577
|
defaultPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -280,22 +585,80 @@ export declare const appManifestSchema: z.ZodObject<{
|
|
|
280
585
|
}, z.core.$strip>>;
|
|
281
586
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
282
587
|
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
588
|
+
key: z.ZodOptional<z.ZodString>;
|
|
283
589
|
kind: z.ZodEnum<{
|
|
590
|
+
home: "home";
|
|
591
|
+
"project-widget": "project-widget";
|
|
284
592
|
"project-tab": "project-tab";
|
|
285
593
|
"project-sidebar": "project-sidebar";
|
|
286
594
|
"workspace-sidebar": "workspace-sidebar";
|
|
595
|
+
"public-page": "public-page";
|
|
596
|
+
"chat-card": "chat-card";
|
|
287
597
|
}>;
|
|
288
598
|
screen: z.ZodString;
|
|
599
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
600
|
+
small: "small";
|
|
601
|
+
medium: "medium";
|
|
602
|
+
large: "large";
|
|
603
|
+
}>>>;
|
|
289
604
|
label: z.ZodOptional<z.ZodString>;
|
|
290
605
|
icon: z.ZodOptional<z.ZodString>;
|
|
606
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
607
|
+
type: z.ZodEnum<{
|
|
608
|
+
string: "string";
|
|
609
|
+
url: "url";
|
|
610
|
+
}>;
|
|
611
|
+
label: z.ZodString;
|
|
612
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
613
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
614
|
+
}, z.core.$strip>>>;
|
|
615
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
616
|
+
tool: z.ZodString;
|
|
617
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
618
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
619
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
620
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
621
|
+
tool: z.ZodString;
|
|
622
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
623
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
624
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
625
|
+
}, z.core.$strip>>;
|
|
626
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
627
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
628
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
629
|
+
tool: z.ZodString;
|
|
630
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
631
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
632
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
633
|
+
}, z.core.$strip>>;
|
|
634
|
+
}, z.core.$strip>>>;
|
|
635
|
+
}, z.core.$strip>>;
|
|
291
636
|
}, z.core.$strip>>>;
|
|
292
637
|
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
293
638
|
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
294
639
|
search: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
295
640
|
label: z.ZodOptional<z.ZodString>;
|
|
641
|
+
openSchema: z.ZodOptional<z.ZodObject<{
|
|
642
|
+
fields: z.ZodString;
|
|
643
|
+
table: z.ZodOptional<z.ZodString>;
|
|
644
|
+
}, z.core.$strict>>;
|
|
645
|
+
publicRead: z.ZodOptional<z.ZodBoolean>;
|
|
646
|
+
publicSubmit: z.ZodOptional<z.ZodBoolean>;
|
|
647
|
+
confirmEmail: z.ZodOptional<z.ZodObject<{
|
|
648
|
+
field: z.ZodString;
|
|
649
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
650
|
+
message: z.ZodOptional<z.ZodString>;
|
|
651
|
+
link: z.ZodOptional<z.ZodBoolean>;
|
|
652
|
+
}, z.core.$strict>>;
|
|
653
|
+
anonymous: z.ZodOptional<z.ZodObject<{
|
|
654
|
+
group: z.ZodString;
|
|
655
|
+
minimum: z.ZodOptional<z.ZodNumber>;
|
|
656
|
+
}, z.core.$strict>>;
|
|
657
|
+
readers: z.ZodOptional<z.ZodString>;
|
|
658
|
+
editors: z.ZodOptional<z.ZodString>;
|
|
296
659
|
}, z.core.$strip>>>;
|
|
297
660
|
tools: z.ZodOptional<z.ZodObject<{
|
|
298
|
-
generated: z.ZodOptional<z.ZodBoolean
|
|
661
|
+
generated: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"read">]>>;
|
|
299
662
|
custom: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
300
663
|
name: z.ZodString;
|
|
301
664
|
description: z.ZodString;
|
|
@@ -303,6 +666,7 @@ export declare const appManifestSchema: z.ZodObject<{
|
|
|
303
666
|
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
304
667
|
write: z.ZodOptional<z.ZodBoolean>;
|
|
305
668
|
collection: z.ZodOptional<z.ZodString>;
|
|
669
|
+
public: z.ZodOptional<z.ZodBoolean>;
|
|
306
670
|
}, z.core.$strip>>>;
|
|
307
671
|
}, z.core.$strip>>;
|
|
308
672
|
screens: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
@@ -313,6 +677,193 @@ export declare const appManifestSchema: z.ZodObject<{
|
|
|
313
677
|
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
314
678
|
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
315
679
|
}, z.core.$strip>>;
|
|
680
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
681
|
+
name: z.ZodString;
|
|
682
|
+
label: z.ZodString;
|
|
683
|
+
description: z.ZodOptional<z.ZodString>;
|
|
684
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
685
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
686
|
+
instance: "instance";
|
|
687
|
+
install: "install";
|
|
688
|
+
}>>;
|
|
689
|
+
}, z.core.$strip>>>;
|
|
690
|
+
migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
691
|
+
version: z.ZodString;
|
|
692
|
+
steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
693
|
+
op: z.ZodLiteral<"add">;
|
|
694
|
+
collection: z.ZodString;
|
|
695
|
+
field: z.ZodString;
|
|
696
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
697
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
698
|
+
op: z.ZodLiteral<"rename">;
|
|
699
|
+
collection: z.ZodString;
|
|
700
|
+
from: z.ZodString;
|
|
701
|
+
to: z.ZodString;
|
|
702
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
703
|
+
op: z.ZodLiteral<"drop">;
|
|
704
|
+
collection: z.ZodString;
|
|
705
|
+
field: z.ZodString;
|
|
706
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
707
|
+
op: z.ZodLiteral<"dropCollection">;
|
|
708
|
+
collection: z.ZodString;
|
|
709
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
710
|
+
op: z.ZodLiteral<"replace">;
|
|
711
|
+
collection: z.ZodString;
|
|
712
|
+
field: z.ZodString;
|
|
713
|
+
from: z.ZodString;
|
|
714
|
+
to: z.ZodString;
|
|
715
|
+
}, z.core.$strip>], "op">>;
|
|
716
|
+
}, z.core.$strip>>>;
|
|
717
|
+
sdk: z.ZodOptional<z.ZodString>;
|
|
718
|
+
}, z.core.$strip>;
|
|
719
|
+
/**
|
|
720
|
+
* A manifest being written now, as `brydio validate`, `build` and `dev` read
|
|
721
|
+
* it: the same, and nothing retired (`placement_tab_retired`) — which a
|
|
722
|
+
* published version may still hold.
|
|
723
|
+
*/
|
|
724
|
+
export declare const newAppManifestSchema: z.ZodObject<{
|
|
725
|
+
name: z.ZodString;
|
|
726
|
+
version: z.ZodString;
|
|
727
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
728
|
+
summary: z.ZodOptional<z.ZodString>;
|
|
729
|
+
description: z.ZodOptional<z.ZodString>;
|
|
730
|
+
author: z.ZodOptional<z.ZodObject<{
|
|
731
|
+
name: z.ZodString;
|
|
732
|
+
email: z.ZodOptional<z.ZodString>;
|
|
733
|
+
url: z.ZodOptional<z.ZodString>;
|
|
734
|
+
}, z.core.$strip>>;
|
|
735
|
+
homepage: z.ZodOptional<z.ZodString>;
|
|
736
|
+
repository: z.ZodOptional<z.ZodString>;
|
|
737
|
+
license: z.ZodOptional<z.ZodString>;
|
|
738
|
+
keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
739
|
+
links: z.ZodOptional<z.ZodObject<{
|
|
740
|
+
privacy: z.ZodOptional<z.ZodString>;
|
|
741
|
+
terms: z.ZodOptional<z.ZodString>;
|
|
742
|
+
support: z.ZodOptional<z.ZodString>;
|
|
743
|
+
}, z.core.$strip>>;
|
|
744
|
+
logo: z.ZodOptional<z.ZodObject<{
|
|
745
|
+
color: z.ZodString;
|
|
746
|
+
mono: z.ZodString;
|
|
747
|
+
}, z.core.$strip>>;
|
|
748
|
+
icon: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
749
|
+
color: z.ZodString;
|
|
750
|
+
mono: z.ZodString;
|
|
751
|
+
}, z.core.$strip>]>>;
|
|
752
|
+
brandColor: z.ZodOptional<z.ZodString>;
|
|
753
|
+
brandColorDark: z.ZodOptional<z.ZodString>;
|
|
754
|
+
defaultPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
755
|
+
skills: z.ZodOptional<z.ZodString>;
|
|
756
|
+
servers: z.ZodOptional<z.ZodString>;
|
|
757
|
+
integrations: z.ZodOptional<z.ZodString>;
|
|
758
|
+
requires: z.ZodOptional<z.ZodObject<{
|
|
759
|
+
servers: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
760
|
+
integrations: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
761
|
+
builtin: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
762
|
+
}, z.core.$strip>>;
|
|
763
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
764
|
+
placements: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
765
|
+
key: z.ZodOptional<z.ZodString>;
|
|
766
|
+
kind: z.ZodEnum<{
|
|
767
|
+
home: "home";
|
|
768
|
+
"project-widget": "project-widget";
|
|
769
|
+
"project-tab": "project-tab";
|
|
770
|
+
"project-sidebar": "project-sidebar";
|
|
771
|
+
"workspace-sidebar": "workspace-sidebar";
|
|
772
|
+
"public-page": "public-page";
|
|
773
|
+
"chat-card": "chat-card";
|
|
774
|
+
}>;
|
|
775
|
+
screen: z.ZodString;
|
|
776
|
+
sizes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
777
|
+
small: "small";
|
|
778
|
+
medium: "medium";
|
|
779
|
+
large: "large";
|
|
780
|
+
}>>>;
|
|
781
|
+
label: z.ZodOptional<z.ZodString>;
|
|
782
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
783
|
+
settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
784
|
+
type: z.ZodEnum<{
|
|
785
|
+
string: "string";
|
|
786
|
+
url: "url";
|
|
787
|
+
}>;
|
|
788
|
+
label: z.ZodString;
|
|
789
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
790
|
+
placeholder: z.ZodOptional<z.ZodString>;
|
|
791
|
+
}, z.core.$strip>>>;
|
|
792
|
+
children: z.ZodOptional<z.ZodObject<{
|
|
793
|
+
tool: z.ZodString;
|
|
794
|
+
refreshSeconds: z.ZodOptional<z.ZodNumber>;
|
|
795
|
+
cap: z.ZodOptional<z.ZodNumber>;
|
|
796
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
797
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
798
|
+
tool: z.ZodString;
|
|
799
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
800
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
801
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
802
|
+
}, z.core.$strip>>;
|
|
803
|
+
nested: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
804
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
805
|
+
create: z.ZodOptional<z.ZodObject<{
|
|
806
|
+
tool: z.ZodString;
|
|
807
|
+
noun: z.ZodOptional<z.ZodString>;
|
|
808
|
+
titleField: z.ZodOptional<z.ZodString>;
|
|
809
|
+
parentField: z.ZodOptional<z.ZodString>;
|
|
810
|
+
}, z.core.$strip>>;
|
|
811
|
+
}, z.core.$strip>>>;
|
|
812
|
+
}, z.core.$strip>>;
|
|
813
|
+
}, z.core.$strip>>>;
|
|
814
|
+
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
815
|
+
schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
816
|
+
search: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
817
|
+
label: z.ZodOptional<z.ZodString>;
|
|
818
|
+
openSchema: z.ZodOptional<z.ZodObject<{
|
|
819
|
+
fields: z.ZodString;
|
|
820
|
+
table: z.ZodOptional<z.ZodString>;
|
|
821
|
+
}, z.core.$strict>>;
|
|
822
|
+
publicRead: z.ZodOptional<z.ZodBoolean>;
|
|
823
|
+
publicSubmit: z.ZodOptional<z.ZodBoolean>;
|
|
824
|
+
confirmEmail: z.ZodOptional<z.ZodObject<{
|
|
825
|
+
field: z.ZodString;
|
|
826
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
827
|
+
message: z.ZodOptional<z.ZodString>;
|
|
828
|
+
link: z.ZodOptional<z.ZodBoolean>;
|
|
829
|
+
}, z.core.$strict>>;
|
|
830
|
+
anonymous: z.ZodOptional<z.ZodObject<{
|
|
831
|
+
group: z.ZodString;
|
|
832
|
+
minimum: z.ZodOptional<z.ZodNumber>;
|
|
833
|
+
}, z.core.$strict>>;
|
|
834
|
+
readers: z.ZodOptional<z.ZodString>;
|
|
835
|
+
editors: z.ZodOptional<z.ZodString>;
|
|
836
|
+
}, z.core.$strip>>>;
|
|
837
|
+
tools: z.ZodOptional<z.ZodObject<{
|
|
838
|
+
generated: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodLiteral<"read">]>>;
|
|
839
|
+
custom: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
840
|
+
name: z.ZodString;
|
|
841
|
+
description: z.ZodString;
|
|
842
|
+
handler: z.ZodString;
|
|
843
|
+
input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
844
|
+
write: z.ZodOptional<z.ZodBoolean>;
|
|
845
|
+
collection: z.ZodOptional<z.ZodString>;
|
|
846
|
+
public: z.ZodOptional<z.ZodBoolean>;
|
|
847
|
+
}, z.core.$strip>>>;
|
|
848
|
+
}, z.core.$strip>>;
|
|
849
|
+
screens: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
850
|
+
entry: z.ZodString;
|
|
851
|
+
}, z.core.$strip>>>;
|
|
852
|
+
grants: z.ZodOptional<z.ZodObject<{
|
|
853
|
+
tools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
854
|
+
collections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
855
|
+
host: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
856
|
+
}, z.core.$strip>>;
|
|
857
|
+
secrets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
858
|
+
name: z.ZodString;
|
|
859
|
+
label: z.ZodString;
|
|
860
|
+
description: z.ZodOptional<z.ZodString>;
|
|
861
|
+
required: z.ZodOptional<z.ZodBoolean>;
|
|
862
|
+
scope: z.ZodOptional<z.ZodEnum<{
|
|
863
|
+
instance: "instance";
|
|
864
|
+
install: "install";
|
|
865
|
+
}>>;
|
|
866
|
+
}, z.core.$strip>>>;
|
|
316
867
|
migrations: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
317
868
|
version: z.ZodString;
|
|
318
869
|
steps: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -361,6 +912,23 @@ export interface CollectionSpec {
|
|
|
361
912
|
search: string[];
|
|
362
913
|
/** The one `project` field, whose value is copied to `app_document.project_id`. */
|
|
363
914
|
projectField: string | null;
|
|
915
|
+
/**
|
|
916
|
+
* Fields defined at runtime (P5): the companion collection, and the field
|
|
917
|
+
* naming a row's table (null: one table per instance). The store reads the
|
|
918
|
+
* live definitions; `fields` here holds only the manifest's own.
|
|
919
|
+
*/
|
|
920
|
+
openSchema?: {
|
|
921
|
+
fields: string;
|
|
922
|
+
table: string | null;
|
|
923
|
+
};
|
|
924
|
+
/** On a companion: the open collection whose fields its records define (P5). */
|
|
925
|
+
definesFieldsOf?: string;
|
|
926
|
+
/** Answers kept with no writer, read only a whole group of at least `minimum` at a time (P13). */
|
|
927
|
+
anonymous?: AnonymousSpec;
|
|
928
|
+
/** The string[] field naming who alone may read a record, when it names anyone (P16). */
|
|
929
|
+
readers?: string;
|
|
930
|
+
/** The string[] field naming who alone may change a record, when it names anyone (DW06). */
|
|
931
|
+
editors?: string;
|
|
364
932
|
}
|
|
365
933
|
/**
|
|
366
934
|
* The singular a collection's tools are named with: the manifest's, else the
|