// This file is generated by cpp/generate_glue_prototype.js
// Do not edit this file directly

import type { GlueMessageProto } from './glue';

export const GLUE_VERSION = 1;

export const GLUE_MESSAGE_PROTOTYPES: { [name: string]: GlueMessageProto } = {
  "erro_evt": {
    "name": "erro_evt",
    "structName": "glue_msg_error",
    "className": "GlueMsgError",
    "fields": [
      {
        "type": "str",
        "name": "message",
        "isNullable": false
      }
    ]
  },
  "load_req": {
    "name": "load_req",
    "structName": "glue_msg_load_req",
    "className": "GlueMsgLoadReq",
    "fields": [
      {
        "type": "arr_str",
        "name": "model_paths",
        "isNullable": false
      },
      {
        "type": "str",
        "name": "mmproj_path",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "n_ctx_auto",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "use_mmap",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "use_mlock",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_gpu_layers",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_ctx",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_threads",
        "isNullable": false
      },
      {
        "type": "str",
        "name": "model_alias",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "log_level",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "embeddings",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "offload_kqv",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "n_batch",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "n_ubatch",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "n_parallel",
        "isNullable": true
      },
      {
        "type": "str",
        "name": "pooling_type",
        "isNullable": true
      },
      {
        "type": "str",
        "name": "rope_scaling_type",
        "isNullable": true
      },
      {
        "type": "float",
        "name": "rope_freq_base",
        "isNullable": true
      },
      {
        "type": "float",
        "name": "rope_freq_scale",
        "isNullable": true
      },
      {
        "type": "float",
        "name": "yarn_ext_factor",
        "isNullable": true
      },
      {
        "type": "float",
        "name": "yarn_attn_factor",
        "isNullable": true
      },
      {
        "type": "float",
        "name": "yarn_beta_fast",
        "isNullable": true
      },
      {
        "type": "float",
        "name": "yarn_beta_slow",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "yarn_orig_ctx",
        "isNullable": true
      },
      {
        "type": "str",
        "name": "cache_type_k",
        "isNullable": true
      },
      {
        "type": "str",
        "name": "cache_type_v",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "kv_unified",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "flash_attn",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "swa_full",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "n_ctx_checkpoints",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "checkpoint_min_step",
        "isNullable": true
      },
      {
        "type": "str",
        "name": "chat_template",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "jinja",
        "isNullable": true
      },
      {
        "type": "arr_str",
        "name": "default_template_kwargs_keys",
        "isNullable": true
      },
      {
        "type": "arr_str",
        "name": "default_template_kwargs_vals",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "reasoning",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "image_min_tokens",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "image_max_tokens",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "warmup",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "no_kv_offload",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "mmproj_offload",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "cont_batching",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "n_keep",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "ctx_shift",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "cache_idle_slots",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "n_cache_reuse",
        "isNullable": true
      },
      {
        "type": "arr_str",
        "name": "lora_paths",
        "isNullable": true
      },
      {
        "type": "arr_float",
        "name": "lora_scales",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "lora_init_without_apply",
        "isNullable": true
      },
      {
        "type": "str",
        "name": "spec_draft_model",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "spec_draft_ngl",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "spec_draft_n_max",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "spec_draft_n_min",
        "isNullable": true
      },
      {
        "type": "float",
        "name": "spec_draft_p_min",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "spec_draft_threads",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "spec_draft_threads_batch",
        "isNullable": true
      },
      {
        "type": "arr_str",
        "name": "kv_overrides_keys",
        "isNullable": true
      },
      {
        "type": "arr_str",
        "name": "kv_overrides_vals",
        "isNullable": true
      },
      {
        "type": "int",
        "name": "reasoning_budget_tokens",
        "isNullable": true
      },
      {
        "type": "str",
        "name": "reasoning_budget_message",
        "isNullable": true
      },
      {
        "type": "str",
        "name": "reasoning_format",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "skip_chat_parsing",
        "isNullable": true
      },
      {
        "type": "bool",
        "name": "prefill_assistant",
        "isNullable": true
      }
    ]
  },
  "load_res": {
    "name": "load_res",
    "structName": "glue_msg_load_res",
    "className": "GlueMsgLoadRes",
    "fields": [
      {
        "type": "bool",
        "name": "success",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_ctx",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_batch",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_ubatch",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_vocab",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_ctx_train",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_embd",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "n_layer",
        "isNullable": false
      },
      {
        "type": "arr_str",
        "name": "metadata_key",
        "isNullable": false
      },
      {
        "type": "arr_str",
        "name": "metadata_val",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "token_bos",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "token_eos",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "token_eot",
        "isNullable": false
      },
      {
        "type": "arr_int",
        "name": "list_tokens_eog",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "add_bos_token",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "add_eos_token",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "has_encoder",
        "isNullable": false
      },
      {
        "type": "int",
        "name": "token_decoder_start",
        "isNullable": false
      },
      {
        "type": "str",
        "name": "media_marker",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "has_image_input",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "has_audio_input",
        "isNullable": false
      }
    ]
  },
  "cmpl_req": {
    "name": "cmpl_req",
    "structName": "glue_msg_completion_req",
    "className": "GlueMsgCompletionReq",
    "fields": [
      {
        "type": "bool",
        "name": "is_chat",
        "isNullable": false
      },
      {
        "type": "str",
        "name": "data_json",
        "isNullable": false
      },
      {
        "type": "arr_raw",
        "name": "files",
        "isNullable": false
      }
    ]
  },
  "cmpl_res": {
    "name": "cmpl_res",
    "structName": "glue_msg_completion_res",
    "className": "GlueMsgCompletionRes",
    "fields": [
      {
        "type": "bool",
        "name": "success",
        "isNullable": false
      }
    ]
  },
  "embd_req": {
    "name": "embd_req",
    "structName": "glue_msg_embedding_req",
    "className": "GlueMsgEmbeddingReq",
    "fields": [
      {
        "type": "str",
        "name": "data_json",
        "isNullable": false
      },
      {
        "type": "arr_raw",
        "name": "files",
        "isNullable": false
      }
    ]
  },
  "embd_res": {
    "name": "embd_res",
    "structName": "glue_msg_embedding_res",
    "className": "GlueMsgEmbeddingRes",
    "fields": [
      {
        "type": "bool",
        "name": "success",
        "isNullable": false
      }
    ]
  },
  "rrnk_req": {
    "name": "rrnk_req",
    "structName": "glue_msg_rerank_req",
    "className": "GlueMsgRerankReq",
    "fields": [
      {
        "type": "str",
        "name": "data_json",
        "isNullable": false
      }
    ]
  },
  "rrnk_res": {
    "name": "rrnk_res",
    "structName": "glue_msg_rerank_res",
    "className": "GlueMsgRerankRes",
    "fields": [
      {
        "type": "bool",
        "name": "success",
        "isNullable": false
      }
    ]
  },
  "gres_req": {
    "name": "gres_req",
    "structName": "glue_msg_get_result_req",
    "className": "GlueMsgGetResultReq",
    "fields": []
  },
  "gres_res": {
    "name": "gres_res",
    "structName": "glue_msg_get_result_res",
    "className": "GlueMsgGetResultRes",
    "fields": [
      {
        "type": "bool",
        "name": "success",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "has_more",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "is_error",
        "isNullable": false
      },
      {
        "type": "str",
        "name": "data_json",
        "isNullable": false
      }
    ]
  },
  "tbop_req": {
    "name": "tbop_req",
    "structName": "glue_msg_test_backend_ops_req",
    "className": "GlueMsgTestBackendOpsReq",
    "fields": [
      {
        "type": "arr_str",
        "name": "args",
        "isNullable": false
      }
    ]
  },
  "tbop_res": {
    "name": "tbop_res",
    "structName": "glue_msg_test_backend_ops_res",
    "className": "GlueMsgTestBackendOpsRes",
    "fields": [
      {
        "type": "int",
        "name": "retcode",
        "isNullable": false
      },
      {
        "type": "bool",
        "name": "success",
        "isNullable": false
      }
    ]
  }
};

