Files
Mujoco_WASM/contracts/lekiwi-agent-v1.schema.json
chenlin 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
feat: release v1.0.1 CADWorld 网站与 LeKiwi 智能抓放
集成同源 BYOK 会话隔离、精简模型设置、官方订阅入口和 HTTPS 发布运维;保留本地训练/调参与控制能力。同步 npm 版本及 CHANGELOG,记录公网真实 API 验收仍待用户凭据。
2026-09-24 09:57:41 +08:00

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 }
}
}
}
}