# Cipherbit LP New Offering — Object-Oriented Analysis (OOA)

Basis: `Cipherbit LP New Offering.pdf` (AGIFS convergence standard, iDD protocol) +
verified live inventory of the ECXI estate (2026-10-10). Every endpoint listed was
probed live; no endpoint is asserted that was not verified.

## 1. Domain objects (OOA)

| Object | Identity | Attributes | Key operations |
|---|---|---|---|
| **Fund** (Cipherbit LP) | offering-id | GP=ECXI, vehicle structure, thesis set | `describe()`, `listAssets()` |
| **AssetCapsule** | company name | thesis alignment, strategic sector, iDD status | `summarize()`, `iddRequirements()` |
| **IDDEvidencePackage** | annex (D, E, F, G, H, C, A/B) | controls, owner, reviewer, cadence | `render()`, `checklist()` |
| **Thesis** | thesis name (Lean Kernel, Sovereign LP, Outcome-First, Sovereign Intelligence) | mandate alignment | `describe()` |
| **ExecutionRegister** | deliverable | owner/reviewer pair, timing | `require()` |
| **TwinClient** (FaaS adapter) | base origin | endpoint map, cache TTL, health states | `catalog()`, `quote()`, `estimate()`, `intent()`, `commandPlane()`, `health()` |
| **Quote** | quote id | skus, lock_days, priced tiers | `display()`, `attachIntent()` |
| **Intent** | receipt id | contact, agent origin, skus | `stage()` (HITL human closes contract) |
| **EvidencePack** | generated file | selected iDD annexes, twin snapshot refs | `build()`, `download()` |

## 2. Capabilities / features-as-a-service (global inventory, verified 2026-10-10)

| # | FaaS capability | Endpoint / host | Serves | Live check |
|---|---|---|---|---|
| 1 | Pricing engine catalog (12 SKUs, 4 tiers) | `GET cipherbit.ai/gateway/gw/catalog` and `ecxi.ai/gateway/gw/catalog` | SKU list, tiers, lockups | 200 |
| 2 | Usage-based quoting (real engine math) | `POST /gateway/gw/quote {skus, lock_days, usage}` | priced quote | contract verified in gateway source |
| 3 | Workload→SKU estimator | `POST /gateway/gw/usage/estimate {profile}` | recommended SKUs | contract verified in gateway source |
| 4 | Agentic sales-motion intent (HITL close) | `POST /gateway/gw/intent` | staged order receipt | contract verified; human closes contract |
| 5 | Command-plane summary | `GET ecxi.ai/dashboard/api/v1/dashboard` (also /v1/catalog, /v1/workforce, /v1/hitl, /v1/threat) | roster, threat, HITL | 200 |
| 6 | ActiveVuln product | `cipherbit.ai/active/vuln/`, activevuln.ch | AI security scoring, 4-eyes, ledger | 200 |
| 7 | ActiveAI product (A-I-D-C governance) | `cipherbit.ai/active/ai/`, activeai.ch | assessments, WORM evidence, EU AI Act | 200 |
| 8 | Investor portal (Google OAuth, hash-chained ledger) | `cipherbit.co/portal/` on ECXII | registration, dashboard | 200, release 20261010025300-2e2ea5c |
| 9 | Public site | `cipherbit.co/` on ECXII (nginx → PM2 :3001) | mandate/approach/platform/contact | 200 |
| 10 | Offering/iDD knowledge (this OOA + evidence packs) | `cipherbit.co/offering/`, `cipherbit.co/docs/` on ECXII | iDD protocol, twin console | this deployment |

Governance invariants carried over from the estate:
- Orthogonality: every capability runs with the command plane down; cipherbit.co
  pages must degrade, not break, when any twin is unreachable.
- Quotes always come from the real engine (gateway) — pricing math is never
  re-implemented in a caller.
- Intents stage orders; a governed human always closes the contract (HITL).
- No secrets, passwords, or credentials in code, configuration, or artifacts.

## 3. UML — class view (textual)

```
+---------------------+        1..*    +----------------------+
| Fund (Cipherbit LP) |<>--------------| AssetCapsule         |
+---------------------+                +----------------------+
| gp, structure       |                | name, thesis, sector |
| listAssets()        |                | iddRequirements()    |
+---------------------+                +----------+-----------+
                                                  | 1..*
                                                  v
                                       +----------------------+
                                       | IDDEvidencePackage   |
                                       | annex, controls[]    |
                                       | render(), checklist()|
                                       +----------------------+

Site page (OfferingController)  ----uses--->  TwinClient (FaaS adapter)
      |                                            |
      | build()                                    | catalog()/quote()/estimate()/intent()
      v                                            v
EvidencePack                                ecxi-gateway :8090 (real engine)
(download JSON)                             cipherbot-api /v1/* (command plane)

TwinClient endpoints (verified, cross-origin from cipherbit.co):
  gateway      = https://cipherbit.ai/gateway   (fallback https://ecxi.ai/gateway)
  commandPlane = https://ecxi.ai/dashboard/api/v1
  activevuln   = https://cipherbit.ai/active/vuln
  activeai     = https://cipherbit.ai/active/ai
```

## 4. UML — sequence: quote→intent (agentic sales motion)

```
Visitor   OfferingController   TwinClient    gateway(:8090)      HITL human
  | select profile  |  |  |  |  |  |
  |---------------->|  |  |  |  |  |
  |                 | estimate(profile)      |
  |                 |----------------------->|
  |                 |   recommended SKUs + monthly ECXI
  |                 |<-----------------------|
  | select SKUs, lock days   |  |  |  |  |
  |---------------->| quote(skus, lock_days) |
  |                 |----------------------->|  engine math
  |                 |        priced quote    |
  |                 |<-----------------------|
  | contact details |  |  |  |  |  |  |  |
  |---------------->| intent(quote_id, skus, contact, agent)  |
  |                 |----------------------->|  append JSONL (volume ecxi-gw-data)
  |                 |        receipt         |  |
  |                 |<-----------------------|  |-- closes contract
  |   receipt + pending-human note   |  |  |  |
```

## 5. State machine — AssetCapsule iDD lifecycle

```
SOURCED -> IDD_PENDING -> [Lean Kernel | Sovereign | Outcome | Public-Sector packages]
        -> REVIEW (owner + independent reviewer sign-off)
        -> DATA_ROOM (version-dated, signed)
        -> QUARTERLY_REVIEW --(material change)--> IDD_PENDING
```

## 6. OOD → implementation mapping (this deployment)

| OOA object | Implemented as | Where |
|---|---|---|
| TwinClient | `assets/twin.js` (vanilla JS adapter, TTL cache, parallel health, degrade-on-fail) | site public assets |
| OfferingController + EvidencePack | `offering/app.js` (page controller, evidence-pack builder) | site public assets |
| Offering view | `offering/index.html` (static page, ECXI design tokens) | site public |
| Twin registry | `assets/twin-status.json` | site public |
| OOA doc as FaaS artifact | `docs/cipherbit-lp-new-offering-ooa.md` (served) | site public |
| Site integration | "Offering" nav entry on index.html | site public |
| Deploy vehicle | existing release pipeline: `C:\cipherbit\incoming\<id>.tgz` → `_ci_deploy.ps1` (nginx -t, junction swap, pm2 reload, health check, rollback) | ECXII (Windows VM) |

Deployment topology (unchanged): visitor → nginx :443 (ECXII, cipherbit.co)
→ PM2 `cipherbit-site` :3001 (static + offering page) / `cipherbit-portal` :3002
→ page JS → twin endpoints on cipherbit.ai/ecxi.ai (outbound verified 200).
