--- phase: 03-tier-3-9-providers plan: 05 subsystem: providers tags: [providers, tier-8, self-hosted, runtimes, keyword-only] requires: [pkg/providers/schema.go, pkg/providers/registry.go] provides: - Ollama, vLLM, LocalAI, LM Studio, llama.cpp provider definitions - GPT4All, text-generation-webui, TensorRT-LLM, Triton, Jan AI provider definitions - 10 Tier 8 self-hosted runtime keyword anchors for OSINT correlation affects: [pkg/providers/definitions/] tech_added: [] patterns: [keyword-only detection for providers without documented key formats] files_created: - providers/ollama.yaml - providers/vllm.yaml - providers/localai.yaml - providers/lmstudio.yaml - providers/llamacpp.yaml - providers/gpt4all.yaml - providers/text-gen-webui.yaml - providers/tensorrt-llm.yaml - providers/triton.yaml - providers/jan.yaml - pkg/providers/definitions/ollama.yaml - pkg/providers/definitions/vllm.yaml - pkg/providers/definitions/localai.yaml - pkg/providers/definitions/lmstudio.yaml - pkg/providers/definitions/llamacpp.yaml - pkg/providers/definitions/gpt4all.yaml - pkg/providers/definitions/text-gen-webui.yaml - pkg/providers/definitions/tensorrt-llm.yaml - pkg/providers/definitions/triton.yaml - pkg/providers/definitions/jan.yaml files_modified: [] decisions: - "Used keyword-only detection (no regex patterns) for all 10 runtimes — self-hosted stacks typically lack standardized key formats; this avoids Phase 2's false-positive lessons" - "Captured localhost port anchors (11434, 8080, 1234, 5000) to enable later OSINT/Shodan correlation even when no key is present" - "Included CLI-flag and env-var keywords (OLLAMA_HOST, VLLM_API_KEY, LOCALAI_API_KEY, etc.) as detection anchors" requirements: [PROV-08] metrics: tasks_completed: 2 files_created: 20 duration: "~3 min" completed: "2026-04-05" --- # Phase 3 Plan 05: Tier 8 Self-Hosted Runtimes Summary **One-liner:** 10 Tier 8 self-hosted LLM runtime provider YAMLs (Ollama, vLLM, LocalAI, LM Studio, llama.cpp, GPT4All, text-generation-webui, TensorRT-LLM, Triton, Jan AI) using keyword-only detection. ## What Was Built Satisfies PROV-08. Twenty YAML files dual-located in `providers/` and `pkg/providers/definitions/`, each defining a Tier 8 self-hosted runtime. Because self-hosted stacks rarely use bearer-token API keys with documented formats, all definitions rely exclusively on keyword-based anchors — localhost endpoints, CLI flags, environment variable names, and project identifiers — enabling Aho-Corasick pre-filter matches during scanning and OSINT/recon correlation in later phases. ## Tasks Executed | Task | Name | Commit | Files | | ---- | ---- | ------ | ----- | | 1 | Ollama, vLLM, LocalAI, LM Studio, llama.cpp YAMLs | 370dca0 | 10 files | | 2 | GPT4All, text-gen-webui, TensorRT-LLM, Triton, Jan AI YAMLs | 367cfed | 10 files | ## Verification - `go test ./pkg/providers/... -count=1` — PASS - `go test ./pkg/engine/... -count=1` — PASS - `grep -l 'tier: 8' providers/*.yaml | wc -l` — 10 - All 20 files byte-identical between `providers/` and `pkg/providers/definitions/` - All 10 YAMLs omit `patterns:` field (keyword-only) ## Deviations from Plan None — plan executed exactly as written. ## Self-Check: PASSED - providers/ollama.yaml — FOUND - providers/vllm.yaml — FOUND - providers/localai.yaml — FOUND - providers/lmstudio.yaml — FOUND - providers/llamacpp.yaml — FOUND - providers/gpt4all.yaml — FOUND - providers/text-gen-webui.yaml — FOUND - providers/tensorrt-llm.yaml — FOUND - providers/triton.yaml — FOUND - providers/jan.yaml — FOUND - All 10 pkg/providers/definitions/*.yaml twins — FOUND - Commit 370dca0 — FOUND - Commit 367cfed — FOUND