Verified with the coordinated workspace changes by devkit full run 2026-09-08T225814-186389-0000-3e3ed7cd (all seven phases passed). This shared UI pass does not mark the individual module reviews complete.
68 lines
3.6 KiB
JSON
Executable File
68 lines
3.6 KiB
JSON
Executable File
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "Devkit portable project configuration",
|
|
"description": "The runtime additionally checks reference existence, cycles, resolved path confinement and cross-repository alias/path uniqueness. cwd defaults to the workspace when omitted.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["schema_version", "repositories"],
|
|
"properties": {
|
|
"schema_version": {"type": "integer", "const": 1},
|
|
"name": {"type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[^\\u0000\\r\\n]+$"},
|
|
"repositories": {
|
|
"type": "array", "minItems": 1, "maxItems": 256,
|
|
"items": {
|
|
"type": "object", "additionalProperties": false, "required": ["name", "path"],
|
|
"properties": {
|
|
"name": {"$ref": "#/$defs/identifier"},
|
|
"path": {"$ref": "#/$defs/relativePath"},
|
|
"aliases": {"type": "array", "maxItems": 128, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}}
|
|
}
|
|
}
|
|
},
|
|
"tools": {
|
|
"type": "object", "additionalProperties": false,
|
|
"properties": {"python": {"$ref": "#/$defs/executable"}, "node": {"$ref": "#/$defs/executable"}, "npm": {"$ref": "#/$defs/executable"}}
|
|
},
|
|
"review": {
|
|
"type": "object", "additionalProperties": false,
|
|
"properties": {
|
|
"issue_inventory": {"$ref": "#/$defs/relativePath"},
|
|
"principles": {"$ref": "#/$defs/relativePath"}
|
|
}
|
|
},
|
|
"checks": {
|
|
"type": "array", "maxItems": 512,
|
|
"items": {
|
|
"type": "object", "additionalProperties": false, "required": ["id", "argv"],
|
|
"properties": {
|
|
"id": {"$ref": "#/$defs/identifier"},
|
|
"title": {"type": "string", "maxLength": 1024, "pattern": "^[^\\u0000]*$"},
|
|
"argv": {"type": "array", "minItems": 1, "maxItems": 256, "prefixItems": [{"type": "string", "minLength": 1, "maxLength": 8192, "pattern": "^[^\\u0000]+$"}], "items": {"type": "string", "maxLength": 8192, "pattern": "^[^\\u0000]*$"}},
|
|
"cwd": {"$ref": "#/$defs/relativePath"},
|
|
"deps": {"$ref": "#/$defs/profile"},
|
|
"after": {"$ref": "#/$defs/profile"},
|
|
"reuse": {"type": "string", "enum": ["verified", "never"]},
|
|
"inputs": {"$ref": "#/$defs/inputs"},
|
|
"resources": {"type": "array", "maxItems": 256, "uniqueItems": true, "items": {"type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[^\\u0000\\r\\n]+$"}},
|
|
"repos": {"type": "array", "maxItems": 256, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}},
|
|
"timeout_seconds": {"type": "number", "exclusiveMinimum": 0, "maximum": 43200}
|
|
}
|
|
}
|
|
},
|
|
"profiles": {
|
|
"type": "object", "additionalProperties": false,
|
|
"properties": {
|
|
"quick": {"$ref": "#/$defs/profile"}, "ui": {"$ref": "#/$defs/profile"},
|
|
"backend": {"$ref": "#/$defs/profile"}, "full": {"$ref": "#/$defs/profile"}
|
|
}
|
|
}
|
|
},
|
|
"$defs": {
|
|
"inputs": {"type": "object", "additionalProperties": false, "required": ["repos"], "properties": {"repos": {"type": "array", "minItems": 1, "maxItems": 256, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}}}},
|
|
"identifier": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$(?![\\s\\S])"},
|
|
"executable": {"type": "string", "minLength": 1, "maxLength": 4096, "pattern": "^[^\\u0000\\r\\n]+$"},
|
|
"relativePath": {"type": "string", "minLength": 1, "maxLength": 4096, "pattern": "^(?!/)(?!\\.\\.(?:/|$))(?!.*?/\\.\\.(?:/|$))[^\\u0000\\r\\n]+$"},
|
|
"profile": {"type": "array", "maxItems": 512, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}}
|
|
}
|
|
}
|