pub struct RouteMetadata {
    pub method: &'static str,
    pub route_scope: &'static str,
    pub kind: &'static str,
    pub auth: &'static str,
    pub rpc_scope: &'static str,
    pub connection: &'static str,
    pub dependency: &'static str,
    pub event_method: Option<&'static str>,
    pub complete_method: Option<&'static str>,
    pub dedicated_request_id: Option<&'static str>,
}

pub const ROUTES: &[RouteMetadata] = &[
    RouteMetadata {
        method: "approval.answer",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "prompt_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "ask.answer",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "prompt_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "auth.completeBootstrap",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "none",
        connection: "unscoped_control",
        dependency: "auth_bootstrap",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "auth.getBootstrapStatus",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "none",
        connection: "unscoped_control",
        dependency: "auth_bootstrap",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "auth.getStatus",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "none",
        connection: "unscoped_control",
        dependency: "auth_status",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "process.inlineOutput",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "process_active_project",
        connection: "control",
        dependency: "process_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "process.kill",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "process_active_project",
        connection: "control",
        dependency: "process_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "process.list",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "process_list_active_project",
        connection: "control",
        dependency: "process_view",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "project.attach",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "attach_project",
        connection: "unscoped_control",
        dependency: "protocol",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "project.attachWorkspace",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "project_view",
        connection: "unscoped_control",
        dependency: "project_view",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "project.create",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "project_view",
        connection: "unscoped_control",
        dependency: "project_view",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "project.getOverview",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "project_view",
        connection: "unscoped_control",
        dependency: "project_view",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "project.planWorkspaceBinding",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "project_view",
        connection: "unscoped_control",
        dependency: "project_view",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "prompt.subscribeActivity",
        route_scope: "interactive_tui",
        kind: "subscription",
        auth: "server_auth",
        rpc_scope: "attached_session",
        connection: "subscription",
        dependency: "prompt_activity",
        event_method: Some("prompt.activity"),
        complete_method: Some("prompt.activity.complete"),
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "protocol.handshake",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "none",
        rpc_scope: "none",
        connection: "control",
        dependency: "protocol",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.appendCommittedEntry",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.compactContext",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "dedicated",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: Some("runtime-compact-context"),
    },
    RouteMetadata {
        method: "runtime.discardQueuedUserMessage",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.goal.clear",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "goal_session",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.goal.pause",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "goal_session",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.goal.resume",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "goal_session",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.goal.set",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "goal_session",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.goal.show",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "goal_session",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.hasQueuedUserWork",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.interrupt",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "dedicated",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: Some("runtime-interrupt"),
    },
    RouteMetadata {
        method: "runtime.queueUserMessage",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.recordPromptHistory",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.setAutoCompactionEnabled",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.setFastModeEnabled",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.setQuestionsEnabled",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.setReviewerEnabled",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.setSessionName",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.setThinkingLevel",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "runtime.submitQueuedUserMessages",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "dedicated",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: Some("runtime-submit-queued-user-messages"),
    },
    RouteMetadata {
        method: "runtime.submitUserShellCommand",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "dedicated",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: Some("runtime-submit-user-shell-command"),
    },
    RouteMetadata {
        method: "runtime.submitUserTurn",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "dedicated",
        dependency: "runtime_control",
        event_method: None,
        complete_method: None,
        dedicated_request_id: Some("runtime-submit-user-turn"),
    },
    RouteMetadata {
        method: "session.attach",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "attach_session",
        connection: "unscoped_control",
        dependency: "protocol",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.getCommittedTranscriptSuffix",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "session_view",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.getInitialInput",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "session_active_project_if_set",
        connection: "control",
        dependency: "session_lifecycle",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.getMainView",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "session_view",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.getTranscriptPage",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "pre_server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "session_view",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.persistInputDraft",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "session_lifecycle",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.plan",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "project_workspace",
        connection: "control",
        dependency: "session_launch",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.resolveTransition",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project_if_set",
        connection: "control",
        dependency: "session_lifecycle",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.retargetWorkspace",
        route_scope: "startup_project_binding",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_attached_project",
        connection: "unscoped_control",
        dependency: "session_lifecycle",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.runtime.activate",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "session_runtime",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.runtime.release",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "session_runtime",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "session.subscribeActivity",
        route_scope: "interactive_tui",
        kind: "subscription",
        auth: "server_auth",
        rpc_scope: "attached_session",
        connection: "subscription",
        dependency: "session_activity",
        event_method: Some("session.activity"),
        complete_method: Some("session.activity.complete"),
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "worktree.create",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "worktree",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "worktree.create_target.resolve",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "worktree",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "worktree.delete",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "worktree",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "worktree.list",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "worktree",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
    RouteMetadata {
        method: "worktree.switch",
        route_scope: "interactive_tui",
        kind: "unary",
        auth: "server_auth",
        rpc_scope: "session_active_project",
        connection: "control",
        dependency: "worktree",
        event_method: None,
        complete_method: None,
        dedicated_request_id: None,
    },
];

pub fn routes() -> &'static [RouteMetadata] {
    ROUTES
}
