289 lines
11 KiB
JSON
289 lines
11 KiB
JSON
{
|
|
"schemaVersion": 2,
|
|
"pluginId": "makelore.game-resource",
|
|
"contractVersion": 1,
|
|
"scope": "project",
|
|
"runtime": {
|
|
"kind": "platform_hosted",
|
|
"protocol": "makelore-hosted.v1"
|
|
},
|
|
"skills": [
|
|
{
|
|
"id": "game-resource",
|
|
"entry": "../skills/game-resource/SKILL.md",
|
|
"grants": [
|
|
"game-resource.generate",
|
|
"game-resource.library"
|
|
]
|
|
}
|
|
],
|
|
"tools": [
|
|
{
|
|
"name": "game_resource_templates",
|
|
"label": "List game resource templates",
|
|
"description": "List the currently available hosted templates for pixel-art or HD generation.",
|
|
"capabilityId": "game-resource.generate",
|
|
"operation": "templates",
|
|
"roles": ["parent"],
|
|
"mutation": "read",
|
|
"projectWriteLease": false,
|
|
"permissions": ["hosted.game-resource.templates"],
|
|
"executionMode": "synchronous",
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["kind"],
|
|
"properties": {
|
|
"kind": {"type": "string", "minLength": 2, "maxLength": 5}
|
|
}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["kind", "templates"],
|
|
"properties": {
|
|
"kind": {"type": "string", "minLength": 2, "maxLength": 5},
|
|
"templates": {
|
|
"type": "array",
|
|
"maxItems": 100,
|
|
"items": {"type": "string", "minLength": 1, "maxLength": 200}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "game_resource_generate",
|
|
"label": "Generate game resource",
|
|
"description": "Submit one hosted pixel-art or HD game-resource generation job.",
|
|
"capabilityId": "game-resource.generate",
|
|
"operation": "generate",
|
|
"roles": ["parent"],
|
|
"mutation": "write",
|
|
"projectWriteLease": false,
|
|
"permissions": ["hosted.game-resource.generate"],
|
|
"executionMode": "job",
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["kind", "templateName", "requirement", "confirmed"],
|
|
"properties": {
|
|
"kind": {"type": "string", "minLength": 2, "maxLength": 5},
|
|
"templateName": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"templateConfigJson": {"type": "string", "maxLength": 16384},
|
|
"requirement": {"type": "string", "minLength": 1, "maxLength": 12000},
|
|
"aspectRatio": {"type": "string", "minLength": 1, "maxLength": 40},
|
|
"temperature": {"type": "number", "minimum": 0, "maximum": 2},
|
|
"jobName": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"modelName": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"resolution": {"type": "string", "minLength": 1, "maxLength": 40},
|
|
"hdRemoveBgMode": {"type": "string", "minLength": 1, "maxLength": 80},
|
|
"threadId": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"confirmed": {"type": "boolean"},
|
|
"referencePaths": {
|
|
"type": "array",
|
|
"maxItems": 8,
|
|
"items": {"type": "string", "minLength": 1, "maxLength": 1024}
|
|
}
|
|
}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["executionId", "status", "outputCount"],
|
|
"properties": {
|
|
"executionId": {"type": "string", "minLength": 1, "maxLength": 36},
|
|
"status": {"type": "string", "maxLength": 32},
|
|
"outputCount": {"type": "integer", "minimum": 0, "maximum": 100},
|
|
"pollIntervalSeconds": {"type": "integer", "minimum": 1, "maximum": 300},
|
|
"errorCode": {"type": "string", "minLength": 1, "maxLength": 128}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "game_resource_status",
|
|
"label": "Game resource status",
|
|
"description": "Read and refresh one hosted game-resource generation job.",
|
|
"capabilityId": "game-resource.generate",
|
|
"operation": "status",
|
|
"roles": ["parent"],
|
|
"mutation": "read",
|
|
"projectWriteLease": false,
|
|
"permissions": ["hosted.game-resource.status"],
|
|
"executionMode": "synchronous",
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["executionId"],
|
|
"properties": {
|
|
"executionId": {"type": "string", "minLength": 1, "maxLength": 36}
|
|
}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["executionId", "status", "outputCount", "generationBilling"],
|
|
"properties": {
|
|
"executionId": {"type": "string", "minLength": 1, "maxLength": 36},
|
|
"status": {"type": "string", "minLength": 1, "maxLength": 32},
|
|
"outputCount": {"type": "integer", "minimum": 0, "maximum": 100},
|
|
"pollIntervalSeconds": {"type": "integer", "minimum": 1, "maximum": 300},
|
|
"errorCode": {"type": "string", "minLength": 1, "maxLength": 128},
|
|
"generationBilling": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["mode", "status", "reserved_points", "usage_amount", "unit"],
|
|
"properties": {
|
|
"mode": {"type": "string", "minLength": 1, "maxLength": 32},
|
|
"status": {"type": "string", "maxLength": 32},
|
|
"reserved_points": {"type": "string", "maxLength": 32},
|
|
"actual_points": {"type": "string", "maxLength": 32},
|
|
"usage_amount": {"type": "integer", "minimum": 0, "maximum": 1},
|
|
"unit": {"type": "string", "minLength": 1, "maxLength": 32}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "game_resource_save_output",
|
|
"label": "Save generated game resource",
|
|
"description": "Save one completed hosted output into a new file inside the current project.",
|
|
"capabilityId": "game-resource.library",
|
|
"operation": "save_output",
|
|
"roles": ["parent"],
|
|
"mutation": "write",
|
|
"projectWriteLease": true,
|
|
"permissions": ["hosted.game-resource.save-output"],
|
|
"executionMode": "synchronous",
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["executionId", "relativePath", "confirmed"],
|
|
"properties": {
|
|
"executionId": {"type": "string", "minLength": 1, "maxLength": 36},
|
|
"outputIndex": {"type": "integer", "minimum": 0, "maximum": 99},
|
|
"relativePath": {"type": "string", "minLength": 1, "maxLength": 1024},
|
|
"confirmed": {"type": "boolean"}
|
|
}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["savedPath", "bytes"],
|
|
"properties": {
|
|
"savedPath": {"type": "string", "minLength": 1, "maxLength": 1024},
|
|
"bytes": {"type": "integer", "minimum": 1, "maximum": 33554432}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "game_resource_cancel",
|
|
"label": "Cancel game resource",
|
|
"description": "Cancel one non-terminal hosted generation job.",
|
|
"capabilityId": "game-resource.generate",
|
|
"operation": "cancel",
|
|
"roles": ["parent"],
|
|
"mutation": "write",
|
|
"projectWriteLease": false,
|
|
"permissions": ["hosted.game-resource.cancel"],
|
|
"executionMode": "synchronous",
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["executionId"],
|
|
"properties": {
|
|
"executionId": {"type": "string", "minLength": 1, "maxLength": 36}
|
|
}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["executionId", "status", "outputCount", "generationBilling"],
|
|
"properties": {
|
|
"executionId": {"type": "string", "minLength": 1, "maxLength": 36},
|
|
"status": {"type": "string", "minLength": 1, "maxLength": 32},
|
|
"outputCount": {"type": "integer", "minimum": 0, "maximum": 100},
|
|
"pollIntervalSeconds": {"type": "integer", "minimum": 1, "maximum": 300},
|
|
"errorCode": {"type": "string", "minLength": 1, "maxLength": 128},
|
|
"generationBilling": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["mode", "status", "reserved_points", "usage_amount", "unit"],
|
|
"properties": {
|
|
"mode": {"type": "string", "minLength": 1, "maxLength": 32},
|
|
"status": {"type": "string", "maxLength": 32},
|
|
"reserved_points": {"type": "string", "maxLength": 32},
|
|
"actual_points": {"type": "string", "maxLength": 32},
|
|
"usage_amount": {"type": "integer", "minimum": 0, "maximum": 1},
|
|
"unit": {"type": "string", "minLength": 1, "maxLength": 32}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "game_asset_browser",
|
|
"label": "Browse game assets",
|
|
"description": "Open the project game-asset browser for user selection.",
|
|
"capabilityId": "game-resource.library",
|
|
"operation": "browse",
|
|
"roles": ["parent"],
|
|
"mutation": "read",
|
|
"projectWriteLease": false,
|
|
"permissions": ["hosted.game-resource.browse"],
|
|
"executionMode": "synchronous",
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [],
|
|
"properties": {
|
|
"invocationId": {"type": "string", "minLength": 1, "maxLength": 200}
|
|
}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["invocationId", "status"],
|
|
"properties": {
|
|
"invocationId": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"status": {"type": "string", "minLength": 1, "maxLength": 32}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "game_asset_review",
|
|
"label": "Review game asset",
|
|
"description": "Open a project game asset for user review and decision.",
|
|
"capabilityId": "game-resource.library",
|
|
"operation": "review",
|
|
"roles": ["parent"],
|
|
"mutation": "read",
|
|
"projectWriteLease": false,
|
|
"permissions": ["hosted.game-resource.review"],
|
|
"executionMode": "synchronous",
|
|
"inputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["candidateIds"],
|
|
"properties": {
|
|
"candidateIds": {
|
|
"type": "array",
|
|
"maxItems": 200,
|
|
"items": {"type": "string", "minLength": 1, "maxLength": 200}
|
|
},
|
|
"invocationId": {"type": "string", "minLength": 1, "maxLength": 200}
|
|
}
|
|
},
|
|
"outputSchema": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["invocationId", "status"],
|
|
"properties": {
|
|
"invocationId": {"type": "string", "minLength": 1, "maxLength": 200},
|
|
"status": {"type": "string", "minLength": 1, "maxLength": 32}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|