# owais265/manakmitra architecture

> Architecture diagram of the GitHub repository owais265/manakmitra, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/owais265/manakmitra
- Repository: https://github.com/owais265/manakmitra

## Overview

ManakMitra is an evidence-grounded BIS standards and services assistant. Its primary workflow is a user query through policy checks, local catalogue retrieval (optionally enriched by hybrid search), and a grounded answer or refusal with an official next step. Separate product branches cover guided service desks, HUID/hallmark verification, laboratory lookup, and certification guidance. The README documents these capabilities and the retrieval stages; sampled source confirms retrieval, grounding, and app-auth behavior, but not every route’s internal wiring.

Main entry points: [`src/routes/api/chat.ts`](https://github.com/owais265/manakmitra/blob/main/src/routes/api/chat.ts) (Chat API), [`src/lib/retrieve.ts`](https://github.com/owais265/manakmitra/blob/main/src/lib/retrieve.ts) (Retrieval and grounding), [`src/components/manakmitra-chat.tsx`](https://github.com/owais265/manakmitra/blob/main/src/components/manakmitra-chat.tsx) (Chat interface), [`src/lib/rag.ts`](https://github.com/owais265/manakmitra/blob/main/src/lib/rag.ts) (Policy and pack search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_chatpage["Chat interface"]
  node_chatapi["Chat API<br/>[chat.ts]"]
end

subgraph group_answer["Grounded answers"]
  node_queryctx["Query handling<br/>[query-context.ts]"]
  node_retrieve["Retrieval and grounding<br/>[retrieve.ts]"]
  node_rag["Policy and pack search<br/>[rag.ts]"]
  node_hybrid["Hybrid search<br/>[hybrid.ts]"]
  node_catalogue["Authorised catalogue<br/>[rag-pack.json]"]
  node_supabase[("Optional search store<br/>[supabase.server.ts]")]
  node_xai["Optional xAI phrasing"]
end

subgraph group_desks["BIS service desks"]
  node_desks["Guided desks<br/>[guide-pages.tsx]"]
  node_verify["Product verification<br/>[verify.tsx]"]
  node_hallmark["Hallmark and HUID<br/>[hallmark.tsx]"]
  node_huidapi["HUID verification API<br/>[verify.ts]"]
  node_labs["Lab lookup<br/>[labs.tsx]"]
  node_standards["Standards finder<br/>[standards.tsx]"]
  node_certify["Certification guidance<br/>[certify.tsx]"]
end

subgraph group_identity["Identity and data"]
  node_authui["Sign-in client<br/>[client.ts]"]
  node_authserver["App authentication<br/>[server.ts]"]
  node_appdata["Connector access<br/>[client.server.ts]"]
end

node_user(("Public user"))
node_official["Official BIS portals"]
node_connectors["Connectors service"]

node_user -->|"asks"| node_chatpage
node_chatpage -->|"submits query"| node_chatapi
node_chatapi -->|"prepares query"| node_queryctx
node_chatapi -->|"requests answer"| node_retrieve
node_retrieve -->|"retrieves evidence"| node_rag
node_rag -->|"searches pack"| node_catalogue
node_retrieve -.->|"invokes optional search"| node_hybrid
node_hybrid -.->|"queries extras"| node_supabase
node_chatapi -.->|"requests phrasing"| node_xai
node_retrieve -->|"returns grounded result"| node_chatapi
node_chatapi -->|"returns answer or refusal"| node_chatpage
node_chatpage -->|"offers official handoff"| node_official
node_user -->|"selects guidance"| node_desks
node_user -->|"opens verification"| node_verify
node_user -->|"checks hallmark"| node_hallmark
node_hallmark -->|"requests verification"| node_huidapi
node_user -->|"looks up labs"| node_labs
node_labs -->|"links to LIMS scope"| node_official
node_user -->|"finds standards"| node_standards
node_user -->|"seeks certification steps"| node_certify
node_user -->|"signs in"| node_authui
node_authui -->|"authenticates"| node_authserver
node_authserver -->|"authorizes app data"| node_appdata
node_appdata -->|"calls tools"| node_connectors

click node_chatpage "https://github.com/owais265/manakmitra/blob/main/src/components/manakmitra-chat.tsx"
click node_chatapi "https://github.com/owais265/manakmitra/blob/main/src/routes/api/chat.ts"
click node_queryctx "https://github.com/owais265/manakmitra/blob/main/src/lib/query-context.ts"
click node_retrieve "https://github.com/owais265/manakmitra/blob/main/src/lib/retrieve.ts"
click node_rag "https://github.com/owais265/manakmitra/blob/main/src/lib/rag.ts"
click node_hybrid "https://github.com/owais265/manakmitra/blob/main/src/lib/hybrid.ts"
click node_catalogue "https://github.com/owais265/manakmitra/blob/main/src/data/rag-pack.json"
click node_supabase "https://github.com/owais265/manakmitra/blob/main/src/lib/supabase.server.ts"
click node_desks "https://github.com/owais265/manakmitra/blob/main/src/components/guide-pages.tsx"
click node_verify "https://github.com/owais265/manakmitra/blob/main/src/routes/verify.tsx"
click node_hallmark "https://github.com/owais265/manakmitra/blob/main/src/routes/hallmark.tsx"
click node_huidapi "https://github.com/owais265/manakmitra/blob/main/src/routes/api/verify.ts"
click node_labs "https://github.com/owais265/manakmitra/blob/main/src/routes/labs.tsx"
click node_standards "https://github.com/owais265/manakmitra/blob/main/src/routes/standards.tsx"
click node_certify "https://github.com/owais265/manakmitra/blob/main/src/routes/certify.tsx"
click node_authui "https://github.com/owais265/manakmitra/blob/main/src/lib/auth/client.ts"
click node_authserver "https://github.com/owais265/manakmitra/blob/main/src/lib/auth/server.ts"
click node_appdata "https://github.com/owais265/manakmitra/blob/main/src/lib/app-data/client.server.ts"

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_chatpage,node_chatapi,node_user toneBlue
class node_queryctx,node_retrieve,node_rag,node_hybrid,node_catalogue,node_supabase,node_xai toneAmber
class node_desks,node_verify,node_hallmark,node_huidapi,node_labs,node_standards,node_certify toneMint
class node_authui,node_authserver,node_appdata toneRose
class node_official,node_connectors toneIndigo
```

## Components

### User experience

- [Chat interface](https://github.com/owais265/manakmitra/blob/main/src/components/manakmitra-chat.tsx): `src/components/manakmitra-chat.tsx`
- [Chat API](https://github.com/owais265/manakmitra/blob/main/src/routes/api/chat.ts): `src/routes/api/chat.ts`

### Grounded answers

- [Query handling](https://github.com/owais265/manakmitra/blob/main/src/lib/query-context.ts): `src/lib/query-context.ts`
- [Retrieval and grounding](https://github.com/owais265/manakmitra/blob/main/src/lib/retrieve.ts): `src/lib/retrieve.ts`
- [Policy and pack search](https://github.com/owais265/manakmitra/blob/main/src/lib/rag.ts): `src/lib/rag.ts`
- [Hybrid search](https://github.com/owais265/manakmitra/blob/main/src/lib/hybrid.ts): `src/lib/hybrid.ts`
- [Authorised catalogue](https://github.com/owais265/manakmitra/blob/main/src/data/rag-pack.json): `src/data/rag-pack.json`
- [Optional search store](https://github.com/owais265/manakmitra/blob/main/src/lib/supabase.server.ts): `src/lib/supabase.server.ts`
- **Optional xAI phrasing**

### BIS service desks

- [Guided desks](https://github.com/owais265/manakmitra/blob/main/src/components/guide-pages.tsx): `src/components/guide-pages.tsx`
- [Product verification](https://github.com/owais265/manakmitra/blob/main/src/routes/verify.tsx): `src/routes/verify.tsx`
- [Hallmark and HUID](https://github.com/owais265/manakmitra/blob/main/src/routes/hallmark.tsx): `src/routes/hallmark.tsx`
- [HUID verification API](https://github.com/owais265/manakmitra/blob/main/src/routes/api/verify.ts): `src/routes/api/verify.ts`
- [Lab lookup](https://github.com/owais265/manakmitra/blob/main/src/routes/labs.tsx): `src/routes/labs.tsx`
- [Standards finder](https://github.com/owais265/manakmitra/blob/main/src/routes/standards.tsx): `src/routes/standards.tsx`
- [Certification guidance](https://github.com/owais265/manakmitra/blob/main/src/routes/certify.tsx): `src/routes/certify.tsx`

### Identity and data

- [Sign-in client](https://github.com/owais265/manakmitra/blob/main/src/lib/auth/client.ts): `src/lib/auth/client.ts`
- [App authentication](https://github.com/owais265/manakmitra/blob/main/src/lib/auth/server.ts): `src/lib/auth/server.ts`
- [Connector access](https://github.com/owais265/manakmitra/blob/main/src/lib/app-data/client.server.ts): `src/lib/app-data/client.server.ts`

### Other components

- **Public user**
- **Official BIS portals**
- **Connectors service**

## Connections

- Public user → Chat interface: asks
- Chat interface → Chat API: submits query
- Chat API → Query handling: prepares query
- Chat API → Retrieval and grounding: requests answer
- Retrieval and grounding → Policy and pack search: retrieves evidence
- Policy and pack search → Authorised catalogue: searches pack
- Retrieval and grounding → Hybrid search: invokes optional search
- Hybrid search → Optional search store: queries extras
- Chat API → Optional xAI phrasing: requests phrasing
- Retrieval and grounding → Chat API: returns grounded result
- Chat API → Chat interface: returns answer or refusal
- Chat interface → Official BIS portals: offers official handoff
- Public user → Guided desks: selects guidance
- Public user → Product verification: opens verification
- Public user → Hallmark and HUID: checks hallmark
- Hallmark and HUID → HUID verification API: requests verification
- Public user → Lab lookup: looks up labs
- Lab lookup → Official BIS portals: links to LIMS scope
- Public user → Standards finder: finds standards
- Public user → Certification guidance: seeks certification steps
- Public user → Sign-in client: signs in
- Sign-in client → App authentication: authenticates
- App authentication → Connector access: authorizes app data
- Connector access → Connectors service: calls tools
