Skip to main content

Module session_lifecycle

Module session_lifecycle 

Source
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_id
  • model_keys_are_compatible / same_context_suffix / same_family_and_version / has_variant_sibling_conflict
  • resolve_catalog_model / resolve_current_model
  • current_model_is_authoritative
  • current_models_equal / refresh_current_model
  • map_available_models (initialize-response models array β†’ 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Β§

NormalizedModelKey πŸ”’

EnumsΒ§

ModelFamily πŸ”’

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-response models array β†’ typed AvailableModel. Drops entries lacking a non-empty value or displayName.
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 + the available_models catalogue. Primitive-arg form - callers pass what they have; no session struct dependency.
same_context_suffix πŸ”’
same_family_and_version πŸ”’