mirror of
https://github.com/callstack/agent-device.git
synced 2026-09-14 20:06:34 +08:00
03c3984066
* perf(contracts): granularize entry surfaces so hub importers stop evaluating the facade clump
`@agent-device/contracts/platform` unions 32 vocabulary modules and
`/interaction` another 18. A file that value-imports either evaluates the whole
union to reach one function, and because permanent hubs sat behind them —
`command-descriptor/registry.ts`, `core/capabilities.ts`,
`interactors/register-builtins.ts`, `command-descriptor/platform-execution-entry.ts` —
that union rode into roughly half the unit suite's test graphs.
Give every vocabulary module its own entry subpath and move all value-importers
onto the module that owns the symbol. Type-only importers are left alone: `import
type` is erased, so it already evaluated nothing.
Measured with the #1950 eager-import-closure walker over all 974 unit-core test
files, against base e5bfde3d1:
aggregate eager module evaluations 143,248 -> 129,738 (-9.4%)
facades/platform.ts carried by 466 -> 1 test graphs
facades/interaction.ts carried by 451 -> 0 test graphs
registry.ts 105 -> 66
capabilities.ts 113 -> 76
register-builtins.ts 111 -> 73
platform-execution-entry.ts 43 -> 3
dispatch.ts 134 -> 100
Three gate adjustments the split forces:
- R11's pinned contracts subpath list grows to the new entries, and the resolver
test's "must not resolve" example moves to `./clipboard`, since `./gesture-plan`
is now a real entry.
- R16 anchored the record-runtime join on the literal `contracts/platform`
specifier. It now accepts any contracts entry — the assertion's provenance is
what the rule pins, not which subpath carried it.
- `gesture-plan.ts` became an entry target, and the no-bare-star rule rejects the
`export * from './gesture-plan-types.ts'` it carried. Its one internal consumer
now imports the owning module directly.
Both facades keep their type re-exports for the ~490 type-only importers, so
every symbol on them now reads as value-unused; one fallow entry records that
and names retiring them as the follow-up.
Closes #1959
* test(contracts): text-filter the facade scan before parsing
The repo-wide scan parsed all ~3000 sources, which the coverage lane's
instrumentation pushed past both the 5s test timeout and the 2.5s slow-test
budget. A file that never names the specifier cannot import it, so filter on the
text first and parse only the ~490 candidates.
Non-vacuity moves with it: instead of counting narrow imports across every file,
require that the surviving type-only importers were seen and classified as
erased — which an empty scan cannot satisfy.
293 lines
9.2 KiB
JSON
293 lines
9.2 KiB
JSON
{
|
|
"name": "@agent-device/contracts",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "Shared agent-device command, snapshot, provider, and platform vocabulary. Internal workspace package bundled into the published agent-device artifact.",
|
|
"dependencies": {
|
|
"@agent-device/kernel": "workspace:*"
|
|
},
|
|
"exports": {
|
|
"./alert-contract": {
|
|
"types": "./src/alert-contract.ts",
|
|
"default": "./src/alert-contract.ts"
|
|
},
|
|
"./android-input-ownership": {
|
|
"types": "./src/android-input-ownership.ts",
|
|
"default": "./src/android-input-ownership.ts"
|
|
},
|
|
"./android-snapshot-quality": {
|
|
"types": "./src/android-snapshot-quality.ts",
|
|
"default": "./src/android-snapshot-quality.ts"
|
|
},
|
|
"./android-system-chrome": {
|
|
"types": "./src/android-system-chrome.ts",
|
|
"default": "./src/android-system-chrome.ts"
|
|
},
|
|
"./app-deployment-runtime": {
|
|
"types": "./src/app-deployment-runtime.ts",
|
|
"default": "./src/app-deployment-runtime.ts"
|
|
},
|
|
"./app-deployment-runtime-plan": {
|
|
"types": "./src/app-deployment-runtime-plan.ts",
|
|
"default": "./src/app-deployment-runtime-plan.ts"
|
|
},
|
|
"./app-inventory-runtime": {
|
|
"types": "./src/app-inventory-runtime.ts",
|
|
"default": "./src/app-inventory-runtime.ts"
|
|
},
|
|
"./app-log-runtime": {
|
|
"types": "./src/app-log-runtime.ts",
|
|
"default": "./src/app-log-runtime.ts"
|
|
},
|
|
"./app-state-runtime": {
|
|
"types": "./src/app-state-runtime.ts",
|
|
"default": "./src/app-state-runtime.ts"
|
|
},
|
|
"./apple-multitouch-support": {
|
|
"types": "./src/apple-multitouch-support.ts",
|
|
"default": "./src/apple-multitouch-support.ts"
|
|
},
|
|
"./application-lifecycle-interaction": {
|
|
"types": "./src/application-lifecycle-interaction.ts",
|
|
"default": "./src/application-lifecycle-interaction.ts"
|
|
},
|
|
"./application-lifecycle-runtime": {
|
|
"types": "./src/application-lifecycle-runtime.ts",
|
|
"default": "./src/application-lifecycle-runtime.ts"
|
|
},
|
|
"./application-lifecycle-runtime-plan": {
|
|
"types": "./src/application-lifecycle-runtime-plan.ts",
|
|
"default": "./src/application-lifecycle-runtime-plan.ts"
|
|
},
|
|
"./async-lifecycle": {
|
|
"types": "./src/async-lifecycle.ts",
|
|
"default": "./src/async-lifecycle.ts"
|
|
},
|
|
"./audio-probe-result": {
|
|
"types": "./src/audio-probe-result.ts",
|
|
"default": "./src/audio-probe-result.ts"
|
|
},
|
|
"./audio-probe-support": {
|
|
"types": "./src/audio-probe-support.ts",
|
|
"default": "./src/audio-probe-support.ts"
|
|
},
|
|
"./back-mode": {
|
|
"types": "./src/back-mode.ts",
|
|
"default": "./src/back-mode.ts"
|
|
},
|
|
"./capture": {
|
|
"types": "./src/facades/capture.ts",
|
|
"default": "./src/facades/capture.ts"
|
|
},
|
|
"./click-button": {
|
|
"types": "./src/click-button.ts",
|
|
"default": "./src/click-button.ts"
|
|
},
|
|
"./client": {
|
|
"types": "./src/facades/client.ts",
|
|
"default": "./src/facades/client.ts"
|
|
},
|
|
"./command": {
|
|
"types": "./src/facades/command.ts",
|
|
"default": "./src/facades/command.ts"
|
|
},
|
|
"./command-platform-execution": {
|
|
"types": "./src/command-platform-execution.ts",
|
|
"default": "./src/command-platform-execution.ts"
|
|
},
|
|
"./device": {
|
|
"types": "./src/facades/device.ts",
|
|
"default": "./src/facades/device.ts"
|
|
},
|
|
"./device-readiness-runtime": {
|
|
"types": "./src/device-readiness-runtime.ts",
|
|
"default": "./src/device-readiness-runtime.ts"
|
|
},
|
|
"./device-shutdown-runtime": {
|
|
"types": "./src/device-shutdown-runtime.ts",
|
|
"default": "./src/device-shutdown-runtime.ts"
|
|
},
|
|
"./divergence": {
|
|
"types": "./src/facades/divergence.ts",
|
|
"default": "./src/facades/divergence.ts"
|
|
},
|
|
"./durable-resource": {
|
|
"types": "./src/durable-resource.ts",
|
|
"default": "./src/durable-resource.ts"
|
|
},
|
|
"./durable-resource-envelope": {
|
|
"types": "./src/durable-resource-envelope.ts",
|
|
"default": "./src/durable-resource-envelope.ts"
|
|
},
|
|
"./element-text-runtime": {
|
|
"types": "./src/element-text-runtime.ts",
|
|
"default": "./src/element-text-runtime.ts"
|
|
},
|
|
"./focus-runtime": {
|
|
"types": "./src/focus-runtime.ts",
|
|
"default": "./src/focus-runtime.ts"
|
|
},
|
|
"./gesture-input": {
|
|
"types": "./src/gesture-input.ts",
|
|
"default": "./src/gesture-input.ts"
|
|
},
|
|
"./gesture-normalization": {
|
|
"types": "./src/gesture-normalization.ts",
|
|
"default": "./src/gesture-normalization.ts"
|
|
},
|
|
"./gesture-plan": {
|
|
"types": "./src/gesture-plan.ts",
|
|
"default": "./src/gesture-plan.ts"
|
|
},
|
|
"./gesture-plan-types": {
|
|
"types": "./src/gesture-plan-types.ts",
|
|
"default": "./src/gesture-plan-types.ts"
|
|
},
|
|
"./interaction": {
|
|
"types": "./src/facades/interaction.ts",
|
|
"default": "./src/facades/interaction.ts"
|
|
},
|
|
"./interaction-error": {
|
|
"types": "./src/interaction-error.ts",
|
|
"default": "./src/interaction-error.ts"
|
|
},
|
|
"./interaction-guarantees": {
|
|
"types": "./src/interaction-guarantees.ts",
|
|
"default": "./src/interaction-guarantees.ts"
|
|
},
|
|
"./interactor-types": {
|
|
"types": "./src/interactor-types.ts",
|
|
"default": "./src/interactor-types.ts"
|
|
},
|
|
"./logs-runtime-plan": {
|
|
"types": "./src/logs-runtime-plan.ts",
|
|
"default": "./src/logs-runtime-plan.ts"
|
|
},
|
|
"./navigation": {
|
|
"types": "./src/navigation.ts",
|
|
"default": "./src/navigation.ts"
|
|
},
|
|
"./network-runtime": {
|
|
"types": "./src/network-runtime.ts",
|
|
"default": "./src/network-runtime.ts"
|
|
},
|
|
"./network-runtime-plan": {
|
|
"types": "./src/network-runtime-plan.ts",
|
|
"default": "./src/network-runtime-plan.ts"
|
|
},
|
|
"./observability": {
|
|
"types": "./src/facades/observability.ts",
|
|
"default": "./src/facades/observability.ts"
|
|
},
|
|
"./platform": {
|
|
"types": "./src/facades/platform.ts",
|
|
"default": "./src/facades/platform.ts"
|
|
},
|
|
"./platform-module": {
|
|
"types": "./src/platform-module.ts",
|
|
"default": "./src/platform-module.ts"
|
|
},
|
|
"./platform-runtime": {
|
|
"types": "./src/platform-runtime.ts",
|
|
"default": "./src/platform-runtime.ts"
|
|
},
|
|
"./platform-runtime-host": {
|
|
"types": "./src/platform-runtime-host.ts",
|
|
"default": "./src/platform-runtime-host.ts"
|
|
},
|
|
"./platform-runtime-operations": {
|
|
"types": "./src/platform-runtime-operations.ts",
|
|
"default": "./src/platform-runtime-operations.ts"
|
|
},
|
|
"./platform-runtime-unavailable": {
|
|
"types": "./src/platform-runtime-unavailable.ts",
|
|
"default": "./src/platform-runtime-unavailable.ts"
|
|
},
|
|
"./progress": {
|
|
"types": "./src/facades/progress.ts",
|
|
"default": "./src/facades/progress.ts"
|
|
},
|
|
"./record-runtime-cutover": {
|
|
"types": "./src/record-runtime-cutover.ts",
|
|
"default": "./src/record-runtime-cutover.ts"
|
|
},
|
|
"./recording": {
|
|
"types": "./src/facades/recording.ts",
|
|
"default": "./src/facades/recording.ts"
|
|
},
|
|
"./remote": {
|
|
"types": "./src/facades/remote.ts",
|
|
"default": "./src/facades/remote.ts"
|
|
},
|
|
"./replay": {
|
|
"types": "./src/facades/replay.ts",
|
|
"default": "./src/facades/replay.ts"
|
|
},
|
|
"./screen-recording-runtime": {
|
|
"types": "./src/screen-recording-runtime.ts",
|
|
"default": "./src/screen-recording-runtime.ts"
|
|
},
|
|
"./screen-recording-runtime-plan": {
|
|
"types": "./src/screen-recording-runtime-plan.ts",
|
|
"default": "./src/screen-recording-runtime-plan.ts"
|
|
},
|
|
"./screenshot-runtime": {
|
|
"types": "./src/screenshot-runtime.ts",
|
|
"default": "./src/screenshot-runtime.ts"
|
|
},
|
|
"./scroll-command": {
|
|
"types": "./src/scroll-command.ts",
|
|
"default": "./src/scroll-command.ts"
|
|
},
|
|
"./scroll-gesture": {
|
|
"types": "./src/scroll-gesture.ts",
|
|
"default": "./src/scroll-gesture.ts"
|
|
},
|
|
"./selector-observation-runtime": {
|
|
"types": "./src/selector-observation-runtime.ts",
|
|
"default": "./src/selector-observation-runtime.ts"
|
|
},
|
|
"./session": {
|
|
"types": "./src/facades/session.ts",
|
|
"default": "./src/facades/session.ts"
|
|
},
|
|
"./settings": {
|
|
"types": "./src/settings.ts",
|
|
"default": "./src/settings.ts"
|
|
},
|
|
"./snapshot": {
|
|
"types": "./src/facades/snapshot.ts",
|
|
"default": "./src/facades/snapshot.ts"
|
|
},
|
|
"./snapshot-runtime": {
|
|
"types": "./src/snapshot-runtime.ts",
|
|
"default": "./src/snapshot-runtime.ts"
|
|
},
|
|
"./startup-recovery-fence": {
|
|
"types": "./src/startup-recovery-fence.ts",
|
|
"default": "./src/startup-recovery-fence.ts"
|
|
},
|
|
"./tv-remote": {
|
|
"types": "./src/tv-remote.ts",
|
|
"default": "./src/tv-remote.ts"
|
|
},
|
|
"./type-text-runtime": {
|
|
"types": "./src/type-text-runtime.ts",
|
|
"default": "./src/type-text-runtime.ts"
|
|
},
|
|
"./viewport-runtime": {
|
|
"types": "./src/viewport-runtime.ts",
|
|
"default": "./src/viewport-runtime.ts"
|
|
},
|
|
"./wait": {
|
|
"types": "./src/wait.ts",
|
|
"default": "./src/wait.ts"
|
|
},
|
|
"./wait-runtime-plan": {
|
|
"types": "./src/wait-runtime-plan.ts",
|
|
"default": "./src/wait-runtime-plan.ts"
|
|
}
|
|
}
|
|
}
|