@ouispec/contract 0.1.0
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/INTEGRATOR-GUIDE.md +729 -0
- package/LICENSE +21 -0
- package/README.md +10 -0
- package/dist/codegen.d.ts +71 -0
- package/dist/codegen.d.ts.map +1 -0
- package/dist/codegen.js +195 -0
- package/dist/codegen.js.map +1 -0
- package/dist/generated/contract.d.ts +1286 -0
- package/dist/generated/contract.d.ts.map +1 -0
- package/dist/generated/contract.js +14 -0
- package/dist/generated/contract.js.map +1 -0
- package/dist/generated/schemas.d.ts +111 -0
- package/dist/generated/schemas.d.ts.map +1 -0
- package/dist/generated/schemas.js +3256 -0
- package/dist/generated/schemas.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/render-contract.d.ts +47 -0
- package/dist/render-contract.d.ts.map +1 -0
- package/dist/render-contract.js +123 -0
- package/dist/render-contract.js.map +1 -0
- package/dist/render-guide.d.ts +4 -0
- package/dist/render-guide.d.ts.map +1 -0
- package/dist/render-guide.js +132 -0
- package/dist/render-guide.js.map +1 -0
- package/dist/schema-document.d.ts +7 -0
- package/dist/schema-document.d.ts.map +1 -0
- package/dist/schema-document.js +2 -0
- package/dist/schema-document.js.map +1 -0
- package/dist/validate.d.ts +22 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +89 -0
- package/dist/validate.js.map +1 -0
- package/package.json +65 -0
- package/schemas/action-effect.json +113 -0
- package/schemas/agent-binding.json +58 -0
- package/schemas/approvals.json +249 -0
- package/schemas/control-kind-registration.json +187 -0
- package/schemas/control-table.json +276 -0
- package/schemas/event-declarations.json +316 -0
- package/schemas/generated-knowledge.json +58 -0
- package/schemas/json-schema.json +153 -0
- package/schemas/oui-config.json +178 -0
- package/schemas/oui-manifest.json +346 -0
- package/schemas/room-catalog-data.json +455 -0
- package/schemas/tier2-mapping.json +195 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.closurestudio.ai/agent-sdk/event-declarations/v1.json",
|
|
4
|
+
"title": "Event declarations",
|
|
5
|
+
"description": "Every event a product emits over realtime: its payload schema, the rooms it is published to, its correlation fields and its role in a job (ADR-0227 §2.4).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"version",
|
|
9
|
+
"product",
|
|
10
|
+
"rooms",
|
|
11
|
+
"events"
|
|
12
|
+
],
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"properties": {
|
|
15
|
+
"$schema": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"version": {
|
|
19
|
+
"description": "The version of this document's format.",
|
|
20
|
+
"const": 1
|
|
21
|
+
},
|
|
22
|
+
"product": {
|
|
23
|
+
"description": "Who declares these events.",
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1
|
|
26
|
+
},
|
|
27
|
+
"description": {
|
|
28
|
+
"type": "string"
|
|
29
|
+
},
|
|
30
|
+
"$defs": {
|
|
31
|
+
"description": "Payload shapes the events share, referenced as `#/$defs/<Name>`.",
|
|
32
|
+
"type": "object",
|
|
33
|
+
"propertyNames": {
|
|
34
|
+
"pattern": "^[A-Z][A-Za-z0-9]*$"
|
|
35
|
+
},
|
|
36
|
+
"additionalProperties": {
|
|
37
|
+
"$ref": "#/$defs/EventPayloadSchema"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"rooms": {
|
|
41
|
+
"description": "Every room these events go to, by name.",
|
|
42
|
+
"type": "object",
|
|
43
|
+
"propertyNames": {
|
|
44
|
+
"pattern": "^[a-z][A-Za-z0-9]*$"
|
|
45
|
+
},
|
|
46
|
+
"additionalProperties": {
|
|
47
|
+
"$ref": "#/$defs/RoomDeclaration"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"events": {
|
|
51
|
+
"description": "Every event, by its name on the wire.",
|
|
52
|
+
"type": "object",
|
|
53
|
+
"propertyNames": {
|
|
54
|
+
"pattern": "^[a-z][a-z0-9_-]*(:[a-z][a-z0-9_-]*)*$"
|
|
55
|
+
},
|
|
56
|
+
"additionalProperties": {
|
|
57
|
+
"$ref": "#/$defs/EventDeclaration"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"$defs": {
|
|
62
|
+
"JsonType": {
|
|
63
|
+
"description": "The JSON Schema types a payload may use.",
|
|
64
|
+
"enum": [
|
|
65
|
+
"object",
|
|
66
|
+
"array",
|
|
67
|
+
"string",
|
|
68
|
+
"number",
|
|
69
|
+
"integer",
|
|
70
|
+
"boolean",
|
|
71
|
+
"null"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"EventPayloadSchema": {
|
|
75
|
+
"description": "A JSON Schema (draft 2020-12). A payload may use any keyword; the platform reads `$ref` (to the document's `$defs`), `allOf`, `type`, `properties` and `required` to find the fields it correlates and reports on, and validates the rest with a full validator.",
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"$ref": {
|
|
79
|
+
"type": "string"
|
|
80
|
+
},
|
|
81
|
+
"type": {
|
|
82
|
+
"description": "A JSON Schema type name, or a list of them.",
|
|
83
|
+
"$comment": "ts: JsonType | readonly JsonType[]"
|
|
84
|
+
},
|
|
85
|
+
"description": {
|
|
86
|
+
"type": "string"
|
|
87
|
+
},
|
|
88
|
+
"properties": {
|
|
89
|
+
"type": "object",
|
|
90
|
+
"additionalProperties": {
|
|
91
|
+
"$ref": "#/$defs/EventPayloadSchema"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"required": {
|
|
95
|
+
"type": "array",
|
|
96
|
+
"items": {
|
|
97
|
+
"type": "string"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"additionalProperties": {
|
|
101
|
+
"description": "`false`, or the schema every other property follows.",
|
|
102
|
+
"$comment": "ts: boolean | EventPayloadSchema"
|
|
103
|
+
},
|
|
104
|
+
"items": {
|
|
105
|
+
"$ref": "#/$defs/EventPayloadSchema"
|
|
106
|
+
},
|
|
107
|
+
"enum": {
|
|
108
|
+
"type": "array"
|
|
109
|
+
},
|
|
110
|
+
"const": {},
|
|
111
|
+
"allOf": {
|
|
112
|
+
"type": "array",
|
|
113
|
+
"items": {
|
|
114
|
+
"$ref": "#/$defs/EventPayloadSchema"
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"anyOf": {
|
|
118
|
+
"type": "array",
|
|
119
|
+
"items": {
|
|
120
|
+
"$ref": "#/$defs/EventPayloadSchema"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"oneOf": {
|
|
124
|
+
"type": "array",
|
|
125
|
+
"items": {
|
|
126
|
+
"$ref": "#/$defs/EventPayloadSchema"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"additionalProperties": true
|
|
131
|
+
},
|
|
132
|
+
"RoomDeclaration": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"required": [
|
|
135
|
+
"pattern"
|
|
136
|
+
],
|
|
137
|
+
"additionalProperties": false,
|
|
138
|
+
"properties": {
|
|
139
|
+
"pattern": {
|
|
140
|
+
"description": "The room's name with `{placeholder}`s for its ids, e.g. `generation:{jobId}`. An id is letters, digits, `_` and `-`.",
|
|
141
|
+
"type": "string",
|
|
142
|
+
"pattern": "^([a-z0-9_:-]|\\{[a-zA-Z][a-zA-Z0-9]*\\})+$"
|
|
143
|
+
},
|
|
144
|
+
"description": {
|
|
145
|
+
"type": "string"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"EventRole": {
|
|
150
|
+
"description": "What an event is for, as the platform acts on it:\n- `completion`: a job of kind `completes` produced its result. A wait on the job ends well.\n- `failure`: a job of kind `completes` ended without a result. A wait on the job ends with its reason.\n- `progress`: a job is still running. Nothing waits on it: resolving a wait on progress reports a running job as done.\n- `notice`: anything else a client is told.",
|
|
151
|
+
"enum": [
|
|
152
|
+
"completion",
|
|
153
|
+
"failure",
|
|
154
|
+
"progress",
|
|
155
|
+
"notice"
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
"FailureReason": {
|
|
159
|
+
"description": "Where a settling event says why a job failed.",
|
|
160
|
+
"type": "object",
|
|
161
|
+
"required": [
|
|
162
|
+
"field",
|
|
163
|
+
"fallback"
|
|
164
|
+
],
|
|
165
|
+
"additionalProperties": false,
|
|
166
|
+
"properties": {
|
|
167
|
+
"field": {
|
|
168
|
+
"description": "The payload field carrying the reason.",
|
|
169
|
+
"type": "string",
|
|
170
|
+
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
171
|
+
},
|
|
172
|
+
"fallback": {
|
|
173
|
+
"description": "What the reason is when the field is absent.",
|
|
174
|
+
"type": "string",
|
|
175
|
+
"minLength": 1
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
"EventDeclaration": {
|
|
180
|
+
"type": "object",
|
|
181
|
+
"required": [
|
|
182
|
+
"description",
|
|
183
|
+
"payload",
|
|
184
|
+
"rooms",
|
|
185
|
+
"correlation",
|
|
186
|
+
"role"
|
|
187
|
+
],
|
|
188
|
+
"additionalProperties": false,
|
|
189
|
+
"properties": {
|
|
190
|
+
"description": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"minLength": 1
|
|
193
|
+
},
|
|
194
|
+
"payload": {
|
|
195
|
+
"description": "The payload's JSON Schema: an object. `$ref`s point into the document's `$defs`. Every correlation, result and reason field is one of its properties.",
|
|
196
|
+
"$ref": "#/$defs/EventPayloadSchema"
|
|
197
|
+
},
|
|
198
|
+
"typeName": {
|
|
199
|
+
"description": "The name generated code gives the payload type. Default: the event name in PascalCase (`generation:completed` → `GenerationCompleted`).",
|
|
200
|
+
"type": "string",
|
|
201
|
+
"pattern": "^[A-Z][A-Za-z0-9]*$"
|
|
202
|
+
},
|
|
203
|
+
"rooms": {
|
|
204
|
+
"description": "The rooms the event is published to: names from the document's `rooms`, or `turn` for the room of the agent turn it belongs to (the host names that room in each turn).",
|
|
205
|
+
"type": "array",
|
|
206
|
+
"items": {
|
|
207
|
+
"type": "string",
|
|
208
|
+
"minLength": 1
|
|
209
|
+
},
|
|
210
|
+
"minItems": 1,
|
|
211
|
+
"uniqueItems": true
|
|
212
|
+
},
|
|
213
|
+
"correlation": {
|
|
214
|
+
"description": "The payload fields that say which job, or which resource, the event is about (e.g. `jobId`). A completion or failure has exactly one.",
|
|
215
|
+
"type": "array",
|
|
216
|
+
"items": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
219
|
+
},
|
|
220
|
+
"uniqueItems": true
|
|
221
|
+
},
|
|
222
|
+
"role": {
|
|
223
|
+
"$ref": "#/$defs/EventRole"
|
|
224
|
+
},
|
|
225
|
+
"completes": {
|
|
226
|
+
"description": "For a completion or failure: the kind of job it settles.",
|
|
227
|
+
"type": "string",
|
|
228
|
+
"pattern": "^[a-z][A-Za-z0-9]*$"
|
|
229
|
+
},
|
|
230
|
+
"result": {
|
|
231
|
+
"description": "For a completion: the payload fields that are the job's result, as a follower reports them.",
|
|
232
|
+
"type": "array",
|
|
233
|
+
"items": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
|
|
236
|
+
},
|
|
237
|
+
"uniqueItems": true
|
|
238
|
+
},
|
|
239
|
+
"reason": {
|
|
240
|
+
"description": "For a failure: where its reason is.",
|
|
241
|
+
"$ref": "#/$defs/FailureReason"
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
"allOf": [
|
|
245
|
+
{
|
|
246
|
+
"if": {
|
|
247
|
+
"properties": {
|
|
248
|
+
"role": {
|
|
249
|
+
"enum": [
|
|
250
|
+
"completion",
|
|
251
|
+
"failure"
|
|
252
|
+
]
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"then": {
|
|
257
|
+
"required": [
|
|
258
|
+
"completes"
|
|
259
|
+
],
|
|
260
|
+
"properties": {
|
|
261
|
+
"correlation": {
|
|
262
|
+
"type": "array",
|
|
263
|
+
"minItems": 1,
|
|
264
|
+
"maxItems": 1
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"else": {
|
|
269
|
+
"not": {
|
|
270
|
+
"required": [
|
|
271
|
+
"completes"
|
|
272
|
+
]
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"if": {
|
|
278
|
+
"properties": {
|
|
279
|
+
"role": {
|
|
280
|
+
"const": "completion"
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
"else": {
|
|
285
|
+
"not": {
|
|
286
|
+
"required": [
|
|
287
|
+
"result"
|
|
288
|
+
]
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"if": {
|
|
294
|
+
"properties": {
|
|
295
|
+
"role": {
|
|
296
|
+
"const": "failure"
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"then": {
|
|
301
|
+
"required": [
|
|
302
|
+
"reason"
|
|
303
|
+
]
|
|
304
|
+
},
|
|
305
|
+
"else": {
|
|
306
|
+
"not": {
|
|
307
|
+
"required": [
|
|
308
|
+
"reason"
|
|
309
|
+
]
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.closurestudio.ai/oui/v1/generated-knowledge.json",
|
|
4
|
+
"title": "GeneratedKnowledge",
|
|
5
|
+
"description": "The knowledge the generator emits with the manifest (`oui-knowledge.json`, ADR-0220 §2.5), from the same declarations: the map of the app, every page in full with its relationships and recipes, and the app's frame. No word of it is written by hand. Each turn carries the part for the page the person is on (`resolveKnowledge`): the map, the frame parts around that page, the page in full, and one paragraph for each adjacent page.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"version": { "description": "The contract major (`MANIFEST_VERSION`).", "const": 1 },
|
|
9
|
+
"buildId": { "description": "The manifest's build id: the two are one build.", "type": "string", "minLength": 1 },
|
|
10
|
+
"overview": { "description": "Every page, one line each: the map of the app.", "$ref": "#/$defs/KnowledgeEntry" },
|
|
11
|
+
"pages": { "type": "array", "items": { "$ref": "#/$defs/PageKnowledge" } },
|
|
12
|
+
"frames": {
|
|
13
|
+
"description": "The app's frame around the pages (`shell` surfaces), each part with the route patterns it frames.",
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": { "$ref": "#/$defs/PageKnowledge" }
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": ["version", "buildId", "overview", "pages"],
|
|
19
|
+
"additionalProperties": false,
|
|
20
|
+
"$defs": {
|
|
21
|
+
"KnowledgeEntry": {
|
|
22
|
+
"description": "One block of knowledge, as the assistant's prompt shows it.",
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": { "title": { "type": "string" }, "content": { "type": "string" } },
|
|
25
|
+
"required": ["title", "content"],
|
|
26
|
+
"additionalProperties": false
|
|
27
|
+
},
|
|
28
|
+
"KnowledgeRecipe": {
|
|
29
|
+
"description": "A task recipe the UI implies, as the assistant's prompt shows a workflow.",
|
|
30
|
+
"type": "object",
|
|
31
|
+
"properties": {
|
|
32
|
+
"name": { "type": "string" },
|
|
33
|
+
"trigger": { "type": "string" },
|
|
34
|
+
"steps": { "type": "array", "items": { "type": "string" } }
|
|
35
|
+
},
|
|
36
|
+
"required": ["name", "trigger", "steps"],
|
|
37
|
+
"additionalProperties": false
|
|
38
|
+
},
|
|
39
|
+
"PageKnowledge": {
|
|
40
|
+
"description": "What the assistant knows of one page, or one part of the app's frame.",
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"surface": { "description": "The page surface this describes.", "type": "string" },
|
|
44
|
+
"routes": { "type": "array", "items": { "type": "string" } },
|
|
45
|
+
"summary": { "description": "One paragraph: what the page is for, for when the user is elsewhere.", "$ref": "#/$defs/KnowledgeEntry" },
|
|
46
|
+
"detail": { "description": "Everything the page and its rooms offer, where each thing is, and its parameters.", "$ref": "#/$defs/KnowledgeEntry" },
|
|
47
|
+
"relationships": {
|
|
48
|
+
"description": "Relationships derived from types: which fields apply to what, which animate, what leads where.",
|
|
49
|
+
"anyOf": [{ "$ref": "#/$defs/KnowledgeEntry" }, { "type": "null" }]
|
|
50
|
+
},
|
|
51
|
+
"recipes": { "type": "array", "items": { "$ref": "#/$defs/KnowledgeRecipe" } },
|
|
52
|
+
"adjacent": { "description": "Page surfaces this page leads to or is reached from.", "type": "array", "items": { "type": "string" } }
|
|
53
|
+
},
|
|
54
|
+
"required": ["surface", "routes", "summary", "detail", "relationships", "recipes", "adjacent"],
|
|
55
|
+
"additionalProperties": false
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://schemas.closurestudio.ai/oui/v1/json-schema.json",
|
|
4
|
+
"title": "JsonSchema",
|
|
5
|
+
"description": "The subset of JSON Schema (draft 2020-12) every capability declares its input and values in. It is what assistant tool inputs are written in, so a declared or derived schema is used as is. `x-unit` names the unit a number is in: `px`, `%`, `°`.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": {
|
|
9
|
+
"anyOf": [
|
|
10
|
+
{
|
|
11
|
+
"$ref": "#/$defs/JsonSchemaType"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "array",
|
|
15
|
+
"items": {
|
|
16
|
+
"$ref": "#/$defs/JsonSchemaType"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"description": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"enum": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"items": {
|
|
27
|
+
"anyOf": [
|
|
28
|
+
{
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "number"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"type": "boolean"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "null"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"const": {
|
|
44
|
+
"anyOf": [
|
|
45
|
+
{
|
|
46
|
+
"type": "string"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"type": "number"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "boolean"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"type": "null"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"properties": {
|
|
60
|
+
"type": "object",
|
|
61
|
+
"additionalProperties": {
|
|
62
|
+
"$ref": "#"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"required": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"items": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"additionalProperties": {
|
|
72
|
+
"anyOf": [
|
|
73
|
+
{
|
|
74
|
+
"type": "boolean"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"$ref": "#"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"items": {
|
|
82
|
+
"$ref": "#"
|
|
83
|
+
},
|
|
84
|
+
"minItems": {
|
|
85
|
+
"type": "number"
|
|
86
|
+
},
|
|
87
|
+
"maxItems": {
|
|
88
|
+
"type": "number"
|
|
89
|
+
},
|
|
90
|
+
"uniqueItems": {
|
|
91
|
+
"description": "No two items are the same.",
|
|
92
|
+
"type": "boolean"
|
|
93
|
+
},
|
|
94
|
+
"minimum": {
|
|
95
|
+
"type": "number"
|
|
96
|
+
},
|
|
97
|
+
"maximum": {
|
|
98
|
+
"type": "number"
|
|
99
|
+
},
|
|
100
|
+
"multipleOf": {
|
|
101
|
+
"type": "number"
|
|
102
|
+
},
|
|
103
|
+
"minLength": {
|
|
104
|
+
"type": "number"
|
|
105
|
+
},
|
|
106
|
+
"maxLength": {
|
|
107
|
+
"type": "number"
|
|
108
|
+
},
|
|
109
|
+
"pattern": {
|
|
110
|
+
"type": "string"
|
|
111
|
+
},
|
|
112
|
+
"format": {
|
|
113
|
+
"type": "string"
|
|
114
|
+
},
|
|
115
|
+
"oneOf": {
|
|
116
|
+
"type": "array",
|
|
117
|
+
"items": {
|
|
118
|
+
"$ref": "#"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"anyOf": {
|
|
122
|
+
"type": "array",
|
|
123
|
+
"items": {
|
|
124
|
+
"$ref": "#"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"default": {
|
|
128
|
+
"$comment": "ts: unknown"
|
|
129
|
+
},
|
|
130
|
+
"x-unit": {
|
|
131
|
+
"description": "The unit a number is in: `px`, `%`, `°`.",
|
|
132
|
+
"type": "string"
|
|
133
|
+
},
|
|
134
|
+
"x-enum-omitted": {
|
|
135
|
+
"description": "How many allowed values a shortened `enum` leaves out. Only in the page state, where a row's options are summarised; a tool's input schema always lists every value.",
|
|
136
|
+
"type": "number"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
"$defs": {
|
|
140
|
+
"JsonSchemaType": {
|
|
141
|
+
"description": "A JSON Schema type name.",
|
|
142
|
+
"enum": [
|
|
143
|
+
"object",
|
|
144
|
+
"array",
|
|
145
|
+
"string",
|
|
146
|
+
"number",
|
|
147
|
+
"integer",
|
|
148
|
+
"boolean",
|
|
149
|
+
"null"
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|