A test is a ci.splash beside what it tests; the script decides every input and the model only ever judges one picture against one acceptance text. mod.ci: launch (hidden, --remote, user_seq preserved), key, type_text, click, get, snap, wait_log (a * is a gap inside one line), no_errors, grab, quit; step, sleep, check, run; cargo, check_targets (the cargo makepad check matrix, check only for platforms we are not on, a test fails if the two tables drift), test, build, machine (another box over the makepad tunnel), exclusive; judge, accept, ask. The watcher polls git ls-remote once a minute for work and any extra branches, syncs a checkout the CI owns, runs the root script first and alone, then the rest up to a parallel limit behind one shared model judge. The window is a wall of squares, one per script: green passed, orange warnings, red failures, with a detail panel for the selected one. Scripts: the root ci.splash (workspace check with core warnings denied, the tests), apps/wm (desktop up, switch to macOS by Cmd+Space / type / Return, launch the terminal and the browser, each waited for by the WM's own first-frame line), and one per main app in the default shape. Proven here: apps/wm/ci.splash green in 280 s, fifteen target checks and seven vision verdicts. Models come from Hugging Face through the hub: registry entries qwen3.5-4b-vision and qwen3.5-9b-vision with exact revisions, sizes and digests, and hub-install, a command line over LocalModels::start_install. vlm-probe reads PNG. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
82 lines
2.1 KiB
TOML
82 lines
2.1 KiB
TOML
[package]
|
|
name = "makepad-ai-llm"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "GGUF LLM family (Qwen). Graph builders + Metal/CUDA exec. Was libs/llama (aiarch.md §1)."
|
|
license = "MIT"
|
|
|
|
[dependencies]
|
|
makepad-ai-loader = { path = "../loader" }
|
|
makepad-zune-png = { path = "../../zune/zune-png" }
|
|
# Bake the metallib at build time. Without this, MetalRuntime::new() compiles
|
|
# the 13k-line shader source on the GPU and can stall WindowServer.
|
|
makepad-ai-metal = { path = "../metal", features = ["metal-precompile"] }
|
|
|
|
# The CUDA executor (cuda_exec/real.rs) and its canary need the CUDA store;
|
|
# it is Linux/Windows-only, so a macOS build never compiles it.
|
|
[target.'cfg(any(target_os = "linux", target_os = "windows"))'.dependencies]
|
|
makepad-ai-cuda = { path = "../cuda" }
|
|
|
|
[[bin]]
|
|
name = "llama-load"
|
|
path = "src/bin/llama_load.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-load-time"
|
|
path = "src/bin/llama_load_time.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-graph-census"
|
|
path = "src/bin/llama_graph_census.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-cuda-canary"
|
|
path = "src/bin/llama_cuda_canary/main.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-compare"
|
|
path = "src/bin/llama_compare.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-generate"
|
|
path = "src/bin/llama_generate.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-tokenize"
|
|
path = "src/bin/llama_tokenize.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-slot-probe"
|
|
path = "src/bin/llama_slot_probe.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-lane-spec-probe"
|
|
path = "src/bin/llama_lane_spec_probe.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-batch-probe"
|
|
path = "src/bin/llama_batch_probe.rs"
|
|
|
|
# The decode column-cost curve: what an extra batch column actually costs,
|
|
# which is what sets how many chats one card can serve.
|
|
[[bin]]
|
|
name = "llama-batch-bench"
|
|
path = "src/bin/llama_batch_bench.rs"
|
|
|
|
[[bin]]
|
|
name = "vlm-vision-probe"
|
|
path = "src/bin/vlm_vision_probe.rs"
|
|
|
|
[[bin]]
|
|
name = "vlm-probe"
|
|
path = "src/bin/vlm_probe.rs"
|
|
|
|
# Batch executor for the asset-annotation pass (libs/asset/annotate): one
|
|
# resident model, many sheets, line-oriented job/result files.
|
|
[[bin]]
|
|
name = "vlm-annotate"
|
|
path = "src/bin/vlm_annotate.rs"
|
|
|
|
[[bin]]
|
|
name = "llama-reset-probe"
|
|
path = "src/bin/llama_reset_probe.rs"
|