# CASAN Enterprise / Governed Agent Console (Level 4) · **FUTURE / structure-only** > Status: **FUTURE.** Documented + scaffolded, NOT implemented in this task. > `package-release.sh enterprise` **refuses to build** (no fake-complete package) — several > building blocks already exist inside the core harness, but the governed console itself > does not. Do not ship this as a product yet. Enterprise governed AI-SDLC console. Packages: `casan-enterprise`, `casan-governed-console`. ## Building blocks that ALREADY exist (in core harness, reusable) | Capability | Where | |---|---| | RBAC | `packages/casan-harness/scripts/bash/rbac-check.py` | | Tenant isolation | `tenant-store.sh`, `tenant-paths.sh`, `tenant-registry-verify.sh`, `tenant-crypt.sh` | | Approval workflow | `approval-verify.sh`, `approval-sign.sh`, `approval-jwt-mint.py` | | KMS | `vault-kms.sh` | | WORM ledger | `worm-ledger.py` | | Kill-switch / quota | `kill-switch.sh`, `cost-spike-detect.sh` | | Loop governance | Plan-17 loop primitives (`loop-*.py`) | ## Components still to build (NOT in this task) - Governed Chat Console (Plan-18) · Prompt Mode Router · Model Provider Management - Operator mode · Codegen mode · Agent/Skill Registry · policy-versioning UI ## Why it refuses to package Per the packaging principle, a level that isn't implemented must **fail clearly** rather than emit a fake-complete artifact. Enterprise is `status: future` in `packaging/levels.json`, so `scripts/package-release.sh enterprise` exits non-zero with an explanation. When the console is built, flip its status to `preview`/`implemented`. ## To implement later Sequence: Plan-14 (RBAC console) → Plan-13 (Control Plane) → Plan-18 (Governed Chat Console: read-only → operator → chat-as-loop → multi-tenant). Reuse the existing blocks above instead of re-writing them.