// vocabulary.mbt — LODY_TOOL_NAMES (upstream src/session.ts).
//
// Canonical identities for tool flows that Lody handles specially. Adapters
// map provider-native tool names onto these values; consumers must never
// infer behavior from human-readable tool titles (upstream README rule 8).
// Upstream defines no parameter/result DTOs for these tools: their only
// contract role is this identity vocabulary, so the mirror is constants
// plus membership — no schemas.

///|
/// Canonical wire identity of the image generation tool flow.
pub const LODY_TOOL_IMAGE_GENERATION : String = "ImageGeneration"

///|
/// Canonical wire identity of the cron-task creation tool flow.
pub const LODY_TOOL_CRON_CREATE : String = "CronCreate"

///|
/// Canonical wire identity of the cron-task deletion tool flow.
pub const LODY_TOOL_CRON_DELETE : String = "CronDelete"

///|
/// Canonical wire identity of the cron-task listing tool flow.
pub const LODY_TOOL_CRON_LIST : String = "CronList"

///|
/// Canonical wire identity of the wakeup scheduling tool flow.
pub const LODY_TOOL_SCHEDULE_WAKEUP : String = "ScheduleWakeup"

///|
/// True when `name` is one of the five canonical lody tool identities.
pub fn is_lody_tool_name(name : String) -> Bool {
  match name {
    "ImageGeneration"
    | "CronCreate"
    | "CronDelete"
    | "CronList"
    | "ScheduleWakeup" => true
    _ => false
  }
}

///|
/// All five canonical lody tool wire names, upstream declaration order.
pub fn lody_tool_names() -> Array[String] {
  [
    LODY_TOOL_IMAGE_GENERATION,
    LODY_TOOL_CRON_CREATE,
    LODY_TOOL_CRON_DELETE,
    LODY_TOOL_CRON_LIST,
    LODY_TOOL_SCHEDULE_WAKEUP,
  ]
}