|
|
||
|---|---|---|
| .gitea/workflows | ||
| app | ||
| docs | ||
| .gitignore | ||
| Makefile | ||
| README.md | ||
EDUT Launcher
Free control-plane application for EDUT onboarding and entitlement-aware installs.
Scope
- Local wallet create/import/recovery UX.
- Device readiness checks.
- Membership status and governance install controls.
- Signed package download and verification orchestrator.
- Member app-channel inbox.
Primary v1 wallet behavior and acceptance criteria are specified in:
docs/wallet-v1-product-spec.md
Out of Scope
- Governance runtime internals.
- Paid module execution engines.
Boundary
Launcher never contains private kernel internals. It verifies and installs signed paid runtimes only after entitlement checks pass.
Local Harness (Current)
app/index.html now exposes a product-first control surface with advanced harness tooling preserved.
Top-level control surface:
Connect walletActivate membershipRefresh status + feedGovernance status- Wallet/session/membership/designation/last-sync overview cards
- Pull-first updates feed + support ticket action
- Identity assurance visibility (
none/crypto_direct_unattested/sponsored_unattested/onramp_attested) - Explicit operator-visible mode toggles (
Human mode/Auto mode) synced to governanceoperation_mode - Wallet utility actions (
Refresh balances,Copy address) with native + USDC balance visibility
Advanced integration controls (collapsible):
- API/chain connection settings
- Wallet intent + verify primitives
- Membership quote + confirm primitives
- Marketplace offer list + checkout quote/send/confirm primitives
- Member channel register/poll primitives
- Governance install + lease primitives (with explicit
operation_mode) - Raw response log for deterministic troubleshooting
- Wallet session lifecycle controls (manual refresh/revoke + automatic pre-expiry refresh)
- Deterministic fail-closed error messaging mapped from backend policy/error codes
Wallet automation helpers remain available in advanced controls:
Connect walletfills address fromwindow.ethereum.Sign intent (EIP-712)signs the current intent payload and fillswalletSignature.Sign payer proofsigns distinct-payer ownership proof and fillspayerProof.Send membership txsubmits the quote transaction viaeth_sendTransactionand fillsconfirmTxHash.- Membership confirm can optionally attach on-ramp attestation fields (
identity_assurance_level,identity_attested_by,identity_attestation_id) for provider-integrated flows. - Wallet verify returns a session token; launcher forwards it on marketplace/member/governance API calls via bearer +
X-Edut-Session. - Launcher proactively refreshes wallet sessions before expiry and clears local session state on terminal session errors (
invalid,expired,revoked,mismatch).
Policy behavior in launcher shell:
- Membership is required for all member-channel polling flows.
onramp_attestedidentity assurance is required for owner support-ticket and governance install-token actions.- Assurance state is displayed independently from membership state in the top summary cards.
- Owner-only buttons are UI-disabled until both membership is active and assurance is
onramp_attested. - Governance activation evidence must carry explicit signing authority class (
identity_humanor delegated).
Run locally:
cd /Users/vsg/Documents/VSG\ Codex/launcher/app
python3 -m http.server 4310
Then open http://127.0.0.1:4310 and point API base URL at running secretapi.