11 KiB
Registry installer-URL sync — v3.3.0
Source reference: ai-stack-guide-v12.md (systems-architect guide).
Patched files: src/ai_lsc/registry/layers/*.py.
Total installer URL corrections: 51 across 8 layer files.
Five categories of patches:
- A (28): git / git_node / custom installer
pkgURL corrected to match the v12 markdown reference. - B (6): script-type installer gets a new
pkgfield added (the github repo), while the existing workingcmdis left untouched. - C (10): registry-only git tools with no v12 markdown entry — official upstream repos found via web search.
- D (3): type-mismatch fixes — md says git / git_node, registry had
uvwith a package name. Switched to git / git_node with the github URL from the v12 markdown reference. - E (4): user-provided URLs for the 4 previously-unresolved registry-only tools (web search could not find these; the user provided the official upstream URLs directly).
Plus 1 new tool entry (ComfyUI) and a runtime hardening of install_git / install_git_node in runtime/installer.py.
devops.py (3 A/B/C patches)
| Tool ID | Cat | Old pkg |
New pkg |
|---|---|---|---|
opentofu |
A | https://opentofu.org/docs/intro/install/ |
https://github.com/opentofu/opentofu |
terragrunt |
A | https://terragrunt.gruntwork.io/docs/getting-started/install/ |
https://github.com/gruntwork-io/terragrunt |
crossplane |
C | https://docs.crossplane.io/v2/getting-started/install/ |
https://github.com/crossplane/crossplane |
inference.py (6 A/B/C patches)
| Tool ID | Cat | Old pkg |
New pkg |
|---|---|---|---|
airllm |
A | https://github.com/liguodongiot/llm-airforce |
https://github.com/lyogavin/airllm |
llamacpp |
A | https://github.com/ggerganov/llama.cpp |
https://github.com/ggml-org/llama.cpp |
locally_uncensored |
A | https://github.com/nicely-done/locally-uncensored |
https://github.com/PurpleDoubleD/locally-uncensored |
turbollm |
A | https://github.com/nicely-done/turbollm |
https://github.com/mohitsoni48/TurboLLM |
llamafile |
B | (none) |
https://github.com/Mozilla-Ocho/llamafile |
ollama |
B | (none) |
https://github.com/ollama/ollama |
knowledge_management.py (10 A/B/C patches)
| Tool ID | Cat | Old pkg |
New pkg |
|---|---|---|---|
airweave |
A | https://github.com/nicely-done/airweave |
https://github.com/airweave-ai/airweave |
mirofish |
A | https://github.com/nicely-done/mirofish |
https://github.com/666ghj/MiroFish |
opendataloader |
A | https://github.com/nicely-done/opendataloader |
https://github.com/opendataloader-project/opendataloader-pdf |
opendataloader_pdf |
A | https://github.com/nicely-done/opendataloader-pdf |
https://github.com/opendataloader-project/opendataloader-pdf |
understand_anything |
A | https://github.com/nicely-done/understand-anything |
https://github.com/Egonex-AI/Understand-Anything |
meilisearch |
B | (none) |
https://github.com/meilisearch/meilisearch |
qdrant |
B | (none) |
https://github.com/qdrant/qdrant |
everos_memory |
C | https://github.com/nicely-done/everos-memory |
https://github.com/EverMind-AI/EverOS |
mnemo_cortex |
C | https://github.com/nicely-done/mnemo-cortex |
https://github.com/GuyMannDude/mnemo-cortex |
turbovec |
C | https://github.com/nicely-done/turbovec |
https://github.com/ryancodrai/turbovec |
observability.py (4 A/B/C patches)
| Tool ID | Cat | Old pkg |
New pkg |
|---|---|---|---|
latitude |
A | https://github.com/nicely-done/latitude |
https://github.com/latitude-dev/latitude-llm |
pulse_ai |
A | https://github.com/nicely-done/pulse-ai |
https://github.com/glieai/pulse-ai |
grafana_alloy |
B | (none) |
https://github.com/grafana/alloy |
dma |
C | https://github.com/distcc/dma |
https://github.com/distcc/distcc |
orchestrators.py (15 A/B/C patches)
| Tool ID | Cat | Old pkg |
New pkg |
|---|---|---|---|
agentic_os |
A | https://github.com/nicely-done/agentic-os |
https://github.com/aporb/agentic-os |
career_ops |
A | https://github.com/nicely-done/career_ops |
https://github.com/santifer/career-ops |
container_tool |
A | https://github.com/nicely-done/container_tool |
https://github.com/NVIDIA/nvidia-container-toolkit |
hivemind |
A | https://github.com/nicely-done/hivemind |
https://github.com/hivementality-ai/hivemind |
loop_engineering |
A | https://github.com/nicely-done/loop_engineering |
https://github.com/lcajigasm/loop-engineering |
opensandbox |
A | https://github.com/nicely-done/opensandbox |
https://github.com/opensandbox-group/OpenSandbox |
ponytail |
A | https://github.com/nicely-done/ponytail |
https://github.com/DietrichGebert/ponytail |
promptops |
A | https://github.com/nicely-done/promptops |
https://github.com/llmhq-hub/promptops |
skillspector |
A | https://github.com/nicely-done/skillspector |
https://github.com/NVIDIA/skillspector |
spec_kit |
A | https://github.com/nicely-done/spec_kit |
https://github.com/github/spec-kit |
fabric |
B | (none) |
https://github.com/danielmiessler/fabric |
agent_reach |
C | https://github.com/nicely-done/agent_reach |
https://github.com/Panniantong/Agent-Reach |
headroom |
C | https://github.com/nicely-done/headroom |
https://github.com/headroomlabs-ai/headroom |
nightshift |
C | https://github.com/nicely-done/nightshift |
https://github.com/johndaskovsky/nightshift |
openbrain |
C | https://github.com/nicely-done/openbrain |
https://github.com/NateBJones-Projects/OB1 |
routing.py (1 A/B/C patches)
| Tool ID | Cat | Old pkg |
New pkg |
|---|---|---|---|
9router_proxy |
A | https://github.com/nicely-done/9router |
https://github.com/decolua/9router |
security.py (1 A/B/C patches)
| Tool ID | Cat | Old pkg |
New pkg |
|---|---|---|---|
keycloak |
C | keycloak |
https://github.com/keycloak/keycloak |
user_interfaces.py (4 A/B/C patches)
| Tool ID | Cat | Old pkg |
New pkg |
|---|---|---|---|
deep_eye |
A | https://github.com/nicely-done/deep-eye |
https://github.com/zakirkun/deep-eye |
forge |
A | https://github.com/AUTOMATIC1111/stable-diffusion-webui-forge |
https://github.com/lllyasviel/stable-diffusion-webui-forge |
local_llm_launcher |
A | https://github.com/nicely-done/local-llm-launcher-gui |
https://github.com/jimdawdy-hub/Local-LLM-Launcher-GUI |
parakeet |
A | https://github.com/nicely-done/parakeet.cpp |
https://github.com/mudler/parakeet.cpp |
Category D — type-mismatch fixes (3 patches)
These tools were registered as uv package-manager installs but the v12 markdown reference (which the user manually tested) lists them as git or git_node. Switched to git / git_node type with the github URL.
| Tool ID | Source file | Old type / pkg | New type / pkg |
|---|---|---|---|
pm_skills |
orchestrators.py |
uv / (package name) |
git / https://github.com/product-on-purpose/pm-skills |
agno |
orchestrators.py |
uv / (package name) |
git / https://github.com/agno-agi/agno |
openhands |
devops.py |
uv / (package name) |
git_node / https://github.com/All-Hands-AI/OpenHands.git |
Category E — user-provided URLs (4 patches)
These 4 registry-only tools had placeholder github.com/nicely-done/... URLs because web search could not find their official upstreams. The user provided the official URLs directly:
| Tool ID | Source file | Old pkg (placeholder) |
New pkg (user-provided) |
|---|---|---|---|
algory |
orchestrators.py |
https://github.com/nicely-done/algory |
https://github.com/aryaghan-mutum/algory |
atlas_os |
orchestrators.py |
https://github.com/nicely-done/atlas_os |
https://github.com/atlas-os/atlas |
eagle_eye |
observability.py |
https://github.com/nicely-done/eagle_eye |
https://github.com/thoughtfuldev/eagleeye |
glassmind |
orchestrators.py |
https://github.com/nicely-done/glassmind |
https://github.com/khodges42/glassMind |
New tool entry — ComfyUI
ComfyUI was referenced in registry/stack_templates/ai-image-gen-local.json but had no registry entry before. Added as a Level 10 tool in user_interfaces.py:
| Field | Value |
|---|---|
tool_id |
comfyui |
name |
ComfyUI |
level |
10 |
layer |
Human Interface & System Operations |
role / category |
Node-Based Image Gen |
installer.type |
git |
installer.pkg |
https://github.com/comfy-org/comfyui |
launcher.cmd |
cd {tools_root}/comfyui && python main.py --listen 0.0.0.0 --port {port} |
launcher.default_port |
8188 |
deps |
[cuda] |
license |
GPL-3.0 |
Total registry size: 187 tools (was 186).
Runtime hardening — runtime/installer.py
install_git and install_git_node were hardened so that re-running install on an already-cloned tool fetches only the diff:
- Check
.gitdir, not justdestdir. Previously the existence check wasos.path.exists(dest), which is True for any dir — including non-git dirs. Now checksos.path.isdir(dest/.git), so a non-git dir doesn't causegit pullto fail. - Fall back to re-clone on pull failure. If
git pull --ff-onlyfails (diverged branches, network errors, corrupted index, etc.), the old dir is moved aside to<dest>.bak.<unix_ts>and a fresh clone is made. The install always ends in a usable state. - Back up existing non-git dir. If
destexists but isn't a git repo, it's backed up to<dest>.bak.<unix_ts>and a fresh clone is made. - Log which path was taken. The return message says whether the tool was pulled, re-cloned (with backup path), or freshly cloned — so the user can see what happened.
Effect: re-running install on a tool that's already cloned only fetches the diff (a few KB / MB), not the entire repo. This is the bandwidth-saving behaviour the user asked for.
Verification
All 51 patches applied successfully:
- 28 git-ish pkg URL replacements (each old
pkgstring was unique within its file and matched exactly once). - 6 script-type pkg-field injections (each matched exactly one installer block).
- 10 missing-repo lookups via web search.
- 3 type-mismatch fixes (uv → git / git_node).
- 4 user-provided URLs for previously-unresolved tools.
- 1 new ComfyUI tool entry added to
user_interfaces.py.
All 94 Python files under src/ AST-parse cleanly after the patches. The registry extractor re-imports every layer module and confirms all 51 patches landed + the new ComfyUI entry. Total registry size: 187 tools (was 186).
0 nicely-done placeholder URLs remain in the registry.