Skip to content

Mas-AI-Official/kYA_website

Repository files navigation

KYA Mission Control

KYA Mission Control

Trust infrastructure for autonomous AI agents

Verifies who owns an agent Β· what it’s allowed to do Β· creates an auditable record before it acts, spends, transacts, or represents a business.

License Next.js Tailwind Cloud Run Live Lab

Live Mission Lab β†’ Β· Product repo β†’ Β· MAS-AI β†’


Other tools control a tool call. We control the whole mission lifecycle.

This is the marketing site for KYA Mission Control by MAS-AI Technologies Inc. β€” the trust and execution layer for AI agent missions. Birth certificate to signed receipt across MCP, APIs, browsers, and payment rails.

The site is built to feel like the product: dark, technical, mission-control. No cartoon robots, no generic AI gradients, no hype. Cards, dashboards, glow, grid lines, motion β€” exactly enough.


✨ What you’ll see on the page

Section What it does
Hero Simulated mission-control dashboard β€” agent passport Β· trust meter (animated SVG) Β· multi-dimensional budget bars Β· 5-child lineage tree with animated dataflow Β· 9-step audit timeline Β· Ed25519-verified anchor strip
Killer line β€œOther tools control a tool call. We control the whole mission lifecycle.” β€” full-bleed strip with gold-radial glow
Problem Five questions every CISO is about to ask, five answers no one ships
Product Eight primitives β€” agent identity registry, ownership verification, permission policies, risk scoring, audit logs, compliance reports, platform API, reputation
How it works Five-step mission lifecycle + a 5-line SDK preview that wraps any LangChain / Anthropic Tools / OpenAI Assistants agent
Architecture Owner β†’ Entity β†’ Agent β†’ Mission Policy Engine β†’ Surfaces β†’ Audit Ledger block diagram
Live Mission Lab 9 scenario cards deep-linked to a running Cloud Run console β€” admit / block / checkpoint / verify, on real RFC 9421 signed requests
Use cases Marketplaces, SaaS, fintech, enterprise, freelance, AI insurance
Why now Standards rush Β· distribution moment Β· production pain
Comparison KYA vs AWS AgentCore vs Cloudflare WBA vs ERC-8004
Founder + Daena traction 10 departments Γ— 60 capabilities Γ— 3,086 tests Β· customer-zero on day one
Waitlist /api/waitlist Edge route with Resend / Slack / webhook fan-out

The whole page is server-rendered, fully responsive, scroll-reactive (parallax glow orbs + drifting grid + descending scanline), and respects prefers-reduced-motion.


πŸ§ͺ Try the live demo (no signup, no install)

The hero section deep-links into our running Mission Lab on Cloud Run. Click any card to open it on the right scenario:

# Scenario Outcome Question it answers
1 Verified mission βœ… Admit What does a green-light mission look like?
2 No passport ❌ Block Which agent is this β€” and who owns it?
3 Revoked passport ❌ Block How do I kill a key after it leaks?
4 Child scope escalation ❌ Block What authority can a child claim?
5 Budget exceeded ⏸️ Checkpoint How much has it spent on what?
6 High-risk action ⏸️ Checkpoint What needs a human signature?
7 Stuck browser ⏸️ Checkpoint How do I stop a wedged agent?
8 Replay blocked ❌ Block Can a captured request be reused?
9 Verify offline πŸ” Verify Can I prove this tomorrow without your servers?

Every click runs against a real FastAPI service, real Ed25519 keys, the real 12-state mission engine. The receipts are downloadable and offline-verifiable.


πŸš€ Quick start

Prerequisites: Node.js β‰₯ 18.

git clone https://github.com/Mas-AI-Official/kYA_website.git
cd kYA_website
npm install
npm run dev

Open http://localhost:3000.

The waitlist form on #join-beta works locally without any env vars β€” submissions are written to console.log (and to the browser’s localStorage as a defensive backup).


πŸ—οΈ Architecture (one glance)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         BROWSER (visitor)                            β”‚
β”‚         dark slate Β· gold Β· teal Β· framer-motion scroll FX           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
                                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Next.js 14 (App Router Β· static + Edge)              β”‚
