From 5b5a47d3cc0318503eda992896f25e12803df371 Mon Sep 17 00:00:00 2001 From: salvacybersec Date: Sun, 5 Apr 2026 14:12:02 +0300 Subject: [PATCH] feat(02-04): add SambaNova, OctoAI, Friendli provider YAMLs - SambaNova with live verify endpoint (api.sambanova.ai/v1/models) - OctoAI generic-format with keyword anchors - Friendli with flp_ prefix pattern (medium confidence) - Dual-located in providers/ and pkg/providers/definitions/ - Completes PROV-02: all 14 Tier 2 providers defined --- pkg/providers/definitions/friendli.yaml | 23 ++++++++++++++++++++++ pkg/providers/definitions/octoai.yaml | 20 +++++++++++++++++++ pkg/providers/definitions/sambanova.yaml | 25 ++++++++++++++++++++++++ providers/friendli.yaml | 23 ++++++++++++++++++++++ providers/octoai.yaml | 20 +++++++++++++++++++ providers/sambanova.yaml | 25 ++++++++++++++++++++++++ 6 files changed, 136 insertions(+) create mode 100644 pkg/providers/definitions/friendli.yaml create mode 100644 pkg/providers/definitions/octoai.yaml create mode 100644 pkg/providers/definitions/sambanova.yaml create mode 100644 providers/friendli.yaml create mode 100644 providers/octoai.yaml create mode 100644 providers/sambanova.yaml diff --git a/pkg/providers/definitions/friendli.yaml b/pkg/providers/definitions/friendli.yaml new file mode 100644 index 0000000..1ed01d1 --- /dev/null +++ b/pkg/providers/definitions/friendli.yaml @@ -0,0 +1,23 @@ +format_version: 1 +name: friendli +display_name: Friendli +tier: 2 +last_verified: "2026-04-05" +keywords: + - "friendli" + - "friendli.ai" + - "FRIENDLI_TOKEN" + - "flp_" +patterns: + - regex: 'flp_[A-Za-z0-9]{20,}' + entropy_min: 3.5 + confidence: medium + - regex: '[A-Za-z0-9]{32,}' + entropy_min: 4.0 + confidence: low +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/octoai.yaml b/pkg/providers/definitions/octoai.yaml new file mode 100644 index 0000000..f7357e2 --- /dev/null +++ b/pkg/providers/definitions/octoai.yaml @@ -0,0 +1,20 @@ +format_version: 1 +name: octoai +display_name: OctoAI +tier: 2 +last_verified: "2026-04-05" +keywords: + - "octoai" + - "octo.ai" + - "OCTOAI_TOKEN" + - "OCTOAI_API_KEY" +patterns: + - regex: '[A-Za-z0-9\-_\.]{40,}' + entropy_min: 4.0 + confidence: low +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/pkg/providers/definitions/sambanova.yaml b/pkg/providers/definitions/sambanova.yaml new file mode 100644 index 0000000..6fb3dfb --- /dev/null +++ b/pkg/providers/definitions/sambanova.yaml @@ -0,0 +1,25 @@ +format_version: 1 +name: sambanova +display_name: SambaNova +tier: 2 +last_verified: "2026-04-05" +keywords: + - "sambanova" + - "sambanova.ai" + - "SAMBANOVA_API_KEY" + - "sambastudio" + - "api.sambanova.ai" +patterns: + - regex: '[a-f0-9\-]{36}' + entropy_min: 3.5 + confidence: low + - regex: '[A-Za-z0-9]{40,}' + entropy_min: 4.0 + confidence: low +verify: + method: GET + url: https://api.sambanova.ai/v1/models + headers: + Authorization: "Bearer {KEY}" + valid_status: [200] + invalid_status: [401, 403] diff --git a/providers/friendli.yaml b/providers/friendli.yaml new file mode 100644 index 0000000..1ed01d1 --- /dev/null +++ b/providers/friendli.yaml @@ -0,0 +1,23 @@ +format_version: 1 +name: friendli +display_name: Friendli +tier: 2 +last_verified: "2026-04-05" +keywords: + - "friendli" + - "friendli.ai" + - "FRIENDLI_TOKEN" + - "flp_" +patterns: + - regex: 'flp_[A-Za-z0-9]{20,}' + entropy_min: 3.5 + confidence: medium + - regex: '[A-Za-z0-9]{32,}' + entropy_min: 4.0 + confidence: low +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/octoai.yaml b/providers/octoai.yaml new file mode 100644 index 0000000..f7357e2 --- /dev/null +++ b/providers/octoai.yaml @@ -0,0 +1,20 @@ +format_version: 1 +name: octoai +display_name: OctoAI +tier: 2 +last_verified: "2026-04-05" +keywords: + - "octoai" + - "octo.ai" + - "OCTOAI_TOKEN" + - "OCTOAI_API_KEY" +patterns: + - regex: '[A-Za-z0-9\-_\.]{40,}' + entropy_min: 4.0 + confidence: low +verify: + method: GET + url: "" + headers: {} + valid_status: [] + invalid_status: [] diff --git a/providers/sambanova.yaml b/providers/sambanova.yaml new file mode 100644 index 0000000..6fb3dfb --- /dev/null +++ b/providers/sambanova.yaml @@ -0,0 +1,25 @@ +format_version: 1 +name: sambanova +display_name: SambaNova +tier: 2 +last_verified: "2026-04-05" +keywords: + - "sambanova" + - "sambanova.ai" + - "SAMBANOVA_API_KEY" + - "sambastudio" + - "api.sambanova.ai" +patterns: + - regex: '[a-f0-9\-]{36}' + entropy_min: 3.5 + confidence: low + - regex: '[A-Za-z0-9]{40,}' + entropy_min: 4.0 + confidence: low +verify: + method: GET + url: https://api.sambanova.ai/v1/models + headers: + Authorization: "Bearer {KEY}" + valid_status: [200] + invalid_status: [401, 403]