@agentage/extension 0.0.0-stage → 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.
Files changed (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -2
  3. package/dist/agcid/agcid.d.ts +4 -0
  4. package/dist/agcid/agcid.js +15 -0
  5. package/dist/agcid/scope.d.ts +4 -0
  6. package/dist/agcid/scope.js +16 -0
  7. package/dist/context/context.d.ts +36 -0
  8. package/dist/context/context.js +25 -0
  9. package/dist/discovery/discovery.d.ts +47 -0
  10. package/dist/discovery/discovery.js +52 -0
  11. package/dist/discovery/discovery.schema.d.ts +106 -0
  12. package/dist/discovery/discovery.schema.js +56 -0
  13. package/dist/envelope/codes.d.ts +16 -0
  14. package/dist/envelope/codes.js +15 -0
  15. package/dist/envelope/envelope.d.ts +34 -0
  16. package/dist/envelope/envelope.js +23 -0
  17. package/dist/envelope/envelope.schema.d.ts +24 -0
  18. package/dist/envelope/envelope.schema.js +18 -0
  19. package/dist/envelope/parse.d.ts +17 -0
  20. package/dist/envelope/parse.js +12 -0
  21. package/dist/health/health.d.ts +18 -0
  22. package/dist/health/health.js +43 -0
  23. package/dist/health/health.schema.d.ts +46 -0
  24. package/dist/health/health.schema.js +20 -0
  25. package/dist/index.d.ts +19 -0
  26. package/dist/index.js +19 -0
  27. package/dist/log/log.d.ts +13 -0
  28. package/dist/log/log.js +21 -0
  29. package/dist/manifest/manifest.schema.d.ts +195 -0
  30. package/dist/manifest/manifest.schema.js +88 -0
  31. package/dist/manifest/parts.d.ts +11 -0
  32. package/dist/manifest/parts.js +24 -0
  33. package/dist/manifest/primitives.schema.d.ts +20 -0
  34. package/dist/manifest/primitives.schema.js +52 -0
  35. package/dist/manifest/read-manifest.d.ts +5 -0
  36. package/dist/manifest/read-manifest.js +19 -0
  37. package/dist/runtime/build-info.d.ts +4 -0
  38. package/dist/runtime/build-info.js +16 -0
  39. package/dist/runtime/main.d.ts +2 -0
  40. package/dist/runtime/main.js +10 -0
  41. package/dist/runtime/run-part.d.ts +13 -0
  42. package/dist/runtime/run-part.js +57 -0
  43. package/dist/schemas/json-schemas.d.ts +2 -0
  44. package/dist/schemas/json-schemas.js +29 -0
  45. package/dist/schemas/write-schemas.d.ts +1 -0
  46. package/dist/schemas/write-schemas.js +8 -0
  47. package/dist/server/app.d.ts +18 -0
  48. package/dist/server/app.js +47 -0
  49. package/dist/server/errors.d.ts +6 -0
  50. package/dist/server/errors.js +29 -0
  51. package/dist/server/part.types.d.ts +7 -0
  52. package/dist/server/part.types.js +2 -0
  53. package/dist/server/serve.d.ts +14 -0
  54. package/dist/server/serve.js +27 -0
  55. package/dist/testing/test-server.d.ts +12 -0
  56. package/dist/testing/test-server.js +26 -0
  57. package/dist/tool/build-info.d.ts +4 -0
  58. package/dist/tool/build-info.js +18 -0
  59. package/dist/tool/build.d.ts +35 -0
  60. package/dist/tool/build.js +83 -0
  61. package/dist/tool/cli.d.ts +2 -0
  62. package/dist/tool/cli.js +3 -0
  63. package/dist/tool/docker.d.ts +15 -0
  64. package/dist/tool/docker.js +26 -0
  65. package/dist/tool/exec.d.ts +12 -0
  66. package/dist/tool/exec.js +24 -0
  67. package/dist/tool/format.d.ts +2 -0
  68. package/dist/tool/format.js +14 -0
  69. package/dist/tool/index.d.ts +11 -0
  70. package/dist/tool/index.js +11 -0
  71. package/dist/tool/labels.d.ts +4 -0
  72. package/dist/tool/labels.js +25 -0
  73. package/dist/tool/main.d.ts +8 -0
  74. package/dist/tool/main.js +54 -0
  75. package/dist/tool/recipe.d.ts +3 -0
  76. package/dist/tool/recipe.js +32 -0
  77. package/dist/tool/stage.d.ts +5 -0
  78. package/dist/tool/stage.js +52 -0
  79. package/package.json +64 -4
  80. package/schemas/error-envelope.schema.json +70 -0
  81. package/schemas/extension-discovery.schema.json +182 -0
  82. package/schemas/extension-package.schema.json +309 -0
  83. package/schemas/extension-record.schema.json +176 -0
  84. package/schemas/health.schema.json +100 -0
  85. package/schemas/ok-envelope.schema.json +25 -0
@@ -0,0 +1,309 @@
1
+ {
2
+ "$id": "https://agentage.io/schemas/extension-package.schema.json",
3
+ "title": "agentage extension package.json",
4
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "maxLength": 214,
10
+ "pattern": "^(?:@[a-z0-9][a-z0-9._~-]*\\/)?[a-z0-9][a-z0-9._~-]*$"
11
+ },
12
+ "version": {
13
+ "type": "string",
14
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"
15
+ },
16
+ "engines": {
17
+ "type": "object",
18
+ "properties": {
19
+ "agentage": {
20
+ "type": "string",
21
+ "maxLength": 64,
22
+ "pattern": "^[0-9xX*^~<>=| .-]+[0-9A-Za-z.-]*$"
23
+ }
24
+ },
25
+ "required": [
26
+ "agentage"
27
+ ],
28
+ "additionalProperties": {}
29
+ },
30
+ "agentage": {
31
+ "type": "object",
32
+ "properties": {
33
+ "id": {
34
+ "type": "string",
35
+ "maxLength": 32,
36
+ "pattern": "^(?!(?:auth|www|api|sync|mail|mcp|ui|git|setup|status|update|extension|add|remove|help|con|prn|aux|nul|com[0-9]|lpt[0-9])$)[a-z][a-z0-9-]*$"
37
+ },
38
+ "parts": {
39
+ "type": "object",
40
+ "properties": {
41
+ "pages": {
42
+ "anyOf": [
43
+ {
44
+ "type": "boolean"
45
+ },
46
+ {
47
+ "type": "object",
48
+ "properties": {
49
+ "entry": {
50
+ "type": "string",
51
+ "maxLength": 256,
52
+ "pattern": "^\\.\\/[A-Za-z0-9._/-]+$"
53
+ }
54
+ },
55
+ "additionalProperties": false
56
+ }
57
+ ]
58
+ },
59
+ "ui": {
60
+ "anyOf": [
61
+ {
62
+ "type": "boolean"
63
+ },
64
+ {
65
+ "type": "object",
66
+ "properties": {
67
+ "entry": {
68
+ "type": "string",
69
+ "maxLength": 256,
70
+ "pattern": "^\\.\\/[A-Za-z0-9._/-]+$"
71
+ }
72
+ },
73
+ "additionalProperties": false
74
+ }
75
+ ]
76
+ },
77
+ "api": {
78
+ "anyOf": [
79
+ {
80
+ "type": "boolean"
81
+ },
82
+ {
83
+ "type": "object",
84
+ "properties": {
85
+ "entry": {
86
+ "type": "string",
87
+ "maxLength": 256,
88
+ "pattern": "^\\.\\/[A-Za-z0-9._/-]+$"
89
+ }
90
+ },
91
+ "additionalProperties": false
92
+ }
93
+ ]
94
+ },
95
+ "mcp": {
96
+ "anyOf": [
97
+ {
98
+ "type": "boolean"
99
+ },
100
+ {
101
+ "type": "object",
102
+ "properties": {
103
+ "entry": {
104
+ "type": "string",
105
+ "maxLength": 256,
106
+ "pattern": "^\\.\\/[A-Za-z0-9._/-]+$"
107
+ }
108
+ },
109
+ "additionalProperties": false
110
+ }
111
+ ]
112
+ },
113
+ "worker": {
114
+ "anyOf": [
115
+ {
116
+ "type": "boolean"
117
+ },
118
+ {
119
+ "type": "object",
120
+ "properties": {
121
+ "entry": {
122
+ "type": "string",
123
+ "maxLength": 256,
124
+ "pattern": "^\\.\\/[A-Za-z0-9._/-]+$"
125
+ }
126
+ },
127
+ "additionalProperties": false
128
+ }
129
+ ]
130
+ },
131
+ "cli": {
132
+ "anyOf": [
133
+ {
134
+ "type": "boolean"
135
+ },
136
+ {
137
+ "type": "object",
138
+ "properties": {
139
+ "entry": {
140
+ "type": "string",
141
+ "maxLength": 256,
142
+ "pattern": "^\\.\\/[A-Za-z0-9._/-]+$"
143
+ }
144
+ },
145
+ "additionalProperties": false
146
+ }
147
+ ]
148
+ },
149
+ "store": {
150
+ "anyOf": [
151
+ {
152
+ "type": "string",
153
+ "enum": [
154
+ "postgres",
155
+ "git",
156
+ "signoz"
157
+ ]
158
+ },
159
+ {
160
+ "type": "object",
161
+ "properties": {
162
+ "kind": {
163
+ "type": "string",
164
+ "enum": [
165
+ "postgres",
166
+ "git",
167
+ "signoz"
168
+ ]
169
+ }
170
+ },
171
+ "required": [
172
+ "kind"
173
+ ],
174
+ "additionalProperties": false
175
+ }
176
+ ]
177
+ }
178
+ },
179
+ "additionalProperties": false
180
+ },
181
+ "commands": {
182
+ "minItems": 1,
183
+ "type": "array",
184
+ "items": {
185
+ "type": "object",
186
+ "properties": {
187
+ "name": {
188
+ "type": "string",
189
+ "maxLength": 32,
190
+ "pattern": "^[a-z][a-z0-9-]*$"
191
+ },
192
+ "summary": {
193
+ "type": "string",
194
+ "minLength": 1,
195
+ "maxLength": 120
196
+ },
197
+ "args": {
198
+ "type": "array",
199
+ "items": {
200
+ "type": "object",
201
+ "properties": {
202
+ "name": {
203
+ "type": "string",
204
+ "maxLength": 32,
205
+ "pattern": "^[a-z][a-z0-9-]*$"
206
+ },
207
+ "type": {
208
+ "type": "string",
209
+ "enum": [
210
+ "string",
211
+ "integer",
212
+ "number",
213
+ "boolean"
214
+ ]
215
+ },
216
+ "required": {
217
+ "type": "boolean"
218
+ },
219
+ "description": {
220
+ "type": "string",
221
+ "minLength": 1,
222
+ "maxLength": 200
223
+ }
224
+ },
225
+ "required": [
226
+ "name",
227
+ "type"
228
+ ],
229
+ "additionalProperties": false
230
+ }
231
+ }
232
+ },
233
+ "required": [
234
+ "name",
235
+ "summary"
236
+ ],
237
+ "additionalProperties": false
238
+ }
239
+ },
240
+ "settings": {
241
+ "type": "object",
242
+ "propertyNames": {
243
+ "type": "string",
244
+ "maxLength": 64,
245
+ "pattern": "^[a-z][A-Za-z0-9]*(\\.[a-z][A-Za-z0-9]*)*$"
246
+ },
247
+ "additionalProperties": {
248
+ "type": "object",
249
+ "properties": {
250
+ "type": {
251
+ "type": "string",
252
+ "enum": [
253
+ "string",
254
+ "integer",
255
+ "number",
256
+ "boolean"
257
+ ]
258
+ },
259
+ "default": {
260
+ "type": [
261
+ "string",
262
+ "number",
263
+ "boolean"
264
+ ]
265
+ },
266
+ "enum": {
267
+ "minItems": 1,
268
+ "type": "array",
269
+ "items": {
270
+ "type": "string"
271
+ }
272
+ },
273
+ "description": {
274
+ "type": "string",
275
+ "minLength": 1,
276
+ "maxLength": 200
277
+ }
278
+ },
279
+ "required": [
280
+ "type",
281
+ "default"
282
+ ],
283
+ "additionalProperties": false
284
+ }
285
+ },
286
+ "secrets": {
287
+ "type": "array",
288
+ "items": {
289
+ "type": "string",
290
+ "maxLength": 48,
291
+ "pattern": "^[a-z][a-z0-9-]*$"
292
+ }
293
+ }
294
+ },
295
+ "required": [
296
+ "id",
297
+ "parts"
298
+ ],
299
+ "additionalProperties": false
300
+ }
301
+ },
302
+ "required": [
303
+ "name",
304
+ "version",
305
+ "engines",
306
+ "agentage"
307
+ ],
308
+ "additionalProperties": {}
309
+ }
@@ -0,0 +1,176 @@
1
+ {
2
+ "$id": "https://agentage.io/schemas/extension-record.schema.json",
3
+ "title": "agentage-extension.json build record (in the package and the release asset)",
4
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
5
+ "type": "object",
6
+ "properties": {
7
+ "id": {
8
+ "type": "string",
9
+ "maxLength": 32,
10
+ "pattern": "^(?!(?:auth|www|api|sync|mail|mcp|ui|git|setup|status|update|extension|add|remove|help|con|prn|aux|nul|com[0-9]|lpt[0-9])$)[a-z][a-z0-9-]*$"
11
+ },
12
+ "version": {
13
+ "type": "string",
14
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"
15
+ },
16
+ "commit": {
17
+ "type": "string",
18
+ "pattern": "^[0-9a-f]{40}$"
19
+ },
20
+ "buildTime": {
21
+ "type": "string",
22
+ "format": "date-time",
23
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
24
+ },
25
+ "parts": {
26
+ "type": "object",
27
+ "properties": {
28
+ "pages": {
29
+ "type": "object",
30
+ "properties": {
31
+ "image": {
32
+ "type": "string",
33
+ "maxLength": 256,
34
+ "pattern": "^[a-z0-9][a-z0-9.-]*(:[0-9]{1,5})?\\/[a-z0-9][a-z0-9-]*\\/[a-z][a-z0-9-]*-(pages|ui|api|mcp|worker)@sha256:[0-9a-f]{64}$"
35
+ }
36
+ },
37
+ "required": [
38
+ "image"
39
+ ],
40
+ "additionalProperties": false
41
+ },
42
+ "ui": {
43
+ "type": "object",
44
+ "properties": {
45
+ "image": {
46
+ "type": "string",
47
+ "maxLength": 256,
48
+ "pattern": "^[a-z0-9][a-z0-9.-]*(:[0-9]{1,5})?\\/[a-z0-9][a-z0-9-]*\\/[a-z][a-z0-9-]*-(pages|ui|api|mcp|worker)@sha256:[0-9a-f]{64}$"
49
+ }
50
+ },
51
+ "required": [
52
+ "image"
53
+ ],
54
+ "additionalProperties": false
55
+ },
56
+ "api": {
57
+ "type": "object",
58
+ "properties": {
59
+ "image": {
60
+ "type": "string",
61
+ "maxLength": 256,
62
+ "pattern": "^[a-z0-9][a-z0-9.-]*(:[0-9]{1,5})?\\/[a-z0-9][a-z0-9-]*\\/[a-z][a-z0-9-]*-(pages|ui|api|mcp|worker)@sha256:[0-9a-f]{64}$"
63
+ }
64
+ },
65
+ "required": [
66
+ "image"
67
+ ],
68
+ "additionalProperties": false
69
+ },
70
+ "mcp": {
71
+ "type": "object",
72
+ "properties": {
73
+ "image": {
74
+ "type": "string",
75
+ "maxLength": 256,
76
+ "pattern": "^[a-z0-9][a-z0-9.-]*(:[0-9]{1,5})?\\/[a-z0-9][a-z0-9-]*\\/[a-z][a-z0-9-]*-(pages|ui|api|mcp|worker)@sha256:[0-9a-f]{64}$"
77
+ }
78
+ },
79
+ "required": [
80
+ "image"
81
+ ],
82
+ "additionalProperties": false
83
+ },
84
+ "worker": {
85
+ "type": "object",
86
+ "properties": {
87
+ "image": {
88
+ "type": "string",
89
+ "maxLength": 256,
90
+ "pattern": "^[a-z0-9][a-z0-9.-]*(:[0-9]{1,5})?\\/[a-z0-9][a-z0-9-]*\\/[a-z][a-z0-9-]*-(pages|ui|api|mcp|worker)@sha256:[0-9a-f]{64}$"
91
+ }
92
+ },
93
+ "required": [
94
+ "image"
95
+ ],
96
+ "additionalProperties": false
97
+ },
98
+ "store": {
99
+ "type": "object",
100
+ "properties": {
101
+ "kind": {
102
+ "type": "string",
103
+ "enum": [
104
+ "postgres",
105
+ "git",
106
+ "signoz"
107
+ ]
108
+ }
109
+ },
110
+ "required": [
111
+ "kind"
112
+ ],
113
+ "additionalProperties": false
114
+ }
115
+ },
116
+ "additionalProperties": false
117
+ },
118
+ "openapi": {
119
+ "type": "string",
120
+ "pattern": "^\\/api\\/v[1-9][0-9]*\\/openapi\\.json$"
121
+ },
122
+ "tools": {
123
+ "minItems": 1,
124
+ "type": "array",
125
+ "items": {
126
+ "type": "string",
127
+ "maxLength": 64,
128
+ "pattern": "^[a-z][a-z0-9-]*__[a-z][a-z0-9_-]*$"
129
+ }
130
+ },
131
+ "widgets": {
132
+ "minItems": 1,
133
+ "type": "array",
134
+ "items": {
135
+ "type": "object",
136
+ "properties": {
137
+ "name": {
138
+ "type": "string",
139
+ "pattern": "^[a-z][a-z0-9-]*$"
140
+ },
141
+ "element": {
142
+ "type": "string",
143
+ "pattern": "^[a-z][a-z0-9]*-[a-z0-9-]+$"
144
+ },
145
+ "module": {
146
+ "type": "string",
147
+ "pattern": "^\\/ui\\/[^/]+\\/[^/]+\\.m?js$"
148
+ }
149
+ },
150
+ "required": [
151
+ "name",
152
+ "element",
153
+ "module"
154
+ ],
155
+ "additionalProperties": false
156
+ }
157
+ },
158
+ "commands": {
159
+ "minItems": 1,
160
+ "type": "array",
161
+ "items": {
162
+ "type": "string",
163
+ "maxLength": 32,
164
+ "pattern": "^[a-z][a-z0-9-]*$"
165
+ }
166
+ }
167
+ },
168
+ "required": [
169
+ "id",
170
+ "version",
171
+ "commit",
172
+ "buildTime",
173
+ "parts"
174
+ ],
175
+ "additionalProperties": false
176
+ }
@@ -0,0 +1,100 @@
1
+ {
2
+ "$id": "https://agentage.io/schemas/health.schema.json",
3
+ "title": "GET /health of every part container",
4
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
5
+ "type": "object",
6
+ "properties": {
7
+ "success": {
8
+ "type": "boolean"
9
+ },
10
+ "data": {
11
+ "type": "object",
12
+ "properties": {
13
+ "status": {
14
+ "type": "string",
15
+ "enum": [
16
+ "ok",
17
+ "degraded",
18
+ "unavailable"
19
+ ]
20
+ },
21
+ "extension": {
22
+ "type": "string",
23
+ "maxLength": 32,
24
+ "pattern": "^(?!(?:auth|www|api|sync|mail|mcp|ui|git|setup|status|update|extension|add|remove|help|con|prn|aux|nul|com[0-9]|lpt[0-9])$)[a-z][a-z0-9-]*$"
25
+ },
26
+ "part": {
27
+ "type": "string",
28
+ "enum": [
29
+ "pages",
30
+ "ui",
31
+ "api",
32
+ "mcp",
33
+ "worker",
34
+ "store"
35
+ ]
36
+ },
37
+ "version": {
38
+ "type": "string",
39
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"
40
+ },
41
+ "commit": {
42
+ "type": "string",
43
+ "pattern": "^[0-9a-f]{7,40}$"
44
+ },
45
+ "buildTime": {
46
+ "type": "string",
47
+ "format": "date-time",
48
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
49
+ },
50
+ "instance": {
51
+ "type": "string",
52
+ "pattern": "^[0-9a-f]{8,32}$"
53
+ },
54
+ "uptimeSeconds": {
55
+ "type": "integer",
56
+ "minimum": 0,
57
+ "maximum": 9007199254740991
58
+ },
59
+ "checkedAt": {
60
+ "type": "string",
61
+ "format": "date-time",
62
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
63
+ },
64
+ "checks": {
65
+ "type": "object",
66
+ "propertyNames": {
67
+ "type": "string",
68
+ "pattern": "^[a-z][a-z0-9-]*$"
69
+ },
70
+ "additionalProperties": {
71
+ "type": "string",
72
+ "enum": [
73
+ "ok",
74
+ "degraded",
75
+ "unavailable"
76
+ ]
77
+ }
78
+ }
79
+ },
80
+ "required": [
81
+ "status",
82
+ "extension",
83
+ "part",
84
+ "version",
85
+ "commit",
86
+ "buildTime",
87
+ "instance",
88
+ "uptimeSeconds",
89
+ "checkedAt",
90
+ "checks"
91
+ ],
92
+ "additionalProperties": false
93
+ }
94
+ },
95
+ "required": [
96
+ "success",
97
+ "data"
98
+ ],
99
+ "additionalProperties": false
100
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$id": "https://agentage.io/schemas/ok-envelope.schema.json",
3
+ "title": "REST success envelope",
4
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
5
+ "type": "object",
6
+ "properties": {
7
+ "success": {
8
+ "type": "boolean",
9
+ "const": true
10
+ },
11
+ "data": {},
12
+ "meta": {
13
+ "type": "object",
14
+ "propertyNames": {
15
+ "type": "string"
16
+ },
17
+ "additionalProperties": {}
18
+ }
19
+ },
20
+ "required": [
21
+ "success",
22
+ "data"
23
+ ],
24
+ "additionalProperties": false
25
+ }