# f0rextasy/numes-bulk-apikey architecture

> Architecture diagram of the GitHub repository f0rextasy/numes-bulk-apikey, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/f0rextasy/numes-bulk-apikey
- Repository: https://github.com/f0rextasy/numes-bulk-apikey

## Overview

This is a Node.js CLI for minting numes.ai API keys, verifying them with live inference, and registering existing keys with 9Router or OmniRoute. The primary flow creates a readable mailbox, completes browser-based registration and verification, creates a dashboard key, gates it with live chat responses, then saves usable keys. The graph includes the documented workflow stages and connector branches; unsampled CLI and solver details are represented only where the README documents them.

Main entry points: [`src/cli.js`](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js) (Mint CLI), [`src/solver.js`](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/solver.js) (Browser Registration), [`src/launcher.js`](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/launcher.js) (Interactive Launcher), [`src/connect-9router.js`](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/connect-9router.js) (9Router Connector)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_mint["Key Minting"]
  node_mailbox["Mailbox Provisioning<br/>[cli.js]"]
  node_mailproviders["Mail Providers"]
  node_inbox["Verification Inbox<br/>[cli.js]"]
  node_browser["Browser Registration<br/>[solver.js]"]
  node_identity["Keycloak Signup"]
  node_turnstile["Turnstile Challenge"]
  node_dashboard["Dashboard Key Creation<br/>[solver.js]"]
end

subgraph group_verify["Key Validation"]
  node_numes["numes.ai Gateway"]
  node_gate["Live Chat Gate<br/>[cli.js]"]
  node_keyfiles["Key Files<br/>[cli.js]"]
end

subgraph group_connectors["Router Connectors"]
  node_router9["9Router Connector<br/>[connect-9router.js]"]
  node_omniroute["OmniRoute Connector"]
  node_router9service["9Router Instance"]
  node_omnirouteservice["OmniRoute Instance"]
end

subgraph group_interface["User Interface"]
  node_launcher["Interactive Launcher<br/>[launcher.js]"]
  node_cli["Mint CLI<br/>[cli.js]"]
end

node_user(("Operator"))

node_user -->|"starts"| node_launcher
node_launcher -->|"runs mint"| node_cli
node_user -->|"runs directly"| node_cli
node_cli -->|"provisions"| node_mailbox
node_mailbox -->|"creates inbox"| node_mailproviders
node_cli -->|"polls mail"| node_inbox
node_inbox -->|"reads messages"| node_mailproviders
node_cli -->|"calls mint"| node_browser
node_browser -->|"registers account"| node_identity
node_browser -->|"interacts with"| node_turnstile
node_browser -->|"waits for link"| node_inbox
node_browser -->|"creates key"| node_dashboard
node_dashboard -->|"posts key request"| node_numes
node_cli -->|"checks key"| node_gate
node_gate -->|"calls chat API"| node_numes
node_cli -->|"saves verified keys"| node_keyfiles
node_user -->|"runs connector"| node_router9
node_user -->|"runs connector"| node_omniroute
node_launcher -->|"calls connector"| node_router9
node_launcher -->|"calls connector"| node_omniroute
node_router9 -->|"reads keys"| node_keyfiles
node_omniroute -->|"reads keys"| node_keyfiles
node_router9 -->|"registers provider"| node_router9service
node_omniroute -->|"registers provider"| node_omnirouteservice

click node_launcher "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/launcher.js"
click node_cli "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js"
click node_mailbox "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js"
click node_inbox "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js"
click node_browser "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/solver.js"
click node_dashboard "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/solver.js"
click node_gate "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js"
click node_keyfiles "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js"
click node_router9 "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/connect-9router.js"
click node_omniroute "https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/connect-omniroute.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_mailbox,node_mailproviders,node_inbox,node_browser,node_identity,node_turnstile,node_dashboard toneBlue
class node_numes,node_gate,node_keyfiles toneAmber
class node_router9,node_omniroute,node_router9service,node_omnirouteservice toneMint
class node_launcher,node_cli toneRose
class node_user toneIndigo
```

## Components

### Key Minting

- [Mailbox Provisioning](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js): `src/cli.js`
- **Mail Providers**
- [Verification Inbox](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js): `src/cli.js`
- [Browser Registration](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/solver.js): `src/solver.js`
- **Keycloak Signup**
- **Turnstile Challenge**
- [Dashboard Key Creation](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/solver.js): `src/solver.js`

### Key Validation

- **numes.ai Gateway**
- [Live Chat Gate](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js): `src/cli.js`
- [Key Files](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js): `src/cli.js`

### Router Connectors

- [9Router Connector](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/connect-9router.js): `src/connect-9router.js`
- [OmniRoute Connector](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/connect-omniroute.js): `src/connect-omniroute.js`
- **9Router Instance**
- **OmniRoute Instance**

### User Interface

- [Interactive Launcher](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/launcher.js): `src/launcher.js`
- [Mint CLI](https://github.com/f0rextasy/numes-bulk-apikey/blob/main/src/cli.js): `src/cli.js`

### Other components

- **Operator**

## Connections

- Operator → Interactive Launcher: starts (evidence: `README.md`)
- Interactive Launcher → Mint CLI: runs mint (evidence: `src/launcher.js`)
- Operator → Mint CLI: runs directly (evidence: `README.md`)
- Mint CLI → Mailbox Provisioning: provisions (evidence: `src/cli.js`)
- Mailbox Provisioning → Mail Providers: creates inbox (evidence: `src/cli.js`)
- Mint CLI → Verification Inbox: polls mail (evidence: `src/cli.js`)
- Verification Inbox → Mail Providers: reads messages (evidence: `README.md`)
- Mint CLI → Browser Registration: calls mint (evidence: `src/cli.js`)
- Browser Registration → Keycloak Signup: registers account (evidence: `src/solver.js`)
- Browser Registration → Turnstile Challenge: interacts with (evidence: `README.md`)
- Browser Registration → Verification Inbox: waits for link (evidence: `src/solver.js`)
- Browser Registration → Dashboard Key Creation: creates key (evidence: `src/solver.js`)
- Dashboard Key Creation → numes.ai Gateway: posts key request (evidence: `README.md`)
- Mint CLI → Live Chat Gate: checks key (evidence: `src/cli.js`)
- Live Chat Gate → numes.ai Gateway: calls chat API (evidence: `src/cli.js`)
- Mint CLI → Key Files: saves verified keys (evidence: `README.md`)
- Operator → 9Router Connector: runs connector (evidence: `README.md`)
- Operator → OmniRoute Connector: runs connector (evidence: `README.md`)
- Interactive Launcher → 9Router Connector: calls connector (evidence: `src/launcher.js`)
- Interactive Launcher → OmniRoute Connector: calls connector (evidence: `src/launcher.js`)
- 9Router Connector → Key Files: reads keys (evidence: `README.md`)
- OmniRoute Connector → Key Files: reads keys (evidence: `README.md`)
- 9Router Connector → 9Router Instance: registers provider (evidence: `src/connect-9router.js`)
- OmniRoute Connector → OmniRoute Instance: registers provider (evidence: `src/connect-omniroute.js`)
