plugins library

The flutterware plugin contract.

Pure Dart on purpose — nothing here may import package:flutter. A project's tool/flutterware.dart runs under a plain dart run, and every type below has to survive the trip to a CLI, a file projection or an agent, not just to the GUI.

Classes

ActionOption
One legal value of a ActionParameterKind.choice parameter.
ActionParameter
One argument of a PluginAction.
Address
Where something is — the one identifier the GUI, fw, MCP and an artifact all carry.
AppStoreListing
See Listing.appStore.
Artifact
What a job hands back.
Assets
Everything a package's bundle resolves to — declared assets, the density variants beside them, the fonts, and whatever its dependencies contribute.
AssetsPackage
ChangesConfig
A project's ranking rules for the changes screen.
CommandRun
See StackRun.command.
DefineSource
Where a Knob's value or offered values are found.
Dependencies
Pub dependencies, per declared package.
DependenciesPackage
Device
One device an address may name.
DeviceInsets
A device's safe areas, as one value.
Devices
The devices worth offering, which is not all of them.
DevStack
A long-lived external thing whose lifecycle is delegated to project commands and whose state is polled — the docker stack, the emulator suite, the database container the app talks to in development.
Entrypoint
One main() a package can be launched from.
FilePerLocaleCatalog
See TranslationCatalog.new.
FlutterSdkSource
See DefineSource.flutterSdk.
Flutterware
Entry point for a project's tool/flutterware.dart:
FlutterwareConfig
The object a project's tool/flutterware.dart configures.
FuzzyMatch
A successful match: a score (higher is better) and the character indexes in the target that the query matched, for highlighting.
Guard
A plugin's objection to tearing a worktree down, raised before the checklist renders.
HostAddressesSource
See DefineSource.hostAddresses.
Knob
One knob an entry point's main takes, annotated.
LauncherIcon
The launcher-icon editor. Only meaningful for packages that are apps, so it deliberately offers no each — naming them is the point.
LauncherIconPackage
Lints
Lints — which analyzer rules this repo evaluated, and which it never did.
Listing
One store's listing: its device classes and its locales.
LocalesPerKeyCatalog
See TranslationCatalog.localesPerKey.
NativeSplash
The native splash screen: what flutter_native_splash will produce, on every surface and in both themes.
NativeSplashPackage
Pkg
A package in the project, declared once in tool/flutterware.dart and referenced by every plugin that operates on it.
PlayListing
See Listing.play.
Plugin
A plugin as a project declares it in tool/flutterware.dart.
PluginAction
Something a plugin can do, offered identically to a button, fw run, and an agent.
PluginChild
A sub-entry of a plugin — in practice, one of its packages.
PluginDeclaration
One declared plugin, as read back by the GUI.
PluginManifest
The decoded manifest.
PluginPackage
Base for a plugin's per-package entry.
PluginReport
Everything a plugin says about itself right now — all of it data.
PluginResult
What an action hands back when it hands back data rather than a file.
PluginView
A plugin's answer to "what are you showing right now?", as data.
PreviewCanvas
The devices one subtree of a package is meant to be seen on.
Previews
Previews — your @Previews, rendered in the embedded engine.
PreviewsPackage
Probe
How a DevStack finds out what state it is in.
ProducesArtifacts
A result that also produced files worth handing over as files.
ProjectIdentity
The package that stands for the whole repository, and its picture.
Renders
The app's render points — widgets and documents bound in a @RenderRegistry() registrar, rendered as SVG, PNG or PDF in the studio and from a server through fw render bundle.
RendersPackage
ReportsFailure
A result whose action succeeded while the thing it ran did not — a red scenario suite, a failing analysis, a build that produced diagnostics.
ResultField
ResultShape
The wire shape of what an action returns.
Run
Running the app on a device: what is connected, what is free, what is already running where — across every worktree of the repo, not just this one — and launching an entry point onto it.
RunPackage
Scenarios
Scenarios — app tests with per-step screenshots, run under FakeAsync in a directly-spawned flutter_tester.
ScenariosPackage
ScenarioTime
Scene
The scene editor: WYSIWYG scenes and the motion that animates them, in files this tool owns end to end (*.scene.dart).
ScenePackage
ScriptRun
See StackRun.script.
ScriptSource
See DefineSource.script.
SearchHit
One result: where it is, why it matched, and how well.
ServerInspection
Live inspection of the project's Dart servers: HTTP requests, SQL queries and logs, reported from inside the running process by package:flutterware/server.dart.
StackCommand
One more thing a DevStack's CLI can be asked to do.
StackRun
Something a DevStack runs: the probe, start, stop, a StackCommand.
StagedViewport
A screen to render a preview on, as it travels from the host to a harness.
Status
A plugin's whole state reduced to one line.
StatusBadge
A per-plugin or per-worktree glyph small enough for a tab or a switcher row.
StoreCanvas
The image a store receives, in physical pixels.
StoreShots
Store screenshots — the named shots of a package's scenarios, at the sizes two stores publish, in a tree an upload tool reads.
StoreShotsApp
One app: where its code is, what it is called, and where it ships to.
StoreTarget
One point of a listing, with both stores' vocabularies already resolved — what everything downstream of the declaration consumes.
TeardownStep
One checkable step in the "close this worktree" checklist.
TranslationCatalog
One catalog, as tool/flutterware.dart declares it.
Translations
Translations — which key is on which screen, and a picture of it.
TranslationsPackage
ViewField
A labelled value — the workhorse.
ViewItem
One row of a ViewItems list: a name plus optional trailing state.
ViewItems
A flat list — catalog entries, failing tests, running processes.
ViewNode
ViewSection
A titled group. The only node that nests.
ViewTable
A table with a header row. Columns are aligned in the text rendering.
ViewText
A free line of prose — a summary, a hint, an error message.
Worlds
Worlds: several people on your real server, set up by a script.
WorldScript
One world: its file, and what to call it.
WorldsPackage

