MCPcopy Create free account
hub / github.com/Noumena-Network/code / checkTokenBudget

Function checkTokenBudget

src/query/tokenBudget.ts:45–93  ·  view source on GitHub ↗
(
  tracker: BudgetTracker,
  agentId: string | undefined,
  budget: number | null,
  globalTurnTokens: number,
)

Source from the content-addressed store, hash-verified

43export type TokenBudgetDecision = ContinueDecision | StopDecision
44
45export function checkTokenBudget(
46 tracker: BudgetTracker,
47 agentId: string | undefined,
48 budget: number | null,
49 globalTurnTokens: number,
50): TokenBudgetDecision {
51 if (agentId || budget === null || budget <= 0) {
52 return { action: 'stop', completionEvent: null }
53 }
54
55 const turnTokens = globalTurnTokens
56 const pct = Math.round((turnTokens / budget) * 100)
57 const deltaSinceLastCheck = globalTurnTokens - tracker.lastGlobalTurnTokens
58
59 const isDiminishing =
60 tracker.continuationCount >= 3 &&
61 deltaSinceLastCheck < DIMINISHING_THRESHOLD &&
62 tracker.lastDeltaTokens < DIMINISHING_THRESHOLD
63
64 if (!isDiminishing && turnTokens < budget * COMPLETION_THRESHOLD) {
65 tracker.continuationCount++
66 tracker.lastDeltaTokens = deltaSinceLastCheck
67 tracker.lastGlobalTurnTokens = globalTurnTokens
68 return {
69 action: 'continue',
70 nudgeMessage: getBudgetContinuationMessage(pct, turnTokens, budget),
71 continuationCount: tracker.continuationCount,
72 pct,
73 turnTokens,
74 budget,
75 }
76 }
77
78 if (isDiminishing || tracker.continuationCount > 0) {
79 return {
80 action: 'stop',
81 completionEvent: {
82 continuationCount: tracker.continuationCount,
83 pct,
84 turnTokens,
85 budget,
86 diminishingReturns: isDiminishing,
87 durationMs: Date.now() - tracker.startedAt,
88 },
89 }
90 }
91
92 return { action: 'stop', completionEvent: null }
93}

Callers 2

queryLoopFunction · 0.85

Calls 1

Tested by

no test coverage detected