feat: support Codex and Claude local surfaces
This commit is contained in:
@@ -151,6 +151,23 @@ PROJ="$WORK/proj/my-app"; mkdir -p "$PROJ"; echo '{"name":"x"}' > "$PROJ/package
|
||||
for f in .casan/config.json .casan/version.lock .casan/agentic.env .casan/casan-hook.py .claude/settings.json .codex/hooks.json .vscode/extensions.json .specify/.gitignore; do
|
||||
[[ -f "$PROJ/$f" ]] && pass "init wrote $f" || fail "init missing $f"
|
||||
done
|
||||
python3 - "$PROJ/.casan/config.json" <<'PY' \
|
||||
&& pass "config declares supported and excluded client surfaces" \
|
||||
|| fail "config client surface contract is incomplete"
|
||||
import json
|
||||
import sys
|
||||
|
||||
d = json.load(open(sys.argv[1], encoding="utf-8"))
|
||||
assert d["schema_version"] == "21.2"
|
||||
assert d["client_surfaces"]["claude"]["supported_local"] == [
|
||||
"claude-code-cli", "claude-code-vscode", "claude-code-jetbrains",
|
||||
]
|
||||
assert d["client_surfaces"]["codex"]["supported_local"] == [
|
||||
"codex-desktop-local", "codex-cli", "codex-ide-extension-local",
|
||||
]
|
||||
assert "claude-desktop" in d["client_surfaces"]["claude"]["not_covered"]
|
||||
assert "codex-cloud" in d["client_surfaces"]["codex"]["not_covered"]
|
||||
PY
|
||||
if [[ -d "$PROJ/packages/casan-harness" ]]; then fail "harness was copied into the repo (should not be)"; else pass "harness NOT copied into repo (hybrid model)"; fi
|
||||
if grep -R -q 'packages/casan-harness/adapters' "$PROJ/.claude/settings.json" "$PROJ/.codex/hooks.json"; then fail "generated hooks still target a repo-local harness"; else pass "generated hooks target the stable project bootstrap"; fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user