{"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-04T13:17:34.426Z","generatedAt":"2026-11-04T13:18:34.972Z","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 'grug-27b-v2.i1-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":"grug-27b-v2.i1-Q4_K_M.gguf","templateSha256":"cd6193bb4cdc3ee69abd2ae9e15dc05ec3b85a48d161a623bdaae54009c0f995","sha256":"7107d342097adb572b2628f48020c76663fe72bdf9746859ae2a65eb8eb4a237"},"guideCheckedAt":"2026-09-22","guideCheckedBy":"hugging-bay-docs","guideVersion":5},{"tool":"ollama","label":"Ollama","note":"Builds a local Ollama model named \"grug-27b-v2.i1-q4_k_m\" from the file (Ollama imports the file's embedded chat template) and starts a chat.","prefilledFrom":{"file":"grug-27b-v2.i1-Q4_K_M.gguf","templateSha256":"cd6193bb4cdc3ee69abd2ae9e15dc05ec3b85a48d161a623bdaae54009c0f995","sha256":"7107d342097adb572b2628f48020c76663fe72bdf9746859ae2a65eb8eb4a237"},"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":"grug-27b-v2.i1-Q4_K_M.gguf","templateSha256":"cd6193bb4cdc3ee69abd2ae9e15dc05ec3b85a48d161a623bdaae54009c0f995","sha256":"7107d342097adb572b2628f48020c76663fe72bdf9746859ae2a65eb8eb4a237"},"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(\"./grug-27b-v2.i1-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":"grug-27b-v2.i1-Q4_K_M.gguf","templateSha256":"cd6193bb4cdc3ee69abd2ae9e15dc05ec3b85a48d161a623bdaae54009c0f995","sha256":"7107d342097adb572b2628f48020c76663fe72bdf9746859ae2a65eb8eb4a237"},"guideCheckedAt":"2026-09-22","guideCheckedBy":"hugging-bay-docs","guideVersion":5}],"runBlockKind":"hosted-file-recipe","chatContract":{"available":true,"source":"gguf-metadata:tokenizer.chat_template","sourceFileSha256":"7107d342097adb572b2628f48020c76663fe72bdf9746859ae2a65eb8eb4a237","templateSha256":"cd6193bb4cdc3ee69abd2ae9e15dc05ec3b85a48d161a623bdaae54009c0f995","templateText":"{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- macro render_content(content, do_vision_count, is_system_content=false) %}\n    {%- if content is string %}\n        {{- content }}\n    {%- elif content is iterable and content is not mapping %}\n        {%- for item in content %}\n            {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}\n                {%- if is_system_content %}\n                    {{- raise_exception('System message cannot contain images.') }}\n                {%- endif %}\n                {%- if do_vision_count %}\n                    {%- set image_count.value = image_count.value + 1 %}\n                {%- endif %}\n                {%- if add_vision_id %}\n                    {{- 'Picture ' ~ image_count.value ~ ': ' }}\n                {%- endif %}\n                {{- '<|vision_start|><|image_pad|><|vision_end|>' }}\n            {%- elif 'video' in item or item.type == 'video' %}\n                {%- if is_system_content %}\n                    {{- raise_exception('System message cannot contain videos.') }}\n                {%- endif %}\n                {%- if do_vision_count %}\n                    {%- set video_count.value = video_count.value + 1 %}\n                {%- endif %}\n                {%- if add_vision_id %}\n                    {{- 'Video ' ~ video_count.value ~ ': ' }}\n                {%- endif %}\n                {{- '<|vision_start|><|video_pad|><|vision_end|>' }}\n            {%- elif 'text' in item %}\n                {{- item.text }}\n            {%- else %}\n                {{- raise_exception('Unexpected item type in content.') }}\n            {%- endif %}\n        {%- endfor %}\n    {%- elif content is none or content is undefined %}\n        {{- '' }}\n    {%- else %}\n        {{- raise_exception('Unexpected content type.') }}\n    {%- endif %}\n{%- endmacro %}\n{%- if not messages %}\n    {{- raise_exception('No messages provided.') }}\n{%- endif %}\n{%- set reasoning_instructions = '' %}\n{%- if enable_thinking is undefined or enable_thinking is true %}\n    {%- set resolved_reasoning_effort = reasoning_effort|default('medium') %}\n    {%- if resolved_reasoning_effort not in ('xhigh', 'medium', 'low') %}\n        {{- raise_exception('Unexpected reasoning effort ' ~ reasoning_effort ~ '. Supported types are xhigh (default), medium, and low.') }}\n    {%- endif %}\n    {%- if resolved_reasoning_effort == 'xhigh' %}\n        {%- set reasoning_instructions = 'Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.' %}\n    {%- elif resolved_reasoning_effort == 'low' %}\n        {%- set reasoning_instructions = 'Reasoning effort is set to low. Keep your thinking brief and focused, moving directly to the conclusion without unnecessary elaboration.' %}\n    {%- endif %}\n{%- endif %}\n{%- if tools and tools is iterable and tools is not mapping %}\n    {{- '<|im_start|>system\\n' }}\n    {%- if reasoning_instructions %}\n        {{- reasoning_instructions + '\\n\\n' }}\n    {%- endif %}\n    {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n<tools>\" }}\n    {%- for tool in tools %}\n        {{- \"\\n\" }}\n        {{- tool | tojson }}\n    {%- endfor %}\n    {{- \"\\n</tools>\" }}\n    {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n<tool_call>\\n<function=example_function_name>\\n<parameter=example_parameter_1>\\nvalue_1\\n</parameter>\\n<parameter=example_parameter_2>\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n</parameter>\\n</function>\\n</tool_call>\\n\\n<IMPORTANT>\\nReminder:\\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n</IMPORTANT>' }}\n    {%- if messages[0].role == 'system' %}\n        {%- set content = render_content(messages[0].content, false, true)|trim %}\n        {%- if content %}\n            {{- '\\n\\n' + content }}\n        {%- endif %}\n    {%- endif %}\n    {{- '<|im_end|>\\n' }}\n{%- else %}\n    {%- if messages[0].role == 'system' %}\n        {%- set content = render_content(messages[0].content, false, true)|trim %}\n        {%- if content %}\n            {{- '<|im_start|>system\\n' + (reasoning_instructions + '\\n\\n' if reasoning_instructions else '')  + content + '<|im_end|>\\n' }}\n        {%- elif reasoning_instructions %}\n            {{- '<|im_start|>system\\n' + reasoning_instructions + '<|im_end|>\\n' }}\n        {%- endif %}\n    {%- elif reasoning_instructions %}\n        {{- '<|im_start|>system\\n' + reasoning_instructions + '<|im_end|>\\n' }}\n    {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n    {%- set index = (messages|length - 1) - loop.index0 %}\n    {%- if ns.multi_step_tool and message.role == \"user\" %}\n        {%- set content = render_content(message.content, false)|trim %}\n        {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}\n            {%- set ns.multi_step_tool = false %}\n            {%- set ns.last_query_index = index %}\n        {%- endif %}\n    {%- endif %}\n{%- endfor %}\n{%- if ns.multi_step_tool %}\n    {{- raise_exception('No user query found in messages.') }}\n{%- endif %}\n{%- for message in messages %}\n    {%- set content = render_content(message.content, true)|trim %}\n    {%- if message.role == \"system\" %}\n        {%- if not loop.first %}\n            {{- raise_exception('System message must be at the beginning.') }}\n        {%- endif %}\n    {%- elif message.role == \"user\" %}\n        {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n    {%- elif message.role == \"assistant\" %}\n        {# grug_v2_reasoning_compatibility: accept structured or inline history once #}\n        {%- set reasoning_content = '' %}\n        {%- if message.reasoning_content is string %}\n            {%- set reasoning_content = message.reasoning_content %}\n        {%- elif message.reasoning is string %}\n            {%- set reasoning_content = message.reasoning %}\n        {%- endif %}\n        {%- if content.startswith('<think>') and '</think>' in content %}\n            {%- set inline_parts = content.split('</think>', 1) %}\n            {%- if not reasoning_content %}\n                {%- set reasoning_content = inline_parts[0][7:] %}\n            {%- endif %}\n            {%- set content = inline_parts[1]|trim %}\n        {%- endif %}\n        {%- set reasoning_content = reasoning_content|trim %}\n        {%- if preserve_thinking is undefined or preserve_thinking is true or loop.index0 > ns.last_query_index %}\n            {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content + '\\n</think>\\n\\n' + content }}\n        {%- else %}\n            {{- '<|im_start|>' + message.role + '\\n' + content }}\n        {%- endif %}\n        {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}\n            {%- for tool_call in message.tool_calls %}\n                {%- if tool_call.function is defined %}\n                    {%- set tool_call = tool_call.function %}\n                {%- endif %}\n                {%- if loop.first %}\n                    {%- if content|trim %}\n                        {{- '\\n\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n                    {%- else %}\n                        {{- '<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n                    {%- endif %}\n                {%- else %}\n                    {{- '\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n                {%- endif %}\n                {%- if tool_call.arguments is defined and tool_call.arguments != '' %}\n                    {%- for args_name, args_value in tool_call.arguments|items %}\n                        {{- '<parameter=' + args_name + '>\\n' }}\n                        {%- set args_value = args_value | string if args_value is string else args_value | tojson | safe %}\n                        {{- args_value }}\n                        {{- '\\n</parameter>\\n' }}\n                    {%- endfor %}\n                {%- endif %}\n                {{- '</function>\\n</tool_call>' }}\n            {%- endfor %}\n        {%- endif %}\n        {{- '<|im_end|>\\n' }}\n    {%- elif message.role == \"tool\" %}\n        {%- if loop.previtem and loop.previtem.role != \"tool\" %}\n            {{- '<|im_start|>user' }}\n        {%- endif %}\n        {{- '\\n<tool_response>\\n' }}\n        {{- content }}\n        {{- '\\n</tool_response>' }}\n        {%- if not loop.last and loop.nextitem.role != \"tool\" %}\n            {{- '<|im_end|>\\n' }}\n        {%- elif loop.last %}\n            {{- '<|im_end|>\\n' }}\n        {%- endif %}\n    {%- else %}\n        {{- raise_exception('Unexpected message role.') }}\n    {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n    {{- '<|im_start|>assistant\\n' }}\n    {%- if enable_thinking is defined and enable_thinking is false %}\n        {{- '<think>\\n\\n</think>\\n\\n' }}\n    {%- else %}\n        {{- '<think>\\n' }}\n    {%- endif %}\n{%- endif %}","extractedAt":"2026-09-24","extractionStage":"ingest.template-extract/v1","architecture":"qwen35","contextLength":262144,"stop":["<|im_end|>"],"thinking":{"mode":"delimited","open":"<think>","close":"</think>"}},"artifact":{"id":"hf-model-mradermacher-grug-27b-v2-i1-gguf","repo":"mradermacher/grug-27b-v2-i1-GGUF","type":"llm","summary":"Model from Hugging Face for llm: mradermacher/grug-27b-v2-i1-GGUF · transformers","license":"apache-2.0","hostingStatus":"hosted","hostedFileCount":1,"hostedFileCountAuthority":"live-serve-decision","displayFileCount":1,"fileCount":17,"upstreamUrl":"https://huggingface.co/mradermacher/grug-27b-v2-i1-GGUF"},"tool":"any","toolCompatibility":{"status":"unknown","reason":"recorded-evaluator-not-integrated"},"readiness":"unknown","requiredFiles":[{"path":".gitattributes","sizeBytes":2452,"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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"README.md","sizeBytes":4540,"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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-IQ3_M.gguf","sizeBytes":12768332704,"sha256":"b95ed6fda5c591c137c2e58a1866b5ea9098f099ade56cbbb453b03561268166","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-IQ3_S.gguf","sizeBytes":12602608544,"sha256":"aa2d2282fd0c77fe869e56a8eca627637a2882e128033100aa4d2e633147193d","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-IQ4_XS.gguf","sizeBytes":15309040544,"sha256":"d97d44fa7d23fa6465350a9e92b00b2f8f30619db00d47cb2b5325b0d55d861f","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q2_K.gguf","sizeBytes":10864593824,"sha256":"c8acb1afa3b8e4846bb81130d1c97256c4e4c699634311f5f40f9b38ab947111","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q3_K_L.gguf","sizeBytes":14559800224,"sha256":"37e5473724f5aeec9f6227f096cf3ddf90193a904b559375fc7a385729c36e76","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q3_K_M.gguf","sizeBytes":13500738464,"sha256":"d1e3295305393d0b47fcaee6d331ce68e26042d9a56d9c39d1825d918d89b8bb","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q3_K_S.gguf","sizeBytes":12256537504,"sha256":"7b47f4b3cd36a294773496394458a43b132750f5011d6c903f67753ead4e658b","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q4_0.gguf","sizeBytes":15760419744,"sha256":"533672bcaadf155a6c6fd812760a49ab91f019295d9f85ebfdae7ce057d0b1dc","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q4_1.gguf","sizeBytes":17343769504,"sha256":"bad019d31151d56936f8ddb57466e5ad6411be0f464d3334c24f2219d1944408","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q4_K_M.gguf","sizeBytes":16810716064,"sha256":"7107d342097adb572b2628f48020c76663fe72bdf9746859ae2a65eb8eb4a237","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-grug-27b-v2-i1-gguf/grug-27b-v2.i1-Q4_K_M.gguf","chatTemplate":{"artifactId":"hf-model-mradermacher-grug-27b-v2-i1-gguf","filePath":"grug-27b-v2.i1-Q4_K_M.gguf","sha256":"7107d342097adb572b2628f48020c76663fe72bdf9746859ae2a65eb8eb4a237","architecture":"qwen35","generalName":"Grug 27b v2","tokenizerModel":"gpt2","contextLength":262144,"bos":"<|endoftext|>","eos":"<|im_end|>","stop":["<|im_end|>"],"thinking":{"mode":"delimited","open":"<think>","close":"</think>"},"chatTemplate":"{%- set image_count = namespace(value=0) %}\n{%- set video_count = namespace(value=0) %}\n{%- macro render_content(content, do_vision_count, is_system_content=false) %}\n    {%- if content is string %}\n        {{- content }}\n    {%- elif content is iterable and content is not mapping %}\n        {%- for item in content %}\n            {%- if 'image' in item or 'image_url' in item or item.type == 'image' %}\n                {%- if is_system_content %}\n                    {{- raise_exception('System message cannot contain images.') }}\n                {%- endif %}\n                {%- if do_vision_count %}\n                    {%- set image_count.value = image_count.value + 1 %}\n                {%- endif %}\n                {%- if add_vision_id %}\n                    {{- 'Picture ' ~ image_count.value ~ ': ' }}\n                {%- endif %}\n                {{- '<|vision_start|><|image_pad|><|vision_end|>' }}\n            {%- elif 'video' in item or item.type == 'video' %}\n                {%- if is_system_content %}\n                    {{- raise_exception('System message cannot contain videos.') }}\n                {%- endif %}\n                {%- if do_vision_count %}\n                    {%- set video_count.value = video_count.value + 1 %}\n                {%- endif %}\n                {%- if add_vision_id %}\n                    {{- 'Video ' ~ video_count.value ~ ': ' }}\n                {%- endif %}\n                {{- '<|vision_start|><|video_pad|><|vision_end|>' }}\n            {%- elif 'text' in item %}\n                {{- item.text }}\n            {%- else %}\n                {{- raise_exception('Unexpected item type in content.') }}\n            {%- endif %}\n        {%- endfor %}\n    {%- elif content is none or content is undefined %}\n        {{- '' }}\n    {%- else %}\n        {{- raise_exception('Unexpected content type.') }}\n    {%- endif %}\n{%- endmacro %}\n{%- if not messages %}\n    {{- raise_exception('No messages provided.') }}\n{%- endif %}\n{%- set reasoning_instructions = '' %}\n{%- if enable_thinking is undefined or enable_thinking is true %}\n    {%- set resolved_reasoning_effort = reasoning_effort|default('medium') %}\n    {%- if resolved_reasoning_effort not in ('xhigh', 'medium', 'low') %}\n        {{- raise_exception('Unexpected reasoning effort ' ~ reasoning_effort ~ '. Supported types are xhigh (default), medium, and low.') }}\n    {%- endif %}\n    {%- if resolved_reasoning_effort == 'xhigh' %}\n        {%- set reasoning_instructions = 'Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.' %}\n    {%- elif resolved_reasoning_effort == 'low' %}\n        {%- set reasoning_instructions = 'Reasoning effort is set to low. Keep your thinking brief and focused, moving directly to the conclusion without unnecessary elaboration.' %}\n    {%- endif %}\n{%- endif %}\n{%- if tools and tools is iterable and tools is not mapping %}\n    {{- '<|im_start|>system\\n' }}\n    {%- if reasoning_instructions %}\n        {{- reasoning_instructions + '\\n\\n' }}\n    {%- endif %}\n    {{- \"# Tools\\n\\nYou have access to the following functions:\\n\\n<tools>\" }}\n    {%- for tool in tools %}\n        {{- \"\\n\" }}\n        {{- tool | tojson }}\n    {%- endfor %}\n    {{- \"\\n</tools>\" }}\n    {{- '\\n\\nIf you choose to call a function ONLY reply in the following format with NO suffix:\\n\\n<tool_call>\\n<function=example_function_name>\\n<parameter=example_parameter_1>\\nvalue_1\\n</parameter>\\n<parameter=example_parameter_2>\\nThis is the value for the second parameter\\nthat can span\\nmultiple lines\\n</parameter>\\n</function>\\n</tool_call>\\n\\n<IMPORTANT>\\nReminder:\\n- Function calls MUST follow the specified format: an inner <function=...></function> block must be nested within <tool_call></tool_call> XML tags\\n- Required parameters MUST be specified\\n- You may provide optional reasoning for your function call in natural language BEFORE the function call, but NOT after\\n- If there is no function call available, answer the question like normal with your current knowledge and do not tell the user about function calls\\n</IMPORTANT>' }}\n    {%- if messages[0].role == 'system' %}\n        {%- set content = render_content(messages[0].content, false, true)|trim %}\n        {%- if content %}\n            {{- '\\n\\n' + content }}\n        {%- endif %}\n    {%- endif %}\n    {{- '<|im_end|>\\n' }}\n{%- else %}\n    {%- if messages[0].role == 'system' %}\n        {%- set content = render_content(messages[0].content, false, true)|trim %}\n        {%- if content %}\n            {{- '<|im_start|>system\\n' + (reasoning_instructions + '\\n\\n' if reasoning_instructions else '')  + content + '<|im_end|>\\n' }}\n        {%- elif reasoning_instructions %}\n            {{- '<|im_start|>system\\n' + reasoning_instructions + '<|im_end|>\\n' }}\n        {%- endif %}\n    {%- elif reasoning_instructions %}\n        {{- '<|im_start|>system\\n' + reasoning_instructions + '<|im_end|>\\n' }}\n    {%- endif %}\n{%- endif %}\n{%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}\n{%- for message in messages[::-1] %}\n    {%- set index = (messages|length - 1) - loop.index0 %}\n    {%- if ns.multi_step_tool and message.role == \"user\" %}\n        {%- set content = render_content(message.content, false)|trim %}\n        {%- if not(content.startswith('<tool_response>') and content.endswith('</tool_response>')) %}\n            {%- set ns.multi_step_tool = false %}\n            {%- set ns.last_query_index = index %}\n        {%- endif %}\n    {%- endif %}\n{%- endfor %}\n{%- if ns.multi_step_tool %}\n    {{- raise_exception('No user query found in messages.') }}\n{%- endif %}\n{%- for message in messages %}\n    {%- set content = render_content(message.content, true)|trim %}\n    {%- if message.role == \"system\" %}\n        {%- if not loop.first %}\n            {{- raise_exception('System message must be at the beginning.') }}\n        {%- endif %}\n    {%- elif message.role == \"user\" %}\n        {{- '<|im_start|>' + message.role + '\\n' + content + '<|im_end|>' + '\\n' }}\n    {%- elif message.role == \"assistant\" %}\n        {# grug_v2_reasoning_compatibility: accept structured or inline history once #}\n        {%- set reasoning_content = '' %}\n        {%- if message.reasoning_content is string %}\n            {%- set reasoning_content = message.reasoning_content %}\n        {%- elif message.reasoning is string %}\n            {%- set reasoning_content = message.reasoning %}\n        {%- endif %}\n        {%- if content.startswith('<think>') and '</think>' in content %}\n            {%- set inline_parts = content.split('</think>', 1) %}\n            {%- if not reasoning_content %}\n                {%- set reasoning_content = inline_parts[0][7:] %}\n            {%- endif %}\n            {%- set content = inline_parts[1]|trim %}\n        {%- endif %}\n        {%- set reasoning_content = reasoning_content|trim %}\n        {%- if preserve_thinking is undefined or preserve_thinking is true or loop.index0 > ns.last_query_index %}\n            {{- '<|im_start|>' + message.role + '\\n<think>\\n' + reasoning_content + '\\n</think>\\n\\n' + content }}\n        {%- else %}\n            {{- '<|im_start|>' + message.role + '\\n' + content }}\n        {%- endif %}\n        {%- if message.tool_calls and message.tool_calls is iterable and message.tool_calls is not mapping %}\n            {%- for tool_call in message.tool_calls %}\n                {%- if tool_call.function is defined %}\n                    {%- set tool_call = tool_call.function %}\n                {%- endif %}\n                {%- if loop.first %}\n                    {%- if content|trim %}\n                        {{- '\\n\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n                    {%- else %}\n                        {{- '<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n                    {%- endif %}\n                {%- else %}\n                    {{- '\\n<tool_call>\\n<function=' + tool_call.name + '>\\n' }}\n                {%- endif %}\n                {%- if tool_call.arguments is defined and tool_call.arguments != '' %}\n                    {%- for args_name, args_value in tool_call.arguments|items %}\n                        {{- '<parameter=' + args_name + '>\\n' }}\n                        {%- set args_value = args_value | string if args_value is string else args_value | tojson | safe %}\n                        {{- args_value }}\n                        {{- '\\n</parameter>\\n' }}\n                    {%- endfor %}\n                {%- endif %}\n                {{- '</function>\\n</tool_call>' }}\n            {%- endfor %}\n        {%- endif %}\n        {{- '<|im_end|>\\n' }}\n    {%- elif message.role == \"tool\" %}\n        {%- if loop.previtem and loop.previtem.role != \"tool\" %}\n            {{- '<|im_start|>user' }}\n        {%- endif %}\n        {{- '\\n<tool_response>\\n' }}\n        {{- content }}\n        {{- '\\n</tool_response>' }}\n        {%- if not loop.last and loop.nextitem.role != \"tool\" %}\n            {{- '<|im_end|>\\n' }}\n        {%- elif loop.last %}\n            {{- '<|im_end|>\\n' }}\n        {%- endif %}\n    {%- else %}\n        {{- raise_exception('Unexpected message role.') }}\n    {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n    {{- '<|im_start|>assistant\\n' }}\n    {%- if enable_thinking is defined and enable_thinking is false %}\n        {{- '<think>\\n\\n</think>\\n\\n' }}\n    {%- else %}\n        {{- '<think>\\n' }}\n    {%- endif %}\n{%- endif %}","templateDigest":"sha256:cd6193bb4cdc3ee69abd2ae9e15dc05ec3b85a48d161a623bdaae54009c0f995","extractionReason":"embedded-template","extractorVersion":"hugging-bay.gguf-embedded-chat-contract.v1","extractedAt":"2026-09-24T05:01:46.956Z","hasEmbeddedTemplate":true},"serve_verdict":{"can_download":false,"bytes_verified":true,"signature":"unsigned","freshness":"stale","checked_at":null,"evidence_url":"/api/manifests/hf-model-mradermacher-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q4_K_S.gguf","sizeBytes":15825300384,"sha256":"c1c91756da3845f69c1a8ba122752684937f8ff79b24b6860f3f2872b8b7e3c9","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q5_K_M.gguf","sizeBytes":19535702944,"sha256":"afd27b4ef53b4dc71d483ae80a3806a455712f3dff4cf9f512bc13db28864e81","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q5_K_S.gguf","sizeBytes":18971683744,"sha256":"d1a65d3dee7ecf3511817acc3b5f90822835e7fa8acae0bfb1ee740370c32fee","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.i1-Q6_K.gguf","sizeBytes":22431001504,"sha256":"c4de9b2a1513b396e93ef07e0238e0accbb3f01a142f0ff0a2a1071e44dfce4b","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-grug-27b-v2-i1-gguf"},"signature_state":"unsigned"},{"path":"grug-27b-v2.imatrix.gguf","sizeBytes":13642624,"sha256":"4243ae034b57ef31730401ab684b057dd8672b3acd9756bee7b3527964c14730","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-grug-27b-v2-i1-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-grug-27b-v2-i1-gguf/bundle","method":"GET"},{"label":"List individually hashed hosted files","url":"https://huggingbay.xyz/api/downloadable-files?artifactId=hf-model-mradermacher-grug-27b-v2-i1-gguf&limit=100","method":"GET"},{"label":"Inspect trust bundle","url":"https://huggingbay.xyz/api/trust-bundles/hf-model-mradermacher-grug-27b-v2-i1-gguf","method":"GET"},{"label":"Open artifact","url":"https://huggingbay.xyz/artifact/hf-model-mradermacher-grug-27b-v2-i1-gguf","method":"GET"}],"docs":{"artifactUrl":"https://huggingbay.xyz/artifact/hf-model-mradermacher-grug-27b-v2-i1-gguf","downloadsUrl":"https://huggingbay.xyz/api/downloadable-files?artifactId=hf-model-mradermacher-grug-27b-v2-i1-gguf&limit=100","bundleUrl":"https://huggingbay.xyz/api/artifacts/hf-model-mradermacher-grug-27b-v2-i1-gguf/bundle","trustBundleUrl":"https://huggingbay.xyz/api/trust-bundles/hf-model-mradermacher-grug-27b-v2-i1-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-grug-27b-v2-i1-gguf"}}