@toolproof-core/genesis 1.0.49 → 1.0.50
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/dist/src/implementations/tools.d.ts +100 -0
- package/dist/src/implementations/tools.js +135 -0
- package/dist/src/index.d.ts +5 -4
- package/dist/src/index.js +4 -3
- package/dist/src/utils/resourceTypes.d.ts +2 -1
- package/dist/src/utils/resourceTypes.js +22 -6
- package/dist/src/utils/schemaRefNormalization.js +3 -3
- package/dist/src/utils/standaloneTypes.js +2 -2
- package/dist/src/utils/timestampedResources.d.ts +16 -0
- package/dist/src/utils/timestampedResources.js +17 -0
- package/dist/src/utils/typeGenerationPostProcess.js +2 -2
- package/dist/src/utils/zodCodegen.js +3 -3
- package/generated-src/declarations/booleans.json +4 -0
- package/generated-src/declarations/booleans.ts +2 -0
- package/generated-src/declarations/naturals.json +13 -0
- package/generated-src/declarations/naturals.ts +2 -0
- package/generated-src/{resourceTypes → declarations}/resourceTypes.json +176 -39
- package/generated-src/declarations/resourceTypes.ts +2 -0
- package/generated-src/declarations/tools.json +705 -0
- package/generated-src/declarations/tools.ts +2 -0
- package/generated-src/implementations/tools.ts +214 -0
- package/generated-src/{derived → lookups}/constants.ts +4 -5
- package/generated-src/metadata/Core.json +51 -114
- package/generated-src/metadata/dependencyMap.json +16 -2
- package/generated-src/metadata/terminals.json +3 -4
- package/generated-src/schemas/schemas.json +198 -29
- package/generated-src/schemas/standalone/Resource.json +4 -8
- package/generated-src/schemas/standalone/ResourceType.json +21 -5
- package/generated-src/schemas/standalone/Strategy.json +4 -8
- package/generated-src/schemas/standalone/StrategyTrace.json +4 -8
- package/generated-src/schemas/standalone/Suite.json +646 -0
- package/generated-src/schemas/standalone/Suite.ts +2 -0
- package/generated-src/schemas/standalone/Tool.json +48 -23
- package/generated-src/schemas/zod/Resource.ts +2 -2
- package/generated-src/schemas/zod/ResourceType.ts +1 -1
- package/generated-src/schemas/zod/Strategy.ts +3 -3
- package/generated-src/schemas/zod/StrategyTrace.ts +3 -3
- package/generated-src/schemas/zod/Suite.ts +44 -0
- package/generated-src/schemas/zod/Tool.ts +7 -2
- package/generated-src/schemas/zod/index.ts +1 -0
- package/{src/genesis/resources → generated-src/timestampedResources}/booleans.json +19 -23
- package/generated-src/timestampedResources/booleans.ts +2 -0
- package/{src/genesis/resources → generated-src/timestampedResources}/naturals.json +100 -111
- package/generated-src/timestampedResources/naturals.ts +2 -0
- package/generated-src/{resources → timestampedResources}/resourceTypes.json +202 -66
- package/generated-src/timestampedResources/resourceTypes.ts +2 -0
- package/{src/genesis/resources → generated-src/timestampedResources}/tools.json +824 -839
- package/generated-src/timestampedResources/tools.ts +2 -0
- package/generated-src/types/standalone/BooleanResource.d.ts +2 -2
- package/generated-src/types/standalone/ErrorResource.d.ts +2 -2
- package/generated-src/types/standalone/GoalResource.d.ts +2 -2
- package/generated-src/types/standalone/NaturalResource.d.ts +2 -2
- package/generated-src/types/standalone/ResourceResource.d.ts +2 -2
- package/generated-src/types/standalone/ResourceTypeResource.d.ts +2 -2
- package/generated-src/types/standalone/StrategyResource.d.ts +2 -2
- package/generated-src/types/standalone/StrategyTraceResource.d.ts +2 -2
- package/generated-src/types/standalone/SuiteResource.d.ts +3 -0
- package/generated-src/types/standalone/SuiteResource.js +1 -0
- package/generated-src/types/standalone/ToolResource.d.ts +2 -2
- package/generated-src/types/types.d.ts +57 -14
- package/package.json +18 -13
- package/src/declarations/booleans.json +4 -0
- package/src/declarations/naturals.json +13 -0
- package/src/{genesis → declarations/resourceTypes}/resourceTypeShells.json +52 -46
- package/src/{genesis → declarations/resourceTypes}/schemas.json +1838 -1669
- package/src/declarations/tools.json +705 -0
- package/src/implementations/tools.ts +214 -0
- package/src/index.ts +131 -110
- package/src/utils/constantsAndMappings.ts +194 -194
- package/src/utils/coreProjection.ts +52 -52
- package/src/utils/resourceTypes.ts +70 -38
- package/src/utils/schemaDependencies.ts +114 -114
- package/src/utils/schemaObjectNormalization.ts +70 -70
- package/src/utils/schemaRefNormalization.ts +82 -82
- package/src/utils/schemaShims.ts +16 -16
- package/src/utils/standaloneSchemas.ts +113 -113
- package/src/utils/standaloneTypes.ts +27 -27
- package/src/utils/standaloneZodSchemas.ts +71 -71
- package/src/utils/timestampedResources.ts +42 -0
- package/src/utils/typeGeneration.ts +30 -30
- package/src/utils/typeGenerationPostProcess.ts +245 -245
- package/src/utils/typeGenerationPreflight.ts +118 -118
- package/src/utils/zodCodegen.ts +548 -548
- package/toolproof.json +19 -0
- package/dist/src/genesis/resources/implementations/foo.d.ts +0 -1
- package/dist/src/genesis/resources/implementations/foo.js +0 -184
- package/dist/src/utils/resources.d.ts +0 -5
- package/dist/src/utils/resources.js +0 -17
- package/generated-src/resourceTypes/resourceTypes.ts +0 -2
- package/generated-src/resources/resourceTypes.ts +0 -2
- package/src/genesis/resources/implementations/foo.ts +0 -183
- package/src/utils/resources.ts +0 -26
- /package/generated-src/{derived → lookups}/mappings.ts +0 -0
|
@@ -1,32 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
"id": "RESOURCE-ResourceType",
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "RESOURCE-TYPE:ResourceType",
|
|
4
4
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
5
5
|
"provenance": {
|
|
6
6
|
"resourceProvenanceKind": "genesis"
|
|
7
7
|
},
|
|
8
|
-
"version": 1,
|
|
9
8
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
10
|
-
"
|
|
11
|
-
"handle": "TYPE-
|
|
9
|
+
"projection": {
|
|
10
|
+
"handle": "TYPE-ResourceType",
|
|
12
11
|
"name": "ResourceType",
|
|
13
12
|
"description": "",
|
|
14
|
-
"
|
|
13
|
+
"projectionSchema": {
|
|
15
14
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
16
15
|
"type": "object",
|
|
17
16
|
"required": [
|
|
18
17
|
"handle"
|
|
19
18
|
],
|
|
19
|
+
"semanticValidation": "If ingestorToolHandle is present, verify that it references an existing non-template Tool whose distinguished raw-instance input semantically matches ingestorToolInputSchema when provided, whose distinguished Boolean output reports whether the raw instance is valid for this ResourceType, and whose distinguished projection output is typed as this ResourceType and conforms to projectionSchema when projectionSchema is present.",
|
|
20
20
|
"properties": {
|
|
21
21
|
"handle": {
|
|
22
22
|
"$ref": "#/$defs/ResourceTypeHandle"
|
|
23
23
|
},
|
|
24
|
-
"
|
|
24
|
+
"projectionSchema": {
|
|
25
25
|
"$ref": "#/$defs/JsonSchemaObject"
|
|
26
26
|
},
|
|
27
|
-
"
|
|
27
|
+
"ingestorToolHandle": {
|
|
28
28
|
"$ref": "#/$defs/ToolHandle"
|
|
29
29
|
},
|
|
30
|
+
"ingestorToolInputSchema": {
|
|
31
|
+
"$ref": "#/$defs/JsonSchemaObject"
|
|
32
|
+
},
|
|
30
33
|
"embeddingModelTools": {
|
|
31
34
|
"type": "array",
|
|
32
35
|
"items": {
|
|
@@ -41,38 +44,49 @@
|
|
|
41
44
|
"$ref": "#/$defs/DocumentationSpec"
|
|
42
45
|
},
|
|
43
46
|
{
|
|
44
|
-
"$comment": "A ResourceType
|
|
47
|
+
"$comment": "A ResourceType ultimately describes both raw instances and their Core-visible JSON projection. Inside ToolProof Core, the ResourceType denotes the projection. projectionSchema describes the shape of that Core-visible projection. ingestorToolHandle identifies the Tool that ingests raw instances for this ResourceType by validating them against the built-in format grammar and, when projectionSchema is present, emitting the corresponding projection for Core. ingestorToolInputSchema describes the raw-instance input accepted by that ingestor. A ResourceType must specify either a projectionSchema or an ingestorToolHandle, or both. If only a projectionSchema is specified, the author relies on schema-based validation of the Core-visible projection and does not designate an ingestor. If only an ingestorToolHandle is specified, the author designates an ingestor that is authoritative for validating raw instances of the ResourceType. If both are specified, the ingestor must emit projections that conform to projectionSchema.",
|
|
45
48
|
"anyOf": [
|
|
46
49
|
{
|
|
47
50
|
"required": [
|
|
48
|
-
"
|
|
51
|
+
"projectionSchema"
|
|
49
52
|
]
|
|
50
53
|
},
|
|
51
54
|
{
|
|
52
55
|
"required": [
|
|
53
|
-
"
|
|
56
|
+
"ingestorToolHandle"
|
|
54
57
|
]
|
|
55
58
|
}
|
|
56
59
|
]
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"if": {
|
|
63
|
+
"required": [
|
|
64
|
+
"ingestorToolInputSchema"
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"then": {
|
|
68
|
+
"required": [
|
|
69
|
+
"ingestorToolHandle"
|
|
70
|
+
]
|
|
71
|
+
}
|
|
57
72
|
}
|
|
58
73
|
],
|
|
59
74
|
"unevaluatedProperties": false
|
|
60
75
|
}
|
|
61
76
|
}
|
|
62
77
|
},
|
|
63
|
-
|
|
64
|
-
"id": "RESOURCE-Tool",
|
|
78
|
+
{
|
|
79
|
+
"id": "RESOURCE-TYPE:Tool",
|
|
65
80
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
66
81
|
"provenance": {
|
|
67
82
|
"resourceProvenanceKind": "genesis"
|
|
68
83
|
},
|
|
69
|
-
"version": 1,
|
|
70
84
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
71
|
-
"
|
|
72
|
-
"handle": "TYPE-
|
|
85
|
+
"projection": {
|
|
86
|
+
"handle": "TYPE-Tool",
|
|
73
87
|
"name": "Tool",
|
|
74
88
|
"description": "",
|
|
75
|
-
"
|
|
89
|
+
"projectionSchema": {
|
|
76
90
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
77
91
|
"type": "object",
|
|
78
92
|
"required": [
|
|
@@ -83,17 +97,17 @@
|
|
|
83
97
|
"handle": {
|
|
84
98
|
"$ref": "#/$defs/ToolHandle"
|
|
85
99
|
},
|
|
86
|
-
"isTemplate": {
|
|
87
|
-
"type": "boolean"
|
|
88
|
-
},
|
|
89
100
|
"templateToolHandle": {
|
|
90
101
|
"$ref": "#/$defs/ToolHandle"
|
|
91
102
|
},
|
|
103
|
+
"isTemplate": {
|
|
104
|
+
"type": "boolean"
|
|
105
|
+
},
|
|
92
106
|
"instantiationRoleSpec": {
|
|
93
107
|
"$ref": "#/$defs/RoleSpec"
|
|
94
108
|
}
|
|
95
109
|
},
|
|
96
|
-
"$comment": "Template Tools own dispatch contract: Core scans all instantiation Tools grouped by templateToolHandle, derives a specializationKey from each tool's generic
|
|
110
|
+
"$comment": "Template Tools own dispatch contract: Core scans all instantiation Tools grouped by templateToolHandle, derives a specializationKey from each instantiation tool's generic assignment by taking the canonical order of genericRoleName -> assigned ResourceType.resourceTypeHandle pairs, and asserts injectivity (no two instantiation Tools share the same key for the same template). At invocation time Core injects the specializationKey -> instantiationToolHandle lookup as the second input, then the template resolves the first input against it to return one instantiation Tool. Cross-resource compatibility between an instantiation Tool's roleSpec and the template's instantiationRoleSpec is deferred to the validation package.",
|
|
97
111
|
"semanticValidation": "Deferred: verify injectivity of specializationKey map per template; verify instantiation Tool roleSpec matches template instantiationRoleSpec; verify every supplied generic assignment key-set exactly equals roleSpec.inputRoleValueByName.GenericAssignmentByRoleName.mapKeys; verify every supplied generic assignment matches a registered specializationKey.",
|
|
98
112
|
"allOf": [
|
|
99
113
|
{
|
|
@@ -124,7 +138,7 @@
|
|
|
124
138
|
}
|
|
125
139
|
},
|
|
126
140
|
{
|
|
127
|
-
"$comment": "Template Tools must declare named roles: two map inputs (GenericAssignmentByRoleName and InstantiationToolHandleBySpecializationKey) and one scalar TYPE-Tool output (InstantiationTool). Runtime semantic validation enforces that invocation
|
|
141
|
+
"$comment": "Template Tools must declare named roles: two map inputs (GenericAssignmentByRoleName and InstantiationToolHandleBySpecializationKey) and one scalar TYPE-Tool output (InstantiationTool). GenericAssignmentByRoleName.mapKeys declares the generic parameter names accepted by the template. Runtime semantic validation enforces that each invocation's GenericAssignmentByRoleName object has exactly that key set: no missing keys, no extra keys. These keys are the generic parameter names later referenced via roleSchema refs such as #OperandType; they are not required to match the top-level role names of instantiationRoleSpec.",
|
|
128
142
|
"if": {
|
|
129
143
|
"required": [
|
|
130
144
|
"isTemplate"
|
|
@@ -246,19 +260,18 @@
|
|
|
246
260
|
}
|
|
247
261
|
}
|
|
248
262
|
},
|
|
249
|
-
|
|
250
|
-
"id": "RESOURCE-Strategy",
|
|
263
|
+
{
|
|
264
|
+
"id": "RESOURCE-TYPE:Strategy",
|
|
251
265
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
252
266
|
"provenance": {
|
|
253
267
|
"resourceProvenanceKind": "genesis"
|
|
254
268
|
},
|
|
255
|
-
"version": 1,
|
|
256
269
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
257
|
-
"
|
|
258
|
-
"handle": "TYPE-
|
|
270
|
+
"projection": {
|
|
271
|
+
"handle": "TYPE-Strategy",
|
|
259
272
|
"name": "Strategy",
|
|
260
273
|
"description": "",
|
|
261
|
-
"
|
|
274
|
+
"projectionSchema": {
|
|
262
275
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
263
276
|
"oneOf": [
|
|
264
277
|
{
|
|
@@ -271,19 +284,18 @@
|
|
|
271
284
|
}
|
|
272
285
|
}
|
|
273
286
|
},
|
|
274
|
-
|
|
275
|
-
"id": "RESOURCE-StrategyTrace",
|
|
287
|
+
{
|
|
288
|
+
"id": "RESOURCE-TYPE:StrategyTrace",
|
|
276
289
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
277
290
|
"provenance": {
|
|
278
291
|
"resourceProvenanceKind": "genesis"
|
|
279
292
|
},
|
|
280
|
-
"version": 1,
|
|
281
293
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
282
|
-
"
|
|
283
|
-
"handle": "TYPE-
|
|
294
|
+
"projection": {
|
|
295
|
+
"handle": "TYPE-StrategyTrace",
|
|
284
296
|
"name": "StrategyTrace",
|
|
285
297
|
"description": "",
|
|
286
|
-
"
|
|
298
|
+
"projectionSchema": {
|
|
287
299
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
288
300
|
"type": "object",
|
|
289
301
|
"required": [
|
|
@@ -310,19 +322,18 @@
|
|
|
310
322
|
}
|
|
311
323
|
}
|
|
312
324
|
},
|
|
313
|
-
|
|
314
|
-
"id": "RESOURCE-Goal",
|
|
325
|
+
{
|
|
326
|
+
"id": "RESOURCE-TYPE:Goal",
|
|
315
327
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
316
328
|
"provenance": {
|
|
317
329
|
"resourceProvenanceKind": "genesis"
|
|
318
330
|
},
|
|
319
|
-
"version": 1,
|
|
320
331
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
321
|
-
"
|
|
322
|
-
"handle": "TYPE-
|
|
332
|
+
"projection": {
|
|
333
|
+
"handle": "TYPE-Goal",
|
|
323
334
|
"name": "Goal",
|
|
324
335
|
"description": "",
|
|
325
|
-
"
|
|
336
|
+
"projectionSchema": {
|
|
326
337
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
327
338
|
"type": "object",
|
|
328
339
|
"required": [
|
|
@@ -365,19 +376,18 @@
|
|
|
365
376
|
}
|
|
366
377
|
}
|
|
367
378
|
},
|
|
368
|
-
|
|
369
|
-
"id": "RESOURCE-Error",
|
|
379
|
+
{
|
|
380
|
+
"id": "RESOURCE-TYPE:Error",
|
|
370
381
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
371
382
|
"provenance": {
|
|
372
383
|
"resourceProvenanceKind": "genesis"
|
|
373
384
|
},
|
|
374
|
-
"version": 1,
|
|
375
385
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
376
|
-
"
|
|
377
|
-
"handle": "TYPE-
|
|
386
|
+
"projection": {
|
|
387
|
+
"handle": "TYPE-Error",
|
|
378
388
|
"name": "Error",
|
|
379
389
|
"description": "",
|
|
380
|
-
"
|
|
390
|
+
"projectionSchema": {
|
|
381
391
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
382
392
|
"type": "object",
|
|
383
393
|
"allOf": [
|
|
@@ -396,61 +406,187 @@
|
|
|
396
406
|
}
|
|
397
407
|
}
|
|
398
408
|
},
|
|
399
|
-
|
|
400
|
-
"id": "RESOURCE-Boolean",
|
|
409
|
+
{
|
|
410
|
+
"id": "RESOURCE-TYPE:Boolean",
|
|
401
411
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
402
412
|
"provenance": {
|
|
403
413
|
"resourceProvenanceKind": "genesis"
|
|
404
414
|
},
|
|
405
|
-
"version": 1,
|
|
406
415
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
407
|
-
"
|
|
408
|
-
"handle": "TYPE-
|
|
416
|
+
"projection": {
|
|
417
|
+
"handle": "TYPE-Boolean",
|
|
409
418
|
"name": "Boolean",
|
|
410
419
|
"description": "",
|
|
411
|
-
"
|
|
420
|
+
"projectionSchema": {
|
|
412
421
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
413
422
|
"type": "boolean"
|
|
414
423
|
}
|
|
415
424
|
}
|
|
416
425
|
},
|
|
417
|
-
|
|
418
|
-
"id": "RESOURCE-Natural",
|
|
426
|
+
{
|
|
427
|
+
"id": "RESOURCE-TYPE:Natural",
|
|
419
428
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
420
429
|
"provenance": {
|
|
421
430
|
"resourceProvenanceKind": "genesis"
|
|
422
431
|
},
|
|
423
|
-
"version": 1,
|
|
424
432
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
425
|
-
"
|
|
426
|
-
"handle": "TYPE-
|
|
433
|
+
"projection": {
|
|
434
|
+
"handle": "TYPE-Natural",
|
|
427
435
|
"name": "Natural",
|
|
428
436
|
"description": "",
|
|
429
|
-
"
|
|
437
|
+
"projectionSchema": {
|
|
430
438
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
431
439
|
"type": "integer",
|
|
432
440
|
"minimum": 0
|
|
433
441
|
}
|
|
434
442
|
}
|
|
435
443
|
},
|
|
436
|
-
|
|
437
|
-
"id": "RESOURCE-Resource",
|
|
444
|
+
{
|
|
445
|
+
"id": "RESOURCE-TYPE:Resource",
|
|
438
446
|
"resourceTypeHandle": "TYPE-ResourceType",
|
|
439
447
|
"provenance": {
|
|
440
448
|
"resourceProvenanceKind": "genesis"
|
|
441
449
|
},
|
|
442
|
-
"version": 1,
|
|
443
450
|
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
444
|
-
"
|
|
445
|
-
"handle": "TYPE-
|
|
451
|
+
"projection": {
|
|
452
|
+
"handle": "TYPE-Resource",
|
|
446
453
|
"name": "Resource",
|
|
447
454
|
"description": "",
|
|
448
|
-
"
|
|
455
|
+
"projectionSchema": {
|
|
449
456
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
450
457
|
"type": "object",
|
|
451
458
|
"$ref": "#/$defs/BaseResource",
|
|
452
459
|
"unevaluatedProperties": false
|
|
453
460
|
}
|
|
454
461
|
}
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"id": "RESOURCE-TYPE:Suite",
|
|
465
|
+
"resourceTypeHandle": "TYPE-ResourceType",
|
|
466
|
+
"provenance": {
|
|
467
|
+
"resourceProvenanceKind": "genesis"
|
|
468
|
+
},
|
|
469
|
+
"timestamp": "2025-11-30T00:00:00.000Z",
|
|
470
|
+
"projection": {
|
|
471
|
+
"handle": "TYPE-Suite",
|
|
472
|
+
"name": "Suite",
|
|
473
|
+
"description": "",
|
|
474
|
+
"ingestorToolInputSchema": {
|
|
475
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
476
|
+
"type": "object",
|
|
477
|
+
"allOf": [
|
|
478
|
+
{
|
|
479
|
+
"type": "object",
|
|
480
|
+
"required": [
|
|
481
|
+
"name",
|
|
482
|
+
"version",
|
|
483
|
+
"description"
|
|
484
|
+
],
|
|
485
|
+
"properties": {
|
|
486
|
+
"name": {
|
|
487
|
+
"oneOf": [
|
|
488
|
+
{
|
|
489
|
+
"$ref": "#/$defs/Name"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"$ref": "#/$defs/JsonScalarLink"
|
|
493
|
+
}
|
|
494
|
+
]
|
|
495
|
+
},
|
|
496
|
+
"version": {
|
|
497
|
+
"oneOf": [
|
|
498
|
+
{
|
|
499
|
+
"type": "string",
|
|
500
|
+
"minLength": 1
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"$ref": "#/$defs/JsonScalarLink"
|
|
504
|
+
}
|
|
505
|
+
]
|
|
506
|
+
},
|
|
507
|
+
"description": {
|
|
508
|
+
"oneOf": [
|
|
509
|
+
{
|
|
510
|
+
"$ref": "#/$defs/Description"
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"$ref": "#/$defs/JsonScalarLink"
|
|
514
|
+
}
|
|
515
|
+
]
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"type": "object",
|
|
521
|
+
"required": [
|
|
522
|
+
"resourceTypesPath",
|
|
523
|
+
"toolsPath"
|
|
524
|
+
],
|
|
525
|
+
"properties": {
|
|
526
|
+
"resourceTypesPath": {
|
|
527
|
+
"type": "string",
|
|
528
|
+
"minLength": 1
|
|
529
|
+
},
|
|
530
|
+
"toolsPath": {
|
|
531
|
+
"type": "string",
|
|
532
|
+
"minLength": 1
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
],
|
|
537
|
+
"semanticValidation": "Verify that resourceTypesPath and toolsPath are relative paths rooted within the suite root, that toolproof.json provides the required suite metadata, and that the referenced files exist and match the expected declaration schemas.",
|
|
538
|
+
"unevaluatedProperties": false
|
|
539
|
+
},
|
|
540
|
+
"projectionSchema": {
|
|
541
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
542
|
+
"type": "object",
|
|
543
|
+
"allOf": [
|
|
544
|
+
{
|
|
545
|
+
"type": "object",
|
|
546
|
+
"required": [
|
|
547
|
+
"name",
|
|
548
|
+
"version",
|
|
549
|
+
"description"
|
|
550
|
+
],
|
|
551
|
+
"properties": {
|
|
552
|
+
"name": {
|
|
553
|
+
"$ref": "#/$defs/Name"
|
|
554
|
+
},
|
|
555
|
+
"version": {
|
|
556
|
+
"type": "string",
|
|
557
|
+
"minLength": 1
|
|
558
|
+
},
|
|
559
|
+
"description": {
|
|
560
|
+
"$ref": "#/$defs/Description"
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"type": "object",
|
|
566
|
+
"required": [
|
|
567
|
+
"resourceTypes",
|
|
568
|
+
"tools"
|
|
569
|
+
],
|
|
570
|
+
"properties": {
|
|
571
|
+
"resourceTypes": {
|
|
572
|
+
"type": "array",
|
|
573
|
+
"items": {
|
|
574
|
+
"$ref": "#/$defs/ResourceType"
|
|
575
|
+
},
|
|
576
|
+
"uniqueItems": true
|
|
577
|
+
},
|
|
578
|
+
"tools": {
|
|
579
|
+
"type": "array",
|
|
580
|
+
"items": {
|
|
581
|
+
"$ref": "#/$defs/Tool"
|
|
582
|
+
},
|
|
583
|
+
"uniqueItems": true
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
],
|
|
588
|
+
"unevaluatedProperties": false
|
|
589
|
+
}
|
|
590
|
+
}
|
|
455
591
|
}
|
|
456
|
-
|
|
592
|
+
]
|