feat: unified provider/model configuration (Phase 1) #111
Reference in New Issue
Block a user
Delete Branch "feat/110-phase1-config-layer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Phase 1 of RFC #110 — config layer for unified provider/model resolution.
Changes
src/config/folder:resolveModel(config, scene)with fallback todefaultWorkflowConfignow hasproviders(credential pool) +models(scene→model mapping)ExtractProviderConfig—getExtractProviderusesresolveModel(config, "extract")apiKeysupportsenv:VARsyntaxNew config format
Verification
bun run check✅resolve-model.test.tswith scene lookup, fallback, and error casesRefs #110
- New src/config/ folder: resolveModel(config, scene) with fallback to default - WorkflowConfig now has providers + models instead of extract - Delete ExtractProviderConfig, getExtractProvider uses resolveModel('extract') - New resolve-model tests, updated existing tests Refs #110Review: unified provider/model configuration (Phase 1)
配置层设计合理,
resolveModel+ scene fallback 逻辑清晰,测试覆盖充分 👍Minor(不阻塞)
validateWorkspaceSegment重复 —commands/init/template.ts和workspace.ts里完全一样,建议提取到commands/init/validate.tssplitProviderModelRefvsparseModelProviderRef— 两处几乎一样的逻辑(只差错误信息),考虑共享normalizeModels不要求defaultkey — runtimeresolveModel在 scene 缺失且无 default 时会报错,建议 parse 时 warnLGTM ✅
—— 小墨 🖊️