Skip to content

refactor(plugins): extract the provider plugins into a private package - #3712

Merged
thymikee merged 2 commits into
mainfrom
t3/plugins-extraction-round3
Oct 16, 2026
Merged

thymikee merged 2 commits into
mainfrom
t3/plugins-extraction-round3

Conversation

@thymikee

@thymikee thymikee commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Summary

Extract src/plugins (manifest, store, host, load, connection) into the private @agent-device/plugins package. 30 files, +172/−66.

  • ProviderPluginHost is owned by the package; agent-device/plugins re-exports it unchanged.
  • RemoteConfigProfile is declared once in contracts/remote-config-fields and re-exported by src/remote/remote-config-schema.ts.
  • The loader reads CloudWebDriverProviderOptions from provider-webdriver/plugin; dynamic imports and cleanup are unchanged.
  • The plugins layering zone stays rank 4. No allowlist or baseline change.
  • The reserved-provider assertion moved to the root provider-device-runtimes test, which owns that composition.

Remote overlap: #3711 (unmerged) edits src/remote. This PR touches only remote-config-schema.ts and plugins/connection.ts type imports; reconcile on whichever lands second.

Validation

Head 03f44c4f11 on b7c93e3a37. Pinned pnpm 11.17.0, under the shared extraction lock.

  • AGENT_DEVICE_VITEST_MAX_WORKERS=1 pnpm check:affected --run: exit 0 (1852 files, 15581 tests passed, 1 skipped).
  • Also green: pnpm typecheck, pnpm depgraph, pnpm check:layering, pnpm check:production-exports, pnpm check:fallow, focused plugin tests.
  • Earlier runs with default workers failed platform-android/fill-verification.test.ts:144. That file is untouched by this PR, and the same failure reproduces on main at 6e0844ff. It did not recur at one worker; I did not fix it here.
  • Not run: CI Integration and Coverage jobs.

View guided diff Turn on auto-fix

Move manifest, store, host, load and connection into @agent-device/plugins.
ProviderPluginHost is owned by the package and re-exported by agent-device/plugins.
RemoteConfigProfile is declared once in contracts and re-exported by the remote
schema; the webdriver plugin options come from provider-webdriver.
Expose the five production subpaths, reference the package from the typecheck and
SDK example projects, update the fallow loader-path comment, and accept the type
re-export form in the installed-package host declaration assertion.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 30 files

View guided diff | Turn on auto-fix | Re-trigger cubic

@github-actions

Copy link
Copy Markdown
Contributor

Size Report

Metric Base Current Diff
Installed (including dependencies) 5.29 MB 5.29 MB +256 B
Package (unpacked) 5.29 MB 5.29 MB +256 B
Package (download) 1.59 MB 1.59 MB +53 B

Startup median (7 runs, lower is better):

Scenario Base Current Diff
CLI --version 28.2 ms 27.9 ms -0.2 ms
CLI --help 78.7 ms 83.4 ms +4.7 ms

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-10-16 13:47 UTC

@thymikee

Copy link
Copy Markdown
Member Author

This PR is ready at 03f44c4. The provider plugin extraction looks correct, and I found no code problems. Not blocking, and fine to take or leave: the lockfile diff adds 24 unrelated deprecated: yuku-codegen/yuku-parser lines beside the new packages/plugins importer (regenerating with the pinned pnpm would keep only the @agent-device/plugins entries), and remote-config-schema.ts now only passes RemoteConfigProfile through, so src/sdk/remote-config.ts could import it from @agent-device/contracts/remote and the pass-through could go, or that can wait for the #3711 reconciliation. I did not run the build or the installed-package integration test, and I did not rerun the local gates you reported. Both Smoke Tests jobs were still pending when I checked, and the diff touches that route only through bundling of the @agent-device/plugins/load import. No conflicts. Smoke Tests need to finish green before merge, and then the remote-config-schema.ts overlap with #3711 should be reconciled in whichever PR lands second.

@thymikee thymikee added the ready-for-human Valid work that needs human implementation, judgment, or maintainer merge label Oct 16, 2026
@thymikee
thymikee merged commit 9ca333d into main Oct 16, 2026
24 checks passed
@thymikee
thymikee deleted the t3/plugins-extraction-round3 branch October 16, 2026 13:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human Valid work that needs human implementation, judgment, or maintainer merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant