@kontextmind/kxm
Version:
KXM local-first multi-agent orchestration and operator dashboard
26 lines (25 loc) • 1.43 kB
text/typescript
export interface RosterRoute {
readonly harness: 'grok' | 'claude' | 'codex' | 'pi';
readonly model: string;
readonly vendor: string;
readonly roles: readonly string[];
readonly permissions: readonly ('read-only' | 'edit')[];
readonly status: 'admitted' | 'retired';
}
export interface RosterPolicy {
readonly routes: Readonly<Record<string, RosterRoute>>;
readonly lineup: Readonly<Record<string, readonly string[]>>;
readonly required_critics: Readonly<Record<'review-arch' | 'review-cli', string>>;
readonly model_origins: Readonly<Record<string, { readonly vendor: string; readonly evidence: { readonly source: string; readonly sha256: string } }>>;
}
export interface PolicyIdentity { readonly commit: string; readonly blob: string; readonly sha256: string }
export interface LoadedPolicy { readonly identity: PolicyIdentity; readonly policy: RosterPolicy }
export function refuseRetiredRosterFile(root: string): void;
export function loadTrustedRosterPolicy(): LoadedPolicy;
export function resolveBoundPolicy(identity: PolicyIdentity): LoadedPolicy;
export function canonicalVendor(value: string): string;
export function assembleRosterPolicy(models: readonly Record<string, unknown>[], roles: readonly Record<string, unknown>[]): RosterPolicy;
export function validateRosterDocument(
policy: RosterPolicy,
readBlob: (source: string) => string | Uint8Array | null | undefined,
): RosterPolicy;