SkillExecutorProvider class abstract

A pluggable skill executor — the seam between core and the opt-in flutter_edge_ai_agent package's agentic "skills" runtime.

Core stays dependency-free: it knows nothing about webview_flutter, url_launcher, calendar/notification plugins, or the agent's Skill / SkillResult types. It only holds this minimal contract so it can plumb the skillExecutors: list registered via FlutterEdgeAi.initialize and probe it by skill type (a kebab-case string such as 'text', 'js', 'intent', 'mcp').

The concrete SkillExecutor base class and the sealed SkillResult value types (Text/Image/Widget/Webview/Error) live in flutter_edge_ai_agent, where they implements SkillExecutorProvider. Selection mirrors InferenceEngineProvider / EmbeddingBackendProvider: the registry probes the registered executors and the highest-priority one whose canExecute returns true for the skill type wins (first-registered breaks ties).

Passed to FlutterEdgeAi.initialize via skillExecutors:.

Constructors

SkillExecutorProvider()

Properties

hashCode → int
The hash code for this object.
no setterinherited
name → String
Human-readable name for diagnostics / error messages (e.g. 'JsSkill').
no setter
priority → int
Selection precedence on overlap. In-package executors use 0; a third party raises this to take precedence for a skill type both could handle.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

canExecute(String skillType) → bool
Whether this executor can run a skill of skillType (the kebab-case skill type id, e.g. 'text', 'js', 'intent', 'mcp'). Probed by the registry. Kept type-agnostic (a plain String) so core carries no Skill type and no agent-package dependency.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited