opencode: two profiles, per-profile permissions, shared agent prompts
oc-work: local models only on the local key, edits and most commands ask, loads instructions/work.md. oc-local (also oc, opencode): every model, defaults to qwen3.8-flash-next-iq3s-med, edits and commands run except destructive and outward-facing ones. On sctfw004 oc-local presents the work key. personal.json and work-strict.json removed. Agents: drop variant, which has no effect on LiteLLM models. dev takes its permissions from the profile. The read-only agents deny redirects and the write/exec flags of allowed commands, swap find for fd, and only allow listing forms of git branch. review defaults to the uncommitted diff. CLAUDE.md: add the comment, process and shell-tool rules from the laptop's AGENTS.md, and note that OpenCode reads this file.
This commit is contained in:
1 parent
7ad155c4b2
commit
275a5bfb2b
16 files changed
+439
-680
No files matched your search
+216
-15
@@ -3,7 +3,7 @@
|
||||
"provider": {
|
||||
"litellm": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "LiteLLM · LOCAL-ONLY",
|
||||
"name": "LiteLLM · LOCAL (all models)",
|
||||
"options": {
|
||||
"baseURL": "{env:LITELLM_BASE}/v1",
|
||||
"apiKey": "{env:LITELLM_KEY}"
|
||||
@@ -35,6 +35,19 @@
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"qwen3.8-flash-next": {
|
||||
"name": "qwen3.8-flash-next (rented MI325X; run gi up on mainframe first)",
|
||||
"limit": {
|
||||
"context": 262144,
|
||||
"output": 32768
|
||||
},
|
||||
"cost": {
|
||||
"input": 0.0,
|
||||
"output": 0.0,
|
||||
"cache_read": 0.0,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"qwen3-next-80b-128k": {
|
||||
"name": "qwen3-next-80b (local, 128k agentic)",
|
||||
"limit": {
|
||||
@@ -99,6 +112,162 @@
|
||||
"cache_read": 0.0,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"anthropic/claude-opus-5": {
|
||||
"name": "claude-opus-5 (Anthropic direct)",
|
||||
"limit": {
|
||||
"context": 1000000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 5.0,
|
||||
"output": 25.0,
|
||||
"cache_read": 0.5,
|
||||
"cache_write": 6.25
|
||||
}
|
||||
},
|
||||
"anthropic/claude-sonnet-5": {
|
||||
"name": "claude-sonnet-5 (Anthropic direct)",
|
||||
"limit": {
|
||||
"context": 1000000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 2.0,
|
||||
"output": 10.0,
|
||||
"cache_read": 0.2,
|
||||
"cache_write": 2.5
|
||||
}
|
||||
},
|
||||
"anthropic/claude-haiku-4-5": {
|
||||
"name": "claude-haiku-4-5 (Anthropic direct)",
|
||||
"limit": {
|
||||
"context": 200000,
|
||||
"output": 64000
|
||||
},
|
||||
"cost": {
|
||||
"input": 1.0,
|
||||
"output": 5.0,
|
||||
"cache_read": 0.1,
|
||||
"cache_write": 1.25
|
||||
}
|
||||
},
|
||||
"chatgpt/gpt-5.6-sol": {
|
||||
"name": "gpt-5.6-sol (ChatGPT Plus, flat fee)",
|
||||
"limit": {
|
||||
"context": 272000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 0.0,
|
||||
"output": 0.0,
|
||||
"cache_read": 0.0,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"chatgpt/gpt-5.6-terra": {
|
||||
"name": "gpt-5.6-terra (ChatGPT Plus, flat fee)",
|
||||
"limit": {
|
||||
"context": 272000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 0.0,
|
||||
"output": 0.0,
|
||||
"cache_read": 0.0,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"chatgpt/gpt-5.6-luna": {
|
||||
"name": "gpt-5.6-luna (ChatGPT Plus, flat fee)",
|
||||
"limit": {
|
||||
"context": 272000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 0.0,
|
||||
"output": 0.0,
|
||||
"cache_read": 0.0,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"chatgpt/gpt-5.5": {
|
||||
"name": "gpt-5.5 (ChatGPT Plus, flat fee)",
|
||||
"limit": {
|
||||
"context": 272000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 0.0,
|
||||
"output": 0.0,
|
||||
"cache_read": 0.0,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"openai/gpt-5.6-sol": {
|
||||
"name": "gpt-5.6-sol (OpenAI direct)",
|
||||
"limit": {
|
||||
"context": 1050000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 4.0,
|
||||
"output": 20.0,
|
||||
"cache_read": 0.4,
|
||||
"cache_write": 5.0
|
||||
}
|
||||
},
|
||||
"openai/gpt-5.5": {
|
||||
"name": "gpt-5.5 (OpenAI direct)",
|
||||
"limit": {
|
||||
"context": 1050000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 5.0,
|
||||
"output": 30.0,
|
||||
"cache_read": 0.5,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"openai/gpt-5.4": {
|
||||
"name": "gpt-5.4 (OpenAI direct)",
|
||||
"limit": {
|
||||
"context": 1050000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 2.5,
|
||||
"output": 15.0,
|
||||
"cache_read": 0.25,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"openai/gpt-5.4-mini": {
|
||||
"name": "gpt-5.4-mini (OpenAI direct)",
|
||||
"limit": {
|
||||
"context": 1050000,
|
||||
"output": 128000
|
||||
},
|
||||
"cost": {
|
||||
"input": 0.75,
|
||||
"output": 4.5,
|
||||
"cache_read": 0.075,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
},
|
||||
"openai/gpt-5.3-codex": {
|
||||
"name": "gpt-5.3-codex (OpenAI direct)",
|
||||
"limit": {
|
||||
"context": 200000,
|
||||
"output": 64000
|
||||
},
|
||||
"cost": {
|
||||
"input": 1.75,
|
||||
"output": 14.0,
|
||||
"cache_read": 0.175,
|
||||
"cache_write": 0.0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -108,21 +277,53 @@
|
||||
],
|
||||
"model": "litellm/qwen3.8-flash-next-iq3s-med",
|
||||
"small_model": "litellm/qwen3.8-flash-next-iq3s-med",
|
||||
"agent": {
|
||||
"dev": {
|
||||
"model": "litellm/qwen3.8-flash-next-iq3s-med"
|
||||
"permission": {
|
||||
"edit": "allow",
|
||||
"webfetch": "allow",
|
||||
"external_directory": "ask",
|
||||
"read": {
|
||||
"*": "allow",
|
||||
"*.env": "ask",
|
||||
"*.env.*": "ask",
|
||||
"*.env.example": "allow"
|
||||
},
|
||||
"architect": {
|
||||
"model": "litellm/qwen3.8-flash-next-iq3s-med"
|
||||
},
|
||||
"review": {
|
||||
"model": "litellm/qwen3.8-flash-next-iq3s-med"
|
||||
},
|
||||
"duck": {
|
||||
"model": "litellm/qwen3.8-flash-next-iq3s-med"
|
||||
},
|
||||
"brainstorm": {
|
||||
"model": "litellm/qwen3.8-flash-next-iq3s-med"
|
||||
"bash": {
|
||||
"*": "allow",
|
||||
"rm *": "ask",
|
||||
"rmdir *": "ask",
|
||||
"sudo *": "ask",
|
||||
"su *": "ask",
|
||||
"kill *": "ask",
|
||||
"pkill *": "ask",
|
||||
"killall *": "ask",
|
||||
"git commit*": "ask",
|
||||
"git push*": "ask",
|
||||
"git reset *": "ask",
|
||||
"git checkout -- *": "ask",
|
||||
"git restore *": "ask",
|
||||
"git clean *": "ask",
|
||||
"git rebase*": "ask",
|
||||
"git stash drop*": "ask",
|
||||
"git stash clear*": "ask",
|
||||
"git branch -D*": "ask",
|
||||
"git tag *": "ask",
|
||||
"cargo publish*": "ask",
|
||||
"npm publish*": "ask",
|
||||
"gh *": "ask",
|
||||
"ssh *": "ask",
|
||||
"scp *": "ask",
|
||||
"rsync *": "ask",
|
||||
"rbw *": "ask",
|
||||
"systemctl *": "ask",
|
||||
"podman *": "ask",
|
||||
"docker *": "ask",
|
||||
"dd *": "ask",
|
||||
"mkfs*": "ask",
|
||||
"chmod -R*": "ask",
|
||||
"chown *": "ask",
|
||||
"shutdown*": "ask",
|
||||
"reboot*": "ask",
|
||||
"poweroff*": "ask"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user