Expand description
Model resolution + connect-event + initialize-result mapping.
Mirrors the relevant portions of upstreamβs
agent-sdk/src/bridge/session_lifecycle.ts.
What lives here:
normalize_model_key+humanize_model_idmodel_keys_are_compatible/same_context_suffix/same_family_and_version/has_variant_sibling_conflictresolve_catalog_model/resolve_current_modelcurrent_model_is_authoritativecurrent_models_equal/refresh_current_modelmap_available_models(initialize-responsemodelsarray β typed)
What does NOT live here (despite upstream parking it in
session_lifecycle.ts): mode list logic (see commands.rs), MCP
reconciliation (see mcp.rs), AskUserQuestion sequencing (see
user_interaction.rs), the bulk of permission/elicitation routing.
Re-exportsΒ§
use serde_json::Value;πuse forge_primitives::AvailableModel;πuse forge_primitives::CurrentModel;πuse forge_primitives::EffortLevel;π
StructsΒ§
- Normalized
Model πKey
EnumsΒ§
- Model
Family π
ConstantsΒ§
- MAX_
MODEL_ πVERSION_ PARTS - OPUS_
MODEL_ πALIAS
FunctionsΒ§
- current_
model_ πis_ authoritative - family_
label π - format_
humanized π - has_
variant_ πsibling_ conflict - humanize_
model_ πid - map_
available_ models - Mirrors
mapAvailableModels(models)- initialize-responsemodelsarray β typedAvailableModel. Drops entries lacking a non-emptyvalueordisplayName. - model_
keys_ πare_ compatible - normalize_
model_ πkey - resolve_
catalog_ πmodel - resolve_
current_ model_ from_ inputs - Mirrors upstreamβs
resolveCurrentModel. Pure function on the sessionβs resolved/runtime/requested model strings + theavailable_modelscatalogue. Primitive-arg form - callers pass what they have; no session struct dependency. - same_
context_ πsuffix - same_
family_ πand_ version