Providers contract
ManicProvider.build context dist clientDir serverFile apiEntries after minification.
Providers (ManicProvider.build)
Deployment adapters live in packages/providers and consume the artifacts manic build leaves on disk.
Interface
From packages/manic/src/config/index.ts:
interface ManicProvider {
name: string;
build(context: BuildContext): Promise<void>;
}
interface BuildContext {
dist: string;
config: ManicConfig;
apiEntries: string[];
clientDir: string;
serverFile: string;
}When **build() runs
After oxc-minify completes on <outdir>/client, <outdir>/api, and server.js — providers observe final bytes (Build pipeline).
apiEntries lists app/api/**/index.ts source paths collected during bundling (empty in frontend mode).
Responsibilities
| Adapter concern | Typical output |
|---|---|
| Static mapping | Copy/sync clientDir into platform CDN roots |
| Server mapping | Wrap serverFile or emit workers/functions |
| Metadata | .vercel/output, wrangler.toml, netlify.toml adjunct files |
Providers must not reimplement plugin logic — they package what plugins + createManicServer already produced (engineering manual).