hugin/contract/bundle-request.schema.json
2026-10-27 08:33:21 +01:00

73 lines
2 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://hugin.intern/schema/bundle-request-1.json",
"title": "Anfrage an POST /api/v1/bundle bzw. /api/v1/delivery/bundle",
"type": "object",
"required": [
"packages",
"tools"
],
"additionalProperties": false,
"properties": {
"packages": {
"description": "Abos: <id>@<stabil|test|^major|exakte Version>. Ohne @ gilt @stabil.",
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*(@(stabil|test|\\^\\d+|\\d+\\.\\d+\\.\\d+))?$"
},
"uniqueItems": true
},
"unsubscribed": {
"description": "Pakete, die nicht geliefert werden sollen. Für Pflichtpakete wirkungslos.",
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
},
"uniqueItems": true
},
"tools": {
"description": "Erkannte Werkzeuge mit installierter Version; leerer String, wenn die Version unbekannt ist.",
"type": "object",
"minProperties": 1,
"additionalProperties": false,
"properties": {
"claude": {
"type": "string"
},
"opencode": {
"type": "string"
}
}
},
"mandatory": {
"description": "Pflichtpakete mitliefern.",
"type": "boolean",
"default": true
},
"major": {
"description": "Major-Sprünge bei @stabil erlauben (hugin sync --major).",
"type": "boolean",
"default": false
},
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"opencode_reads_claude": {
"type": "boolean",
"default": true
}
}
},
"installed": {
"description": "Aktuell installierte Versionen (aus hugin.lock). Daraus berechnet der Server die entfernen-Operationen.",
"type": "object",
"additionalProperties": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
}
}
}
}