options gen2
require daslib/fio

[export]
def initialize(project_path : string) {
    let dasllama_paths = [
        "dasllama_version", "dasllama_env", "dasllama_plane", "dasllama_config", "dasllama_par", "dasllama_parity", "dasllama_tune", "dasllama_tune_scope", "dasllama_kqformat", "dasllama_rope", "dasllama_gpu_tier", "dasllama_kv_codec", "dasllama_math", "dasllama_math_default", "dasllama_repack", "dasllama_math_aarch64_neon", "dasllama_math_gen", "dasllama_metal_gemm", "dasllama_math_vulkan", "dasllama_math_accelerate", "dasllama_kernel_access", "dasllama_vulkan_dispatch", "dasllama_metal_lens", "dasllama_metal_shapes", "dasllama_metal_common", "dasllama_metal_kernels", "dasllama_metal_prefill", "dasllama_metal_decode", "dasllama_metal_mtp_gemma", "dasllama_gemm_gen", "dasllama_gemm_register", "dasllama_gemm_schema", "dasllama_vulkan_common", "dasllama_vulkan_classes", "dasllama_vulkan_seams", "dasllama_vulkan_decode", "dasllama_vulkan_prefill", "dasllama_convert", "dasllama_gguf",
        "dasllama_unicode", "dasllama_pretok", "dasllama_tokenizer", "dasllama_spm", "dasllama_bpe", "dasllama_common", "dasllama_layout", "dasllama_gpu_resident", "dasllama_load", "dasllama_ple", "dasllama_sampling", "dasllama_blocks", "dasllama_moe", "dasllama_batch", "dasllama_mtp_gemma", "dasllama_attn_prefill", "dasllama_prefix", "dasllama_asr_types", "dasllama_tower", "dasllama_audio", "dasllama_audio_io", "dasllama_whisper", "dasllama_qwen3a", "dasllama_parakeet", "dasllama_canary", "dasllama_gemma4a", "dasllama_vad", "dasllama_asr", "dasllama_textnorm", "dasllama_postag", "dasllama_g2p", "dasllama_tts_types", "dasllama_tts_blocks", "dasllama_styletts2", "dasllama_kitten", "dasllama_kokoro", "dasllama_pocket", "dasllama_tts", "dasllama_vision", "dasllama_vision_io", "dasllama_gemma4uv", "dasllama_gemma4v", "dasllama_gemma3v", "dasllama_qwen3v", "dasllama_qwen25v", "dasllama_vision_embedder", "dasllama_audio_embedder", "dasllama_metal_tower", "dasllama_metal_asr_dec",
        "dasllama_arch_llama", "dasllama_arch_qwen2", "dasllama_arch_qwen3", "dasllama_arch_phi3", "dasllama_arch_gemma2", "dasllama_arch_gemma3", "dasllama_arch_gemma4", "dasllama_arch_qwen2moe", "dasllama_arch_qwen3moe", "dasllama_arch_qwen35", "dasllama_arch_gptoss", "dasllama_arch_mistral3", "dasllama_arch_glm4moe", "dasllama_image",
        "dasllama_transformer", "dasllama_tools", "dasllama_chat", "dasllama", "dasllama_scheduler", "dasllama_lint", "dasllama_exchange", "dasllama_exchange_schema", "dasllama_fat_start", "dasllama_bench"
    ]
    for (path in dasllama_paths) {
        register_native_path("dasllama", "{path}", "{project_path}/dasllama/{path}.das")
    }
    register_module_group("llvm_code_generator", "dasllama/dasllama_gemm_register")
}
