79 lines
4.9 KiB
JSON
79 lines
4.9 KiB
JSON
{
|
|
"schema_version": "1.0.0",
|
|
"description": "Deterministic action classes and minimum risk floors shared by CASAN runtimes.",
|
|
"risk_order": ["low", "medium", "high", "critical"],
|
|
"classes": {
|
|
"read_only": {"risk_floor": "low", "side_effect_level": "none", "requires_approval": false, "actor_required": false, "evidence_required": false},
|
|
"write": {"risk_floor": "medium", "side_effect_level": "write", "requires_approval": false, "actor_required": false, "evidence_required": true},
|
|
"delete": {"risk_floor": "high", "side_effect_level": "destructive", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"database_mutation": {"risk_floor": "high", "side_effect_level": "write", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"migration": {"risk_floor": "high", "side_effect_level": "write", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"deployment": {"risk_floor": "high", "side_effect_level": "external", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"release": {"risk_floor": "high", "side_effect_level": "external", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"credential_access": {"risk_floor": "high", "side_effect_level": "sensitive_read", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"identity_permission_modification": {"risk_floor": "high", "side_effect_level": "write", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"external_network_side_effect": {"risk_floor": "medium", "side_effect_level": "external", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"infrastructure_modification": {"risk_floor": "high", "side_effect_level": "external", "requires_approval": true, "actor_required": true, "evidence_required": true},
|
|
"unknown": {"risk_floor": "high", "side_effect_level": "unknown", "requires_approval": true, "actor_required": true, "evidence_required": true}
|
|
},
|
|
"action_aliases": {
|
|
"agent_step": "read_only",
|
|
"read": "read_only",
|
|
"search": "read_only",
|
|
"write": "write",
|
|
"write_code": "write",
|
|
"write_file": "write",
|
|
"delete": "delete",
|
|
"delete_file": "delete",
|
|
"db_write": "database_mutation",
|
|
"database_mutation": "database_mutation",
|
|
"migration": "migration",
|
|
"migrate": "migration",
|
|
"deploy": "deployment",
|
|
"deployment": "deployment",
|
|
"launch": "deployment",
|
|
"release": "release",
|
|
"credential_access": "credential_access",
|
|
"secret_access": "credential_access",
|
|
"permission_change": "identity_permission_modification",
|
|
"identity_change": "identity_permission_modification",
|
|
"external_api": "external_network_side_effect",
|
|
"infrastructure_change": "infrastructure_modification"
|
|
},
|
|
"tool_aliases": {
|
|
"read": "read_only",
|
|
"grep": "read_only",
|
|
"glob": "read_only",
|
|
"search": "read_only",
|
|
"view": "read_only",
|
|
"codegraph_search": "read_only",
|
|
"codegraph_node": "read_only",
|
|
"codegraph_context": "read_only",
|
|
"edit": "write",
|
|
"write": "write",
|
|
"multiedit": "write",
|
|
"notebookedit": "write",
|
|
"apply_patch": "write",
|
|
"str_replace_editor": "write",
|
|
"create_file": "write",
|
|
"update_file": "write",
|
|
"delete_file": "delete",
|
|
"webfetch": "external_network_side_effect",
|
|
"web_fetch": "external_network_side_effect",
|
|
"browser": "external_network_side_effect",
|
|
"sendmessage": "external_network_side_effect"
|
|
},
|
|
"command_patterns": [
|
|
{"pattern": "(^|\\s)(kubectl|helm)(\\s|$).*(apply|delete|upgrade|install)|(^|\\s)terraform\\s+(apply|destroy)", "class": "infrastructure_modification"},
|
|
{"pattern": "(^|\\s)(deploy|deployment|release)(\\s|$)|git\\s+push", "class": "deployment"},
|
|
{"pattern": "(^|\\s)(prisma|alembic|flyway|liquibase|rails)\\s+.*(migrat|upgrade)|\\bmigration\\b", "class": "migration"},
|
|
{"pattern": "\\b(delete|insert|update|alter|drop|truncate)\\s+(from|into|table|database)|\\b(db_write|database_mutation)\\b", "class": "database_mutation"},
|
|
{"pattern": "(^|\\s)(rm|rmdir|unlink)\\s|delete_file", "class": "delete"},
|
|
{"pattern": "(\\.ssh/|id_rsa|id_ed25519|\\.aws/credentials|\\.env($|\\s)|secret|credential|api[_-]?key)", "class": "credential_access"},
|
|
{"pattern": "\\b(iam|chmod|chown|setfacl|role|permission)\\b.*\\b(add|create|delete|grant|modify|remove|set|update)\\b", "class": "identity_permission_modification"},
|
|
{"pattern": "(^|\\s)(curl|wget|scp|sftp|ssh|nc|ncat)\\s", "class": "external_network_side_effect"},
|
|
{"pattern": "(^|\\s)(cp|mv|mkdir|touch|tee|sed\\s+-i)\\s|(^|\\s)(npm|pnpm|yarn|pip|cargo|go)\\s+(install|add|get)\\b|(^|\\s)(cat|printf|echo).*(>|>>)", "class": "write"},
|
|
{"pattern": "^\\s*(ls|pwd|cat|head|tail|wc|rg|grep|find|stat|git\\s+(status|diff|log|show))\\b", "class": "read_only"}
|
|
]
|
|
}
|