Files
CASAN/packages/casan-harness/config/action-classes.json
T

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