refactor(contracts): share unsupported interactor factory

Merged
TH
10h ago
+106-157

Summary

Give Web and Vega one unsupported-Interactor factory in the existing contracts package. Both platforms previously carried the same implementation. Preserve the 14 required members, typed error code, operation/platform wording, asynchronous rejection and absence of optional mechanics; each platform keeps its own supported overrides.

Nine files change. Remove both local implementations and the duplication suppression; move their test contracts beside the shared owner. Production source shrinks by 18 lines / 293 bytes, or 13 net lines including the required package export and generated export-snapshot declaration. Tests shrink from 125 to 87 lines while retaining the union of their assertions. CI measures installed/unpacked size −309 B and compressed download +91 B. No new dependency or linked issue. Scope includes only the necessary cross-package export.

Validation

  • Head a1d2fddce4ab1e8e8515290e9c5d41f5e32547a7; base eedc0df3d2168275dcd89ed21613c3362d595731.
  • AGENT_DEVICE_VITEST_MAX_WORKERS=1 pnpm check:affected --run --head a1d2fddce4ab1e8e8515290e9c5d41f5e32547a7: passed, exactCommit: true; receipt run-2LzHpc, 39 passed / 25 skipped / 2 deduplicated checks; 17,349 tests passed, 1 skipped.
  • Independent Apex review: no findings. Verified dependency direction, identical factory behavior, retained platform composition coverage, new test discovery, export snapshot and required-member type pin.
  • GitHub owns full coverage, integration, platform smoke and package-size evidence. Parked replay lanes were skipped locally. This relocation changes no live device behavior, so manual device verification is unnecessary.