universal_automation_interface 0.3.0
universal_automation_interface: ^0.3.0 copied to clipboard
Pure-Dart contracts for the universal automation family: endpoints, session handles, drivers, actions, snapshots, fail-closed specs, and structured events. No Flutter, no protocol clients.
Changelog #
0.3.0 #
- Coordinate-tier actions join the sealed action set:
ClickAtAction,MoveAction,DragAction(ADR 0053), plusSetValueActionandElementAction(ADR 0064) — the semantic-write path. Breaking for exhaustive switches overAutomationAction(hence the minor bump in the 0.x range), which is whyflutter_mcp_harness7.0.0 — published against this revision — failed to compile against pub.dev's 0.2.0. - Harness-facing contract promotions (ADR 0004):
SessionBinding,ResolvedSession, and theDriverFactorytypedef move here so embedders bind sessions and register drivers against the interface alone;SessionBinding.fromJsongains a transport-name parser. - Capability-granular OS facades:
OsAppCatalog,OsActivator,OsWindowCapture,OsDisplayCapturewith neutralOsAppRecord/OsWindowRecordtypes — compositions cast to contracts, never to concrete drivers. DriverUnsupportedExceptioncarries optional structureddetails.
0.2.0 #
- Surface action catalog (the
InvokeActiontier): the dynamic-registry shape for drivers — framework- and app-specific verbs no longer require growing the universal verb set.- New sealed
InvokeAction(name, args): invoke a named action the surface under test registered for automation. - New
SurfaceActionDescriptor(name, description, JSON-Schema-subsetinputSchemacarried as plain data — the family depends on no schema library) and the opt-inAutomationActionCataloginterface (actions()); implementing it is non-breaking. CdpDriverimplements the catalog over the page'swindow.__mcpActionsregistry, so any web surface (Jaspr, plain JS, Flutter web) composes named, async handlers; newCdpPage.evaluateAsyncawaits Promise results and surfaces JS rejections instead of silentundefined.- WebDriver, AT-SPI, UIA, and AX drivers refuse
InvokeActionloudly — those tiers have no surface action registry. - Breaking: exhaustive switches over
AutomationActionmust handleInvokeAction(all family drivers do; behavioral synthesis refuses it — catalog actions carry their own dispatch).
- New sealed
- Behavior dynamics contract (ADR 0044): declarative, composable input
profiles for humans and agents.
- New
behaviormodule:BehaviorSteptimed input-step vocabulary,BehaviorPlan,BehaviorProfile(facets:ActionRhythm,ReactionDelay,SessionPacing,PointerMotion,KeystrokeCadence), priors (agentImmediatedegenerate profile,humanPrior(seed)hyper-prior),synthesizeBehavior/projectBehaviordeterministic synthesis,auditBehaviorself-consistency reporting,BehaviorReceiptsencoders, canonical JSON + SHA-256 hashing, and the pinnedxoshiro128**/splitmix32 PRNG. - New
BehavioralDriveropt-in capability surface (performWithwith typedBehaviorOutcome),ProfiledDriverwrapper, andDriverCapabilities.behaviorDynamics(defaultfalse;fullsets it). - Breaking:
DriverCapabilities.fullnow setsbehaviorDynamics: true; drivers claimingfullwithout implementingBehavioralDrivershould declare an explicit capability set instead.
- New