fix: bugs found in a final workspace-wide sweep master
- bismuth: tsc --noEmit failed on __BISMUTH_VERSION__, a build-time constant injected by tsup's `define` (see tsup.config.ts) with no matching ambient declaration. Added src/global.d.ts. - noise, noise-avatar: both extend the (deliberately minimal) root tsconfig.json without setting their own target/lib/module, unlike every other package in the workspace. Root tsconfig has no `target`, so TS fell back to a pre-ES2015 lib — Math.imul, Array.from, HTMLCanvasElement, and ImageData all failed to resolve. noise-avatar additionally set moduleResolution: bundler without module: ES2020+, which TS rejects outright. Both now self-declare target/module/lib the same way bismuth, tid, and every svelte package already do. - nix-config-tools: removed resolve_bool(), a dead helper that was never called — read_services() reimplements the same host-override lookup inline instead of using it — and the now-fully-unused `regex` import/dependency that only that function's neighbours had pulled in. - llm-analyser: main.py had a hard SyntaxError (a nested f-string whose expression contained a backslash), so the script could not even be imported, let alone run. Pulled the nested f-string into a plain variable before interpolating it. - .gitignore: added target/ and __pycache__/*.pyc — Rust and Python build artifacts were untracked but unignored, so `git status` above is not exaggerating.