- Schema version (x_schema_version, schema_hash) в prompt/trace - Кеш read/search/logs/env (ContextCache) в plan-цикле - Контекст-диета: MAX_FILES=8, MAX_FILE_CHARS=20k, MAX_TOTAL_CHARS=120k - Plan→Apply двухфазность, NO_CHANGES, path sanitization - Protected paths, content validation, EOL normalization - Trace (PAPAYU_TRACE), redaction (PAPAYU_TRACE_RAW) - Preview diff, undo/redo, transactional apply Co-authored-by: Cursor <cursoragent@cursor.com>
78 lines
2.3 KiB
JSON
78 lines
2.3 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"x_schema_version": 1,
|
|
"oneOf": [
|
|
{
|
|
"type": "array",
|
|
"items": { "$ref": "#/$defs/action" },
|
|
"minItems": 0
|
|
},
|
|
{
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"mode": { "type": "string", "enum": ["fix-plan", "apply"] },
|
|
"actions": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/$defs/action" }
|
|
},
|
|
"proposed_changes": {
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"actions": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/$defs/action" }
|
|
}
|
|
}
|
|
},
|
|
"summary": { "type": "string" },
|
|
"questions": { "type": "array", "items": { "type": "string" } },
|
|
"context_requests": {
|
|
"type": "array",
|
|
"items": { "$ref": "#/$defs/context_request" }
|
|
},
|
|
"plan": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": { "step": { "type": "string" }, "details": { "type": "string" } }
|
|
}
|
|
},
|
|
"memory_patch": { "type": "object", "additionalProperties": true },
|
|
"risks": { "type": "array", "items": { "type": "string" } }
|
|
}
|
|
}
|
|
],
|
|
"$defs": {
|
|
"action": {
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"required": ["kind", "path"],
|
|
"properties": {
|
|
"kind": {
|
|
"type": "string",
|
|
"enum": ["CREATE_FILE", "CREATE_DIR", "UPDATE_FILE", "DELETE_FILE", "DELETE_DIR"]
|
|
},
|
|
"path": { "type": "string" },
|
|
"content": { "type": "string" }
|
|
}
|
|
},
|
|
"context_request": {
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"required": ["type"],
|
|
"properties": {
|
|
"type": { "type": "string", "enum": ["read_file", "search", "logs", "env"] },
|
|
"path": { "type": "string" },
|
|
"start_line": { "type": "integer", "minimum": 1 },
|
|
"end_line": { "type": "integer", "minimum": 1 },
|
|
"query": { "type": "string" },
|
|
"glob": { "type": "string" },
|
|
"source": { "type": "string" },
|
|
"last_n": { "type": "integer", "minimum": 1, "maximum": 5000 }
|
|
}
|
|
}
|
|
}
|
|
}
|