Request path & one chat turn
How a traveler message becomes a grounded reply — and where corporate booking sits on the Anamaya order spine.
One chat turn (hotel search example)
Session remembers picks — inventory stays live
Maya does not invent a hotel list when OMS returns empty
sequenceDiagram participant U as Traveler participant M as maya-api Agent participant P as NRCP pack participant G as Anamaya MCP participant O as OMS U->>M: Hotel dekat Seminyak 2 malam M->>P: load live reply / NLU rules M->>M: intent + slots + session context Note over M: remembers flight pick / dates
does NOT invent hotel list M->>G: search_hotels / discovery tool G->>O: POST /hotel/discovery live O-->>G: properties + photos or empty G-->>M: canonical offers M->>M: rank ≤3, grounded facts M-->>U: Hotel options or honest empty
Corporate booking spine
flowchart LR
A[ESPPD + Surat Jalan] --> B[Policy-filtered search]
B --> C[Top 3 options]
C --> D[Traveler confirms]
D --> E[Submit package]
E --> F[Manager approval]
F --> G[Issued / Failed]
G --> H[E-ticket on channel]
Chat stops at recap until an explicit second confirmation before mutating OMS bookings.
First “Ya, book” = itinerary recap only.
Deployed runtime (PoC / DEV)
| Service | Role | Typical host |
|---|---|---|
maya-api | Agent + domain API | Cloud Run anamaya-g |
maya-poc | Web chat + /simulasi | maya.suherman.net |
maya-anamaya-mcp | OMS MCP + REST facade | /mcp/anamaya |
maya-travel-ai-mcp | Persona / SPEC MCP | /mcp |
| Anamaya OMS | Order spine | dev-anamaya.biztrip.id (API VM) |
| Control plane | Specs / SDD | private sibling repo |
Ops caveat: if
dev-anamaya.biztrip.id has DNS split-brain (API + Vite site),
calls look flaky. That is not an MCP inventory bug.