1 line
4.5 KiB
JSON
1 line
4.5 KiB
JSON
{"repo": "canyonroad/agentsh-opencomputer", "files": {"config.yaml": {"b2db1c3c3d0b0b20dca0351d4056b6a801617a37": {"t": 1785674476.953431, "n": 4108, "h": "aef2de1c7c365398", "c": "# agentsh server configuration for OpenComputer sandbox\n# Extends default config with settings optimized for OpenComputer environment\n\nserver:\n http:\n addr: \"127.0.0.1:18080\"\n read_timeout: \"30s\"\n write_timeout: \"60s\"\n max_request_size: \"10MB\"\n grpc:\n enabled: true\n addr: \"127.0.0.1:9090\"\n\nauth:\n type: \"none\"\n\nlogging:\n level: \"info\"\n format: \"text\"\n output: \"stderr\"\n\nsessions:\n base_dir: \"/var/lib/agentsh/sessions\"\n max_sessions: 100\n default_timeout: \"1h\"\n default_idle_timeout: \"15m\"\n cleanup_interval: \"5m\"\n\naudit:\n enabled: true\n storage:\n sqlite_path: \"/var/lib/agentsh/events.db\"\n\nsandbox:\n enabled: true\n allow_degraded: false # OC should not need degraded mode — full kernel features available\n\n limits:\n max_memory_mb: 4096\n max_cpu_percent: 100\n max_processes: 256\n\n # FUSE filesystem for file operation interception\n # OC has /dev/fuse available unprivileged in a real VM — eager mount\n fuse:\n enabled: true\n deferred: false\n audit:\n enabled: true\n mode: \"soft_delete\"\n trash_path: \".agentsh_trash\"\n ttl: \"24h\"\n quota: \"1GB\"\n\n network:\n enabled: true\n intercept_mode: \"all\"\n proxy_listen_addr: \"127.0.0.1:0\"\n\n # Cgroups v2 — OC VMs expose writable cgroup v2\n cgroups:\n enabled: true\n\n # Seccomp — full kernel-level syscall blocking on OC's real VM\n seccomp:\n enabled: true\n file_monitor:\n enabled: true\n\n # Unix socket wrapper — disabled because ptrace is in full mode (execve+network);\n # agentsh requires unix_sockets: false unless ptrace is execve-only.\n unix_sockets:\n enabled: false\n\n # Ptrace — kernel-level execve + network syscall interception.\n # On OC, sbx.exec.run spawns commands as children of PID 1 (osb-agent, the\n # OC daemon), NOT as children of agentsh. So attach_mode: \"children\" misses\n # everything. attach_mode: \"pid\" with target_pid: 1 attaches to osb-agent\n # and via PTRACE_O_TRACEFORK catches every command it spawns.\n #\n # Yama (ptrace_scope=1) blocks non-ancestor ptrace, so agentsh server must\n # run as root (CAP_SYS_PTRACE bypasses Yama). agentsh-startup.sh runs the\n # server with sudo to satisfy this.\n ptrace:\n enabled: true\n attach_mode: \"pid\"\n target_pid: 1\n trace:\n execve: true\n file: false # FUSE + landlock handle file protection\n network: true # Kernel-level network enforcement\n signal: false\n performance:\n seccomp_prefilter: true\n max_tracees: 500\n max_hold_ms: 5000\n on_attach_failure: \"fail_closed\"\n\n# Security mode - minimal (seccomp wraps per-command, not server-wide)\nsecurity:\n mode: minimal\n strict: false\n\n# Capabilities as recommended by agentsh detect\ncapabilities:\n allow: []\n\nproxy:\n mode: \"embedded\"\n port: 0\n providers:\n anthropic: \"https://api.anthropic.com\"\n openai: \"https://api.openai.com\"\n\ndlp:\n mode: \"redact\"\n patterns:\n email: true\n phone: true\n credit_card: true\n ssn: true\n api_keys: true\n custom_patterns:\n - name: openai_key\n display: OPENAI_KEY\n regex: \"sk-[a-zA-Z0-9]{48,}\"\n - name: anthropic_key\n display: ANTHROPIC_KEY\n regex: \"sk-ant-[a-zA-Z0-9-]{95,}\"\n - name: aws_access_key\n display: AWS_KEY\n regex: \"AKIA[0-9A-Z]{16}\"\n - name: github_pat\n display: GITHUB_TOKEN\n regex: \"ghp_[a-zA-Z0-9]{36}\"\n - name: github_oauth\n display: GITHUB_OAUTH\n regex: \"gho_[a-zA-Z0-9]{36}\"\n - name: jwt_token\n display: JWT\n regex: \"eyJ[a-zA-Z0-9_-]*\\\\.eyJ[a-zA-Z0-9_-]*\\\\.[a-zA-Z0-9_-]*\"\n - name: private_key\n display: PRIVATE_KEY\n regex: \"-----BEGIN [A-Z]+ PRIVATE KEY-----\"\n - name: slack_token\n display: SLACK_TOKEN\n regex: \"xox[baprs]-[0-9]{10,13}-[0-9]{10,13}-[a-zA-Z0-9]{24}\"\n\npolicies:\n dir: \"/etc/agentsh/policies\"\n default: \"default\"\n env_shim_path: \"/usr/lib/agentsh/libenvshim.so\"\n\napprovals:\n enabled: false\n mode: \"async\"\n timeout: \"5m\"\n\nmetrics:\n enabled: true\n path: \"/metrics\"\n\nhealth:\n path: \"/health\"\n readiness_path: \"/ready\"\n\ndevelopment:\n disable_auth: true\n verbose_errors: false\n"}}}} |