Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/Exorust/Adkit-MCP
/ types & classes
Types & classes
46 in github.com/Exorust/Adkit-MCP
⨍
Functions
155
◇
Types & classes
46
↓ 15 callers
Class
MatchConstraints
Typed constraints for ad matching — no raw dict filters.
src/ad_injector/models/mcp_requests.py:21
↓ 11 callers
Class
PlacementContext
Where the ad will be rendered.
src/ad_injector/models/mcp_requests.py:8
↓ 9 callers
Class
PolicyEngine
Filter vector hits by policy rules. Rules: 1. age_restricted + not age_restricted_ok -> drop 2. sensitive + not sensitive_ok -> drop
src/ad_injector/domain/policy_engine.py:22
↓ 5 callers
Class
FieldFilter
A single typed filter condition on a payload field.
src/ad_injector/domain/filters.py:25
↓ 3 callers
Class
FastEmbedProvider
Implements ``EmbeddingProvider`` using local FastEmbed models.
src/ad_injector/adapters/fastembed_provider.py:10
↓ 3 callers
Class
MatchRequest
Input DTO for the ads.match tool.
src/ad_injector/models/mcp_requests.py:54
↓ 3 callers
Class
QdrantVectorStore
Concrete VectorStorePort backed by Qdrant.
src/ad_injector/adapters/qdrant_vector_store.py:24
↓ 3 callers
Class
TargetingEngine
Translate typed MatchConstraints into a domain VectorFilter. Rules (see match_semantics): - topics/verticals: any_of (intersection ANY) -
src/ad_injector/domain/targeting_engine.py:12
↓ 3 callers
Class
VectorHit
A single result from a vector similarity query.
src/ad_injector/ports/vector_store.py:12
↓ 2 callers
Class
MatchService
Orchestrates the full ad-match pipeline.
src/ad_injector/services/match_service.py:29
↓ 1 callers
Class
AdCandidate
A single ad candidate returned by ads.match.
src/ad_injector/models/mcp_responses.py:8
↓ 1 callers
Class
FakeEmbeddingProvider
Always returns FIXED_VECTOR, no model loaded.
tests/test_match_service.py:28
↓ 1 callers
Class
FakeVectorStore
Returns canned hits; records calls for assertions.
tests/test_match_service.py:67
↓ 1 callers
Class
IndexService
Manage the ads collection and ad lifecycle.
src/ad_injector/services/index_service.py:17
↓ 1 callers
Class
MatchResponse
Output DTO for the ads.match tool.
src/ad_injector/models/mcp_responses.py:21
↓ 1 callers
Class
RuntimeSettings
All configuration for MCP runtime, validated at startup.
src/ad_injector/config/runtime.py:23
↓ 1 callers
Class
UuidMatchIdProvider
Uses uuid5(request_id, ad_id) for deterministic match IDs.
src/ad_injector/ports/id_gen.py:35
↓ 1 callers
Class
UuidRequestIdProvider
Uses uuid4 for request IDs.
src/ad_injector/ports/id_gen.py:28
↓ 1 callers
Class
VectorFilter
Typed filter for vector queries. Contains explicit ``must`` and ``must_not`` lists of typed field conditions. The Qdrant adapter is responsi
src/ad_injector/domain/filters.py:33
Class
Ad
Complete ad schema for Pinecone storage.
src/ad_injector/models/ad.py:22
Class
AdPolicy
Policy flags for an ad.
src/ad_injector/models/ad.py:15
Class
AdTargeting
Targeting configuration for an ad.
src/ad_injector/models/ad.py:6
Class
EmbeddingProvider
Generate a vector embedding from text.
src/ad_injector/ports/embedding.py:9
Class
FilterOp
Supported filter operators.
src/ad_injector/domain/filters.py:15
Class
MatchIdProvider
Generate a deterministic match ID from request_id + ad_id.
src/ad_injector/ports/id_gen.py:17
Class
McpMode
src/ad_injector/config/runtime.py:18
Class
RequestIdProvider
Generate a unique request ID.
src/ad_injector/ports/id_gen.py:10
Class
TestEnginesCalled
TargetingEngine.build_filter and PolicyEngine.apply must be called.
tests/test_match_service.py:233
Class
TestExclusionsSemantics
Exclusions always enforced when provided.
tests/test_match_semantics.py:63
Class
TestLocaleSemantics
Locale: exact match, or empty/[''] as global.
tests/test_match_semantics.py:43
Class
TestMatchId
match_id must be deterministic: uuid5(request_id, ad_id).
tests/test_match_service.py:162
Class
TestMatchServicePipeline
Verify the end-to-end MatchService.match() pipeline with fakes.
tests/test_match_service.py:116
Class
TestPlacementSemantics
Placement/surface: annotate only, no filter.
tests/test_match_semantics.py:73
Class
TestPolicyAgeRestrictedGating
Age-restricted: default deny, allow when age_restricted_ok.
tests/test_policy_engine.py:63
Class
TestPolicyBlockedKeywords
Blocked keywords vs context_text (token/substring match).
tests/test_policy_engine.py:86
Class
TestPolicyFiltering
PolicyEngine must remove ineligible ads post-query.
tests/test_match_service.py:184
Class
TestPolicySensitiveGating
Sensitive: default deny, allow when sensitive_ok.
tests/test_policy_engine.py:40
Class
TestScoreClamping
Scores should be clamped to [0, 1].
tests/test_match_service.py:303
Class
TestTargetingEngineEmptyConstraints
Empty constraints still returns VectorFilter (never None).
tests/test_targeting_engine.py:76
Class
TestTargetingEngineExclusions
Exclude lists always applied when non-empty.
tests/test_targeting_engine.py:51
Class
TestTargetingEngineLocale
Locale match + global fallback (any_of [X, '']).
tests/test_targeting_engine.py:17
Class
TestTargetingEngineTopicsVerticals
Topics/verticals: any_of (intersection ANY).
tests/test_targeting_engine.py:33
Class
TestTargetingFilter
TargetingEngine should produce correct domain VectorFilter.
tests/test_match_service.py:257
Class
TestTopicsSemantics
Topics: ad.topics intersects request.topics (ANY).
tests/test_match_semantics.py:17
Class
TestVerticalsSemantics
Verticals: same as topics, intersection ANY.
tests/test_match_semantics.py:31
Class
VectorStorePort
Read/write interface for the vector database.
src/ad_injector/ports/vector_store.py:22