UNPKG

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
/** * 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