- 修复 registry 测试 ai mock 缺失 createProviderRegistry 导出 - 新增 POST /api/providers/test 支持未保存供应商配置连通性测试 - 供应商表单新增测试连接按钮,新建默认 openai-compatible - 连通性测试按 ok 展示成功/失败,不再统一 success 样式 - 模型表单新建时也可测试供应商连接 - 模型页使用独立 provider 列表避免分页/搜索影响 - 移除模型管理组件内联 style - 新增 ProviderTestResultResponse 共享响应类型 - 新增 bun run format:check 脚本 - 补充关键测试覆盖(删除关联、连通性、默认类型、表单测试) - 更新 docs/user/usage.md、docs/development/*、design.md、tasks.md - 归档 change 至 openspec/changes/archive/2026-05-29-add-model-management
76 lines
2.5 KiB
JSON
76 lines
2.5 KiB
JSON
{
|
|
"name": "alfred",
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "bun run scripts/dev.ts",
|
|
"dev:server": "bun --watch src/server/dev.ts",
|
|
"dev:web": "bunx --bun vite --host",
|
|
"build": "bun run scripts/build.ts",
|
|
"lint": "eslint .",
|
|
"format": "prettier . --write",
|
|
"format:check": "prettier . --check",
|
|
"check": "bun run schema:check && bun run typecheck && bun run lint && bun test",
|
|
"schema": "bun run scripts/generate-config-schema.ts",
|
|
"schema:check": "bun run scripts/generate-config-schema.ts -- --check",
|
|
"verify": "bun run check && bun run build",
|
|
"test": "bun test",
|
|
"clean": "bun run scripts/clean.ts",
|
|
"typecheck": "tsc --noEmit",
|
|
"prepare": "husky",
|
|
"version:patch": "bun run scripts/bump-version.ts patch",
|
|
"version:minor": "bun run scripts/bump-version.ts minor",
|
|
"version:major": "bun run scripts/bump-version.ts major",
|
|
"version:set": "bun run scripts/bump-version.ts set"
|
|
},
|
|
"devDependencies": {
|
|
"@commitlint/cli": "^21.0.1",
|
|
"@commitlint/config-conventional": "^21.0.1",
|
|
"@eslint/js": "^10.0.1",
|
|
"@tanstack/react-query-devtools": "^5.100.14",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@types/bun": "^1.3.14",
|
|
"@types/jsdom": "^28.0.3",
|
|
"@types/react": "^19.2.15",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^6.0.2",
|
|
"drizzle-kit": "^0.31.10",
|
|
"eslint": "^10.4.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"eslint-plugin-perfectionist": "^5.9.0",
|
|
"eslint-plugin-prettier": "^5.5.5",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
"husky": "^9.1.7",
|
|
"jsdom": "^29.1.1",
|
|
"lint-staged": "^17.0.5",
|
|
"prettier": "^3.8.3",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "^8.60.0",
|
|
"vite": "^8.0.14"
|
|
},
|
|
"dependencies": {
|
|
"@ai-sdk/anthropic": "^3.0.81",
|
|
"@ai-sdk/openai": "^3.0.66",
|
|
"@ai-sdk/openai-compatible": "^2.0.48",
|
|
"@ant-design/icons": "^6.2.3",
|
|
"@sinclair/typebox": "^0.34.49",
|
|
"@tanstack/react-query": "^5.100.14",
|
|
"ai": "^6.0.193",
|
|
"ajv": "^8.20.0",
|
|
"antd": "^6.4.3",
|
|
"drizzle-orm": "^0.45.2",
|
|
"es-toolkit": "^1.47.0",
|
|
"pino": "^10.3.1",
|
|
"pino-pretty": "^13.1.3",
|
|
"pino-roll": "^4.0.0",
|
|
"react": "^19.2.6",
|
|
"react-dom": "^19.2.6",
|
|
"react-router": "^7.15.1",
|
|
"recharts": "^3.8.1"
|
|
}
|
|
}
|