UNPKG

@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

54 lines (53 loc) • 1.96 kB
/** Explicit proxy context controls; all token quantities remain estimates. */ export type ProxyContextPolicy = { maxInputTokens?: number; outputReserveTokens?: number; enforceDiscoveredLimits?: boolean; toolAllowlist?: string[]; models?: Record<string, { contextWindow: number; maxOutputTokens?: number; /** Input estimate above which history is reduced. Bounds per-turn cost. */ compactAtTokens?: number; /** Input estimate to reduce to. Must be below compactAtTokens. */ compactToTokens?: number; }>; }; export type ProxyContextEvidence = { provider: string; model: string; inputTokensEstimate: number; toolsTokensEstimate: number; instructionsTokensEstimate: number; schemaTokensEstimate: number; outputTokensReserve: number; reasoningIncludedInOutputReserve: true; contextWindow?: number; contextLimitSource: "configured" | "discovered" | "unknown"; tokenCountSource: "estimated"; multimodalEstimate: boolean; originalToolCount: number; retainedToolCount: number; historyModified: boolean; /** Complete history units dropped by pre-dispatch truncation. */ historyUnitsRemoved?: number; /** Input estimate before truncation, when truncation ran. */ inputTokensBeforeTruncation?: number; }; export type ProxyPreparedContext<T> = { body: T; inputTokensEstimate: number; outputTokensReserve: number; totalTokensReservation: number; evidence: ProxyContextEvidence; }; /** Estimator injected into history truncation so it matches preflight accounting. */ export type ProxyHistoryEstimate = (value: unknown) => number; /** The history container a proxy body carries. */ export type ProxyHistoryField = "messages" | "input" | "conversationMessages"; export type ProxyHistoryTruncationResult<T> = { body: T; historyModified: boolean; unitsRemoved: number; itemsRemoved: number; };