feat(nono): add restrictive core policy contract

This commit is contained in:
jb
2026-08-30 12:49:17 -04:00
parent 54c20e2012
commit 90f8090f61
19 changed files with 1862 additions and 9 deletions
+87
View File
@@ -0,0 +1,87 @@
{
"extends": "default",
"meta": {
"name": "pi-core-personal",
"description": "Restrictive personal Pi baseline without repository or provider access"
},
"groups": {
"exclude": [
"homebrew_linux",
"homebrew_macos",
"system_write_linux",
"system_write_macos",
"user_tools"
]
},
"security": {
"signal_mode": "isolated",
"capability_elevation": false
},
"workdir": {
"access": "none"
},
"filesystem": {
"allow": [
"$XDG_CACHE_HOME/pi-sbx/personal",
"$XDG_STATE_HOME/pi-sbx/personal/agent",
"$XDG_STATE_HOME/pi-sbx/personal/sessions"
],
"read": [
"/home/jb/.bun/install/global/node_modules/@earendil-works/pi-coding-agent",
"/home/jb/.bun/install/global/node_modules/jiti"
],
"allow_file": [
"/dev/null",
"/dev/stderr",
"/dev/stdout",
"/dev/tty"
],
"read_file": [
"/home/jb/.pi/agent/AGENTS.md",
"/usr/bin/node"
]
},
"linux": {
"af_unix_mediation": "pathname"
},
"network": {
"block": true
},
"environment": {
"allow_vars": [
"COLORTERM",
"HOME",
"LANG",
"LC_ALL",
"NO_COLOR",
"PATH",
"PI_SBX_PROVIDER",
"SHELL",
"TERM",
"TMPDIR",
"XDG_CACHE_HOME",
"XDG_CONFIG_HOME",
"XDG_RUNTIME_DIR",
"XDG_STATE_HOME"
],
"deny_vars": [
"ANTHROPIC_API_KEY",
"GH_TOKEN",
"GITHUB_TOKEN",
"MORPH_API_KEY",
"OPENAI_API_KEY",
"SSH_AUTH_SOCK"
],
"set_vars": {
"PI_CODING_AGENT_DIR": "$XDG_STATE_HOME/pi-sbx/personal/agent",
"PI_CODING_AGENT_SESSION_DIR": "$XDG_STATE_HOME/pi-sbx/personal/sessions",
"PI_SKIP_VERSION_CHECK": "1",
"PI_TELEMETRY": "0"
}
},
"open_urls": {
"allow_origins": [],
"allow_localhost": false
},
"allow_launch_services": false
}
+87
View File
@@ -0,0 +1,87 @@
{
"extends": "default",
"meta": {
"name": "pi-core-work",
"description": "Restrictive work Pi baseline without repository or provider access"
},
"groups": {
"exclude": [
"homebrew_linux",
"homebrew_macos",
"system_write_linux",
"system_write_macos",
"user_tools"
]
},
"security": {
"signal_mode": "isolated",
"capability_elevation": false
},
"workdir": {
"access": "none"
},
"filesystem": {
"allow": [
"$XDG_CACHE_HOME/pi-sbx/work",
"$XDG_STATE_HOME/pi-sbx/work/agent",
"$XDG_STATE_HOME/pi-sbx/work/sessions"
],
"read": [
"/home/jb/.bun/install/global/node_modules/@earendil-works/pi-coding-agent",
"/home/jb/.bun/install/global/node_modules/jiti"
],
"allow_file": [
"/dev/null",
"/dev/stderr",
"/dev/stdout",
"/dev/tty"
],
"read_file": [
"/home/jb/.pi/agent/AGENTS.md",
"/usr/bin/node"
]
},
"linux": {
"af_unix_mediation": "pathname"
},
"network": {
"block": true
},
"environment": {
"allow_vars": [
"COLORTERM",
"HOME",
"LANG",
"LC_ALL",
"NO_COLOR",
"PATH",
"PI_SBX_PROVIDER",
"SHELL",
"TERM",
"TMPDIR",
"XDG_CACHE_HOME",
"XDG_CONFIG_HOME",
"XDG_RUNTIME_DIR",
"XDG_STATE_HOME"
],
"deny_vars": [
"ANTHROPIC_API_KEY",
"GH_TOKEN",
"GITHUB_TOKEN",
"MORPH_API_KEY",
"OPENAI_API_KEY",
"SSH_AUTH_SOCK"
],
"set_vars": {
"PI_CODING_AGENT_DIR": "$XDG_STATE_HOME/pi-sbx/work/agent",
"PI_CODING_AGENT_SESSION_DIR": "$XDG_STATE_HOME/pi-sbx/work/sessions",
"PI_SKIP_VERSION_CHECK": "1",
"PI_TELEMETRY": "0"
}
},
"open_urls": {
"allow_origins": [],
"allow_localhost": false
},
"allow_launch_services": false
}
+64
View File
@@ -0,0 +1,64 @@
{
"extends": "default",
"meta": {
"name": "provider-anthropic",
"description": "Anthropic route with a Nono-mediated phantom credential"
},
"groups": {
"exclude": [
"homebrew_linux",
"homebrew_macos",
"system_read_linux_core",
"system_read_macos",
"system_write_linux",
"system_write_macos",
"user_tools"
]
},
"workdir": {
"access": "none"
},
"network": {
"block": false,
"allow_domain": [],
"credentials": [
"anthropic"
],
"custom_credentials": {
"anthropic": {
"upstream": "https://api.anthropic.com",
"credential_key": "ANTHROPIC_API_KEY",
"inject_header": "x-api-key",
"credential_format": "{}",
"env_var": "ANTHROPIC_API_KEY"
}
}
},
"environment": {
"allow_vars": [
"HOME",
"LANG",
"LC_ALL",
"PATH",
"TERM",
"TMPDIR",
"XDG_CACHE_HOME",
"XDG_CONFIG_HOME",
"XDG_RUNTIME_DIR",
"XDG_STATE_HOME"
],
"deny_vars": [
"ANTHROPIC_API_KEY",
"GH_TOKEN",
"GITHUB_TOKEN",
"MORPH_API_KEY",
"OPENAI_API_KEY",
"SSH_AUTH_SOCK"
]
},
"open_urls": {
"allow_origins": [],
"allow_localhost": false
},
"allow_launch_services": false
}
+54
View File
@@ -0,0 +1,54 @@
{
"extends": "default",
"meta": {
"name": "provider-lm-studio",
"description": "Outbound TCP port 1234 for the managed loopback-only LM Studio extension"
},
"groups": {
"exclude": [
"homebrew_linux",
"homebrew_macos",
"system_read_linux_core",
"system_read_macos",
"system_write_linux",
"system_write_macos",
"user_tools"
]
},
"workdir": {
"access": "none"
},
"network": {
"block": false,
"connect_port": [
1234
]
},
"environment": {
"allow_vars": [
"HOME",
"LANG",
"LC_ALL",
"PATH",
"TERM",
"TMPDIR",
"XDG_CACHE_HOME",
"XDG_CONFIG_HOME",
"XDG_RUNTIME_DIR",
"XDG_STATE_HOME"
],
"deny_vars": [
"ANTHROPIC_API_KEY",
"GH_TOKEN",
"GITHUB_TOKEN",
"MORPH_API_KEY",
"OPENAI_API_KEY",
"SSH_AUTH_SOCK"
]
},
"open_urls": {
"allow_origins": [],
"allow_localhost": false
},
"allow_launch_services": false
}
+64
View File
@@ -0,0 +1,64 @@
{
"extends": "default",
"meta": {
"name": "provider-morph",
"description": "Morph route with a Nono-mediated phantom credential"
},
"groups": {
"exclude": [
"homebrew_linux",
"homebrew_macos",
"system_read_linux_core",
"system_read_macos",
"system_write_linux",
"system_write_macos",
"user_tools"
]
},
"workdir": {
"access": "none"
},
"network": {
"block": false,
"allow_domain": [],
"credentials": [
"morph"
],
"custom_credentials": {
"morph": {
"upstream": "https://api.morphllm.com",
"credential_key": "MORPH_API_KEY",
"inject_header": "Authorization",
"credential_format": "Bearer {}",
"env_var": "MORPH_API_KEY"
}
}
},
"environment": {
"allow_vars": [
"HOME",
"LANG",
"LC_ALL",
"PATH",
"TERM",
"TMPDIR",
"XDG_CACHE_HOME",
"XDG_CONFIG_HOME",
"XDG_RUNTIME_DIR",
"XDG_STATE_HOME"
],
"deny_vars": [
"ANTHROPIC_API_KEY",
"GH_TOKEN",
"GITHUB_TOKEN",
"MORPH_API_KEY",
"OPENAI_API_KEY",
"SSH_AUTH_SOCK"
]
},
"open_urls": {
"allow_origins": [],
"allow_localhost": false
},
"allow_launch_services": false
}
+64
View File
@@ -0,0 +1,64 @@
{
"extends": "default",
"meta": {
"name": "provider-openai",
"description": "OpenAI route with a Nono-mediated phantom credential"
},
"groups": {
"exclude": [
"homebrew_linux",
"homebrew_macos",
"system_read_linux_core",
"system_read_macos",
"system_write_linux",
"system_write_macos",
"user_tools"
]
},
"workdir": {
"access": "none"
},
"network": {
"block": false,
"allow_domain": [],
"credentials": [
"openai"
],
"custom_credentials": {
"openai": {
"upstream": "https://api.openai.com/v1",
"credential_key": "OPENAI_API_KEY",
"inject_header": "Authorization",
"credential_format": "Bearer {}",
"env_var": "OPENAI_API_KEY"
}
}
},
"environment": {
"allow_vars": [
"HOME",
"LANG",
"LC_ALL",
"PATH",
"TERM",
"TMPDIR",
"XDG_CACHE_HOME",
"XDG_CONFIG_HOME",
"XDG_RUNTIME_DIR",
"XDG_STATE_HOME"
],
"deny_vars": [
"ANTHROPIC_API_KEY",
"GH_TOKEN",
"GITHUB_TOKEN",
"MORPH_API_KEY",
"OPENAI_API_KEY",
"SSH_AUTH_SOCK"
]
},
"open_urls": {
"allow_origins": [],
"allow_localhost": false
},
"allow_launch_services": false
}