aiwg
Version:
Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo
70 lines • 2.4 kB
JavaScript
/**
* Provider-neutral model-tier routing primitive.
*
* This is deliberately a policy decision helper, not a provider switcher.
* Callers use it to decide whether a task stays on the current/default
* model, escalates to a capable work tier, or requires explicit premium
* confirmation before routing.
*
* @implements #1185
*/
const RUNTIME_TO_MODEL_TIER = {
0: null,
1: 'standard',
2: 'premium',
3: 'max-quality',
};
function clampRuntimeTier(tier, fallback) {
return tier === 0 || tier === 1 || tier === 2 || tier === 3 ? tier : fallback;
}
export function routeModelTier(request = {}) {
const defaultTier = clampRuntimeTier(request.defaultTier, 1);
const maxAutoTier = clampRuntimeTier(request.maxAutoTier, request.unattended ? 1 : 2);
let tier = defaultTier;
let source = 'default';
const rationale = [];
if (request.deterministic) {
tier = 0;
source = 'deterministic';
rationale.push('deterministic tool/cache/existing answer is sufficient');
}
else if (request.requestedPremium) {
tier = 3;
source = 'request';
rationale.push('premium tier was explicitly requested');
}
else if (request.highImpact) {
tier = 3;
source = 'impact';
rationale.push('high-impact domain requires supervised premium routing');
}
else if (request.complex) {
tier = Math.max(defaultTier, 2);
source = 'complexity';
rationale.push('complex or multi-step work needs a capable work tier');
}
else if (request.routine) {
tier = Math.min(defaultTier, 1);
source = 'default';
rationale.push('routine work stays at the default/cheap tier');
}
else {
rationale.push('no escalation signal present');
}
const requiresConfirmation = tier === 3 || tier > maxAutoTier;
if (requiresConfirmation) {
rationale.push(tier === 3
? 'Tier 3 requires explicit human confirmation'
: `policy permits auto-routing only through Tier ${maxAutoTier}`);
}
const summaryRequired = tier > defaultTier;
return {
tier,
modelTier: RUNTIME_TO_MODEL_TIER[tier],
requiresConfirmation,
summaryRequired,
source: requiresConfirmation && tier > maxAutoTier ? 'policy' : source,
rationale,
};
}
//# sourceMappingURL=router.js.map