// struct glue_msg_error
export interface GlueMsgError {
  _name: "erro_evt";
  message: string;
}

// struct glue_msg_load_req
export interface GlueMsgLoadReq {
  _name: "load_req";
  model_paths: string[];
  mmproj_path?: string | undefined;
  n_ctx_auto: boolean;
  use_mmap: boolean;
  use_mlock: boolean;
  n_gpu_layers: number;
  n_ctx: number;
  n_threads: number;
  model_alias?: string | undefined;
  log_level?: number | undefined;
  embeddings?: boolean | undefined;
  offload_kqv?: boolean | undefined;
  n_batch?: number | undefined;
  n_ubatch?: number | undefined;
  n_parallel?: number | undefined;
  pooling_type?: string | undefined;
  rope_scaling_type?: string | undefined;
  rope_freq_base?: number | undefined;
  rope_freq_scale?: number | undefined;
  yarn_ext_factor?: number | undefined;
  yarn_attn_factor?: number | undefined;
  yarn_beta_fast?: number | undefined;
  yarn_beta_slow?: number | undefined;
  yarn_orig_ctx?: number | undefined;
  cache_type_k?: string | undefined;
  cache_type_v?: string | undefined;
  kv_unified?: boolean | undefined;
  flash_attn?: boolean | undefined;
  swa_full?: boolean | undefined;
  n_ctx_checkpoints?: number | undefined;
  checkpoint_min_step?: number | undefined;
  chat_template?: string | undefined;
  jinja?: boolean | undefined;
  default_template_kwargs_keys?: string[] | undefined;
  default_template_kwargs_vals?: string[] | undefined;
  reasoning?: boolean | undefined;
  image_min_tokens?: number | undefined;
  image_max_tokens?: number | undefined;
  warmup?: boolean | undefined;
  no_kv_offload?: boolean | undefined;
  mmproj_offload?: boolean | undefined;
  cont_batching?: boolean | undefined;
  n_keep?: number | undefined;
  ctx_shift?: boolean | undefined;
  cache_idle_slots?: boolean | undefined;
  n_cache_reuse?: number | undefined;
  lora_paths?: string[] | undefined;
  lora_scales?: number[] | undefined;
  lora_init_without_apply?: boolean | undefined;
  spec_draft_model?: string | undefined;
  spec_draft_ngl?: number | undefined;
  spec_draft_n_max?: number | undefined;
  spec_draft_n_min?: number | undefined;
  spec_draft_p_min?: number | undefined;
  spec_draft_threads?: number | undefined;
  spec_draft_threads_batch?: number | undefined;
  kv_overrides_keys?: string[] | undefined;
  kv_overrides_vals?: string[] | undefined;
  reasoning_budget_tokens?: number | undefined;
  reasoning_budget_message?: string | undefined;
  reasoning_format?: string | undefined;
  skip_chat_parsing?: boolean | undefined;
  prefill_assistant?: boolean | undefined;
}

// struct glue_msg_load_res
export interface GlueMsgLoadRes {
  _name: "load_res";
  success: boolean;
  n_ctx: number;
  n_batch: number;
  n_ubatch: number;
  n_vocab: number;
  n_ctx_train: number;
  n_embd: number;
  n_layer: number;
  metadata_key: string[];
  metadata_val: string[];
  token_bos: number;
  token_eos: number;
  token_eot: number;
  list_tokens_eog: number[];
  add_bos_token: boolean;
  add_eos_token: boolean;
  has_encoder: boolean;
  token_decoder_start: number;
  media_marker: string;
  has_image_input: boolean;
  has_audio_input: boolean;
}

// struct glue_msg_completion_req
export interface GlueMsgCompletionReq {
  _name: "cmpl_req";
  is_chat: boolean;
  data_json: string;
  files: Uint8Array[];
}

// struct glue_msg_completion_res
export interface GlueMsgCompletionRes {
  _name: "cmpl_res";
  success: boolean;
}

// struct glue_msg_embedding_req
export interface GlueMsgEmbeddingReq {
  _name: "embd_req";
  data_json: string;
  files: Uint8Array[];
}

// struct glue_msg_embedding_res
export interface GlueMsgEmbeddingRes {
  _name: "embd_res";
  success: boolean;
}

// struct glue_msg_rerank_req
export interface GlueMsgRerankReq {
  _name: "rrnk_req";
  data_json: string;
}

// struct glue_msg_rerank_res
export interface GlueMsgRerankRes {
  _name: "rrnk_res";
  success: boolean;
}

// struct glue_msg_get_result_req
export interface GlueMsgGetResultReq {
  _name: "gres_req";
}

// struct glue_msg_get_result_res
export interface GlueMsgGetResultRes {
  _name: "gres_res";
  success: boolean;
  has_more: boolean;
  is_error: boolean;
  data_json: string;
}

// struct glue_msg_test_backend_ops_req
export interface GlueMsgTestBackendOpsReq {
  _name: "tbop_req";
  args: string[];
}

// struct glue_msg_test_backend_ops_res
export interface GlueMsgTestBackendOpsRes {
  _name: "tbop_res";
  retcode: number;
  success: boolean;
}


export type GlueMsg = GlueMsgError | GlueMsgLoadReq | GlueMsgLoadRes | GlueMsgCompletionReq | GlueMsgCompletionRes | GlueMsgEmbeddingReq | GlueMsgEmbeddingRes | GlueMsgRerankReq | GlueMsgRerankRes | GlueMsgGetResultReq | GlueMsgGetResultRes | GlueMsgTestBackendOpsReq | GlueMsgTestBackendOpsRes;
