agent-relay-server 0.70.0 → 0.70.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/context-advisory.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { deriveContextThresholdFromWindowTokens, resolveProviderContextThreshold, type ProviderModelCatalogEntry, type ResolvedProviderContextThreshold } from "agent-relay-sdk/provider-catalog";
|
|
1
|
+
import { deriveContextThresholdFromWindowTokens, findProviderCatalogModel, resolveProviderContextThreshold, type ProviderModelCatalogEntry, type ResolvedProviderContextThreshold } from "agent-relay-sdk/provider-catalog";
|
|
2
2
|
import { isRecord, SPAWN_PROVIDERS } from "agent-relay-sdk";
|
|
3
3
|
import { getConfig, getNotificationsConfig } from "./config-store";
|
|
4
4
|
import { DEFAULT_CONTEXT_THRESHOLD_CONFIG, validateContextThresholdConfig } from "./context-threshold-config";
|
|
@@ -132,10 +132,11 @@ export function handleContextPressure(input: {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
function effectiveContextThreshold(agent: AgentCard): EffectiveContextThreshold {
|
|
135
|
-
const
|
|
136
|
-
const windowTokens = model?.limits?.contextWindowTokens?.value
|
|
137
|
-
?? finiteNumber(agent.providerCapabilities?.context?.windowTokens)
|
|
135
|
+
const observedWindowTokens = finiteNumber(agent.providerCapabilities?.context?.windowTokens)
|
|
138
136
|
?? finiteNumber(agent.context?.tokensMax);
|
|
137
|
+
const model = findAgentCatalogModel(agent, observedWindowTokens);
|
|
138
|
+
const windowTokens = model?.limits?.contextWindowTokens?.value
|
|
139
|
+
?? observedWindowTokens;
|
|
139
140
|
if (model?.contextThreshold) {
|
|
140
141
|
return { ...resolveProviderContextThreshold(model), source: "model" };
|
|
141
142
|
}
|
|
@@ -157,16 +158,14 @@ function explicitContextThresholdConfig(): EffectiveContextThreshold | undefined
|
|
|
157
158
|
};
|
|
158
159
|
}
|
|
159
160
|
|
|
160
|
-
function findAgentCatalogModel(agent: AgentCard): ProviderModelCatalogEntry | undefined {
|
|
161
|
+
function findAgentCatalogModel(agent: AgentCard, observedWindowTokens: number | undefined): ProviderModelCatalogEntry | undefined {
|
|
161
162
|
const runtime = agent.providerCapabilities?.model;
|
|
162
163
|
const provider = runtime?.provider;
|
|
163
164
|
if (!provider || !(SPAWN_PROVIDERS as readonly string[]).includes(provider)) return undefined;
|
|
164
165
|
const catalog = effectiveProviderCatalogList().find((entry) => entry.provider === provider);
|
|
165
166
|
if (!catalog) return undefined;
|
|
166
167
|
const ids = [runtime.alias, runtime.id, runtime.providerModel].filter((value): value is string => Boolean(value));
|
|
167
|
-
|
|
168
|
-
return catalog.models.find((model) => ids.includes(model.alias) || ids.includes(model.providerModel))
|
|
169
|
-
?? catalog.models.find((model) => lowerIds.has(model.alias.toLowerCase()) || lowerIds.has(model.providerModel.toLowerCase()));
|
|
168
|
+
return findProviderCatalogModel(catalog, ids, { observedWindowTokens });
|
|
170
169
|
}
|
|
171
170
|
|
|
172
171
|
function clearContextAdvisory(context: ContextState): ContextState {
|