π File detail
query/tokenBudget.ts
π§© .tsπ 94 linesπΎ 2,320 bytesπ text
β Back to All Filesπ― Use case
This file lives under βquery/β, which covers the query pipeline (budgets, hooks, engine config, stop conditions). On the API surface it exposes BudgetTracker, createBudgetTracker, TokenBudgetDecision, and checkTokenBudget β mainly functions, hooks, or classes. It composes internal code from utils (relative imports).
Generated from folder role, exports, dependency roots, and inline comments β not hand-reviewed for every path.
π§ Inline summary
import { getBudgetContinuationMessage } from '../utils/tokenBudget.js' const COMPLETION_THRESHOLD = 0.9 const DIMINISHING_THRESHOLD = 500
π€ Exports (heuristic)
BudgetTrackercreateBudgetTrackerTokenBudgetDecisioncheckTokenBudget
π₯οΈ Source preview
import { getBudgetContinuationMessage } from '../utils/tokenBudget.js'
const COMPLETION_THRESHOLD = 0.9
const DIMINISHING_THRESHOLD = 500
export type BudgetTracker = {
continuationCount: number
lastDeltaTokens: number
lastGlobalTurnTokens: number
startedAt: number
}
export function createBudgetTracker(): BudgetTracker {
return {
continuationCount: 0,
lastDeltaTokens: 0,
lastGlobalTurnTokens: 0,
startedAt: Date.now(),
}
}
type ContinueDecision = {
action: 'continue'
nudgeMessage: string
continuationCount: number
pct: number
turnTokens: number
budget: number
}
type StopDecision = {
action: 'stop'
completionEvent: {
continuationCount: number
pct: number
turnTokens: number
budget: number
diminishingReturns: boolean
durationMs: number
} | null
}
export type TokenBudgetDecision = ContinueDecision | StopDecision
export function checkTokenBudget(
tracker: BudgetTracker,
agentId: string | undefined,
budget: number | null,
globalTurnTokens: number,
): TokenBudgetDecision {
if (agentId || budget === null || budget <= 0) {
return { action: 'stop', completionEvent: null }
}
const turnTokens = globalTurnTokens
const pct = Math.round((turnTokens / budget) * 100)
const deltaSinceLastCheck = globalTurnTokens - tracker.lastGlobalTurnTokens
const isDiminishing =
tracker.continuationCount >= 3 &&
deltaSinceLastCheck < DIMINISHING_THRESHOLD &&
tracker.lastDeltaTokens < DIMINISHING_THRESHOLD
if (!isDiminishing && turnTokens < budget * COMPLETION_THRESHOLD) {
tracker.continuationCount++
tracker.lastDeltaTokens = deltaSinceLastCheck
tracker.lastGlobalTurnTokens = globalTurnTokens
return {
action: 'continue',
nudgeMessage: getBudgetContinuationMessage(pct, turnTokens, budget),
continuationCount: tracker.continuationCount,
pct,
turnTokens,
budget,
}
}
if (isDiminishing || tracker.continuationCount > 0) {
return {
action: 'stop',
completionEvent: {
continuationCount: tracker.continuationCount,
pct,
turnTokens,
budget,
diminishingReturns: isDiminishing,
durationMs: Date.now() - tracker.startedAt,
},
}
}
return { action: 'stop', completionEvent: null }
}