Functions to calculate token limits and sampling parameters for AI models.
// Source: https://github.com/badlogic/pi-mono | License: MIT | Copyright 2025 Mario Zechner
// Provided via justclaw.it.com; keep this notice with the code.
import { clampThinkingLevel } from "../models.ts";
import type {
Api,
Model,
ModelThinkingLevel,
SamplingParams,
SimpleStreamOptions,
StreamOptions,
ThinkingBudgets,
ThinkingLevel,
TranscriptContext,
} from "../types.ts";
import { estimateContextTokens } from "../utils/estimate.ts";
const CONTEXT_SAFETY_TOKENS = 4096;
const MIN_MAX_TOKENS = 1;
export function clampMaxTokensToContext(model: Model<Api>, context: TranscriptContext, maxTokens: number): number {
if (model.contextWindow <= 0) return Math.max(MIN_MAX_TOKENS, maxTokens);
const available = model.contextWindow - estimateContextTokens(context).tokens - CONTEXT_SAFET
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search for more like it.
Get a free API key