| .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/membership/designation/last-sync overview cards
- Pull-first updates feed + support ticket action
- Identity assurance visibility (
none/crypto_direct_unattested/sponsored_unattested/onramp_attested)
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
- Raw response log for deterministic troubleshooting
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.
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.
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.