export type Role = "org_admin" | "dept_admin" | "team_lead" | "agent"; export interface Organization { id: string; name: string; } export interface Department { id: string; name: string; orgId: string; } export interface Team { id: string; name: string; deptId: string; } export interface Agent { id: string; name: string; roles: Role[]; } export interface Identity { id: string; agentId: string; deptId: string; teamId: string; meta: Record; } export interface Supervisor { agentId: string; supervisorId: string; } export interface SchemaField { type: "string"; queryable: boolean; } export interface YonexusSchema { [field: string]: SchemaField; } export interface StoreState { organizations: Organization[]; departments: Department[]; teams: Team[]; agents: Agent[]; identities: Identity[]; supervisors: Supervisor[]; } export interface Actor { agentId: string; } export type Action = | "create_department" | "create_team" | "register_agent" | "assign_identity" | "set_supervisor" | "query_agents"; export interface Scope { orgId?: string; deptId?: string; teamId?: string; } export interface QueryFilter { field: string; op: "eq" | "contains" | "regex"; value: string; } export interface QueryOptions { limit?: number; offset?: number; } export interface QueryInput { filters: QueryFilter[]; options?: QueryOptions; }