# API / 模块合约 MVP 首先提供本地 Go application service 和 CLI;是否增加 loopback HTTP/WebSocket 在 T-203 决策。时间使用 RFC3339,路径使用规范化绝对路径。 ## 核心类型 ```go type BrowserKind string const ( BrowserChrome BrowserKind = "chrome" BrowserEdge BrowserKind = "edge" ) type LaunchSpec struct { Kind BrowserKind Executable string UserDataDir string ProfileDirectory string TargetURL string ProxyServer string Headless bool ExtraArgs []string } type InstanceView struct { ID string Kind BrowserKind PID int UserDataDir string Status string ExitCode *int } ``` ## Application service ```go type BrowserManager interface { Start(ctx context.Context, spec LaunchSpec) (InstanceView, error) List(ctx context.Context) ([]InstanceView, error) Get(ctx context.Context, id string) (InstanceView, error) Stop(ctx context.Context, id string, force bool) error Restart(ctx context.Context, id string) (InstanceView, error) } ``` `Stop(force=false)` 只执行优雅关闭;强制关闭必须由明确用户动作或 CLI `--force` 触发。 ## CLI 目标形状 ```text chub start --browser chrome --user-data-dir