AbstractProtectedcontextAbstract ReadonlyKeyStable identifier for this provider (e.g. 'agent-mentions'). Used as the
ClassFactory registration key and by ExcludedTriggerKeys filtering.
Abstract ReadonlyModeHuman label for the palette's mode badge while this provider is active.
ReadonlyPlaceholderPlaceholder shown in the input while this provider's trigger is active.
ReadonlyPriorityOrdering weight — higher runs first. When multiple providers share a TriggerChar, results are concatenated in priority order (then Key order).
Abstract ReadonlyTriggerThe single character that opens this provider's autocomplete (e.g. '@').
Called by the palette after discovery, before any GetSuggestions call, with the Angular services providers may need (ClassFactory construction has no DI). Override to validate required members; keep it idempotent.
Suggestions for the EMPTY query in this mode (recents, hints). Default: none. The palette shows these when the trigger is active but nothing is typed yet.
AbstractGetReturns the suggestions for the current query. Called on every keystroke after an active trigger; implementations should be fast (serve from warm caches) and must never throw — return [] on failure.
Optional warm-up hook, invoked once by the editor when it initializes with this provider active. Default is a no-op; override to pre-load caches so the first keystroke is fast. Must be safe to call repeatedly and concurrently.
Pluggable mode for the Explorer command palette (the Ctrl+K omnibar).
Registers under its OWN ClassFactory base —
@RegisterClass(OmnibarProvider, '<key>')— deliberately separate from the composer'sComposerTriggerProviderdiscovery, so palette semantics (e.g. '#' = jump to a specific record) never leak into text editors' mention discovery (where '#' means something else). The shape is shared with the composer contract for consistency; the palette is the only consumer of this base.TriggerCharconventions: '' (empty string) = the DEFAULT mode consulted when the input has no trigger prefix (global search); any single char ('#', '/', '@', …) claims that prefix. OpenApps extend the palette by registering additional subclasses — no core changes required.