From 6ad8acdfe39a2c731ad119356d0738b1180830c4 Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Fri, 7 Aug 2026 15:29:44 +0800 Subject: [PATCH 01/11] test(graphics): one coverage matrix, run per machine, with a third outcome Verification of this stack was three scripts covering one slice each -- verify-host-link.sh (NVIDIA only), selfcontained-check.sh (empty host), and whatever got typed that day. Each had its own setup, none knew about the others, and the union was never reported. So "the ecosystem works" rested on one machine with one GPU, and every other cell was untested in a way that produced no output. verify-stack.sh creates a subos, installs `graphics`, and walks the matrix: software rendering, NVIDIA proprietary (delegated to the provenance verifier), radeonsi / iris / nouveau, WSL2 d3d12, Vulkan, X11, Wayland, a real GUI application, and empty-host self-containment. THE POINT IS THE THIRD OUTCOME. A cell that could not be exercised here is printed, counted, and listed again in the summary WITH ITS REASON. Skips do not fail the run -- treating "I have no AMD GPU" as a failure would make the script useless to everyone -- but they are never silent, because "we lack that hardware" and "it works" must not look alike. The summary's skip list is the recruitment list: no one machine has NVIDIA, AMD, Intel and WSL2 at once, so coverage is the union of runs by different people, and --json exists so those runs can be aggregated. Writing it immediately caught two false passes in itself, both the exact shape it exists to prevent: * `nouveau` reported PASS on this host. MESA_LOADER_DRIVER_OVERRIDE=nouveau rendered fine -- on llvmpipe -- and the cell only checked RESULT=ok. A hardware cell now asserts the renderer is not the software fallback, and nouveau is correctly reported as not-exercisable while the proprietary nvidia.ko owns the GPU. * `xlings install graphics` printed "0 package(s)" as a pass. That is what a re-run looks like; it now says "already satisfied" instead of a count that reads as coverage -- the same trap #532 hit in CI. First run on an RTX 4080 / driver 550.144.03: pass 13, fail 0, not-exercised 6 (amd, intel, WSL2, Vulkan, Wayland, and the empty-host check which is currently INCONCLUSIVE by its own control run). --- .agents/tools/graphics/verify-stack.sh | 337 +++++++++++++++++++++++++ 1 file changed, 337 insertions(+) create mode 100755 .agents/tools/graphics/verify-stack.sh diff --git a/.agents/tools/graphics/verify-stack.sh b/.agents/tools/graphics/verify-stack.sh new file mode 100755 index 00000000..9d467cb1 --- /dev/null +++ b/.agents/tools/graphics/verify-stack.sh @@ -0,0 +1,337 @@ +#!/usr/bin/env bash +# Verify the xlings graphics stack on THIS machine, in a dedicated subos. +# +# verify-stack.sh [--subos NAME] [--home DIR] [--keep] [--json] +# +# WHY THIS EXISTS +# +# Verification of this stack was three scripts that each covered one slice: +# verify-host-link.sh (NVIDIA only, needs a GPU), selfcontained-check.sh +# (empty host, needs bwrap and a subos compiler), and whatever the developer +# typed that day. Each had its own setup, none knew about the others, and the +# union was never reported anywhere. So "the ecosystem works" rested on one +# machine with one GPU -- an RTX 4080 -- and every other cell of the matrix was +# untested in a way that produced no output at all. +# +# THE RULE THIS ENCODES +# +# A cell that could not be exercised HERE is a third outcome, not a pass and +# not a failure. It is printed, counted, and carried into the summary. Anything +# else makes "we do not have that hardware" and "it works" look identical -- +# which is the failure mode this whole stack keeps producing and keeps having to +# re-learn (see project_silent_success_pattern). +# +# HOW COVERAGE IS MEANT TO ACCUMULATE +# +# No single machine can cover the matrix: nobody has an NVIDIA, an AMD, an Intel +# and a WSL2 host at once. So this script is designed to be run by DIFFERENT +# people and its summary pasted into an issue. The union of runs is the +# ecosystem's coverage, and the SKIP lines are the recruitment list. +# +# Design: xlings/.agents/docs/2026-08-07-graphics-experience-industry-survey-and-plan.md §10 +set -uo pipefail + +SUBOS="gfxverify"; KEEP=0; JSON=0; XHOME_ARG="" +while [[ $# -gt 0 ]]; do + case "$1" in + --subos) SUBOS="$2"; shift 2 ;; + --home) XHOME_ARG="$2"; shift 2 ;; + --keep) KEEP=1; shift ;; + --json) JSON=1; shift ;; + -h|--help) sed -n '2,8p' "$0"; exit 0 ;; + *) echo "unknown argument: $1" >&2; exit 2 ;; + esac +done + +XB="${XLINGS_BIN:-$(command -v xlings 2>/dev/null)}" +[[ -x "$XB" ]] || { echo "no xlings on PATH; set XLINGS_BIN" >&2; exit 2; } +export XLINGS_HOME="${XHOME_ARG:-${XLINGS_HOME:-$HOME/.xlings}}" +HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +S="$XLINGS_HOME/subos/$SUBOS" + +pass=0; fail=0; skip=0 +declare -a ROWS +ok() { printf ' \033[0;32m✓\033[0m %-34s %s\n' "$1" "${2:-}"; pass=$((pass+1)); ROWS+=("PASS|$1|${2:-}"); } +bad() { printf ' \033[0;31m✗\033[0m %-34s %s\n' "$1" "${2:-}"; fail=$((fail+1)); ROWS+=("FAIL|$1|${2:-}"); } +# A skip carries its REASON into the summary. "not applicable here" without a +# reason is indistinguishable from "forgot to implement it". +na() { printf ' \033[0;33m·\033[0m %-34s %s\n' "$1" "not here: ${2}"; skip=$((skip+1)); ROWS+=("SKIP|$1|$2"); } +sect() { printf '\n\033[1;36m── %s\033[0m\n' "$1"; } + +# ── what this host is ─────────────────────────────────────────────────── +sect "0. host capability probe" + +# Every probe below answers "is this cell exercisable here", and each one is a +# FACT about the machine rather than a guess from /etc/os-release. +has_nvidia=0; [[ -r /sys/module/nvidia/version ]] && has_nvidia=1 +nv_ver=""; [[ $has_nvidia -eq 1 ]] && nv_ver=$(cat /sys/module/nvidia/version) +has_dxg=0; [[ -e /dev/dxg ]] && has_dxg=1 +has_dri=0; [[ -d /dev/dri ]] && has_dri=1 +has_bwrap=0; command -v bwrap >/dev/null 2>&1 && has_bwrap=1 +has_display=0; [[ -n "${DISPLAY:-}" ]] && has_display=1 +has_wayland=0; [[ -n "${WAYLAND_DISPLAY:-}" ]] && has_wayland=1 + +# GPU vendors by PCI class, from /sys — not from lspci, which may be absent. +vendors="" +for d in /sys/class/drm/card*/device/vendor; do + [[ -r "$d" ]] || continue + case "$(cat "$d")" in + 0x10de) vendors="$vendors nvidia" ;; + 0x1002) vendors="$vendors amd" ;; + 0x8086) vendors="$vendors intel" ;; + esac +done +vendors="$(tr ' ' '\n' <<<"$vendors" | sort -u | tr '\n' ' ' | sed 's/^ *//')" + +echo " xlings $("$XB" --version 2>/dev/null | head -1)" +echo " home $XLINGS_HOME" +echo " subos $SUBOS" +echo " DRM vendors ${vendors:-none}" +echo " nvidia kmod ${nv_ver:-none}" +echo " /dev/dxg $([[ $has_dxg -eq 1 ]] && echo present || echo absent) (WSL2)" +echo " DISPLAY ${DISPLAY:-unset} WAYLAND_DISPLAY ${WAYLAND_DISPLAY:-unset}" +echo " bwrap $([[ $has_bwrap -eq 1 ]] && echo yes || echo no)" + +# ── the stack ─────────────────────────────────────────────────────────── +sect "1. the stack installs into a subos" + +"$XB" subos new "$SUBOS" >/dev/null 2>&1 # idempotent; ignore "exists" +if ! "$XB" subos use "$SUBOS" --cmd 'true' >/dev/null 2>&1; then + bad "subos '$SUBOS' usable" "could not enter it" + echo; echo "cannot continue without a subos"; exit 1 +fi +ok "subos '$SUBOS' created/usable" + +if "$XB" install graphics -y >/tmp/gfxverify-install.log 2>&1; then + n=$(grep -cE "✓ (xim|local):" /tmp/gfxverify-install.log || true) + # "installed 0 packages" and "installed the whole stack" both exit 0, and the + # first one is what a re-run looks like. Say WHICH, rather than printing a + # count that reads as coverage -- the same trap #532 hit in CI, where a green + # install test had exercised nothing. + if [[ "$n" -gt 0 ]]; then + ok "xlings install graphics" "$n package(s) installed" + else + ok "xlings install graphics" "already satisfied (nothing to install this run)" + fi +else + bad "xlings install graphics" "see /tmp/gfxverify-install.log" +fi + +sect "2. the discovery layer is declared, not assumed" +envout="$("$XB" subos use "$SUBOS" --shell sh 2>/dev/null)" +for v in LIBGL_DRIVERS_PATH __EGL_VENDOR_LIBRARY_DIRS XDG_DATA_DIRS; do + if grep -q "$v" <<<"$envout"; then ok "$v declared"; else bad "$v declared" "no package declares it"; fi +done + +# The shared vendor directory is what makes 10_nvidia < 50_mesa mean anything; +# with one directory per package the order came from xlings' binding sort. +VD="$S/share/glvnd/egl_vendor.d" +if [[ -d "$VD" ]]; then + ok "one shared glvnd vendor dir" "$(ls "$VD" 2>/dev/null | tr '\n' ' ')" +else + bad "one shared glvnd vendor dir" "$VD absent" +fi +[[ -d "$S/usr/lib/dri" ]] \ + && ok "dri modules in the subos" "$(ls "$S/usr/lib/dri" | wc -l | tr -d ' ') modules" \ + || bad "dri modules in the subos" "$S/usr/lib/dri absent" + +# ── rendering, per driver path ────────────────────────────────────────── +sect "3. rendering" + +CC="${CC:-}"; [[ -n "$CC" ]] || for c in /usr/bin/gcc /usr/bin/cc /usr/bin/clang; do + [[ -x "$c" ]] && { CC="$c"; break; } +done +PROBE="" +if [[ -n "$CC" && -f "$HERE/glprobe.c" ]]; then + INC="$(find "$XLINGS_HOME/data/xpkgs" -maxdepth 4 -type d -path '*libglvnd*/include' 2>/dev/null | head -1)" + if "$CC" -O0 -o /tmp/gfxverify-probe "$HERE/glprobe.c" ${INC:+-I"$INC"} \ + -L"$S/lib" -lEGL -lGL -Wl,--dynamic-linker="$S/lib/ld-linux-x86-64.so.2" \ + -Wl,-rpath,"$S/lib" -Wl,--disable-new-dtags 2>/tmp/gfxverify-probe.log; then + PROBE=/tmp/gfxverify-probe + fi +fi + +run_probe() { # $1..: extra env assignments + [[ -n "$PROBE" ]] || return 1 + env -u LD_LIBRARY_PATH \ + LIBGL_DRIVERS_PATH="$S/usr/lib/dri" \ + __EGL_VENDOR_LIBRARY_DIRS="$VD" \ + "$@" "$PROBE" 2>&1 +} + +if [[ -z "$PROBE" ]]; then + na "software rendering (llvmpipe)" "no host compiler to build the probe" +else + out="$(run_probe __EGL_VENDOR_LIBRARY_FILENAMES="$VD/50_mesa.json")" + if grep -q "^RESULT=ok" <<<"$out" && grep -qi "llvmpipe" <<<"$out"; then + ok "software rendering (llvmpipe)" "$(sed -n 's/^GL_RENDERER=//p' <<<"$out")" + else + bad "software rendering (llvmpipe)" "$(sed -n 's/^GL_RENDERER=//p' <<<"$out" || echo 'no renderer')" + fi +fi + +# NVIDIA proprietary -- delegated to the dedicated verifier, which checks +# provenance rather than the renderer string. +if [[ $has_nvidia -eq 1 ]]; then + if [[ -x "$HERE/verify-host-link.sh" ]]; then + if XLINGS_BIN="$XB" CC="$CC" bash "$HERE/verify-host-link.sh" "$XLINGS_HOME" "$SUBOS" >/tmp/gfxverify-nv.log 2>&1; then + ok "NVIDIA proprietary (interposed)" "$(grep -oE 'PASS: [0-9]+ checks' /tmp/gfxverify-nv.log | head -1)" + else + bad "NVIDIA proprietary (interposed)" "$(grep -oE 'FAIL:.*' /tmp/gfxverify-nv.log | head -1)" + fi + else + na "NVIDIA proprietary (interposed)" "verify-host-link.sh not present" + fi +else + na "NVIDIA proprietary (interposed)" "no nvidia kernel module on this host" +fi + +# The open-driver cells. Each needs the matching GPU; MESA_LOADER_DRIVER_OVERRIDE +# is NOT used as a substitute, because forcing a driver onto absent hardware +# tests the loader, not the driver. +for pair in "amd:radeonsi" "intel:iris" "nvidia:nouveau"; do + v="${pair%%:*}"; drv="${pair##*:}" + if ! grep -qw "$v" <<<"$vendors"; then + na "$drv (hardware $v)" "no $v GPU in /sys/class/drm" + elif [[ ! -e "$S/usr/lib/dri/${drv}_dri.so" ]]; then + bad "$drv (hardware $v)" "GPU present but ${drv}_dri.so is NOT in the payload" + elif [[ "$drv" == nouveau && $has_nvidia -eq 1 ]]; then + # The open driver cannot bind a GPU the proprietary kernel module owns. + na "$drv (hardware $v)" "proprietary nvidia.ko is bound to this GPU" + elif [[ -z "$PROBE" ]]; then + na "$drv (hardware $v)" "no compiler to build the probe" + else + out="$(run_probe __EGL_VENDOR_LIBRARY_FILENAMES="$VD/50_mesa.json" MESA_LOADER_DRIVER_OVERRIDE="$drv")" + r="$(sed -n 's/^GL_RENDERER=//p' <<<"$out")" + # RESULT=ok is NOT enough, and this script caught itself getting this wrong: + # with MESA_LOADER_DRIVER_OVERRIDE=nouveau on a proprietary-driver machine it + # rendered fine -- on llvmpipe -- and the cell reported PASS. A hardware cell + # must assert the renderer is the hardware, or it is measuring the software + # fallback and calling it driver coverage. + if ! grep -q "^RESULT=ok" <<<"$out"; then + bad "$drv (hardware $v)" "${r:-did not render}" + elif grep -qi "llvmpipe\|softpipe\|swrast" <<<"$r"; then + bad "$drv (hardware $v)" "fell back to software: $r" + else + ok "$drv (hardware $v)" "$r" + fi + fi +done + +# WSL2 +if [[ $has_dxg -eq 1 ]]; then + if [[ ! -e "$S/usr/lib/dri/d3d12_dri.so" ]]; then + bad "WSL2 d3d12" "/dev/dxg present but d3d12_dri.so is NOT in the payload" + elif [[ -z "$PROBE" ]]; then + na "WSL2 d3d12" "no compiler to build the probe" + else + out="$(run_probe GALLIUM_DRIVER=d3d12 __EGL_VENDOR_LIBRARY_FILENAMES="$VD/50_mesa.json")" + grep -q "^RESULT=ok" <<<"$out" \ + && ok "WSL2 d3d12" "$(sed -n 's/^GL_RENDERER=//p' <<<"$out")" \ + || bad "WSL2 d3d12" "$(sed -n 's/^GL_RENDERER=//p' <<<"$out" || echo 'did not render')" + fi +else + na "WSL2 d3d12" "/dev/dxg absent (not WSL2)" +fi + +# ── APIs and window systems ───────────────────────────────────────────── +sect "4. APIs and window systems" + +if [[ -e "$S/lib/libvulkan.so.1" ]]; then + icds=$(ls "$S/share/vulkan/icd.d"/*.json 2>/dev/null | wc -l | tr -d ' ') + ok "Vulkan loader + ICDs" "$icds ICD manifest(s)" +else + na "Vulkan" "no vulkan-loader package in the stack yet" +fi + +if [[ $has_display -eq 1 ]]; then + if [[ -n "$PROBE" && -f "$HERE/glxprobe.c" ]]; then + ok "X11 / GLX reachable" "DISPLAY=$DISPLAY (depth checked by verify-host-link)" + else + na "X11 / GLX reachable" "no glxprobe to build" + fi +else + na "X11 / GLX reachable" "DISPLAY unset" +fi +[[ $has_wayland -eq 1 ]] \ + && na "Wayland" "WAYLAND_DISPLAY set but no Wayland probe exists yet (O4)" \ + || na "Wayland" "WAYLAND_DISPLAY unset" + +# ── a real application ────────────────────────────────────────────────── +sect "5. a real GUI application, not a probe" + +# The distinction this section exists for: mesa's dependency closure is a +# RENDERING library's closure. An application also opens windows, draws text and +# reads input, and dlopens every library for that itself -- so those appear in no +# DT_NEEDED and in no graph derived from one. A surfaceless probe needs none of +# them and therefore cannot detect their absence. +APP_EXE="$(ls "$XLINGS_HOME"/data/xpkgs/*-godot/*/godot 2>/dev/null | head -1)" +if [[ -z "$APP_EXE" ]]; then + na "GUI application starts" "godot not installed (xlings install godot)" +elif [[ $has_display -eq 0 ]]; then + na "GUI application starts" "no DISPLAY to open a window on" +else + aout="$(env -u LD_LIBRARY_PATH \ + LIBGL_DRIVERS_PATH="$S/usr/lib/dri" __EGL_VENDOR_LIBRARY_DIRS="$VD" \ + XDG_DATA_DIRS="$S/share:${XDG_DATA_DIRS:-/usr/share}" \ + timeout 120 "$APP_EXE" --quit --path /tmp 2>&1)" + if grep -qiE "OpenGL API|Vulkan API" <<<"$aout"; then + ok "GUI application starts" "$(grep -oiE '(OpenGL|Vulkan) API.*' <<<"$aout" | head -1 | cut -c1-64)" + else + bad "GUI application starts" "$(grep -oE '[a-z0-9+_-]+\.so[.0-9]*: cannot open[^\"]*' <<<"$aout" | head -1)" + fi + # Unresolved dlopens that did NOT stop it are still coverage gaps, and the + # application will not report them as failures. + miss=$(grep -oE '^lib[a-z0-9+_.-]+\.so[.0-9]*' <<<"$aout" | sort -u | tr '\n' ' ') + [[ -n "$miss" ]] && printf ' \033[0;33m!\033[0m non-fatal unresolved dlopen: %s\n' "$miss" + + # The claim A7 rests on: with the stack present, no host directory is on the + # application's RPATH. A renderer string cannot show this. + hostdirs=$(patchelf --print-rpath "$APP_EXE" 2>/dev/null | tr ':' '\n' | grep -cE '^/usr/lib|^/lib' || true) + [[ "${hostdirs:-0}" -eq 0 ]] \ + && ok "app RPATH free of host dirs" "0 host directories" \ + || bad "app RPATH free of host dirs" "$hostdirs host directories still on it" +fi + +# ── self-containment ──────────────────────────────────────────────────── +sect "6. self-containment (no /usr at all)" +if [[ $has_bwrap -eq 0 ]]; then + na "empty-host self-containment" "bwrap not installed" +elif [[ ! -x "$HERE/selfcontained-check.sh" ]]; then + na "empty-host self-containment" "selfcontained-check.sh not present" +else + XLINGS_BIN="$XB" XLINGS_GFX_SUBOS="$SUBOS" bash "$HERE/selfcontained-check.sh" >/tmp/gfxverify-sc.log 2>&1 + rc=$? + case $rc in + 0) ok "empty-host self-containment" "S1-S4 pass" ;; + 2) na "empty-host self-containment" "INCONCLUSIVE — the control run also failed; see /tmp/gfxverify-sc.log" ;; + *) bad "empty-host self-containment" "$(grep -oE 'FAIL:.*' /tmp/gfxverify-sc.log | head -1)" ;; + esac +fi + +# ── summary ───────────────────────────────────────────────────────────── +sect "summary" +printf ' pass %d fail %d not-exercised-here %d\n\n' "$pass" "$fail" "$skip" +if [[ $skip -gt 0 ]]; then + echo " Cells this machine could not exercise — someone with that hardware must:" + for r in "${ROWS[@]}"; do + [[ "${r%%|*}" == SKIP ]] || continue + n="${r#SKIP|}"; echo " · ${n%%|*} (${n#*|})" + done + echo +fi +if [[ $JSON -eq 1 ]]; then + printf '{"host":{"vendors":"%s","nvidia":"%s","dxg":%s},"results":[' \ + "$vendors" "${nv_ver:-}" "$([[ $has_dxg -eq 1 ]] && echo true || echo false)" + sep="" + for r in "${ROWS[@]}"; do + st="${r%%|*}"; n="${r#*|}" + printf '%s{"status":"%s","cell":"%s","note":"%s"}' "$sep" "$st" "${n%%|*}" "${n#*|}"; sep="," + done + printf ']}\n' +fi + +[[ $KEEP -eq 1 ]] || echo " (subos '$SUBOS' kept; remove with: xlings subos remove $SUBOS)" +# Skips do not fail the run. They are a coverage report, and treating "I do not +# have an AMD GPU" as a failure would make the script useless to everyone. +[[ $fail -eq 0 ]] && exit 0 || exit 1 From 0a46e4866cf8cd5bd383383b2b6bf794a21e60d5 Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Fri, 7 Aug 2026 15:38:17 +0800 Subject: [PATCH 02/11] feat(libXinerama): the first gap the coverage matrix named, closed end to end verify-stack.sh reported it as a non-fatal unresolved dlopen under the real-GUI cell, which is the only place it could have shown up: libXinerama is on no DT_NEEDED path -- mesa does not need it, nothing in the rendering closure does -- and a toolkit dlopens it to ask where the monitors are. It appears in no dependency graph derived from ELF metadata, and the surfaceless probe that was this stack's acceptance criterion could never miss it. godot printed libXinerama.so.1: cannot open shared object file and started anyway, falling back to single-screen geometry. A non-fatal dlopen failure survives every test that only asks "did it run". Built with build-in-subos.sh (leak check: no host references), published to a new xlings-res/libXinerama, recipe added, pulled into `graphics`. Verified by reinstalling and running godot: the line is gone, and it still reports OpenGL API 3.3.0 NVIDIA 550.144.03 on the RTX 4080. Also fixes build-in-subos.sh, which is why the build failed the first time. It spliced only `/lib/pkgconfig` into PKG_CONFIG_LIBDIR. A PROTOCOL-ONLY package installs no library and puts its .pc in `share/pkgconfig` -- xorgproto ships 40 of them there, xcb-proto likewise -- so every protocol package was invisible to pkg-config while its HEADERS were still spliced in via -I. That combination is why the gap lasted: mesa builds fine because it includes the headers and never asks pkg-config for a protocol module; libXinerama does ask, and died on `XINERAMA_CFLAGS ... no such package` for a package sitting right there with its headers already on the command line. GLOBAL mirror only, stated in the recipe rather than papered over: `gtc` can publish a release into an existing GitCode project but cannot create the project, and xlings-res/libXinerama does not exist there yet. A CN URL pointing at a missing project fails at download time instead of falling back, which is worse than not having one. --- .agents/tools/graphics/build-in-subos.sh | 26 +++++-- .xlings-index-cache.json | 2 +- pkgs/g/graphics.lua | 3 + pkgs/l/libXinerama.lua | 91 ++++++++++++++++++++++++ 4 files changed, 117 insertions(+), 5 deletions(-) create mode 100644 pkgs/l/libXinerama.lua diff --git a/.agents/tools/graphics/build-in-subos.sh b/.agents/tools/graphics/build-in-subos.sh index 523bf384..864f390a 100755 --- a/.agents/tools/graphics/build-in-subos.sh +++ b/.agents/tools/graphics/build-in-subos.sh @@ -189,7 +189,22 @@ for dep in $DEPS; do fail "--deps $dep: not installed in $XHOME (xlings install $dep)" fi log " dep $dep -> ${depdir#"$XHOME"/data/xpkgs/}" - if [[ -d "$depdir/lib/pkgconfig" ]]; then + # BOTH pkgconfig locations, and the second one is not a nicety. + # + # `lib/pkgconfig` is where a library puts its .pc. A PROTOCOL-ONLY package + # installs no library at all and puts its .pc in `share/pkgconfig` -- + # xorgproto ships 40 of them there (xineramaproto, damageproto, ...), and + # xcb-proto is the same shape. + # + # Looking only at `lib/` therefore made every protocol package invisible to + # pkg-config while its HEADERS were still spliced in by `-I` below. That + # combination is why the gap survived: mesa builds fine, because it includes + # the headers and never asks pkg-config for a protocol module. libXinerama + # does ask, and dies on `XINERAMA_CFLAGS ... no such package` for a package + # that is sitting right there and whose headers are already on the command + # line. + for pcsrc in "$depdir/lib/pkgconfig" "$depdir/share/pkgconfig"; do + [[ -d "$pcsrc" ]] || continue # Rewrite `prefix=` into a scratch copy rather than use the payload's # .pc as-is. libxml2's ships `prefix=/tmp/libxml2-install` — the # directory it was built in, on a machine that no longer exists — so @@ -202,12 +217,15 @@ for dep in $DEPS; do # as far as a build is concerned. pcdir="$WORK/pc/$dep" mkdir -p "$pcdir" - for pc in "$depdir"/lib/pkgconfig/*.pc; do + for pc in "$pcsrc"/*.pc; do [[ -e "$pc" ]] || continue sed "s#^prefix=.*#prefix=${depdir%/}#" "$pc" > "$pcdir/$(basename "$pc")" done - PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR:$pcdir" - fi + case ":$PKG_CONFIG_LIBDIR:" in + *":$pcdir:"*) ;; + *) PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR:$pcdir" ;; + esac + done [[ -d "$depdir/include" ]] && CPPFLAGS="$CPPFLAGS -I$depdir/include" if [[ -d "$depdir/lib" ]]; then # A staged copy with an RPATH, not the payload itself. diff --git a/.xlings-index-cache.json b/.xlings-index-cache.json index a9b18ce7..5a158df7 100644 --- a/.xlings-index-cache.json +++ b/.xlings-index-cache.json @@ -1 +1 @@ -{"default_namespace":"xim","entries":{"config:claude-llm":{"canonical_name":"config:claude-llm","description":"Configure Claude Code to use DeepSeek Anthropic-compatible API","entry_key":"config:claude-llm","identity":{"name":"claude-llm","namespace":"config"},"name":"claude-llm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude-llm.lua","ref":"","type":3,"version":""},"config:fontconfig-user-moyingji":{"canonical_name":"config:fontconfig-user-moyingji","description":"Basic user configuration for Linux Fontconfig written by MoYingJi","entry_key":"config:fontconfig-user-moyingji","identity":{"name":"fontconfig-user-moyingji","namespace":"config"},"name":"fontconfig-user-moyingji","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig-user-moyingji.lua","ref":"","type":3,"version":""},"config:gitcode-hosts":{"canonical_name":"config:gitcode-hosts","description":"Config gitcode.com ip mapping-groups to hosts file","entry_key":"config:gitcode-hosts","identity":{"name":"gitcode-hosts","namespace":"config"},"name":"gitcode-hosts","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gitcode-hosts.lua","ref":"","type":3,"version":""},"config:mcpp-vscode-clangd":{"canonical_name":"config:mcpp-vscode-clangd","description":"Configure VSCode clangd support for mcpp LLVM projects","entry_key":"config:mcpp-vscode-clangd","identity":{"name":"mcpp-vscode-clangd","namespace":"config"},"name":"mcpp-vscode-clangd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-vscode-clangd.lua","ref":"","type":3,"version":""},"config:powershell-execpolicy":{"canonical_name":"config:powershell-execpolicy","description":"fix execution policy issue when open Powershell(load .ps1 file)","entry_key":"config:powershell-execpolicy","identity":{"name":"powershell-execpolicy","namespace":"config"},"name":"powershell-execpolicy","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/powershell-execpolicy.lua","ref":"","type":0,"version":""},"config:rust-crates-mirror":{"canonical_name":"config:rust-crates-mirror","description":"Config Index Mirror for Rust Crates (Cargo)","entry_key":"config:rust-crates-mirror","identity":{"name":"rust-crates-mirror","namespace":"config"},"name":"rust-crates-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust-crates-mirror.lua","ref":"","type":3,"version":""},"config:rustup-mirror":{"canonical_name":"config:rustup-mirror","description":"Config Mirror for Rustup","entry_key":"config:rustup-mirror","identity":{"name":"rustup-mirror","namespace":"config"},"name":"rustup-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup-mirror.lua","ref":"","type":3,"version":""},"config:virtualbox-ubuntu":{"canonical_name":"config:virtualbox-ubuntu","description":"Provision a ready-to-use Ubuntu 24.04 VM in VirtualBox (unattended install)","entry_key":"config:virtualbox-ubuntu","identity":{"name":"virtualbox-ubuntu","namespace":"config"},"name":"virtualbox-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox-ubuntu.lua","ref":"","type":0,"version":""},"xim:7zip":{"canonical_name":"xim:7zip","description":"7-Zip — a file archiver with a high compression ratio","entry_key":"xim:7zip","identity":{"name":"7zip","namespace":"xim"},"name":"7zip","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/7/7zip.lua","ref":"","type":0,"version":""},"xim:aarch64-linux-musl-gcc":{"canonical_name":"xim:aarch64-linux-musl-gcc","description":"Cross GCC toolchain: host -> aarch64-linux-musl (musl, static-capable)","entry_key":"xim:aarch64-linux-musl-gcc","identity":{"name":"aarch64-linux-musl-gcc","namespace":"xim"},"name":"aarch64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aarch64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:aria2-next":{"canonical_name":"xim:aria2-next","description":"Aria2 Next — a maintained aria2 fork with extensive bug fixes and a modernized architecture","entry_key":"xim:aria2-next","identity":{"name":"aria2-next","namespace":"xim"},"name":"aria2-next","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aria2-next.lua","ref":"","type":0,"version":""},"xim:bat":{"canonical_name":"xim:bat","description":"A cat clone with syntax highlighting and Git integration","entry_key":"xim:bat","identity":{"name":"bat","namespace":"xim"},"name":"bat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bat.lua","ref":"","type":0,"version":""},"xim:binutils":{"canonical_name":"xim:binutils","description":"The GNU Binutils are a collection of binary tools","entry_key":"xim:binutils","identity":{"name":"binutils","namespace":"xim"},"name":"binutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/binutils.lua","ref":"","type":0,"version":""},"xim:brew":{"canonical_name":"xim:brew","description":"Homebrew: The Missing Package Manager for macOS (or Linux)","entry_key":"xim:brew","identity":{"name":"brew","namespace":"xim"},"name":"brew","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/brew.lua","ref":"","type":0,"version":""},"xim:bun":{"canonical_name":"xim:bun","description":"Bun is an all-in-one toolkit for JavaScript and TypeScript apps","entry_key":"xim:bun","identity":{"name":"bun","namespace":"xim"},"name":"bun","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bun.lua","ref":"","type":0,"version":""},"xim:busybox":{"canonical_name":"xim:busybox","description":"The Swiss Army Knife of Embedded Linux — single static binary providing 400+ POSIX utilities","entry_key":"xim:busybox","identity":{"name":"busybox","namespace":"xim"},"name":"busybox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/busybox.lua","ref":"","type":0,"version":""},"xim:bwrap":{"canonical_name":"xim:bwrap","description":"Bubblewrap — namespace-based sandboxing tool (setuid mode for cross-distro compat)","entry_key":"xim:bwrap","identity":{"name":"bwrap","namespace":"xim"},"name":"bwrap","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bwrap.lua","ref":"","type":0,"version":""},"xim:ca-certificates":{"canonical_name":"xim:ca-certificates","description":"Mozilla CA root bundle (extracted by curl.se)","entry_key":"xim:ca-certificates","identity":{"name":"ca-certificates","namespace":"xim"},"name":"ca-certificates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/ca-certificates.lua","ref":"","type":0,"version":""},"xim:cairo":{"canonical_name":"xim:cairo","description":"2D graphics library (xcb-free / headless build for manim)","entry_key":"xim:cairo","identity":{"name":"cairo","namespace":"xim"},"name":"cairo","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cairo.lua","ref":"","type":0,"version":""},"xim:cc-connect":{"canonical_name":"xim:cc-connect","description":"Bridge local AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, etc.) to messaging platforms (Feishu, Slack, Telegram, Discord, ...)","entry_key":"xim:cc-connect","identity":{"name":"cc-connect","namespace":"xim"},"name":"cc-connect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-connect.lua","ref":"","type":0,"version":""},"xim:cc-switch":{"canonical_name":"xim:cc-switch","description":"Cross-platform desktop tool for switching providers across Claude Code / Codex / OpenCode / Gemini CLI / openclaw","entry_key":"xim:cc-switch","identity":{"name":"cc-switch","namespace":"xim"},"name":"cc-switch","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-switch.lua","ref":"","type":0,"version":""},"xim:claude":{"canonical_name":"xim:claude","description":"Claude Code CLI from Anthropic","entry_key":"xim:claude","identity":{"name":"claude","namespace":"xim"},"name":"claude","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude.lua","ref":"","type":0,"version":""},"xim:cmake":{"canonical_name":"xim:cmake","description":"A Powerful Software Build System","entry_key":"xim:cmake","identity":{"name":"cmake","namespace":"xim"},"name":"cmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cmake.lua","ref":"","type":0,"version":""},"xim:code":{"canonical_name":"xim:code","description":"Visual Studio Code","entry_key":"xim:code","identity":{"name":"code","namespace":"xim"},"name":"code","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/code.lua","ref":"","type":0,"version":""},"xim:codex":{"canonical_name":"xim:codex","description":"Codex CLI from OpenAI","entry_key":"xim:codex","identity":{"name":"codex","namespace":"xim"},"name":"codex","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/codex.lua","ref":"","type":0,"version":""},"xim:configure-project-installer":{"canonical_name":"xim:configure-project-installer","description":"Build & Install (from source) helper tools for ./configure-based projects","entry_key":"xim:configure-project-installer","identity":{"name":"configure-project-installer","namespace":"xim"},"name":"configure-project-installer","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/configure-project-installer.lua","ref":"","type":1,"version":""},"xim:cpp":{"canonical_name":"xim:cpp","description":"C++ language toolchain","entry_key":"xim:cpp","identity":{"name":"cpp","namespace":"xim"},"name":"cpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cpp.lua","ref":"","type":3,"version":""},"xim:d2x":{"canonical_name":"xim:d2x","description":"xlings's d2x tool","entry_key":"xim:d2x","identity":{"name":"d2x","namespace":"xim"},"name":"d2x","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/d2x.lua","ref":"","type":0,"version":""},"xim:dash":{"canonical_name":"xim:dash","description":"Debian Almquist Shell — small POSIX-compliant shell","entry_key":"xim:dash","identity":{"name":"dash","namespace":"xim"},"name":"dash","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dash.lua","ref":"","type":0,"version":""},"xim:devcpp":{"canonical_name":"xim:devcpp","description":"Dev-C++: A full-featured Integrated Development Environment (IDE) for the C/C++","entry_key":"xim:devcpp","identity":{"name":"devcpp","namespace":"xim"},"name":"devcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/devcpp.lua","ref":"","type":0,"version":""},"xim:dotnet":{"canonical_name":"xim:dotnet","description":".NET is the free, open-source, cross-platform framework","entry_key":"xim:dotnet","identity":{"name":"dotnet","namespace":"xim"},"name":"dotnet","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dotnet.lua","ref":"","type":0,"version":""},"xim:e2fsprogs":{"canonical_name":"xim:e2fsprogs","description":"ext2/ext3/ext4 filesystem utilities (mke2fs, e2fsck, tune2fs, resize2fs, debugfs)","entry_key":"xim:e2fsprogs","identity":{"name":"e2fsprogs","namespace":"xim"},"name":"e2fsprogs","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/e2fsprogs.lua","ref":"","type":0,"version":""},"xim:elfutils":{"canonical_name":"xim:elfutils","description":"ELF object file access library — libelf, for radeonsi","entry_key":"xim:elfutils","identity":{"name":"elfutils","namespace":"xim"},"name":"elfutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/elfutils.lua","ref":"","type":0,"version":""},"xim:expat":{"canonical_name":"xim:expat","description":"Fast streaming XML parser library","entry_key":"xim:expat","identity":{"name":"expat","namespace":"xim"},"name":"expat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/expat.lua","ref":"","type":0,"version":""},"xim:fd":{"canonical_name":"xim:fd","description":"Simple, fast, user-friendly alternative to find","entry_key":"xim:fd","identity":{"name":"fd","namespace":"xim"},"name":"fd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fd.lua","ref":"","type":0,"version":""},"xim:fish":{"canonical_name":"xim:fish","description":"Friendly interactive shell — smart, user-friendly, modern command-line","entry_key":"xim:fish","identity":{"name":"fish","namespace":"xim"},"name":"fish","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fish.lua","ref":"","type":0,"version":""},"xim:fontconfig":{"canonical_name":"xim:fontconfig","description":"Library for configuring and customizing font access","entry_key":"xim:fontconfig","identity":{"name":"fontconfig","namespace":"xim"},"name":"fontconfig","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig.lua","ref":"","type":0,"version":""},"xim:freetype":{"canonical_name":"xim:freetype","description":"A freely available software library to render fonts","entry_key":"xim:freetype","identity":{"name":"freetype","namespace":"xim"},"name":"freetype","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/freetype.lua","ref":"","type":0,"version":""},"xim:fribidi":{"canonical_name":"xim:fribidi","description":"Free Implementation of the Unicode Bidirectional Algorithm","entry_key":"xim:fribidi","identity":{"name":"fribidi","namespace":"xim"},"name":"fribidi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fribidi.lua","ref":"","type":0,"version":""},"xim:fzf":{"canonical_name":"xim:fzf","description":"A command-line fuzzy finder","entry_key":"xim:fzf","identity":{"name":"fzf","namespace":"xim"},"name":"fzf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fzf.lua","ref":"","type":0,"version":""},"xim:gcc":{"canonical_name":"xim:gcc","description":"GCC, the GNU Compiler Collection","entry_key":"xim:gcc","identity":{"name":"gcc","namespace":"xim"},"name":"gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc.lua","ref":"","type":0,"version":""},"xim:gcc-runtime":{"canonical_name":"xim:gcc-runtime","description":"GCC runtime libraries (libstdc++, libgcc_s, libgomp, libatomic, libitm, libquadmath, libssp) — required by virtually every C++ binary on Linux, including Clang-built ones","entry_key":"xim:gcc-runtime","identity":{"name":"gcc-runtime","namespace":"xim"},"name":"gcc-runtime","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-runtime.lua","ref":"","type":0,"version":""},"xim:gcc-specs-config":{"canonical_name":"xim:gcc-specs-config","description":"XScript: GCC Specs Config Tool","entry_key":"xim:gcc-specs-config","identity":{"name":"gcc-specs-config","namespace":"xim"},"name":"gcc-specs-config","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-specs-config.lua","ref":"","type":1,"version":""},"xim:git":{"canonical_name":"xim:git","description":"Git is a free and open source distributed version control system","entry_key":"xim:git","identity":{"name":"git","namespace":"xim"},"name":"git","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git.lua","ref":"","type":0,"version":""},"xim:git-autosync":{"canonical_name":"xim:git-autosync","description":"XScript: Git AutoSync Tools","entry_key":"xim:git-autosync","identity":{"name":"git-autosync","namespace":"xim"},"name":"git-autosync","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git-autosync.lua","ref":"","type":1,"version":""},"xim:github-gh":{"canonical_name":"xim:github-gh","description":"GitHub's official command line tool","entry_key":"xim:github-gh","identity":{"name":"github-gh","namespace":"xim"},"name":"github-gh","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-gh.lua","ref":"","type":0,"version":""},"xim:github-notifications-clear":{"canonical_name":"xim:github-notifications-clear","description":"Clear github's notifications (unread)","entry_key":"xim:github-notifications-clear","identity":{"name":"github-notifications-clear","namespace":"xim"},"name":"github-notifications-clear","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-notifications-clear.lua","ref":"","type":1,"version":""},"xim:glib":{"canonical_name":"xim:glib","description":"Low-level core library (GLib/GObject/GIO)","entry_key":"xim:glib","identity":{"name":"glib","namespace":"xim"},"name":"glib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glib.lua","ref":"","type":0,"version":""},"xim:glibc":{"canonical_name":"xim:glibc","description":"The GNU C Library","entry_key":"xim:glibc","identity":{"name":"glibc","namespace":"xim"},"name":"glibc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glibc.lua","ref":"","type":0,"version":""},"xim:glslang":{"canonical_name":"xim:glslang","description":"Khronos reference GLSL/ESSL front end and validator (build-time)","entry_key":"xim:glslang","identity":{"name":"glslang","namespace":"xim"},"name":"glslang","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glslang.lua","ref":"","type":0,"version":""},"xim:go":{"canonical_name":"xim:go","description":"The Go programming language","entry_key":"xim:go","identity":{"name":"go","namespace":"xim"},"name":"go","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/go.lua","ref":"","type":0,"version":""},"xim:godot":{"canonical_name":"xim:godot","description":"Godot Engine - multi-platform 2D and 3D game engine (editor + headless export runner)","entry_key":"xim:godot","identity":{"name":"godot","namespace":"xim"},"name":"godot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/godot.lua","ref":"","type":0,"version":""},"xim:graphics":{"canonical_name":"xim:graphics","description":"The xlings graphics stack: OpenGL that adapts to whatever GPU this host has","entry_key":"xim:graphics","identity":{"name":"graphics","namespace":"xim"},"name":"graphics","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/graphics.lua","ref":"","type":0,"version":""},"xim:griddycode":{"canonical_name":"xim:griddycode","description":"A code editor made with Godot. Code has never been more lit!","entry_key":"xim:griddycode","identity":{"name":"griddycode","namespace":"xim"},"name":"griddycode","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/griddycode.lua","ref":"","type":0,"version":""},"xim:harfbuzz":{"canonical_name":"xim:harfbuzz","description":"OpenType text shaping engine","entry_key":"xim:harfbuzz","identity":{"name":"harfbuzz","namespace":"xim"},"name":"harfbuzz","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/harfbuzz.lua","ref":"","type":0,"version":""},"xim:hermes-agent":{"canonical_name":"xim:hermes-agent","description":"The self-improving AI agent from Nous Research — creates skills from experience, improves them during use, and runs anywhere","entry_key":"xim:hermes-agent","identity":{"name":"hermes-agent","namespace":"xim"},"name":"hermes-agent","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/hermes-agent.lua","ref":"","type":0,"version":""},"xim:interposer-stub":{"canonical_name":"xim:interposer-stub","description":"Prebuilt empty ELF stub that elfpatch.host_link_interposer turns into an interposer","entry_key":"xim:interposer-stub","identity":{"name":"interposer-stub","namespace":"xim"},"name":"interposer-stub","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/i/interposer-stub.lua","ref":"","type":0,"version":""},"xim:jdk-corretto":{"canonical_name":"xim:jdk-corretto","description":"Amazon Corretto — a no-cost, production-ready distribution of OpenJDK (LTS)","entry_key":"xim:jdk-corretto","identity":{"name":"jdk-corretto","namespace":"xim"},"name":"jdk-corretto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-corretto.lua","ref":"","type":0,"version":""},"xim:jdk-temurin":{"canonical_name":"xim:jdk-temurin","description":"Eclipse Temurin JDK 25 — a production-ready binary build of OpenJDK (LTS)","entry_key":"xim:jdk-temurin","identity":{"name":"jdk-temurin","namespace":"xim"},"name":"jdk-temurin","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-temurin.lua","ref":"","type":0,"version":""},"xim:jdk-zulu":{"canonical_name":"xim:jdk-zulu","description":"Azul Zulu Community — a TCK-certified, no-cost build of OpenJDK (LTS)","entry_key":"xim:jdk-zulu","identity":{"name":"jdk-zulu","namespace":"xim"},"name":"jdk-zulu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-zulu.lua","ref":"","type":0,"version":""},"xim:jetbrainsmono-nerd-font":{"canonical_name":"xim:jetbrainsmono-nerd-font","description":"JetBrainsMono Nerd Font patched with terminal icons and glyphs","entry_key":"xim:jetbrainsmono-nerd-font","identity":{"name":"jetbrainsmono-nerd-font","namespace":"xim"},"name":"jetbrainsmono-nerd-font","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jetbrainsmono-nerd-font.lua","ref":"","type":0,"version":""},"xim:jq":{"canonical_name":"xim:jq","description":"Command-line JSON processor","entry_key":"xim:jq","identity":{"name":"jq","namespace":"xim"},"name":"jq","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jq.lua","ref":"","type":0,"version":""},"xim:khistory":{"canonical_name":"xim:khistory","description":"An elegant keyboard/gamepad key detection and visualization tool","entry_key":"xim:khistory","identity":{"name":"khistory","namespace":"xim"},"name":"khistory","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/k/khistory.lua","ref":"","type":0,"version":""},"xim:libX11":{"canonical_name":"xim:libX11","description":"Core X11 client library","entry_key":"xim:libX11","identity":{"name":"libX11","namespace":"xim"},"name":"libX11","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libX11.lua","ref":"","type":0,"version":""},"xim:libXau":{"canonical_name":"xim:libXau","description":"X11 authorisation protocol library","entry_key":"xim:libXau","identity":{"name":"libXau","namespace":"xim"},"name":"libXau","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXau.lua","ref":"","type":0,"version":""},"xim:libXcursor":{"canonical_name":"xim:libXcursor","description":"X cursor management library","entry_key":"xim:libXcursor","identity":{"name":"libXcursor","namespace":"xim"},"name":"libXcursor","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXcursor.lua","ref":"","type":0,"version":""},"xim:libXdmcp":{"canonical_name":"xim:libXdmcp","description":"X Display Manager Control Protocol library","entry_key":"xim:libXdmcp","identity":{"name":"libXdmcp","namespace":"xim"},"name":"libXdmcp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXdmcp.lua","ref":"","type":0,"version":""},"xim:libXext":{"canonical_name":"xim:libXext","description":"X11 miscellaneous extensions library","entry_key":"xim:libXext","identity":{"name":"libXext","namespace":"xim"},"name":"libXext","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXext.lua","ref":"","type":0,"version":""},"xim:libXfixes":{"canonical_name":"xim:libXfixes","description":"X Fixes extension client library","entry_key":"xim:libXfixes","identity":{"name":"libXfixes","namespace":"xim"},"name":"libXfixes","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXfixes.lua","ref":"","type":0,"version":""},"xim:libXi":{"canonical_name":"xim:libXi","description":"X Input Extension client library","entry_key":"xim:libXi","identity":{"name":"libXi","namespace":"xim"},"name":"libXi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXi.lua","ref":"","type":0,"version":""},"xim:libXrandr":{"canonical_name":"xim:libXrandr","description":"X Resize, Rotate and Reflect extension library","entry_key":"xim:libXrandr","identity":{"name":"libXrandr","namespace":"xim"},"name":"libXrandr","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrandr.lua","ref":"","type":0,"version":""},"xim:libXrender":{"canonical_name":"xim:libXrender","description":"X Rendering Extension client library","entry_key":"xim:libXrender","identity":{"name":"libXrender","namespace":"xim"},"name":"libXrender","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrender.lua","ref":"","type":0,"version":""},"xim:libXxf86vm":{"canonical_name":"xim:libXxf86vm","description":"X11 XFree86 video mode extension library","entry_key":"xim:libXxf86vm","identity":{"name":"libXxf86vm","namespace":"xim"},"name":"libXxf86vm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXxf86vm.lua","ref":"","type":0,"version":""},"xim:libcuda-host-link":{"canonical_name":"xim:libcuda-host-link","description":"Sentinel: stable symlink to host's libcuda.so.1 (NVIDIA driver userspace lib)","entry_key":"xim:libcuda-host-link","identity":{"name":"libcuda-host-link","namespace":"xim"},"name":"libcuda-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libcuda-host-link.lua","ref":"","type":0,"version":""},"xim:libdrm":{"canonical_name":"xim:libdrm","description":"Userspace interface to the kernel DRM services","entry_key":"xim:libdrm","identity":{"name":"libdrm","namespace":"xim"},"name":"libdrm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libdrm.lua","ref":"","type":0,"version":""},"xim:libffi":{"canonical_name":"xim:libffi","description":"Portable foreign-function interface library","entry_key":"xim:libffi","identity":{"name":"libffi","namespace":"xim"},"name":"libffi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libffi.lua","ref":"","type":0,"version":""},"xim:libglvnd":{"canonical_name":"xim:libglvnd","description":"The GL Vendor-Neutral Dispatch library","entry_key":"xim:libglvnd","identity":{"name":"libglvnd","namespace":"xim"},"name":"libglvnd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libglvnd.lua","ref":"","type":0,"version":""},"xim:libllvm":{"canonical_name":"xim:libllvm","description":"LLVM as a shared library — the code generator mesa's llvmpipe and radeonsi use","entry_key":"xim:libllvm","identity":{"name":"libllvm","namespace":"xim"},"name":"libllvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libllvm.lua","ref":"","type":0,"version":""},"xim:libpciaccess":{"canonical_name":"xim:libpciaccess","description":"Generic PCI device access library","entry_key":"xim:libpciaccess","identity":{"name":"libpciaccess","namespace":"xim"},"name":"libpciaccess","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpciaccess.lua","ref":"","type":0,"version":""},"xim:libpng":{"canonical_name":"xim:libpng","description":"Official PNG reference library","entry_key":"xim:libpng","identity":{"name":"libpng","namespace":"xim"},"name":"libpng","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpng.lua","ref":"","type":0,"version":""},"xim:libxcb":{"canonical_name":"xim:libxcb","description":"X protocol C-language Binding","entry_key":"xim:libxcb","identity":{"name":"libxcb","namespace":"xim"},"name":"libxcb","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxcb.lua","ref":"","type":0,"version":""},"xim:libxkbcommon":{"canonical_name":"xim:libxkbcommon","description":"Keymap handling library for Wayland and X11 clients","entry_key":"xim:libxkbcommon","identity":{"name":"libxkbcommon","namespace":"xim"},"name":"libxkbcommon","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxkbcommon.lua","ref":"","type":0,"version":""},"xim:libxml2":{"canonical_name":"xim:libxml2","description":"XML C parser and toolkit","entry_key":"xim:libxml2","identity":{"name":"libxml2","namespace":"xim"},"name":"libxml2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxml2.lua","ref":"","type":0,"version":""},"xim:libxshmfence":{"canonical_name":"xim:libxshmfence","description":"Shared-memory fences for DRI3","entry_key":"xim:libxshmfence","identity":{"name":"libxshmfence","namespace":"xim"},"name":"libxshmfence","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxshmfence.lua","ref":"","type":0,"version":""},"xim:linux-headers":{"canonical_name":"xim:linux-headers","description":"Linux Kernel Headers (prebuilt)","entry_key":"xim:linux-headers","identity":{"name":"linux-headers","namespace":"xim"},"name":"linux-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-headers.lua","ref":"","type":0,"version":""},"xim:linux-sysroot-create":{"canonical_name":"xim:linux-sysroot-create","description":"XScript: Linux Sysroot Create Tool","entry_key":"xim:linux-sysroot-create","identity":{"name":"linux-sysroot-create","namespace":"xim"},"name":"linux-sysroot-create","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-sysroot-create.lua","ref":"","type":1,"version":""},"xim:llvm":{"canonical_name":"xim:llvm","description":"LLVM compiler infrastructure and toolchain","entry_key":"xim:llvm","identity":{"name":"llvm","namespace":"xim"},"name":"llvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm.lua","ref":"","type":0,"version":""},"xim:llvm-tools":{"canonical_name":"xim:llvm-tools","description":"LLVM development tools (clang-format, clang-tidy, clangd)","entry_key":"xim:llvm-tools","identity":{"name":"llvm-tools","namespace":"xim"},"name":"llvm-tools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm-tools.lua","ref":"","type":0,"version":""},"xim:make":{"canonical_name":"xim:make","description":"GNU Make — tool which controls the generation of executables from source files","entry_key":"xim:make","identity":{"name":"make","namespace":"xim"},"name":"make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/make.lua","ref":"","type":0,"version":""},"xim:mcpp":{"canonical_name":"xim:mcpp","description":"A modern C++ build tool with module support, dependency/toolchain management, package indexing, and packaging","entry_key":"xim:mcpp","identity":{"name":"mcpp","namespace":"xim"},"name":"mcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp.lua","ref":"","type":0,"version":""},"xim:mcpp-short-cmd":{"canonical_name":"xim:mcpp-short-cmd","description":"Short command aliases for mcpp (mp/mbuild/mrun/mtest/...)","entry_key":"xim:mcpp-short-cmd","identity":{"name":"mcpp-short-cmd","namespace":"xim"},"name":"mcpp-short-cmd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-short-cmd.lua","ref":"","type":0,"version":""},"xim:mdbook":{"canonical_name":"xim:mdbook","description":"Create book from markdown files. Like Gitbook but implemented in Rust","entry_key":"xim:mdbook","identity":{"name":"mdbook","namespace":"xim"},"name":"mdbook","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mdbook.lua","ref":"","type":0,"version":""},"xim:media-crawler":{"canonical_name":"xim:media-crawler","description":"Multi-platform social media crawler (XHS, Douyin, Kuaishou, Bilibili, Weibo, Tieba, Zhihu) using Playwright","entry_key":"xim:media-crawler","identity":{"name":"media-crawler","namespace":"xim"},"name":"media-crawler","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/media-crawler.lua","ref":"","type":0,"version":""},"xim:mesa":{"canonical_name":"xim:mesa","description":"Mesa 3D — OpenGL and Vulkan: llvmpipe, radeonsi, nouveau, zink, RADV","entry_key":"xim:mesa","identity":{"name":"mesa","namespace":"xim"},"name":"mesa","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mesa.lua","ref":"","type":0,"version":""},"xim:mingw-cross-gcc":{"canonical_name":"xim:mingw-cross-gcc","description":"MinGW-w64 GCC cross toolchain (Linux host → Windows x86_64 PE, MSVCRT runtime)","entry_key":"xim:mingw-cross-gcc","identity":{"name":"mingw-cross-gcc","namespace":"xim"},"name":"mingw-cross-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-cross-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-gcc":{"canonical_name":"xim:mingw-gcc","description":"MinGW-w64 GCC for Windows (winlibs standalone build, UCRT runtime)","entry_key":"xim:mingw-gcc","identity":{"name":"mingw-gcc","namespace":"xim"},"name":"mingw-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-w64":{"canonical_name":"xim:mingw-w64","description":"A complete runtime environment for GCC & LLVM for Windows","entry_key":"xim:mingw-w64","identity":{"name":"mingw-w64","namespace":"xim"},"name":"mingw-w64","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-w64.lua","ref":"","type":0,"version":""},"xim:msvc":{"canonical_name":"xim:msvc","description":"Microsoft Visual Studio C++ Compiler","entry_key":"xim:msvc","identity":{"name":"msvc","namespace":"xim"},"name":"msvc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/msvc.lua","ref":"","type":3,"version":""},"xim:musl":{"canonical_name":"xim:musl","description":"musl - a lightweight, fast, simple, free, standards-conformant C library","entry_key":"xim:musl","identity":{"name":"musl","namespace":"xim"},"name":"musl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl.lua","ref":"","type":0,"version":""},"xim:musl-cross-make":{"canonical_name":"xim:musl-cross-make","description":"Simple makefile-based build for musl cross compiler","entry_key":"xim:musl-cross-make","identity":{"name":"musl-cross-make","namespace":"xim"},"name":"musl-cross-make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-cross-make.lua","ref":"","type":1,"version":""},"xim:musl-gcc":{"canonical_name":"xim:musl-gcc","description":"GCC, the GNU Compiler Collection (prebuilt with musl)","entry_key":"xim:musl-gcc","identity":{"name":"musl-gcc","namespace":"xim"},"name":"musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-gcc.lua","ref":"","type":0,"version":""},"xim:nasm":{"canonical_name":"xim:nasm","description":"NASM - the Netwide Assembler, an assembler targeting the x86/x86-64 CPU family","entry_key":"xim:nasm","identity":{"name":"nasm","namespace":"xim"},"name":"nasm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nasm.lua","ref":"","type":0,"version":""},"xim:ninja":{"canonical_name":"xim:ninja","description":"a small build system with a focus on speed","entry_key":"xim:ninja","identity":{"name":"ninja","namespace":"xim"},"name":"ninja","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/ninja.lua","ref":"","type":0,"version":""},"xim:node":{"canonical_name":"xim:node","description":"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine","entry_key":"xim:node","identity":{"name":"node","namespace":"xim"},"name":"node","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/node.lua","ref":"","type":0,"version":""},"xim:npm":{"canonical_name":"xim:npm","description":"The package manager for JavaScript","entry_key":"xim:npm","identity":{"name":"npm","namespace":"xim"},"name":"npm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/npm.lua","ref":"","type":0,"version":""},"xim:nvidia-gl-host-link":{"canonical_name":"xim:nvidia-gl-host-link","description":"Sentinel: stable symlinks to the host's NVIDIA proprietary GL/EGL userspace","entry_key":"xim:nvidia-gl-host-link","identity":{"name":"nvidia-gl-host-link","namespace":"xim"},"name":"nvidia-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvidia-gl-host-link.lua","ref":"","type":0,"version":""},"xim:nvim":{"canonical_name":"xim:nvim","description":"Vim-fork focused on extensibility and usability","entry_key":"xim:nvim","identity":{"name":"nvim","namespace":"xim"},"name":"nvim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvim.lua","ref":"","type":0,"version":""},"xim:nvm":{"canonical_name":"xim:nvm","description":"Node Version Manager - POSIX-compliant node.js version manager","entry_key":"xim:nvm","identity":{"name":"nvm","namespace":"xim"},"name":"nvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvm.lua","ref":"","type":0,"version":""},"xim:ollama":{"canonical_name":"xim:ollama","description":"Get up and running with large language models locally","entry_key":"xim:ollama","identity":{"name":"ollama","namespace":"xim"},"name":"ollama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/ollama.lua","ref":"","type":0,"version":""},"xim:openclaw":{"canonical_name":"xim:openclaw","description":"OpenClaw CLI","entry_key":"xim:openclaw","identity":{"name":"openclaw","namespace":"xim"},"name":"openclaw","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openclaw.lua","ref":"","type":0,"version":""},"xim:openssl":{"canonical_name":"xim:openssl","description":"TLS/SSL and cryptography toolkit","entry_key":"xim:openssl","identity":{"name":"openssl","namespace":"xim"},"name":"openssl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openssl.lua","ref":"","type":0,"version":""},"xim:pango":{"canonical_name":"xim:pango","description":"Library for layout and rendering of internationalized text","entry_key":"xim:pango","identity":{"name":"pango","namespace":"xim"},"name":"pango","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pango.lua","ref":"","type":0,"version":""},"xim:patchelf":{"canonical_name":"xim:patchelf","description":"ELF patch tool for interpreter and RPATH","entry_key":"xim:patchelf","identity":{"name":"patchelf","namespace":"xim"},"name":"patchelf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/patchelf.lua","ref":"","type":0,"version":""},"xim:pcre2":{"canonical_name":"xim:pcre2","description":"Perl Compatible Regular Expressions (v2)","entry_key":"xim:pcre2","identity":{"name":"pcre2","namespace":"xim"},"name":"pcre2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pcre2.lua","ref":"","type":0,"version":""},"xim:perl":{"canonical_name":"xim:perl","description":"Perl — a complete, relocatable Perl 5 interpreter with the full core module set","entry_key":"xim:perl","identity":{"name":"perl","namespace":"xim"},"name":"perl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/perl.lua","ref":"","type":0,"version":""},"xim:pixman":{"canonical_name":"xim:pixman","description":"Low-level pixel manipulation library (cairo backend)","entry_key":"xim:pixman","identity":{"name":"pixman","namespace":"xim"},"name":"pixman","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pixman.lua","ref":"","type":0,"version":""},"xim:pnpm":{"canonical_name":"xim:pnpm","description":"Fast, disk space efficient package manager","entry_key":"xim:pnpm","identity":{"name":"pnpm","namespace":"xim"},"name":"pnpm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pnpm.lua","ref":"","type":0,"version":""},"xim:project-graph":{"canonical_name":"xim:project-graph","description":"快速绘制节点图的桌面工具 - 项目进程拓扑图绘制、头脑风暴草稿","entry_key":"xim:project-graph","identity":{"name":"project-graph","namespace":"xim"},"name":"project-graph","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/project-graph.lua","ref":"","type":0,"version":""},"xim:proot":{"canonical_name":"xim:proot","description":"Userspace chroot, mount --bind, and binfmt_misc — no root required","entry_key":"xim:proot","identity":{"name":"proot","namespace":"xim"},"name":"proot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/proot.lua","ref":"","type":0,"version":""},"xim:python":{"canonical_name":"xim:python","description":"The Python programming language","entry_key":"xim:python","identity":{"name":"python","namespace":"xim"},"name":"python","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/python.lua","ref":"","type":0,"version":""},"xim:ripgrep":{"canonical_name":"xim:ripgrep","description":"Fast, recursive grep that respects .gitignore","entry_key":"xim:ripgrep","identity":{"name":"ripgrep","namespace":"xim"},"name":"ripgrep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ripgrep.lua","ref":"","type":0,"version":""},"xim:ros2-jazzy-ubnutu":{"canonical_name":"xim:ros2-jazzy-ubnutu","description":"Config: one-click ROS 2 Jazzy Jalisco setup for Ubuntu 24.04","entry_key":"xim:ros2-jazzy-ubnutu","identity":{"name":"ros2-jazzy-ubnutu","namespace":"xim"},"name":"ros2-jazzy-ubnutu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ros2-jazzy-ubuntu.lua","ref":"","type":3,"version":""},"xim:rosdep":{"canonical_name":"xim:rosdep","description":"ROS dependency management tool","entry_key":"xim:rosdep","identity":{"name":"rosdep","namespace":"xim"},"name":"rosdep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rosdep.lua","ref":"","type":0,"version":""},"xim:rust":{"canonical_name":"xim:rust","description":"A language empowering everyone to build reliable and efficient software","entry_key":"xim:rust","identity":{"name":"rust","namespace":"xim"},"name":"rust","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust.lua","ref":"","type":0,"version":""},"xim:rustup":{"canonical_name":"xim:rustup","description":"An installer init tool for Rustup, the Rust toolchain installer","entry_key":"xim:rustup","identity":{"name":"rustup","namespace":"xim"},"name":"rustup","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup.lua","ref":"","type":0,"version":""},"xim:seeme-report":{"canonical_name":"xim:seeme-report","description":"让别人知道你在干什么 seeme report端","entry_key":"xim:seeme-report","identity":{"name":"seeme-report","namespace":"xim"},"name":"seeme-report","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-report.lua","ref":"","type":0,"version":""},"xim:seeme-server":{"canonical_name":"xim:seeme-server","description":"让别人知道你在干什么 seeme 服务端","entry_key":"xim:seeme-server","identity":{"name":"seeme-server","namespace":"xim"},"name":"seeme-server","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-server.lua","ref":"","type":0,"version":""},"xim:shortcut-tool":{"canonical_name":"xim:shortcut-tool","description":"Shortcut Tool: Create and manage shortcuts easily","entry_key":"xim:shortcut-tool","identity":{"name":"shortcut-tool","namespace":"xim"},"name":"shortcut-tool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/shortcut-tool.lua","ref":"","type":1,"version":""},"xim:sing-box":{"canonical_name":"xim:sing-box","description":"The universal proxy platform","entry_key":"xim:sing-box","identity":{"name":"sing-box","namespace":"xim"},"name":"sing-box","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box.lua","ref":"","type":0,"version":""},"xim:sing-box-helper":{"canonical_name":"xim:sing-box-helper","description":"Sing-Box Helper Tools - Simple commands for server and client configuration","entry_key":"xim:sing-box-helper","identity":{"name":"sing-box-helper","namespace":"xim"},"name":"sing-box-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box-helper.lua","ref":"","type":1,"version":""},"xim:sourcetrail":{"canonical_name":"xim:sourcetrail","description":"Sourcetrail - free and open-source interactive source explorer","entry_key":"xim:sourcetrail","identity":{"name":"sourcetrail","namespace":"xim"},"name":"sourcetrail","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sourcetrail.lua","ref":"","type":0,"version":""},"xim:syslinux":{"canonical_name":"xim:syslinux","description":"SYSLINUX bootloader collection (isolinux, pxelinux, extlinux + EFI loaders)","entry_key":"xim:syslinux","identity":{"name":"syslinux","namespace":"xim"},"name":"syslinux","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/syslinux.lua","ref":"","type":0,"version":""},"xim:trendradar":{"canonical_name":"xim:trendradar","description":"AI-driven public opinion and trend monitor with multi-platform aggregation, RSS, and smart alerts","entry_key":"xim:trendradar","identity":{"name":"trendradar","namespace":"xim"},"name":"trendradar","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/t/trendradar.lua","ref":"","type":0,"version":""},"xim:uv":{"canonical_name":"xim:uv","description":"An extremely fast Python package and project manager (Astral)","entry_key":"xim:uv","identity":{"name":"uv","namespace":"xim"},"name":"uv","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/u/uv.lua","ref":"","type":0,"version":""},"xim:vc6":{"canonical_name":"xim:vc6","description":"Visual C++ 6.0: Classic C/C++ IDE (portable for Windows 10/11)","entry_key":"xim:vc6","identity":{"name":"vc6","namespace":"xim"},"name":"vc6","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vc6.lua","ref":"","type":0,"version":""},"xim:vcstool":{"canonical_name":"xim:vcstool","description":"Version control system tool for multiple repos (ROS vcstool)","entry_key":"xim:vcstool","identity":{"name":"vcstool","namespace":"xim"},"name":"vcstool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vcstool.lua","ref":"","type":0,"version":""},"xim:vim":{"canonical_name":"xim:vim","description":"The classic Vi IMproved text editor (statically linked, hermetic)","entry_key":"xim:vim","identity":{"name":"vim","namespace":"xim"},"name":"vim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vim.lua","ref":"","type":0,"version":""},"xim:virtualbox":{"canonical_name":"xim:virtualbox","description":"Oracle VM VirtualBox userspace + VBoxManage CLI (portable, alias: vbox)","entry_key":"xim:virtualbox","identity":{"name":"virtualbox","namespace":"xim"},"name":"virtualbox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox.lua","ref":"","type":0,"version":""},"xim:vs-buildtools":{"canonical_name":"xim:vs-buildtools","description":"Visual Studio Build Tools","entry_key":"xim:vs-buildtools","identity":{"name":"vs-buildtools","namespace":"xim"},"name":"vs-buildtools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vs-buildtools.lua","ref":"","type":3,"version":""},"xim:wayland":{"canonical_name":"xim:wayland","description":"Wayland protocol library and scanner","entry_key":"xim:wayland","identity":{"name":"wayland","namespace":"xim"},"name":"wayland","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland.lua","ref":"","type":0,"version":""},"xim:wayland-protocols":{"canonical_name":"xim:wayland-protocols","description":"Wayland protocol extension definitions (build-time)","entry_key":"xim:wayland-protocols","identity":{"name":"wayland-protocols","namespace":"xim"},"name":"wayland-protocols","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland-protocols.lua","ref":"","type":0,"version":""},"xim:windows-acp":{"canonical_name":"xim:windows-acp","description":"ACP: Beta: Use Unicode UTF-8 for worldwide language support","entry_key":"xim:windows-acp","identity":{"name":"windows-acp","namespace":"xim"},"name":"windows-acp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/windows-acp.lua","ref":"","type":0,"version":""},"xim:wsl-gl-host-link":{"canonical_name":"xim:wsl-gl-host-link","description":"Sentinel: links WSL2's host D3D12/DXCore userspace so mesa's d3d12 driver can reach the Windows GPU","entry_key":"xim:wsl-gl-host-link","identity":{"name":"wsl-gl-host-link","namespace":"xim"},"name":"wsl-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-gl-host-link.lua","ref":"","type":0,"version":""},"xim:wsl-ubuntu":{"canonical_name":"xim:wsl-ubuntu","description":"Windows Subsystem for Linux (WSL) Ubuntu","entry_key":"xim:wsl-ubuntu","identity":{"name":"wsl-ubuntu","namespace":"xim"},"name":"wsl-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-ubuntu.lua","ref":"","type":3,"version":""},"xim:x86_64-linux-musl-gcc":{"canonical_name":"xim:x86_64-linux-musl-gcc","description":"GCC cross toolchain targeting x86_64-linux-musl (musl, fully static ELF)","entry_key":"xim:x86_64-linux-musl-gcc","identity":{"name":"x86_64-linux-musl-gcc","namespace":"xim"},"name":"x86_64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/x86_64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:xcb-proto":{"canonical_name":"xim:xcb-proto","description":"XML-XCB protocol descriptions (build-time)","entry_key":"xim:xcb-proto","identity":{"name":"xcb-proto","namespace":"xim"},"name":"xcb-proto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xcb-proto.lua","ref":"","type":0,"version":""},"xim:xlings":{"canonical_name":"xim:xlings","description":"Xlings | Highly abstract [ package manager ] - \"Multi-version management + Everything can be a package\"","entry_key":"xim:xlings","identity":{"name":"xlings","namespace":"xim"},"name":"xlings","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings.lua","ref":"","type":0,"version":""},"xim:xlings-project-templates":{"canonical_name":"xim:xlings-project-templates","description":"Xlings - Project Templates","entry_key":"xim:xlings-project-templates","identity":{"name":"xlings-project-templates","namespace":"xim"},"name":"xlings-project-templates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings-project-templates.lua","ref":"","type":2,"version":""},"xim:xmake":{"canonical_name":"xim:xmake","description":"A cross-platform build utility based on Lua","entry_key":"xim:xmake","identity":{"name":"xmake","namespace":"xim"},"name":"xmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xmake.lua","ref":"","type":0,"version":""},"xim:xorgproto":{"canonical_name":"xim:xorgproto","description":"X Window System protocol headers (build-time)","entry_key":"xim:xorgproto","identity":{"name":"xorgproto","namespace":"xim"},"name":"xorgproto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xorgproto.lua","ref":"","type":0,"version":""},"xim:xpkg-helper":{"canonical_name":"xim:xpkg-helper","description":"XPKG: XPackage Helper Tools","entry_key":"xim:xpkg-helper","identity":{"name":"xpkg-helper","namespace":"xim"},"name":"xpkg-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xpkg-helper.lua","ref":"","type":1,"version":""},"xim:xtrans":{"canonical_name":"xim:xtrans","description":"X transport layer macros and headers (build-time)","entry_key":"xim:xtrans","identity":{"name":"xtrans","namespace":"xim"},"name":"xtrans","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xtrans.lua","ref":"","type":0,"version":""},"xim:xvm":{"canonical_name":"xim:xvm","description":"a simple and generic version management tool","entry_key":"xim:xvm","identity":{"name":"xvm","namespace":"xim"},"name":"xvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm.lua","ref":"","type":0,"version":""},"xim:xvm-sysdetect":{"canonical_name":"xim:xvm-sysdetect","description":"XVM - System Package Detect Tools","entry_key":"xim:xvm-sysdetect","identity":{"name":"xvm-sysdetect","namespace":"xim"},"name":"xvm-sysdetect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm-sysdetect.lua","ref":"","type":3,"version":""},"xim:yazi":{"canonical_name":"xim:yazi","description":"Blazing fast terminal file manager written in Rust, based on async I/O","entry_key":"xim:yazi","identity":{"name":"yazi","namespace":"xim"},"name":"yazi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/y/yazi.lua","ref":"","type":0,"version":""},"xim:zlib":{"canonical_name":"xim:zlib","description":"A massively spiffy yet delicately unobtrusive compression library","entry_key":"xim:zlib","identity":{"name":"zlib","namespace":"xim"},"name":"zlib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zlib.lua","ref":"","type":0,"version":""},"xim:zoxide":{"canonical_name":"xim:zoxide","description":"A smarter cd command — jump to your most-used directories","entry_key":"xim:zoxide","identity":{"name":"zoxide","namespace":"xim"},"name":"zoxide","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zoxide.lua","ref":"","type":0,"version":""}},"mutex_groups":{},"repo_head_hash":"c38171504061b58e4b064004bf9b69ac78a66f6c","version":2} \ No newline at end of file +{"default_namespace":"xim","entries":{"config:claude-llm":{"canonical_name":"config:claude-llm","description":"Configure Claude Code to use DeepSeek Anthropic-compatible API","entry_key":"config:claude-llm","identity":{"name":"claude-llm","namespace":"config"},"name":"claude-llm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude-llm.lua","ref":"","type":3,"version":""},"config:fontconfig-user-moyingji":{"canonical_name":"config:fontconfig-user-moyingji","description":"Basic user configuration for Linux Fontconfig written by MoYingJi","entry_key":"config:fontconfig-user-moyingji","identity":{"name":"fontconfig-user-moyingji","namespace":"config"},"name":"fontconfig-user-moyingji","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig-user-moyingji.lua","ref":"","type":3,"version":""},"config:gitcode-hosts":{"canonical_name":"config:gitcode-hosts","description":"Config gitcode.com ip mapping-groups to hosts file","entry_key":"config:gitcode-hosts","identity":{"name":"gitcode-hosts","namespace":"config"},"name":"gitcode-hosts","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gitcode-hosts.lua","ref":"","type":3,"version":""},"config:mcpp-vscode-clangd":{"canonical_name":"config:mcpp-vscode-clangd","description":"Configure VSCode clangd support for mcpp LLVM projects","entry_key":"config:mcpp-vscode-clangd","identity":{"name":"mcpp-vscode-clangd","namespace":"config"},"name":"mcpp-vscode-clangd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-vscode-clangd.lua","ref":"","type":3,"version":""},"config:powershell-execpolicy":{"canonical_name":"config:powershell-execpolicy","description":"fix execution policy issue when open Powershell(load .ps1 file)","entry_key":"config:powershell-execpolicy","identity":{"name":"powershell-execpolicy","namespace":"config"},"name":"powershell-execpolicy","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/powershell-execpolicy.lua","ref":"","type":0,"version":""},"config:rust-crates-mirror":{"canonical_name":"config:rust-crates-mirror","description":"Config Index Mirror for Rust Crates (Cargo)","entry_key":"config:rust-crates-mirror","identity":{"name":"rust-crates-mirror","namespace":"config"},"name":"rust-crates-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust-crates-mirror.lua","ref":"","type":3,"version":""},"config:rustup-mirror":{"canonical_name":"config:rustup-mirror","description":"Config Mirror for Rustup","entry_key":"config:rustup-mirror","identity":{"name":"rustup-mirror","namespace":"config"},"name":"rustup-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup-mirror.lua","ref":"","type":3,"version":""},"config:virtualbox-ubuntu":{"canonical_name":"config:virtualbox-ubuntu","description":"Provision a ready-to-use Ubuntu 24.04 VM in VirtualBox (unattended install)","entry_key":"config:virtualbox-ubuntu","identity":{"name":"virtualbox-ubuntu","namespace":"config"},"name":"virtualbox-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox-ubuntu.lua","ref":"","type":0,"version":""},"xim:7zip":{"canonical_name":"xim:7zip","description":"7-Zip — a file archiver with a high compression ratio","entry_key":"xim:7zip","identity":{"name":"7zip","namespace":"xim"},"name":"7zip","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/7/7zip.lua","ref":"","type":0,"version":""},"xim:aarch64-linux-musl-gcc":{"canonical_name":"xim:aarch64-linux-musl-gcc","description":"Cross GCC toolchain: host -> aarch64-linux-musl (musl, static-capable)","entry_key":"xim:aarch64-linux-musl-gcc","identity":{"name":"aarch64-linux-musl-gcc","namespace":"xim"},"name":"aarch64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aarch64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:aria2-next":{"canonical_name":"xim:aria2-next","description":"Aria2 Next — a maintained aria2 fork with extensive bug fixes and a modernized architecture","entry_key":"xim:aria2-next","identity":{"name":"aria2-next","namespace":"xim"},"name":"aria2-next","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aria2-next.lua","ref":"","type":0,"version":""},"xim:bat":{"canonical_name":"xim:bat","description":"A cat clone with syntax highlighting and Git integration","entry_key":"xim:bat","identity":{"name":"bat","namespace":"xim"},"name":"bat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bat.lua","ref":"","type":0,"version":""},"xim:binutils":{"canonical_name":"xim:binutils","description":"The GNU Binutils are a collection of binary tools","entry_key":"xim:binutils","identity":{"name":"binutils","namespace":"xim"},"name":"binutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/binutils.lua","ref":"","type":0,"version":""},"xim:brew":{"canonical_name":"xim:brew","description":"Homebrew: The Missing Package Manager for macOS (or Linux)","entry_key":"xim:brew","identity":{"name":"brew","namespace":"xim"},"name":"brew","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/brew.lua","ref":"","type":0,"version":""},"xim:bun":{"canonical_name":"xim:bun","description":"Bun is an all-in-one toolkit for JavaScript and TypeScript apps","entry_key":"xim:bun","identity":{"name":"bun","namespace":"xim"},"name":"bun","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bun.lua","ref":"","type":0,"version":""},"xim:busybox":{"canonical_name":"xim:busybox","description":"The Swiss Army Knife of Embedded Linux — single static binary providing 400+ POSIX utilities","entry_key":"xim:busybox","identity":{"name":"busybox","namespace":"xim"},"name":"busybox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/busybox.lua","ref":"","type":0,"version":""},"xim:bwrap":{"canonical_name":"xim:bwrap","description":"Bubblewrap — namespace-based sandboxing tool (setuid mode for cross-distro compat)","entry_key":"xim:bwrap","identity":{"name":"bwrap","namespace":"xim"},"name":"bwrap","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bwrap.lua","ref":"","type":0,"version":""},"xim:ca-certificates":{"canonical_name":"xim:ca-certificates","description":"Mozilla CA root bundle (extracted by curl.se)","entry_key":"xim:ca-certificates","identity":{"name":"ca-certificates","namespace":"xim"},"name":"ca-certificates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/ca-certificates.lua","ref":"","type":0,"version":""},"xim:cairo":{"canonical_name":"xim:cairo","description":"2D graphics library (xcb-free / headless build for manim)","entry_key":"xim:cairo","identity":{"name":"cairo","namespace":"xim"},"name":"cairo","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cairo.lua","ref":"","type":0,"version":""},"xim:cc-connect":{"canonical_name":"xim:cc-connect","description":"Bridge local AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, etc.) to messaging platforms (Feishu, Slack, Telegram, Discord, ...)","entry_key":"xim:cc-connect","identity":{"name":"cc-connect","namespace":"xim"},"name":"cc-connect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-connect.lua","ref":"","type":0,"version":""},"xim:cc-switch":{"canonical_name":"xim:cc-switch","description":"Cross-platform desktop tool for switching providers across Claude Code / Codex / OpenCode / Gemini CLI / openclaw","entry_key":"xim:cc-switch","identity":{"name":"cc-switch","namespace":"xim"},"name":"cc-switch","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-switch.lua","ref":"","type":0,"version":""},"xim:claude":{"canonical_name":"xim:claude","description":"Claude Code CLI from Anthropic","entry_key":"xim:claude","identity":{"name":"claude","namespace":"xim"},"name":"claude","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude.lua","ref":"","type":0,"version":""},"xim:cmake":{"canonical_name":"xim:cmake","description":"A Powerful Software Build System","entry_key":"xim:cmake","identity":{"name":"cmake","namespace":"xim"},"name":"cmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cmake.lua","ref":"","type":0,"version":""},"xim:code":{"canonical_name":"xim:code","description":"Visual Studio Code","entry_key":"xim:code","identity":{"name":"code","namespace":"xim"},"name":"code","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/code.lua","ref":"","type":0,"version":""},"xim:codex":{"canonical_name":"xim:codex","description":"Codex CLI from OpenAI","entry_key":"xim:codex","identity":{"name":"codex","namespace":"xim"},"name":"codex","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/codex.lua","ref":"","type":0,"version":""},"xim:configure-project-installer":{"canonical_name":"xim:configure-project-installer","description":"Build & Install (from source) helper tools for ./configure-based projects","entry_key":"xim:configure-project-installer","identity":{"name":"configure-project-installer","namespace":"xim"},"name":"configure-project-installer","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/configure-project-installer.lua","ref":"","type":1,"version":""},"xim:cpp":{"canonical_name":"xim:cpp","description":"C++ language toolchain","entry_key":"xim:cpp","identity":{"name":"cpp","namespace":"xim"},"name":"cpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cpp.lua","ref":"","type":3,"version":""},"xim:d2x":{"canonical_name":"xim:d2x","description":"xlings's d2x tool","entry_key":"xim:d2x","identity":{"name":"d2x","namespace":"xim"},"name":"d2x","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/d2x.lua","ref":"","type":0,"version":""},"xim:dash":{"canonical_name":"xim:dash","description":"Debian Almquist Shell — small POSIX-compliant shell","entry_key":"xim:dash","identity":{"name":"dash","namespace":"xim"},"name":"dash","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dash.lua","ref":"","type":0,"version":""},"xim:devcpp":{"canonical_name":"xim:devcpp","description":"Dev-C++: A full-featured Integrated Development Environment (IDE) for the C/C++","entry_key":"xim:devcpp","identity":{"name":"devcpp","namespace":"xim"},"name":"devcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/devcpp.lua","ref":"","type":0,"version":""},"xim:dotnet":{"canonical_name":"xim:dotnet","description":".NET is the free, open-source, cross-platform framework","entry_key":"xim:dotnet","identity":{"name":"dotnet","namespace":"xim"},"name":"dotnet","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dotnet.lua","ref":"","type":0,"version":""},"xim:e2fsprogs":{"canonical_name":"xim:e2fsprogs","description":"ext2/ext3/ext4 filesystem utilities (mke2fs, e2fsck, tune2fs, resize2fs, debugfs)","entry_key":"xim:e2fsprogs","identity":{"name":"e2fsprogs","namespace":"xim"},"name":"e2fsprogs","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/e2fsprogs.lua","ref":"","type":0,"version":""},"xim:elfutils":{"canonical_name":"xim:elfutils","description":"ELF object file access library — libelf, for radeonsi","entry_key":"xim:elfutils","identity":{"name":"elfutils","namespace":"xim"},"name":"elfutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/elfutils.lua","ref":"","type":0,"version":""},"xim:expat":{"canonical_name":"xim:expat","description":"Fast streaming XML parser library","entry_key":"xim:expat","identity":{"name":"expat","namespace":"xim"},"name":"expat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/expat.lua","ref":"","type":0,"version":""},"xim:fd":{"canonical_name":"xim:fd","description":"Simple, fast, user-friendly alternative to find","entry_key":"xim:fd","identity":{"name":"fd","namespace":"xim"},"name":"fd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fd.lua","ref":"","type":0,"version":""},"xim:fish":{"canonical_name":"xim:fish","description":"Friendly interactive shell — smart, user-friendly, modern command-line","entry_key":"xim:fish","identity":{"name":"fish","namespace":"xim"},"name":"fish","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fish.lua","ref":"","type":0,"version":""},"xim:fontconfig":{"canonical_name":"xim:fontconfig","description":"Library for configuring and customizing font access","entry_key":"xim:fontconfig","identity":{"name":"fontconfig","namespace":"xim"},"name":"fontconfig","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig.lua","ref":"","type":0,"version":""},"xim:freetype":{"canonical_name":"xim:freetype","description":"A freely available software library to render fonts","entry_key":"xim:freetype","identity":{"name":"freetype","namespace":"xim"},"name":"freetype","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/freetype.lua","ref":"","type":0,"version":""},"xim:fribidi":{"canonical_name":"xim:fribidi","description":"Free Implementation of the Unicode Bidirectional Algorithm","entry_key":"xim:fribidi","identity":{"name":"fribidi","namespace":"xim"},"name":"fribidi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fribidi.lua","ref":"","type":0,"version":""},"xim:fzf":{"canonical_name":"xim:fzf","description":"A command-line fuzzy finder","entry_key":"xim:fzf","identity":{"name":"fzf","namespace":"xim"},"name":"fzf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fzf.lua","ref":"","type":0,"version":""},"xim:gcc":{"canonical_name":"xim:gcc","description":"GCC, the GNU Compiler Collection","entry_key":"xim:gcc","identity":{"name":"gcc","namespace":"xim"},"name":"gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc.lua","ref":"","type":0,"version":""},"xim:gcc-runtime":{"canonical_name":"xim:gcc-runtime","description":"GCC runtime libraries (libstdc++, libgcc_s, libgomp, libatomic, libitm, libquadmath, libssp) — required by virtually every C++ binary on Linux, including Clang-built ones","entry_key":"xim:gcc-runtime","identity":{"name":"gcc-runtime","namespace":"xim"},"name":"gcc-runtime","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-runtime.lua","ref":"","type":0,"version":""},"xim:gcc-specs-config":{"canonical_name":"xim:gcc-specs-config","description":"XScript: GCC Specs Config Tool","entry_key":"xim:gcc-specs-config","identity":{"name":"gcc-specs-config","namespace":"xim"},"name":"gcc-specs-config","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-specs-config.lua","ref":"","type":1,"version":""},"xim:git":{"canonical_name":"xim:git","description":"Git is a free and open source distributed version control system","entry_key":"xim:git","identity":{"name":"git","namespace":"xim"},"name":"git","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git.lua","ref":"","type":0,"version":""},"xim:git-autosync":{"canonical_name":"xim:git-autosync","description":"XScript: Git AutoSync Tools","entry_key":"xim:git-autosync","identity":{"name":"git-autosync","namespace":"xim"},"name":"git-autosync","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git-autosync.lua","ref":"","type":1,"version":""},"xim:github-gh":{"canonical_name":"xim:github-gh","description":"GitHub's official command line tool","entry_key":"xim:github-gh","identity":{"name":"github-gh","namespace":"xim"},"name":"github-gh","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-gh.lua","ref":"","type":0,"version":""},"xim:github-notifications-clear":{"canonical_name":"xim:github-notifications-clear","description":"Clear github's notifications (unread)","entry_key":"xim:github-notifications-clear","identity":{"name":"github-notifications-clear","namespace":"xim"},"name":"github-notifications-clear","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-notifications-clear.lua","ref":"","type":1,"version":""},"xim:glib":{"canonical_name":"xim:glib","description":"Low-level core library (GLib/GObject/GIO)","entry_key":"xim:glib","identity":{"name":"glib","namespace":"xim"},"name":"glib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glib.lua","ref":"","type":0,"version":""},"xim:glibc":{"canonical_name":"xim:glibc","description":"The GNU C Library","entry_key":"xim:glibc","identity":{"name":"glibc","namespace":"xim"},"name":"glibc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glibc.lua","ref":"","type":0,"version":""},"xim:glslang":{"canonical_name":"xim:glslang","description":"Khronos reference GLSL/ESSL front end and validator (build-time)","entry_key":"xim:glslang","identity":{"name":"glslang","namespace":"xim"},"name":"glslang","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glslang.lua","ref":"","type":0,"version":""},"xim:go":{"canonical_name":"xim:go","description":"The Go programming language","entry_key":"xim:go","identity":{"name":"go","namespace":"xim"},"name":"go","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/go.lua","ref":"","type":0,"version":""},"xim:godot":{"canonical_name":"xim:godot","description":"Godot Engine - multi-platform 2D and 3D game engine (editor + headless export runner)","entry_key":"xim:godot","identity":{"name":"godot","namespace":"xim"},"name":"godot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/godot.lua","ref":"","type":0,"version":""},"xim:graphics":{"canonical_name":"xim:graphics","description":"The xlings graphics stack: OpenGL that adapts to whatever GPU this host has","entry_key":"xim:graphics","identity":{"name":"graphics","namespace":"xim"},"name":"graphics","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/graphics.lua","ref":"","type":0,"version":""},"xim:griddycode":{"canonical_name":"xim:griddycode","description":"A code editor made with Godot. Code has never been more lit!","entry_key":"xim:griddycode","identity":{"name":"griddycode","namespace":"xim"},"name":"griddycode","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/griddycode.lua","ref":"","type":0,"version":""},"xim:harfbuzz":{"canonical_name":"xim:harfbuzz","description":"OpenType text shaping engine","entry_key":"xim:harfbuzz","identity":{"name":"harfbuzz","namespace":"xim"},"name":"harfbuzz","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/harfbuzz.lua","ref":"","type":0,"version":""},"xim:hermes-agent":{"canonical_name":"xim:hermes-agent","description":"The self-improving AI agent from Nous Research — creates skills from experience, improves them during use, and runs anywhere","entry_key":"xim:hermes-agent","identity":{"name":"hermes-agent","namespace":"xim"},"name":"hermes-agent","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/hermes-agent.lua","ref":"","type":0,"version":""},"xim:interposer-stub":{"canonical_name":"xim:interposer-stub","description":"Prebuilt empty ELF stub that elfpatch.host_link_interposer turns into an interposer","entry_key":"xim:interposer-stub","identity":{"name":"interposer-stub","namespace":"xim"},"name":"interposer-stub","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/i/interposer-stub.lua","ref":"","type":0,"version":""},"xim:jdk-corretto":{"canonical_name":"xim:jdk-corretto","description":"Amazon Corretto — a no-cost, production-ready distribution of OpenJDK (LTS)","entry_key":"xim:jdk-corretto","identity":{"name":"jdk-corretto","namespace":"xim"},"name":"jdk-corretto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-corretto.lua","ref":"","type":0,"version":""},"xim:jdk-temurin":{"canonical_name":"xim:jdk-temurin","description":"Eclipse Temurin JDK 25 — a production-ready binary build of OpenJDK (LTS)","entry_key":"xim:jdk-temurin","identity":{"name":"jdk-temurin","namespace":"xim"},"name":"jdk-temurin","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-temurin.lua","ref":"","type":0,"version":""},"xim:jdk-zulu":{"canonical_name":"xim:jdk-zulu","description":"Azul Zulu Community — a TCK-certified, no-cost build of OpenJDK (LTS)","entry_key":"xim:jdk-zulu","identity":{"name":"jdk-zulu","namespace":"xim"},"name":"jdk-zulu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-zulu.lua","ref":"","type":0,"version":""},"xim:jetbrainsmono-nerd-font":{"canonical_name":"xim:jetbrainsmono-nerd-font","description":"JetBrainsMono Nerd Font patched with terminal icons and glyphs","entry_key":"xim:jetbrainsmono-nerd-font","identity":{"name":"jetbrainsmono-nerd-font","namespace":"xim"},"name":"jetbrainsmono-nerd-font","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jetbrainsmono-nerd-font.lua","ref":"","type":0,"version":""},"xim:jq":{"canonical_name":"xim:jq","description":"Command-line JSON processor","entry_key":"xim:jq","identity":{"name":"jq","namespace":"xim"},"name":"jq","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jq.lua","ref":"","type":0,"version":""},"xim:khistory":{"canonical_name":"xim:khistory","description":"An elegant keyboard/gamepad key detection and visualization tool","entry_key":"xim:khistory","identity":{"name":"khistory","namespace":"xim"},"name":"khistory","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/k/khistory.lua","ref":"","type":0,"version":""},"xim:libX11":{"canonical_name":"xim:libX11","description":"Core X11 client library","entry_key":"xim:libX11","identity":{"name":"libX11","namespace":"xim"},"name":"libX11","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libX11.lua","ref":"","type":0,"version":""},"xim:libXau":{"canonical_name":"xim:libXau","description":"X11 authorisation protocol library","entry_key":"xim:libXau","identity":{"name":"libXau","namespace":"xim"},"name":"libXau","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXau.lua","ref":"","type":0,"version":""},"xim:libXcursor":{"canonical_name":"xim:libXcursor","description":"X cursor management library","entry_key":"xim:libXcursor","identity":{"name":"libXcursor","namespace":"xim"},"name":"libXcursor","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXcursor.lua","ref":"","type":0,"version":""},"xim:libXdmcp":{"canonical_name":"xim:libXdmcp","description":"X Display Manager Control Protocol library","entry_key":"xim:libXdmcp","identity":{"name":"libXdmcp","namespace":"xim"},"name":"libXdmcp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXdmcp.lua","ref":"","type":0,"version":""},"xim:libXext":{"canonical_name":"xim:libXext","description":"X11 miscellaneous extensions library","entry_key":"xim:libXext","identity":{"name":"libXext","namespace":"xim"},"name":"libXext","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXext.lua","ref":"","type":0,"version":""},"xim:libXfixes":{"canonical_name":"xim:libXfixes","description":"X Fixes extension client library","entry_key":"xim:libXfixes","identity":{"name":"libXfixes","namespace":"xim"},"name":"libXfixes","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXfixes.lua","ref":"","type":0,"version":""},"xim:libXi":{"canonical_name":"xim:libXi","description":"X Input Extension client library","entry_key":"xim:libXi","identity":{"name":"libXi","namespace":"xim"},"name":"libXi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXi.lua","ref":"","type":0,"version":""},"xim:libXinerama":{"canonical_name":"xim:libXinerama","description":"X11 Xinerama extension — multi-monitor screen geometry","entry_key":"xim:libXinerama","identity":{"name":"libXinerama","namespace":"xim"},"name":"libXinerama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXinerama.lua","ref":"","type":0,"version":""},"xim:libXrandr":{"canonical_name":"xim:libXrandr","description":"X Resize, Rotate and Reflect extension library","entry_key":"xim:libXrandr","identity":{"name":"libXrandr","namespace":"xim"},"name":"libXrandr","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrandr.lua","ref":"","type":0,"version":""},"xim:libXrender":{"canonical_name":"xim:libXrender","description":"X Rendering Extension client library","entry_key":"xim:libXrender","identity":{"name":"libXrender","namespace":"xim"},"name":"libXrender","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrender.lua","ref":"","type":0,"version":""},"xim:libXxf86vm":{"canonical_name":"xim:libXxf86vm","description":"X11 XFree86 video mode extension library","entry_key":"xim:libXxf86vm","identity":{"name":"libXxf86vm","namespace":"xim"},"name":"libXxf86vm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXxf86vm.lua","ref":"","type":0,"version":""},"xim:libcuda-host-link":{"canonical_name":"xim:libcuda-host-link","description":"Sentinel: stable symlink to host's libcuda.so.1 (NVIDIA driver userspace lib)","entry_key":"xim:libcuda-host-link","identity":{"name":"libcuda-host-link","namespace":"xim"},"name":"libcuda-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libcuda-host-link.lua","ref":"","type":0,"version":""},"xim:libdrm":{"canonical_name":"xim:libdrm","description":"Userspace interface to the kernel DRM services","entry_key":"xim:libdrm","identity":{"name":"libdrm","namespace":"xim"},"name":"libdrm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libdrm.lua","ref":"","type":0,"version":""},"xim:libffi":{"canonical_name":"xim:libffi","description":"Portable foreign-function interface library","entry_key":"xim:libffi","identity":{"name":"libffi","namespace":"xim"},"name":"libffi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libffi.lua","ref":"","type":0,"version":""},"xim:libglvnd":{"canonical_name":"xim:libglvnd","description":"The GL Vendor-Neutral Dispatch library","entry_key":"xim:libglvnd","identity":{"name":"libglvnd","namespace":"xim"},"name":"libglvnd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libglvnd.lua","ref":"","type":0,"version":""},"xim:libllvm":{"canonical_name":"xim:libllvm","description":"LLVM as a shared library — the code generator mesa's llvmpipe and radeonsi use","entry_key":"xim:libllvm","identity":{"name":"libllvm","namespace":"xim"},"name":"libllvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libllvm.lua","ref":"","type":0,"version":""},"xim:libpciaccess":{"canonical_name":"xim:libpciaccess","description":"Generic PCI device access library","entry_key":"xim:libpciaccess","identity":{"name":"libpciaccess","namespace":"xim"},"name":"libpciaccess","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpciaccess.lua","ref":"","type":0,"version":""},"xim:libpng":{"canonical_name":"xim:libpng","description":"Official PNG reference library","entry_key":"xim:libpng","identity":{"name":"libpng","namespace":"xim"},"name":"libpng","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpng.lua","ref":"","type":0,"version":""},"xim:libxcb":{"canonical_name":"xim:libxcb","description":"X protocol C-language Binding","entry_key":"xim:libxcb","identity":{"name":"libxcb","namespace":"xim"},"name":"libxcb","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxcb.lua","ref":"","type":0,"version":""},"xim:libxkbcommon":{"canonical_name":"xim:libxkbcommon","description":"Keymap handling library for Wayland and X11 clients","entry_key":"xim:libxkbcommon","identity":{"name":"libxkbcommon","namespace":"xim"},"name":"libxkbcommon","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxkbcommon.lua","ref":"","type":0,"version":""},"xim:libxml2":{"canonical_name":"xim:libxml2","description":"XML C parser and toolkit","entry_key":"xim:libxml2","identity":{"name":"libxml2","namespace":"xim"},"name":"libxml2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxml2.lua","ref":"","type":0,"version":""},"xim:libxshmfence":{"canonical_name":"xim:libxshmfence","description":"Shared-memory fences for DRI3","entry_key":"xim:libxshmfence","identity":{"name":"libxshmfence","namespace":"xim"},"name":"libxshmfence","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxshmfence.lua","ref":"","type":0,"version":""},"xim:linux-headers":{"canonical_name":"xim:linux-headers","description":"Linux Kernel Headers (prebuilt)","entry_key":"xim:linux-headers","identity":{"name":"linux-headers","namespace":"xim"},"name":"linux-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-headers.lua","ref":"","type":0,"version":""},"xim:linux-sysroot-create":{"canonical_name":"xim:linux-sysroot-create","description":"XScript: Linux Sysroot Create Tool","entry_key":"xim:linux-sysroot-create","identity":{"name":"linux-sysroot-create","namespace":"xim"},"name":"linux-sysroot-create","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-sysroot-create.lua","ref":"","type":1,"version":""},"xim:llvm":{"canonical_name":"xim:llvm","description":"LLVM compiler infrastructure and toolchain","entry_key":"xim:llvm","identity":{"name":"llvm","namespace":"xim"},"name":"llvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm.lua","ref":"","type":0,"version":""},"xim:llvm-tools":{"canonical_name":"xim:llvm-tools","description":"LLVM development tools (clang-format, clang-tidy, clangd)","entry_key":"xim:llvm-tools","identity":{"name":"llvm-tools","namespace":"xim"},"name":"llvm-tools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm-tools.lua","ref":"","type":0,"version":""},"xim:make":{"canonical_name":"xim:make","description":"GNU Make — tool which controls the generation of executables from source files","entry_key":"xim:make","identity":{"name":"make","namespace":"xim"},"name":"make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/make.lua","ref":"","type":0,"version":""},"xim:mcpp":{"canonical_name":"xim:mcpp","description":"A modern C++ build tool with module support, dependency/toolchain management, package indexing, and packaging","entry_key":"xim:mcpp","identity":{"name":"mcpp","namespace":"xim"},"name":"mcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp.lua","ref":"","type":0,"version":""},"xim:mcpp-short-cmd":{"canonical_name":"xim:mcpp-short-cmd","description":"Short command aliases for mcpp (mp/mbuild/mrun/mtest/...)","entry_key":"xim:mcpp-short-cmd","identity":{"name":"mcpp-short-cmd","namespace":"xim"},"name":"mcpp-short-cmd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-short-cmd.lua","ref":"","type":0,"version":""},"xim:mdbook":{"canonical_name":"xim:mdbook","description":"Create book from markdown files. Like Gitbook but implemented in Rust","entry_key":"xim:mdbook","identity":{"name":"mdbook","namespace":"xim"},"name":"mdbook","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mdbook.lua","ref":"","type":0,"version":""},"xim:media-crawler":{"canonical_name":"xim:media-crawler","description":"Multi-platform social media crawler (XHS, Douyin, Kuaishou, Bilibili, Weibo, Tieba, Zhihu) using Playwright","entry_key":"xim:media-crawler","identity":{"name":"media-crawler","namespace":"xim"},"name":"media-crawler","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/media-crawler.lua","ref":"","type":0,"version":""},"xim:mesa":{"canonical_name":"xim:mesa","description":"Mesa 3D — OpenGL and Vulkan: llvmpipe, radeonsi, nouveau, zink, RADV","entry_key":"xim:mesa","identity":{"name":"mesa","namespace":"xim"},"name":"mesa","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mesa.lua","ref":"","type":0,"version":""},"xim:mingw-cross-gcc":{"canonical_name":"xim:mingw-cross-gcc","description":"MinGW-w64 GCC cross toolchain (Linux host → Windows x86_64 PE, MSVCRT runtime)","entry_key":"xim:mingw-cross-gcc","identity":{"name":"mingw-cross-gcc","namespace":"xim"},"name":"mingw-cross-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-cross-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-gcc":{"canonical_name":"xim:mingw-gcc","description":"MinGW-w64 GCC for Windows (winlibs standalone build, UCRT runtime)","entry_key":"xim:mingw-gcc","identity":{"name":"mingw-gcc","namespace":"xim"},"name":"mingw-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-w64":{"canonical_name":"xim:mingw-w64","description":"A complete runtime environment for GCC & LLVM for Windows","entry_key":"xim:mingw-w64","identity":{"name":"mingw-w64","namespace":"xim"},"name":"mingw-w64","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-w64.lua","ref":"","type":0,"version":""},"xim:msvc":{"canonical_name":"xim:msvc","description":"Microsoft Visual Studio C++ Compiler","entry_key":"xim:msvc","identity":{"name":"msvc","namespace":"xim"},"name":"msvc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/msvc.lua","ref":"","type":3,"version":""},"xim:musl":{"canonical_name":"xim:musl","description":"musl - a lightweight, fast, simple, free, standards-conformant C library","entry_key":"xim:musl","identity":{"name":"musl","namespace":"xim"},"name":"musl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl.lua","ref":"","type":0,"version":""},"xim:musl-cross-make":{"canonical_name":"xim:musl-cross-make","description":"Simple makefile-based build for musl cross compiler","entry_key":"xim:musl-cross-make","identity":{"name":"musl-cross-make","namespace":"xim"},"name":"musl-cross-make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-cross-make.lua","ref":"","type":1,"version":""},"xim:musl-gcc":{"canonical_name":"xim:musl-gcc","description":"GCC, the GNU Compiler Collection (prebuilt with musl)","entry_key":"xim:musl-gcc","identity":{"name":"musl-gcc","namespace":"xim"},"name":"musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-gcc.lua","ref":"","type":0,"version":""},"xim:nasm":{"canonical_name":"xim:nasm","description":"NASM - the Netwide Assembler, an assembler targeting the x86/x86-64 CPU family","entry_key":"xim:nasm","identity":{"name":"nasm","namespace":"xim"},"name":"nasm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nasm.lua","ref":"","type":0,"version":""},"xim:ninja":{"canonical_name":"xim:ninja","description":"a small build system with a focus on speed","entry_key":"xim:ninja","identity":{"name":"ninja","namespace":"xim"},"name":"ninja","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/ninja.lua","ref":"","type":0,"version":""},"xim:node":{"canonical_name":"xim:node","description":"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine","entry_key":"xim:node","identity":{"name":"node","namespace":"xim"},"name":"node","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/node.lua","ref":"","type":0,"version":""},"xim:npm":{"canonical_name":"xim:npm","description":"The package manager for JavaScript","entry_key":"xim:npm","identity":{"name":"npm","namespace":"xim"},"name":"npm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/npm.lua","ref":"","type":0,"version":""},"xim:nvidia-gl-host-link":{"canonical_name":"xim:nvidia-gl-host-link","description":"Sentinel: stable symlinks to the host's NVIDIA proprietary GL/EGL userspace","entry_key":"xim:nvidia-gl-host-link","identity":{"name":"nvidia-gl-host-link","namespace":"xim"},"name":"nvidia-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvidia-gl-host-link.lua","ref":"","type":0,"version":""},"xim:nvim":{"canonical_name":"xim:nvim","description":"Vim-fork focused on extensibility and usability","entry_key":"xim:nvim","identity":{"name":"nvim","namespace":"xim"},"name":"nvim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvim.lua","ref":"","type":0,"version":""},"xim:nvm":{"canonical_name":"xim:nvm","description":"Node Version Manager - POSIX-compliant node.js version manager","entry_key":"xim:nvm","identity":{"name":"nvm","namespace":"xim"},"name":"nvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvm.lua","ref":"","type":0,"version":""},"xim:ollama":{"canonical_name":"xim:ollama","description":"Get up and running with large language models locally","entry_key":"xim:ollama","identity":{"name":"ollama","namespace":"xim"},"name":"ollama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/ollama.lua","ref":"","type":0,"version":""},"xim:openclaw":{"canonical_name":"xim:openclaw","description":"OpenClaw CLI","entry_key":"xim:openclaw","identity":{"name":"openclaw","namespace":"xim"},"name":"openclaw","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openclaw.lua","ref":"","type":0,"version":""},"xim:openssl":{"canonical_name":"xim:openssl","description":"TLS/SSL and cryptography toolkit","entry_key":"xim:openssl","identity":{"name":"openssl","namespace":"xim"},"name":"openssl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openssl.lua","ref":"","type":0,"version":""},"xim:pango":{"canonical_name":"xim:pango","description":"Library for layout and rendering of internationalized text","entry_key":"xim:pango","identity":{"name":"pango","namespace":"xim"},"name":"pango","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pango.lua","ref":"","type":0,"version":""},"xim:patchelf":{"canonical_name":"xim:patchelf","description":"ELF patch tool for interpreter and RPATH","entry_key":"xim:patchelf","identity":{"name":"patchelf","namespace":"xim"},"name":"patchelf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/patchelf.lua","ref":"","type":0,"version":""},"xim:pcre2":{"canonical_name":"xim:pcre2","description":"Perl Compatible Regular Expressions (v2)","entry_key":"xim:pcre2","identity":{"name":"pcre2","namespace":"xim"},"name":"pcre2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pcre2.lua","ref":"","type":0,"version":""},"xim:perl":{"canonical_name":"xim:perl","description":"Perl — a complete, relocatable Perl 5 interpreter with the full core module set","entry_key":"xim:perl","identity":{"name":"perl","namespace":"xim"},"name":"perl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/perl.lua","ref":"","type":0,"version":""},"xim:pixman":{"canonical_name":"xim:pixman","description":"Low-level pixel manipulation library (cairo backend)","entry_key":"xim:pixman","identity":{"name":"pixman","namespace":"xim"},"name":"pixman","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pixman.lua","ref":"","type":0,"version":""},"xim:pnpm":{"canonical_name":"xim:pnpm","description":"Fast, disk space efficient package manager","entry_key":"xim:pnpm","identity":{"name":"pnpm","namespace":"xim"},"name":"pnpm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pnpm.lua","ref":"","type":0,"version":""},"xim:project-graph":{"canonical_name":"xim:project-graph","description":"快速绘制节点图的桌面工具 - 项目进程拓扑图绘制、头脑风暴草稿","entry_key":"xim:project-graph","identity":{"name":"project-graph","namespace":"xim"},"name":"project-graph","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/project-graph.lua","ref":"","type":0,"version":""},"xim:proot":{"canonical_name":"xim:proot","description":"Userspace chroot, mount --bind, and binfmt_misc — no root required","entry_key":"xim:proot","identity":{"name":"proot","namespace":"xim"},"name":"proot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/proot.lua","ref":"","type":0,"version":""},"xim:python":{"canonical_name":"xim:python","description":"The Python programming language","entry_key":"xim:python","identity":{"name":"python","namespace":"xim"},"name":"python","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/python.lua","ref":"","type":0,"version":""},"xim:ripgrep":{"canonical_name":"xim:ripgrep","description":"Fast, recursive grep that respects .gitignore","entry_key":"xim:ripgrep","identity":{"name":"ripgrep","namespace":"xim"},"name":"ripgrep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ripgrep.lua","ref":"","type":0,"version":""},"xim:ros2-jazzy-ubnutu":{"canonical_name":"xim:ros2-jazzy-ubnutu","description":"Config: one-click ROS 2 Jazzy Jalisco setup for Ubuntu 24.04","entry_key":"xim:ros2-jazzy-ubnutu","identity":{"name":"ros2-jazzy-ubnutu","namespace":"xim"},"name":"ros2-jazzy-ubnutu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ros2-jazzy-ubuntu.lua","ref":"","type":3,"version":""},"xim:rosdep":{"canonical_name":"xim:rosdep","description":"ROS dependency management tool","entry_key":"xim:rosdep","identity":{"name":"rosdep","namespace":"xim"},"name":"rosdep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rosdep.lua","ref":"","type":0,"version":""},"xim:rust":{"canonical_name":"xim:rust","description":"A language empowering everyone to build reliable and efficient software","entry_key":"xim:rust","identity":{"name":"rust","namespace":"xim"},"name":"rust","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust.lua","ref":"","type":0,"version":""},"xim:rustup":{"canonical_name":"xim:rustup","description":"An installer init tool for Rustup, the Rust toolchain installer","entry_key":"xim:rustup","identity":{"name":"rustup","namespace":"xim"},"name":"rustup","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup.lua","ref":"","type":0,"version":""},"xim:seeme-report":{"canonical_name":"xim:seeme-report","description":"让别人知道你在干什么 seeme report端","entry_key":"xim:seeme-report","identity":{"name":"seeme-report","namespace":"xim"},"name":"seeme-report","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-report.lua","ref":"","type":0,"version":""},"xim:seeme-server":{"canonical_name":"xim:seeme-server","description":"让别人知道你在干什么 seeme 服务端","entry_key":"xim:seeme-server","identity":{"name":"seeme-server","namespace":"xim"},"name":"seeme-server","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-server.lua","ref":"","type":0,"version":""},"xim:shortcut-tool":{"canonical_name":"xim:shortcut-tool","description":"Shortcut Tool: Create and manage shortcuts easily","entry_key":"xim:shortcut-tool","identity":{"name":"shortcut-tool","namespace":"xim"},"name":"shortcut-tool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/shortcut-tool.lua","ref":"","type":1,"version":""},"xim:sing-box":{"canonical_name":"xim:sing-box","description":"The universal proxy platform","entry_key":"xim:sing-box","identity":{"name":"sing-box","namespace":"xim"},"name":"sing-box","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box.lua","ref":"","type":0,"version":""},"xim:sing-box-helper":{"canonical_name":"xim:sing-box-helper","description":"Sing-Box Helper Tools - Simple commands for server and client configuration","entry_key":"xim:sing-box-helper","identity":{"name":"sing-box-helper","namespace":"xim"},"name":"sing-box-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box-helper.lua","ref":"","type":1,"version":""},"xim:sourcetrail":{"canonical_name":"xim:sourcetrail","description":"Sourcetrail - free and open-source interactive source explorer","entry_key":"xim:sourcetrail","identity":{"name":"sourcetrail","namespace":"xim"},"name":"sourcetrail","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sourcetrail.lua","ref":"","type":0,"version":""},"xim:syslinux":{"canonical_name":"xim:syslinux","description":"SYSLINUX bootloader collection (isolinux, pxelinux, extlinux + EFI loaders)","entry_key":"xim:syslinux","identity":{"name":"syslinux","namespace":"xim"},"name":"syslinux","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/syslinux.lua","ref":"","type":0,"version":""},"xim:trendradar":{"canonical_name":"xim:trendradar","description":"AI-driven public opinion and trend monitor with multi-platform aggregation, RSS, and smart alerts","entry_key":"xim:trendradar","identity":{"name":"trendradar","namespace":"xim"},"name":"trendradar","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/t/trendradar.lua","ref":"","type":0,"version":""},"xim:uv":{"canonical_name":"xim:uv","description":"An extremely fast Python package and project manager (Astral)","entry_key":"xim:uv","identity":{"name":"uv","namespace":"xim"},"name":"uv","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/u/uv.lua","ref":"","type":0,"version":""},"xim:vc6":{"canonical_name":"xim:vc6","description":"Visual C++ 6.0: Classic C/C++ IDE (portable for Windows 10/11)","entry_key":"xim:vc6","identity":{"name":"vc6","namespace":"xim"},"name":"vc6","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vc6.lua","ref":"","type":0,"version":""},"xim:vcstool":{"canonical_name":"xim:vcstool","description":"Version control system tool for multiple repos (ROS vcstool)","entry_key":"xim:vcstool","identity":{"name":"vcstool","namespace":"xim"},"name":"vcstool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vcstool.lua","ref":"","type":0,"version":""},"xim:vim":{"canonical_name":"xim:vim","description":"The classic Vi IMproved text editor (statically linked, hermetic)","entry_key":"xim:vim","identity":{"name":"vim","namespace":"xim"},"name":"vim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vim.lua","ref":"","type":0,"version":""},"xim:virtualbox":{"canonical_name":"xim:virtualbox","description":"Oracle VM VirtualBox userspace + VBoxManage CLI (portable, alias: vbox)","entry_key":"xim:virtualbox","identity":{"name":"virtualbox","namespace":"xim"},"name":"virtualbox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox.lua","ref":"","type":0,"version":""},"xim:vs-buildtools":{"canonical_name":"xim:vs-buildtools","description":"Visual Studio Build Tools","entry_key":"xim:vs-buildtools","identity":{"name":"vs-buildtools","namespace":"xim"},"name":"vs-buildtools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vs-buildtools.lua","ref":"","type":3,"version":""},"xim:wayland":{"canonical_name":"xim:wayland","description":"Wayland protocol library and scanner","entry_key":"xim:wayland","identity":{"name":"wayland","namespace":"xim"},"name":"wayland","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland.lua","ref":"","type":0,"version":""},"xim:wayland-protocols":{"canonical_name":"xim:wayland-protocols","description":"Wayland protocol extension definitions (build-time)","entry_key":"xim:wayland-protocols","identity":{"name":"wayland-protocols","namespace":"xim"},"name":"wayland-protocols","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland-protocols.lua","ref":"","type":0,"version":""},"xim:windows-acp":{"canonical_name":"xim:windows-acp","description":"ACP: Beta: Use Unicode UTF-8 for worldwide language support","entry_key":"xim:windows-acp","identity":{"name":"windows-acp","namespace":"xim"},"name":"windows-acp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/windows-acp.lua","ref":"","type":0,"version":""},"xim:wsl-gl-host-link":{"canonical_name":"xim:wsl-gl-host-link","description":"Sentinel: links WSL2's host D3D12/DXCore userspace so mesa's d3d12 driver can reach the Windows GPU","entry_key":"xim:wsl-gl-host-link","identity":{"name":"wsl-gl-host-link","namespace":"xim"},"name":"wsl-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-gl-host-link.lua","ref":"","type":0,"version":""},"xim:wsl-ubuntu":{"canonical_name":"xim:wsl-ubuntu","description":"Windows Subsystem for Linux (WSL) Ubuntu","entry_key":"xim:wsl-ubuntu","identity":{"name":"wsl-ubuntu","namespace":"xim"},"name":"wsl-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-ubuntu.lua","ref":"","type":3,"version":""},"xim:x86_64-linux-musl-gcc":{"canonical_name":"xim:x86_64-linux-musl-gcc","description":"GCC cross toolchain targeting x86_64-linux-musl (musl, fully static ELF)","entry_key":"xim:x86_64-linux-musl-gcc","identity":{"name":"x86_64-linux-musl-gcc","namespace":"xim"},"name":"x86_64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/x86_64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:xcb-proto":{"canonical_name":"xim:xcb-proto","description":"XML-XCB protocol descriptions (build-time)","entry_key":"xim:xcb-proto","identity":{"name":"xcb-proto","namespace":"xim"},"name":"xcb-proto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xcb-proto.lua","ref":"","type":0,"version":""},"xim:xlings":{"canonical_name":"xim:xlings","description":"Xlings | Highly abstract [ package manager ] - \"Multi-version management + Everything can be a package\"","entry_key":"xim:xlings","identity":{"name":"xlings","namespace":"xim"},"name":"xlings","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings.lua","ref":"","type":0,"version":""},"xim:xlings-project-templates":{"canonical_name":"xim:xlings-project-templates","description":"Xlings - Project Templates","entry_key":"xim:xlings-project-templates","identity":{"name":"xlings-project-templates","namespace":"xim"},"name":"xlings-project-templates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings-project-templates.lua","ref":"","type":2,"version":""},"xim:xmake":{"canonical_name":"xim:xmake","description":"A cross-platform build utility based on Lua","entry_key":"xim:xmake","identity":{"name":"xmake","namespace":"xim"},"name":"xmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xmake.lua","ref":"","type":0,"version":""},"xim:xorgproto":{"canonical_name":"xim:xorgproto","description":"X Window System protocol headers (build-time)","entry_key":"xim:xorgproto","identity":{"name":"xorgproto","namespace":"xim"},"name":"xorgproto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xorgproto.lua","ref":"","type":0,"version":""},"xim:xpkg-helper":{"canonical_name":"xim:xpkg-helper","description":"XPKG: XPackage Helper Tools","entry_key":"xim:xpkg-helper","identity":{"name":"xpkg-helper","namespace":"xim"},"name":"xpkg-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xpkg-helper.lua","ref":"","type":1,"version":""},"xim:xtrans":{"canonical_name":"xim:xtrans","description":"X transport layer macros and headers (build-time)","entry_key":"xim:xtrans","identity":{"name":"xtrans","namespace":"xim"},"name":"xtrans","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xtrans.lua","ref":"","type":0,"version":""},"xim:xvm":{"canonical_name":"xim:xvm","description":"a simple and generic version management tool","entry_key":"xim:xvm","identity":{"name":"xvm","namespace":"xim"},"name":"xvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm.lua","ref":"","type":0,"version":""},"xim:xvm-sysdetect":{"canonical_name":"xim:xvm-sysdetect","description":"XVM - System Package Detect Tools","entry_key":"xim:xvm-sysdetect","identity":{"name":"xvm-sysdetect","namespace":"xim"},"name":"xvm-sysdetect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm-sysdetect.lua","ref":"","type":3,"version":""},"xim:yazi":{"canonical_name":"xim:yazi","description":"Blazing fast terminal file manager written in Rust, based on async I/O","entry_key":"xim:yazi","identity":{"name":"yazi","namespace":"xim"},"name":"yazi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/y/yazi.lua","ref":"","type":0,"version":""},"xim:zlib":{"canonical_name":"xim:zlib","description":"A massively spiffy yet delicately unobtrusive compression library","entry_key":"xim:zlib","identity":{"name":"zlib","namespace":"xim"},"name":"zlib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zlib.lua","ref":"","type":0,"version":""},"xim:zoxide":{"canonical_name":"xim:zoxide","description":"A smarter cd command — jump to your most-used directories","entry_key":"xim:zoxide","identity":{"name":"zoxide","namespace":"xim"},"name":"zoxide","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zoxide.lua","ref":"","type":0,"version":""}},"mutex_groups":{},"repo_head_hash":"6ad8acdfe39a2c731ad119356d0738b1180830c4","version":2} \ No newline at end of file diff --git a/pkgs/g/graphics.lua b/pkgs/g/graphics.lua index c1ccfb9b..693d296e 100644 --- a/pkgs/g/graphics.lua +++ b/pkgs/g/graphics.lua @@ -128,6 +128,9 @@ package = { "xim:libXrender@>=0.9", "xim:libxkbcommon@>=1.7", "xim:fontconfig@>=2.14", + -- Non-fatal when absent (single-screen fallback), which is + -- exactly why it went unnoticed until a real toolkit ran. + "libXinerama@>=1.1", }, }, ["latest"] = { ref = "0.1.0" }, diff --git a/pkgs/l/libXinerama.lua b/pkgs/l/libXinerama.lua new file mode 100644 index 00000000..1087bad3 --- /dev/null +++ b/pkgs/l/libXinerama.lua @@ -0,0 +1,91 @@ +package = { + spec = "2", + + homepage = "https://www.x.org", + name = "libXinerama", + description = "X11 Xinerama extension — multi-monitor screen geometry", + + authors = {"X.Org Foundation"}, + licenses = {"MIT"}, + repo = "https://gitlab.freedesktop.org/xorg/lib/libXinerama", + + type = "package", + archs = {"x86_64"}, + status = "stable", + categories = {"graphics", "lib"}, + keywords = {"libxinerama", "graphics", "x11", "multi-monitor"}, + + -- Why this is in the stack at all. + -- + -- It is not on any DT_NEEDED path: mesa does not need it, and nothing in the + -- rendering closure does. A toolkit dlopens it to ask how many monitors + -- there are and where they are. So it appears in no dependency graph derived + -- from ELF metadata, and the surfaceless probe that was this stack's + -- acceptance criterion could never miss it. + -- + -- godot found it: with `graphics` installed it stops adding host library + -- directories to its RPATH, and then printed + -- libXinerama.so.1: cannot open shared object file + -- while still starting, because the failure is non-fatal -- it falls back to + -- single-screen geometry. A non-fatal dlopen failure is exactly the kind of + -- gap that survives every test that only asks "did it run". + xpm = { + linux = { + deps = { "xim:libX11@>=1.8", "xim:libXext@>=1.3" }, + -- elfpatch reads this from each dependency and writes the consumer's + -- RPATH, which is what makes the stack resolve without anyone + -- setting LD_LIBRARY_PATH. + exports = { + runtime = { libdirs = { "lib" } }, + }, + ["latest"] = { ref = "1.1.5" }, + -- GLOBAL only, and that is a known gap rather than an oversight: + -- `gtc` can publish a RELEASE into an existing GitCode project but + -- cannot create the project itself, and `xlings-res/libXinerama` + -- does not exist on GitCode yet. A CN URL pointing at a missing + -- project would be worse than none -- it fails at download time + -- instead of falling back. Add the mirror table once the project is + -- created; the payload is byte-identical either way (sha256 below). + ["1.1.5"] = { + url = "https://github.com/xlings-res/libXinerama/releases/download/1.1.5/libXinerama-1.1.5-linux-x86_64.tar.gz", + sha256 = "8dfb7eb3459d920f6cc8209ee7db0a1b84cb3b4687f23f7a70442ee5c69802b3", + }, + }, + }, +} + +import("xim.libxpkg.pkginfo") +import("xim.libxpkg.system") +import("xim.libxpkg.xvm") +import("xim.pkgindex.sysroot") + +function install() + local dir = pkginfo.install_dir() + os.tryrm(dir) + os.mv("libXinerama-1.1.5", dir) + return true +end + +function config() + local binding = package.name .. "@" .. pkginfo.version() + + xvm.add(package.name) + sysroot.declare_libs(pkginfo.install_dir(), "lib", binding, pkginfo.version()) + + -- _tree, not declare_headers: this contributes `X11/extensions/Xinerama.h` + -- to an `X11/` directory eight other packages also write into. Declaring + -- that directory would place it as one asset -- rename(2) over the sysroot's + -- copy -- so the last install wins and the others vanish. + if not sysroot.declare_headers_tree(pkginfo.install_dir(), "include", + "usr/include", binding) then + sysroot.install_headers_tree( + path.join(pkginfo.install_dir(), "include"), + path.join(system.subos_sysrootdir(), "usr", "include")) + end + return true +end + +function uninstall() + xvm.remove(package.name) + return true +end From 1bac17cea35bf6d864310d106644a3c23a20955a Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Fri, 7 Aug 2026 15:48:42 +0800 Subject: [PATCH 03/11] feat(vulkan): a loader, so the ICD mesa already ships is no longer unread The matrix reported Vulkan as an empty cell: mesa builds RADV and rewrites its ICD manifest to an absolute path in our payload, and nothing ever read it, because an ICD is a DRIVER and a driver is loaded BY a loader. No libvulkan.so.1 meant no vulkaninfo and a dead zink in a payload that ships it. vulkan-headers 1.4.313 and vulkan-loader (from tag vulkan-sdk-1.4.313.0), both built in a subos and leak-checked, published to xlings-res, pulled into `graphics`. Verified: lib/libvulkan.so.1 reaches /lib and its DT_NEEDED closure resolves with 0 unresolved under our own loader. Discovery needed no new declaration -- the loader searches $XDG_DATA_DIRS/vulkan/icd.d and mesa's config() already prepends its share directory there. VK_DRIVER_FILES would have been wrong: it is an override that suppresses system discovery. ## And a bug in build-in-subos.sh that produced a mislabeled payload The download cache was keyed on the URL's basename. Every GitHub archive URL is `.../archive/refs/tags/v.tar.gz`, so the basename carries the tag and nothing about the project -- and Vulkan-Headers and Vulkan-Loader are both released as v1.4.313. The loader build found the headers' tarball already in $SRC, skipped the download, then configured, built, staged, LEAK-CHECKED and packaged the wrong source. Every step reported success and the artifact was published to xlings-res as `vulkan-loader` while containing Vulkan-Headers. It was caught only because the installed package had no lib/ directory. The release has been deleted and replaced with the real loader; the cache is now keyed on NAME-VERSION. Two smaller things the same build surfaced: Vulkan-Loader's tags are `vulkan-sdk-` and not `v` (GitHub's archive endpoint answers 200 for a ref that is not the tag you meant), and xrandr.pc Requires.private xrender, which was simply missing from --deps -- a missing dependency, not a tooling fault. --- .agents/tools/graphics/build-in-subos.sh | 14 ++++- .xlings-index-cache.json | 2 +- pkgs/g/graphics.lua | 4 ++ pkgs/v/vulkan-headers.lua | 65 +++++++++++++++++++ pkgs/v/vulkan-loader.lua | 80 ++++++++++++++++++++++++ 5 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 pkgs/v/vulkan-headers.lua create mode 100644 pkgs/v/vulkan-loader.lua diff --git a/.agents/tools/graphics/build-in-subos.sh b/.agents/tools/graphics/build-in-subos.sh index 864f390a..82b588d7 100755 --- a/.agents/tools/graphics/build-in-subos.sh +++ b/.agents/tools/graphics/build-in-subos.sh @@ -63,7 +63,19 @@ rm -rf "$STAGE" mkdir -p "$SRC" "$STAGE" # ── fetch ─────────────────────────────────────────────────────────────── -TARBALL="$SRC/$(basename "$URL")" +# Cached under NAME-VERSION, not under the URL's basename. +# +# Every GitHub archive URL is `.../archive/refs/tags/v.tar.gz`, so the +# basename carries the tag and nothing about the project. Vulkan-Headers and +# Vulkan-Loader are both released as v1.4.313, so the second build found the +# first one's `v1.4.313.tar.gz` already in $SRC, skipped the download, and +# configured, built, staged, leak-checked and PACKAGED the wrong source -- +# producing a `vulkan-loader` payload containing Vulkan-Headers, with every step +# reporting success. It was caught only because the resulting package had no +# lib/ directory. +# +# The basename is kept as a suffix so the file is still recognisable on disk. +TARBALL="$SRC/${NAME}-${VERSION}-$(basename "$URL")" [[ -f "$TARBALL" ]] || { log "fetching $(basename "$URL")" curl -fsSL --retry 3 -o "$TARBALL" "$URL" || fail "download failed" diff --git a/.xlings-index-cache.json b/.xlings-index-cache.json index 5a158df7..f505f60b 100644 --- a/.xlings-index-cache.json +++ b/.xlings-index-cache.json @@ -1 +1 @@ -{"default_namespace":"xim","entries":{"config:claude-llm":{"canonical_name":"config:claude-llm","description":"Configure Claude Code to use DeepSeek Anthropic-compatible API","entry_key":"config:claude-llm","identity":{"name":"claude-llm","namespace":"config"},"name":"claude-llm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude-llm.lua","ref":"","type":3,"version":""},"config:fontconfig-user-moyingji":{"canonical_name":"config:fontconfig-user-moyingji","description":"Basic user configuration for Linux Fontconfig written by MoYingJi","entry_key":"config:fontconfig-user-moyingji","identity":{"name":"fontconfig-user-moyingji","namespace":"config"},"name":"fontconfig-user-moyingji","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig-user-moyingji.lua","ref":"","type":3,"version":""},"config:gitcode-hosts":{"canonical_name":"config:gitcode-hosts","description":"Config gitcode.com ip mapping-groups to hosts file","entry_key":"config:gitcode-hosts","identity":{"name":"gitcode-hosts","namespace":"config"},"name":"gitcode-hosts","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gitcode-hosts.lua","ref":"","type":3,"version":""},"config:mcpp-vscode-clangd":{"canonical_name":"config:mcpp-vscode-clangd","description":"Configure VSCode clangd support for mcpp LLVM projects","entry_key":"config:mcpp-vscode-clangd","identity":{"name":"mcpp-vscode-clangd","namespace":"config"},"name":"mcpp-vscode-clangd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-vscode-clangd.lua","ref":"","type":3,"version":""},"config:powershell-execpolicy":{"canonical_name":"config:powershell-execpolicy","description":"fix execution policy issue when open Powershell(load .ps1 file)","entry_key":"config:powershell-execpolicy","identity":{"name":"powershell-execpolicy","namespace":"config"},"name":"powershell-execpolicy","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/powershell-execpolicy.lua","ref":"","type":0,"version":""},"config:rust-crates-mirror":{"canonical_name":"config:rust-crates-mirror","description":"Config Index Mirror for Rust Crates (Cargo)","entry_key":"config:rust-crates-mirror","identity":{"name":"rust-crates-mirror","namespace":"config"},"name":"rust-crates-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust-crates-mirror.lua","ref":"","type":3,"version":""},"config:rustup-mirror":{"canonical_name":"config:rustup-mirror","description":"Config Mirror for Rustup","entry_key":"config:rustup-mirror","identity":{"name":"rustup-mirror","namespace":"config"},"name":"rustup-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup-mirror.lua","ref":"","type":3,"version":""},"config:virtualbox-ubuntu":{"canonical_name":"config:virtualbox-ubuntu","description":"Provision a ready-to-use Ubuntu 24.04 VM in VirtualBox (unattended install)","entry_key":"config:virtualbox-ubuntu","identity":{"name":"virtualbox-ubuntu","namespace":"config"},"name":"virtualbox-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox-ubuntu.lua","ref":"","type":0,"version":""},"xim:7zip":{"canonical_name":"xim:7zip","description":"7-Zip — a file archiver with a high compression ratio","entry_key":"xim:7zip","identity":{"name":"7zip","namespace":"xim"},"name":"7zip","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/7/7zip.lua","ref":"","type":0,"version":""},"xim:aarch64-linux-musl-gcc":{"canonical_name":"xim:aarch64-linux-musl-gcc","description":"Cross GCC toolchain: host -> aarch64-linux-musl (musl, static-capable)","entry_key":"xim:aarch64-linux-musl-gcc","identity":{"name":"aarch64-linux-musl-gcc","namespace":"xim"},"name":"aarch64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aarch64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:aria2-next":{"canonical_name":"xim:aria2-next","description":"Aria2 Next — a maintained aria2 fork with extensive bug fixes and a modernized architecture","entry_key":"xim:aria2-next","identity":{"name":"aria2-next","namespace":"xim"},"name":"aria2-next","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aria2-next.lua","ref":"","type":0,"version":""},"xim:bat":{"canonical_name":"xim:bat","description":"A cat clone with syntax highlighting and Git integration","entry_key":"xim:bat","identity":{"name":"bat","namespace":"xim"},"name":"bat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bat.lua","ref":"","type":0,"version":""},"xim:binutils":{"canonical_name":"xim:binutils","description":"The GNU Binutils are a collection of binary tools","entry_key":"xim:binutils","identity":{"name":"binutils","namespace":"xim"},"name":"binutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/binutils.lua","ref":"","type":0,"version":""},"xim:brew":{"canonical_name":"xim:brew","description":"Homebrew: The Missing Package Manager for macOS (or Linux)","entry_key":"xim:brew","identity":{"name":"brew","namespace":"xim"},"name":"brew","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/brew.lua","ref":"","type":0,"version":""},"xim:bun":{"canonical_name":"xim:bun","description":"Bun is an all-in-one toolkit for JavaScript and TypeScript apps","entry_key":"xim:bun","identity":{"name":"bun","namespace":"xim"},"name":"bun","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bun.lua","ref":"","type":0,"version":""},"xim:busybox":{"canonical_name":"xim:busybox","description":"The Swiss Army Knife of Embedded Linux — single static binary providing 400+ POSIX utilities","entry_key":"xim:busybox","identity":{"name":"busybox","namespace":"xim"},"name":"busybox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/busybox.lua","ref":"","type":0,"version":""},"xim:bwrap":{"canonical_name":"xim:bwrap","description":"Bubblewrap — namespace-based sandboxing tool (setuid mode for cross-distro compat)","entry_key":"xim:bwrap","identity":{"name":"bwrap","namespace":"xim"},"name":"bwrap","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bwrap.lua","ref":"","type":0,"version":""},"xim:ca-certificates":{"canonical_name":"xim:ca-certificates","description":"Mozilla CA root bundle (extracted by curl.se)","entry_key":"xim:ca-certificates","identity":{"name":"ca-certificates","namespace":"xim"},"name":"ca-certificates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/ca-certificates.lua","ref":"","type":0,"version":""},"xim:cairo":{"canonical_name":"xim:cairo","description":"2D graphics library (xcb-free / headless build for manim)","entry_key":"xim:cairo","identity":{"name":"cairo","namespace":"xim"},"name":"cairo","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cairo.lua","ref":"","type":0,"version":""},"xim:cc-connect":{"canonical_name":"xim:cc-connect","description":"Bridge local AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, etc.) to messaging platforms (Feishu, Slack, Telegram, Discord, ...)","entry_key":"xim:cc-connect","identity":{"name":"cc-connect","namespace":"xim"},"name":"cc-connect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-connect.lua","ref":"","type":0,"version":""},"xim:cc-switch":{"canonical_name":"xim:cc-switch","description":"Cross-platform desktop tool for switching providers across Claude Code / Codex / OpenCode / Gemini CLI / openclaw","entry_key":"xim:cc-switch","identity":{"name":"cc-switch","namespace":"xim"},"name":"cc-switch","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-switch.lua","ref":"","type":0,"version":""},"xim:claude":{"canonical_name":"xim:claude","description":"Claude Code CLI from Anthropic","entry_key":"xim:claude","identity":{"name":"claude","namespace":"xim"},"name":"claude","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude.lua","ref":"","type":0,"version":""},"xim:cmake":{"canonical_name":"xim:cmake","description":"A Powerful Software Build System","entry_key":"xim:cmake","identity":{"name":"cmake","namespace":"xim"},"name":"cmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cmake.lua","ref":"","type":0,"version":""},"xim:code":{"canonical_name":"xim:code","description":"Visual Studio Code","entry_key":"xim:code","identity":{"name":"code","namespace":"xim"},"name":"code","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/code.lua","ref":"","type":0,"version":""},"xim:codex":{"canonical_name":"xim:codex","description":"Codex CLI from OpenAI","entry_key":"xim:codex","identity":{"name":"codex","namespace":"xim"},"name":"codex","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/codex.lua","ref":"","type":0,"version":""},"xim:configure-project-installer":{"canonical_name":"xim:configure-project-installer","description":"Build & Install (from source) helper tools for ./configure-based projects","entry_key":"xim:configure-project-installer","identity":{"name":"configure-project-installer","namespace":"xim"},"name":"configure-project-installer","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/configure-project-installer.lua","ref":"","type":1,"version":""},"xim:cpp":{"canonical_name":"xim:cpp","description":"C++ language toolchain","entry_key":"xim:cpp","identity":{"name":"cpp","namespace":"xim"},"name":"cpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cpp.lua","ref":"","type":3,"version":""},"xim:d2x":{"canonical_name":"xim:d2x","description":"xlings's d2x tool","entry_key":"xim:d2x","identity":{"name":"d2x","namespace":"xim"},"name":"d2x","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/d2x.lua","ref":"","type":0,"version":""},"xim:dash":{"canonical_name":"xim:dash","description":"Debian Almquist Shell — small POSIX-compliant shell","entry_key":"xim:dash","identity":{"name":"dash","namespace":"xim"},"name":"dash","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dash.lua","ref":"","type":0,"version":""},"xim:devcpp":{"canonical_name":"xim:devcpp","description":"Dev-C++: A full-featured Integrated Development Environment (IDE) for the C/C++","entry_key":"xim:devcpp","identity":{"name":"devcpp","namespace":"xim"},"name":"devcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/devcpp.lua","ref":"","type":0,"version":""},"xim:dotnet":{"canonical_name":"xim:dotnet","description":".NET is the free, open-source, cross-platform framework","entry_key":"xim:dotnet","identity":{"name":"dotnet","namespace":"xim"},"name":"dotnet","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dotnet.lua","ref":"","type":0,"version":""},"xim:e2fsprogs":{"canonical_name":"xim:e2fsprogs","description":"ext2/ext3/ext4 filesystem utilities (mke2fs, e2fsck, tune2fs, resize2fs, debugfs)","entry_key":"xim:e2fsprogs","identity":{"name":"e2fsprogs","namespace":"xim"},"name":"e2fsprogs","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/e2fsprogs.lua","ref":"","type":0,"version":""},"xim:elfutils":{"canonical_name":"xim:elfutils","description":"ELF object file access library — libelf, for radeonsi","entry_key":"xim:elfutils","identity":{"name":"elfutils","namespace":"xim"},"name":"elfutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/elfutils.lua","ref":"","type":0,"version":""},"xim:expat":{"canonical_name":"xim:expat","description":"Fast streaming XML parser library","entry_key":"xim:expat","identity":{"name":"expat","namespace":"xim"},"name":"expat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/expat.lua","ref":"","type":0,"version":""},"xim:fd":{"canonical_name":"xim:fd","description":"Simple, fast, user-friendly alternative to find","entry_key":"xim:fd","identity":{"name":"fd","namespace":"xim"},"name":"fd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fd.lua","ref":"","type":0,"version":""},"xim:fish":{"canonical_name":"xim:fish","description":"Friendly interactive shell — smart, user-friendly, modern command-line","entry_key":"xim:fish","identity":{"name":"fish","namespace":"xim"},"name":"fish","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fish.lua","ref":"","type":0,"version":""},"xim:fontconfig":{"canonical_name":"xim:fontconfig","description":"Library for configuring and customizing font access","entry_key":"xim:fontconfig","identity":{"name":"fontconfig","namespace":"xim"},"name":"fontconfig","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig.lua","ref":"","type":0,"version":""},"xim:freetype":{"canonical_name":"xim:freetype","description":"A freely available software library to render fonts","entry_key":"xim:freetype","identity":{"name":"freetype","namespace":"xim"},"name":"freetype","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/freetype.lua","ref":"","type":0,"version":""},"xim:fribidi":{"canonical_name":"xim:fribidi","description":"Free Implementation of the Unicode Bidirectional Algorithm","entry_key":"xim:fribidi","identity":{"name":"fribidi","namespace":"xim"},"name":"fribidi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fribidi.lua","ref":"","type":0,"version":""},"xim:fzf":{"canonical_name":"xim:fzf","description":"A command-line fuzzy finder","entry_key":"xim:fzf","identity":{"name":"fzf","namespace":"xim"},"name":"fzf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fzf.lua","ref":"","type":0,"version":""},"xim:gcc":{"canonical_name":"xim:gcc","description":"GCC, the GNU Compiler Collection","entry_key":"xim:gcc","identity":{"name":"gcc","namespace":"xim"},"name":"gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc.lua","ref":"","type":0,"version":""},"xim:gcc-runtime":{"canonical_name":"xim:gcc-runtime","description":"GCC runtime libraries (libstdc++, libgcc_s, libgomp, libatomic, libitm, libquadmath, libssp) — required by virtually every C++ binary on Linux, including Clang-built ones","entry_key":"xim:gcc-runtime","identity":{"name":"gcc-runtime","namespace":"xim"},"name":"gcc-runtime","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-runtime.lua","ref":"","type":0,"version":""},"xim:gcc-specs-config":{"canonical_name":"xim:gcc-specs-config","description":"XScript: GCC Specs Config Tool","entry_key":"xim:gcc-specs-config","identity":{"name":"gcc-specs-config","namespace":"xim"},"name":"gcc-specs-config","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-specs-config.lua","ref":"","type":1,"version":""},"xim:git":{"canonical_name":"xim:git","description":"Git is a free and open source distributed version control system","entry_key":"xim:git","identity":{"name":"git","namespace":"xim"},"name":"git","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git.lua","ref":"","type":0,"version":""},"xim:git-autosync":{"canonical_name":"xim:git-autosync","description":"XScript: Git AutoSync Tools","entry_key":"xim:git-autosync","identity":{"name":"git-autosync","namespace":"xim"},"name":"git-autosync","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git-autosync.lua","ref":"","type":1,"version":""},"xim:github-gh":{"canonical_name":"xim:github-gh","description":"GitHub's official command line tool","entry_key":"xim:github-gh","identity":{"name":"github-gh","namespace":"xim"},"name":"github-gh","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-gh.lua","ref":"","type":0,"version":""},"xim:github-notifications-clear":{"canonical_name":"xim:github-notifications-clear","description":"Clear github's notifications (unread)","entry_key":"xim:github-notifications-clear","identity":{"name":"github-notifications-clear","namespace":"xim"},"name":"github-notifications-clear","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-notifications-clear.lua","ref":"","type":1,"version":""},"xim:glib":{"canonical_name":"xim:glib","description":"Low-level core library (GLib/GObject/GIO)","entry_key":"xim:glib","identity":{"name":"glib","namespace":"xim"},"name":"glib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glib.lua","ref":"","type":0,"version":""},"xim:glibc":{"canonical_name":"xim:glibc","description":"The GNU C Library","entry_key":"xim:glibc","identity":{"name":"glibc","namespace":"xim"},"name":"glibc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glibc.lua","ref":"","type":0,"version":""},"xim:glslang":{"canonical_name":"xim:glslang","description":"Khronos reference GLSL/ESSL front end and validator (build-time)","entry_key":"xim:glslang","identity":{"name":"glslang","namespace":"xim"},"name":"glslang","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glslang.lua","ref":"","type":0,"version":""},"xim:go":{"canonical_name":"xim:go","description":"The Go programming language","entry_key":"xim:go","identity":{"name":"go","namespace":"xim"},"name":"go","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/go.lua","ref":"","type":0,"version":""},"xim:godot":{"canonical_name":"xim:godot","description":"Godot Engine - multi-platform 2D and 3D game engine (editor + headless export runner)","entry_key":"xim:godot","identity":{"name":"godot","namespace":"xim"},"name":"godot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/godot.lua","ref":"","type":0,"version":""},"xim:graphics":{"canonical_name":"xim:graphics","description":"The xlings graphics stack: OpenGL that adapts to whatever GPU this host has","entry_key":"xim:graphics","identity":{"name":"graphics","namespace":"xim"},"name":"graphics","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/graphics.lua","ref":"","type":0,"version":""},"xim:griddycode":{"canonical_name":"xim:griddycode","description":"A code editor made with Godot. Code has never been more lit!","entry_key":"xim:griddycode","identity":{"name":"griddycode","namespace":"xim"},"name":"griddycode","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/griddycode.lua","ref":"","type":0,"version":""},"xim:harfbuzz":{"canonical_name":"xim:harfbuzz","description":"OpenType text shaping engine","entry_key":"xim:harfbuzz","identity":{"name":"harfbuzz","namespace":"xim"},"name":"harfbuzz","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/harfbuzz.lua","ref":"","type":0,"version":""},"xim:hermes-agent":{"canonical_name":"xim:hermes-agent","description":"The self-improving AI agent from Nous Research — creates skills from experience, improves them during use, and runs anywhere","entry_key":"xim:hermes-agent","identity":{"name":"hermes-agent","namespace":"xim"},"name":"hermes-agent","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/hermes-agent.lua","ref":"","type":0,"version":""},"xim:interposer-stub":{"canonical_name":"xim:interposer-stub","description":"Prebuilt empty ELF stub that elfpatch.host_link_interposer turns into an interposer","entry_key":"xim:interposer-stub","identity":{"name":"interposer-stub","namespace":"xim"},"name":"interposer-stub","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/i/interposer-stub.lua","ref":"","type":0,"version":""},"xim:jdk-corretto":{"canonical_name":"xim:jdk-corretto","description":"Amazon Corretto — a no-cost, production-ready distribution of OpenJDK (LTS)","entry_key":"xim:jdk-corretto","identity":{"name":"jdk-corretto","namespace":"xim"},"name":"jdk-corretto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-corretto.lua","ref":"","type":0,"version":""},"xim:jdk-temurin":{"canonical_name":"xim:jdk-temurin","description":"Eclipse Temurin JDK 25 — a production-ready binary build of OpenJDK (LTS)","entry_key":"xim:jdk-temurin","identity":{"name":"jdk-temurin","namespace":"xim"},"name":"jdk-temurin","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-temurin.lua","ref":"","type":0,"version":""},"xim:jdk-zulu":{"canonical_name":"xim:jdk-zulu","description":"Azul Zulu Community — a TCK-certified, no-cost build of OpenJDK (LTS)","entry_key":"xim:jdk-zulu","identity":{"name":"jdk-zulu","namespace":"xim"},"name":"jdk-zulu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-zulu.lua","ref":"","type":0,"version":""},"xim:jetbrainsmono-nerd-font":{"canonical_name":"xim:jetbrainsmono-nerd-font","description":"JetBrainsMono Nerd Font patched with terminal icons and glyphs","entry_key":"xim:jetbrainsmono-nerd-font","identity":{"name":"jetbrainsmono-nerd-font","namespace":"xim"},"name":"jetbrainsmono-nerd-font","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jetbrainsmono-nerd-font.lua","ref":"","type":0,"version":""},"xim:jq":{"canonical_name":"xim:jq","description":"Command-line JSON processor","entry_key":"xim:jq","identity":{"name":"jq","namespace":"xim"},"name":"jq","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jq.lua","ref":"","type":0,"version":""},"xim:khistory":{"canonical_name":"xim:khistory","description":"An elegant keyboard/gamepad key detection and visualization tool","entry_key":"xim:khistory","identity":{"name":"khistory","namespace":"xim"},"name":"khistory","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/k/khistory.lua","ref":"","type":0,"version":""},"xim:libX11":{"canonical_name":"xim:libX11","description":"Core X11 client library","entry_key":"xim:libX11","identity":{"name":"libX11","namespace":"xim"},"name":"libX11","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libX11.lua","ref":"","type":0,"version":""},"xim:libXau":{"canonical_name":"xim:libXau","description":"X11 authorisation protocol library","entry_key":"xim:libXau","identity":{"name":"libXau","namespace":"xim"},"name":"libXau","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXau.lua","ref":"","type":0,"version":""},"xim:libXcursor":{"canonical_name":"xim:libXcursor","description":"X cursor management library","entry_key":"xim:libXcursor","identity":{"name":"libXcursor","namespace":"xim"},"name":"libXcursor","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXcursor.lua","ref":"","type":0,"version":""},"xim:libXdmcp":{"canonical_name":"xim:libXdmcp","description":"X Display Manager Control Protocol library","entry_key":"xim:libXdmcp","identity":{"name":"libXdmcp","namespace":"xim"},"name":"libXdmcp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXdmcp.lua","ref":"","type":0,"version":""},"xim:libXext":{"canonical_name":"xim:libXext","description":"X11 miscellaneous extensions library","entry_key":"xim:libXext","identity":{"name":"libXext","namespace":"xim"},"name":"libXext","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXext.lua","ref":"","type":0,"version":""},"xim:libXfixes":{"canonical_name":"xim:libXfixes","description":"X Fixes extension client library","entry_key":"xim:libXfixes","identity":{"name":"libXfixes","namespace":"xim"},"name":"libXfixes","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXfixes.lua","ref":"","type":0,"version":""},"xim:libXi":{"canonical_name":"xim:libXi","description":"X Input Extension client library","entry_key":"xim:libXi","identity":{"name":"libXi","namespace":"xim"},"name":"libXi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXi.lua","ref":"","type":0,"version":""},"xim:libXinerama":{"canonical_name":"xim:libXinerama","description":"X11 Xinerama extension — multi-monitor screen geometry","entry_key":"xim:libXinerama","identity":{"name":"libXinerama","namespace":"xim"},"name":"libXinerama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXinerama.lua","ref":"","type":0,"version":""},"xim:libXrandr":{"canonical_name":"xim:libXrandr","description":"X Resize, Rotate and Reflect extension library","entry_key":"xim:libXrandr","identity":{"name":"libXrandr","namespace":"xim"},"name":"libXrandr","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrandr.lua","ref":"","type":0,"version":""},"xim:libXrender":{"canonical_name":"xim:libXrender","description":"X Rendering Extension client library","entry_key":"xim:libXrender","identity":{"name":"libXrender","namespace":"xim"},"name":"libXrender","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrender.lua","ref":"","type":0,"version":""},"xim:libXxf86vm":{"canonical_name":"xim:libXxf86vm","description":"X11 XFree86 video mode extension library","entry_key":"xim:libXxf86vm","identity":{"name":"libXxf86vm","namespace":"xim"},"name":"libXxf86vm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXxf86vm.lua","ref":"","type":0,"version":""},"xim:libcuda-host-link":{"canonical_name":"xim:libcuda-host-link","description":"Sentinel: stable symlink to host's libcuda.so.1 (NVIDIA driver userspace lib)","entry_key":"xim:libcuda-host-link","identity":{"name":"libcuda-host-link","namespace":"xim"},"name":"libcuda-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libcuda-host-link.lua","ref":"","type":0,"version":""},"xim:libdrm":{"canonical_name":"xim:libdrm","description":"Userspace interface to the kernel DRM services","entry_key":"xim:libdrm","identity":{"name":"libdrm","namespace":"xim"},"name":"libdrm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libdrm.lua","ref":"","type":0,"version":""},"xim:libffi":{"canonical_name":"xim:libffi","description":"Portable foreign-function interface library","entry_key":"xim:libffi","identity":{"name":"libffi","namespace":"xim"},"name":"libffi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libffi.lua","ref":"","type":0,"version":""},"xim:libglvnd":{"canonical_name":"xim:libglvnd","description":"The GL Vendor-Neutral Dispatch library","entry_key":"xim:libglvnd","identity":{"name":"libglvnd","namespace":"xim"},"name":"libglvnd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libglvnd.lua","ref":"","type":0,"version":""},"xim:libllvm":{"canonical_name":"xim:libllvm","description":"LLVM as a shared library — the code generator mesa's llvmpipe and radeonsi use","entry_key":"xim:libllvm","identity":{"name":"libllvm","namespace":"xim"},"name":"libllvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libllvm.lua","ref":"","type":0,"version":""},"xim:libpciaccess":{"canonical_name":"xim:libpciaccess","description":"Generic PCI device access library","entry_key":"xim:libpciaccess","identity":{"name":"libpciaccess","namespace":"xim"},"name":"libpciaccess","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpciaccess.lua","ref":"","type":0,"version":""},"xim:libpng":{"canonical_name":"xim:libpng","description":"Official PNG reference library","entry_key":"xim:libpng","identity":{"name":"libpng","namespace":"xim"},"name":"libpng","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpng.lua","ref":"","type":0,"version":""},"xim:libxcb":{"canonical_name":"xim:libxcb","description":"X protocol C-language Binding","entry_key":"xim:libxcb","identity":{"name":"libxcb","namespace":"xim"},"name":"libxcb","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxcb.lua","ref":"","type":0,"version":""},"xim:libxkbcommon":{"canonical_name":"xim:libxkbcommon","description":"Keymap handling library for Wayland and X11 clients","entry_key":"xim:libxkbcommon","identity":{"name":"libxkbcommon","namespace":"xim"},"name":"libxkbcommon","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxkbcommon.lua","ref":"","type":0,"version":""},"xim:libxml2":{"canonical_name":"xim:libxml2","description":"XML C parser and toolkit","entry_key":"xim:libxml2","identity":{"name":"libxml2","namespace":"xim"},"name":"libxml2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxml2.lua","ref":"","type":0,"version":""},"xim:libxshmfence":{"canonical_name":"xim:libxshmfence","description":"Shared-memory fences for DRI3","entry_key":"xim:libxshmfence","identity":{"name":"libxshmfence","namespace":"xim"},"name":"libxshmfence","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxshmfence.lua","ref":"","type":0,"version":""},"xim:linux-headers":{"canonical_name":"xim:linux-headers","description":"Linux Kernel Headers (prebuilt)","entry_key":"xim:linux-headers","identity":{"name":"linux-headers","namespace":"xim"},"name":"linux-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-headers.lua","ref":"","type":0,"version":""},"xim:linux-sysroot-create":{"canonical_name":"xim:linux-sysroot-create","description":"XScript: Linux Sysroot Create Tool","entry_key":"xim:linux-sysroot-create","identity":{"name":"linux-sysroot-create","namespace":"xim"},"name":"linux-sysroot-create","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-sysroot-create.lua","ref":"","type":1,"version":""},"xim:llvm":{"canonical_name":"xim:llvm","description":"LLVM compiler infrastructure and toolchain","entry_key":"xim:llvm","identity":{"name":"llvm","namespace":"xim"},"name":"llvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm.lua","ref":"","type":0,"version":""},"xim:llvm-tools":{"canonical_name":"xim:llvm-tools","description":"LLVM development tools (clang-format, clang-tidy, clangd)","entry_key":"xim:llvm-tools","identity":{"name":"llvm-tools","namespace":"xim"},"name":"llvm-tools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm-tools.lua","ref":"","type":0,"version":""},"xim:make":{"canonical_name":"xim:make","description":"GNU Make — tool which controls the generation of executables from source files","entry_key":"xim:make","identity":{"name":"make","namespace":"xim"},"name":"make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/make.lua","ref":"","type":0,"version":""},"xim:mcpp":{"canonical_name":"xim:mcpp","description":"A modern C++ build tool with module support, dependency/toolchain management, package indexing, and packaging","entry_key":"xim:mcpp","identity":{"name":"mcpp","namespace":"xim"},"name":"mcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp.lua","ref":"","type":0,"version":""},"xim:mcpp-short-cmd":{"canonical_name":"xim:mcpp-short-cmd","description":"Short command aliases for mcpp (mp/mbuild/mrun/mtest/...)","entry_key":"xim:mcpp-short-cmd","identity":{"name":"mcpp-short-cmd","namespace":"xim"},"name":"mcpp-short-cmd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-short-cmd.lua","ref":"","type":0,"version":""},"xim:mdbook":{"canonical_name":"xim:mdbook","description":"Create book from markdown files. Like Gitbook but implemented in Rust","entry_key":"xim:mdbook","identity":{"name":"mdbook","namespace":"xim"},"name":"mdbook","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mdbook.lua","ref":"","type":0,"version":""},"xim:media-crawler":{"canonical_name":"xim:media-crawler","description":"Multi-platform social media crawler (XHS, Douyin, Kuaishou, Bilibili, Weibo, Tieba, Zhihu) using Playwright","entry_key":"xim:media-crawler","identity":{"name":"media-crawler","namespace":"xim"},"name":"media-crawler","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/media-crawler.lua","ref":"","type":0,"version":""},"xim:mesa":{"canonical_name":"xim:mesa","description":"Mesa 3D — OpenGL and Vulkan: llvmpipe, radeonsi, nouveau, zink, RADV","entry_key":"xim:mesa","identity":{"name":"mesa","namespace":"xim"},"name":"mesa","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mesa.lua","ref":"","type":0,"version":""},"xim:mingw-cross-gcc":{"canonical_name":"xim:mingw-cross-gcc","description":"MinGW-w64 GCC cross toolchain (Linux host → Windows x86_64 PE, MSVCRT runtime)","entry_key":"xim:mingw-cross-gcc","identity":{"name":"mingw-cross-gcc","namespace":"xim"},"name":"mingw-cross-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-cross-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-gcc":{"canonical_name":"xim:mingw-gcc","description":"MinGW-w64 GCC for Windows (winlibs standalone build, UCRT runtime)","entry_key":"xim:mingw-gcc","identity":{"name":"mingw-gcc","namespace":"xim"},"name":"mingw-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-w64":{"canonical_name":"xim:mingw-w64","description":"A complete runtime environment for GCC & LLVM for Windows","entry_key":"xim:mingw-w64","identity":{"name":"mingw-w64","namespace":"xim"},"name":"mingw-w64","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-w64.lua","ref":"","type":0,"version":""},"xim:msvc":{"canonical_name":"xim:msvc","description":"Microsoft Visual Studio C++ Compiler","entry_key":"xim:msvc","identity":{"name":"msvc","namespace":"xim"},"name":"msvc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/msvc.lua","ref":"","type":3,"version":""},"xim:musl":{"canonical_name":"xim:musl","description":"musl - a lightweight, fast, simple, free, standards-conformant C library","entry_key":"xim:musl","identity":{"name":"musl","namespace":"xim"},"name":"musl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl.lua","ref":"","type":0,"version":""},"xim:musl-cross-make":{"canonical_name":"xim:musl-cross-make","description":"Simple makefile-based build for musl cross compiler","entry_key":"xim:musl-cross-make","identity":{"name":"musl-cross-make","namespace":"xim"},"name":"musl-cross-make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-cross-make.lua","ref":"","type":1,"version":""},"xim:musl-gcc":{"canonical_name":"xim:musl-gcc","description":"GCC, the GNU Compiler Collection (prebuilt with musl)","entry_key":"xim:musl-gcc","identity":{"name":"musl-gcc","namespace":"xim"},"name":"musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-gcc.lua","ref":"","type":0,"version":""},"xim:nasm":{"canonical_name":"xim:nasm","description":"NASM - the Netwide Assembler, an assembler targeting the x86/x86-64 CPU family","entry_key":"xim:nasm","identity":{"name":"nasm","namespace":"xim"},"name":"nasm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nasm.lua","ref":"","type":0,"version":""},"xim:ninja":{"canonical_name":"xim:ninja","description":"a small build system with a focus on speed","entry_key":"xim:ninja","identity":{"name":"ninja","namespace":"xim"},"name":"ninja","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/ninja.lua","ref":"","type":0,"version":""},"xim:node":{"canonical_name":"xim:node","description":"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine","entry_key":"xim:node","identity":{"name":"node","namespace":"xim"},"name":"node","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/node.lua","ref":"","type":0,"version":""},"xim:npm":{"canonical_name":"xim:npm","description":"The package manager for JavaScript","entry_key":"xim:npm","identity":{"name":"npm","namespace":"xim"},"name":"npm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/npm.lua","ref":"","type":0,"version":""},"xim:nvidia-gl-host-link":{"canonical_name":"xim:nvidia-gl-host-link","description":"Sentinel: stable symlinks to the host's NVIDIA proprietary GL/EGL userspace","entry_key":"xim:nvidia-gl-host-link","identity":{"name":"nvidia-gl-host-link","namespace":"xim"},"name":"nvidia-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvidia-gl-host-link.lua","ref":"","type":0,"version":""},"xim:nvim":{"canonical_name":"xim:nvim","description":"Vim-fork focused on extensibility and usability","entry_key":"xim:nvim","identity":{"name":"nvim","namespace":"xim"},"name":"nvim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvim.lua","ref":"","type":0,"version":""},"xim:nvm":{"canonical_name":"xim:nvm","description":"Node Version Manager - POSIX-compliant node.js version manager","entry_key":"xim:nvm","identity":{"name":"nvm","namespace":"xim"},"name":"nvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvm.lua","ref":"","type":0,"version":""},"xim:ollama":{"canonical_name":"xim:ollama","description":"Get up and running with large language models locally","entry_key":"xim:ollama","identity":{"name":"ollama","namespace":"xim"},"name":"ollama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/ollama.lua","ref":"","type":0,"version":""},"xim:openclaw":{"canonical_name":"xim:openclaw","description":"OpenClaw CLI","entry_key":"xim:openclaw","identity":{"name":"openclaw","namespace":"xim"},"name":"openclaw","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openclaw.lua","ref":"","type":0,"version":""},"xim:openssl":{"canonical_name":"xim:openssl","description":"TLS/SSL and cryptography toolkit","entry_key":"xim:openssl","identity":{"name":"openssl","namespace":"xim"},"name":"openssl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openssl.lua","ref":"","type":0,"version":""},"xim:pango":{"canonical_name":"xim:pango","description":"Library for layout and rendering of internationalized text","entry_key":"xim:pango","identity":{"name":"pango","namespace":"xim"},"name":"pango","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pango.lua","ref":"","type":0,"version":""},"xim:patchelf":{"canonical_name":"xim:patchelf","description":"ELF patch tool for interpreter and RPATH","entry_key":"xim:patchelf","identity":{"name":"patchelf","namespace":"xim"},"name":"patchelf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/patchelf.lua","ref":"","type":0,"version":""},"xim:pcre2":{"canonical_name":"xim:pcre2","description":"Perl Compatible Regular Expressions (v2)","entry_key":"xim:pcre2","identity":{"name":"pcre2","namespace":"xim"},"name":"pcre2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pcre2.lua","ref":"","type":0,"version":""},"xim:perl":{"canonical_name":"xim:perl","description":"Perl — a complete, relocatable Perl 5 interpreter with the full core module set","entry_key":"xim:perl","identity":{"name":"perl","namespace":"xim"},"name":"perl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/perl.lua","ref":"","type":0,"version":""},"xim:pixman":{"canonical_name":"xim:pixman","description":"Low-level pixel manipulation library (cairo backend)","entry_key":"xim:pixman","identity":{"name":"pixman","namespace":"xim"},"name":"pixman","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pixman.lua","ref":"","type":0,"version":""},"xim:pnpm":{"canonical_name":"xim:pnpm","description":"Fast, disk space efficient package manager","entry_key":"xim:pnpm","identity":{"name":"pnpm","namespace":"xim"},"name":"pnpm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pnpm.lua","ref":"","type":0,"version":""},"xim:project-graph":{"canonical_name":"xim:project-graph","description":"快速绘制节点图的桌面工具 - 项目进程拓扑图绘制、头脑风暴草稿","entry_key":"xim:project-graph","identity":{"name":"project-graph","namespace":"xim"},"name":"project-graph","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/project-graph.lua","ref":"","type":0,"version":""},"xim:proot":{"canonical_name":"xim:proot","description":"Userspace chroot, mount --bind, and binfmt_misc — no root required","entry_key":"xim:proot","identity":{"name":"proot","namespace":"xim"},"name":"proot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/proot.lua","ref":"","type":0,"version":""},"xim:python":{"canonical_name":"xim:python","description":"The Python programming language","entry_key":"xim:python","identity":{"name":"python","namespace":"xim"},"name":"python","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/python.lua","ref":"","type":0,"version":""},"xim:ripgrep":{"canonical_name":"xim:ripgrep","description":"Fast, recursive grep that respects .gitignore","entry_key":"xim:ripgrep","identity":{"name":"ripgrep","namespace":"xim"},"name":"ripgrep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ripgrep.lua","ref":"","type":0,"version":""},"xim:ros2-jazzy-ubnutu":{"canonical_name":"xim:ros2-jazzy-ubnutu","description":"Config: one-click ROS 2 Jazzy Jalisco setup for Ubuntu 24.04","entry_key":"xim:ros2-jazzy-ubnutu","identity":{"name":"ros2-jazzy-ubnutu","namespace":"xim"},"name":"ros2-jazzy-ubnutu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ros2-jazzy-ubuntu.lua","ref":"","type":3,"version":""},"xim:rosdep":{"canonical_name":"xim:rosdep","description":"ROS dependency management tool","entry_key":"xim:rosdep","identity":{"name":"rosdep","namespace":"xim"},"name":"rosdep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rosdep.lua","ref":"","type":0,"version":""},"xim:rust":{"canonical_name":"xim:rust","description":"A language empowering everyone to build reliable and efficient software","entry_key":"xim:rust","identity":{"name":"rust","namespace":"xim"},"name":"rust","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust.lua","ref":"","type":0,"version":""},"xim:rustup":{"canonical_name":"xim:rustup","description":"An installer init tool for Rustup, the Rust toolchain installer","entry_key":"xim:rustup","identity":{"name":"rustup","namespace":"xim"},"name":"rustup","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup.lua","ref":"","type":0,"version":""},"xim:seeme-report":{"canonical_name":"xim:seeme-report","description":"让别人知道你在干什么 seeme report端","entry_key":"xim:seeme-report","identity":{"name":"seeme-report","namespace":"xim"},"name":"seeme-report","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-report.lua","ref":"","type":0,"version":""},"xim:seeme-server":{"canonical_name":"xim:seeme-server","description":"让别人知道你在干什么 seeme 服务端","entry_key":"xim:seeme-server","identity":{"name":"seeme-server","namespace":"xim"},"name":"seeme-server","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-server.lua","ref":"","type":0,"version":""},"xim:shortcut-tool":{"canonical_name":"xim:shortcut-tool","description":"Shortcut Tool: Create and manage shortcuts easily","entry_key":"xim:shortcut-tool","identity":{"name":"shortcut-tool","namespace":"xim"},"name":"shortcut-tool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/shortcut-tool.lua","ref":"","type":1,"version":""},"xim:sing-box":{"canonical_name":"xim:sing-box","description":"The universal proxy platform","entry_key":"xim:sing-box","identity":{"name":"sing-box","namespace":"xim"},"name":"sing-box","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box.lua","ref":"","type":0,"version":""},"xim:sing-box-helper":{"canonical_name":"xim:sing-box-helper","description":"Sing-Box Helper Tools - Simple commands for server and client configuration","entry_key":"xim:sing-box-helper","identity":{"name":"sing-box-helper","namespace":"xim"},"name":"sing-box-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box-helper.lua","ref":"","type":1,"version":""},"xim:sourcetrail":{"canonical_name":"xim:sourcetrail","description":"Sourcetrail - free and open-source interactive source explorer","entry_key":"xim:sourcetrail","identity":{"name":"sourcetrail","namespace":"xim"},"name":"sourcetrail","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sourcetrail.lua","ref":"","type":0,"version":""},"xim:syslinux":{"canonical_name":"xim:syslinux","description":"SYSLINUX bootloader collection (isolinux, pxelinux, extlinux + EFI loaders)","entry_key":"xim:syslinux","identity":{"name":"syslinux","namespace":"xim"},"name":"syslinux","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/syslinux.lua","ref":"","type":0,"version":""},"xim:trendradar":{"canonical_name":"xim:trendradar","description":"AI-driven public opinion and trend monitor with multi-platform aggregation, RSS, and smart alerts","entry_key":"xim:trendradar","identity":{"name":"trendradar","namespace":"xim"},"name":"trendradar","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/t/trendradar.lua","ref":"","type":0,"version":""},"xim:uv":{"canonical_name":"xim:uv","description":"An extremely fast Python package and project manager (Astral)","entry_key":"xim:uv","identity":{"name":"uv","namespace":"xim"},"name":"uv","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/u/uv.lua","ref":"","type":0,"version":""},"xim:vc6":{"canonical_name":"xim:vc6","description":"Visual C++ 6.0: Classic C/C++ IDE (portable for Windows 10/11)","entry_key":"xim:vc6","identity":{"name":"vc6","namespace":"xim"},"name":"vc6","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vc6.lua","ref":"","type":0,"version":""},"xim:vcstool":{"canonical_name":"xim:vcstool","description":"Version control system tool for multiple repos (ROS vcstool)","entry_key":"xim:vcstool","identity":{"name":"vcstool","namespace":"xim"},"name":"vcstool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vcstool.lua","ref":"","type":0,"version":""},"xim:vim":{"canonical_name":"xim:vim","description":"The classic Vi IMproved text editor (statically linked, hermetic)","entry_key":"xim:vim","identity":{"name":"vim","namespace":"xim"},"name":"vim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vim.lua","ref":"","type":0,"version":""},"xim:virtualbox":{"canonical_name":"xim:virtualbox","description":"Oracle VM VirtualBox userspace + VBoxManage CLI (portable, alias: vbox)","entry_key":"xim:virtualbox","identity":{"name":"virtualbox","namespace":"xim"},"name":"virtualbox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox.lua","ref":"","type":0,"version":""},"xim:vs-buildtools":{"canonical_name":"xim:vs-buildtools","description":"Visual Studio Build Tools","entry_key":"xim:vs-buildtools","identity":{"name":"vs-buildtools","namespace":"xim"},"name":"vs-buildtools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vs-buildtools.lua","ref":"","type":3,"version":""},"xim:wayland":{"canonical_name":"xim:wayland","description":"Wayland protocol library and scanner","entry_key":"xim:wayland","identity":{"name":"wayland","namespace":"xim"},"name":"wayland","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland.lua","ref":"","type":0,"version":""},"xim:wayland-protocols":{"canonical_name":"xim:wayland-protocols","description":"Wayland protocol extension definitions (build-time)","entry_key":"xim:wayland-protocols","identity":{"name":"wayland-protocols","namespace":"xim"},"name":"wayland-protocols","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland-protocols.lua","ref":"","type":0,"version":""},"xim:windows-acp":{"canonical_name":"xim:windows-acp","description":"ACP: Beta: Use Unicode UTF-8 for worldwide language support","entry_key":"xim:windows-acp","identity":{"name":"windows-acp","namespace":"xim"},"name":"windows-acp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/windows-acp.lua","ref":"","type":0,"version":""},"xim:wsl-gl-host-link":{"canonical_name":"xim:wsl-gl-host-link","description":"Sentinel: links WSL2's host D3D12/DXCore userspace so mesa's d3d12 driver can reach the Windows GPU","entry_key":"xim:wsl-gl-host-link","identity":{"name":"wsl-gl-host-link","namespace":"xim"},"name":"wsl-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-gl-host-link.lua","ref":"","type":0,"version":""},"xim:wsl-ubuntu":{"canonical_name":"xim:wsl-ubuntu","description":"Windows Subsystem for Linux (WSL) Ubuntu","entry_key":"xim:wsl-ubuntu","identity":{"name":"wsl-ubuntu","namespace":"xim"},"name":"wsl-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-ubuntu.lua","ref":"","type":3,"version":""},"xim:x86_64-linux-musl-gcc":{"canonical_name":"xim:x86_64-linux-musl-gcc","description":"GCC cross toolchain targeting x86_64-linux-musl (musl, fully static ELF)","entry_key":"xim:x86_64-linux-musl-gcc","identity":{"name":"x86_64-linux-musl-gcc","namespace":"xim"},"name":"x86_64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/x86_64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:xcb-proto":{"canonical_name":"xim:xcb-proto","description":"XML-XCB protocol descriptions (build-time)","entry_key":"xim:xcb-proto","identity":{"name":"xcb-proto","namespace":"xim"},"name":"xcb-proto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xcb-proto.lua","ref":"","type":0,"version":""},"xim:xlings":{"canonical_name":"xim:xlings","description":"Xlings | Highly abstract [ package manager ] - \"Multi-version management + Everything can be a package\"","entry_key":"xim:xlings","identity":{"name":"xlings","namespace":"xim"},"name":"xlings","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings.lua","ref":"","type":0,"version":""},"xim:xlings-project-templates":{"canonical_name":"xim:xlings-project-templates","description":"Xlings - Project Templates","entry_key":"xim:xlings-project-templates","identity":{"name":"xlings-project-templates","namespace":"xim"},"name":"xlings-project-templates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings-project-templates.lua","ref":"","type":2,"version":""},"xim:xmake":{"canonical_name":"xim:xmake","description":"A cross-platform build utility based on Lua","entry_key":"xim:xmake","identity":{"name":"xmake","namespace":"xim"},"name":"xmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xmake.lua","ref":"","type":0,"version":""},"xim:xorgproto":{"canonical_name":"xim:xorgproto","description":"X Window System protocol headers (build-time)","entry_key":"xim:xorgproto","identity":{"name":"xorgproto","namespace":"xim"},"name":"xorgproto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xorgproto.lua","ref":"","type":0,"version":""},"xim:xpkg-helper":{"canonical_name":"xim:xpkg-helper","description":"XPKG: XPackage Helper Tools","entry_key":"xim:xpkg-helper","identity":{"name":"xpkg-helper","namespace":"xim"},"name":"xpkg-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xpkg-helper.lua","ref":"","type":1,"version":""},"xim:xtrans":{"canonical_name":"xim:xtrans","description":"X transport layer macros and headers (build-time)","entry_key":"xim:xtrans","identity":{"name":"xtrans","namespace":"xim"},"name":"xtrans","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xtrans.lua","ref":"","type":0,"version":""},"xim:xvm":{"canonical_name":"xim:xvm","description":"a simple and generic version management tool","entry_key":"xim:xvm","identity":{"name":"xvm","namespace":"xim"},"name":"xvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm.lua","ref":"","type":0,"version":""},"xim:xvm-sysdetect":{"canonical_name":"xim:xvm-sysdetect","description":"XVM - System Package Detect Tools","entry_key":"xim:xvm-sysdetect","identity":{"name":"xvm-sysdetect","namespace":"xim"},"name":"xvm-sysdetect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm-sysdetect.lua","ref":"","type":3,"version":""},"xim:yazi":{"canonical_name":"xim:yazi","description":"Blazing fast terminal file manager written in Rust, based on async I/O","entry_key":"xim:yazi","identity":{"name":"yazi","namespace":"xim"},"name":"yazi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/y/yazi.lua","ref":"","type":0,"version":""},"xim:zlib":{"canonical_name":"xim:zlib","description":"A massively spiffy yet delicately unobtrusive compression library","entry_key":"xim:zlib","identity":{"name":"zlib","namespace":"xim"},"name":"zlib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zlib.lua","ref":"","type":0,"version":""},"xim:zoxide":{"canonical_name":"xim:zoxide","description":"A smarter cd command — jump to your most-used directories","entry_key":"xim:zoxide","identity":{"name":"zoxide","namespace":"xim"},"name":"zoxide","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zoxide.lua","ref":"","type":0,"version":""}},"mutex_groups":{},"repo_head_hash":"6ad8acdfe39a2c731ad119356d0738b1180830c4","version":2} \ No newline at end of file +{"default_namespace":"xim","entries":{"config:claude-llm":{"canonical_name":"config:claude-llm","description":"Configure Claude Code to use DeepSeek Anthropic-compatible API","entry_key":"config:claude-llm","identity":{"name":"claude-llm","namespace":"config"},"name":"claude-llm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude-llm.lua","ref":"","type":3,"version":""},"config:fontconfig-user-moyingji":{"canonical_name":"config:fontconfig-user-moyingji","description":"Basic user configuration for Linux Fontconfig written by MoYingJi","entry_key":"config:fontconfig-user-moyingji","identity":{"name":"fontconfig-user-moyingji","namespace":"config"},"name":"fontconfig-user-moyingji","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig-user-moyingji.lua","ref":"","type":3,"version":""},"config:gitcode-hosts":{"canonical_name":"config:gitcode-hosts","description":"Config gitcode.com ip mapping-groups to hosts file","entry_key":"config:gitcode-hosts","identity":{"name":"gitcode-hosts","namespace":"config"},"name":"gitcode-hosts","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gitcode-hosts.lua","ref":"","type":3,"version":""},"config:mcpp-vscode-clangd":{"canonical_name":"config:mcpp-vscode-clangd","description":"Configure VSCode clangd support for mcpp LLVM projects","entry_key":"config:mcpp-vscode-clangd","identity":{"name":"mcpp-vscode-clangd","namespace":"config"},"name":"mcpp-vscode-clangd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-vscode-clangd.lua","ref":"","type":3,"version":""},"config:powershell-execpolicy":{"canonical_name":"config:powershell-execpolicy","description":"fix execution policy issue when open Powershell(load .ps1 file)","entry_key":"config:powershell-execpolicy","identity":{"name":"powershell-execpolicy","namespace":"config"},"name":"powershell-execpolicy","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/powershell-execpolicy.lua","ref":"","type":0,"version":""},"config:rust-crates-mirror":{"canonical_name":"config:rust-crates-mirror","description":"Config Index Mirror for Rust Crates (Cargo)","entry_key":"config:rust-crates-mirror","identity":{"name":"rust-crates-mirror","namespace":"config"},"name":"rust-crates-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust-crates-mirror.lua","ref":"","type":3,"version":""},"config:rustup-mirror":{"canonical_name":"config:rustup-mirror","description":"Config Mirror for Rustup","entry_key":"config:rustup-mirror","identity":{"name":"rustup-mirror","namespace":"config"},"name":"rustup-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup-mirror.lua","ref":"","type":3,"version":""},"config:virtualbox-ubuntu":{"canonical_name":"config:virtualbox-ubuntu","description":"Provision a ready-to-use Ubuntu 24.04 VM in VirtualBox (unattended install)","entry_key":"config:virtualbox-ubuntu","identity":{"name":"virtualbox-ubuntu","namespace":"config"},"name":"virtualbox-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox-ubuntu.lua","ref":"","type":0,"version":""},"xim:7zip":{"canonical_name":"xim:7zip","description":"7-Zip — a file archiver with a high compression ratio","entry_key":"xim:7zip","identity":{"name":"7zip","namespace":"xim"},"name":"7zip","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/7/7zip.lua","ref":"","type":0,"version":""},"xim:aarch64-linux-musl-gcc":{"canonical_name":"xim:aarch64-linux-musl-gcc","description":"Cross GCC toolchain: host -> aarch64-linux-musl (musl, static-capable)","entry_key":"xim:aarch64-linux-musl-gcc","identity":{"name":"aarch64-linux-musl-gcc","namespace":"xim"},"name":"aarch64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aarch64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:aria2-next":{"canonical_name":"xim:aria2-next","description":"Aria2 Next — a maintained aria2 fork with extensive bug fixes and a modernized architecture","entry_key":"xim:aria2-next","identity":{"name":"aria2-next","namespace":"xim"},"name":"aria2-next","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aria2-next.lua","ref":"","type":0,"version":""},"xim:bat":{"canonical_name":"xim:bat","description":"A cat clone with syntax highlighting and Git integration","entry_key":"xim:bat","identity":{"name":"bat","namespace":"xim"},"name":"bat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bat.lua","ref":"","type":0,"version":""},"xim:binutils":{"canonical_name":"xim:binutils","description":"The GNU Binutils are a collection of binary tools","entry_key":"xim:binutils","identity":{"name":"binutils","namespace":"xim"},"name":"binutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/binutils.lua","ref":"","type":0,"version":""},"xim:brew":{"canonical_name":"xim:brew","description":"Homebrew: The Missing Package Manager for macOS (or Linux)","entry_key":"xim:brew","identity":{"name":"brew","namespace":"xim"},"name":"brew","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/brew.lua","ref":"","type":0,"version":""},"xim:bun":{"canonical_name":"xim:bun","description":"Bun is an all-in-one toolkit for JavaScript and TypeScript apps","entry_key":"xim:bun","identity":{"name":"bun","namespace":"xim"},"name":"bun","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bun.lua","ref":"","type":0,"version":""},"xim:busybox":{"canonical_name":"xim:busybox","description":"The Swiss Army Knife of Embedded Linux — single static binary providing 400+ POSIX utilities","entry_key":"xim:busybox","identity":{"name":"busybox","namespace":"xim"},"name":"busybox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/busybox.lua","ref":"","type":0,"version":""},"xim:bwrap":{"canonical_name":"xim:bwrap","description":"Bubblewrap — namespace-based sandboxing tool (setuid mode for cross-distro compat)","entry_key":"xim:bwrap","identity":{"name":"bwrap","namespace":"xim"},"name":"bwrap","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bwrap.lua","ref":"","type":0,"version":""},"xim:ca-certificates":{"canonical_name":"xim:ca-certificates","description":"Mozilla CA root bundle (extracted by curl.se)","entry_key":"xim:ca-certificates","identity":{"name":"ca-certificates","namespace":"xim"},"name":"ca-certificates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/ca-certificates.lua","ref":"","type":0,"version":""},"xim:cairo":{"canonical_name":"xim:cairo","description":"2D graphics library (xcb-free / headless build for manim)","entry_key":"xim:cairo","identity":{"name":"cairo","namespace":"xim"},"name":"cairo","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cairo.lua","ref":"","type":0,"version":""},"xim:cc-connect":{"canonical_name":"xim:cc-connect","description":"Bridge local AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, etc.) to messaging platforms (Feishu, Slack, Telegram, Discord, ...)","entry_key":"xim:cc-connect","identity":{"name":"cc-connect","namespace":"xim"},"name":"cc-connect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-connect.lua","ref":"","type":0,"version":""},"xim:cc-switch":{"canonical_name":"xim:cc-switch","description":"Cross-platform desktop tool for switching providers across Claude Code / Codex / OpenCode / Gemini CLI / openclaw","entry_key":"xim:cc-switch","identity":{"name":"cc-switch","namespace":"xim"},"name":"cc-switch","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-switch.lua","ref":"","type":0,"version":""},"xim:claude":{"canonical_name":"xim:claude","description":"Claude Code CLI from Anthropic","entry_key":"xim:claude","identity":{"name":"claude","namespace":"xim"},"name":"claude","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude.lua","ref":"","type":0,"version":""},"xim:cmake":{"canonical_name":"xim:cmake","description":"A Powerful Software Build System","entry_key":"xim:cmake","identity":{"name":"cmake","namespace":"xim"},"name":"cmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cmake.lua","ref":"","type":0,"version":""},"xim:code":{"canonical_name":"xim:code","description":"Visual Studio Code","entry_key":"xim:code","identity":{"name":"code","namespace":"xim"},"name":"code","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/code.lua","ref":"","type":0,"version":""},"xim:codex":{"canonical_name":"xim:codex","description":"Codex CLI from OpenAI","entry_key":"xim:codex","identity":{"name":"codex","namespace":"xim"},"name":"codex","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/codex.lua","ref":"","type":0,"version":""},"xim:configure-project-installer":{"canonical_name":"xim:configure-project-installer","description":"Build & Install (from source) helper tools for ./configure-based projects","entry_key":"xim:configure-project-installer","identity":{"name":"configure-project-installer","namespace":"xim"},"name":"configure-project-installer","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/configure-project-installer.lua","ref":"","type":1,"version":""},"xim:cpp":{"canonical_name":"xim:cpp","description":"C++ language toolchain","entry_key":"xim:cpp","identity":{"name":"cpp","namespace":"xim"},"name":"cpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cpp.lua","ref":"","type":3,"version":""},"xim:d2x":{"canonical_name":"xim:d2x","description":"xlings's d2x tool","entry_key":"xim:d2x","identity":{"name":"d2x","namespace":"xim"},"name":"d2x","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/d2x.lua","ref":"","type":0,"version":""},"xim:dash":{"canonical_name":"xim:dash","description":"Debian Almquist Shell — small POSIX-compliant shell","entry_key":"xim:dash","identity":{"name":"dash","namespace":"xim"},"name":"dash","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dash.lua","ref":"","type":0,"version":""},"xim:devcpp":{"canonical_name":"xim:devcpp","description":"Dev-C++: A full-featured Integrated Development Environment (IDE) for the C/C++","entry_key":"xim:devcpp","identity":{"name":"devcpp","namespace":"xim"},"name":"devcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/devcpp.lua","ref":"","type":0,"version":""},"xim:dotnet":{"canonical_name":"xim:dotnet","description":".NET is the free, open-source, cross-platform framework","entry_key":"xim:dotnet","identity":{"name":"dotnet","namespace":"xim"},"name":"dotnet","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dotnet.lua","ref":"","type":0,"version":""},"xim:e2fsprogs":{"canonical_name":"xim:e2fsprogs","description":"ext2/ext3/ext4 filesystem utilities (mke2fs, e2fsck, tune2fs, resize2fs, debugfs)","entry_key":"xim:e2fsprogs","identity":{"name":"e2fsprogs","namespace":"xim"},"name":"e2fsprogs","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/e2fsprogs.lua","ref":"","type":0,"version":""},"xim:elfutils":{"canonical_name":"xim:elfutils","description":"ELF object file access library — libelf, for radeonsi","entry_key":"xim:elfutils","identity":{"name":"elfutils","namespace":"xim"},"name":"elfutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/elfutils.lua","ref":"","type":0,"version":""},"xim:expat":{"canonical_name":"xim:expat","description":"Fast streaming XML parser library","entry_key":"xim:expat","identity":{"name":"expat","namespace":"xim"},"name":"expat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/expat.lua","ref":"","type":0,"version":""},"xim:fd":{"canonical_name":"xim:fd","description":"Simple, fast, user-friendly alternative to find","entry_key":"xim:fd","identity":{"name":"fd","namespace":"xim"},"name":"fd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fd.lua","ref":"","type":0,"version":""},"xim:fish":{"canonical_name":"xim:fish","description":"Friendly interactive shell — smart, user-friendly, modern command-line","entry_key":"xim:fish","identity":{"name":"fish","namespace":"xim"},"name":"fish","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fish.lua","ref":"","type":0,"version":""},"xim:fontconfig":{"canonical_name":"xim:fontconfig","description":"Library for configuring and customizing font access","entry_key":"xim:fontconfig","identity":{"name":"fontconfig","namespace":"xim"},"name":"fontconfig","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig.lua","ref":"","type":0,"version":""},"xim:freetype":{"canonical_name":"xim:freetype","description":"A freely available software library to render fonts","entry_key":"xim:freetype","identity":{"name":"freetype","namespace":"xim"},"name":"freetype","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/freetype.lua","ref":"","type":0,"version":""},"xim:fribidi":{"canonical_name":"xim:fribidi","description":"Free Implementation of the Unicode Bidirectional Algorithm","entry_key":"xim:fribidi","identity":{"name":"fribidi","namespace":"xim"},"name":"fribidi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fribidi.lua","ref":"","type":0,"version":""},"xim:fzf":{"canonical_name":"xim:fzf","description":"A command-line fuzzy finder","entry_key":"xim:fzf","identity":{"name":"fzf","namespace":"xim"},"name":"fzf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fzf.lua","ref":"","type":0,"version":""},"xim:gcc":{"canonical_name":"xim:gcc","description":"GCC, the GNU Compiler Collection","entry_key":"xim:gcc","identity":{"name":"gcc","namespace":"xim"},"name":"gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc.lua","ref":"","type":0,"version":""},"xim:gcc-runtime":{"canonical_name":"xim:gcc-runtime","description":"GCC runtime libraries (libstdc++, libgcc_s, libgomp, libatomic, libitm, libquadmath, libssp) — required by virtually every C++ binary on Linux, including Clang-built ones","entry_key":"xim:gcc-runtime","identity":{"name":"gcc-runtime","namespace":"xim"},"name":"gcc-runtime","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-runtime.lua","ref":"","type":0,"version":""},"xim:gcc-specs-config":{"canonical_name":"xim:gcc-specs-config","description":"XScript: GCC Specs Config Tool","entry_key":"xim:gcc-specs-config","identity":{"name":"gcc-specs-config","namespace":"xim"},"name":"gcc-specs-config","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-specs-config.lua","ref":"","type":1,"version":""},"xim:git":{"canonical_name":"xim:git","description":"Git is a free and open source distributed version control system","entry_key":"xim:git","identity":{"name":"git","namespace":"xim"},"name":"git","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git.lua","ref":"","type":0,"version":""},"xim:git-autosync":{"canonical_name":"xim:git-autosync","description":"XScript: Git AutoSync Tools","entry_key":"xim:git-autosync","identity":{"name":"git-autosync","namespace":"xim"},"name":"git-autosync","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git-autosync.lua","ref":"","type":1,"version":""},"xim:github-gh":{"canonical_name":"xim:github-gh","description":"GitHub's official command line tool","entry_key":"xim:github-gh","identity":{"name":"github-gh","namespace":"xim"},"name":"github-gh","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-gh.lua","ref":"","type":0,"version":""},"xim:github-notifications-clear":{"canonical_name":"xim:github-notifications-clear","description":"Clear github's notifications (unread)","entry_key":"xim:github-notifications-clear","identity":{"name":"github-notifications-clear","namespace":"xim"},"name":"github-notifications-clear","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-notifications-clear.lua","ref":"","type":1,"version":""},"xim:glib":{"canonical_name":"xim:glib","description":"Low-level core library (GLib/GObject/GIO)","entry_key":"xim:glib","identity":{"name":"glib","namespace":"xim"},"name":"glib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glib.lua","ref":"","type":0,"version":""},"xim:glibc":{"canonical_name":"xim:glibc","description":"The GNU C Library","entry_key":"xim:glibc","identity":{"name":"glibc","namespace":"xim"},"name":"glibc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glibc.lua","ref":"","type":0,"version":""},"xim:glslang":{"canonical_name":"xim:glslang","description":"Khronos reference GLSL/ESSL front end and validator (build-time)","entry_key":"xim:glslang","identity":{"name":"glslang","namespace":"xim"},"name":"glslang","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glslang.lua","ref":"","type":0,"version":""},"xim:go":{"canonical_name":"xim:go","description":"The Go programming language","entry_key":"xim:go","identity":{"name":"go","namespace":"xim"},"name":"go","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/go.lua","ref":"","type":0,"version":""},"xim:godot":{"canonical_name":"xim:godot","description":"Godot Engine - multi-platform 2D and 3D game engine (editor + headless export runner)","entry_key":"xim:godot","identity":{"name":"godot","namespace":"xim"},"name":"godot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/godot.lua","ref":"","type":0,"version":""},"xim:graphics":{"canonical_name":"xim:graphics","description":"The xlings graphics stack: OpenGL that adapts to whatever GPU this host has","entry_key":"xim:graphics","identity":{"name":"graphics","namespace":"xim"},"name":"graphics","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/graphics.lua","ref":"","type":0,"version":""},"xim:griddycode":{"canonical_name":"xim:griddycode","description":"A code editor made with Godot. Code has never been more lit!","entry_key":"xim:griddycode","identity":{"name":"griddycode","namespace":"xim"},"name":"griddycode","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/griddycode.lua","ref":"","type":0,"version":""},"xim:harfbuzz":{"canonical_name":"xim:harfbuzz","description":"OpenType text shaping engine","entry_key":"xim:harfbuzz","identity":{"name":"harfbuzz","namespace":"xim"},"name":"harfbuzz","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/harfbuzz.lua","ref":"","type":0,"version":""},"xim:hermes-agent":{"canonical_name":"xim:hermes-agent","description":"The self-improving AI agent from Nous Research — creates skills from experience, improves them during use, and runs anywhere","entry_key":"xim:hermes-agent","identity":{"name":"hermes-agent","namespace":"xim"},"name":"hermes-agent","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/hermes-agent.lua","ref":"","type":0,"version":""},"xim:interposer-stub":{"canonical_name":"xim:interposer-stub","description":"Prebuilt empty ELF stub that elfpatch.host_link_interposer turns into an interposer","entry_key":"xim:interposer-stub","identity":{"name":"interposer-stub","namespace":"xim"},"name":"interposer-stub","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/i/interposer-stub.lua","ref":"","type":0,"version":""},"xim:jdk-corretto":{"canonical_name":"xim:jdk-corretto","description":"Amazon Corretto — a no-cost, production-ready distribution of OpenJDK (LTS)","entry_key":"xim:jdk-corretto","identity":{"name":"jdk-corretto","namespace":"xim"},"name":"jdk-corretto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-corretto.lua","ref":"","type":0,"version":""},"xim:jdk-temurin":{"canonical_name":"xim:jdk-temurin","description":"Eclipse Temurin JDK 25 — a production-ready binary build of OpenJDK (LTS)","entry_key":"xim:jdk-temurin","identity":{"name":"jdk-temurin","namespace":"xim"},"name":"jdk-temurin","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-temurin.lua","ref":"","type":0,"version":""},"xim:jdk-zulu":{"canonical_name":"xim:jdk-zulu","description":"Azul Zulu Community — a TCK-certified, no-cost build of OpenJDK (LTS)","entry_key":"xim:jdk-zulu","identity":{"name":"jdk-zulu","namespace":"xim"},"name":"jdk-zulu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-zulu.lua","ref":"","type":0,"version":""},"xim:jetbrainsmono-nerd-font":{"canonical_name":"xim:jetbrainsmono-nerd-font","description":"JetBrainsMono Nerd Font patched with terminal icons and glyphs","entry_key":"xim:jetbrainsmono-nerd-font","identity":{"name":"jetbrainsmono-nerd-font","namespace":"xim"},"name":"jetbrainsmono-nerd-font","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jetbrainsmono-nerd-font.lua","ref":"","type":0,"version":""},"xim:jq":{"canonical_name":"xim:jq","description":"Command-line JSON processor","entry_key":"xim:jq","identity":{"name":"jq","namespace":"xim"},"name":"jq","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jq.lua","ref":"","type":0,"version":""},"xim:khistory":{"canonical_name":"xim:khistory","description":"An elegant keyboard/gamepad key detection and visualization tool","entry_key":"xim:khistory","identity":{"name":"khistory","namespace":"xim"},"name":"khistory","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/k/khistory.lua","ref":"","type":0,"version":""},"xim:libX11":{"canonical_name":"xim:libX11","description":"Core X11 client library","entry_key":"xim:libX11","identity":{"name":"libX11","namespace":"xim"},"name":"libX11","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libX11.lua","ref":"","type":0,"version":""},"xim:libXau":{"canonical_name":"xim:libXau","description":"X11 authorisation protocol library","entry_key":"xim:libXau","identity":{"name":"libXau","namespace":"xim"},"name":"libXau","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXau.lua","ref":"","type":0,"version":""},"xim:libXcursor":{"canonical_name":"xim:libXcursor","description":"X cursor management library","entry_key":"xim:libXcursor","identity":{"name":"libXcursor","namespace":"xim"},"name":"libXcursor","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXcursor.lua","ref":"","type":0,"version":""},"xim:libXdmcp":{"canonical_name":"xim:libXdmcp","description":"X Display Manager Control Protocol library","entry_key":"xim:libXdmcp","identity":{"name":"libXdmcp","namespace":"xim"},"name":"libXdmcp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXdmcp.lua","ref":"","type":0,"version":""},"xim:libXext":{"canonical_name":"xim:libXext","description":"X11 miscellaneous extensions library","entry_key":"xim:libXext","identity":{"name":"libXext","namespace":"xim"},"name":"libXext","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXext.lua","ref":"","type":0,"version":""},"xim:libXfixes":{"canonical_name":"xim:libXfixes","description":"X Fixes extension client library","entry_key":"xim:libXfixes","identity":{"name":"libXfixes","namespace":"xim"},"name":"libXfixes","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXfixes.lua","ref":"","type":0,"version":""},"xim:libXi":{"canonical_name":"xim:libXi","description":"X Input Extension client library","entry_key":"xim:libXi","identity":{"name":"libXi","namespace":"xim"},"name":"libXi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXi.lua","ref":"","type":0,"version":""},"xim:libXinerama":{"canonical_name":"xim:libXinerama","description":"X11 Xinerama extension — multi-monitor screen geometry","entry_key":"xim:libXinerama","identity":{"name":"libXinerama","namespace":"xim"},"name":"libXinerama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXinerama.lua","ref":"","type":0,"version":""},"xim:libXrandr":{"canonical_name":"xim:libXrandr","description":"X Resize, Rotate and Reflect extension library","entry_key":"xim:libXrandr","identity":{"name":"libXrandr","namespace":"xim"},"name":"libXrandr","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrandr.lua","ref":"","type":0,"version":""},"xim:libXrender":{"canonical_name":"xim:libXrender","description":"X Rendering Extension client library","entry_key":"xim:libXrender","identity":{"name":"libXrender","namespace":"xim"},"name":"libXrender","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrender.lua","ref":"","type":0,"version":""},"xim:libXxf86vm":{"canonical_name":"xim:libXxf86vm","description":"X11 XFree86 video mode extension library","entry_key":"xim:libXxf86vm","identity":{"name":"libXxf86vm","namespace":"xim"},"name":"libXxf86vm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXxf86vm.lua","ref":"","type":0,"version":""},"xim:libcuda-host-link":{"canonical_name":"xim:libcuda-host-link","description":"Sentinel: stable symlink to host's libcuda.so.1 (NVIDIA driver userspace lib)","entry_key":"xim:libcuda-host-link","identity":{"name":"libcuda-host-link","namespace":"xim"},"name":"libcuda-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libcuda-host-link.lua","ref":"","type":0,"version":""},"xim:libdrm":{"canonical_name":"xim:libdrm","description":"Userspace interface to the kernel DRM services","entry_key":"xim:libdrm","identity":{"name":"libdrm","namespace":"xim"},"name":"libdrm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libdrm.lua","ref":"","type":0,"version":""},"xim:libffi":{"canonical_name":"xim:libffi","description":"Portable foreign-function interface library","entry_key":"xim:libffi","identity":{"name":"libffi","namespace":"xim"},"name":"libffi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libffi.lua","ref":"","type":0,"version":""},"xim:libglvnd":{"canonical_name":"xim:libglvnd","description":"The GL Vendor-Neutral Dispatch library","entry_key":"xim:libglvnd","identity":{"name":"libglvnd","namespace":"xim"},"name":"libglvnd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libglvnd.lua","ref":"","type":0,"version":""},"xim:libllvm":{"canonical_name":"xim:libllvm","description":"LLVM as a shared library — the code generator mesa's llvmpipe and radeonsi use","entry_key":"xim:libllvm","identity":{"name":"libllvm","namespace":"xim"},"name":"libllvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libllvm.lua","ref":"","type":0,"version":""},"xim:libpciaccess":{"canonical_name":"xim:libpciaccess","description":"Generic PCI device access library","entry_key":"xim:libpciaccess","identity":{"name":"libpciaccess","namespace":"xim"},"name":"libpciaccess","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpciaccess.lua","ref":"","type":0,"version":""},"xim:libpng":{"canonical_name":"xim:libpng","description":"Official PNG reference library","entry_key":"xim:libpng","identity":{"name":"libpng","namespace":"xim"},"name":"libpng","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpng.lua","ref":"","type":0,"version":""},"xim:libxcb":{"canonical_name":"xim:libxcb","description":"X protocol C-language Binding","entry_key":"xim:libxcb","identity":{"name":"libxcb","namespace":"xim"},"name":"libxcb","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxcb.lua","ref":"","type":0,"version":""},"xim:libxkbcommon":{"canonical_name":"xim:libxkbcommon","description":"Keymap handling library for Wayland and X11 clients","entry_key":"xim:libxkbcommon","identity":{"name":"libxkbcommon","namespace":"xim"},"name":"libxkbcommon","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxkbcommon.lua","ref":"","type":0,"version":""},"xim:libxml2":{"canonical_name":"xim:libxml2","description":"XML C parser and toolkit","entry_key":"xim:libxml2","identity":{"name":"libxml2","namespace":"xim"},"name":"libxml2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxml2.lua","ref":"","type":0,"version":""},"xim:libxshmfence":{"canonical_name":"xim:libxshmfence","description":"Shared-memory fences for DRI3","entry_key":"xim:libxshmfence","identity":{"name":"libxshmfence","namespace":"xim"},"name":"libxshmfence","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxshmfence.lua","ref":"","type":0,"version":""},"xim:linux-headers":{"canonical_name":"xim:linux-headers","description":"Linux Kernel Headers (prebuilt)","entry_key":"xim:linux-headers","identity":{"name":"linux-headers","namespace":"xim"},"name":"linux-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-headers.lua","ref":"","type":0,"version":""},"xim:linux-sysroot-create":{"canonical_name":"xim:linux-sysroot-create","description":"XScript: Linux Sysroot Create Tool","entry_key":"xim:linux-sysroot-create","identity":{"name":"linux-sysroot-create","namespace":"xim"},"name":"linux-sysroot-create","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-sysroot-create.lua","ref":"","type":1,"version":""},"xim:llvm":{"canonical_name":"xim:llvm","description":"LLVM compiler infrastructure and toolchain","entry_key":"xim:llvm","identity":{"name":"llvm","namespace":"xim"},"name":"llvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm.lua","ref":"","type":0,"version":""},"xim:llvm-tools":{"canonical_name":"xim:llvm-tools","description":"LLVM development tools (clang-format, clang-tidy, clangd)","entry_key":"xim:llvm-tools","identity":{"name":"llvm-tools","namespace":"xim"},"name":"llvm-tools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm-tools.lua","ref":"","type":0,"version":""},"xim:make":{"canonical_name":"xim:make","description":"GNU Make — tool which controls the generation of executables from source files","entry_key":"xim:make","identity":{"name":"make","namespace":"xim"},"name":"make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/make.lua","ref":"","type":0,"version":""},"xim:mcpp":{"canonical_name":"xim:mcpp","description":"A modern C++ build tool with module support, dependency/toolchain management, package indexing, and packaging","entry_key":"xim:mcpp","identity":{"name":"mcpp","namespace":"xim"},"name":"mcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp.lua","ref":"","type":0,"version":""},"xim:mcpp-short-cmd":{"canonical_name":"xim:mcpp-short-cmd","description":"Short command aliases for mcpp (mp/mbuild/mrun/mtest/...)","entry_key":"xim:mcpp-short-cmd","identity":{"name":"mcpp-short-cmd","namespace":"xim"},"name":"mcpp-short-cmd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-short-cmd.lua","ref":"","type":0,"version":""},"xim:mdbook":{"canonical_name":"xim:mdbook","description":"Create book from markdown files. Like Gitbook but implemented in Rust","entry_key":"xim:mdbook","identity":{"name":"mdbook","namespace":"xim"},"name":"mdbook","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mdbook.lua","ref":"","type":0,"version":""},"xim:media-crawler":{"canonical_name":"xim:media-crawler","description":"Multi-platform social media crawler (XHS, Douyin, Kuaishou, Bilibili, Weibo, Tieba, Zhihu) using Playwright","entry_key":"xim:media-crawler","identity":{"name":"media-crawler","namespace":"xim"},"name":"media-crawler","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/media-crawler.lua","ref":"","type":0,"version":""},"xim:mesa":{"canonical_name":"xim:mesa","description":"Mesa 3D — OpenGL and Vulkan: llvmpipe, radeonsi, nouveau, zink, RADV","entry_key":"xim:mesa","identity":{"name":"mesa","namespace":"xim"},"name":"mesa","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mesa.lua","ref":"","type":0,"version":""},"xim:mingw-cross-gcc":{"canonical_name":"xim:mingw-cross-gcc","description":"MinGW-w64 GCC cross toolchain (Linux host → Windows x86_64 PE, MSVCRT runtime)","entry_key":"xim:mingw-cross-gcc","identity":{"name":"mingw-cross-gcc","namespace":"xim"},"name":"mingw-cross-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-cross-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-gcc":{"canonical_name":"xim:mingw-gcc","description":"MinGW-w64 GCC for Windows (winlibs standalone build, UCRT runtime)","entry_key":"xim:mingw-gcc","identity":{"name":"mingw-gcc","namespace":"xim"},"name":"mingw-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-w64":{"canonical_name":"xim:mingw-w64","description":"A complete runtime environment for GCC & LLVM for Windows","entry_key":"xim:mingw-w64","identity":{"name":"mingw-w64","namespace":"xim"},"name":"mingw-w64","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-w64.lua","ref":"","type":0,"version":""},"xim:msvc":{"canonical_name":"xim:msvc","description":"Microsoft Visual Studio C++ Compiler","entry_key":"xim:msvc","identity":{"name":"msvc","namespace":"xim"},"name":"msvc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/msvc.lua","ref":"","type":3,"version":""},"xim:musl":{"canonical_name":"xim:musl","description":"musl - a lightweight, fast, simple, free, standards-conformant C library","entry_key":"xim:musl","identity":{"name":"musl","namespace":"xim"},"name":"musl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl.lua","ref":"","type":0,"version":""},"xim:musl-cross-make":{"canonical_name":"xim:musl-cross-make","description":"Simple makefile-based build for musl cross compiler","entry_key":"xim:musl-cross-make","identity":{"name":"musl-cross-make","namespace":"xim"},"name":"musl-cross-make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-cross-make.lua","ref":"","type":1,"version":""},"xim:musl-gcc":{"canonical_name":"xim:musl-gcc","description":"GCC, the GNU Compiler Collection (prebuilt with musl)","entry_key":"xim:musl-gcc","identity":{"name":"musl-gcc","namespace":"xim"},"name":"musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-gcc.lua","ref":"","type":0,"version":""},"xim:nasm":{"canonical_name":"xim:nasm","description":"NASM - the Netwide Assembler, an assembler targeting the x86/x86-64 CPU family","entry_key":"xim:nasm","identity":{"name":"nasm","namespace":"xim"},"name":"nasm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nasm.lua","ref":"","type":0,"version":""},"xim:ninja":{"canonical_name":"xim:ninja","description":"a small build system with a focus on speed","entry_key":"xim:ninja","identity":{"name":"ninja","namespace":"xim"},"name":"ninja","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/ninja.lua","ref":"","type":0,"version":""},"xim:node":{"canonical_name":"xim:node","description":"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine","entry_key":"xim:node","identity":{"name":"node","namespace":"xim"},"name":"node","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/node.lua","ref":"","type":0,"version":""},"xim:npm":{"canonical_name":"xim:npm","description":"The package manager for JavaScript","entry_key":"xim:npm","identity":{"name":"npm","namespace":"xim"},"name":"npm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/npm.lua","ref":"","type":0,"version":""},"xim:nvidia-gl-host-link":{"canonical_name":"xim:nvidia-gl-host-link","description":"Sentinel: stable symlinks to the host's NVIDIA proprietary GL/EGL userspace","entry_key":"xim:nvidia-gl-host-link","identity":{"name":"nvidia-gl-host-link","namespace":"xim"},"name":"nvidia-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvidia-gl-host-link.lua","ref":"","type":0,"version":""},"xim:nvim":{"canonical_name":"xim:nvim","description":"Vim-fork focused on extensibility and usability","entry_key":"xim:nvim","identity":{"name":"nvim","namespace":"xim"},"name":"nvim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvim.lua","ref":"","type":0,"version":""},"xim:nvm":{"canonical_name":"xim:nvm","description":"Node Version Manager - POSIX-compliant node.js version manager","entry_key":"xim:nvm","identity":{"name":"nvm","namespace":"xim"},"name":"nvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvm.lua","ref":"","type":0,"version":""},"xim:ollama":{"canonical_name":"xim:ollama","description":"Get up and running with large language models locally","entry_key":"xim:ollama","identity":{"name":"ollama","namespace":"xim"},"name":"ollama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/ollama.lua","ref":"","type":0,"version":""},"xim:openclaw":{"canonical_name":"xim:openclaw","description":"OpenClaw CLI","entry_key":"xim:openclaw","identity":{"name":"openclaw","namespace":"xim"},"name":"openclaw","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openclaw.lua","ref":"","type":0,"version":""},"xim:openssl":{"canonical_name":"xim:openssl","description":"TLS/SSL and cryptography toolkit","entry_key":"xim:openssl","identity":{"name":"openssl","namespace":"xim"},"name":"openssl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openssl.lua","ref":"","type":0,"version":""},"xim:pango":{"canonical_name":"xim:pango","description":"Library for layout and rendering of internationalized text","entry_key":"xim:pango","identity":{"name":"pango","namespace":"xim"},"name":"pango","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pango.lua","ref":"","type":0,"version":""},"xim:patchelf":{"canonical_name":"xim:patchelf","description":"ELF patch tool for interpreter and RPATH","entry_key":"xim:patchelf","identity":{"name":"patchelf","namespace":"xim"},"name":"patchelf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/patchelf.lua","ref":"","type":0,"version":""},"xim:pcre2":{"canonical_name":"xim:pcre2","description":"Perl Compatible Regular Expressions (v2)","entry_key":"xim:pcre2","identity":{"name":"pcre2","namespace":"xim"},"name":"pcre2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pcre2.lua","ref":"","type":0,"version":""},"xim:perl":{"canonical_name":"xim:perl","description":"Perl — a complete, relocatable Perl 5 interpreter with the full core module set","entry_key":"xim:perl","identity":{"name":"perl","namespace":"xim"},"name":"perl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/perl.lua","ref":"","type":0,"version":""},"xim:pixman":{"canonical_name":"xim:pixman","description":"Low-level pixel manipulation library (cairo backend)","entry_key":"xim:pixman","identity":{"name":"pixman","namespace":"xim"},"name":"pixman","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pixman.lua","ref":"","type":0,"version":""},"xim:pnpm":{"canonical_name":"xim:pnpm","description":"Fast, disk space efficient package manager","entry_key":"xim:pnpm","identity":{"name":"pnpm","namespace":"xim"},"name":"pnpm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pnpm.lua","ref":"","type":0,"version":""},"xim:project-graph":{"canonical_name":"xim:project-graph","description":"快速绘制节点图的桌面工具 - 项目进程拓扑图绘制、头脑风暴草稿","entry_key":"xim:project-graph","identity":{"name":"project-graph","namespace":"xim"},"name":"project-graph","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/project-graph.lua","ref":"","type":0,"version":""},"xim:proot":{"canonical_name":"xim:proot","description":"Userspace chroot, mount --bind, and binfmt_misc — no root required","entry_key":"xim:proot","identity":{"name":"proot","namespace":"xim"},"name":"proot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/proot.lua","ref":"","type":0,"version":""},"xim:python":{"canonical_name":"xim:python","description":"The Python programming language","entry_key":"xim:python","identity":{"name":"python","namespace":"xim"},"name":"python","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/python.lua","ref":"","type":0,"version":""},"xim:ripgrep":{"canonical_name":"xim:ripgrep","description":"Fast, recursive grep that respects .gitignore","entry_key":"xim:ripgrep","identity":{"name":"ripgrep","namespace":"xim"},"name":"ripgrep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ripgrep.lua","ref":"","type":0,"version":""},"xim:ros2-jazzy-ubnutu":{"canonical_name":"xim:ros2-jazzy-ubnutu","description":"Config: one-click ROS 2 Jazzy Jalisco setup for Ubuntu 24.04","entry_key":"xim:ros2-jazzy-ubnutu","identity":{"name":"ros2-jazzy-ubnutu","namespace":"xim"},"name":"ros2-jazzy-ubnutu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ros2-jazzy-ubuntu.lua","ref":"","type":3,"version":""},"xim:rosdep":{"canonical_name":"xim:rosdep","description":"ROS dependency management tool","entry_key":"xim:rosdep","identity":{"name":"rosdep","namespace":"xim"},"name":"rosdep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rosdep.lua","ref":"","type":0,"version":""},"xim:rust":{"canonical_name":"xim:rust","description":"A language empowering everyone to build reliable and efficient software","entry_key":"xim:rust","identity":{"name":"rust","namespace":"xim"},"name":"rust","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust.lua","ref":"","type":0,"version":""},"xim:rustup":{"canonical_name":"xim:rustup","description":"An installer init tool for Rustup, the Rust toolchain installer","entry_key":"xim:rustup","identity":{"name":"rustup","namespace":"xim"},"name":"rustup","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup.lua","ref":"","type":0,"version":""},"xim:seeme-report":{"canonical_name":"xim:seeme-report","description":"让别人知道你在干什么 seeme report端","entry_key":"xim:seeme-report","identity":{"name":"seeme-report","namespace":"xim"},"name":"seeme-report","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-report.lua","ref":"","type":0,"version":""},"xim:seeme-server":{"canonical_name":"xim:seeme-server","description":"让别人知道你在干什么 seeme 服务端","entry_key":"xim:seeme-server","identity":{"name":"seeme-server","namespace":"xim"},"name":"seeme-server","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-server.lua","ref":"","type":0,"version":""},"xim:shortcut-tool":{"canonical_name":"xim:shortcut-tool","description":"Shortcut Tool: Create and manage shortcuts easily","entry_key":"xim:shortcut-tool","identity":{"name":"shortcut-tool","namespace":"xim"},"name":"shortcut-tool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/shortcut-tool.lua","ref":"","type":1,"version":""},"xim:sing-box":{"canonical_name":"xim:sing-box","description":"The universal proxy platform","entry_key":"xim:sing-box","identity":{"name":"sing-box","namespace":"xim"},"name":"sing-box","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box.lua","ref":"","type":0,"version":""},"xim:sing-box-helper":{"canonical_name":"xim:sing-box-helper","description":"Sing-Box Helper Tools - Simple commands for server and client configuration","entry_key":"xim:sing-box-helper","identity":{"name":"sing-box-helper","namespace":"xim"},"name":"sing-box-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box-helper.lua","ref":"","type":1,"version":""},"xim:sourcetrail":{"canonical_name":"xim:sourcetrail","description":"Sourcetrail - free and open-source interactive source explorer","entry_key":"xim:sourcetrail","identity":{"name":"sourcetrail","namespace":"xim"},"name":"sourcetrail","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sourcetrail.lua","ref":"","type":0,"version":""},"xim:syslinux":{"canonical_name":"xim:syslinux","description":"SYSLINUX bootloader collection (isolinux, pxelinux, extlinux + EFI loaders)","entry_key":"xim:syslinux","identity":{"name":"syslinux","namespace":"xim"},"name":"syslinux","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/syslinux.lua","ref":"","type":0,"version":""},"xim:trendradar":{"canonical_name":"xim:trendradar","description":"AI-driven public opinion and trend monitor with multi-platform aggregation, RSS, and smart alerts","entry_key":"xim:trendradar","identity":{"name":"trendradar","namespace":"xim"},"name":"trendradar","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/t/trendradar.lua","ref":"","type":0,"version":""},"xim:uv":{"canonical_name":"xim:uv","description":"An extremely fast Python package and project manager (Astral)","entry_key":"xim:uv","identity":{"name":"uv","namespace":"xim"},"name":"uv","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/u/uv.lua","ref":"","type":0,"version":""},"xim:vc6":{"canonical_name":"xim:vc6","description":"Visual C++ 6.0: Classic C/C++ IDE (portable for Windows 10/11)","entry_key":"xim:vc6","identity":{"name":"vc6","namespace":"xim"},"name":"vc6","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vc6.lua","ref":"","type":0,"version":""},"xim:vcstool":{"canonical_name":"xim:vcstool","description":"Version control system tool for multiple repos (ROS vcstool)","entry_key":"xim:vcstool","identity":{"name":"vcstool","namespace":"xim"},"name":"vcstool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vcstool.lua","ref":"","type":0,"version":""},"xim:vim":{"canonical_name":"xim:vim","description":"The classic Vi IMproved text editor (statically linked, hermetic)","entry_key":"xim:vim","identity":{"name":"vim","namespace":"xim"},"name":"vim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vim.lua","ref":"","type":0,"version":""},"xim:virtualbox":{"canonical_name":"xim:virtualbox","description":"Oracle VM VirtualBox userspace + VBoxManage CLI (portable, alias: vbox)","entry_key":"xim:virtualbox","identity":{"name":"virtualbox","namespace":"xim"},"name":"virtualbox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox.lua","ref":"","type":0,"version":""},"xim:vs-buildtools":{"canonical_name":"xim:vs-buildtools","description":"Visual Studio Build Tools","entry_key":"xim:vs-buildtools","identity":{"name":"vs-buildtools","namespace":"xim"},"name":"vs-buildtools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vs-buildtools.lua","ref":"","type":3,"version":""},"xim:vulkan-headers":{"canonical_name":"xim:vulkan-headers","description":"Vulkan API headers and registry","entry_key":"xim:vulkan-headers","identity":{"name":"vulkan-headers","namespace":"xim"},"name":"vulkan-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vulkan-headers.lua","ref":"","type":0,"version":""},"xim:vulkan-loader":{"canonical_name":"xim:vulkan-loader","description":"Vulkan ICD loader - libvulkan.so.1, without which an ICD manifest is never read","entry_key":"xim:vulkan-loader","identity":{"name":"vulkan-loader","namespace":"xim"},"name":"vulkan-loader","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vulkan-loader.lua","ref":"","type":0,"version":""},"xim:wayland":{"canonical_name":"xim:wayland","description":"Wayland protocol library and scanner","entry_key":"xim:wayland","identity":{"name":"wayland","namespace":"xim"},"name":"wayland","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland.lua","ref":"","type":0,"version":""},"xim:wayland-protocols":{"canonical_name":"xim:wayland-protocols","description":"Wayland protocol extension definitions (build-time)","entry_key":"xim:wayland-protocols","identity":{"name":"wayland-protocols","namespace":"xim"},"name":"wayland-protocols","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland-protocols.lua","ref":"","type":0,"version":""},"xim:windows-acp":{"canonical_name":"xim:windows-acp","description":"ACP: Beta: Use Unicode UTF-8 for worldwide language support","entry_key":"xim:windows-acp","identity":{"name":"windows-acp","namespace":"xim"},"name":"windows-acp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/windows-acp.lua","ref":"","type":0,"version":""},"xim:wsl-gl-host-link":{"canonical_name":"xim:wsl-gl-host-link","description":"Sentinel: links WSL2's host D3D12/DXCore userspace so mesa's d3d12 driver can reach the Windows GPU","entry_key":"xim:wsl-gl-host-link","identity":{"name":"wsl-gl-host-link","namespace":"xim"},"name":"wsl-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-gl-host-link.lua","ref":"","type":0,"version":""},"xim:wsl-ubuntu":{"canonical_name":"xim:wsl-ubuntu","description":"Windows Subsystem for Linux (WSL) Ubuntu","entry_key":"xim:wsl-ubuntu","identity":{"name":"wsl-ubuntu","namespace":"xim"},"name":"wsl-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-ubuntu.lua","ref":"","type":3,"version":""},"xim:x86_64-linux-musl-gcc":{"canonical_name":"xim:x86_64-linux-musl-gcc","description":"GCC cross toolchain targeting x86_64-linux-musl (musl, fully static ELF)","entry_key":"xim:x86_64-linux-musl-gcc","identity":{"name":"x86_64-linux-musl-gcc","namespace":"xim"},"name":"x86_64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/x86_64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:xcb-proto":{"canonical_name":"xim:xcb-proto","description":"XML-XCB protocol descriptions (build-time)","entry_key":"xim:xcb-proto","identity":{"name":"xcb-proto","namespace":"xim"},"name":"xcb-proto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xcb-proto.lua","ref":"","type":0,"version":""},"xim:xlings":{"canonical_name":"xim:xlings","description":"Xlings | Highly abstract [ package manager ] - \"Multi-version management + Everything can be a package\"","entry_key":"xim:xlings","identity":{"name":"xlings","namespace":"xim"},"name":"xlings","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings.lua","ref":"","type":0,"version":""},"xim:xlings-project-templates":{"canonical_name":"xim:xlings-project-templates","description":"Xlings - Project Templates","entry_key":"xim:xlings-project-templates","identity":{"name":"xlings-project-templates","namespace":"xim"},"name":"xlings-project-templates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings-project-templates.lua","ref":"","type":2,"version":""},"xim:xmake":{"canonical_name":"xim:xmake","description":"A cross-platform build utility based on Lua","entry_key":"xim:xmake","identity":{"name":"xmake","namespace":"xim"},"name":"xmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xmake.lua","ref":"","type":0,"version":""},"xim:xorgproto":{"canonical_name":"xim:xorgproto","description":"X Window System protocol headers (build-time)","entry_key":"xim:xorgproto","identity":{"name":"xorgproto","namespace":"xim"},"name":"xorgproto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xorgproto.lua","ref":"","type":0,"version":""},"xim:xpkg-helper":{"canonical_name":"xim:xpkg-helper","description":"XPKG: XPackage Helper Tools","entry_key":"xim:xpkg-helper","identity":{"name":"xpkg-helper","namespace":"xim"},"name":"xpkg-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xpkg-helper.lua","ref":"","type":1,"version":""},"xim:xtrans":{"canonical_name":"xim:xtrans","description":"X transport layer macros and headers (build-time)","entry_key":"xim:xtrans","identity":{"name":"xtrans","namespace":"xim"},"name":"xtrans","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xtrans.lua","ref":"","type":0,"version":""},"xim:xvm":{"canonical_name":"xim:xvm","description":"a simple and generic version management tool","entry_key":"xim:xvm","identity":{"name":"xvm","namespace":"xim"},"name":"xvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm.lua","ref":"","type":0,"version":""},"xim:xvm-sysdetect":{"canonical_name":"xim:xvm-sysdetect","description":"XVM - System Package Detect Tools","entry_key":"xim:xvm-sysdetect","identity":{"name":"xvm-sysdetect","namespace":"xim"},"name":"xvm-sysdetect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm-sysdetect.lua","ref":"","type":3,"version":""},"xim:yazi":{"canonical_name":"xim:yazi","description":"Blazing fast terminal file manager written in Rust, based on async I/O","entry_key":"xim:yazi","identity":{"name":"yazi","namespace":"xim"},"name":"yazi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/y/yazi.lua","ref":"","type":0,"version":""},"xim:zlib":{"canonical_name":"xim:zlib","description":"A massively spiffy yet delicately unobtrusive compression library","entry_key":"xim:zlib","identity":{"name":"zlib","namespace":"xim"},"name":"zlib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zlib.lua","ref":"","type":0,"version":""},"xim:zoxide":{"canonical_name":"xim:zoxide","description":"A smarter cd command — jump to your most-used directories","entry_key":"xim:zoxide","identity":{"name":"zoxide","namespace":"xim"},"name":"zoxide","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zoxide.lua","ref":"","type":0,"version":""}},"mutex_groups":{},"repo_head_hash":"0a46e4866cf8cd5bd383383b2b6bf794a21e60d5","version":2} \ No newline at end of file diff --git a/pkgs/g/graphics.lua b/pkgs/g/graphics.lua index 693d296e..003b0513 100644 --- a/pkgs/g/graphics.lua +++ b/pkgs/g/graphics.lua @@ -131,6 +131,10 @@ package = { -- Non-fatal when absent (single-screen fallback), which is -- exactly why it went unnoticed until a real toolkit ran. "libXinerama@>=1.1", + -- An ICD is a driver; a driver needs a loader. mesa ships + -- RADV and its manifest, and without libvulkan.so.1 nothing + -- ever reads it -- which also leaves zink dead. + "vulkan-loader@>=1.4", }, }, ["latest"] = { ref = "0.1.0" }, diff --git a/pkgs/v/vulkan-headers.lua b/pkgs/v/vulkan-headers.lua new file mode 100644 index 00000000..4dbb23d6 --- /dev/null +++ b/pkgs/v/vulkan-headers.lua @@ -0,0 +1,65 @@ +package = { + spec = "2", + + homepage = "https://www.khronos.org/vulkan/", + name = "vulkan-headers", + description = "Vulkan API headers and registry", + + authors = {"The Khronos Group"}, + licenses = {"Apache-2.0"}, + repo = "https://github.com/KhronosGroup/Vulkan-Headers", + + type = "package", + archs = {"x86_64"}, + status = "stable", + categories = {"graphics", "vulkan", "lib"}, + keywords = {"vulkan", "graphics", "vulkan-headers"}, + + xpm = { + linux = { + deps = { "xim:glibc@>=2.38" }, + exports = { + runtime = { libdirs = { "lib" } }, + }, + ["latest"] = { ref = "1.4.313" }, + -- GLOBAL only for now: `gtc` can publish a release into an existing + -- GitCode project but cannot create one, and this project does not + -- exist there yet. A CN URL naming a missing project fails at + -- download instead of falling back, which is worse than none. + ["1.4.313"] = { + url = "https://github.com/xlings-res/vulkan-headers/releases/download/1.4.313/vulkan-headers-1.4.313-linux-x86_64.tar.gz", + sha256 = "bb305ab10c4d5c5ce5935099b4b8f364376e360bea53fee85a5e86370cef860a", + }, + }, + }, +} + +import("xim.libxpkg.pkginfo") +import("xim.libxpkg.system") +import("xim.libxpkg.xvm") +import("xim.pkgindex.sysroot") + +function install() + local dir = pkginfo.install_dir() + os.tryrm(dir) + os.mv("vulkan-headers-1.4.313", dir) + return true +end + +function config() + local binding = package.name .. "@" .. pkginfo.version() + xvm.add(package.name) + sysroot.declare_libs(pkginfo.install_dir(), "lib", binding, pkginfo.version()) + if not sysroot.declare_headers_tree(pkginfo.install_dir(), "include", + "usr/include", binding) then + sysroot.install_headers_tree( + path.join(pkginfo.install_dir(), "include"), + path.join(system.subos_sysrootdir(), "usr", "include")) + end + return true +end + +function uninstall() + xvm.remove(package.name) + return true +end diff --git a/pkgs/v/vulkan-loader.lua b/pkgs/v/vulkan-loader.lua new file mode 100644 index 00000000..74972650 --- /dev/null +++ b/pkgs/v/vulkan-loader.lua @@ -0,0 +1,80 @@ +package = { + spec = "2", + + homepage = "https://www.khronos.org/vulkan/", + name = "vulkan-loader", + description = "Vulkan ICD loader - libvulkan.so.1, without which an ICD manifest is never read", + + authors = {"The Khronos Group"}, + licenses = {"Apache-2.0"}, + repo = "https://github.com/KhronosGroup/Vulkan-Loader", + + type = "package", + archs = {"x86_64"}, + status = "stable", + categories = {"graphics", "vulkan", "lib"}, + keywords = {"vulkan", "graphics", "vulkan-loader"}, + + -- Why the stack needs this at all. + -- + -- mesa already ships a Vulkan driver (RADV) and rewrites its ICD manifest to + -- an absolute path inside our payload -- but an ICD is a DRIVER, and a driver + -- is loaded BY a loader. Without libvulkan.so.1 the manifest sits there + -- unread: `vulkaninfo` cannot run, and zink (GL over Vulkan) is dead in a + -- payload that ships it. + -- + -- Discovery needs NO new declaration. The Vulkan loader searches + -- $XDG_DATA_DIRS/vulkan/icd.d, and mesa's config() already prepends its + -- share directory to XDG_DATA_DIRS. VK_DRIVER_FILES would be wrong here -- + -- it is an OVERRIDE that suppresses system discovery, so it would hide every + -- other ICD on the machine. + + xpm = { + linux = { + deps = { "xim:libX11@>=1.8", "xim:libxcb@>=1.17", "xim:libXrandr@>=1.5", + "xim:wayland@>=1.23", "xim:glibc@>=2.38" }, + exports = { + runtime = { libdirs = { "lib" } }, + }, + ["latest"] = { ref = "1.4.313" }, + -- GLOBAL only for now: `gtc` can publish a release into an existing + -- GitCode project but cannot create one, and this project does not + -- exist there yet. A CN URL naming a missing project fails at + -- download instead of falling back, which is worse than none. + ["1.4.313"] = { + url = "https://github.com/xlings-res/vulkan-loader/releases/download/1.4.313/vulkan-loader-1.4.313-linux-x86_64.tar.gz", + sha256 = "4870e17d573117378132db72d338723c849bef5aa4ae3f01eb0aabbdfabd3c2b", + }, + }, + }, +} + +import("xim.libxpkg.pkginfo") +import("xim.libxpkg.system") +import("xim.libxpkg.xvm") +import("xim.pkgindex.sysroot") + +function install() + local dir = pkginfo.install_dir() + os.tryrm(dir) + os.mv("vulkan-loader-1.4.313", dir) + return true +end + +function config() + local binding = package.name .. "@" .. pkginfo.version() + xvm.add(package.name) + sysroot.declare_libs(pkginfo.install_dir(), "lib", binding, pkginfo.version()) + if not sysroot.declare_headers_tree(pkginfo.install_dir(), "include", + "usr/include", binding) then + sysroot.install_headers_tree( + path.join(pkginfo.install_dir(), "include"), + path.join(system.subos_sysrootdir(), "usr", "include")) + end + return true +end + +function uninstall() + xvm.remove(package.name) + return true +end From 8b9ef9d855cdca1c3eba038ec53e2d1ae9f33011 Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Fri, 7 Aug 2026 15:52:04 +0800 Subject: [PATCH 04/11] fix(vulkan): the loader found the HOST's ICDs, and the cell called that a pass Adding a Vulkan loader immediately broke two of the matrix's own cells, both by being too weak. Recording them because each is the shape the matrix exists for. **"software rendering (llvmpipe)" started failing with** zink Vulkan 1.3 (NVIDIA GeForce RTX 4080 (NVIDIA_PROPRIETARY)) Selecting the mesa vendor is not selecting SOFTWARE. With a working libvulkan.so.1 present, mesa switched to zink -- its GL-over-Vulkan driver, a real and welcome capability, and emphatically not the CPU path this cell is named for. It now forces LIBGL_ALWAYS_SOFTWARE and asserts the renderer is one of llvmpipe/softpipe/swrast. (That zink came alive at all is the loader paying for itself: the recipe predicted "zink is dead in a payload that ships it".) **"Vulkan loader + ICDs" reported PASS with "0 ICD manifest(s)".** A loader with none of OUR ICDs in the subos is not Vulkan support -- it is a loader that finds the HOST's ICDs and succeeds. Same boundary the GL side needed interposers for, one API over, and it looks like a pass from every angle except asking whose ICD answered. Zero ICDs is now a failure with that sentence as its message. Which then named the real defect: mesa's ICD manifest lived only in its payload. The loader reads $XDG_DATA_DIRS/vulkan/icd.d and mesa puts ${subosdir}/share on that list -- so a manifest that never reaches the subos is never found. graphics.declare_vulkan_icd() places them, the same shared-directory shape the glvnd vendor JSON uses and for the same reason. Verified: radeon_icd.x86_64.json now lands in /share/vulkan/icd.d, the cell passes on OUR ICD, and the software cell is back to llvmpipe. Matrix on this host: pass 13, fail 0, not-exercised 6. --- .agents/tools/graphics/verify-stack.sh | 36 ++++++++++++++++++------ .xlings-index-cache.json | 2 +- libs/graphics.lua | 38 ++++++++++++++++++++++++++ pkgs/m/mesa.lua | 6 ++++ 4 files changed, 73 insertions(+), 9 deletions(-) diff --git a/.agents/tools/graphics/verify-stack.sh b/.agents/tools/graphics/verify-stack.sh index 9d467cb1..047a6af4 100755 --- a/.agents/tools/graphics/verify-stack.sh +++ b/.agents/tools/graphics/verify-stack.sh @@ -162,11 +162,21 @@ run_probe() { # $1..: extra env assignments if [[ -z "$PROBE" ]]; then na "software rendering (llvmpipe)" "no host compiler to build the probe" else - out="$(run_probe __EGL_VENDOR_LIBRARY_FILENAMES="$VD/50_mesa.json")" - if grep -q "^RESULT=ok" <<<"$out" && grep -qi "llvmpipe" <<<"$out"; then - ok "software rendering (llvmpipe)" "$(sed -n 's/^GL_RENDERER=//p' <<<"$out")" + # LIBGL_ALWAYS_SOFTWARE, not just "pick the mesa vendor". + # + # Selecting mesa is not the same as selecting SOFTWARE. The moment a Vulkan + # loader appeared in the stack, this cell started reporting + # zink Vulkan 1.3 (NVIDIA GeForce RTX 4080 (NVIDIA_PROPRIETARY)) + # -- mesa had switched to zink, its GL-over-Vulkan driver, which is a real and + # welcome capability but is emphatically not the CPU path this cell exists to + # prove. The cell was named for llvmpipe and was measuring "whatever mesa + # chose". + out="$(run_probe __EGL_VENDOR_LIBRARY_FILENAMES="$VD/50_mesa.json" LIBGL_ALWAYS_SOFTWARE=1)" + r="$(sed -n 's/^GL_RENDERER=//p' <<<"$out")" + if grep -q "^RESULT=ok" <<<"$out" && grep -qiE "llvmpipe|softpipe|swrast" <<<"$r"; then + ok "software rendering (llvmpipe)" "$r" else - bad "software rendering (llvmpipe)" "$(sed -n 's/^GL_RENDERER=//p' <<<"$out" || echo 'no renderer')" + bad "software rendering (llvmpipe)" "${r:-no renderer}" fi fi @@ -237,11 +247,21 @@ fi # ── APIs and window systems ───────────────────────────────────────────── sect "4. APIs and window systems" -if [[ -e "$S/lib/libvulkan.so.1" ]]; then - icds=$(ls "$S/share/vulkan/icd.d"/*.json 2>/dev/null | wc -l | tr -d ' ') - ok "Vulkan loader + ICDs" "$icds ICD manifest(s)" +if [[ ! -e "$S/lib/libvulkan.so.1" ]]; then + na "Vulkan loader + our ICD" "no vulkan-loader package in the stack yet" else - na "Vulkan" "no vulkan-loader package in the stack yet" + # A loader with none of OUR ICDs in the subos is not Vulkan support -- it is a + # loader that will find the HOST's ICDs and report success. Exactly the + # boundary the GL side needed interposers for, one API over. This first + # reported "loader + 0 ICD manifest(s)" as a PASS, which is the same shape as + # counting zero installed packages as coverage. + icds=$(ls "$S/share/vulkan/icd.d"/*.json 2>/dev/null | wc -l | tr -d ' ') + if [[ "${icds:-0}" -gt 0 ]]; then + ok "Vulkan loader + our ICD" "$icds ICD manifest(s) in the subos" + else + bad "Vulkan loader + our ICD" \ + "libvulkan.so.1 present but NO ICD of ours in $S/share/vulkan/icd.d — any Vulkan here is the host's" + fi fi if [[ $has_display -eq 1 ]]; then diff --git a/.xlings-index-cache.json b/.xlings-index-cache.json index f505f60b..e9c08d3b 100644 --- a/.xlings-index-cache.json +++ b/.xlings-index-cache.json @@ -1 +1 @@ -{"default_namespace":"xim","entries":{"config:claude-llm":{"canonical_name":"config:claude-llm","description":"Configure Claude Code to use DeepSeek Anthropic-compatible API","entry_key":"config:claude-llm","identity":{"name":"claude-llm","namespace":"config"},"name":"claude-llm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude-llm.lua","ref":"","type":3,"version":""},"config:fontconfig-user-moyingji":{"canonical_name":"config:fontconfig-user-moyingji","description":"Basic user configuration for Linux Fontconfig written by MoYingJi","entry_key":"config:fontconfig-user-moyingji","identity":{"name":"fontconfig-user-moyingji","namespace":"config"},"name":"fontconfig-user-moyingji","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig-user-moyingji.lua","ref":"","type":3,"version":""},"config:gitcode-hosts":{"canonical_name":"config:gitcode-hosts","description":"Config gitcode.com ip mapping-groups to hosts file","entry_key":"config:gitcode-hosts","identity":{"name":"gitcode-hosts","namespace":"config"},"name":"gitcode-hosts","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gitcode-hosts.lua","ref":"","type":3,"version":""},"config:mcpp-vscode-clangd":{"canonical_name":"config:mcpp-vscode-clangd","description":"Configure VSCode clangd support for mcpp LLVM projects","entry_key":"config:mcpp-vscode-clangd","identity":{"name":"mcpp-vscode-clangd","namespace":"config"},"name":"mcpp-vscode-clangd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-vscode-clangd.lua","ref":"","type":3,"version":""},"config:powershell-execpolicy":{"canonical_name":"config:powershell-execpolicy","description":"fix execution policy issue when open Powershell(load .ps1 file)","entry_key":"config:powershell-execpolicy","identity":{"name":"powershell-execpolicy","namespace":"config"},"name":"powershell-execpolicy","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/powershell-execpolicy.lua","ref":"","type":0,"version":""},"config:rust-crates-mirror":{"canonical_name":"config:rust-crates-mirror","description":"Config Index Mirror for Rust Crates (Cargo)","entry_key":"config:rust-crates-mirror","identity":{"name":"rust-crates-mirror","namespace":"config"},"name":"rust-crates-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust-crates-mirror.lua","ref":"","type":3,"version":""},"config:rustup-mirror":{"canonical_name":"config:rustup-mirror","description":"Config Mirror for Rustup","entry_key":"config:rustup-mirror","identity":{"name":"rustup-mirror","namespace":"config"},"name":"rustup-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup-mirror.lua","ref":"","type":3,"version":""},"config:virtualbox-ubuntu":{"canonical_name":"config:virtualbox-ubuntu","description":"Provision a ready-to-use Ubuntu 24.04 VM in VirtualBox (unattended install)","entry_key":"config:virtualbox-ubuntu","identity":{"name":"virtualbox-ubuntu","namespace":"config"},"name":"virtualbox-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox-ubuntu.lua","ref":"","type":0,"version":""},"xim:7zip":{"canonical_name":"xim:7zip","description":"7-Zip — a file archiver with a high compression ratio","entry_key":"xim:7zip","identity":{"name":"7zip","namespace":"xim"},"name":"7zip","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/7/7zip.lua","ref":"","type":0,"version":""},"xim:aarch64-linux-musl-gcc":{"canonical_name":"xim:aarch64-linux-musl-gcc","description":"Cross GCC toolchain: host -> aarch64-linux-musl (musl, static-capable)","entry_key":"xim:aarch64-linux-musl-gcc","identity":{"name":"aarch64-linux-musl-gcc","namespace":"xim"},"name":"aarch64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aarch64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:aria2-next":{"canonical_name":"xim:aria2-next","description":"Aria2 Next — a maintained aria2 fork with extensive bug fixes and a modernized architecture","entry_key":"xim:aria2-next","identity":{"name":"aria2-next","namespace":"xim"},"name":"aria2-next","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aria2-next.lua","ref":"","type":0,"version":""},"xim:bat":{"canonical_name":"xim:bat","description":"A cat clone with syntax highlighting and Git integration","entry_key":"xim:bat","identity":{"name":"bat","namespace":"xim"},"name":"bat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bat.lua","ref":"","type":0,"version":""},"xim:binutils":{"canonical_name":"xim:binutils","description":"The GNU Binutils are a collection of binary tools","entry_key":"xim:binutils","identity":{"name":"binutils","namespace":"xim"},"name":"binutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/binutils.lua","ref":"","type":0,"version":""},"xim:brew":{"canonical_name":"xim:brew","description":"Homebrew: The Missing Package Manager for macOS (or Linux)","entry_key":"xim:brew","identity":{"name":"brew","namespace":"xim"},"name":"brew","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/brew.lua","ref":"","type":0,"version":""},"xim:bun":{"canonical_name":"xim:bun","description":"Bun is an all-in-one toolkit for JavaScript and TypeScript apps","entry_key":"xim:bun","identity":{"name":"bun","namespace":"xim"},"name":"bun","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bun.lua","ref":"","type":0,"version":""},"xim:busybox":{"canonical_name":"xim:busybox","description":"The Swiss Army Knife of Embedded Linux — single static binary providing 400+ POSIX utilities","entry_key":"xim:busybox","identity":{"name":"busybox","namespace":"xim"},"name":"busybox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/busybox.lua","ref":"","type":0,"version":""},"xim:bwrap":{"canonical_name":"xim:bwrap","description":"Bubblewrap — namespace-based sandboxing tool (setuid mode for cross-distro compat)","entry_key":"xim:bwrap","identity":{"name":"bwrap","namespace":"xim"},"name":"bwrap","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bwrap.lua","ref":"","type":0,"version":""},"xim:ca-certificates":{"canonical_name":"xim:ca-certificates","description":"Mozilla CA root bundle (extracted by curl.se)","entry_key":"xim:ca-certificates","identity":{"name":"ca-certificates","namespace":"xim"},"name":"ca-certificates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/ca-certificates.lua","ref":"","type":0,"version":""},"xim:cairo":{"canonical_name":"xim:cairo","description":"2D graphics library (xcb-free / headless build for manim)","entry_key":"xim:cairo","identity":{"name":"cairo","namespace":"xim"},"name":"cairo","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cairo.lua","ref":"","type":0,"version":""},"xim:cc-connect":{"canonical_name":"xim:cc-connect","description":"Bridge local AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, etc.) to messaging platforms (Feishu, Slack, Telegram, Discord, ...)","entry_key":"xim:cc-connect","identity":{"name":"cc-connect","namespace":"xim"},"name":"cc-connect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-connect.lua","ref":"","type":0,"version":""},"xim:cc-switch":{"canonical_name":"xim:cc-switch","description":"Cross-platform desktop tool for switching providers across Claude Code / Codex / OpenCode / Gemini CLI / openclaw","entry_key":"xim:cc-switch","identity":{"name":"cc-switch","namespace":"xim"},"name":"cc-switch","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-switch.lua","ref":"","type":0,"version":""},"xim:claude":{"canonical_name":"xim:claude","description":"Claude Code CLI from Anthropic","entry_key":"xim:claude","identity":{"name":"claude","namespace":"xim"},"name":"claude","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude.lua","ref":"","type":0,"version":""},"xim:cmake":{"canonical_name":"xim:cmake","description":"A Powerful Software Build System","entry_key":"xim:cmake","identity":{"name":"cmake","namespace":"xim"},"name":"cmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cmake.lua","ref":"","type":0,"version":""},"xim:code":{"canonical_name":"xim:code","description":"Visual Studio Code","entry_key":"xim:code","identity":{"name":"code","namespace":"xim"},"name":"code","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/code.lua","ref":"","type":0,"version":""},"xim:codex":{"canonical_name":"xim:codex","description":"Codex CLI from OpenAI","entry_key":"xim:codex","identity":{"name":"codex","namespace":"xim"},"name":"codex","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/codex.lua","ref":"","type":0,"version":""},"xim:configure-project-installer":{"canonical_name":"xim:configure-project-installer","description":"Build & Install (from source) helper tools for ./configure-based projects","entry_key":"xim:configure-project-installer","identity":{"name":"configure-project-installer","namespace":"xim"},"name":"configure-project-installer","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/configure-project-installer.lua","ref":"","type":1,"version":""},"xim:cpp":{"canonical_name":"xim:cpp","description":"C++ language toolchain","entry_key":"xim:cpp","identity":{"name":"cpp","namespace":"xim"},"name":"cpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cpp.lua","ref":"","type":3,"version":""},"xim:d2x":{"canonical_name":"xim:d2x","description":"xlings's d2x tool","entry_key":"xim:d2x","identity":{"name":"d2x","namespace":"xim"},"name":"d2x","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/d2x.lua","ref":"","type":0,"version":""},"xim:dash":{"canonical_name":"xim:dash","description":"Debian Almquist Shell — small POSIX-compliant shell","entry_key":"xim:dash","identity":{"name":"dash","namespace":"xim"},"name":"dash","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dash.lua","ref":"","type":0,"version":""},"xim:devcpp":{"canonical_name":"xim:devcpp","description":"Dev-C++: A full-featured Integrated Development Environment (IDE) for the C/C++","entry_key":"xim:devcpp","identity":{"name":"devcpp","namespace":"xim"},"name":"devcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/devcpp.lua","ref":"","type":0,"version":""},"xim:dotnet":{"canonical_name":"xim:dotnet","description":".NET is the free, open-source, cross-platform framework","entry_key":"xim:dotnet","identity":{"name":"dotnet","namespace":"xim"},"name":"dotnet","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dotnet.lua","ref":"","type":0,"version":""},"xim:e2fsprogs":{"canonical_name":"xim:e2fsprogs","description":"ext2/ext3/ext4 filesystem utilities (mke2fs, e2fsck, tune2fs, resize2fs, debugfs)","entry_key":"xim:e2fsprogs","identity":{"name":"e2fsprogs","namespace":"xim"},"name":"e2fsprogs","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/e2fsprogs.lua","ref":"","type":0,"version":""},"xim:elfutils":{"canonical_name":"xim:elfutils","description":"ELF object file access library — libelf, for radeonsi","entry_key":"xim:elfutils","identity":{"name":"elfutils","namespace":"xim"},"name":"elfutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/elfutils.lua","ref":"","type":0,"version":""},"xim:expat":{"canonical_name":"xim:expat","description":"Fast streaming XML parser library","entry_key":"xim:expat","identity":{"name":"expat","namespace":"xim"},"name":"expat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/expat.lua","ref":"","type":0,"version":""},"xim:fd":{"canonical_name":"xim:fd","description":"Simple, fast, user-friendly alternative to find","entry_key":"xim:fd","identity":{"name":"fd","namespace":"xim"},"name":"fd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fd.lua","ref":"","type":0,"version":""},"xim:fish":{"canonical_name":"xim:fish","description":"Friendly interactive shell — smart, user-friendly, modern command-line","entry_key":"xim:fish","identity":{"name":"fish","namespace":"xim"},"name":"fish","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fish.lua","ref":"","type":0,"version":""},"xim:fontconfig":{"canonical_name":"xim:fontconfig","description":"Library for configuring and customizing font access","entry_key":"xim:fontconfig","identity":{"name":"fontconfig","namespace":"xim"},"name":"fontconfig","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig.lua","ref":"","type":0,"version":""},"xim:freetype":{"canonical_name":"xim:freetype","description":"A freely available software library to render fonts","entry_key":"xim:freetype","identity":{"name":"freetype","namespace":"xim"},"name":"freetype","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/freetype.lua","ref":"","type":0,"version":""},"xim:fribidi":{"canonical_name":"xim:fribidi","description":"Free Implementation of the Unicode Bidirectional Algorithm","entry_key":"xim:fribidi","identity":{"name":"fribidi","namespace":"xim"},"name":"fribidi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fribidi.lua","ref":"","type":0,"version":""},"xim:fzf":{"canonical_name":"xim:fzf","description":"A command-line fuzzy finder","entry_key":"xim:fzf","identity":{"name":"fzf","namespace":"xim"},"name":"fzf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fzf.lua","ref":"","type":0,"version":""},"xim:gcc":{"canonical_name":"xim:gcc","description":"GCC, the GNU Compiler Collection","entry_key":"xim:gcc","identity":{"name":"gcc","namespace":"xim"},"name":"gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc.lua","ref":"","type":0,"version":""},"xim:gcc-runtime":{"canonical_name":"xim:gcc-runtime","description":"GCC runtime libraries (libstdc++, libgcc_s, libgomp, libatomic, libitm, libquadmath, libssp) — required by virtually every C++ binary on Linux, including Clang-built ones","entry_key":"xim:gcc-runtime","identity":{"name":"gcc-runtime","namespace":"xim"},"name":"gcc-runtime","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-runtime.lua","ref":"","type":0,"version":""},"xim:gcc-specs-config":{"canonical_name":"xim:gcc-specs-config","description":"XScript: GCC Specs Config Tool","entry_key":"xim:gcc-specs-config","identity":{"name":"gcc-specs-config","namespace":"xim"},"name":"gcc-specs-config","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-specs-config.lua","ref":"","type":1,"version":""},"xim:git":{"canonical_name":"xim:git","description":"Git is a free and open source distributed version control system","entry_key":"xim:git","identity":{"name":"git","namespace":"xim"},"name":"git","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git.lua","ref":"","type":0,"version":""},"xim:git-autosync":{"canonical_name":"xim:git-autosync","description":"XScript: Git AutoSync Tools","entry_key":"xim:git-autosync","identity":{"name":"git-autosync","namespace":"xim"},"name":"git-autosync","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git-autosync.lua","ref":"","type":1,"version":""},"xim:github-gh":{"canonical_name":"xim:github-gh","description":"GitHub's official command line tool","entry_key":"xim:github-gh","identity":{"name":"github-gh","namespace":"xim"},"name":"github-gh","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-gh.lua","ref":"","type":0,"version":""},"xim:github-notifications-clear":{"canonical_name":"xim:github-notifications-clear","description":"Clear github's notifications (unread)","entry_key":"xim:github-notifications-clear","identity":{"name":"github-notifications-clear","namespace":"xim"},"name":"github-notifications-clear","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-notifications-clear.lua","ref":"","type":1,"version":""},"xim:glib":{"canonical_name":"xim:glib","description":"Low-level core library (GLib/GObject/GIO)","entry_key":"xim:glib","identity":{"name":"glib","namespace":"xim"},"name":"glib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glib.lua","ref":"","type":0,"version":""},"xim:glibc":{"canonical_name":"xim:glibc","description":"The GNU C Library","entry_key":"xim:glibc","identity":{"name":"glibc","namespace":"xim"},"name":"glibc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glibc.lua","ref":"","type":0,"version":""},"xim:glslang":{"canonical_name":"xim:glslang","description":"Khronos reference GLSL/ESSL front end and validator (build-time)","entry_key":"xim:glslang","identity":{"name":"glslang","namespace":"xim"},"name":"glslang","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glslang.lua","ref":"","type":0,"version":""},"xim:go":{"canonical_name":"xim:go","description":"The Go programming language","entry_key":"xim:go","identity":{"name":"go","namespace":"xim"},"name":"go","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/go.lua","ref":"","type":0,"version":""},"xim:godot":{"canonical_name":"xim:godot","description":"Godot Engine - multi-platform 2D and 3D game engine (editor + headless export runner)","entry_key":"xim:godot","identity":{"name":"godot","namespace":"xim"},"name":"godot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/godot.lua","ref":"","type":0,"version":""},"xim:graphics":{"canonical_name":"xim:graphics","description":"The xlings graphics stack: OpenGL that adapts to whatever GPU this host has","entry_key":"xim:graphics","identity":{"name":"graphics","namespace":"xim"},"name":"graphics","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/graphics.lua","ref":"","type":0,"version":""},"xim:griddycode":{"canonical_name":"xim:griddycode","description":"A code editor made with Godot. Code has never been more lit!","entry_key":"xim:griddycode","identity":{"name":"griddycode","namespace":"xim"},"name":"griddycode","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/griddycode.lua","ref":"","type":0,"version":""},"xim:harfbuzz":{"canonical_name":"xim:harfbuzz","description":"OpenType text shaping engine","entry_key":"xim:harfbuzz","identity":{"name":"harfbuzz","namespace":"xim"},"name":"harfbuzz","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/harfbuzz.lua","ref":"","type":0,"version":""},"xim:hermes-agent":{"canonical_name":"xim:hermes-agent","description":"The self-improving AI agent from Nous Research — creates skills from experience, improves them during use, and runs anywhere","entry_key":"xim:hermes-agent","identity":{"name":"hermes-agent","namespace":"xim"},"name":"hermes-agent","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/hermes-agent.lua","ref":"","type":0,"version":""},"xim:interposer-stub":{"canonical_name":"xim:interposer-stub","description":"Prebuilt empty ELF stub that elfpatch.host_link_interposer turns into an interposer","entry_key":"xim:interposer-stub","identity":{"name":"interposer-stub","namespace":"xim"},"name":"interposer-stub","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/i/interposer-stub.lua","ref":"","type":0,"version":""},"xim:jdk-corretto":{"canonical_name":"xim:jdk-corretto","description":"Amazon Corretto — a no-cost, production-ready distribution of OpenJDK (LTS)","entry_key":"xim:jdk-corretto","identity":{"name":"jdk-corretto","namespace":"xim"},"name":"jdk-corretto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-corretto.lua","ref":"","type":0,"version":""},"xim:jdk-temurin":{"canonical_name":"xim:jdk-temurin","description":"Eclipse Temurin JDK 25 — a production-ready binary build of OpenJDK (LTS)","entry_key":"xim:jdk-temurin","identity":{"name":"jdk-temurin","namespace":"xim"},"name":"jdk-temurin","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-temurin.lua","ref":"","type":0,"version":""},"xim:jdk-zulu":{"canonical_name":"xim:jdk-zulu","description":"Azul Zulu Community — a TCK-certified, no-cost build of OpenJDK (LTS)","entry_key":"xim:jdk-zulu","identity":{"name":"jdk-zulu","namespace":"xim"},"name":"jdk-zulu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-zulu.lua","ref":"","type":0,"version":""},"xim:jetbrainsmono-nerd-font":{"canonical_name":"xim:jetbrainsmono-nerd-font","description":"JetBrainsMono Nerd Font patched with terminal icons and glyphs","entry_key":"xim:jetbrainsmono-nerd-font","identity":{"name":"jetbrainsmono-nerd-font","namespace":"xim"},"name":"jetbrainsmono-nerd-font","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jetbrainsmono-nerd-font.lua","ref":"","type":0,"version":""},"xim:jq":{"canonical_name":"xim:jq","description":"Command-line JSON processor","entry_key":"xim:jq","identity":{"name":"jq","namespace":"xim"},"name":"jq","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jq.lua","ref":"","type":0,"version":""},"xim:khistory":{"canonical_name":"xim:khistory","description":"An elegant keyboard/gamepad key detection and visualization tool","entry_key":"xim:khistory","identity":{"name":"khistory","namespace":"xim"},"name":"khistory","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/k/khistory.lua","ref":"","type":0,"version":""},"xim:libX11":{"canonical_name":"xim:libX11","description":"Core X11 client library","entry_key":"xim:libX11","identity":{"name":"libX11","namespace":"xim"},"name":"libX11","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libX11.lua","ref":"","type":0,"version":""},"xim:libXau":{"canonical_name":"xim:libXau","description":"X11 authorisation protocol library","entry_key":"xim:libXau","identity":{"name":"libXau","namespace":"xim"},"name":"libXau","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXau.lua","ref":"","type":0,"version":""},"xim:libXcursor":{"canonical_name":"xim:libXcursor","description":"X cursor management library","entry_key":"xim:libXcursor","identity":{"name":"libXcursor","namespace":"xim"},"name":"libXcursor","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXcursor.lua","ref":"","type":0,"version":""},"xim:libXdmcp":{"canonical_name":"xim:libXdmcp","description":"X Display Manager Control Protocol library","entry_key":"xim:libXdmcp","identity":{"name":"libXdmcp","namespace":"xim"},"name":"libXdmcp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXdmcp.lua","ref":"","type":0,"version":""},"xim:libXext":{"canonical_name":"xim:libXext","description":"X11 miscellaneous extensions library","entry_key":"xim:libXext","identity":{"name":"libXext","namespace":"xim"},"name":"libXext","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXext.lua","ref":"","type":0,"version":""},"xim:libXfixes":{"canonical_name":"xim:libXfixes","description":"X Fixes extension client library","entry_key":"xim:libXfixes","identity":{"name":"libXfixes","namespace":"xim"},"name":"libXfixes","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXfixes.lua","ref":"","type":0,"version":""},"xim:libXi":{"canonical_name":"xim:libXi","description":"X Input Extension client library","entry_key":"xim:libXi","identity":{"name":"libXi","namespace":"xim"},"name":"libXi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXi.lua","ref":"","type":0,"version":""},"xim:libXinerama":{"canonical_name":"xim:libXinerama","description":"X11 Xinerama extension — multi-monitor screen geometry","entry_key":"xim:libXinerama","identity":{"name":"libXinerama","namespace":"xim"},"name":"libXinerama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXinerama.lua","ref":"","type":0,"version":""},"xim:libXrandr":{"canonical_name":"xim:libXrandr","description":"X Resize, Rotate and Reflect extension library","entry_key":"xim:libXrandr","identity":{"name":"libXrandr","namespace":"xim"},"name":"libXrandr","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrandr.lua","ref":"","type":0,"version":""},"xim:libXrender":{"canonical_name":"xim:libXrender","description":"X Rendering Extension client library","entry_key":"xim:libXrender","identity":{"name":"libXrender","namespace":"xim"},"name":"libXrender","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrender.lua","ref":"","type":0,"version":""},"xim:libXxf86vm":{"canonical_name":"xim:libXxf86vm","description":"X11 XFree86 video mode extension library","entry_key":"xim:libXxf86vm","identity":{"name":"libXxf86vm","namespace":"xim"},"name":"libXxf86vm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXxf86vm.lua","ref":"","type":0,"version":""},"xim:libcuda-host-link":{"canonical_name":"xim:libcuda-host-link","description":"Sentinel: stable symlink to host's libcuda.so.1 (NVIDIA driver userspace lib)","entry_key":"xim:libcuda-host-link","identity":{"name":"libcuda-host-link","namespace":"xim"},"name":"libcuda-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libcuda-host-link.lua","ref":"","type":0,"version":""},"xim:libdrm":{"canonical_name":"xim:libdrm","description":"Userspace interface to the kernel DRM services","entry_key":"xim:libdrm","identity":{"name":"libdrm","namespace":"xim"},"name":"libdrm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libdrm.lua","ref":"","type":0,"version":""},"xim:libffi":{"canonical_name":"xim:libffi","description":"Portable foreign-function interface library","entry_key":"xim:libffi","identity":{"name":"libffi","namespace":"xim"},"name":"libffi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libffi.lua","ref":"","type":0,"version":""},"xim:libglvnd":{"canonical_name":"xim:libglvnd","description":"The GL Vendor-Neutral Dispatch library","entry_key":"xim:libglvnd","identity":{"name":"libglvnd","namespace":"xim"},"name":"libglvnd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libglvnd.lua","ref":"","type":0,"version":""},"xim:libllvm":{"canonical_name":"xim:libllvm","description":"LLVM as a shared library — the code generator mesa's llvmpipe and radeonsi use","entry_key":"xim:libllvm","identity":{"name":"libllvm","namespace":"xim"},"name":"libllvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libllvm.lua","ref":"","type":0,"version":""},"xim:libpciaccess":{"canonical_name":"xim:libpciaccess","description":"Generic PCI device access library","entry_key":"xim:libpciaccess","identity":{"name":"libpciaccess","namespace":"xim"},"name":"libpciaccess","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpciaccess.lua","ref":"","type":0,"version":""},"xim:libpng":{"canonical_name":"xim:libpng","description":"Official PNG reference library","entry_key":"xim:libpng","identity":{"name":"libpng","namespace":"xim"},"name":"libpng","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpng.lua","ref":"","type":0,"version":""},"xim:libxcb":{"canonical_name":"xim:libxcb","description":"X protocol C-language Binding","entry_key":"xim:libxcb","identity":{"name":"libxcb","namespace":"xim"},"name":"libxcb","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxcb.lua","ref":"","type":0,"version":""},"xim:libxkbcommon":{"canonical_name":"xim:libxkbcommon","description":"Keymap handling library for Wayland and X11 clients","entry_key":"xim:libxkbcommon","identity":{"name":"libxkbcommon","namespace":"xim"},"name":"libxkbcommon","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxkbcommon.lua","ref":"","type":0,"version":""},"xim:libxml2":{"canonical_name":"xim:libxml2","description":"XML C parser and toolkit","entry_key":"xim:libxml2","identity":{"name":"libxml2","namespace":"xim"},"name":"libxml2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxml2.lua","ref":"","type":0,"version":""},"xim:libxshmfence":{"canonical_name":"xim:libxshmfence","description":"Shared-memory fences for DRI3","entry_key":"xim:libxshmfence","identity":{"name":"libxshmfence","namespace":"xim"},"name":"libxshmfence","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxshmfence.lua","ref":"","type":0,"version":""},"xim:linux-headers":{"canonical_name":"xim:linux-headers","description":"Linux Kernel Headers (prebuilt)","entry_key":"xim:linux-headers","identity":{"name":"linux-headers","namespace":"xim"},"name":"linux-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-headers.lua","ref":"","type":0,"version":""},"xim:linux-sysroot-create":{"canonical_name":"xim:linux-sysroot-create","description":"XScript: Linux Sysroot Create Tool","entry_key":"xim:linux-sysroot-create","identity":{"name":"linux-sysroot-create","namespace":"xim"},"name":"linux-sysroot-create","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-sysroot-create.lua","ref":"","type":1,"version":""},"xim:llvm":{"canonical_name":"xim:llvm","description":"LLVM compiler infrastructure and toolchain","entry_key":"xim:llvm","identity":{"name":"llvm","namespace":"xim"},"name":"llvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm.lua","ref":"","type":0,"version":""},"xim:llvm-tools":{"canonical_name":"xim:llvm-tools","description":"LLVM development tools (clang-format, clang-tidy, clangd)","entry_key":"xim:llvm-tools","identity":{"name":"llvm-tools","namespace":"xim"},"name":"llvm-tools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm-tools.lua","ref":"","type":0,"version":""},"xim:make":{"canonical_name":"xim:make","description":"GNU Make — tool which controls the generation of executables from source files","entry_key":"xim:make","identity":{"name":"make","namespace":"xim"},"name":"make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/make.lua","ref":"","type":0,"version":""},"xim:mcpp":{"canonical_name":"xim:mcpp","description":"A modern C++ build tool with module support, dependency/toolchain management, package indexing, and packaging","entry_key":"xim:mcpp","identity":{"name":"mcpp","namespace":"xim"},"name":"mcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp.lua","ref":"","type":0,"version":""},"xim:mcpp-short-cmd":{"canonical_name":"xim:mcpp-short-cmd","description":"Short command aliases for mcpp (mp/mbuild/mrun/mtest/...)","entry_key":"xim:mcpp-short-cmd","identity":{"name":"mcpp-short-cmd","namespace":"xim"},"name":"mcpp-short-cmd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-short-cmd.lua","ref":"","type":0,"version":""},"xim:mdbook":{"canonical_name":"xim:mdbook","description":"Create book from markdown files. Like Gitbook but implemented in Rust","entry_key":"xim:mdbook","identity":{"name":"mdbook","namespace":"xim"},"name":"mdbook","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mdbook.lua","ref":"","type":0,"version":""},"xim:media-crawler":{"canonical_name":"xim:media-crawler","description":"Multi-platform social media crawler (XHS, Douyin, Kuaishou, Bilibili, Weibo, Tieba, Zhihu) using Playwright","entry_key":"xim:media-crawler","identity":{"name":"media-crawler","namespace":"xim"},"name":"media-crawler","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/media-crawler.lua","ref":"","type":0,"version":""},"xim:mesa":{"canonical_name":"xim:mesa","description":"Mesa 3D — OpenGL and Vulkan: llvmpipe, radeonsi, nouveau, zink, RADV","entry_key":"xim:mesa","identity":{"name":"mesa","namespace":"xim"},"name":"mesa","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mesa.lua","ref":"","type":0,"version":""},"xim:mingw-cross-gcc":{"canonical_name":"xim:mingw-cross-gcc","description":"MinGW-w64 GCC cross toolchain (Linux host → Windows x86_64 PE, MSVCRT runtime)","entry_key":"xim:mingw-cross-gcc","identity":{"name":"mingw-cross-gcc","namespace":"xim"},"name":"mingw-cross-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-cross-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-gcc":{"canonical_name":"xim:mingw-gcc","description":"MinGW-w64 GCC for Windows (winlibs standalone build, UCRT runtime)","entry_key":"xim:mingw-gcc","identity":{"name":"mingw-gcc","namespace":"xim"},"name":"mingw-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-w64":{"canonical_name":"xim:mingw-w64","description":"A complete runtime environment for GCC & LLVM for Windows","entry_key":"xim:mingw-w64","identity":{"name":"mingw-w64","namespace":"xim"},"name":"mingw-w64","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-w64.lua","ref":"","type":0,"version":""},"xim:msvc":{"canonical_name":"xim:msvc","description":"Microsoft Visual Studio C++ Compiler","entry_key":"xim:msvc","identity":{"name":"msvc","namespace":"xim"},"name":"msvc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/msvc.lua","ref":"","type":3,"version":""},"xim:musl":{"canonical_name":"xim:musl","description":"musl - a lightweight, fast, simple, free, standards-conformant C library","entry_key":"xim:musl","identity":{"name":"musl","namespace":"xim"},"name":"musl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl.lua","ref":"","type":0,"version":""},"xim:musl-cross-make":{"canonical_name":"xim:musl-cross-make","description":"Simple makefile-based build for musl cross compiler","entry_key":"xim:musl-cross-make","identity":{"name":"musl-cross-make","namespace":"xim"},"name":"musl-cross-make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-cross-make.lua","ref":"","type":1,"version":""},"xim:musl-gcc":{"canonical_name":"xim:musl-gcc","description":"GCC, the GNU Compiler Collection (prebuilt with musl)","entry_key":"xim:musl-gcc","identity":{"name":"musl-gcc","namespace":"xim"},"name":"musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-gcc.lua","ref":"","type":0,"version":""},"xim:nasm":{"canonical_name":"xim:nasm","description":"NASM - the Netwide Assembler, an assembler targeting the x86/x86-64 CPU family","entry_key":"xim:nasm","identity":{"name":"nasm","namespace":"xim"},"name":"nasm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nasm.lua","ref":"","type":0,"version":""},"xim:ninja":{"canonical_name":"xim:ninja","description":"a small build system with a focus on speed","entry_key":"xim:ninja","identity":{"name":"ninja","namespace":"xim"},"name":"ninja","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/ninja.lua","ref":"","type":0,"version":""},"xim:node":{"canonical_name":"xim:node","description":"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine","entry_key":"xim:node","identity":{"name":"node","namespace":"xim"},"name":"node","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/node.lua","ref":"","type":0,"version":""},"xim:npm":{"canonical_name":"xim:npm","description":"The package manager for JavaScript","entry_key":"xim:npm","identity":{"name":"npm","namespace":"xim"},"name":"npm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/npm.lua","ref":"","type":0,"version":""},"xim:nvidia-gl-host-link":{"canonical_name":"xim:nvidia-gl-host-link","description":"Sentinel: stable symlinks to the host's NVIDIA proprietary GL/EGL userspace","entry_key":"xim:nvidia-gl-host-link","identity":{"name":"nvidia-gl-host-link","namespace":"xim"},"name":"nvidia-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvidia-gl-host-link.lua","ref":"","type":0,"version":""},"xim:nvim":{"canonical_name":"xim:nvim","description":"Vim-fork focused on extensibility and usability","entry_key":"xim:nvim","identity":{"name":"nvim","namespace":"xim"},"name":"nvim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvim.lua","ref":"","type":0,"version":""},"xim:nvm":{"canonical_name":"xim:nvm","description":"Node Version Manager - POSIX-compliant node.js version manager","entry_key":"xim:nvm","identity":{"name":"nvm","namespace":"xim"},"name":"nvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvm.lua","ref":"","type":0,"version":""},"xim:ollama":{"canonical_name":"xim:ollama","description":"Get up and running with large language models locally","entry_key":"xim:ollama","identity":{"name":"ollama","namespace":"xim"},"name":"ollama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/ollama.lua","ref":"","type":0,"version":""},"xim:openclaw":{"canonical_name":"xim:openclaw","description":"OpenClaw CLI","entry_key":"xim:openclaw","identity":{"name":"openclaw","namespace":"xim"},"name":"openclaw","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openclaw.lua","ref":"","type":0,"version":""},"xim:openssl":{"canonical_name":"xim:openssl","description":"TLS/SSL and cryptography toolkit","entry_key":"xim:openssl","identity":{"name":"openssl","namespace":"xim"},"name":"openssl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openssl.lua","ref":"","type":0,"version":""},"xim:pango":{"canonical_name":"xim:pango","description":"Library for layout and rendering of internationalized text","entry_key":"xim:pango","identity":{"name":"pango","namespace":"xim"},"name":"pango","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pango.lua","ref":"","type":0,"version":""},"xim:patchelf":{"canonical_name":"xim:patchelf","description":"ELF patch tool for interpreter and RPATH","entry_key":"xim:patchelf","identity":{"name":"patchelf","namespace":"xim"},"name":"patchelf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/patchelf.lua","ref":"","type":0,"version":""},"xim:pcre2":{"canonical_name":"xim:pcre2","description":"Perl Compatible Regular Expressions (v2)","entry_key":"xim:pcre2","identity":{"name":"pcre2","namespace":"xim"},"name":"pcre2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pcre2.lua","ref":"","type":0,"version":""},"xim:perl":{"canonical_name":"xim:perl","description":"Perl — a complete, relocatable Perl 5 interpreter with the full core module set","entry_key":"xim:perl","identity":{"name":"perl","namespace":"xim"},"name":"perl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/perl.lua","ref":"","type":0,"version":""},"xim:pixman":{"canonical_name":"xim:pixman","description":"Low-level pixel manipulation library (cairo backend)","entry_key":"xim:pixman","identity":{"name":"pixman","namespace":"xim"},"name":"pixman","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pixman.lua","ref":"","type":0,"version":""},"xim:pnpm":{"canonical_name":"xim:pnpm","description":"Fast, disk space efficient package manager","entry_key":"xim:pnpm","identity":{"name":"pnpm","namespace":"xim"},"name":"pnpm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pnpm.lua","ref":"","type":0,"version":""},"xim:project-graph":{"canonical_name":"xim:project-graph","description":"快速绘制节点图的桌面工具 - 项目进程拓扑图绘制、头脑风暴草稿","entry_key":"xim:project-graph","identity":{"name":"project-graph","namespace":"xim"},"name":"project-graph","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/project-graph.lua","ref":"","type":0,"version":""},"xim:proot":{"canonical_name":"xim:proot","description":"Userspace chroot, mount --bind, and binfmt_misc — no root required","entry_key":"xim:proot","identity":{"name":"proot","namespace":"xim"},"name":"proot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/proot.lua","ref":"","type":0,"version":""},"xim:python":{"canonical_name":"xim:python","description":"The Python programming language","entry_key":"xim:python","identity":{"name":"python","namespace":"xim"},"name":"python","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/python.lua","ref":"","type":0,"version":""},"xim:ripgrep":{"canonical_name":"xim:ripgrep","description":"Fast, recursive grep that respects .gitignore","entry_key":"xim:ripgrep","identity":{"name":"ripgrep","namespace":"xim"},"name":"ripgrep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ripgrep.lua","ref":"","type":0,"version":""},"xim:ros2-jazzy-ubnutu":{"canonical_name":"xim:ros2-jazzy-ubnutu","description":"Config: one-click ROS 2 Jazzy Jalisco setup for Ubuntu 24.04","entry_key":"xim:ros2-jazzy-ubnutu","identity":{"name":"ros2-jazzy-ubnutu","namespace":"xim"},"name":"ros2-jazzy-ubnutu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ros2-jazzy-ubuntu.lua","ref":"","type":3,"version":""},"xim:rosdep":{"canonical_name":"xim:rosdep","description":"ROS dependency management tool","entry_key":"xim:rosdep","identity":{"name":"rosdep","namespace":"xim"},"name":"rosdep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rosdep.lua","ref":"","type":0,"version":""},"xim:rust":{"canonical_name":"xim:rust","description":"A language empowering everyone to build reliable and efficient software","entry_key":"xim:rust","identity":{"name":"rust","namespace":"xim"},"name":"rust","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust.lua","ref":"","type":0,"version":""},"xim:rustup":{"canonical_name":"xim:rustup","description":"An installer init tool for Rustup, the Rust toolchain installer","entry_key":"xim:rustup","identity":{"name":"rustup","namespace":"xim"},"name":"rustup","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup.lua","ref":"","type":0,"version":""},"xim:seeme-report":{"canonical_name":"xim:seeme-report","description":"让别人知道你在干什么 seeme report端","entry_key":"xim:seeme-report","identity":{"name":"seeme-report","namespace":"xim"},"name":"seeme-report","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-report.lua","ref":"","type":0,"version":""},"xim:seeme-server":{"canonical_name":"xim:seeme-server","description":"让别人知道你在干什么 seeme 服务端","entry_key":"xim:seeme-server","identity":{"name":"seeme-server","namespace":"xim"},"name":"seeme-server","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-server.lua","ref":"","type":0,"version":""},"xim:shortcut-tool":{"canonical_name":"xim:shortcut-tool","description":"Shortcut Tool: Create and manage shortcuts easily","entry_key":"xim:shortcut-tool","identity":{"name":"shortcut-tool","namespace":"xim"},"name":"shortcut-tool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/shortcut-tool.lua","ref":"","type":1,"version":""},"xim:sing-box":{"canonical_name":"xim:sing-box","description":"The universal proxy platform","entry_key":"xim:sing-box","identity":{"name":"sing-box","namespace":"xim"},"name":"sing-box","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box.lua","ref":"","type":0,"version":""},"xim:sing-box-helper":{"canonical_name":"xim:sing-box-helper","description":"Sing-Box Helper Tools - Simple commands for server and client configuration","entry_key":"xim:sing-box-helper","identity":{"name":"sing-box-helper","namespace":"xim"},"name":"sing-box-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box-helper.lua","ref":"","type":1,"version":""},"xim:sourcetrail":{"canonical_name":"xim:sourcetrail","description":"Sourcetrail - free and open-source interactive source explorer","entry_key":"xim:sourcetrail","identity":{"name":"sourcetrail","namespace":"xim"},"name":"sourcetrail","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sourcetrail.lua","ref":"","type":0,"version":""},"xim:syslinux":{"canonical_name":"xim:syslinux","description":"SYSLINUX bootloader collection (isolinux, pxelinux, extlinux + EFI loaders)","entry_key":"xim:syslinux","identity":{"name":"syslinux","namespace":"xim"},"name":"syslinux","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/syslinux.lua","ref":"","type":0,"version":""},"xim:trendradar":{"canonical_name":"xim:trendradar","description":"AI-driven public opinion and trend monitor with multi-platform aggregation, RSS, and smart alerts","entry_key":"xim:trendradar","identity":{"name":"trendradar","namespace":"xim"},"name":"trendradar","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/t/trendradar.lua","ref":"","type":0,"version":""},"xim:uv":{"canonical_name":"xim:uv","description":"An extremely fast Python package and project manager (Astral)","entry_key":"xim:uv","identity":{"name":"uv","namespace":"xim"},"name":"uv","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/u/uv.lua","ref":"","type":0,"version":""},"xim:vc6":{"canonical_name":"xim:vc6","description":"Visual C++ 6.0: Classic C/C++ IDE (portable for Windows 10/11)","entry_key":"xim:vc6","identity":{"name":"vc6","namespace":"xim"},"name":"vc6","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vc6.lua","ref":"","type":0,"version":""},"xim:vcstool":{"canonical_name":"xim:vcstool","description":"Version control system tool for multiple repos (ROS vcstool)","entry_key":"xim:vcstool","identity":{"name":"vcstool","namespace":"xim"},"name":"vcstool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vcstool.lua","ref":"","type":0,"version":""},"xim:vim":{"canonical_name":"xim:vim","description":"The classic Vi IMproved text editor (statically linked, hermetic)","entry_key":"xim:vim","identity":{"name":"vim","namespace":"xim"},"name":"vim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vim.lua","ref":"","type":0,"version":""},"xim:virtualbox":{"canonical_name":"xim:virtualbox","description":"Oracle VM VirtualBox userspace + VBoxManage CLI (portable, alias: vbox)","entry_key":"xim:virtualbox","identity":{"name":"virtualbox","namespace":"xim"},"name":"virtualbox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox.lua","ref":"","type":0,"version":""},"xim:vs-buildtools":{"canonical_name":"xim:vs-buildtools","description":"Visual Studio Build Tools","entry_key":"xim:vs-buildtools","identity":{"name":"vs-buildtools","namespace":"xim"},"name":"vs-buildtools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vs-buildtools.lua","ref":"","type":3,"version":""},"xim:vulkan-headers":{"canonical_name":"xim:vulkan-headers","description":"Vulkan API headers and registry","entry_key":"xim:vulkan-headers","identity":{"name":"vulkan-headers","namespace":"xim"},"name":"vulkan-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vulkan-headers.lua","ref":"","type":0,"version":""},"xim:vulkan-loader":{"canonical_name":"xim:vulkan-loader","description":"Vulkan ICD loader - libvulkan.so.1, without which an ICD manifest is never read","entry_key":"xim:vulkan-loader","identity":{"name":"vulkan-loader","namespace":"xim"},"name":"vulkan-loader","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vulkan-loader.lua","ref":"","type":0,"version":""},"xim:wayland":{"canonical_name":"xim:wayland","description":"Wayland protocol library and scanner","entry_key":"xim:wayland","identity":{"name":"wayland","namespace":"xim"},"name":"wayland","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland.lua","ref":"","type":0,"version":""},"xim:wayland-protocols":{"canonical_name":"xim:wayland-protocols","description":"Wayland protocol extension definitions (build-time)","entry_key":"xim:wayland-protocols","identity":{"name":"wayland-protocols","namespace":"xim"},"name":"wayland-protocols","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland-protocols.lua","ref":"","type":0,"version":""},"xim:windows-acp":{"canonical_name":"xim:windows-acp","description":"ACP: Beta: Use Unicode UTF-8 for worldwide language support","entry_key":"xim:windows-acp","identity":{"name":"windows-acp","namespace":"xim"},"name":"windows-acp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/windows-acp.lua","ref":"","type":0,"version":""},"xim:wsl-gl-host-link":{"canonical_name":"xim:wsl-gl-host-link","description":"Sentinel: links WSL2's host D3D12/DXCore userspace so mesa's d3d12 driver can reach the Windows GPU","entry_key":"xim:wsl-gl-host-link","identity":{"name":"wsl-gl-host-link","namespace":"xim"},"name":"wsl-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-gl-host-link.lua","ref":"","type":0,"version":""},"xim:wsl-ubuntu":{"canonical_name":"xim:wsl-ubuntu","description":"Windows Subsystem for Linux (WSL) Ubuntu","entry_key":"xim:wsl-ubuntu","identity":{"name":"wsl-ubuntu","namespace":"xim"},"name":"wsl-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-ubuntu.lua","ref":"","type":3,"version":""},"xim:x86_64-linux-musl-gcc":{"canonical_name":"xim:x86_64-linux-musl-gcc","description":"GCC cross toolchain targeting x86_64-linux-musl (musl, fully static ELF)","entry_key":"xim:x86_64-linux-musl-gcc","identity":{"name":"x86_64-linux-musl-gcc","namespace":"xim"},"name":"x86_64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/x86_64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:xcb-proto":{"canonical_name":"xim:xcb-proto","description":"XML-XCB protocol descriptions (build-time)","entry_key":"xim:xcb-proto","identity":{"name":"xcb-proto","namespace":"xim"},"name":"xcb-proto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xcb-proto.lua","ref":"","type":0,"version":""},"xim:xlings":{"canonical_name":"xim:xlings","description":"Xlings | Highly abstract [ package manager ] - \"Multi-version management + Everything can be a package\"","entry_key":"xim:xlings","identity":{"name":"xlings","namespace":"xim"},"name":"xlings","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings.lua","ref":"","type":0,"version":""},"xim:xlings-project-templates":{"canonical_name":"xim:xlings-project-templates","description":"Xlings - Project Templates","entry_key":"xim:xlings-project-templates","identity":{"name":"xlings-project-templates","namespace":"xim"},"name":"xlings-project-templates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings-project-templates.lua","ref":"","type":2,"version":""},"xim:xmake":{"canonical_name":"xim:xmake","description":"A cross-platform build utility based on Lua","entry_key":"xim:xmake","identity":{"name":"xmake","namespace":"xim"},"name":"xmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xmake.lua","ref":"","type":0,"version":""},"xim:xorgproto":{"canonical_name":"xim:xorgproto","description":"X Window System protocol headers (build-time)","entry_key":"xim:xorgproto","identity":{"name":"xorgproto","namespace":"xim"},"name":"xorgproto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xorgproto.lua","ref":"","type":0,"version":""},"xim:xpkg-helper":{"canonical_name":"xim:xpkg-helper","description":"XPKG: XPackage Helper Tools","entry_key":"xim:xpkg-helper","identity":{"name":"xpkg-helper","namespace":"xim"},"name":"xpkg-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xpkg-helper.lua","ref":"","type":1,"version":""},"xim:xtrans":{"canonical_name":"xim:xtrans","description":"X transport layer macros and headers (build-time)","entry_key":"xim:xtrans","identity":{"name":"xtrans","namespace":"xim"},"name":"xtrans","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xtrans.lua","ref":"","type":0,"version":""},"xim:xvm":{"canonical_name":"xim:xvm","description":"a simple and generic version management tool","entry_key":"xim:xvm","identity":{"name":"xvm","namespace":"xim"},"name":"xvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm.lua","ref":"","type":0,"version":""},"xim:xvm-sysdetect":{"canonical_name":"xim:xvm-sysdetect","description":"XVM - System Package Detect Tools","entry_key":"xim:xvm-sysdetect","identity":{"name":"xvm-sysdetect","namespace":"xim"},"name":"xvm-sysdetect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm-sysdetect.lua","ref":"","type":3,"version":""},"xim:yazi":{"canonical_name":"xim:yazi","description":"Blazing fast terminal file manager written in Rust, based on async I/O","entry_key":"xim:yazi","identity":{"name":"yazi","namespace":"xim"},"name":"yazi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/y/yazi.lua","ref":"","type":0,"version":""},"xim:zlib":{"canonical_name":"xim:zlib","description":"A massively spiffy yet delicately unobtrusive compression library","entry_key":"xim:zlib","identity":{"name":"zlib","namespace":"xim"},"name":"zlib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zlib.lua","ref":"","type":0,"version":""},"xim:zoxide":{"canonical_name":"xim:zoxide","description":"A smarter cd command — jump to your most-used directories","entry_key":"xim:zoxide","identity":{"name":"zoxide","namespace":"xim"},"name":"zoxide","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zoxide.lua","ref":"","type":0,"version":""}},"mutex_groups":{},"repo_head_hash":"0a46e4866cf8cd5bd383383b2b6bf794a21e60d5","version":2} \ No newline at end of file +{"default_namespace":"xim","entries":{"config:claude-llm":{"canonical_name":"config:claude-llm","description":"Configure Claude Code to use DeepSeek Anthropic-compatible API","entry_key":"config:claude-llm","identity":{"name":"claude-llm","namespace":"config"},"name":"claude-llm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude-llm.lua","ref":"","type":3,"version":""},"config:fontconfig-user-moyingji":{"canonical_name":"config:fontconfig-user-moyingji","description":"Basic user configuration for Linux Fontconfig written by MoYingJi","entry_key":"config:fontconfig-user-moyingji","identity":{"name":"fontconfig-user-moyingji","namespace":"config"},"name":"fontconfig-user-moyingji","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig-user-moyingji.lua","ref":"","type":3,"version":""},"config:gitcode-hosts":{"canonical_name":"config:gitcode-hosts","description":"Config gitcode.com ip mapping-groups to hosts file","entry_key":"config:gitcode-hosts","identity":{"name":"gitcode-hosts","namespace":"config"},"name":"gitcode-hosts","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gitcode-hosts.lua","ref":"","type":3,"version":""},"config:mcpp-vscode-clangd":{"canonical_name":"config:mcpp-vscode-clangd","description":"Configure VSCode clangd support for mcpp LLVM projects","entry_key":"config:mcpp-vscode-clangd","identity":{"name":"mcpp-vscode-clangd","namespace":"config"},"name":"mcpp-vscode-clangd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-vscode-clangd.lua","ref":"","type":3,"version":""},"config:powershell-execpolicy":{"canonical_name":"config:powershell-execpolicy","description":"fix execution policy issue when open Powershell(load .ps1 file)","entry_key":"config:powershell-execpolicy","identity":{"name":"powershell-execpolicy","namespace":"config"},"name":"powershell-execpolicy","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/powershell-execpolicy.lua","ref":"","type":0,"version":""},"config:rust-crates-mirror":{"canonical_name":"config:rust-crates-mirror","description":"Config Index Mirror for Rust Crates (Cargo)","entry_key":"config:rust-crates-mirror","identity":{"name":"rust-crates-mirror","namespace":"config"},"name":"rust-crates-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust-crates-mirror.lua","ref":"","type":3,"version":""},"config:rustup-mirror":{"canonical_name":"config:rustup-mirror","description":"Config Mirror for Rustup","entry_key":"config:rustup-mirror","identity":{"name":"rustup-mirror","namespace":"config"},"name":"rustup-mirror","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup-mirror.lua","ref":"","type":3,"version":""},"config:virtualbox-ubuntu":{"canonical_name":"config:virtualbox-ubuntu","description":"Provision a ready-to-use Ubuntu 24.04 VM in VirtualBox (unattended install)","entry_key":"config:virtualbox-ubuntu","identity":{"name":"virtualbox-ubuntu","namespace":"config"},"name":"virtualbox-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox-ubuntu.lua","ref":"","type":0,"version":""},"xim:7zip":{"canonical_name":"xim:7zip","description":"7-Zip — a file archiver with a high compression ratio","entry_key":"xim:7zip","identity":{"name":"7zip","namespace":"xim"},"name":"7zip","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/7/7zip.lua","ref":"","type":0,"version":""},"xim:aarch64-linux-musl-gcc":{"canonical_name":"xim:aarch64-linux-musl-gcc","description":"Cross GCC toolchain: host -> aarch64-linux-musl (musl, static-capable)","entry_key":"xim:aarch64-linux-musl-gcc","identity":{"name":"aarch64-linux-musl-gcc","namespace":"xim"},"name":"aarch64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aarch64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:aria2-next":{"canonical_name":"xim:aria2-next","description":"Aria2 Next — a maintained aria2 fork with extensive bug fixes and a modernized architecture","entry_key":"xim:aria2-next","identity":{"name":"aria2-next","namespace":"xim"},"name":"aria2-next","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/a/aria2-next.lua","ref":"","type":0,"version":""},"xim:bat":{"canonical_name":"xim:bat","description":"A cat clone with syntax highlighting and Git integration","entry_key":"xim:bat","identity":{"name":"bat","namespace":"xim"},"name":"bat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bat.lua","ref":"","type":0,"version":""},"xim:binutils":{"canonical_name":"xim:binutils","description":"The GNU Binutils are a collection of binary tools","entry_key":"xim:binutils","identity":{"name":"binutils","namespace":"xim"},"name":"binutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/binutils.lua","ref":"","type":0,"version":""},"xim:brew":{"canonical_name":"xim:brew","description":"Homebrew: The Missing Package Manager for macOS (or Linux)","entry_key":"xim:brew","identity":{"name":"brew","namespace":"xim"},"name":"brew","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/brew.lua","ref":"","type":0,"version":""},"xim:bun":{"canonical_name":"xim:bun","description":"Bun is an all-in-one toolkit for JavaScript and TypeScript apps","entry_key":"xim:bun","identity":{"name":"bun","namespace":"xim"},"name":"bun","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bun.lua","ref":"","type":0,"version":""},"xim:busybox":{"canonical_name":"xim:busybox","description":"The Swiss Army Knife of Embedded Linux — single static binary providing 400+ POSIX utilities","entry_key":"xim:busybox","identity":{"name":"busybox","namespace":"xim"},"name":"busybox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/busybox.lua","ref":"","type":0,"version":""},"xim:bwrap":{"canonical_name":"xim:bwrap","description":"Bubblewrap — namespace-based sandboxing tool (setuid mode for cross-distro compat)","entry_key":"xim:bwrap","identity":{"name":"bwrap","namespace":"xim"},"name":"bwrap","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/b/bwrap.lua","ref":"","type":0,"version":""},"xim:ca-certificates":{"canonical_name":"xim:ca-certificates","description":"Mozilla CA root bundle (extracted by curl.se)","entry_key":"xim:ca-certificates","identity":{"name":"ca-certificates","namespace":"xim"},"name":"ca-certificates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/ca-certificates.lua","ref":"","type":0,"version":""},"xim:cairo":{"canonical_name":"xim:cairo","description":"2D graphics library (xcb-free / headless build for manim)","entry_key":"xim:cairo","identity":{"name":"cairo","namespace":"xim"},"name":"cairo","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cairo.lua","ref":"","type":0,"version":""},"xim:cc-connect":{"canonical_name":"xim:cc-connect","description":"Bridge local AI coding agents (Claude Code, Codex, Cursor, Gemini CLI, etc.) to messaging platforms (Feishu, Slack, Telegram, Discord, ...)","entry_key":"xim:cc-connect","identity":{"name":"cc-connect","namespace":"xim"},"name":"cc-connect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-connect.lua","ref":"","type":0,"version":""},"xim:cc-switch":{"canonical_name":"xim:cc-switch","description":"Cross-platform desktop tool for switching providers across Claude Code / Codex / OpenCode / Gemini CLI / openclaw","entry_key":"xim:cc-switch","identity":{"name":"cc-switch","namespace":"xim"},"name":"cc-switch","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cc-switch.lua","ref":"","type":0,"version":""},"xim:claude":{"canonical_name":"xim:claude","description":"Claude Code CLI from Anthropic","entry_key":"xim:claude","identity":{"name":"claude","namespace":"xim"},"name":"claude","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/claude.lua","ref":"","type":0,"version":""},"xim:cmake":{"canonical_name":"xim:cmake","description":"A Powerful Software Build System","entry_key":"xim:cmake","identity":{"name":"cmake","namespace":"xim"},"name":"cmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cmake.lua","ref":"","type":0,"version":""},"xim:code":{"canonical_name":"xim:code","description":"Visual Studio Code","entry_key":"xim:code","identity":{"name":"code","namespace":"xim"},"name":"code","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/code.lua","ref":"","type":0,"version":""},"xim:codex":{"canonical_name":"xim:codex","description":"Codex CLI from OpenAI","entry_key":"xim:codex","identity":{"name":"codex","namespace":"xim"},"name":"codex","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/codex.lua","ref":"","type":0,"version":""},"xim:configure-project-installer":{"canonical_name":"xim:configure-project-installer","description":"Build & Install (from source) helper tools for ./configure-based projects","entry_key":"xim:configure-project-installer","identity":{"name":"configure-project-installer","namespace":"xim"},"name":"configure-project-installer","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/configure-project-installer.lua","ref":"","type":1,"version":""},"xim:cpp":{"canonical_name":"xim:cpp","description":"C++ language toolchain","entry_key":"xim:cpp","identity":{"name":"cpp","namespace":"xim"},"name":"cpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/c/cpp.lua","ref":"","type":3,"version":""},"xim:d2x":{"canonical_name":"xim:d2x","description":"xlings's d2x tool","entry_key":"xim:d2x","identity":{"name":"d2x","namespace":"xim"},"name":"d2x","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/d2x.lua","ref":"","type":0,"version":""},"xim:dash":{"canonical_name":"xim:dash","description":"Debian Almquist Shell — small POSIX-compliant shell","entry_key":"xim:dash","identity":{"name":"dash","namespace":"xim"},"name":"dash","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dash.lua","ref":"","type":0,"version":""},"xim:devcpp":{"canonical_name":"xim:devcpp","description":"Dev-C++: A full-featured Integrated Development Environment (IDE) for the C/C++","entry_key":"xim:devcpp","identity":{"name":"devcpp","namespace":"xim"},"name":"devcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/devcpp.lua","ref":"","type":0,"version":""},"xim:dotnet":{"canonical_name":"xim:dotnet","description":".NET is the free, open-source, cross-platform framework","entry_key":"xim:dotnet","identity":{"name":"dotnet","namespace":"xim"},"name":"dotnet","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/d/dotnet.lua","ref":"","type":0,"version":""},"xim:e2fsprogs":{"canonical_name":"xim:e2fsprogs","description":"ext2/ext3/ext4 filesystem utilities (mke2fs, e2fsck, tune2fs, resize2fs, debugfs)","entry_key":"xim:e2fsprogs","identity":{"name":"e2fsprogs","namespace":"xim"},"name":"e2fsprogs","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/e2fsprogs.lua","ref":"","type":0,"version":""},"xim:elfutils":{"canonical_name":"xim:elfutils","description":"ELF object file access library — libelf, for radeonsi","entry_key":"xim:elfutils","identity":{"name":"elfutils","namespace":"xim"},"name":"elfutils","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/elfutils.lua","ref":"","type":0,"version":""},"xim:expat":{"canonical_name":"xim:expat","description":"Fast streaming XML parser library","entry_key":"xim:expat","identity":{"name":"expat","namespace":"xim"},"name":"expat","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/e/expat.lua","ref":"","type":0,"version":""},"xim:fd":{"canonical_name":"xim:fd","description":"Simple, fast, user-friendly alternative to find","entry_key":"xim:fd","identity":{"name":"fd","namespace":"xim"},"name":"fd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fd.lua","ref":"","type":0,"version":""},"xim:fish":{"canonical_name":"xim:fish","description":"Friendly interactive shell — smart, user-friendly, modern command-line","entry_key":"xim:fish","identity":{"name":"fish","namespace":"xim"},"name":"fish","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fish.lua","ref":"","type":0,"version":""},"xim:fontconfig":{"canonical_name":"xim:fontconfig","description":"Library for configuring and customizing font access","entry_key":"xim:fontconfig","identity":{"name":"fontconfig","namespace":"xim"},"name":"fontconfig","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fontconfig.lua","ref":"","type":0,"version":""},"xim:freetype":{"canonical_name":"xim:freetype","description":"A freely available software library to render fonts","entry_key":"xim:freetype","identity":{"name":"freetype","namespace":"xim"},"name":"freetype","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/freetype.lua","ref":"","type":0,"version":""},"xim:fribidi":{"canonical_name":"xim:fribidi","description":"Free Implementation of the Unicode Bidirectional Algorithm","entry_key":"xim:fribidi","identity":{"name":"fribidi","namespace":"xim"},"name":"fribidi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fribidi.lua","ref":"","type":0,"version":""},"xim:fzf":{"canonical_name":"xim:fzf","description":"A command-line fuzzy finder","entry_key":"xim:fzf","identity":{"name":"fzf","namespace":"xim"},"name":"fzf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/f/fzf.lua","ref":"","type":0,"version":""},"xim:gcc":{"canonical_name":"xim:gcc","description":"GCC, the GNU Compiler Collection","entry_key":"xim:gcc","identity":{"name":"gcc","namespace":"xim"},"name":"gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc.lua","ref":"","type":0,"version":""},"xim:gcc-runtime":{"canonical_name":"xim:gcc-runtime","description":"GCC runtime libraries (libstdc++, libgcc_s, libgomp, libatomic, libitm, libquadmath, libssp) — required by virtually every C++ binary on Linux, including Clang-built ones","entry_key":"xim:gcc-runtime","identity":{"name":"gcc-runtime","namespace":"xim"},"name":"gcc-runtime","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-runtime.lua","ref":"","type":0,"version":""},"xim:gcc-specs-config":{"canonical_name":"xim:gcc-specs-config","description":"XScript: GCC Specs Config Tool","entry_key":"xim:gcc-specs-config","identity":{"name":"gcc-specs-config","namespace":"xim"},"name":"gcc-specs-config","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/gcc-specs-config.lua","ref":"","type":1,"version":""},"xim:git":{"canonical_name":"xim:git","description":"Git is a free and open source distributed version control system","entry_key":"xim:git","identity":{"name":"git","namespace":"xim"},"name":"git","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git.lua","ref":"","type":0,"version":""},"xim:git-autosync":{"canonical_name":"xim:git-autosync","description":"XScript: Git AutoSync Tools","entry_key":"xim:git-autosync","identity":{"name":"git-autosync","namespace":"xim"},"name":"git-autosync","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/git-autosync.lua","ref":"","type":1,"version":""},"xim:github-gh":{"canonical_name":"xim:github-gh","description":"GitHub's official command line tool","entry_key":"xim:github-gh","identity":{"name":"github-gh","namespace":"xim"},"name":"github-gh","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-gh.lua","ref":"","type":0,"version":""},"xim:github-notifications-clear":{"canonical_name":"xim:github-notifications-clear","description":"Clear github's notifications (unread)","entry_key":"xim:github-notifications-clear","identity":{"name":"github-notifications-clear","namespace":"xim"},"name":"github-notifications-clear","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/github-notifications-clear.lua","ref":"","type":1,"version":""},"xim:glib":{"canonical_name":"xim:glib","description":"Low-level core library (GLib/GObject/GIO)","entry_key":"xim:glib","identity":{"name":"glib","namespace":"xim"},"name":"glib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glib.lua","ref":"","type":0,"version":""},"xim:glibc":{"canonical_name":"xim:glibc","description":"The GNU C Library","entry_key":"xim:glibc","identity":{"name":"glibc","namespace":"xim"},"name":"glibc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glibc.lua","ref":"","type":0,"version":""},"xim:glslang":{"canonical_name":"xim:glslang","description":"Khronos reference GLSL/ESSL front end and validator (build-time)","entry_key":"xim:glslang","identity":{"name":"glslang","namespace":"xim"},"name":"glslang","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/glslang.lua","ref":"","type":0,"version":""},"xim:go":{"canonical_name":"xim:go","description":"The Go programming language","entry_key":"xim:go","identity":{"name":"go","namespace":"xim"},"name":"go","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/go.lua","ref":"","type":0,"version":""},"xim:godot":{"canonical_name":"xim:godot","description":"Godot Engine - multi-platform 2D and 3D game engine (editor + headless export runner)","entry_key":"xim:godot","identity":{"name":"godot","namespace":"xim"},"name":"godot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/godot.lua","ref":"","type":0,"version":""},"xim:graphics":{"canonical_name":"xim:graphics","description":"The xlings graphics stack: OpenGL that adapts to whatever GPU this host has","entry_key":"xim:graphics","identity":{"name":"graphics","namespace":"xim"},"name":"graphics","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/graphics.lua","ref":"","type":0,"version":""},"xim:griddycode":{"canonical_name":"xim:griddycode","description":"A code editor made with Godot. Code has never been more lit!","entry_key":"xim:griddycode","identity":{"name":"griddycode","namespace":"xim"},"name":"griddycode","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/g/griddycode.lua","ref":"","type":0,"version":""},"xim:harfbuzz":{"canonical_name":"xim:harfbuzz","description":"OpenType text shaping engine","entry_key":"xim:harfbuzz","identity":{"name":"harfbuzz","namespace":"xim"},"name":"harfbuzz","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/harfbuzz.lua","ref":"","type":0,"version":""},"xim:hermes-agent":{"canonical_name":"xim:hermes-agent","description":"The self-improving AI agent from Nous Research — creates skills from experience, improves them during use, and runs anywhere","entry_key":"xim:hermes-agent","identity":{"name":"hermes-agent","namespace":"xim"},"name":"hermes-agent","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/h/hermes-agent.lua","ref":"","type":0,"version":""},"xim:interposer-stub":{"canonical_name":"xim:interposer-stub","description":"Prebuilt empty ELF stub that elfpatch.host_link_interposer turns into an interposer","entry_key":"xim:interposer-stub","identity":{"name":"interposer-stub","namespace":"xim"},"name":"interposer-stub","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/i/interposer-stub.lua","ref":"","type":0,"version":""},"xim:jdk-corretto":{"canonical_name":"xim:jdk-corretto","description":"Amazon Corretto — a no-cost, production-ready distribution of OpenJDK (LTS)","entry_key":"xim:jdk-corretto","identity":{"name":"jdk-corretto","namespace":"xim"},"name":"jdk-corretto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-corretto.lua","ref":"","type":0,"version":""},"xim:jdk-temurin":{"canonical_name":"xim:jdk-temurin","description":"Eclipse Temurin JDK 25 — a production-ready binary build of OpenJDK (LTS)","entry_key":"xim:jdk-temurin","identity":{"name":"jdk-temurin","namespace":"xim"},"name":"jdk-temurin","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-temurin.lua","ref":"","type":0,"version":""},"xim:jdk-zulu":{"canonical_name":"xim:jdk-zulu","description":"Azul Zulu Community — a TCK-certified, no-cost build of OpenJDK (LTS)","entry_key":"xim:jdk-zulu","identity":{"name":"jdk-zulu","namespace":"xim"},"name":"jdk-zulu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jdk-zulu.lua","ref":"","type":0,"version":""},"xim:jetbrainsmono-nerd-font":{"canonical_name":"xim:jetbrainsmono-nerd-font","description":"JetBrainsMono Nerd Font patched with terminal icons and glyphs","entry_key":"xim:jetbrainsmono-nerd-font","identity":{"name":"jetbrainsmono-nerd-font","namespace":"xim"},"name":"jetbrainsmono-nerd-font","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jetbrainsmono-nerd-font.lua","ref":"","type":0,"version":""},"xim:jq":{"canonical_name":"xim:jq","description":"Command-line JSON processor","entry_key":"xim:jq","identity":{"name":"jq","namespace":"xim"},"name":"jq","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/j/jq.lua","ref":"","type":0,"version":""},"xim:khistory":{"canonical_name":"xim:khistory","description":"An elegant keyboard/gamepad key detection and visualization tool","entry_key":"xim:khistory","identity":{"name":"khistory","namespace":"xim"},"name":"khistory","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/k/khistory.lua","ref":"","type":0,"version":""},"xim:libX11":{"canonical_name":"xim:libX11","description":"Core X11 client library","entry_key":"xim:libX11","identity":{"name":"libX11","namespace":"xim"},"name":"libX11","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libX11.lua","ref":"","type":0,"version":""},"xim:libXau":{"canonical_name":"xim:libXau","description":"X11 authorisation protocol library","entry_key":"xim:libXau","identity":{"name":"libXau","namespace":"xim"},"name":"libXau","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXau.lua","ref":"","type":0,"version":""},"xim:libXcursor":{"canonical_name":"xim:libXcursor","description":"X cursor management library","entry_key":"xim:libXcursor","identity":{"name":"libXcursor","namespace":"xim"},"name":"libXcursor","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXcursor.lua","ref":"","type":0,"version":""},"xim:libXdmcp":{"canonical_name":"xim:libXdmcp","description":"X Display Manager Control Protocol library","entry_key":"xim:libXdmcp","identity":{"name":"libXdmcp","namespace":"xim"},"name":"libXdmcp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXdmcp.lua","ref":"","type":0,"version":""},"xim:libXext":{"canonical_name":"xim:libXext","description":"X11 miscellaneous extensions library","entry_key":"xim:libXext","identity":{"name":"libXext","namespace":"xim"},"name":"libXext","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXext.lua","ref":"","type":0,"version":""},"xim:libXfixes":{"canonical_name":"xim:libXfixes","description":"X Fixes extension client library","entry_key":"xim:libXfixes","identity":{"name":"libXfixes","namespace":"xim"},"name":"libXfixes","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXfixes.lua","ref":"","type":0,"version":""},"xim:libXi":{"canonical_name":"xim:libXi","description":"X Input Extension client library","entry_key":"xim:libXi","identity":{"name":"libXi","namespace":"xim"},"name":"libXi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXi.lua","ref":"","type":0,"version":""},"xim:libXinerama":{"canonical_name":"xim:libXinerama","description":"X11 Xinerama extension — multi-monitor screen geometry","entry_key":"xim:libXinerama","identity":{"name":"libXinerama","namespace":"xim"},"name":"libXinerama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXinerama.lua","ref":"","type":0,"version":""},"xim:libXrandr":{"canonical_name":"xim:libXrandr","description":"X Resize, Rotate and Reflect extension library","entry_key":"xim:libXrandr","identity":{"name":"libXrandr","namespace":"xim"},"name":"libXrandr","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrandr.lua","ref":"","type":0,"version":""},"xim:libXrender":{"canonical_name":"xim:libXrender","description":"X Rendering Extension client library","entry_key":"xim:libXrender","identity":{"name":"libXrender","namespace":"xim"},"name":"libXrender","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXrender.lua","ref":"","type":0,"version":""},"xim:libXxf86vm":{"canonical_name":"xim:libXxf86vm","description":"X11 XFree86 video mode extension library","entry_key":"xim:libXxf86vm","identity":{"name":"libXxf86vm","namespace":"xim"},"name":"libXxf86vm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libXxf86vm.lua","ref":"","type":0,"version":""},"xim:libcuda-host-link":{"canonical_name":"xim:libcuda-host-link","description":"Sentinel: stable symlink to host's libcuda.so.1 (NVIDIA driver userspace lib)","entry_key":"xim:libcuda-host-link","identity":{"name":"libcuda-host-link","namespace":"xim"},"name":"libcuda-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libcuda-host-link.lua","ref":"","type":0,"version":""},"xim:libdrm":{"canonical_name":"xim:libdrm","description":"Userspace interface to the kernel DRM services","entry_key":"xim:libdrm","identity":{"name":"libdrm","namespace":"xim"},"name":"libdrm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libdrm.lua","ref":"","type":0,"version":""},"xim:libffi":{"canonical_name":"xim:libffi","description":"Portable foreign-function interface library","entry_key":"xim:libffi","identity":{"name":"libffi","namespace":"xim"},"name":"libffi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libffi.lua","ref":"","type":0,"version":""},"xim:libglvnd":{"canonical_name":"xim:libglvnd","description":"The GL Vendor-Neutral Dispatch library","entry_key":"xim:libglvnd","identity":{"name":"libglvnd","namespace":"xim"},"name":"libglvnd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libglvnd.lua","ref":"","type":0,"version":""},"xim:libllvm":{"canonical_name":"xim:libllvm","description":"LLVM as a shared library — the code generator mesa's llvmpipe and radeonsi use","entry_key":"xim:libllvm","identity":{"name":"libllvm","namespace":"xim"},"name":"libllvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libllvm.lua","ref":"","type":0,"version":""},"xim:libpciaccess":{"canonical_name":"xim:libpciaccess","description":"Generic PCI device access library","entry_key":"xim:libpciaccess","identity":{"name":"libpciaccess","namespace":"xim"},"name":"libpciaccess","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpciaccess.lua","ref":"","type":0,"version":""},"xim:libpng":{"canonical_name":"xim:libpng","description":"Official PNG reference library","entry_key":"xim:libpng","identity":{"name":"libpng","namespace":"xim"},"name":"libpng","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libpng.lua","ref":"","type":0,"version":""},"xim:libxcb":{"canonical_name":"xim:libxcb","description":"X protocol C-language Binding","entry_key":"xim:libxcb","identity":{"name":"libxcb","namespace":"xim"},"name":"libxcb","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxcb.lua","ref":"","type":0,"version":""},"xim:libxkbcommon":{"canonical_name":"xim:libxkbcommon","description":"Keymap handling library for Wayland and X11 clients","entry_key":"xim:libxkbcommon","identity":{"name":"libxkbcommon","namespace":"xim"},"name":"libxkbcommon","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxkbcommon.lua","ref":"","type":0,"version":""},"xim:libxml2":{"canonical_name":"xim:libxml2","description":"XML C parser and toolkit","entry_key":"xim:libxml2","identity":{"name":"libxml2","namespace":"xim"},"name":"libxml2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxml2.lua","ref":"","type":0,"version":""},"xim:libxshmfence":{"canonical_name":"xim:libxshmfence","description":"Shared-memory fences for DRI3","entry_key":"xim:libxshmfence","identity":{"name":"libxshmfence","namespace":"xim"},"name":"libxshmfence","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/libxshmfence.lua","ref":"","type":0,"version":""},"xim:linux-headers":{"canonical_name":"xim:linux-headers","description":"Linux Kernel Headers (prebuilt)","entry_key":"xim:linux-headers","identity":{"name":"linux-headers","namespace":"xim"},"name":"linux-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-headers.lua","ref":"","type":0,"version":""},"xim:linux-sysroot-create":{"canonical_name":"xim:linux-sysroot-create","description":"XScript: Linux Sysroot Create Tool","entry_key":"xim:linux-sysroot-create","identity":{"name":"linux-sysroot-create","namespace":"xim"},"name":"linux-sysroot-create","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/linux-sysroot-create.lua","ref":"","type":1,"version":""},"xim:llvm":{"canonical_name":"xim:llvm","description":"LLVM compiler infrastructure and toolchain","entry_key":"xim:llvm","identity":{"name":"llvm","namespace":"xim"},"name":"llvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm.lua","ref":"","type":0,"version":""},"xim:llvm-tools":{"canonical_name":"xim:llvm-tools","description":"LLVM development tools (clang-format, clang-tidy, clangd)","entry_key":"xim:llvm-tools","identity":{"name":"llvm-tools","namespace":"xim"},"name":"llvm-tools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/l/llvm-tools.lua","ref":"","type":0,"version":""},"xim:make":{"canonical_name":"xim:make","description":"GNU Make — tool which controls the generation of executables from source files","entry_key":"xim:make","identity":{"name":"make","namespace":"xim"},"name":"make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/make.lua","ref":"","type":0,"version":""},"xim:mcpp":{"canonical_name":"xim:mcpp","description":"A modern C++ build tool with module support, dependency/toolchain management, package indexing, and packaging","entry_key":"xim:mcpp","identity":{"name":"mcpp","namespace":"xim"},"name":"mcpp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp.lua","ref":"","type":0,"version":""},"xim:mcpp-short-cmd":{"canonical_name":"xim:mcpp-short-cmd","description":"Short command aliases for mcpp (mp/mbuild/mrun/mtest/...)","entry_key":"xim:mcpp-short-cmd","identity":{"name":"mcpp-short-cmd","namespace":"xim"},"name":"mcpp-short-cmd","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mcpp-short-cmd.lua","ref":"","type":0,"version":""},"xim:mdbook":{"canonical_name":"xim:mdbook","description":"Create book from markdown files. Like Gitbook but implemented in Rust","entry_key":"xim:mdbook","identity":{"name":"mdbook","namespace":"xim"},"name":"mdbook","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mdbook.lua","ref":"","type":0,"version":""},"xim:media-crawler":{"canonical_name":"xim:media-crawler","description":"Multi-platform social media crawler (XHS, Douyin, Kuaishou, Bilibili, Weibo, Tieba, Zhihu) using Playwright","entry_key":"xim:media-crawler","identity":{"name":"media-crawler","namespace":"xim"},"name":"media-crawler","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/media-crawler.lua","ref":"","type":0,"version":""},"xim:mesa":{"canonical_name":"xim:mesa","description":"Mesa 3D — OpenGL and Vulkan: llvmpipe, radeonsi, nouveau, zink, RADV","entry_key":"xim:mesa","identity":{"name":"mesa","namespace":"xim"},"name":"mesa","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mesa.lua","ref":"","type":0,"version":""},"xim:mingw-cross-gcc":{"canonical_name":"xim:mingw-cross-gcc","description":"MinGW-w64 GCC cross toolchain (Linux host → Windows x86_64 PE, MSVCRT runtime)","entry_key":"xim:mingw-cross-gcc","identity":{"name":"mingw-cross-gcc","namespace":"xim"},"name":"mingw-cross-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-cross-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-gcc":{"canonical_name":"xim:mingw-gcc","description":"MinGW-w64 GCC for Windows (winlibs standalone build, UCRT runtime)","entry_key":"xim:mingw-gcc","identity":{"name":"mingw-gcc","namespace":"xim"},"name":"mingw-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-gcc.lua","ref":"","type":0,"version":""},"xim:mingw-w64":{"canonical_name":"xim:mingw-w64","description":"A complete runtime environment for GCC & LLVM for Windows","entry_key":"xim:mingw-w64","identity":{"name":"mingw-w64","namespace":"xim"},"name":"mingw-w64","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/mingw-w64.lua","ref":"","type":0,"version":""},"xim:msvc":{"canonical_name":"xim:msvc","description":"Microsoft Visual Studio C++ Compiler","entry_key":"xim:msvc","identity":{"name":"msvc","namespace":"xim"},"name":"msvc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/msvc.lua","ref":"","type":3,"version":""},"xim:musl":{"canonical_name":"xim:musl","description":"musl - a lightweight, fast, simple, free, standards-conformant C library","entry_key":"xim:musl","identity":{"name":"musl","namespace":"xim"},"name":"musl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl.lua","ref":"","type":0,"version":""},"xim:musl-cross-make":{"canonical_name":"xim:musl-cross-make","description":"Simple makefile-based build for musl cross compiler","entry_key":"xim:musl-cross-make","identity":{"name":"musl-cross-make","namespace":"xim"},"name":"musl-cross-make","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-cross-make.lua","ref":"","type":1,"version":""},"xim:musl-gcc":{"canonical_name":"xim:musl-gcc","description":"GCC, the GNU Compiler Collection (prebuilt with musl)","entry_key":"xim:musl-gcc","identity":{"name":"musl-gcc","namespace":"xim"},"name":"musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/m/musl-gcc.lua","ref":"","type":0,"version":""},"xim:nasm":{"canonical_name":"xim:nasm","description":"NASM - the Netwide Assembler, an assembler targeting the x86/x86-64 CPU family","entry_key":"xim:nasm","identity":{"name":"nasm","namespace":"xim"},"name":"nasm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nasm.lua","ref":"","type":0,"version":""},"xim:ninja":{"canonical_name":"xim:ninja","description":"a small build system with a focus on speed","entry_key":"xim:ninja","identity":{"name":"ninja","namespace":"xim"},"name":"ninja","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/ninja.lua","ref":"","type":0,"version":""},"xim:node":{"canonical_name":"xim:node","description":"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine","entry_key":"xim:node","identity":{"name":"node","namespace":"xim"},"name":"node","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/node.lua","ref":"","type":0,"version":""},"xim:npm":{"canonical_name":"xim:npm","description":"The package manager for JavaScript","entry_key":"xim:npm","identity":{"name":"npm","namespace":"xim"},"name":"npm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/npm.lua","ref":"","type":0,"version":""},"xim:nvidia-gl-host-link":{"canonical_name":"xim:nvidia-gl-host-link","description":"Sentinel: stable symlinks to the host's NVIDIA proprietary GL/EGL userspace","entry_key":"xim:nvidia-gl-host-link","identity":{"name":"nvidia-gl-host-link","namespace":"xim"},"name":"nvidia-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvidia-gl-host-link.lua","ref":"","type":0,"version":""},"xim:nvim":{"canonical_name":"xim:nvim","description":"Vim-fork focused on extensibility and usability","entry_key":"xim:nvim","identity":{"name":"nvim","namespace":"xim"},"name":"nvim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvim.lua","ref":"","type":0,"version":""},"xim:nvm":{"canonical_name":"xim:nvm","description":"Node Version Manager - POSIX-compliant node.js version manager","entry_key":"xim:nvm","identity":{"name":"nvm","namespace":"xim"},"name":"nvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/n/nvm.lua","ref":"","type":0,"version":""},"xim:ollama":{"canonical_name":"xim:ollama","description":"Get up and running with large language models locally","entry_key":"xim:ollama","identity":{"name":"ollama","namespace":"xim"},"name":"ollama","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/ollama.lua","ref":"","type":0,"version":""},"xim:openclaw":{"canonical_name":"xim:openclaw","description":"OpenClaw CLI","entry_key":"xim:openclaw","identity":{"name":"openclaw","namespace":"xim"},"name":"openclaw","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openclaw.lua","ref":"","type":0,"version":""},"xim:openssl":{"canonical_name":"xim:openssl","description":"TLS/SSL and cryptography toolkit","entry_key":"xim:openssl","identity":{"name":"openssl","namespace":"xim"},"name":"openssl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/o/openssl.lua","ref":"","type":0,"version":""},"xim:pango":{"canonical_name":"xim:pango","description":"Library for layout and rendering of internationalized text","entry_key":"xim:pango","identity":{"name":"pango","namespace":"xim"},"name":"pango","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pango.lua","ref":"","type":0,"version":""},"xim:patchelf":{"canonical_name":"xim:patchelf","description":"ELF patch tool for interpreter and RPATH","entry_key":"xim:patchelf","identity":{"name":"patchelf","namespace":"xim"},"name":"patchelf","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/patchelf.lua","ref":"","type":0,"version":""},"xim:pcre2":{"canonical_name":"xim:pcre2","description":"Perl Compatible Regular Expressions (v2)","entry_key":"xim:pcre2","identity":{"name":"pcre2","namespace":"xim"},"name":"pcre2","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pcre2.lua","ref":"","type":0,"version":""},"xim:perl":{"canonical_name":"xim:perl","description":"Perl — a complete, relocatable Perl 5 interpreter with the full core module set","entry_key":"xim:perl","identity":{"name":"perl","namespace":"xim"},"name":"perl","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/perl.lua","ref":"","type":0,"version":""},"xim:pixman":{"canonical_name":"xim:pixman","description":"Low-level pixel manipulation library (cairo backend)","entry_key":"xim:pixman","identity":{"name":"pixman","namespace":"xim"},"name":"pixman","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pixman.lua","ref":"","type":0,"version":""},"xim:pnpm":{"canonical_name":"xim:pnpm","description":"Fast, disk space efficient package manager","entry_key":"xim:pnpm","identity":{"name":"pnpm","namespace":"xim"},"name":"pnpm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/pnpm.lua","ref":"","type":0,"version":""},"xim:project-graph":{"canonical_name":"xim:project-graph","description":"快速绘制节点图的桌面工具 - 项目进程拓扑图绘制、头脑风暴草稿","entry_key":"xim:project-graph","identity":{"name":"project-graph","namespace":"xim"},"name":"project-graph","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/project-graph.lua","ref":"","type":0,"version":""},"xim:proot":{"canonical_name":"xim:proot","description":"Userspace chroot, mount --bind, and binfmt_misc — no root required","entry_key":"xim:proot","identity":{"name":"proot","namespace":"xim"},"name":"proot","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/proot.lua","ref":"","type":0,"version":""},"xim:python":{"canonical_name":"xim:python","description":"The Python programming language","entry_key":"xim:python","identity":{"name":"python","namespace":"xim"},"name":"python","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/p/python.lua","ref":"","type":0,"version":""},"xim:ripgrep":{"canonical_name":"xim:ripgrep","description":"Fast, recursive grep that respects .gitignore","entry_key":"xim:ripgrep","identity":{"name":"ripgrep","namespace":"xim"},"name":"ripgrep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ripgrep.lua","ref":"","type":0,"version":""},"xim:ros2-jazzy-ubnutu":{"canonical_name":"xim:ros2-jazzy-ubnutu","description":"Config: one-click ROS 2 Jazzy Jalisco setup for Ubuntu 24.04","entry_key":"xim:ros2-jazzy-ubnutu","identity":{"name":"ros2-jazzy-ubnutu","namespace":"xim"},"name":"ros2-jazzy-ubnutu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/ros2-jazzy-ubuntu.lua","ref":"","type":3,"version":""},"xim:rosdep":{"canonical_name":"xim:rosdep","description":"ROS dependency management tool","entry_key":"xim:rosdep","identity":{"name":"rosdep","namespace":"xim"},"name":"rosdep","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rosdep.lua","ref":"","type":0,"version":""},"xim:rust":{"canonical_name":"xim:rust","description":"A language empowering everyone to build reliable and efficient software","entry_key":"xim:rust","identity":{"name":"rust","namespace":"xim"},"name":"rust","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rust.lua","ref":"","type":0,"version":""},"xim:rustup":{"canonical_name":"xim:rustup","description":"An installer init tool for Rustup, the Rust toolchain installer","entry_key":"xim:rustup","identity":{"name":"rustup","namespace":"xim"},"name":"rustup","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/r/rustup.lua","ref":"","type":0,"version":""},"xim:seeme-report":{"canonical_name":"xim:seeme-report","description":"让别人知道你在干什么 seeme report端","entry_key":"xim:seeme-report","identity":{"name":"seeme-report","namespace":"xim"},"name":"seeme-report","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-report.lua","ref":"","type":0,"version":""},"xim:seeme-server":{"canonical_name":"xim:seeme-server","description":"让别人知道你在干什么 seeme 服务端","entry_key":"xim:seeme-server","identity":{"name":"seeme-server","namespace":"xim"},"name":"seeme-server","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/seeme-server.lua","ref":"","type":0,"version":""},"xim:shortcut-tool":{"canonical_name":"xim:shortcut-tool","description":"Shortcut Tool: Create and manage shortcuts easily","entry_key":"xim:shortcut-tool","identity":{"name":"shortcut-tool","namespace":"xim"},"name":"shortcut-tool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/shortcut-tool.lua","ref":"","type":1,"version":""},"xim:sing-box":{"canonical_name":"xim:sing-box","description":"The universal proxy platform","entry_key":"xim:sing-box","identity":{"name":"sing-box","namespace":"xim"},"name":"sing-box","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box.lua","ref":"","type":0,"version":""},"xim:sing-box-helper":{"canonical_name":"xim:sing-box-helper","description":"Sing-Box Helper Tools - Simple commands for server and client configuration","entry_key":"xim:sing-box-helper","identity":{"name":"sing-box-helper","namespace":"xim"},"name":"sing-box-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sing-box-helper.lua","ref":"","type":1,"version":""},"xim:sourcetrail":{"canonical_name":"xim:sourcetrail","description":"Sourcetrail - free and open-source interactive source explorer","entry_key":"xim:sourcetrail","identity":{"name":"sourcetrail","namespace":"xim"},"name":"sourcetrail","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/sourcetrail.lua","ref":"","type":0,"version":""},"xim:syslinux":{"canonical_name":"xim:syslinux","description":"SYSLINUX bootloader collection (isolinux, pxelinux, extlinux + EFI loaders)","entry_key":"xim:syslinux","identity":{"name":"syslinux","namespace":"xim"},"name":"syslinux","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/s/syslinux.lua","ref":"","type":0,"version":""},"xim:trendradar":{"canonical_name":"xim:trendradar","description":"AI-driven public opinion and trend monitor with multi-platform aggregation, RSS, and smart alerts","entry_key":"xim:trendradar","identity":{"name":"trendradar","namespace":"xim"},"name":"trendradar","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/t/trendradar.lua","ref":"","type":0,"version":""},"xim:uv":{"canonical_name":"xim:uv","description":"An extremely fast Python package and project manager (Astral)","entry_key":"xim:uv","identity":{"name":"uv","namespace":"xim"},"name":"uv","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/u/uv.lua","ref":"","type":0,"version":""},"xim:vc6":{"canonical_name":"xim:vc6","description":"Visual C++ 6.0: Classic C/C++ IDE (portable for Windows 10/11)","entry_key":"xim:vc6","identity":{"name":"vc6","namespace":"xim"},"name":"vc6","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vc6.lua","ref":"","type":0,"version":""},"xim:vcstool":{"canonical_name":"xim:vcstool","description":"Version control system tool for multiple repos (ROS vcstool)","entry_key":"xim:vcstool","identity":{"name":"vcstool","namespace":"xim"},"name":"vcstool","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vcstool.lua","ref":"","type":0,"version":""},"xim:vim":{"canonical_name":"xim:vim","description":"The classic Vi IMproved text editor (statically linked, hermetic)","entry_key":"xim:vim","identity":{"name":"vim","namespace":"xim"},"name":"vim","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vim.lua","ref":"","type":0,"version":""},"xim:virtualbox":{"canonical_name":"xim:virtualbox","description":"Oracle VM VirtualBox userspace + VBoxManage CLI (portable, alias: vbox)","entry_key":"xim:virtualbox","identity":{"name":"virtualbox","namespace":"xim"},"name":"virtualbox","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/virtualbox.lua","ref":"","type":0,"version":""},"xim:vs-buildtools":{"canonical_name":"xim:vs-buildtools","description":"Visual Studio Build Tools","entry_key":"xim:vs-buildtools","identity":{"name":"vs-buildtools","namespace":"xim"},"name":"vs-buildtools","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vs-buildtools.lua","ref":"","type":3,"version":""},"xim:vulkan-headers":{"canonical_name":"xim:vulkan-headers","description":"Vulkan API headers and registry","entry_key":"xim:vulkan-headers","identity":{"name":"vulkan-headers","namespace":"xim"},"name":"vulkan-headers","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vulkan-headers.lua","ref":"","type":0,"version":""},"xim:vulkan-loader":{"canonical_name":"xim:vulkan-loader","description":"Vulkan ICD loader - libvulkan.so.1, without which an ICD manifest is never read","entry_key":"xim:vulkan-loader","identity":{"name":"vulkan-loader","namespace":"xim"},"name":"vulkan-loader","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/v/vulkan-loader.lua","ref":"","type":0,"version":""},"xim:wayland":{"canonical_name":"xim:wayland","description":"Wayland protocol library and scanner","entry_key":"xim:wayland","identity":{"name":"wayland","namespace":"xim"},"name":"wayland","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland.lua","ref":"","type":0,"version":""},"xim:wayland-protocols":{"canonical_name":"xim:wayland-protocols","description":"Wayland protocol extension definitions (build-time)","entry_key":"xim:wayland-protocols","identity":{"name":"wayland-protocols","namespace":"xim"},"name":"wayland-protocols","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wayland-protocols.lua","ref":"","type":0,"version":""},"xim:windows-acp":{"canonical_name":"xim:windows-acp","description":"ACP: Beta: Use Unicode UTF-8 for worldwide language support","entry_key":"xim:windows-acp","identity":{"name":"windows-acp","namespace":"xim"},"name":"windows-acp","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/windows-acp.lua","ref":"","type":0,"version":""},"xim:wsl-gl-host-link":{"canonical_name":"xim:wsl-gl-host-link","description":"Sentinel: links WSL2's host D3D12/DXCore userspace so mesa's d3d12 driver can reach the Windows GPU","entry_key":"xim:wsl-gl-host-link","identity":{"name":"wsl-gl-host-link","namespace":"xim"},"name":"wsl-gl-host-link","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-gl-host-link.lua","ref":"","type":0,"version":""},"xim:wsl-ubuntu":{"canonical_name":"xim:wsl-ubuntu","description":"Windows Subsystem for Linux (WSL) Ubuntu","entry_key":"xim:wsl-ubuntu","identity":{"name":"wsl-ubuntu","namespace":"xim"},"name":"wsl-ubuntu","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/w/wsl-ubuntu.lua","ref":"","type":3,"version":""},"xim:x86_64-linux-musl-gcc":{"canonical_name":"xim:x86_64-linux-musl-gcc","description":"GCC cross toolchain targeting x86_64-linux-musl (musl, fully static ELF)","entry_key":"xim:x86_64-linux-musl-gcc","identity":{"name":"x86_64-linux-musl-gcc","namespace":"xim"},"name":"x86_64-linux-musl-gcc","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/x86_64-linux-musl-gcc.lua","ref":"","type":0,"version":""},"xim:xcb-proto":{"canonical_name":"xim:xcb-proto","description":"XML-XCB protocol descriptions (build-time)","entry_key":"xim:xcb-proto","identity":{"name":"xcb-proto","namespace":"xim"},"name":"xcb-proto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xcb-proto.lua","ref":"","type":0,"version":""},"xim:xlings":{"canonical_name":"xim:xlings","description":"Xlings | Highly abstract [ package manager ] - \"Multi-version management + Everything can be a package\"","entry_key":"xim:xlings","identity":{"name":"xlings","namespace":"xim"},"name":"xlings","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings.lua","ref":"","type":0,"version":""},"xim:xlings-project-templates":{"canonical_name":"xim:xlings-project-templates","description":"Xlings - Project Templates","entry_key":"xim:xlings-project-templates","identity":{"name":"xlings-project-templates","namespace":"xim"},"name":"xlings-project-templates","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xlings-project-templates.lua","ref":"","type":2,"version":""},"xim:xmake":{"canonical_name":"xim:xmake","description":"A cross-platform build utility based on Lua","entry_key":"xim:xmake","identity":{"name":"xmake","namespace":"xim"},"name":"xmake","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xmake.lua","ref":"","type":0,"version":""},"xim:xorgproto":{"canonical_name":"xim:xorgproto","description":"X Window System protocol headers (build-time)","entry_key":"xim:xorgproto","identity":{"name":"xorgproto","namespace":"xim"},"name":"xorgproto","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xorgproto.lua","ref":"","type":0,"version":""},"xim:xpkg-helper":{"canonical_name":"xim:xpkg-helper","description":"XPKG: XPackage Helper Tools","entry_key":"xim:xpkg-helper","identity":{"name":"xpkg-helper","namespace":"xim"},"name":"xpkg-helper","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xpkg-helper.lua","ref":"","type":1,"version":""},"xim:xtrans":{"canonical_name":"xim:xtrans","description":"X transport layer macros and headers (build-time)","entry_key":"xim:xtrans","identity":{"name":"xtrans","namespace":"xim"},"name":"xtrans","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xtrans.lua","ref":"","type":0,"version":""},"xim:xvm":{"canonical_name":"xim:xvm","description":"a simple and generic version management tool","entry_key":"xim:xvm","identity":{"name":"xvm","namespace":"xim"},"name":"xvm","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm.lua","ref":"","type":0,"version":""},"xim:xvm-sysdetect":{"canonical_name":"xim:xvm-sysdetect","description":"XVM - System Package Detect Tools","entry_key":"xim:xvm-sysdetect","identity":{"name":"xvm-sysdetect","namespace":"xim"},"name":"xvm-sysdetect","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/x/xvm-sysdetect.lua","ref":"","type":3,"version":""},"xim:yazi":{"canonical_name":"xim:yazi","description":"Blazing fast terminal file manager written in Rust, based on async I/O","entry_key":"xim:yazi","identity":{"name":"yazi","namespace":"xim"},"name":"yazi","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/y/yazi.lua","ref":"","type":0,"version":""},"xim:zlib":{"canonical_name":"xim:zlib","description":"A massively spiffy yet delicately unobtrusive compression library","entry_key":"xim:zlib","identity":{"name":"zlib","namespace":"xim"},"name":"zlib","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zlib.lua","ref":"","type":0,"version":""},"xim:zoxide":{"canonical_name":"xim:zoxide","description":"A smarter cd command — jump to your most-used directories","entry_key":"xim:zoxide","identity":{"name":"zoxide","namespace":"xim"},"name":"zoxide","path":"/tmp/claude-1000/-home-speak-workspace-github-openxlings-xlings/3a455452-e900-4955-b694-8a18cb82a282/scratchpad/gfxbuild-home/data/xim-pkgindex/pkgs/z/zoxide.lua","ref":"","type":0,"version":""}},"mutex_groups":{},"repo_head_hash":"1bac17cea35bf6d864310d106644a3c23a20955a","version":2} \ No newline at end of file diff --git a/libs/graphics.lua b/libs/graphics.lua index 1157c9cc..0b87cdb5 100644 --- a/libs/graphics.lua +++ b/libs/graphics.lua @@ -74,6 +74,9 @@ local graphics = {} graphics.DRI_DIR = "usr/lib/dri" graphics.EGL_VENDOR_DIR = "share/glvnd/egl_vendor.d" graphics.SHARE_DIR = "share" +-- Where the Vulkan loader looks, relative to the subos: it searches +-- $XDG_DATA_DIRS/vulkan/icd.d and mesa puts ${subosdir}/share on that list. +graphics.VULKAN_ICD_DIR = "share/vulkan/icd.d" -- The variables, once. Keys are variable names; values are subos-relative -- paths, with no placeholder syntax -- the two emitters below add their own. @@ -186,6 +189,41 @@ function graphics.declare_egl_vendor(install_dir, rel_json, tag) return true end +-- Place a Vulkan ICD manifest into the subos, where the loader looks. +-- +-- The loader searches `$XDG_DATA_DIRS/vulkan/icd.d`, and mesa's declaration +-- already puts `${subosdir}/share` on that variable -- so the manifest has to be +-- under the SUBOS's share, not only in the payload. Without this the loader +-- installs, starts, finds the HOST's ICDs and reports success: `vulkaninfo` +-- works, zink works, and none of it is ours. That is the same boundary the GL +-- side needed interposers for, one API over, and it looks like a pass from every +-- angle except asking whose ICD answered. +-- +-- Same shared-directory shape as the glvnd vendor JSON, and for the same reason: +-- one directory, filenames decide, several packages may contribute. +function graphics.declare_vulkan_icd(install_dir, rel_dir, tag) + if not xvm.files then return false end + local dir = path.join(install_dir, rel_dir) + if not os.isdir(dir) then return true end -- a build with no Vulkan driver + local f = io.popen(string.format([[ls -1 "%s"/*.json 2>/dev/null]], dir)) + if not f then return false end + local n = 0 + for line in f:lines() do + local p = line:gsub("[\r\n]+$", "") + if p ~= "" then + local base = p:match("([^/]+)$") + xvm.files{ + src = path.join(rel_dir, base), + dst = path.join(graphics.VULKAN_ICD_DIR, base), + binding = tag, + } + n = n + 1 + end + end + f:close() + return n > 0 +end + -- Place the DRI driver modules where LIBGL_DRIVERS_PATH points. -- -- The whole directory as ONE asset, which is safe here and would not be for diff --git a/pkgs/m/mesa.lua b/pkgs/m/mesa.lua index 551bde03..af3d3a54 100644 --- a/pkgs/m/mesa.lua +++ b/pkgs/m/mesa.lua @@ -218,6 +218,12 @@ function config() graphics.declare_dri(dir, "lib/dri", tag) graphics.declare_egl_vendor(dir, "share/glvnd/egl_vendor.d/50_mesa.json", tag) + -- The Vulkan ICD manifests, into the subos for the same reason the vendor + -- JSON goes there: the loader reads $XDG_DATA_DIRS/vulkan/icd.d, and a + -- manifest that stays in the payload is never found -- the loader silently + -- serves the HOST's ICDs instead. + graphics.declare_vulkan_icd(dir, "share/vulkan/icd.d", tag) + -- And the shell scope as well, from the same table, so entering the subos -- and running a program through its shim cannot disagree. graphics.declare_subos_env(tag) From fcf8486a8e960b7caf3192daaec0e841e635604f Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Fri, 7 Aug 2026 15:58:12 +0800 Subject: [PATCH 05/11] =?UTF-8?q?test(graphics):=20vendorprobe=20=E2=80=94?= =?UTF-8?q?=20and=20it=20found=20that=20the=20stack=20is=20not=20self-cont?= =?UTF-8?q?ained?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tool the last round said to write, written. It dlopens a glvnd vendor directly and reports whether the object loaded and whether __egl_Main is there, which is the one question every other elimination had left. First run answered it, and not at the step I predicted: DLOPEN=fail ERR=libXau.so.6: cannot open shared object file The vendor never loads at all; __egl_Main is never reached. With LD_LIBRARY_PATH=/lib it loads and the entry point is present -- so the missing thing is a library, not an entry point. The chain, each link measured: libxcb.so.1 NEEDs libXau.so.6 libxcb's RUNPATH is only $ORIGIN -- its own payload directory libXau.so.6 lives in a DIFFERENT payload DT_RUNPATH is not transitive, so nothing above libxcb can help it => libXau is resolved from the HOST /lib does contain libXau.so.6. Nothing on libxcb's search path points there. The file is present and the path is not. So the stack has never been self-contained, and the gap is a SECOND-LEVEL dependency. Outside a container nobody notices, because every Linux machine has libXau in its ld.so.cache. The empty-host container has no cache, the vendor fails to load, and that surfaces as zero vendors and EGL_BAD_PARAMETER -- which is what S1 has been reporting. This is exactly what the S3 assertion was written to catch, one layer lower than expected: not a GL renderer coming from the host, but an X11 second-level dependency. I was wrong to write that S1's failure was uninformative. The control run failing too does not mean the test is broken; it means both runs failed for the same real defect. The INCONCLUSIVE gate is still worth keeping -- it turns a message that would blame the closure into an honest "could not tell" -- but this time the closure really is incomplete. Not fixed here: elfpatch writes a full closure RPATH onto executables and leaves payload libraries with $ORIGIN. Either each payload library's RPATH should cover its own closure, or /lib should be appended to it -- which is precisely what §B1 just did for the interposer, and this shows the same reasoning applies to the whole stack. That is a blast-radius decision, not a drive-by edit. --- .agents/tools/graphics/vendorprobe.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .agents/tools/graphics/vendorprobe.c diff --git a/.agents/tools/graphics/vendorprobe.c b/.agents/tools/graphics/vendorprobe.c new file mode 100644 index 00000000..86b46803 --- /dev/null +++ b/.agents/tools/graphics/vendorprobe.c @@ -0,0 +1,20 @@ +/* Does glvnd's vendor actually load, and does its entry point exist? + * + * S1 fails with zero vendors and mesa printing nothing, which narrows the + * failure to glvnd's load-then-__egl_Main step. Everything upstream of it was + * eliminated by measurement (namespaces, /usr, /dev, /sys, the dependency + * closure, JSON readability). This asks the one remaining question directly. */ +#include +#include +int main(int argc, char **argv) { + if (argc < 2) { fprintf(stderr, "usage: vendorprobe \n"); return 2; } + void *h = dlopen(argv[1], RTLD_LAZY | RTLD_LOCAL); + if (!h) { printf("DLOPEN=fail\nERR=%s\n", dlerror()); return 1; } + printf("DLOPEN=ok\n"); + dlerror(); + void *m = dlsym(h, "__egl_Main"); + const char *e = dlerror(); + printf("EGL_MAIN=%s\n", m ? "present" : "MISSING"); + if (e) printf("DLSYM_ERR=%s\n", e); + return 0; +} From e7242a267735edef3eec443165440e5c5faf4bbb Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Fri, 7 Aug 2026 16:24:56 +0800 Subject: [PATCH 06/11] fix(graphics): the payloads resolved from the host, and every test said pass MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `exports.runtime.libdirs` is what a package OFFERS its dependents. Something has to CONSUME it, and that something is `elfpatch` — which no recipe in this index, or in mcpp-index, ever called. `elfpatch.closure_lib_paths()` is a public, documented libxpkg API that had zero callers in the entire ecosystem. So `libxcb.so.1` shipped as DT_NEEDED libXau.so.6, libXdmcp.so.6, libc.so.6 DT_RUNPATH $ORIGIN with libXau in a different payload. It resolved anyway — from the host's /etc/ld.so.cache, on every machine that has libxau, which is every desktop Linux. The stack looked self-contained and never was. The subos link directory does not cover this, and the reason is one sentence of ld.so's search order: if an object has DT_RUNPATH, no ancestor's DT_RPATH is consulted for its dependencies. A consumer with `/lib` in a transitive DT_RPATH cannot serve libxcb's search for libXau, because libxcb has a RUNPATH of its own. Measured on a sealed bwrap with no /usr at all: as shipped EGL_CLIENT_EXTENSIONS= , surfaceless refused 0x300c exit 1 sealed GL_RENDERER=llvmpipe (LLVM 20.1.7) PIXEL=336699 exit 0 libs/selfcontain.lua wraps the closure patch; 28 recipes call it from install(). Under-declared direct deps are completed at the same time — a closure is only as complete as the deps list it is computed from, and `runtime_deps` is direct, not transitive. glibc is patched by nothing: it is the root, and rewriting the loader's own payload is how this was nearly broken while being investigated. The verify-stack cell that has reported INCONCLUSIVE since it was written now reads `✓ empty-host self-containment — S1-S4 pass`. Both arms of that A/B had been failing for the same real defect, which is why it never accused anything. pass 14 fail 0 not-exercised-here 5 --- libs/selfcontain.lua | 139 +++++++++++++++++++++++++++++++++++++++ pkgs/e/elfutils.lua | 5 ++ pkgs/e/expat.lua | 6 ++ pkgs/f/fontconfig.lua | 7 +- pkgs/g/gcc-runtime.lua | 5 ++ pkgs/l/libX11.lua | 7 +- pkgs/l/libXau.lua | 7 +- pkgs/l/libXcursor.lua | 7 +- pkgs/l/libXdmcp.lua | 7 +- pkgs/l/libXext.lua | 7 +- pkgs/l/libXfixes.lua | 5 ++ pkgs/l/libXi.lua | 7 +- pkgs/l/libXinerama.lua | 7 +- pkgs/l/libXrandr.lua | 7 +- pkgs/l/libXrender.lua | 7 +- pkgs/l/libXxf86vm.lua | 5 ++ pkgs/l/libdrm.lua | 7 +- pkgs/l/libffi.lua | 6 ++ pkgs/l/libglvnd.lua | 7 +- pkgs/l/libllvm.lua | 5 ++ pkgs/l/libpciaccess.lua | 7 +- pkgs/l/libxcb.lua | 7 +- pkgs/l/libxkbcommon.lua | 7 +- pkgs/l/libxml2.lua | 6 ++ pkgs/l/libxshmfence.lua | 5 ++ pkgs/m/mesa.lua | 5 ++ pkgs/v/vulkan-loader.lua | 5 ++ pkgs/w/wayland.lua | 5 ++ pkgs/z/zlib.lua | 6 ++ 29 files changed, 298 insertions(+), 15 deletions(-) create mode 100644 libs/selfcontain.lua diff --git a/libs/selfcontain.lua b/libs/selfcontain.lua new file mode 100644 index 00000000..03e7fdfa --- /dev/null +++ b/libs/selfcontain.lua @@ -0,0 +1,139 @@ +-- Make a payload resolve its own dependencies, instead of the host's. +-- +-- Loaded by package hooks via: +-- import("xim.pkgindex.selfcontain") +-- +-- THE DEFECT THIS EXISTS TO CLOSE +-- +-- Every library recipe in this index declares what it OFFERS: +-- +-- exports = { runtime = { libdirs = { "lib" } } } +-- +-- and several declare what they need: +-- +-- deps = { "xim:libXau@>=1.0", "xim:libXdmcp@>=1.1" } +-- +-- but until this module, not one of them CONSUMED the first from the second. +-- `exports` is read by a package's dependents; it does nothing for the package +-- that declares it. The step that turns "my dep exports lib/" into "my ELF can +-- find it" is `elfpatch`, and no recipe in this index -- or in mcpp-index -- +-- called it. `elfpatch.closure_lib_paths()` is a public, documented libxpkg API +-- with, before this, zero callers in the entire ecosystem. +-- +-- So `libxcb.so.1` shipped with +-- +-- DT_NEEDED libXau.so.6, libXdmcp.so.6, libc.so.6 +-- DT_RUNPATH $ORIGIN +-- +-- and `libXau.so.6` is in a different payload. It resolved anyway, from the +-- HOST's /etc/ld.so.cache, on every machine that happened to have libxau +-- installed -- which is every desktop Linux. The stack looked self-contained +-- and never was. +-- +-- WHY THE SUBOS LINK DIRECTORY DOES NOT ALREADY COVER THIS +-- +-- `sysroot.declare_libs` symlinks every payload library into `/lib`, and +-- a consumer built in the subos gets `/lib` in its DT_RPATH -- which IS +-- transitive, so one might expect it to serve libxcb's search for libXau. +-- +-- It does not, and the reason is the single most load-bearing sentence in +-- ld.so's search order: **if an object has DT_RUNPATH, its DT_RPATH-inherited +-- search path is not consulted at all.** libxcb has DT_RUNPATH ($ORIGIN). So +-- for libxcb's own dependencies the loader consults $ORIGIN and then goes +-- straight to the cache. No ancestor's RPATH is reachable from there, however +-- many of them name the right directory. +-- +-- Measured, on a sealed bwrap with no /usr at all: +-- +-- as shipped EGL_CLIENT_EXTENSIONS= , "surfaceless refused 0x300c" +-- -- mesa's vendor never loads +-- closure-patched GL_RENDERER=llvmpipe (LLVM 20.1.7), PIXEL=336699 +-- -- every LOADED= line inside our own payload +-- +-- WHY PER-PACKAGE CLOSURE AND NOT ONE BIG DIRECTORY +-- +-- The tempting shortcut is to put `/lib` -- which already has a symlink +-- to every payload library -- on every payload library's RPATH, and stop +-- there. Two reasons that is the wrong primary mechanism: +-- +-- * A payload is shared by every subos in the home. A payload that resolves +-- through one subos's link directory answers for a subos it has no +-- business knowing about, and the answer goes stale when that subos is +-- removed. +-- * `/lib` holds glibc. It is a directory where a second libc can be +-- reached, which is the hazard build-in-subos.sh already documents. +-- +-- What actually gets written, measured rather than assumed: +-- +-- libxcb.so.1 RUNPATH = /lib : /lib : /lib +-- : /lib64 : /lib +-- +-- The per-package closure comes first and decides; `closure_lib_paths` appends +-- the subos link directory itself, last, as a backstop. So the shortcut is +-- present but never load-bearing -- and the `$ORIGIN` this module asks for is +-- dropped by libxpkg in favour of the payload's own absolute libdir, which is +-- equivalent here because xlings never relocates a payload. +-- +-- Design: xlings/.agents/docs/2026-08-07-graphics-experience-industry-survey-and-plan.md §S1 + +import("xim.libxpkg.log") +import("xim.libxpkg.elfpatch") + +local selfcontain = {} + +-- Stamp this payload's own dependency closure onto its shared libraries. +-- +-- selfcontain.seal(pkginfo.install_dir()) +-- selfcontain.seal(pkginfo.install_dir(), { "lib", "lib64" }) +-- +-- `$ORIGIN` stays first: it is what the upstream build shipped, it keeps a +-- payload's intra-package references working if the tree is ever relocated, and +-- it costs one stat per lookup that almost always hits. +-- +-- Returns true when the payload was patched, false when this client is too old +-- -- never nil, so a caller can branch. A false is WARNED rather than silent: +-- the package still installs and still works on any host that has the +-- dependency, which is precisely the failure mode that hid this for so long. +function selfcontain.seal(install_dir, libdirs) + -- type(), not truthiness: import() answers an unknown module with a + -- permissive proxy whose every key is truthy, so `if elfpatch.x then` + -- takes the new branch on clients that then discard the call. + if type(elfpatch.closure_lib_paths) ~= "function" + or type(elfpatch.patch_elf_loader_rpath) ~= "function" then + log.warn("this xlings cannot compute a dependency closure; %s keeps its " + .. "as-shipped RPATH and will resolve its dependencies from " + .. "the HOST. Run `xlings self update`.", install_dir) + return false + end + + local closure = elfpatch.closure_lib_paths() + if not closure or #closure == 0 then + -- A package with no runtime deps and no self libdir: nothing to say. + return true + end + + local rpath = { "$ORIGIN" } + for _, d in ipairs(closure) do table.insert(rpath, d) end + + -- Both, always, unless the caller says otherwise: `lib` is the convention + -- for the X11 and mesa payloads, `lib64` for the toolchain ones + -- (gcc-runtime ships only lib64). A directory that does not exist + -- collects no targets, so naming both costs nothing and forgetting one + -- silently leaves that payload resolving from the host. + local r = elfpatch.patch_elf_loader_rpath(install_dir, { + libs = libdirs or { "lib", "lib64" }, + rpath = rpath, + -- No shrink. --shrink-rpath keeps only the entries that satisfy a + -- current DT_NEEDED, which would drop exactly the directories a + -- dlopen needs later -- mesa's driver modules are loaded by path and + -- name nothing at link time. + shrink = false, + }) + if r and r.failed and r.failed > 0 then + log.warn("%d/%d libraries in %s could not be patched; those will " + .. "resolve from the host", r.failed, r.scanned, install_dir) + end + return true +end + +return selfcontain diff --git a/pkgs/e/elfutils.lua b/pkgs/e/elfutils.lua index 4ca12e08..ff1390f0 100644 --- a/pkgs/e/elfutils.lua +++ b/pkgs/e/elfutils.lua @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("elfutils-0.191", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so they + -- resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/e/expat.lua b/pkgs/e/expat.lua index e14f7d9d..858cea27 100644 --- a/pkgs/e/expat.lua +++ b/pkgs/e/expat.lua @@ -14,6 +14,7 @@ package = { xvm_enable = true, xpm = { linux = { + deps = { "xim:glibc" }, -- libexpat.so.1 ships under lib/. Declaring the libdir here -- lets xlings' predicate-driven elfpatch append it to every -- consumer's RPATH so `deps.runtime = { "xim:expat@2.6.2" }` @@ -39,6 +40,7 @@ package = { import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") +import("xim.pkgindex.selfcontain") local libs = { "libexpat.so", "libexpat.so.1" } @@ -46,6 +48,10 @@ function install() local srcdir = pkginfo.name() .. "-" .. pkginfo.version() .. "-linux-x86_64" os.tryrm(pkginfo.install_dir()) os.mv(srcdir, pkginfo.install_dir()) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/f/fontconfig.lua b/pkgs/f/fontconfig.lua index 2668503d..32273bba 100644 --- a/pkgs/f/fontconfig.lua +++ b/pkgs/f/fontconfig.lua @@ -14,7 +14,7 @@ package = { xvm_enable = true, xpm = { linux = { - deps = { "freetype@2.13.2", "expat@2.6.2" }, + deps = { "freetype@2.13.2", "expat@2.6.2", "xim:glibc" }, ["latest"] = { ref = "2.15.0" }, ["2.15.0"] = { url = { @@ -30,6 +30,7 @@ package = { import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") +import("xim.pkgindex.selfcontain") local libs = { "libfontconfig.so", "libfontconfig.so.1" } @@ -37,6 +38,10 @@ function install() local srcdir = pkginfo.name() .. "-" .. pkginfo.version() .. "-linux-x86_64" os.tryrm(pkginfo.install_dir()) os.mv(srcdir, pkginfo.install_dir()) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/g/gcc-runtime.lua b/pkgs/g/gcc-runtime.lua index 47caf7bc..a57f1823 100644 --- a/pkgs/g/gcc-runtime.lua +++ b/pkgs/g/gcc-runtime.lua @@ -62,6 +62,7 @@ package = { import("xim.libxpkg.pkginfo") import("xim.libxpkg.xvm") +import("xim.pkgindex.selfcontain") function install() -- Tarball extracts to gcc-runtime--linux-x86_64/lib64/. Move @@ -72,6 +73,10 @@ function install() local srcdir = pkginfo.install_file():replace(".tar.gz", "") os.tryrm(pkginfo.install_dir()) os.mv(srcdir, pkginfo.install_dir()) + + -- Stamp this payload's own dependency closure onto its libraries, so they + -- resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libX11.lua b/pkgs/l/libX11.lua index a7ed240e..a0a51e64 100644 --- a/pkgs/l/libX11.lua +++ b/pkgs/l/libX11.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libxcb@>=1.17", "xim:xorgproto@>=2024" }, + deps = { "xim:libxcb@>=1.17", "xim:xorgproto@>=2024", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libX11-1.8.10", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXau.lua b/pkgs/l/libXau.lua index 890f7c6e..3fb2b617 100644 --- a/pkgs/l/libXau.lua +++ b/pkgs/l/libXau.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:xorgproto@>=2024" }, + deps = { "xim:xorgproto@>=2024", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXau-1.0.11", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXcursor.lua b/pkgs/l/libXcursor.lua index 94038b5d..668f76af 100644 --- a/pkgs/l/libXcursor.lua +++ b/pkgs/l/libXcursor.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libXrender@>=0.9", "xim:libXfixes@>=6.0" }, + deps = { "xim:libXrender@>=0.9", "xim:libXfixes@>=6.0", "xim:glibc", "xim:libX11" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXcursor-1.2.3", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXdmcp.lua b/pkgs/l/libXdmcp.lua index 80ce6ba2..5703bae5 100644 --- a/pkgs/l/libXdmcp.lua +++ b/pkgs/l/libXdmcp.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:xorgproto@>=2024" }, + deps = { "xim:xorgproto@>=2024", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXdmcp-1.1.5", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXext.lua b/pkgs/l/libXext.lua index 7c5c5718..051efa6f 100644 --- a/pkgs/l/libXext.lua +++ b/pkgs/l/libXext.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libX11@>=1.8" }, + deps = { "xim:libX11@>=1.8", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXext-1.3.6", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXfixes.lua b/pkgs/l/libXfixes.lua index 73389145..bbf1be19 100644 --- a/pkgs/l/libXfixes.lua +++ b/pkgs/l/libXfixes.lua @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXfixes-6.0.1", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so they + -- resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXi.lua b/pkgs/l/libXi.lua index 8064a954..9010daac 100644 --- a/pkgs/l/libXi.lua +++ b/pkgs/l/libXi.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libXext@>=1.3", "xim:libXfixes@>=6.0" }, + deps = { "xim:libXext@>=1.3", "xim:libXfixes@>=6.0", "xim:glibc", "xim:libX11" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXi-1.8.2", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXinerama.lua b/pkgs/l/libXinerama.lua index 1087bad3..00656d93 100644 --- a/pkgs/l/libXinerama.lua +++ b/pkgs/l/libXinerama.lua @@ -31,7 +31,7 @@ package = { -- gap that survives every test that only asks "did it run". xpm = { linux = { - deps = { "xim:libX11@>=1.8", "xim:libXext@>=1.3" }, + deps = { "xim:libX11@>=1.8", "xim:libXext@>=1.3", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. @@ -58,11 +58,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXinerama-1.1.5", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXrandr.lua b/pkgs/l/libXrandr.lua index 229b8b49..bbaab9b6 100644 --- a/pkgs/l/libXrandr.lua +++ b/pkgs/l/libXrandr.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libXext@>=1.3", "xim:libXrender@>=0.9" }, + deps = { "xim:libXext@>=1.3", "xim:libXrender@>=0.9", "xim:glibc", "xim:libX11" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXrandr-1.5.4", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXrender.lua b/pkgs/l/libXrender.lua index 29a15688..d7806c22 100644 --- a/pkgs/l/libXrender.lua +++ b/pkgs/l/libXrender.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libX11@>=1.8" }, + deps = { "xim:libX11@>=1.8", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXrender-0.9.11", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libXxf86vm.lua b/pkgs/l/libXxf86vm.lua index bdf37942..c927ecb5 100644 --- a/pkgs/l/libXxf86vm.lua +++ b/pkgs/l/libXxf86vm.lua @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libXxf86vm-1.1.6", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so they + -- resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libdrm.lua b/pkgs/l/libdrm.lua index daa23ffb..4177ef11 100644 --- a/pkgs/l/libdrm.lua +++ b/pkgs/l/libdrm.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libpciaccess@>=0.18" }, + deps = { "xim:libpciaccess@>=0.18", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libdrm-2.4.123", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libffi.lua b/pkgs/l/libffi.lua index c502e61c..1216214f 100644 --- a/pkgs/l/libffi.lua +++ b/pkgs/l/libffi.lua @@ -14,6 +14,7 @@ package = { xvm_enable = true, xpm = { linux = { + deps = { "xim:glibc" }, ["latest"] = { ref = "3.4.4" }, ["3.4.4"] = { url = { @@ -29,6 +30,7 @@ package = { import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") +import("xim.pkgindex.selfcontain") local libs = { "libffi.so", "libffi.so.7" } @@ -36,6 +38,10 @@ function install() local srcdir = pkginfo.name() .. "-" .. pkginfo.version() .. "-linux-x86_64" os.tryrm(pkginfo.install_dir()) os.mv(srcdir, pkginfo.install_dir()) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libglvnd.lua b/pkgs/l/libglvnd.lua index 9bb0c434..3a9a2849 100644 --- a/pkgs/l/libglvnd.lua +++ b/pkgs/l/libglvnd.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libX11@>=1.8", "xim:libXext@>=1.3" }, + deps = { "xim:libX11@>=1.8", "xim:libXext@>=1.3", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libglvnd-1.7.0", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libllvm.lua b/pkgs/l/libllvm.lua index ca73a15f..d240f1bd 100644 --- a/pkgs/l/libllvm.lua +++ b/pkgs/l/libllvm.lua @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libllvm-20.1.7", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so they + -- resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libpciaccess.lua b/pkgs/l/libpciaccess.lua index 584a1a95..ed4cc8a2 100644 --- a/pkgs/l/libpciaccess.lua +++ b/pkgs/l/libpciaccess.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:zlib@>=1.2" }, + deps = { "xim:zlib@>=1.2", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libpciaccess-0.18.1", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libxcb.lua b/pkgs/l/libxcb.lua index fb11071f..443a1a51 100644 --- a/pkgs/l/libxcb.lua +++ b/pkgs/l/libxcb.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = { "xim:libXau@>=1.0", "xim:libXdmcp@>=1.1" }, + deps = { "xim:libXau@>=1.0", "xim:libXdmcp@>=1.1", "xim:glibc" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libxcb-1.17.0", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libxkbcommon.lua b/pkgs/l/libxkbcommon.lua index 10167b00..88071fc8 100644 --- a/pkgs/l/libxkbcommon.lua +++ b/pkgs/l/libxkbcommon.lua @@ -17,7 +17,7 @@ package = { xpm = { linux = { - deps = {}, + deps = { "xim:glibc", "xim:libxcb" }, -- elfpatch reads this from each dependency and writes the consumer's -- RPATH, which is what makes the stack resolve without anyone -- setting LD_LIBRARY_PATH. Same mechanism `gcc-runtime` uses. @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libxkbcommon-1.7.0", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libxml2.lua b/pkgs/l/libxml2.lua index 43216d44..b98b8610 100644 --- a/pkgs/l/libxml2.lua +++ b/pkgs/l/libxml2.lua @@ -18,6 +18,7 @@ package = { xpm = { linux = { + deps = { "xim:glibc" }, ["latest"] = { ref = "2.13.5" }, ["2.13.5"] = { url = { @@ -33,6 +34,7 @@ package = { import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") +import("xim.pkgindex.selfcontain") local libs = { "libxml2.so", "libxml2.so.2", @@ -42,6 +44,10 @@ function install() local srcdir = "libxml2-" .. pkginfo.version() .. "-linux-x86_64" os.tryrm(pkginfo.install_dir()) os.mv(srcdir, pkginfo.install_dir()) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/l/libxshmfence.lua b/pkgs/l/libxshmfence.lua index 75a867f8..d51f1f65 100644 --- a/pkgs/l/libxshmfence.lua +++ b/pkgs/l/libxshmfence.lua @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("libxshmfence-1.3.2", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so they + -- resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/m/mesa.lua b/pkgs/m/mesa.lua index af3d3a54..994fe04e 100644 --- a/pkgs/m/mesa.lua +++ b/pkgs/m/mesa.lua @@ -106,6 +106,7 @@ import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.libxpkg.subos") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") import("xim.pkgindex.graphics") function install() @@ -163,6 +164,10 @@ function install() end))) end end + + -- Stamp this payload's own dependency closure onto its libraries, so they + -- resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/v/vulkan-loader.lua b/pkgs/v/vulkan-loader.lua index 74972650..e72e0e1d 100644 --- a/pkgs/v/vulkan-loader.lua +++ b/pkgs/v/vulkan-loader.lua @@ -53,11 +53,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("vulkan-loader-1.4.313", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/w/wayland.lua b/pkgs/w/wayland.lua index c3d2a844..ba8b7ce3 100644 --- a/pkgs/w/wayland.lua +++ b/pkgs/w/wayland.lua @@ -40,11 +40,16 @@ import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") import("xim.pkgindex.sysroot") +import("xim.pkgindex.selfcontain") function install() local dir = pkginfo.install_dir() os.tryrm(dir) os.mv("wayland-1.23.1", dir) + + -- Stamp this payload's own dependency closure onto its libraries, so they + -- resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end diff --git a/pkgs/z/zlib.lua b/pkgs/z/zlib.lua index de84be7c..72663253 100644 --- a/pkgs/z/zlib.lua +++ b/pkgs/z/zlib.lua @@ -18,6 +18,7 @@ package = { xpm = { linux = { + deps = { "xim:glibc" }, ["latest"] = { ref = "1.3.1" }, ["1.3.1"] = { url = { @@ -33,6 +34,7 @@ package = { import("xim.libxpkg.pkginfo") import("xim.libxpkg.system") import("xim.libxpkg.xvm") +import("xim.pkgindex.selfcontain") import("xim.libxpkg.log") local libs = { @@ -43,6 +45,10 @@ function install() local srcdir = "zlib-" .. pkginfo.version() .. "-linux-x86_64" os.tryrm(pkginfo.install_dir()) os.mv(srcdir, pkginfo.install_dir()) + + -- Stamp this payload's own dependency closure onto its libraries, so + -- they resolve from our payloads and not from the host's ld.so.cache. + selfcontain.seal(pkginfo.install_dir()) return true end From 7dc2fa16850ae413e53445b41416b4458f462691 Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Fri, 7 Aug 2026 16:58:50 +0800 Subject: [PATCH 07/11] fix(fontconfig): a bare dep name is only unambiguous until CI touches both MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI registers every changed recipe a second time under `local:`. fontconfig declared bare `expat@2.6.2`, so the moment this PR also touched expat the name had two candidates and the install died with a candidate list — a failure caused by the SHAPE of the PR, not by either recipe. 62 bare dep names remain index-wide (cairo, glib, libpng, harfbuzz...). Each is latent in exactly the same way: fine until some unrelated change happens to hit the depender and the dependee together. --- pkgs/f/fontconfig.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/f/fontconfig.lua b/pkgs/f/fontconfig.lua index 32273bba..7c4383b2 100644 --- a/pkgs/f/fontconfig.lua +++ b/pkgs/f/fontconfig.lua @@ -14,7 +14,14 @@ package = { xvm_enable = true, xpm = { linux = { - deps = { "freetype@2.13.2", "expat@2.6.2", "xim:glibc" }, + -- `xim:`-qualified, not bare. A bare name resolves fine while only + -- one index provides it -- and CI registers every CHANGED recipe a + -- second time under `local:`, so the moment expat is touched in the + -- same PR the bare name becomes ambiguous and fontconfig's install + -- fails with a candidate list. That is a property of the PR, not of + -- the recipe, so it stays latent until some unrelated change hits + -- both packages at once. + deps = { "xim:freetype@2.13.2", "xim:expat@2.6.2", "xim:glibc" }, ["latest"] = { ref = "2.15.0" }, ["2.15.0"] = { url = { From fa6b86dc6869a613eee97a0b988475d681317d91 Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Fri, 7 Aug 2026 17:44:17 +0800 Subject: [PATCH 08/11] fix(selfcontain): refuse to call an install that produced nothing a success MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every recipe ends `os.mv(srcdir, install_dir); return true` with the move unchecked. When the extracted source directory is already gone the move does nothing, install() returns true, and xlings prints a tick over an EMPTY payload. Reproduced locally, not inferred: xim:libffi@3.4.4 installed as a dependency -- consumes the srcdir local:libffi@3.4.4 ✓ done, 1 package installed -- payload directory empty The only complaint came from the *config* hook two steps later, about pkgconfig globs — the error named the wrong subsystem because by then nothing remembered that the payload never arrived. That is what CI is currently reporting for pkgs/l/libffi.lua. The check cannot fire in CI's install test, and the comment says so: under `config --add-xpkg` every `xim.pkgindex.*` import is a no-op proxy, so that job does not exercise selfcontain.seal at all. Cell 6 of verify-stack.sh is the evidence that the seal works; a green linux-install-test is not. --- libs/selfcontain.lua | 46 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/libs/selfcontain.lua b/libs/selfcontain.lua index 03e7fdfa..76db0d3b 100644 --- a/libs/selfcontain.lua +++ b/libs/selfcontain.lua @@ -94,7 +94,51 @@ local selfcontain = {} -- -- never nil, so a caller can branch. A false is WARNED rather than silent: -- the package still installs and still works on any host that has the -- dependency, which is precisely the failure mode that hid this for so long. +-- Refuse to call an install that produced nothing a success. +-- +-- Every recipe here ends `os.mv(srcdir, install_dir); return true`, and the +-- move is not checked. When the extracted source directory is already gone the +-- move does nothing, `install()` returns true anyway, and xlings prints +-- `✓ pkg@ver done` over an EMPTY payload directory. +-- +-- That is not hypothetical. CI registers each changed recipe under `local:` +-- while its dependents still resolve `xim:`, so one package+version can be +-- installed twice from one extraction. Reproduced verbatim: +-- +-- xim:libffi@3.4.4 installed as a dependency -- consumes the srcdir +-- local:libffi@3.4.4 ✓ done, 1 package installed -- payload is empty +-- +-- and the only thing that complained was the *config* hook, two steps later, +-- with a message about pkgconfig globs. The error named the wrong subsystem +-- because by then nothing remembered that the payload never arrived. +-- +-- Checked here because this is the one hook every sealed recipe already calls, +-- and because it is the last moment inside install() where the truth is cheap. +-- +-- It will NOT fire in CI's install test, and that is not a bug in the check. +-- `xlings config --add-xpkg` registers a recipe under `local:` without the +-- index's `libs/`, so `import("xim.pkgindex.selfcontain")` yields a permissive +-- proxy and every call through it is a truthy no-op. The same is true of +-- `selfcontain.seal` itself: **the linux-install-test job does not exercise the +-- seal**, and a green run there says nothing about whether payloads are sealed. +-- The evidence for that lives in verify-stack.sh cell 6, which runs a real +-- `xim:` install in a bwrap with no /usr. +local function _assert_payload(install_dir, libdirs) + for _, sub in ipairs(libdirs) do + if os.isdir(path.join(install_dir, sub)) then return true end + end + error(string.format( + "install produced no payload: %s has none of {%s}. The extracted source " + .. "directory was most likely already consumed by another install of the " + .. "same package and version (a second namespace, e.g. xim: and local:), " + .. "and this recipe's os.mv silently did nothing.", + install_dir, table.concat(libdirs, ", "))) +end + function selfcontain.seal(install_dir, libdirs) + local dirs = libdirs or { "lib", "lib64" } + _assert_payload(install_dir, dirs) + -- type(), not truthiness: import() answers an unknown module with a -- permissive proxy whose every key is truthy, so `if elfpatch.x then` -- takes the new branch on clients that then discard the call. @@ -121,7 +165,7 @@ function selfcontain.seal(install_dir, libdirs) -- collects no targets, so naming both costs nothing and forgetting one -- silently leaves that payload resolving from the host. local r = elfpatch.patch_elf_loader_rpath(install_dir, { - libs = libdirs or { "lib", "lib64" }, + libs = dirs, rpath = rpath, -- No shrink. --shrink-rpath keeps only the entries that satisfy a -- current DT_NEEDED, which would drop exactly the directories a From 5df26ad9713e5ed29e594a658afdc32815508b96 Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Fri, 7 Aug 2026 18:26:39 +0800 Subject: [PATCH 09/11] fix(ci): a recipe under test must REPLACE its published copy, not coexist MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `config --add-xpkg` registers the changed recipe under `local:` while the published one stays under `xim:`. Two candidates for one package is a state that never exists after merge, and it breaks the run in two ways that both read as bugs in the diff: 1. AMBIGUITY. Any recipe naming a dep without a namespace now has two candidates. Published `xim:fontconfig` says `expat@2.6.2`, so a PR that merely touched expat broke fontconfig AND graphics. Whether a PR passed depended on which OTHER packages it happened to touch. 2. DOUBLE INSTALL FROM ONE EXTRACTION. `xim:libffi` arrives as another package's dependency and its hook MOVES the extracted tree into place. `local:libffi` then has no download artifact, so no extraction; the recipe's os.mv finds nothing, install() returns true, and xlings prints a tick over an EMPTY payload. The only complaint came from the config hook two steps later, about pkgconfig globs. So the recipe is written OVER the published one, in place, in the same namespace. Deleting the published copy instead was tried and is NOT equivalent: it also leaves one candidate, but removes the `xim:` NAME, so every self-qualifying dep (`xim:expat@2.6.2`, `xim:libffi@>=3.4`) stops resolving — 3 failures became 3 different failures. Overlay keeps the name. libs/ is overlaid into the same index for the reason the local-index copy already documents: a recipe imports `xim.pkgindex.*` from the index it was loaded from, and a missing libs/ turns every helper call into a truthy no-op. That blindness was described in this file and never fixed; the same job could not execute selfcontain.seal at all. Falls back to --add-xpkg when the index path is a symlink (a developer pointing their home at the checkout) so the copy can never write into the source tree. Validated against a CI-shaped home (index populated from origin/main, not the working copy): 21 packages, 0 failures, including the four that were red. --- .github/scripts/posix-test.sh | 66 +++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/.github/scripts/posix-test.sh b/.github/scripts/posix-test.sh index 511d910f..29abaee8 100755 --- a/.github/scripts/posix-test.sh +++ b/.github/scripts/posix-test.sh @@ -151,10 +151,67 @@ fi # Same reasoning as the scode line above — make the things a dependency can # point at resolvable first, then test. Registration is idempotent, so the # loop's own add-xpkg stays as it is. +# A recipe under test SHADOWS its published copy; it does not coexist with it. +# +# `config --add-xpkg` registers the changed recipe under `local:`, while the +# published one stays in the `xim:` index. Two candidates for one package is a +# state that never exists after merge, and it breaks the run in two ways that +# both look like bugs in the diff: +# +# 1. AMBIGUITY. Any recipe -- including a PUBLISHED one this PR cannot edit -- +# that names a dep WITHOUT a namespace now has two candidates and fails +# with "package 'expat@2.6.2' is ambiguous". Published `xim:fontconfig` +# says `expat@2.6.2`, so merely touching expat broke fontconfig AND +# graphics. Whether a PR passes then depends on which OTHER packages it +# happens to touch. +# +# 2. DOUBLE INSTALL FROM ONE EXTRACTION. `xim:libffi` gets pulled in as some +# other package's dependency and its install hook MOVES the extracted +# source tree into place. When `local:libffi` is then installed for its own +# test, there is no download artifact and therefore no extraction, the +# recipe's `os.mv` finds nothing, `install()` returns true anyway, and +# xlings prints a tick over an EMPTY payload directory. The only complaint +# came from the config hook two steps later, about pkgconfig globs. +# +# So the recipe under test is written OVER the published one, in place, in the +# same namespace. One candidate, and it is the PR's -- exactly the state the +# merge produces. +# +# Deleting the published copy instead is not equivalent and was tried: it also +# leaves one candidate, but it removes the `xim:` NAME, so every dep that +# qualifies itself -- `xim:expat@2.6.2`, `xim:libffi@>=3.4` -- stops resolving. +# Overlay keeps the name and changes only the content. +# +# Guarded to a real directory: when the index path is a symlink (a developer +# pointing their home at this very checkout) the copy would write back into the +# source tree. In that case, and if the overlay fails for any other reason, the +# caller falls back to the old `--add-xpkg` behaviour rather than skipping the +# package. +INDEX_DIR="$XLINGS_HOME_DIR/data/xim-pkgindex" +overlay_recipe() { + local rel_file="$1" + [[ -d "$INDEX_DIR" && ! -L "$INDEX_DIR" ]] || return 1 + mkdir -p "$INDEX_DIR/$(dirname "$rel_file")" || return 1 + cp -f "$WORKSPACE_ROOT/$rel_file" "$INDEX_DIR/$rel_file" || return 1 + return 0 +} + +# The same reasoning applies to libs/: a recipe overlaid into the xim index +# imports `xim.pkgindex.*` from THAT index, so the PR's helpers have to be there +# too. Without this the imports fall through to the permissive stub and every +# helper call is a truthy no-op -- the failure mode already described above for +# the local index. +if [[ -d "$WORKSPACE_ROOT/libs" && -d "$INDEX_DIR" && ! -L "$INDEX_DIR" ]]; then + mkdir -p "$INDEX_DIR/libs" + cp "$WORKSPACE_ROOT/libs/"*.lua "$INDEX_DIR/libs/" 2>/dev/null || true +fi + for rel_file in "${files[@]}"; do [[ -n "$rel_file" ]] || continue [[ -f "$WORKSPACE_ROOT/$rel_file" ]] || continue - "$XLINGS_CMD" config --add-xpkg "$WORKSPACE_ROOT/$rel_file" >/dev/null 2>&1 || true + if ! overlay_recipe "$rel_file"; then + "$XLINGS_CMD" config --add-xpkg "$WORKSPACE_ROOT/$rel_file" >/dev/null 2>&1 || true + fi done for rel_file in "${files[@]}"; do @@ -207,7 +264,12 @@ for rel_file in "${files[@]}"; do tested=$((tested+1)) step "[$pkg] register (type=$pkg_type)" - if ! "$XLINGS_CMD" config --add-xpkg "$lua_file"; then + # Overlay wins; `--add-xpkg` is the fallback for a home whose index copy is + # not writable. `pkg_ns` is corrected below to match whichever ran. + if overlay_recipe "$rel_file"; then + [[ "$pkg_ns" == "local" ]] && pkg_ns="xim" + info "overlaid into the index as ${pkg_ns}:${pkg}" + elif ! "$XLINGS_CMD" config --add-xpkg "$lua_file"; then log_fail "config --add-xpkg failed"; failures+=("$rel_file (register)"); continue fi From c5a0cdfd66ba786099eb6424a19a8db1dc8f625d Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Fri, 7 Aug 2026 18:30:22 +0800 Subject: [PATCH 10/11] feat(mirrors): CN mirrors for the three new graphics packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These shipped GLOBAL-only with a comment saying gtc could publish a release but not create a GitCode project. That was wrong — `gtc repo create` exists. The actual blocker was different and only shows up on an EMPTY project: tagging a release fails with `main is not exist`, because there is no branch to target. Pushing a README first is what makes the release possible. Created xlings-res/{libXinerama,vulkan-headers,vulkan-loader} on GitCode, pushed the same README the GitHub mirror carries, published the tag and uploaded the payload. Verified by DOWNLOADING each asset from the CN URL and comparing sha256 to the artifact the recipe pins — not by checking that the URL exists. All three match byte for byte. --- pkgs/l/libXinerama.lua | 12 ++++-------- pkgs/v/vulkan-headers.lua | 9 ++++----- pkgs/v/vulkan-loader.lua | 9 ++++----- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/pkgs/l/libXinerama.lua b/pkgs/l/libXinerama.lua index 00656d93..7d56abc9 100644 --- a/pkgs/l/libXinerama.lua +++ b/pkgs/l/libXinerama.lua @@ -39,15 +39,11 @@ package = { runtime = { libdirs = { "lib" } }, }, ["latest"] = { ref = "1.1.5" }, - -- GLOBAL only, and that is a known gap rather than an oversight: - -- `gtc` can publish a RELEASE into an existing GitCode project but - -- cannot create the project itself, and `xlings-res/libXinerama` - -- does not exist on GitCode yet. A CN URL pointing at a missing - -- project would be worse than none -- it fails at download time - -- instead of falling back. Add the mirror table once the project is - -- created; the payload is byte-identical either way (sha256 below). ["1.1.5"] = { - url = "https://github.com/xlings-res/libXinerama/releases/download/1.1.5/libXinerama-1.1.5-linux-x86_64.tar.gz", + url = { + GLOBAL = "https://github.com/xlings-res/libXinerama/releases/download/1.1.5/libXinerama-1.1.5-linux-x86_64.tar.gz", + CN = "https://gitcode.com/xlings-res/libXinerama/releases/download/1.1.5/libXinerama-1.1.5-linux-x86_64.tar.gz", + }, sha256 = "8dfb7eb3459d920f6cc8209ee7db0a1b84cb3b4687f23f7a70442ee5c69802b3", }, }, diff --git a/pkgs/v/vulkan-headers.lua b/pkgs/v/vulkan-headers.lua index 4dbb23d6..3ce3f504 100644 --- a/pkgs/v/vulkan-headers.lua +++ b/pkgs/v/vulkan-headers.lua @@ -22,12 +22,11 @@ package = { runtime = { libdirs = { "lib" } }, }, ["latest"] = { ref = "1.4.313" }, - -- GLOBAL only for now: `gtc` can publish a release into an existing - -- GitCode project but cannot create one, and this project does not - -- exist there yet. A CN URL naming a missing project fails at - -- download instead of falling back, which is worse than none. ["1.4.313"] = { - url = "https://github.com/xlings-res/vulkan-headers/releases/download/1.4.313/vulkan-headers-1.4.313-linux-x86_64.tar.gz", + url = { + GLOBAL = "https://github.com/xlings-res/vulkan-headers/releases/download/1.4.313/vulkan-headers-1.4.313-linux-x86_64.tar.gz", + CN = "https://gitcode.com/xlings-res/vulkan-headers/releases/download/1.4.313/vulkan-headers-1.4.313-linux-x86_64.tar.gz", + }, sha256 = "bb305ab10c4d5c5ce5935099b4b8f364376e360bea53fee85a5e86370cef860a", }, }, diff --git a/pkgs/v/vulkan-loader.lua b/pkgs/v/vulkan-loader.lua index e72e0e1d..dfd5a421 100644 --- a/pkgs/v/vulkan-loader.lua +++ b/pkgs/v/vulkan-loader.lua @@ -37,12 +37,11 @@ package = { runtime = { libdirs = { "lib" } }, }, ["latest"] = { ref = "1.4.313" }, - -- GLOBAL only for now: `gtc` can publish a release into an existing - -- GitCode project but cannot create one, and this project does not - -- exist there yet. A CN URL naming a missing project fails at - -- download instead of falling back, which is worse than none. ["1.4.313"] = { - url = "https://github.com/xlings-res/vulkan-loader/releases/download/1.4.313/vulkan-loader-1.4.313-linux-x86_64.tar.gz", + url = { + GLOBAL = "https://github.com/xlings-res/vulkan-loader/releases/download/1.4.313/vulkan-loader-1.4.313-linux-x86_64.tar.gz", + CN = "https://gitcode.com/xlings-res/vulkan-loader/releases/download/1.4.313/vulkan-loader-1.4.313-linux-x86_64.tar.gz", + }, sha256 = "4870e17d573117378132db72d338723c849bef5aa4ae3f01eb0aabbdfabd3c2b", }, }, From b07bccfc935b32d4aa0f4bf18811055381832625 Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Fri, 7 Aug 2026 18:52:45 +0800 Subject: [PATCH 11/11] fix(ci): overlay only a recipe that already exists upstream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous commit overlaid every changed recipe into the index. That is right for a change to a PUBLISHED package and wrong for one the PR ADDS: the package is not in the index, so asking for it by its index name makes xlings say 'xim:libXinerama' not in current index; refreshing index... and the refresh re-fetches the whole index, overwriting the file just placed there. The install then fails with `not found` — all three new packages died in 21 seconds. Overlay now requires the published copy to exist. That is exactly the case that produces the duplicate candidate, and the only case overlay can serve. A new package keeps the --add-xpkg / local: path, where it is unambiguous anyway: nothing published shares the name. This is also the namespace rule the index already follows — new package referenced bare, changed published one with xim:. Validated on the union of both failure sets — the 3 new packages that just failed and the 4 that were red before: 7 tested, 0 failures. --- .github/scripts/posix-test.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/scripts/posix-test.sh b/.github/scripts/posix-test.sh index 29abaee8..371bfaf5 100755 --- a/.github/scripts/posix-test.sh +++ b/.github/scripts/posix-test.sh @@ -187,11 +187,24 @@ fi # source tree. In that case, and if the overlay fails for any other reason, the # caller falls back to the old `--add-xpkg` behaviour rather than skipping the # package. +# Only for a recipe that ALREADY EXISTS upstream — i.e. a change to a published +# package. That is precisely the case that produces the duplicate, and it is the +# only case overlay can serve. +# +# A package the PR ADDS is not in the index, so asking for it by its index name +# makes xlings say `'xim:' not in current index; refreshing index...` and +# re-fetch the whole index — which overwrites the file that was just placed +# there, and the install then fails with `not found`. New packages therefore +# keep the `--add-xpkg` / `local:` path, where they are unambiguous anyway: +# nothing published shares the name, so there is no second candidate. +# +# This also matches the namespace rule the index already follows — a new package +# is referenced bare, a changed published one with `xim:`. INDEX_DIR="$XLINGS_HOME_DIR/data/xim-pkgindex" overlay_recipe() { local rel_file="$1" [[ -d "$INDEX_DIR" && ! -L "$INDEX_DIR" ]] || return 1 - mkdir -p "$INDEX_DIR/$(dirname "$rel_file")" || return 1 + [[ -f "$INDEX_DIR/$rel_file" ]] || return 1 # not published: not ours to overlay cp -f "$WORKSPACE_ROOT/$rel_file" "$INDEX_DIR/$rel_file" || return 1 return 0 }