{
"name": "execute_kip_readonly",
"description": "Executes read-only KIP 2.0 (Knowledge Interaction Protocol) commands against your Cognitive Nexus — your persistent memory. Accepts KQL (FIND) and META (DESCRIBE / LIST / SEARCH / VERIFY / VALIDATE / PREVIEW / HISTORY / CHANGES / EXPORT CAPSULE). State-changing KML is rejected here regardless of how it is labelled. Ground before you read precisely: SEARCH finds candidates, then read them by exact id. A SEARCH miss is not evidence of absence, and a SEARCH score is not confidence.",
"parameters": {
"type": "object",
"properties": {
"command": {
"type": "string",
"description": "A single complete read-only KIP 2.0 command (FIND / DESCRIBE / LIST / SEARCH / VERIFY / VALIDATE / PREVIEW / HISTORY / CHANGES / EXPORT CAPSULE). Mutually exclusive with operations."
},
"operations": {
"type": "array",
"description": "Several read-only KIP commands in one round-trip. Each is evaluated independently and per-operation errors are returned inline.",
"items": {
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"op_id": {
"type": "string",
"description": "A request-local name so this operation's result can be correlated in the response."
},
"command": {
"type": "string",
"description": "A complete read-only KIP command."
},
"parameters": {
"type": "object",
"description": "Parameters scoped to this operation. They override shared parameters with the same keys."
}
},
"required": [
"command"
],
"additionalProperties": false
}
]
}
},
"read": {
"type": "object",
"description": "Bind every operation to one readable cognitive state coordinate, so a multi-step read sees a consistent world.",
"properties": {
"snapshot_token": {
"type": "string",
"description": "An opaque token from an earlier response. Do not parse or modify it. It is a coordinate, not an authority: current permissions always apply."
}
},
"additionalProperties": false
},
"parameters": {
"type": "object",
"description": "Values bound into the command's :placeholders. Binding is structural, never string interpolation: a placeholder must occupy a complete KIP value position (name: :name, LIMIT :limit, SEARCH CONCEPT :term). Do not embed one inside a quoted string such as \"Hello :name\". Parameter names match [A-Za-z_][A-Za-z0-9_]*."
},
"dry_run": {
"type": "boolean",
"description": "Validate the command(s) without executing them."
}
},
"oneOf": [
{
"required": [
"command"
]
},
{
"required": [
"operations"
]
}
],
"additionalProperties": false
}
}