From 370dca0cbbda8448651e1e714ccf230770f0931c Mon Sep 17 00:00:00 2001 From: salvacybersec Date: Sun, 5 Apr 2026 14:41:35 +0300 Subject: [PATCH 1/3] feat(03-05): add Ollama, vLLM, LocalAI, LM Studio, llama.cpp provider YAMLs - 5 Tier 8 self-hosted runtime provider definitions (keyword-only) - Localhost endpoints and env var anchors for OSINT correlation - Dual-located in providers/ and pkg/providers/definitions/ --- pkg/providers/definitions/llamacpp.yaml | 18 ++++++++++++++++++ pkg/providers/definitions/lmstudio.yaml | 17 +++++++++++++++++ pkg/providers/definitions/localai.yaml | 17 +++++++++++++++++ pkg/providers/definitions/ollama.yaml | 19 +++++++++++++++++++ pkg/providers/definitions/vllm.yaml | 18 ++++++++++++++++++ providers/llamacpp.yaml | 18 ++++++++++++++++++ providers/lmstudio.yaml | 17 +++++++++++++++++ providers/localai.yaml | 17 +++++++++++++++++ providers/ollama.yaml | 19 +++++++++++++++++++ providers/vllm.yaml | 18 ++++++++++++++++++ 10 files changed, 178 insertions(+) create mode 100644 pkg/providers/definitions/llamacpp.yaml create mode 100644 pkg/providers/definitions/lmstudio.yaml create mode 100644 pkg/providers/definitions/localai.yaml create mode 100644 pkg/providers/definitions/ollama.yaml create mode 100644 pkg/providers/definitions/vllm.yaml create mode 100644 providers/llamacpp.yaml create mode 100644 providers/lmstudio.yaml create mode 100644 providers/localai.yaml create mode 100644 providers/ollama.yaml create mode 100644 providers/vllm.yaml diff --git a/pkg/providers/definitions/llamacpp.yaml b/pkg/providers/definitions/llamacpp.yaml new file mode 100644 index 0000000..89ba2e8 --- /dev/null +++ b/pkg/providers/definitions/llamacpp.yaml @@ -0,0 +1,18 @@ +format_version: 1 +name: llamacpp +display_name: llama.cpp server +tier: 8 +last_verified: "2026-04-05" +keywords: + - "llama.cpp" + - "llama-cpp" + - "llama_cpp" + - "LLAMA_API_KEY" + - "ggml" + - "gguf" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/lmstudio.yaml b/pkg/providers/definitions/lmstudio.yaml new file mode 100644 index 0000000..57dc9c0 --- /dev/null +++ b/pkg/providers/definitions/lmstudio.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: lmstudio +display_name: LM Studio +tier: 8 +last_verified: "2026-04-05" +keywords: + - "lmstudio" + - "lm-studio" + - "LMSTUDIO_API_KEY" + - "localhost:1234" + - "lmstudio.ai" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/localai.yaml b/pkg/providers/definitions/localai.yaml new file mode 100644 index 0000000..b0f6896 --- /dev/null +++ b/pkg/providers/definitions/localai.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: localai +display_name: LocalAI +tier: 8 +last_verified: "2026-04-05" +keywords: + - "localai" + - "LOCALAI_API_KEY" + - "go-skynet" + - "localai.io" + - "localhost:8080" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/ollama.yaml b/pkg/providers/definitions/ollama.yaml new file mode 100644 index 0000000..ed8735f --- /dev/null +++ b/pkg/providers/definitions/ollama.yaml @@ -0,0 +1,19 @@ +format_version: 1 +name: ollama +display_name: Ollama +tier: 8 +last_verified: "2026-04-05" +keywords: + - "ollama" + - "OLLAMA_HOST" + - "OLLAMA_API_KEY" + - "OLLAMA_MODELS" + - "localhost:11434" + - "127.0.0.1:11434" + - "api/generate" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/vllm.yaml b/pkg/providers/definitions/vllm.yaml new file mode 100644 index 0000000..b360e05 --- /dev/null +++ b/pkg/providers/definitions/vllm.yaml @@ -0,0 +1,18 @@ +format_version: 1 +name: vllm +display_name: vLLM +tier: 8 +last_verified: "2026-04-05" +keywords: + - "vllm" + - "VLLM_API_KEY" + - "vllm-openai" + - "--api-key" + - "openai.api_server" + - "vllm.entrypoints" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/llamacpp.yaml b/providers/llamacpp.yaml new file mode 100644 index 0000000..89ba2e8 --- /dev/null +++ b/providers/llamacpp.yaml @@ -0,0 +1,18 @@ +format_version: 1 +name: llamacpp +display_name: llama.cpp server +tier: 8 +last_verified: "2026-04-05" +keywords: + - "llama.cpp" + - "llama-cpp" + - "llama_cpp" + - "LLAMA_API_KEY" + - "ggml" + - "gguf" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/lmstudio.yaml b/providers/lmstudio.yaml new file mode 100644 index 0000000..57dc9c0 --- /dev/null +++ b/providers/lmstudio.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: lmstudio +display_name: LM Studio +tier: 8 +last_verified: "2026-04-05" +keywords: + - "lmstudio" + - "lm-studio" + - "LMSTUDIO_API_KEY" + - "localhost:1234" + - "lmstudio.ai" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/localai.yaml b/providers/localai.yaml new file mode 100644 index 0000000..b0f6896 --- /dev/null +++ b/providers/localai.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: localai +display_name: LocalAI +tier: 8 +last_verified: "2026-04-05" +keywords: + - "localai" + - "LOCALAI_API_KEY" + - "go-skynet" + - "localai.io" + - "localhost:8080" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/ollama.yaml b/providers/ollama.yaml new file mode 100644 index 0000000..ed8735f --- /dev/null +++ b/providers/ollama.yaml @@ -0,0 +1,19 @@ +format_version: 1 +name: ollama +display_name: Ollama +tier: 8 +last_verified: "2026-04-05" +keywords: + - "ollama" + - "OLLAMA_HOST" + - "OLLAMA_API_KEY" + - "OLLAMA_MODELS" + - "localhost:11434" + - "127.0.0.1:11434" + - "api/generate" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/vllm.yaml b/providers/vllm.yaml new file mode 100644 index 0000000..b360e05 --- /dev/null +++ b/providers/vllm.yaml @@ -0,0 +1,18 @@ +format_version: 1 +name: vllm +display_name: vLLM +tier: 8 +last_verified: "2026-04-05" +keywords: + - "vllm" + - "VLLM_API_KEY" + - "vllm-openai" + - "--api-key" + - "openai.api_server" + - "vllm.entrypoints" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] From 367cfedb6fdc6c49462142f070acf610c3970bc8 Mon Sep 17 00:00:00 2001 From: salvacybersec Date: Sun, 5 Apr 2026 14:42:04 +0300 Subject: [PATCH 2/3] feat(03-05): add GPT4All, text-gen-webui, TensorRT-LLM, Triton, Jan AI provider YAMLs - 5 more Tier 8 self-hosted runtime definitions (keyword-only) - Completes 10 Tier 8 providers, satisfying PROV-08 - Dual-located in providers/ and pkg/providers/definitions/ --- pkg/providers/definitions/gpt4all.yaml | 16 ++++++++++++++++ pkg/providers/definitions/jan.yaml | 17 +++++++++++++++++ pkg/providers/definitions/tensorrt-llm.yaml | 17 +++++++++++++++++ pkg/providers/definitions/text-gen-webui.yaml | 17 +++++++++++++++++ pkg/providers/definitions/triton.yaml | 17 +++++++++++++++++ providers/gpt4all.yaml | 16 ++++++++++++++++ providers/jan.yaml | 17 +++++++++++++++++ providers/tensorrt-llm.yaml | 17 +++++++++++++++++ providers/text-gen-webui.yaml | 17 +++++++++++++++++ providers/triton.yaml | 17 +++++++++++++++++ 10 files changed, 168 insertions(+) create mode 100644 pkg/providers/definitions/gpt4all.yaml create mode 100644 pkg/providers/definitions/jan.yaml create mode 100644 pkg/providers/definitions/tensorrt-llm.yaml create mode 100644 pkg/providers/definitions/text-gen-webui.yaml create mode 100644 pkg/providers/definitions/triton.yaml create mode 100644 providers/gpt4all.yaml create mode 100644 providers/jan.yaml create mode 100644 providers/tensorrt-llm.yaml create mode 100644 providers/text-gen-webui.yaml create mode 100644 providers/triton.yaml diff --git a/pkg/providers/definitions/gpt4all.yaml b/pkg/providers/definitions/gpt4all.yaml new file mode 100644 index 0000000..0c7e8b9 --- /dev/null +++ b/pkg/providers/definitions/gpt4all.yaml @@ -0,0 +1,16 @@ +format_version: 1 +name: gpt4all +display_name: GPT4All +tier: 8 +last_verified: "2026-04-05" +keywords: + - "gpt4all" + - "nomic-ai" + - "GPT4ALL_API_KEY" + - "gpt4all.io" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/jan.yaml b/pkg/providers/definitions/jan.yaml new file mode 100644 index 0000000..22c983c --- /dev/null +++ b/pkg/providers/definitions/jan.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: jan +display_name: Jan AI +tier: 8 +last_verified: "2026-04-05" +keywords: + - "jan-ai" + - "janhq" + - "JAN_API_KEY" + - "jan.ai" + - "cortex-cpp" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/tensorrt-llm.yaml b/pkg/providers/definitions/tensorrt-llm.yaml new file mode 100644 index 0000000..0f48f97 --- /dev/null +++ b/pkg/providers/definitions/tensorrt-llm.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: tensorrt-llm +display_name: NVIDIA TensorRT-LLM +tier: 8 +last_verified: "2026-04-05" +keywords: + - "tensorrt-llm" + - "trtllm" + - "TRTLLM_API_KEY" + - "tensorrt_llm" + - "nvidia-nim" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/text-gen-webui.yaml b/pkg/providers/definitions/text-gen-webui.yaml new file mode 100644 index 0000000..43bfb70 --- /dev/null +++ b/pkg/providers/definitions/text-gen-webui.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: text-gen-webui +display_name: text-generation-webui (oobabooga) +tier: 8 +last_verified: "2026-04-05" +keywords: + - "text-generation-webui" + - "oobabooga" + - "TEXTGEN_API_KEY" + - "text-gen-webui" + - "localhost:5000" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/triton.yaml b/pkg/providers/definitions/triton.yaml new file mode 100644 index 0000000..c5b0dc8 --- /dev/null +++ b/pkg/providers/definitions/triton.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: triton +display_name: NVIDIA Triton Inference Server +tier: 8 +last_verified: "2026-04-05" +keywords: + - "triton-inference-server" + - "tritonserver" + - "TRITON_API_KEY" + - "triton_grpc" + - "v2/models" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/gpt4all.yaml b/providers/gpt4all.yaml new file mode 100644 index 0000000..0c7e8b9 --- /dev/null +++ b/providers/gpt4all.yaml @@ -0,0 +1,16 @@ +format_version: 1 +name: gpt4all +display_name: GPT4All +tier: 8 +last_verified: "2026-04-05" +keywords: + - "gpt4all" + - "nomic-ai" + - "GPT4ALL_API_KEY" + - "gpt4all.io" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/jan.yaml b/providers/jan.yaml new file mode 100644 index 0000000..22c983c --- /dev/null +++ b/providers/jan.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: jan +display_name: Jan AI +tier: 8 +last_verified: "2026-04-05" +keywords: + - "jan-ai" + - "janhq" + - "JAN_API_KEY" + - "jan.ai" + - "cortex-cpp" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/tensorrt-llm.yaml b/providers/tensorrt-llm.yaml new file mode 100644 index 0000000..0f48f97 --- /dev/null +++ b/providers/tensorrt-llm.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: tensorrt-llm +display_name: NVIDIA TensorRT-LLM +tier: 8 +last_verified: "2026-04-05" +keywords: + - "tensorrt-llm" + - "trtllm" + - "TRTLLM_API_KEY" + - "tensorrt_llm" + - "nvidia-nim" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/text-gen-webui.yaml b/providers/text-gen-webui.yaml new file mode 100644 index 0000000..43bfb70 --- /dev/null +++ b/providers/text-gen-webui.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: text-gen-webui +display_name: text-generation-webui (oobabooga) +tier: 8 +last_verified: "2026-04-05" +keywords: + - "text-generation-webui" + - "oobabooga" + - "TEXTGEN_API_KEY" + - "text-gen-webui" + - "localhost:5000" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/triton.yaml b/providers/triton.yaml new file mode 100644 index 0000000..c5b0dc8 --- /dev/null +++ b/providers/triton.yaml @@ -0,0 +1,17 @@ +format_version: 1 +name: triton +display_name: NVIDIA Triton Inference Server +tier: 8 +last_verified: "2026-04-05" +keywords: + - "triton-inference-server" + - "tritonserver" + - "TRITON_API_KEY" + - "triton_grpc" + - "v2/models" +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] From a75d81a8d64e49d8a1fdd140e814fb24bebb6111 Mon Sep 17 00:00:00 2001 From: salvacybersec Date: Sun, 5 Apr 2026 14:42:42 +0300 Subject: [PATCH 3/3] docs(03-05): complete Tier 8 self-hosted runtimes plan - SUMMARY.md documents 10 Tier 8 runtime providers - PROV-08 satisfied --- .../03-tier-3-9-providers/03-05-SUMMARY.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 .planning/phases/03-tier-3-9-providers/03-05-SUMMARY.md diff --git a/.planning/phases/03-tier-3-9-providers/03-05-SUMMARY.md b/.planning/phases/03-tier-3-9-providers/03-05-SUMMARY.md new file mode 100644 index 0000000..25b2b8a --- /dev/null +++ b/.planning/phases/03-tier-3-9-providers/03-05-SUMMARY.md @@ -0,0 +1,89 @@ +--- +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