resolveCliCompactionWiring function

CompactionHostWiring resolveCliCompactionWiring({
  1. required Model mainModel,
  2. required ModelRolesResolver? rolesResolver,
  3. required int? contextWindowCap,
  4. CompactionSettings? settingsOverride,
})

The CLI host path (what AgentCli resolves): the smol summarizer comes from the roles resolver (roles.smol chain with the main-model fallback as last resort), the cap from agent.contextWindowCap.

Throws exactly what ModelRolesResolver.resolveRole throws (a chain with no usable entry) — the CLI surfaces that as a loud compaction failure, same as before; call it after the shouldCompact gate.

Implementation

CompactionHostWiring resolveCliCompactionWiring({
  required Model mainModel,
  required ModelRolesResolver? rolesResolver,
  required int? contextWindowCap,
  CompactionSettings? settingsOverride,
}) {
  return resolveCompactionHostWiring(
    mainModel: mainModel,
    smolModel: rolesResolver?.resolveRole(smolModelRole)?.model,
    contextWindowCap: contextWindowCap,
    settingsOverride: settingsOverride,
  );
}