Skip to content

feat: add Runcrate provider - #188

Open
heydryft wants to merge 1 commit into
awarexone:mainfrom
heydryft:feat/runcrate-provider
Open

heydryft wants to merge 1 commit into
awarexone:mainfrom
heydryft:feat/runcrate-provider

Conversation

@heydryft

@heydryft heydryft commented Nov 8, 2026

Copy link
Copy Markdown

Thanks for the quick pace on the providers here: the Requesty and Fluxion entries made this one a straight copy of a pattern that already works.

Summary

Adds a runcrate provider to the standalone bughunter / brain.py LLM layer. Runcrate is an AI cloud with an OpenAI-compatible API (https://api.runcrate.ai/v1) that serves open models, so it plugs into the existing _chat_openai_compat path like the other gateways. It is opt-in: it is not in PROVIDER_PRIORITY, but a set RUNCRATE_API_KEY moves it to the front of auto-detect the way the other keyed providers do.

Type

  • New feature / scanner module

Changes

  • bughunter/brain.py: runcrate in DEFAULT_MODELS (Qwen/Qwen3-235B-A22B-Instruct-2507), PROVIDER_KEY_ENV, _init_provider (Bearer key from RUNCRATE_API_KEY, base https://api.runcrate.ai/v1), the OpenAI-compatible chat dispatch tuple, a short list_models starter list, and the module docstring.
  • bughunter/engine.py: setup wizard option 12, --provider help and setup --provider choices, key maps for setup and providers (tier pay-as-you-go), saved-key loading, and the docs header.
  • README.md provider table row and a CHANGELOG.md entry under Unreleased.
  • tests/test_brain_auto_detect.py: five tests (key jumps to the front of auto-detect, init sets base URL and Bearer header and default model, no key stays unavailable, opt-in only, chat uses the OpenAI-compatible path).

Test Plan

  • pytest tests/ passes locally: pytest -q gives 1158 passed (1153 on main before this change, plus the 5 new tests), Python 3.12.
  • pytest tests/test_brain_auto_detect.py -q: 20 passed.
  • No hardcoded targets, API keys, or real domain names
  • Scanner additions use [CONFIRMED] / [POSSIBLE] / [INFORMATIONAL] confidence states (n/a, no scanner changes)
  • New functionality has at least one regression test

The model ids in the default and starter list exist in GET https://api.runcrate.ai/v1/models today. I did not make a live chat call, so the request path is covered by the unit tests and the shared OpenAI-compatible code only.

Related Issue

None, this adds a provider.

Notes

Disclosure: I work on Runcrate.

This change was prepared with AI assistance (omp with Claude): the code, tests and this description were written with it, and the test commands above were run as part of preparing it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant