@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
75 lines (74 loc) • 2.41 kB
TypeScript
/** Operator-configured proxy token caps. All caps are optional and disabled by default. */
export type ProxyTokenBudgetPolicy = {
/** Per-provider/account estimated outstanding input plus maximum output. */
maxInFlightTokens?: number;
/** Charged tokens in the account's fixed window, including outstanding reservations. */
accountWindowTokens?: number;
/** Charged tokens across providers/accounts sharing the same client session. */
sessionWindowTokens?: number;
windowMs?: number;
};
export type ProxyTokenBudgetReservation = {
provider: string;
accountKey: string;
sessionKey: string;
requestId: string;
reservationTokens: number;
policy?: ProxyTokenBudgetPolicy;
estimateProvenance?: string;
};
export type ProxyTokenBudgetSnapshot = {
scope: "disabled" | "process" | "supervisor";
reservationTokens: number;
accountChargedTokens: number;
accountInFlightTokens: number;
sessionChargedTokens: number;
sessionInFlightTokens: number;
windowMs: number;
estimateProvenance: string;
settlement?: "provider_reported" | "estimate_retained" | "cancelled_before_dispatch" | "unconfirmed";
};
export type ProxyTokenBudgetLease = {
leaseId: string;
snapshot: ProxyTokenBudgetSnapshot;
settle: (actualTotalTokens?: number) => Promise<void>;
cancelBeforeDispatch: () => Promise<void>;
};
export type ProxyTokenBudgetBucket = {
chargedTokens: number;
inFlightTokens: number;
startedAt: number;
windowMs: number;
lastTouched: number;
};
export type ProxyTokenBudgetRecord = {
owner: string;
accountKey: string;
sessionKey: string;
estimate: number;
snapshot: ProxyTokenBudgetSnapshot;
};
export type ProxyTokenBudgetRpcRequest = {
type: "proxy-budget:request";
rpcId: string;
pid: number;
generation: number;
action: "reserve" | "settle" | "cancel";
reservation?: ProxyTokenBudgetReservation;
leaseId?: string;
actualTotalTokens?: number;
};
export type ProxyTokenBudgetRpcResponse = {
type: "proxy-budget:response";
rpcId: string;
ok: boolean;
leaseId?: string;
snapshot?: ProxyTokenBudgetSnapshot;
errorCode?: string;
error?: string;
};
export type ProxyTokenBudgetRpcPending = {
resolve: (result: ProxyTokenBudgetRpcResponse) => void;
reject: (error: Error) => void;
timer: NodeJS.Timeout;
};