Skip to content

Public API classes and interfaces

PHP types you may type-hint, extend, or instantiate from contrib. If a class or interface is not listed here, treat it as @internal. See API stability for the full policy, method contracts, plugin IDs, hooks, and config names.

Concrete service classes such as AiContextSelectionFactory and AiContextScopeSubscriptionFormBuilder are @internal. Type-hint the interfaces.

Services

Type Kind
Drupal\ai_context\Service\AiContextSelectionFactoryInterface Interface
Drupal\ai_context\Service\AiContextScopeSubscriptionFormBuilderInterface Interface

Selection and consumer models

Type Kind
Drupal\ai_context\Model\AiContextConsumerId Class
Drupal\ai_context\Model\AiContextConsumerInstance Class
Drupal\ai_context\Model\AiContextConsumerInstanceCollection Class
Drupal\ai_context\Model\AiContextConsumerResolvedConfig Class
Drupal\ai_context\Model\AiContextConsumerStoredConfig Class
Drupal\ai_context\Model\AiContextSelection Class
Drupal\ai_context\Model\AiContextSelectionParams Class
Drupal\ai_context\Model\AiContextSelectionResult Class

AiContextConsumerId::isValidType() and SEPARATOR are not public. Build IDs with fromParts() / fromString().

Provider-request snapshot

Passed to consumer type resolveConsumerId().

Type Kind
Drupal\ai_context\Model\AiContextProviderRequestContext Class
Drupal\ai_context\Model\AiContextProviderRequestFileDescriptor Class
Drupal\ai_context\Model\AiContextProviderRequestMessage Class

Invocation result

Type Kind
Drupal\ai_context\Model\AiContextInvocationResult Class

Item priority

Type Kind
Drupal\ai_context\AiContextItemPriority Class

Context item entity

Type Kind
Drupal\ai_context\Entity\AiContextItem Class

AiContextUsage is @internal. Do not depend on it.

Selector pipeline events

Type Kind
Drupal\ai_context\Event\AiContextSelectionEvents Class
Drupal\ai_context\Event\AiContextSelectionItemsSelectedEvent Class
Drupal\ai_context\Event\AiContextSelectionTextRenderedEvent Class

Scheduler item events

Type Kind
Drupal\ai_context\Event\SchedulerAiContextItemEvents Class

Listeners receive Scheduler's SchedulerEvent. The Scheduler plugin PHP class is @internal.

Scope plugins

Type Kind
Drupal\ai_context\Attribute\AiContextScope Class
Drupal\ai_context\Plugin\AiContextScope\AiContextScopeInterface Interface
Drupal\ai_context\Plugin\AiContextScope\AiContextScopeBase Class
Drupal\ai_context\Plugin\AiContextScope\AiContextScopeCacheableMetadataInterface Interface
Drupal\ai_context\Plugin\AiContextScope\AiContextScopeStoredValueInterface Interface
Drupal\ai_context\Plugin\AiContextScope\AiContextScopeValueMatchingInterface Interface

Type-hint AiContextScopeInterface. The shipped scope plugin classes are not @internal, but they are implementations. Their plugin IDs are the public config identifiers.

The scope plugin manager is @internal.

Consumer type plugins

Type Kind
Drupal\ai_context\Attribute\AiContextConsumerType Class
Drupal\ai_context\Plugin\AiContextConsumerType\AiContextConsumerTypeInterface Interface
Drupal\ai_context\Plugin\AiContextConsumerType\AiContextConsumerTypeBase Class
Drupal\ai_context\Plugin\AiContextConsumerType\AiContextConsumerTypeAgent Class

AiContextConsumerTypeAgent::isLoopAware() is public for the Agent type only. Type-hint AiContextConsumerTypeInterface for generic consumer-type code.

The Automator plugin class is a shipped implementation. Its plugin ID automator is the public config identifier.

The consumer type manager, router, and route result are @internal.

Function call opt-in

Type Kind
Drupal\ai_context\Plugin\AiFunctionCall\AiContextInheritsConsumerIdInterface Interface

The function-call PHP classes are @internal. The plugin IDs are public config.

Not listed here

These are public, but they are not PHP classes or interfaces:

  • Service IDs ai_context.selection_factory and ai_context.scope_subscription_form
  • Function-call, Views field, formatter, and Scheduler plugin IDs
  • Documented hooks and alter hooks
  • Config object and permission names

See API stability, Hooks, Services, and Function calls.