Closes#30 (architecture review QRun-IO/qqq#1150, finding F5). qbit-marketing compiled against qbits.assistant.provider.* and engine.ModelPricing, which pulled in the whole assistant runtime.
What changes
New artifact qbit-assistant-provider-api. It holds the provider SPI and value types, and engine.ModelPricing. Package names are unchanged, so callers only change their Maven dependency.
Its only production dependency is jackson-annotations: no QQQ and no assistant runtime.
An ArchUnit test keeps it free of assistant internals.
One SPI change:AssistantProviderType's settings validation now takes ProviderSettings instead of the assistant_provider entity. Bedrock and Vertex are updated, and UPGRADE.md documents the change.
Dependencies:qbit-assistant and the anthropic, openai, bedrock and vertex modules depend on the API artifact. pgvector keeps qbit-assistant for VectorStore.
Tests: 302 in total, all green in ./mvnw verify (1 Docker-only skip). The API module covers 97% of instructions and 100% of classes.
For marketing#9
Depend on com.kingsrook.qbits:qbit-assistant-provider-api instead of qbit-assistant. No import changes are needed. It is available from the next qbit-assistant RC after this merges.
Closes #30 (architecture review QRun-IO/qqq#1150, finding F5). qbit-marketing compiled against `qbits.assistant.provider.*` and `engine.ModelPricing`, which pulled in the whole assistant runtime.
### What changes
- **New artifact `qbit-assistant-provider-api`.** It holds the provider SPI and value types, and `engine.ModelPricing`. Package names are unchanged, so callers only change their Maven dependency.
- SPI: `AssistantModelProvider`, `AssistantProviderType`, `ModelRequest`/`ModelResponse`/`ModelMessage`/`ModelPart`/`ModelUsage`/`ModelCapabilities`, `ModelProviderException`, `StreamHandle`/`CompletableStreamHandle`, `ProviderSettings`, `TrustedCaBundle`, `DiscoveredModel`, `HealthResult`, `EmbeddingRequest`/`EmbeddingResponse`, `SystemBlock`, `CacheHint`, `ModelToolDefinition`, `TokenCount`, `ModelEventListener`.
- Its only production dependency is `jackson-annotations`: no QQQ and no assistant runtime.
- An ArchUnit test keeps it free of assistant internals.
- **One SPI change:** `AssistantProviderType`'s settings validation now takes `ProviderSettings` instead of the `assistant_provider` entity. Bedrock and Vertex are updated, and UPGRADE.md documents the change.
- **Dependencies:** `qbit-assistant` and the anthropic, openai, bedrock and vertex modules depend on the API artifact. pgvector keeps `qbit-assistant` for `VectorStore`.
- **Tests:** 302 in total, all green in `./mvnw verify` (1 Docker-only skip). The API module covers 97% of instructions and 100% of classes.
### For marketing#9
Depend on `com.kingsrook.qbits:qbit-assistant-provider-api` instead of `qbit-assistant`. No import changes are needed. It is available from the next qbit-assistant RC after this merges.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #30 (architecture review QRun-IO/qqq#1150, finding F5). qbit-marketing compiled against
qbits.assistant.provider.*andengine.ModelPricing, which pulled in the whole assistant runtime.What changes
qbit-assistant-provider-api. It holds the provider SPI and value types, andengine.ModelPricing. Package names are unchanged, so callers only change their Maven dependency.AssistantModelProvider,AssistantProviderType,ModelRequest/ModelResponse/ModelMessage/ModelPart/ModelUsage/ModelCapabilities,ModelProviderException,StreamHandle/CompletableStreamHandle,ProviderSettings,TrustedCaBundle,DiscoveredModel,HealthResult,EmbeddingRequest/EmbeddingResponse,SystemBlock,CacheHint,ModelToolDefinition,TokenCount,ModelEventListener.jackson-annotations: no QQQ and no assistant runtime.AssistantProviderType's settings validation now takesProviderSettingsinstead of theassistant_providerentity. Bedrock and Vertex are updated, and UPGRADE.md documents the change.qbit-assistantand the anthropic, openai, bedrock and vertex modules depend on the API artifact. pgvector keepsqbit-assistantforVectorStore../mvnw verify(1 Docker-only skip). The API module covers 97% of instructions and 100% of classes.For marketing#9
Depend on
com.kingsrook.qbits:qbit-assistant-provider-apiinstead ofqbit-assistant. No import changes are needed. It is available from the next qbit-assistant RC after this merges.🤖 Generated with Claude Code