β”‚ ─────────────────────────────────────────────────────────────────── β”‚
β”‚  /  ......... statically prerendered (SEO-friendly, LCP < 1.5s)      β”‚
β”‚  /api/waitlist .. Edge runtime function (V8 isolate, ~5ms cold)      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β–Ό                        β–Ό                        β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   RESEND     β”‚         β”‚    SLACK     β”‚        β”‚  WEBHOOK (any)   β”‚
β”‚ HTML email   β”‚         β”‚ Channel ping β”‚        β”‚ Zapier / Notion  β”‚
β”‚  (optional)  β”‚         β”‚  (optional)  β”‚        β”‚   (optional)     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
                                 β–Ό
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚   stdout JSON log  β”‚
                       β”‚   (always)         β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       Vercel / Cloudflare Logs surface these

/api/waitlist validates β†’ checks honeypot β†’ checks rate-limit (1/IP/min, after validation so a typo doesn’t lock you out) β†’ fans out to all configured providers via Promise.all. Every provider is optional. The form succeeds with zero configuration.


🎨 Design system

Token Value Used for
Background #05080B ink + layered radial gradients Page base
Slate 900 #0F1419 Panel surfaces
Slate 800 #1A2129 Raised cards
Gold #D4A843 Primary CTA, brand mark, "admit" signals
Teal #2DD4BF Secondary accents, "verify" signals
Signal green #34D399 Policy PASS, success
Signal amber #FBBF24 Checkpoint pending, warning
Signal red #F87171 Block, deny
Signal blue #60A5FA Human-loop signal
Display Inter Headings, dashboard text
Mono JetBrains Mono Code, IDs, addresses

Animation language: parallax glow orbs that drift with scroll Β· drifting grid Β· descending scanline Β· staggered card reveals Β· animated trust-meter SVG Β· audit-trail line-by-line. All motion respects prefers-reduced-motion.


πŸ“ Project structure

.
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ kya-logo.png            # Brand mark (gold-on-black)
β”‚   └── favicon.svg
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   └── waitlist/
β”‚   β”‚   β”‚       └── route.ts    # Edge function: validation + fan-out
β”‚   β”‚   β”œβ”€β”€ globals.css         # Tailwind + glow / grid / scanline
β”‚   β”‚   β”œβ”€β”€ layout.tsx          # Root layout, metadata, OG
β”‚   β”‚   └── page.tsx            # Composed landing page
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ AnimatedBackground.tsx     # Scroll-reactive orbs + grid
β”‚   β”‚   β”œβ”€β”€ MissionDashboard.tsx       # Hero dashboard simulation
β”‚   β”‚   β”œβ”€β”€ Nav.tsx                    # Sticky nav with KYA mark
β”‚   β”‚   β”œβ”€β”€ Footer.tsx
β”‚   β”‚   └── sections/
β”‚   β”‚       β”œβ”€β”€ Hero.tsx
β”‚   β”‚       β”œβ”€β”€ Problem.tsx
β”‚   β”‚       β”œβ”€β”€ Product.tsx
β”‚   β”‚       β”œβ”€β”€ HowItWorks.tsx
β”‚   β”‚       β”œβ”€β”€ Architecture.tsx
β”‚   β”‚       β”œβ”€β”€ LiveLab.tsx            # 9 deep-linked scenario cards
β”‚   β”‚       β”œβ”€β”€ UseCases.tsx
β”‚   β”‚       β”œβ”€β”€ WhyNow.tsx
β”‚   β”‚       β”œβ”€β”€ Comparison.tsx
β”‚   β”‚       β”œβ”€β”€ Founder.tsx
β”‚   β”‚       └── CTA.tsx
β”‚   └── lib/
β”‚       └── cn.ts
β”œβ”€β”€ .env.example                # All optional providers documented
β”œβ”€β”€ next.config.mjs
β”œβ”€β”€ package.json
β”œβ”€β”€ tailwind.config.ts          # MAS-AI palette + animations
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ vercel.json                 # Security headers + Edge cache
└── wrangler.toml               # Cloudflare Pages config

🚒 Deploy

A Β· Cloudflare Pages (recommended)

Same provider as your DNS, free tier covers anything this site will see, and the Edge /api/waitlist runs as a Cloudflare Worker bundle for free.

npx wrangler login            # one-time, opens browser
npm run cf:deploy             # builds via @cloudflare/next-on-pages and uploads

After the first deploy:

  1. Cloudflare Dashboard β†’ Pages β†’ kya-mission-control β†’ Custom Domains β€” enter kya.mas-ai.co. The CNAME is already set on the mas-ai.co zone, so Cloudflare validates and issues the TLS cert in ~30 s.

  2. Settings β†’ Environment Variables β€” paste any of:

    Var Effect
    RESEND_API_KEY + WAITLIST_NOTIFY_TO Branded HTML email per signup
    WAITLIST_FROM Override From: (default uses Resend onboarding)
    SLACK_WEBHOOK_URL Instant Slack channel ping
    WAITLIST_WEBHOOK_URL Forward raw JSON to Zapier / n8n / Notion

    See .env.example.

B Β· Google Cloud Run

Containerized Next.js (standalone output) on a serverless region in Toronto. Same region as Daena, scale-to-zero, ~150 MB image, sub-second cold starts.

# One-time:
gcloud auth login
gcloud config set project mas-ai-kya

# Build + push + deploy + smoke-test (one shot):
npm run gcp:deploy

The script:

  1. Enables run.googleapis.com + artifactregistry.googleapis.com (no-op if already on)
  2. Creates the Artifact Registry repo kya-website in northamerica-northeast1 (idempotent)
  3. Builds the multi-stage Dockerfile and tags with <version>-<git-sha> + latest
  4. Pushes both tags
  5. Deploys to Cloud Run service kya-website (cpu=1, memory=512Mi, concurrency=80, scale-to-zero)
  6. Curls the live URL + the honeypot path on /api/waitlist to confirm it works

No local Docker? Use Cloud Build instead β€” same result, runs entirely on Google's side:

npm run gcp:deploy:remote

After deploy, attach the custom domain in Cloud Run β†’ kya-website β†’ Custom Domains (this also issues a managed cert), or update your Cloudflare CNAME from kya-mission-control.pages.dev to ghs.googlehosted.com (Cloud Run's domain-mapping target).

C Β· Vercel

Deploy with Vercel

Or via CLI:

npx vercel login
npx vercel --prod

After deploy: Project Settings β†’ Domains β†’ add kya.mas-ai.co β†’ add the DNS record Vercel shows (or keep the existing CNAME; both work).

D Β· Netlify / Self-hosted

npm run build && npm run start

Outputs /.next (server) β€” wire to any Node host, or next export if you don’t need the API route.


πŸ›‘οΈ Waitlist API contract

POST /api/waitlist

{
  "name":     "Jane Doe",       // required
  "email":    "jane@acme.com",  // required, RFC-ish regex
  "company":  "ACME Agents",    // optional
  "use_case": "Procurement bot needs receipts",  // optional, ≀ 4000 chars
  "website":  ""                // honeypot β€” must be empty
}

Responses:

Status Meaning
200 {ok:true, delivered:{resend, slack, webhook}} Accepted; per-provider booleans show what fired
200 {ok:true} Honeypot tripped (silent β€” no slot consumed)
400 {error:"missing_fields"} name or email blank
400 {error:"invalid_email"} email failed regex
400 {error:"invalid_json"} body not valid JSON
429 {error:"rate_limited", retry_after_s} > 1 request from this IP this minute
405 {error:"method_not_allowed"} not a POST

Validation runs before rate-limiting so a typo doesn’t burn your slot. Honeypot bots are silently 200’d so they don’t retry.


πŸ“ˆ Performance

Metric Target Measured
First Load JS < 200 kB 154 kB
LCP < 1.5 s (depends on host)
Lighthouse > 95 (run yours)
Third-party trackers 0 0
External font requests 0 0 (system stack)

🀝 Contributing

This is the marketing site. The product itself lives at Mas-AI-Official/KYA_Mission_Control (Apache 2.0, mission state machine + receipt spec + lab demo).

If you spot a copy bug, a typo, or a layout issue here, open an issue or a PR β€” anything that makes the site sharper is welcome. For product feedback (the protocol, the receipt format, the lab scenarios), open issues on the product repo.


πŸ“ License

Apache 2.0 β€” see LICENSE.

Β© 2026 MAS-AI Technologies Inc. Β· Toronto, Ontario, Canada


Built by Masoud Masoori Β· MAS-AI Technologies Inc.

mas-ai.co Β· hello@mas-ai.co Β· security@mas-ai.co

Two patents pending: Sunflower-Honeycomb Memory Architecture Β· Neural-Backed Memory Fabric (NBMF)

About

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors