f3a8a38acd
web-platform-ci / Standalone decision service (no cloud credentials) (push) Has been cancelled
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled
lekiwi-compatibility / cpu-compatibility (push) Has been cancelled
web-platform-ci / Standalone decision service (no cloud credentials) (pull_request) Has been cancelled
web-platform-ci / TypeScript, lint, unit, build (pull_request) Has been cancelled
web-platform-ci / Playwright E2E (pull_request) Has been cancelled
lekiwi-compatibility / cpu-compatibility (pull_request) Has been cancelled
集成同源 BYOK 会话隔离、精简模型设置、官方订阅入口和 HTTPS 发布运维;保留本地训练/调参与控制能力。同步 npm 版本及 CHANGELOG,记录公网真实 API 验收仍待用户凭据。
267 lines
7.8 KiB
JSON
267 lines
7.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://mujoco.local/contracts/lekiwi-agent-v1.schema.json",
|
|
"title": "LeKiwi agent v1: SI ground truth and constrained decisions",
|
|
"$defs": {
|
|
"Stamp": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["runId", "sceneRevision", "sequence", "planRevision", "requestId"],
|
|
"properties": {
|
|
"runId": { "type": "string", "minLength": 1, "maxLength": 128 },
|
|
"sceneRevision": { "type": "integer", "minimum": 0, "maximum": 1000000000 },
|
|
"sequence": { "type": "integer", "minimum": 0, "maximum": 1000000000 },
|
|
"planRevision": { "type": "integer", "minimum": 0, "maximum": 1000000000 },
|
|
"requestId": { "type": "string", "minLength": 1, "maxLength": 128 }
|
|
}
|
|
},
|
|
"Position": {
|
|
"type": "array",
|
|
"minItems": 3,
|
|
"maxItems": 3,
|
|
"items": { "type": "number", "minimum": -2, "maximum": 2 }
|
|
},
|
|
"Observation": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"version",
|
|
"stamp",
|
|
"source",
|
|
"units",
|
|
"frame",
|
|
"time",
|
|
"phase",
|
|
"base",
|
|
"joints",
|
|
"opening",
|
|
"tcp",
|
|
"object",
|
|
"goal",
|
|
"evidence",
|
|
"safety"
|
|
],
|
|
"properties": {
|
|
"version": { "const": "lekiwi-agent-v1" },
|
|
"stamp": { "$ref": "#/$defs/Stamp" },
|
|
"source": { "const": "mujoco-ground-truth" },
|
|
"units": { "const": "SI" },
|
|
"frame": { "const": "world-z-up" },
|
|
"time": { "type": "number", "minimum": 0, "maximum": 1000000 },
|
|
"phase": {
|
|
"enum": [
|
|
"open",
|
|
"pregrasp",
|
|
"descend",
|
|
"close",
|
|
"verify",
|
|
"carry",
|
|
"stop-base",
|
|
"place",
|
|
"release",
|
|
"retreat",
|
|
"settle"
|
|
]
|
|
},
|
|
"base": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["position", "yaw"],
|
|
"properties": {
|
|
"position": { "$ref": "#/$defs/Position" },
|
|
"yaw": { "type": "number", "minimum": -3.142, "maximum": 3.142 }
|
|
}
|
|
},
|
|
"joints": {
|
|
"type": "array",
|
|
"minItems": 5,
|
|
"maxItems": 5,
|
|
"items": { "type": "number", "minimum": -3.2, "maximum": 3.2 }
|
|
},
|
|
"opening": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
"tcp": { "$ref": "#/$defs/Position" },
|
|
"object": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["id", "position", "speed"],
|
|
"properties": {
|
|
"id": { "const": "block" },
|
|
"position": { "$ref": "#/$defs/Position" },
|
|
"speed": { "type": "number", "minimum": 0, "maximum": 20 }
|
|
}
|
|
},
|
|
"goal": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["id", "position"],
|
|
"properties": {
|
|
"id": { "const": "placement" },
|
|
"position": { "$ref": "#/$defs/Position" }
|
|
}
|
|
},
|
|
"evidence": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["fingerForces", "supported", "onGoalSupport", "secure", "transported"],
|
|
"properties": {
|
|
"fingerForces": {
|
|
"type": "array",
|
|
"minItems": 2,
|
|
"maxItems": 2,
|
|
"items": { "type": "number", "minimum": 0, "maximum": 10000 }
|
|
},
|
|
"supported": { "type": "boolean" },
|
|
"onGoalSupport": { "type": "boolean" },
|
|
"secure": { "type": "boolean" },
|
|
"transported": { "type": "number", "minimum": 0, "maximum": 10 }
|
|
}
|
|
},
|
|
"safety": {
|
|
"type": "array",
|
|
"maxItems": 8,
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"enum": [
|
|
"joint_velocity",
|
|
"joint_stall",
|
|
"base_unstable",
|
|
"unreachable",
|
|
"lost_grasp",
|
|
"episode_timeout",
|
|
"stalled",
|
|
"none"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Plan": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["version", "objectId", "goalId", "summary", "steps"],
|
|
"properties": {
|
|
"version": { "const": "lekiwi-agent-v1" },
|
|
"objectId": { "const": "block" },
|
|
"goalId": { "const": "placement" },
|
|
"summary": { "type": "string", "minLength": 1, "maxLength": 512 },
|
|
"steps": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 11,
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["skill", "precondition", "onFailure"],
|
|
"properties": {
|
|
"skill": {
|
|
"enum": [
|
|
"open",
|
|
"pregrasp",
|
|
"descend",
|
|
"close",
|
|
"verify",
|
|
"carry",
|
|
"stop-base",
|
|
"place",
|
|
"release",
|
|
"retreat",
|
|
"settle"
|
|
]
|
|
},
|
|
"precondition": {
|
|
"enum": [
|
|
"scene-ready",
|
|
"base-stopped",
|
|
"tcp-above",
|
|
"aligned",
|
|
"dual-contact",
|
|
"verified-grasp",
|
|
"transported",
|
|
"supported",
|
|
"released",
|
|
"retreat"
|
|
]
|
|
},
|
|
"onFailure": { "enum": ["retry", "replan", "stop"] }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"JevDecision": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["version", "choice", "grasp", "diagnosis", "recovery"],
|
|
"properties": {
|
|
"version": { "const": "lekiwi-agent-v1" },
|
|
"choice": {
|
|
"enum": [
|
|
"open",
|
|
"pregrasp",
|
|
"descend",
|
|
"close",
|
|
"verify",
|
|
"carry",
|
|
"stop-base",
|
|
"place",
|
|
"release",
|
|
"retreat",
|
|
"settle",
|
|
"stop"
|
|
]
|
|
},
|
|
"grasp": { "enum": ["secure", "empty", "slipping", "uncertain"] },
|
|
"diagnosis": {
|
|
"enum": ["none", "empty", "slipping", "misaligned", "unreachable", "stalled", "uncertain"]
|
|
},
|
|
"recovery": { "enum": ["continue", "retry", "replan", "stop"] }
|
|
}
|
|
},
|
|
"SkillResult": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["version", "skill", "status", "code", "evidenceSequence"],
|
|
"properties": {
|
|
"version": { "const": "lekiwi-agent-v1" },
|
|
"skill": {
|
|
"enum": [
|
|
"open",
|
|
"pregrasp",
|
|
"descend",
|
|
"close",
|
|
"verify",
|
|
"carry",
|
|
"stop-base",
|
|
"place",
|
|
"release",
|
|
"retreat",
|
|
"settle"
|
|
]
|
|
},
|
|
"status": { "enum": ["running", "completed", "failed"] },
|
|
"code": {
|
|
"enum": [
|
|
"none",
|
|
"joint_velocity",
|
|
"joint_stall",
|
|
"base_unstable",
|
|
"unreachable",
|
|
"lost_grasp",
|
|
"episode_timeout",
|
|
"alignment_timeout",
|
|
"empty_grasp",
|
|
"grasp_unverified",
|
|
"transport_unverified",
|
|
"placement_unsupported",
|
|
"release_blocked",
|
|
"placement_unverified",
|
|
"navigation_timeout",
|
|
"controller_error"
|
|
]
|
|
},
|
|
"evidenceSequence": { "type": "integer", "minimum": 0, "maximum": 1000000000 }
|
|
}
|
|
}
|
|
}
|
|
}
|