refactor(providers): depend only on qbit-assistant-provider-api (#9) #12

Merged
KofTwentyTwo merged 2 commits from feature/arch-provider-api into develop 2026-10-14 13:27:25 +00:00
KofTwentyTwo commented 2026-10-14 13:00:11 +00:00 (Migrated from github.com)

Summary

Closes #9 (architecture review QRun-IO/qqq#1150, finding F5: marketing depended on qbit-assistant internals).

  • Dependencies.
    • Compile: qbit-assistant-provider-api (the provider.* SPI and ModelPricing) and qbit-assistant-provider-openai, both pinned to 0.1.0-RC.11.
    • No qbit-assistant dependency at all, test scope included. Tests use a local ScriptedModelProvider double.
    • Installing marketing no longer installs the assistant runtime, tables or routes; the dependency tree confirms it.
  • Provider. The local agent/provider/OpenAiCompatibleModelProvider is deleted in favour of the published one.
    • Host change: configure it with ProviderSettings (base URL, a resolved key, model).
    • Host change: its provider name is openai-compatible, so Marketing Policy provider overrides must use that name.
    • See README and docs/OPERATIONS.md.
  • Also:
    • QQQ 4.1.0-RC.6.
    • qbit-build-parent 2.1.0 with the guardrails enforced and strict raw-route mode.
    • The provider-api packages (com.kingsrook.qbits.assistant.provider, …assistant.engine) and qbit-assistant-provider-openai are explicitly allow-listed in qbit.guardrails.allowedApiPackages/allowedQbitArtifacts.

Draft until qbit-assistant 0.1.0-RC.11 is on Central

Verified locally against assistant develop, installed as 0.1.0-ARCHLOCAL-SNAPSHOT:

  • mvnw -B clean verify passes: 64 tests, coverage 79.66% instructions and 99.11% classes;
  • G1, G3 and G4 pass;
  • G7 flags only the local SNAPSHOT, which is expected and goes away with RC.11.

🤖 Generated with Claude Code

## Summary Closes #9 (architecture review QRun-IO/qqq#1150, finding F5: marketing depended on qbit-assistant internals). - **Dependencies.** - Compile: `qbit-assistant-provider-api` (the `provider.*` SPI and `ModelPricing`) and `qbit-assistant-provider-openai`, both pinned to **0.1.0-RC.11**. - **No `qbit-assistant` dependency at all**, test scope included. Tests use a local `ScriptedModelProvider` double. - Installing marketing no longer installs the assistant runtime, tables or routes; the dependency tree confirms it. - **Provider.** The local `agent/provider/OpenAiCompatibleModelProvider` is deleted in favour of the published one. - **Host change:** configure it with `ProviderSettings` (base URL, a resolved key, model). - **Host change:** its provider name is `openai-compatible`, so Marketing Policy provider overrides must use that name. - See README and docs/OPERATIONS.md. - **Also:** - QQQ **4.1.0-RC.6**. - `qbit-build-parent` **2.1.0** with the guardrails enforced and strict raw-route mode. - The provider-api packages (`com.kingsrook.qbits.assistant.provider`, `…assistant.engine`) and `qbit-assistant-provider-openai` are explicitly allow-listed in `qbit.guardrails.allowedApiPackages`/`allowedQbitArtifacts`. ## Draft until qbit-assistant 0.1.0-RC.11 is on Central Verified locally against assistant `develop`, installed as `0.1.0-ARCHLOCAL-SNAPSHOT`: - `mvnw -B clean verify` passes: 64 tests, coverage 79.66% instructions and 99.11% classes; - G1, G3 and G4 pass; - G7 flags only the local SNAPSHOT, which is expected and goes away with RC.11. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
KofTwentyTwo commented 2026-10-14 13:18:34 +00:00 (Migrated from github.com)

qbit-assistant 0.1.0-RC.11 is on Central. Verified with ./mvnw -B clean verify: 68 tests pass, and every guardrail passes under enforcement, G7 included. develop is merged in, which brings the qbit-email transport (#11). qbit-email is a new cross-qbit implementation dependency, so it is allow-listed temporarily and explicitly in the pom; #13 tracks the proper qbit-email API. Marked ready.

qbit-assistant 0.1.0-RC.11 is on Central. Verified with `./mvnw -B clean verify`: 68 tests pass, and every guardrail passes under enforcement, G7 included. develop is merged in, which brings the qbit-email transport (#11). qbit-email is a new cross-qbit implementation dependency, so it is allow-listed **temporarily and explicitly** in the pom; #13 tracks the proper qbit-email API. Marked ready.
Sign in to join this conversation.