Current state
Studio still declares @extrachill/api-client and imports domain clients/types from it, while other workflows correctly use WordPress apiFetch for REST, multipart uploads, and job polling.
Goal
Remove the obsolete package without forcing every request through one client abstraction.
Required sequence
- Inventory every runtime and type-only import.
- Re-home domain types in their owning package or locally when Studio-specific.
- Use canonical Abilities clients where a real ability exists.
- Keep direct
apiFetch where WordPress REST, multipart media, or job orchestration is the actual contract.
- Remove the dependency only when no runtime or type import remains.
Constraints
- Do not wrap core REST simply to make all calls look uniform.
- Do not move Data Machine Socials domain contracts into a generic Extra Chill client.
- Preserve media upload progress, social job polling, analytics reads, and current error shapes.
Acceptance criteria
@extrachill/api-client is absent from package manifests and lockfiles.
- Studio builds, typechecks, and passes all tests.
- Each call site documents or naturally expresses its owning API boundary.
- No duplicate generic client is introduced.
Current state
Studio still declares
@extrachill/api-clientand imports domain clients/types from it, while other workflows correctly use WordPressapiFetchfor REST, multipart uploads, and job polling.Goal
Remove the obsolete package without forcing every request through one client abstraction.
Required sequence
apiFetchwhere WordPress REST, multipart media, or job orchestration is the actual contract.Constraints
Acceptance criteria
@extrachill/api-clientis absent from package manifests and lockfiles.