{"serveDecision":{"state":"UNKNOWN","authority":"live-serve-decision"},"downloadable":null,"downloadReady":null,"degraded":false,"stale":false,"schemaVersion":"hugging-bay.local-kit.v2","displayOnly":true,"authorizationRequired":true,"eligibilitySnapshotAt":"2026-11-04T04:47:17.328Z","generatedAt":"2026-11-04T04:48:07.999Z","status":"runnable-bundle-recipe","commandsAvailable":true,"commands":[{"tool":"lm-studio","label":"LM Studio (no terminal)","kind":"gui-walkthrough","guiProven":false,"command":"Open LM Studio, then drag the downloaded 'kanana-1.5-8b-instruct-2505.Q4_K_M.gguf' into My Models to load it.","note":"A walk-through for your machine, not a checked run path — these steps are guidance, never a promise it will run. LM Studio's own UI takes it from there.","prefilledFrom":{"file":"kanana-1.5-8b-instruct-2505.Q4_K_M.gguf","templateSha256":"42745fb34df3e367eb6ba9e11e18475bef40f4f51270484a5cab7a42db6e6ebc","sha256":"81c75556562d83bae5ed417eb7a345c2c78c3fc8dce10d9880e8abbeb55edb35"},"guideCheckedAt":"2026-09-22","guideCheckedBy":"hugging-bay-docs","guideVersion":5},{"tool":"ollama","label":"Ollama","note":"Builds a local Ollama model named \"kanana-1.5-8b-instruct-2505.q4_k_m\" from the file (Ollama imports the file's embedded chat template) and starts a chat.","prefilledFrom":{"file":"kanana-1.5-8b-instruct-2505.Q4_K_M.gguf","templateSha256":"42745fb34df3e367eb6ba9e11e18475bef40f4f51270484a5cab7a42db6e6ebc","sha256":"81c75556562d83bae5ed417eb7a345c2c78c3fc8dce10d9880e8abbeb55edb35"},"guideCheckedAt":"2026-09-22","guideCheckedBy":"hugging-bay-docs","guideVersion":5},{"tool":"llama.cpp","label":"llama.cpp (terminal)","kind":"terminal","proven":true,"note":"Runs the file directly with llama.cpp's command-line tool. -st (--single-turn) runs one turn with the model's embedded chat template and exits — tested on llama.cpp b10964-b29c606e2. The old -no-cnv flag was removed and is rejected by current builds.","runner":{"name":"llama.cpp","testedBuild":"b10964-b29c606e2","singleTurnFlag":"-st"},"prefilledFrom":{"file":"kanana-1.5-8b-instruct-2505.Q4_K_M.gguf","templateSha256":"42745fb34df3e367eb6ba9e11e18475bef40f4f51270484a5cab7a42db6e6ebc","sha256":"81c75556562d83bae5ed417eb7a345c2c78c3fc8dce10d9880e8abbeb55edb35"},"guideCheckedAt":"2026-09-22","guideCheckedBy":"hugging-bay-docs","guideVersion":5},{"tool":"python","label":"Python (llama-cpp-python)","command":"pip install llama-cpp-python && python -c 'from llama_cpp import Llama; llm = Llama(\"./kanana-1.5-8b-instruct-2505.Q4_K_M.gguf\", n_ctx=8192); print(llm.create_chat_completion(messages=[{'\\''role'\\'': '\\''user'\\'', '\\''content'\\'': '\\''Hello!'\\''}])['\\''choices'\\''][0]['\\''message'\\'']['\\''content'\\''])'","note":"For scripting the model from Python; create_chat_completion applies the embedded chat template.","prefilledFrom":{"file":"kanana-1.5-8b-instruct-2505.Q4_K_M.gguf","templateSha256":"42745fb34df3e367eb6ba9e11e18475bef40f4f51270484a5cab7a42db6e6ebc","sha256":"81c75556562d83bae5ed417eb7a345c2c78c3fc8dce10d9880e8abbeb55edb35"},"guideCheckedAt":"2026-09-22","guideCheckedBy":"hugging-bay-docs","guideVersion":5}],"runBlockKind":"hosted-file-recipe","chatContract":{"available":true,"source":"gguf-metadata:tokenizer.chat_template","sourceFileSha256":"81c75556562d83bae5ed417eb7a345c2c78c3fc8dce10d9880e8abbeb55edb35","templateSha256":"42745fb34df3e367eb6ba9e11e18475bef40f4f51270484a5cab7a42db6e6ebc","templateText":"{# version=v3-llama3.1 #}{%- macro append_new_param_info(param_declaration, comment_info, examples_info, depth) -%}\n    {%- set offset = \"\" -%}\n    {%- if depth >= 1 -%}\n        {%- set offset = \"    \" * depth -%}\n    {%- endif -%}\n    {%- if comment_info != \"<|NONE|>\" -%}\n        {{ \"\\n\" + offset + comment_info }}\n        {%- if examples_info | length > 0 -%}\n            {# Append each example info #}\n            {%- for example in examples_info -%}\n                {{ \"\\n\" + offset + \"// \" + example|string|replace(\"'\", '\"') }}\n            {%- endfor -%}\n        {%- endif -%}\n    {%- endif -%}\n    {{ \"\\n\" + offset + param_declaration }}\n{%- endmacro -%}\n\n{%- macro convert_data_type(param_type) -%}\n    {%- if param_type == \"integer\" or param_type == \"float\" -%}\n        {{ \"number\" }}\n    {%- else -%}\n        {{ param_type }}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_param_type(param) -%}\n    {%- set param_type = \"any\" -%}\n\n    {%- if \"type\" in param -%}\n        {%- set raw_param_type = param[\"type\"] -%}\n        {%- if raw_param_type is iterable and raw_param_type is not string -%}\n            {%- set param_type = raw_param_type | join(\" | \") -%}\n        {%- else -%}\n            {%- set param_type = raw_param_type -%}\n        {%- endif -%}\n        {{ convert_data_type(param_type) }}\n    {%- elif \"oneOf\" in param -%}\n        {%- set one_of_types = param[\"oneOf\"]|selectattr(\"type\", \"defined\")|list -%}\n        {%- set one_of_types = one_of_types|map(attribute=\"type\")|unique|list -%}\n        {{ convert_data_type(one_of_types | join(\" | \")) }}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_format_param(param) -%}\n    {%- if \"format\" in param -%}\n        {{ param[\"format\"] }}\n    {%- elif \"oneOf\" in param -%}\n        {%- set formats = [] -%}\n        {%- for item in param[\"oneOf\"] -%}\n            {%- if \"format\" in item -%}\n                {%- if item[\"format\"] == param[\"oneOf\"][-1][\"format\"] -%}\n                    {{ item[\"format\"] }}\n                {%- else -%}\n                    {{ item[\"format\"] + \" or \"}}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endfor -%}\n    {%- else -%}\n        {{ \"<|NONE|>\" }}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_param_info(param) -%}\n    {%- set param_type = param.get(\"type\", \"any\") -%}\n    {%- set format_param = get_format_param(param) -%}\n\n    {%- if \"description\" in param or \"default\" in param or format_param != \"<|NONE|>\" or param[\"maximum\"] or param[\"minimum\"] or param[\"maxLength\"] or param[\"minLength\"] -%}\n        {{ \"//\" }}\n        {%- if \"description\" in param -%}\n            {%- set desc = param[\"description\"] -%}\n            {%- if not desc.endswith(\".\") -%}\n                {%- set desc = desc + \".\" -%}\n            {%- endif -%}\n            {{ \" \" + desc }}\n        {%- endif -%}\n\n        {%- if \"default\" in param -%}\n            {%- set default_value = param[\"default\"] -%}\n            {%- if param_type == \"string\" -%}\n                {%- set default_value = '\"' ~ default_value ~ '\"' -%}\n            {%- endif -%}\n            {{ \" Default=\" ~ default_value ~ \".\" }}\n        {%- endif -%}\n\n        {%- set format_param = get_format_param(param) -%}\n        {%- if format_param != \"<|NONE|>\" -%}\n            {{ \" Format=\" ~ format_param }}\n        {%- endif -%}\n\n        {%- for field, field_name in [(\"maximum\", \"Maximum\"), (\"minimum\", \"Minimum\"), (\"maxLength\", \"Maximum length\"), (\"minLength\", \"Minimum length\")] -%}\n            {%- if field in param -%}\n                {{ \" \" + field_name ~ \"=\" ~ param[field] }}\n            {%- endif -%}\n        {%- endfor -%}\n    {%- else -%}\n        {{ \"<|NONE|>\"}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_enum_option_str(enum_options) -%}\n    {%- for v in enum_options -%}\n        {%- if v is string -%}\n            {{ '\"' + v + '\"' }}\n        {%- else -%}\n            {{ v }}\n        {%- endif -%}\n        {%- if enum_options|length > 0 and v != enum_options[-1] -%}\n            {{ \" | \" }}\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro get_array_typescript(param_name, param_dic, depth) -%}\n    {%- set offset = '' -%}\n    {%- if depth >= 1 -%}\n        {%- set offset = \"    \" * depth -%}\n    {%- endif -%}\n    {%- set items_info = param_dic.get('items', {}) -%}\n\n    {%- if items_info|length == 0 -%}\n        {%- if param_name -%}\n            {{ \"\\n\" + offset + param_name + \": []\" }}\n        {%- else -%}\n            {{ \"\\n\" + offset + \"[]\" }}\n        {%- endif -%}\n    {%- else -%}\n        {%- set array_type = get_param_type(items_info) -%}\n        {%- if array_type == 'object' -%}\n            {%- if param_name -%}\n                {{ \"\\n\" + offset + param_name + \": {\" }}\n            {%- else -%}\n                {{ \"\\n\" + offset + \"{\" }}\n            {%- endif -%}\n            {{ get_parameter_typescript(items_info.get('properties', {}), items_info.get('required', []), depth + 1) -}}\n            {{- \"\\n\" + offset + \"}[]\" }}\n        {%- elif array_type == 'array' -%}\n            {%- set item_info = get_array_typescript(None, items_info, depth + 1) -%}\n            {%- if not param_name -%}\n                {{ \"\\n\" + item_info + \"[]\" }}\n            {%- else -%}\n                {{ \"\\n\" + offset + param_name + \": \" + item_info|trim + \"[]\" }}\n            {%- endif -%}\n        {%- else -%}\n            {%- if 'enum' in items_info -%}\n                {%- set item_type = get_enum_option_str(items_info['enum']) -%}\n                {%- if param_name is none -%}\n                    {{ \"(\" + item_type + \")[]\"}}\n                {%- else -%}\n                    {{ \"\\n\" + offset + param_name + \": (\" + item_type + \")[]\" }}\n                {%- endif -%}\n            {%- else -%}\n                {%- if param_name is none -%}\n                    {{ \"\\n\" + array_type + \"[]\" }}\n                {%- else -%}\n                    {{ \"\\n\" + offset + param_name + \": \" + array_type + \"[],\" }}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endif -%}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_parameter_typescript(properties, required_params, depth=0) -%}\n    {%- set res = \"\" -%}\n    {%- for param_name, param in properties.items() -%}\n        {%- if param is mapping -%}\n            {%- set comment_info = get_param_info(param) -%}\n            {# Param Examples #}\n            {%- set examples_info = [] -%}\n            {%- if \"examples\" in param -%}\n                {%- set examples_info = [\"Example \" + param_name + \":\"] -%}\n                {%- set examples_info = examples_info + param[\"examples\"] -%}\n            {%- endif -%}\n\n            {# Param Name declaration #}\n            {%- set param_declaration = param_name -%}\n            {%- if required_params is iterable and param_name not in required_params -%}\n                {%- set param_declaration = param_declaration + \"?\" -%}\n            {%- endif -%}\n\n            {%- set param_type = get_param_type(param) -%}\n\n            {# Handle indentation based on depth #}\n            {%- set offset = \"\" -%}\n            {%- if depth >= 1 -%}\n                {%- set offset = \"    \" * depth -%}\n            {%- endif -%}\n\n            {%- if param_type == \"object\" -%}\n                {%- if comment_info != \"<|NONE|>\" -%}\n                    {{ \"\\n\" + offset + comment_info }}\n                {%- endif -%}\n                {%- if examples_info|length > 0 -%}\n                    {%- for example in examples_info -%}\n                        {{ \"\\n\" + offset + \"// \" + example|string|replace(\"'\", '\"') }}\n                    {%- endfor -%}\n                {%- endif -%}\n                {%- set param_declaration = param_declaration + \": {\" -%}\n                {{ \"\\n\" + offset + param_declaration -}}\n                {{- get_parameter_typescript(param.get(\"properties\", {}), param.get(\"required\", []), depth + 1) -}}\n                {{- \"\\n\" + offset + \"},\" }}\n            {%- elif param_type == \"array\" -%}\n                {%- set item_info = param.get(\"items\", {}) -%}\n                {%- if \"type\" not in item_info -%}\n                    {%- set param_declaration = param_declaration + \": [],\" -%}\n                    {{ append_new_param_info(param_declaration, comment_info, examples_info, depth) }}\n                {%- else -%}\n                    {%- if comment_info != \"<|NONE|>\" -%}\n                        {{ \"\\n\" + offset + comment_info }}\n                    {%- endif -%}\n                    {%- if examples_info|length > 0 -%}\n                        {%- for example in examples_info -%}\n                            {{ \"\\n\" + offset + \"// \" + example|string|replace(\"'\", '\"') }}\n                        {%- endfor -%}\n                    {%- endif -%}\n                    {%- set array_declaration = get_array_typescript(param_declaration, param, depth) -%}\n                    {%- if not array_declaration.endswith(\",\") -%}\n                        {%- set array_declaration = array_declaration + \",\" -%}\n                    {%- endif -%}\n                    {{ array_declaration}}\n                {%- endif -%}\n            {%- else -%}\n                {%- if \"enum\" in param -%}\n                    {%- set param_type = get_enum_option_str(param[\"enum\"]) -%}\n                {%- endif -%}\n                {%- if \"nullable\" in param and param[\"nullable\"] -%}\n                    {%- set param_type = param_type + \" | null\" -%}\n                {%- endif -%}\n                {%- set param_declaration = param_declaration + \": \" + param_type + \",\" -%}\n                {{ append_new_param_info(param_declaration, comment_info, examples_info, depth) }}\n            {%- endif -%}\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro generate_schema_from_functions(functions, namespace='functions') -%}\n    {{ \"// Supported function definitions that should be called when necessary.\\n\" -}}\n    {{- \"namespace \" + namespace + \" {\\n\\n\" -}}\n\n    {%- for function in functions -%}\n        {%- if function.get(\"function\") -%}\n            {%- set function = function.get(\"function\") -%}\n        {%- endif -%}\n\n        {%- set function_name = function.get(\"name\") -%}\n        {%- if function_name -%}\n            {%- set description = function.get('description', '') -%}\n            {%- set parameters = function.get('parameters', {}) -%}\n            {{- \"// \" + description + \"\\n\" -}}\n            {{- \"type \" + function_name -}}\n            {%- if parameters and parameters.get(\"properties\") -%}\n                {{- \" = (_: {\" -}}\n                {%- set required_params = parameters.get(\"required\", []) -%}\n                {{ get_parameter_typescript(parameters.get(\"properties\"), required_params, 0) -}}\n                {{- \"\\n}) => any;\\n\\n\" }}\n            {%- else -%}\n                {{ \" = () => any;\\n\\n\" }}\n            {%- endif -%}\n        {%- endif -%}\n    {%- endfor -%}\n    {{ \"} // namespace \" + namespace }}\n{%- endmacro -%}\n{%- if not tools is defined -%}\n    {%- set tools = none -%}\n{%- endif -%}\n\n{%- set has_code_interpreter = tools | selectattr(\"type\", \"equalto\", \"code_interpreter\") | list | length > 0 -%}\n{%- if has_code_interpreter -%}\n    {%- set tools = tools | rejectattr(\"type\", \"equalto\", \"code_interpreter\") | list -%}\n{%- endif -%}\n\n{#- System message + builtin tools #}\n{{- bos_token + \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if has_code_interpreter %}\n    {{- \"Environment: ipython\\n\\n\" }}\n{%- else -%}\n    {{ \"\\n\"}}\n{%- endif %}\n{%- if tools %}\n    {{- \"\\nYou have access to the following functions:\\n\\n\" }}\n    {%- for t in tools %}\n        {%- if \"type\" in t -%}\n            {{ \"Use the function '\" + t[\"function\"][\"name\"] + \"' to '\" + t[\"function\"][\"description\"] + \"'\\n\" + t[\"function\"] | tojson() }}\n        {%- else -%}\n            {{ \"Use the function '\" + t[\"name\"] + \"' to '\" + t[\"description\"] + \"'\\n\" + t | tojson }}\n        {%- endif -%}\n        {{- \"\\n\\n\" }}\n    {%- endfor %}\n    {{- '\\nThink very carefully before calling functions.\\nIf a you choose to call a function ONLY reply in the following format:\\n<{start_tag}={function_name}>{parameters}{end_tag}\\nwhere\\n\\nstart_tag => `<function`\\nparameters => a JSON dict with the function argument name as key and function argument value as value.\\nend_tag => `</function>`\\n\\nHere is an example,\\n<function=example_function_name>{\"example_name\": \"example_value\"}</function>\\n\\nReminder:\\n- If looking for real time information use relevant functions before falling back to brave_search\\n- Function calls MUST follow the specified format, start with <function= and end with </function>\\n- Required parameters MUST be specified\\n- Only call one function at a time\\n- Put the entire function call reply on one line\\n\\n' -}}\n{%- endif %}\n{{- \"<|eot_id|>\" -}}\n\n{%- for message in messages -%}\n    {%- if message['role'] == 'user' or message['role'] == 'system' -%}\n        {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n' + message['content'] + '<|eot_id|>' }}\n    {%- elif message['role'] == 'tool' -%}\n        {{ '<|start_header_id|>ipython<|end_header_id|>\\n\\n' + message['content'] + '<|eot_id|>' }}\n    {%- else -%}\n        {%- if (message['content'] and message['content']|length > 0) or ('tool_calls' in message and message['tool_calls'] and message['tool_calls']|length > 0) -%}\n            {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'}}\n        {%- endif -%}\n        {%- if message['content'] and message['content']|length > 0 -%}\n            {{ message['content'] }}\n        {%- endif -%}\n        {%- if 'tool_calls' in message and message['tool_calls'] and message['tool_calls']|length > 0 -%}\n            {%- for tool_call in message['tool_calls'] -%}\n                {%- if tool_call[\"function\"][\"name\"] == \"python\" -%}\n                    {{ '<|python_tag|>' + tool_call['function']['arguments'] }}\n                {%- else -%}\n                    {{ '<function=' + tool_call['function']['name'] + '>' + tool_call['function']['arguments'] + '</function>' }}\n                {%- endif -%}\n            {%- endfor -%}\n            {{ '<|eom_id|>' }}\n        {%- elif message['content'] and message['content']|length > 0 -%}\n            {{ '<|eot_id|>' }}\n        {%- endif -%}\n    {%- endif -%}\n{%- endfor -%}\n{%- if add_generation_prompt -%}\n    {{ '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif -%}","extractedAt":"2026-09-24","extractionStage":"ingest.template-extract/v1","architecture":"llama","contextLength":32768,"stop":["<|eot_id|>"],"thinking":{"mode":"none"}},"artifact":{"id":"hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf","repo":"mradermacher/kanana-1.5-8b-instruct-2505-GGUF","type":"llm","summary":"Model from Hugging Face for llm: mradermacher/kanana-1.5-8b-instruct-2505-GGUF · transformers","license":"apache-2.0","hostingStatus":"hosted","hostedFileCount":1,"hostedFileCountAuthority":"live-serve-decision","displayFileCount":1,"fileCount":14,"upstreamUrl":"https://huggingface.co/mradermacher/kanana-1.5-8b-instruct-2505-GGUF"},"tool":"any","toolCompatibility":{"status":"unknown","reason":"recorded-evaluator-not-integrated"},"readiness":"unknown","requiredFiles":[{"path":".gitattributes","sizeBytes":2422,"sha256":"","format":"gitattributes","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":false,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"README.md","sizeBytes":3842,"sha256":"","format":"md","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":false,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.IQ4_XS.gguf","sizeBytes":4484394176,"sha256":"e19923bbb658aeb1362a7df2addd0c429998ebc75bcb297a7a10dc6a7aa790f7","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q2_K.gguf","sizeBytes":3179160320,"sha256":"a6f1f32cf5469d159033f0b4d859a1b54b903ba668d2a8322f9006bdabae9466","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q3_K_L.gguf","sizeBytes":4321986528,"sha256":"1f02976710e73f1a496f7d1b56f1cf5ed91e5e7c6a81bc4745b8e17c1bea6d3a","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q3_K_M.gguf","sizeBytes":4018948064,"sha256":"81c28e0fb162ddcd30574363429e10c1108bb4609bff7484a98fed3e9b71dc10","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q3_K_S.gguf","sizeBytes":3664529376,"sha256":"79a745cdfc8c3c22732ad3b4296e3c3ad5dd8f96da7132b25ac81affb7b7ad2f","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q4_K_M.gguf","sizeBytes":4920766016,"sha256":"81c75556562d83bae5ed417eb7a345c2c78c3fc8dce10d9880e8abbeb55edb35","format":"gguf","risk":"low","sourceKind":"mirrored-upstream","hosted":true,"readiness":"unknown","downloadReady":null,"reasonCodes":[],"reason":"Hosted on Hugging Bay and byte-verified — download is available now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":true,"serveDecision":{"state":"UNKNOWN","reasonCodes":[]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":"https://huggingbay.xyz/api/downloads/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf/kanana-1.5-8b-instruct-2505.Q4_K_M.gguf","chatTemplate":{"artifactId":"hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf","filePath":"kanana-1.5-8b-instruct-2505.Q4_K_M.gguf","sha256":"81c75556562d83bae5ed417eb7a345c2c78c3fc8dce10d9880e8abbeb55edb35","architecture":"llama","generalName":"Kanana 1.5 8b Instruct 2505","tokenizerModel":"gpt2","contextLength":32768,"bos":"<|begin_of_text|>","eos":"<|eot_id|>","stop":["<|eot_id|>"],"thinking":{"mode":"none"},"chatTemplate":"{# version=v3-llama3.1 #}{%- macro append_new_param_info(param_declaration, comment_info, examples_info, depth) -%}\n    {%- set offset = \"\" -%}\n    {%- if depth >= 1 -%}\n        {%- set offset = \"    \" * depth -%}\n    {%- endif -%}\n    {%- if comment_info != \"<|NONE|>\" -%}\n        {{ \"\\n\" + offset + comment_info }}\n        {%- if examples_info | length > 0 -%}\n            {# Append each example info #}\n            {%- for example in examples_info -%}\n                {{ \"\\n\" + offset + \"// \" + example|string|replace(\"'\", '\"') }}\n            {%- endfor -%}\n        {%- endif -%}\n    {%- endif -%}\n    {{ \"\\n\" + offset + param_declaration }}\n{%- endmacro -%}\n\n{%- macro convert_data_type(param_type) -%}\n    {%- if param_type == \"integer\" or param_type == \"float\" -%}\n        {{ \"number\" }}\n    {%- else -%}\n        {{ param_type }}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_param_type(param) -%}\n    {%- set param_type = \"any\" -%}\n\n    {%- if \"type\" in param -%}\n        {%- set raw_param_type = param[\"type\"] -%}\n        {%- if raw_param_type is iterable and raw_param_type is not string -%}\n            {%- set param_type = raw_param_type | join(\" | \") -%}\n        {%- else -%}\n            {%- set param_type = raw_param_type -%}\n        {%- endif -%}\n        {{ convert_data_type(param_type) }}\n    {%- elif \"oneOf\" in param -%}\n        {%- set one_of_types = param[\"oneOf\"]|selectattr(\"type\", \"defined\")|list -%}\n        {%- set one_of_types = one_of_types|map(attribute=\"type\")|unique|list -%}\n        {{ convert_data_type(one_of_types | join(\" | \")) }}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_format_param(param) -%}\n    {%- if \"format\" in param -%}\n        {{ param[\"format\"] }}\n    {%- elif \"oneOf\" in param -%}\n        {%- set formats = [] -%}\n        {%- for item in param[\"oneOf\"] -%}\n            {%- if \"format\" in item -%}\n                {%- if item[\"format\"] == param[\"oneOf\"][-1][\"format\"] -%}\n                    {{ item[\"format\"] }}\n                {%- else -%}\n                    {{ item[\"format\"] + \" or \"}}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endfor -%}\n    {%- else -%}\n        {{ \"<|NONE|>\" }}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_param_info(param) -%}\n    {%- set param_type = param.get(\"type\", \"any\") -%}\n    {%- set format_param = get_format_param(param) -%}\n\n    {%- if \"description\" in param or \"default\" in param or format_param != \"<|NONE|>\" or param[\"maximum\"] or param[\"minimum\"] or param[\"maxLength\"] or param[\"minLength\"] -%}\n        {{ \"//\" }}\n        {%- if \"description\" in param -%}\n            {%- set desc = param[\"description\"] -%}\n            {%- if not desc.endswith(\".\") -%}\n                {%- set desc = desc + \".\" -%}\n            {%- endif -%}\n            {{ \" \" + desc }}\n        {%- endif -%}\n\n        {%- if \"default\" in param -%}\n            {%- set default_value = param[\"default\"] -%}\n            {%- if param_type == \"string\" -%}\n                {%- set default_value = '\"' ~ default_value ~ '\"' -%}\n            {%- endif -%}\n            {{ \" Default=\" ~ default_value ~ \".\" }}\n        {%- endif -%}\n\n        {%- set format_param = get_format_param(param) -%}\n        {%- if format_param != \"<|NONE|>\" -%}\n            {{ \" Format=\" ~ format_param }}\n        {%- endif -%}\n\n        {%- for field, field_name in [(\"maximum\", \"Maximum\"), (\"minimum\", \"Minimum\"), (\"maxLength\", \"Maximum length\"), (\"minLength\", \"Minimum length\")] -%}\n            {%- if field in param -%}\n                {{ \" \" + field_name ~ \"=\" ~ param[field] }}\n            {%- endif -%}\n        {%- endfor -%}\n    {%- else -%}\n        {{ \"<|NONE|>\"}}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_enum_option_str(enum_options) -%}\n    {%- for v in enum_options -%}\n        {%- if v is string -%}\n            {{ '\"' + v + '\"' }}\n        {%- else -%}\n            {{ v }}\n        {%- endif -%}\n        {%- if enum_options|length > 0 and v != enum_options[-1] -%}\n            {{ \" | \" }}\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro get_array_typescript(param_name, param_dic, depth) -%}\n    {%- set offset = '' -%}\n    {%- if depth >= 1 -%}\n        {%- set offset = \"    \" * depth -%}\n    {%- endif -%}\n    {%- set items_info = param_dic.get('items', {}) -%}\n\n    {%- if items_info|length == 0 -%}\n        {%- if param_name -%}\n            {{ \"\\n\" + offset + param_name + \": []\" }}\n        {%- else -%}\n            {{ \"\\n\" + offset + \"[]\" }}\n        {%- endif -%}\n    {%- else -%}\n        {%- set array_type = get_param_type(items_info) -%}\n        {%- if array_type == 'object' -%}\n            {%- if param_name -%}\n                {{ \"\\n\" + offset + param_name + \": {\" }}\n            {%- else -%}\n                {{ \"\\n\" + offset + \"{\" }}\n            {%- endif -%}\n            {{ get_parameter_typescript(items_info.get('properties', {}), items_info.get('required', []), depth + 1) -}}\n            {{- \"\\n\" + offset + \"}[]\" }}\n        {%- elif array_type == 'array' -%}\n            {%- set item_info = get_array_typescript(None, items_info, depth + 1) -%}\n            {%- if not param_name -%}\n                {{ \"\\n\" + item_info + \"[]\" }}\n            {%- else -%}\n                {{ \"\\n\" + offset + param_name + \": \" + item_info|trim + \"[]\" }}\n            {%- endif -%}\n        {%- else -%}\n            {%- if 'enum' in items_info -%}\n                {%- set item_type = get_enum_option_str(items_info['enum']) -%}\n                {%- if param_name is none -%}\n                    {{ \"(\" + item_type + \")[]\"}}\n                {%- else -%}\n                    {{ \"\\n\" + offset + param_name + \": (\" + item_type + \")[]\" }}\n                {%- endif -%}\n            {%- else -%}\n                {%- if param_name is none -%}\n                    {{ \"\\n\" + array_type + \"[]\" }}\n                {%- else -%}\n                    {{ \"\\n\" + offset + param_name + \": \" + array_type + \"[],\" }}\n                {%- endif -%}\n            {%- endif -%}\n        {%- endif -%}\n    {%- endif -%}\n{%- endmacro -%}\n\n{%- macro get_parameter_typescript(properties, required_params, depth=0) -%}\n    {%- set res = \"\" -%}\n    {%- for param_name, param in properties.items() -%}\n        {%- if param is mapping -%}\n            {%- set comment_info = get_param_info(param) -%}\n            {# Param Examples #}\n            {%- set examples_info = [] -%}\n            {%- if \"examples\" in param -%}\n                {%- set examples_info = [\"Example \" + param_name + \":\"] -%}\n                {%- set examples_info = examples_info + param[\"examples\"] -%}\n            {%- endif -%}\n\n            {# Param Name declaration #}\n            {%- set param_declaration = param_name -%}\n            {%- if required_params is iterable and param_name not in required_params -%}\n                {%- set param_declaration = param_declaration + \"?\" -%}\n            {%- endif -%}\n\n            {%- set param_type = get_param_type(param) -%}\n\n            {# Handle indentation based on depth #}\n            {%- set offset = \"\" -%}\n            {%- if depth >= 1 -%}\n                {%- set offset = \"    \" * depth -%}\n            {%- endif -%}\n\n            {%- if param_type == \"object\" -%}\n                {%- if comment_info != \"<|NONE|>\" -%}\n                    {{ \"\\n\" + offset + comment_info }}\n                {%- endif -%}\n                {%- if examples_info|length > 0 -%}\n                    {%- for example in examples_info -%}\n                        {{ \"\\n\" + offset + \"// \" + example|string|replace(\"'\", '\"') }}\n                    {%- endfor -%}\n                {%- endif -%}\n                {%- set param_declaration = param_declaration + \": {\" -%}\n                {{ \"\\n\" + offset + param_declaration -}}\n                {{- get_parameter_typescript(param.get(\"properties\", {}), param.get(\"required\", []), depth + 1) -}}\n                {{- \"\\n\" + offset + \"},\" }}\n            {%- elif param_type == \"array\" -%}\n                {%- set item_info = param.get(\"items\", {}) -%}\n                {%- if \"type\" not in item_info -%}\n                    {%- set param_declaration = param_declaration + \": [],\" -%}\n                    {{ append_new_param_info(param_declaration, comment_info, examples_info, depth) }}\n                {%- else -%}\n                    {%- if comment_info != \"<|NONE|>\" -%}\n                        {{ \"\\n\" + offset + comment_info }}\n                    {%- endif -%}\n                    {%- if examples_info|length > 0 -%}\n                        {%- for example in examples_info -%}\n                            {{ \"\\n\" + offset + \"// \" + example|string|replace(\"'\", '\"') }}\n                        {%- endfor -%}\n                    {%- endif -%}\n                    {%- set array_declaration = get_array_typescript(param_declaration, param, depth) -%}\n                    {%- if not array_declaration.endswith(\",\") -%}\n                        {%- set array_declaration = array_declaration + \",\" -%}\n                    {%- endif -%}\n                    {{ array_declaration}}\n                {%- endif -%}\n            {%- else -%}\n                {%- if \"enum\" in param -%}\n                    {%- set param_type = get_enum_option_str(param[\"enum\"]) -%}\n                {%- endif -%}\n                {%- if \"nullable\" in param and param[\"nullable\"] -%}\n                    {%- set param_type = param_type + \" | null\" -%}\n                {%- endif -%}\n                {%- set param_declaration = param_declaration + \": \" + param_type + \",\" -%}\n                {{ append_new_param_info(param_declaration, comment_info, examples_info, depth) }}\n            {%- endif -%}\n        {%- endif -%}\n    {%- endfor -%}\n{%- endmacro -%}\n\n{%- macro generate_schema_from_functions(functions, namespace='functions') -%}\n    {{ \"// Supported function definitions that should be called when necessary.\\n\" -}}\n    {{- \"namespace \" + namespace + \" {\\n\\n\" -}}\n\n    {%- for function in functions -%}\n        {%- if function.get(\"function\") -%}\n            {%- set function = function.get(\"function\") -%}\n        {%- endif -%}\n\n        {%- set function_name = function.get(\"name\") -%}\n        {%- if function_name -%}\n            {%- set description = function.get('description', '') -%}\n            {%- set parameters = function.get('parameters', {}) -%}\n            {{- \"// \" + description + \"\\n\" -}}\n            {{- \"type \" + function_name -}}\n            {%- if parameters and parameters.get(\"properties\") -%}\n                {{- \" = (_: {\" -}}\n                {%- set required_params = parameters.get(\"required\", []) -%}\n                {{ get_parameter_typescript(parameters.get(\"properties\"), required_params, 0) -}}\n                {{- \"\\n}) => any;\\n\\n\" }}\n            {%- else -%}\n                {{ \" = () => any;\\n\\n\" }}\n            {%- endif -%}\n        {%- endif -%}\n    {%- endfor -%}\n    {{ \"} // namespace \" + namespace }}\n{%- endmacro -%}\n{%- if not tools is defined -%}\n    {%- set tools = none -%}\n{%- endif -%}\n\n{%- set has_code_interpreter = tools | selectattr(\"type\", \"equalto\", \"code_interpreter\") | list | length > 0 -%}\n{%- if has_code_interpreter -%}\n    {%- set tools = tools | rejectattr(\"type\", \"equalto\", \"code_interpreter\") | list -%}\n{%- endif -%}\n\n{#- System message + builtin tools #}\n{{- bos_token + \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if has_code_interpreter %}\n    {{- \"Environment: ipython\\n\\n\" }}\n{%- else -%}\n    {{ \"\\n\"}}\n{%- endif %}\n{%- if tools %}\n    {{- \"\\nYou have access to the following functions:\\n\\n\" }}\n    {%- for t in tools %}\n        {%- if \"type\" in t -%}\n            {{ \"Use the function '\" + t[\"function\"][\"name\"] + \"' to '\" + t[\"function\"][\"description\"] + \"'\\n\" + t[\"function\"] | tojson() }}\n        {%- else -%}\n            {{ \"Use the function '\" + t[\"name\"] + \"' to '\" + t[\"description\"] + \"'\\n\" + t | tojson }}\n        {%- endif -%}\n        {{- \"\\n\\n\" }}\n    {%- endfor %}\n    {{- '\\nThink very carefully before calling functions.\\nIf a you choose to call a function ONLY reply in the following format:\\n<{start_tag}={function_name}>{parameters}{end_tag}\\nwhere\\n\\nstart_tag => `<function`\\nparameters => a JSON dict with the function argument name as key and function argument value as value.\\nend_tag => `</function>`\\n\\nHere is an example,\\n<function=example_function_name>{\"example_name\": \"example_value\"}</function>\\n\\nReminder:\\n- If looking for real time information use relevant functions before falling back to brave_search\\n- Function calls MUST follow the specified format, start with <function= and end with </function>\\n- Required parameters MUST be specified\\n- Only call one function at a time\\n- Put the entire function call reply on one line\\n\\n' -}}\n{%- endif %}\n{{- \"<|eot_id|>\" -}}\n\n{%- for message in messages -%}\n    {%- if message['role'] == 'user' or message['role'] == 'system' -%}\n        {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n' + message['content'] + '<|eot_id|>' }}\n    {%- elif message['role'] == 'tool' -%}\n        {{ '<|start_header_id|>ipython<|end_header_id|>\\n\\n' + message['content'] + '<|eot_id|>' }}\n    {%- else -%}\n        {%- if (message['content'] and message['content']|length > 0) or ('tool_calls' in message and message['tool_calls'] and message['tool_calls']|length > 0) -%}\n            {{ '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'}}\n        {%- endif -%}\n        {%- if message['content'] and message['content']|length > 0 -%}\n            {{ message['content'] }}\n        {%- endif -%}\n        {%- if 'tool_calls' in message and message['tool_calls'] and message['tool_calls']|length > 0 -%}\n            {%- for tool_call in message['tool_calls'] -%}\n                {%- if tool_call[\"function\"][\"name\"] == \"python\" -%}\n                    {{ '<|python_tag|>' + tool_call['function']['arguments'] }}\n                {%- else -%}\n                    {{ '<function=' + tool_call['function']['name'] + '>' + tool_call['function']['arguments'] + '</function>' }}\n                {%- endif -%}\n            {%- endfor -%}\n            {{ '<|eom_id|>' }}\n        {%- elif message['content'] and message['content']|length > 0 -%}\n            {{ '<|eot_id|>' }}\n        {%- endif -%}\n    {%- endif -%}\n{%- endfor -%}\n{%- if add_generation_prompt -%}\n    {{ '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif -%}","templateDigest":"sha256:42745fb34df3e367eb6ba9e11e18475bef40f4f51270484a5cab7a42db6e6ebc","extractionReason":"embedded-template","extractorVersion":"hugging-bay.gguf-embedded-chat-contract.v1","extractedAt":"2026-09-24T04:39:13.579Z","hasEmbeddedTemplate":true},"serve_verdict":{"can_download":false,"bytes_verified":true,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q4_K_S.gguf","sizeBytes":4692700736,"sha256":"29ea1c839fdf5c26ab71b3bf7dc9741d3f13d0376fe89c174412da556af3db6d","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q5_K_M.gguf","sizeBytes":5733020736,"sha256":"05c64614c7afa74a7ca21e92c39625ca886bc6c89c4d3dd21579b6ce501d56a1","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q5_K_S.gguf","sizeBytes":5599327296,"sha256":"aec8a368c310bd9aa3cf0d7d77c55d317af254c1fa05625cc9b9ca4c77498474","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q6_K.gguf","sizeBytes":6596041376,"sha256":"c11f82ccfb63221629f04756c61d3731c9a8a510ece7382580dc1ae26fcfd85a","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.Q8_0.gguf","sizeBytes":8540811744,"sha256":"b5aed08d2586e9b938a5174032dbb6758f3cc848aea03e59ad99f0ceb7e55061","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"},{"path":"kanana-1.5-8b-instruct-2505.f16.gguf","sizeBytes":16068955104,"sha256":"3c2923fd354e36307b277ce9e06d167c2301089091cb7bf72ecd53db0a2a418a","format":"gguf","risk":"low","sourceKind":"external-hf","hosted":false,"readiness":"blocked","downloadReady":false,"reasonCodes":["NOT_SERVE_ELIGIBLE"],"reason":"This file is not available to download right now.","individuallyHashed":true,"fileOnly":true,"directDownloadAuthorized":false,"serveDecision":{"state":"BLOCKED","reasonCodes":["NOT_SERVE_ELIGIBLE"]},"downloadUrlResponse":{"status":302,"followRedirects":true},"downloadUrl":null,"chatTemplate":null,"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"signature_state":"unsigned"}],"warnings":["This description is temporarily unavailable."],"nextActions":[{"label":"Inspect recorded bundle state","url":"https://huggingbay.xyz/api/artifacts/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf/bundle","method":"GET"},{"label":"List individually hashed hosted files","url":"https://huggingbay.xyz/api/downloadable-files?artifactId=hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf&limit=100","method":"GET"},{"label":"Inspect trust bundle","url":"https://huggingbay.xyz/api/trust-bundles/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf","method":"GET"},{"label":"Open artifact","url":"https://huggingbay.xyz/artifact/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf","method":"GET"}],"docs":{"artifactUrl":"https://huggingbay.xyz/artifact/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf","downloadsUrl":"https://huggingbay.xyz/api/downloadable-files?artifactId=hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf&limit=100","bundleUrl":"https://huggingbay.xyz/api/artifacts/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf/bundle","trustBundleUrl":"https://huggingbay.xyz/api/trust-bundles/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"},"note":{"summary":"Downloadable doesn't mean tested: this record says whether the exact file can be downloaded now, not that the model is complete or that it runs.","downloadable":true},"serve_verdict":{"can_download":false,"bytes_verified":false,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-kanana-1-5-8b-instruct-2505-gguf"}}