Enums

ActionParameterKind
What a parameter accepts — the smallest vocabulary that lets a renderer build an input and an agent know what is legal.
AppStoreClass
A display class of Apple's, and the device that renders it.
DeviceKind
What silhouette to draw around a screen, if any.
DevicePlatform
Ours rather than TargetPlatform, which is Flutter-only. Translated at the one place a frame is drawn.
GuardLevel
How strongly a guard objects to closing a worktree.
KeyboardMode
Whether the software keyboard follows the app, or the person looking at it.
KeyboardVariant
Which keyboard a field asked for — what a platform draws, not only how tall it is.
PlayClass
A device class of Google Play's, the device that renders it, and the canvas it has to land on.
ProbeShape
How a Probe's output is read.
RunPlatform
What an Entrypoint can run on — one of Flutter's platforms, or a shorthand for a group of them.
ScenarioNetwork
ScreenOrientation
Which way up a device is — an axis applied on top of a Device, not a device of its own.
SearchReason
What a hit is — the chip on a result row.
StatusBadgeKind
How a badge renders: nothing, a coloured dot, or a small count.
StoreLayout
How the exported tree is laid out.
TeardownPhase
When a teardown step runs relative to the others. Steps run in phase order; the built-in "remove the git worktree" step always runs last.
Tone
Severity of a piece of plugin state, independent of how it is rendered.

Constants

fitDeviceId → const String
What ?device= means "no device at all": the panel itself, at whatever size the window happens to be.
foldersConfigKey → const String
The config key a plugin sets to true when it addresses a package's folders apart, which is what lets one package be declared once per folder.
manifestVersion → const int
What tool/flutterware.dart prints: the project's plugin declarations.
previewPanelHeight → const int
previewPanelWidth → const int
The rectangle an entry under no canvas is framed as, in logical pixels at a ratio of 1.

Properties

deviceIds → List<String>
Every value ?device= accepts, fitDeviceId first.
no setter
keyboardModeIds → List<String>
Every value ?keyboard= accepts, the default first.
no setter
orientationIds → List<String>
Every value ?orientation= accepts, portrait first.
no setter

Functions

canvasFor(List<PreviewCanvas> canvases, String path) → PreviewCanvas?
The canvas that applies to path, or null when none of them does.
deviceById(String id) → Device?
The device id names, or null for fitDeviceId and for anything unknown — which the caller must tell apart, because one is a choice and the other is a mistake. See isDeviceId.
fuzzyMatch(String query, String text) → FuzzyMatch?
Case-insensitive subsequence match of query against text. Null when not every query character is found in order.
isDeviceId(String id) → bool
Whether id is a value this build accepts at all.
isKeyboardModeId(String id) → bool
Whether id is a keyboard mode this build accepts.
isOrientationId(String id) → bool
Whether id is an orientation this build accepts.
keyboardModeById(String id) → KeyboardMode?
The keyboard mode id names, or null for anything unknown.
keyboardVariantForName(String name, {bool signed = false}) → KeyboardVariant
The variant a field asking for name gets.
orientationById(String id) → ScreenOrientation?
The orientation id names, or null for anything unknown.
searchReport(PluginReport report, String query, {required String worktree}) → List<SearchHit>
Everywhere in report you could go that matches query, without asking the plugin for anything.

Typedefs

ValueSource = DefineSource
The new name for DefineSource, which no longer only feeds defines.