30 Commits

Author SHA1 Message Date
linshen
9119876b3e feat: add Xiaomi MiMo Token Plan provider 2026-05-27 21:28:37 +08:00
linshen
5d3b7ada92 fix(model): tolerate malformed stored text configs 2026-05-18 21:38:27 +08:00
linshen
74c229a8f5 refactor(model): normalize model config identity 2026-05-16 16:47:18 +08:00
linshen
4340f1bf28 feat(provider): add Chrome built-in AI support
- Register Chrome built-in AI as a local text provider with availability checks.
- Add explicit setup/download gating and auto-enable safeguards.
- Preserve structured prompt roles through initialPrompts and stream tests.
2026-05-16 11:29:46 +08:00
linshen
b691f4f2c1 fix(core): keep local providers disabled by default
- Keep no-key and local model sources disabled until explicit user configuration exists.
- Tighten default text and image model enablement checks.
- Cover environment-driven defaults for local providers.
2026-05-16 09:47:21 +08:00
linshen
684a7bf4c1 feat(provider): add Grok text and image support
- Add first-class xAI/Grok text and image adapters with dynamic model fallback.
- Register defaults, env mapping, docs, locale labels, and legacy converter handling.
- Cover Grok request payloads, image defaults, registry behavior, and input image limit checks.
2026-05-15 20:43:18 +08:00
linshen
5e942ca945 feat: polish provider controls and themed UI
- Add provider pill selection and normalized provider display copy

- Adopt themed tooltips, confirmation dialogs, and Naive UI surface styles

- Enable Prompt Garden thumbnail previews through shared image preview components
2026-05-14 21:18:43 +08:00
linshen
69db225a1a feat(model): support headers and text quick switching
- Add custom request header parsing and provider metadata resolution

- Add quick switching controls for text model workspaces

- Keep model UI labels and custom header output tidy
2026-05-10 23:08:14 +08:00
linshen
faeee9ff4c feat(core): update DeepSeek provider for v4 models 2026-04-24 22:35:32 +08:00
linshen
713143d47b feat(models): add responses request style for openai apis 2026-04-15 21:47:23 +08:00
linshen
b6fbc21c08 fix(image): stabilize cloudflare-backed reference flow
- Align Cloudflare model defaults, metadata, and connection labels across core and UI
- Add transient retry handling for Cloudflare image requests
- Harden reference prompt normalization and extend related regression coverage
2026-04-01 21:07:29 +08:00
linshen
8c0b9ffded fix(core): backfill builtin model api keys
- Backfill builtin model API keys when restoring stored model configurations
- Keep model manager defaults aligned with the new image model loading flow
- Add focused manager test coverage for missing-key recovery
2026-03-31 21:11:37 +08:00
linshen
24f2567c56 feat(core): add Cloudflare image and text providers
- add a Workers AI image adapter for FLUX.2 [klein] 4B generation and editing
- add a Cloudflare text adapter with dynamic model discovery and a Qwen3 default
- load Cloudflare token and account defaults from environment variables for both providers
- cover registry integration and default config wiring with unit tests

(cherry picked from commit 3ef9bdbd187ef150d331ef6b9b46f9d7ad3ef2af)
2026-03-29 19:26:38 +08:00
linshen
aa8fe80953 test(e2e): refresh evaluation fixtures and stabilize image flows 2026-03-15 16:30:00 +08:00
SuperDuckGOGOGO
98a6b4f398 feat(core): support custom model params from env (#273)
Allow Docker and other runtime environments to inject JSON request parameters for suffixed custom models so provider-specific defaults like NVIDIA NIM thinking flags persist outside the UI. Add parsing, sanitization, tests, and docs for the new VITE_CUSTOM_API_PARAMS_<suffix> flow.
2026-03-13 13:51:06 +08:00
linshen
ce97402a47 fix(model): preserve enabled choice and format version labels 2026-03-02 22:25:00 +08:00
linshen
c916d9eef3 fix(config): add missing provider env mappings
Enable Anthropic env-based default model creation and align provider lists/matching across desktop logs, MCP selection, and docs.
2026-02-10 18:04:29 +08:00
linshen
81b8dcda20 fix(core): backfill provider CORS metadata
- Mark ModelScope provider as CORS-restricted
- Backfill missing providerMeta.corsRestricted on read
- Avoid eager adapter registry load unless needed
2026-02-03 21:17:00 +08:00
linshen
4098b78354 fix(core): 优化模型初始化策略,保护用户自定义配置不被覆盖
- 改进ModelManager初始化逻辑,仅在缺失元数据时补齐默认值
- 增强连接测试功能,提升配置验证和错误处理
- 新增测试用例验证配置保护机制的有效性
2025-10-08 17:47:45 +08:00
linshen
c779b66203 refactor(core): 移除流式支持标识并修复TypeScript类型错误
- 移除TextModel接口中的supportsStreaming属性,简化模型能力定义
- 重构OpenAI适配器,简化模型配置和连接验证逻辑
- 修复useTextModelManager.ts中的TypeScript类型安全问题
- 更新所有相关测试文件,移除supportsStreaming相关断言
- 统一测试代码格式,确保编译通过

BREAKING CHANGE: 移除了supportsStreaming能力标识,所有模型默认支持流式响应
2025-10-07 23:56:00 +08:00
linshen
5de5614664 refactor(core): 重构LLM服务为Adapter模式架构
重大架构升级:
- 引入Adapter模式,实现Provider解耦
- 新增7个Provider适配器(OpenAI、Gemini、Anthropic等)
- 精简LLMService从2000+行到300+行
- 引入TextModelConfig新类型系统,支持向后兼容
- 完善类型定义和测试覆盖

架构改进:
- 抽象基类AbstractTextProviderAdapter提供模板方法
- TextAdapterRegistry统一管理所有适配器
- 支持动态模型获取(OpenAI兼容API)
- 提供配置转换器实现平滑升级

新增文件:
- packages/core/src/services/llm/adapters/ (8个文件)
- packages/core/src/services/model/converter.ts
- packages/core/src/services/model/text-model-defaults.ts
- docs/architecture/llm-refactor.md
- 9个新增测试文件

修改文件:
- packages/core/src/services/llm/service.ts
- packages/core/src/services/model/types.ts
- packages/core/src/index.ts
- 31个测试文件更新
- UI组件和composables适配新类型

BREAKING CHANGE: 模型配置结构从ModelConfig升级为TextModelConfig
(已提供converter.ts确保向后兼容和自动转换)

测试结果:
 TypeScript类型检查通过 (core + ui)
 563个测试通过,90个跳过
 Core包构建成功
2025-10-04 01:01:08 +08:00
linshen
e54f1c77e0 feat(app): 集成自动更新、日志系统,优化构建和发布配置
- 集成electron-updater实现自动更新,支持检查、下载和安装;增强安全性,仅允许http/https链接。
- 实现自定义日志系统ConsoleLogger,劫持控制台日志,添加全局错误处理。
- 优化构建产物,更新发布配置和打包细节,移除package.json中的发布配置。
- 更新Electron应用图标结构,重构prompt-optimizer-data.json存储路径。
- 添加日志查看/清理脚本,更新UI组件和国际化支持。
2025-07-12 18:25:23 +08:00
linshen
71600b5081 feat: 重构导入导出架构
## 核心架构重构
- 创建IImportExportable接口,定义统一的导入导出规范
- 新增ImportExportError错误类,提供专门的错误处理
- 将导入导出逻辑从集中式DataManager分散到各个服务
- DataManager职责精简:从375行减至67行(-308行),仅负责协调

## 存储键架构优化
- 移动storage-keys.ts从ui包到core包,实现统一管理
- 修复存储键双重用途问题:物理存储键vs逻辑JSON导出键
- PreferenceService添加'pref:'前缀处理物理存储
- 解决数据导出不完整的关键架构缺陷

## 服务层改造
### ModelManager
- 实现IImportExportable接口(+209行,-153行)
- 添加exportData/importData/validateData方法
- 保持向后兼容的数据格式

### TemplateManager
- 实现分布式导入导出逻辑
- 移除过度设计的configurable storageKey
- 统一使用PreferenceService管理用户偏好

### HistoryManager
- 添加完整的导入导出实现
- 支持数据验证和错误处理

### PreferenceService
- 实现统一的用户设置导入导出
- 处理存储键前缀转换逻辑
- 支持builtin-template-language等核心设置

## Electron桌面端更新
- main.js: 新增148行IPC处理逻辑
- preload.js: 新增177行API暴露
- 更新所有service proxy类支持新接口
- 保持IPC通信的类型安全

## 测试体系完善
- 新增各服务专门的import-export.test.ts文件
- 创建data/import-export-integration.test.ts集成测试
- 建立AI自动化测试框架验证存储键一致性
- 更新现有测试适配新架构

## 文档与架构说明
- 创建import-export-interface-design.md设计文档
- 添加storage-key-architecture.md架构说明
- 建立AI自动化测试文档体系
- 更新workspace文档记录重构过程

BREAKING CHANGE: 导入导出接口从集中式DataManager重构为分布式服务实现,
各服务现在必须实现IImportExportable接口,存储键架构发生变化
2025-07-12 11:56:14 +08:00
linshen
2f4d7429ef feat: 更新文档与组件,引入应用初始化器与服务依赖注入,完成Vue Composable架构重构
- 更新 `composables-refactor-plan.md` 与 `experience.md`,记录重构成果、问题与后续计划,强调顶层声明和响应式连接。引入 `useAppInitializer`,及其对架构统一和代码复用的贡献。
- 更新多个组件与Composable文件,使其通过 `inject` 获取服务实例引用,解决了`ref` 迁移到 `reactive` 和异步回调中调用Composable函数导致的错误,优化了模板管理器的使用方式,并移除对服务单例的直接依赖。
- 修复 `templateLanguageService` 依赖注入失败的 bug,更新组件导出和模板管理器,优化代码结构与可读性。
- 将背景与目标修改为当前状态与问题,明确上层应用尚未适配底层重构的现状,并记录Web应用和浏览器插件启动失败问题,提出后续修复步骤。更新实施计划,强调对齐上层应用与底层服务架构的必要性。
2025-06-28 19:43:11 +08:00
linshen
31b807ba0b feat: 重构核心服务以支持Electron环境,并增强历史管理器功能
- 核心服务:
    - 移除单例导出,引入工厂函数模式以提升灵活性和可测试性。
    - 显式接收依赖并处理重构中的依赖问题,更新文档以反映新的服务创建方式和依赖注入策略。
    - 添加相应的代理和管理器工厂函数,优化服务初始化逻辑,确保在Electron环境下的配置同步。
- 历史管理器:引入 `IModelManager` 支持模型管理,修改构造函数并恢复模型名称获取逻辑。
- 构建配置:
    - 更新 `.gitignore` 文件,添加桌面应用相关构建和分发文件的忽略规则。
    - 在 `package.json` 中新增桌面应用构建和开发命令。
    - 更新 `pnpm-lock.yaml` 以包含新依赖。
- 重构计划文档:移除循环依赖描述,增加重构反思与后续决策,优化 `ensureInitialized()` 调用,修正错误处理行为并提升测试代码严谨性。
2025-06-28 11:21:33 +08:00
linshen
d00fda6cec feat(prompt): 优化提示词服务和用户界面,简化上下文提示词要求
- 移除对 contextPrompt 的强制要求,提升用户体验
- 更新测试用例,验证新功能的正确性
- 修改国际化文件,去掉不必要的提示信息
- 优化模型管理测试,确保新增模型的正确性
2025-06-18 22:25:03 +08:00
linshen
688bb2e2bf feat(core): 添加高级LLM参数配置功能
- 在模型配置中引入 `llmParams` 字段,允许用户为每个模型单独设置高级LLM参数
- 更新文档,详细说明 `llmParams` 的使用方法及示例
- 在模型管理器中实现对 `llmParams` 的验证和处理逻辑
- 增强 LLMService 以支持从 `llmParams` 中提取参数,优化模型行为控制
- 更新 UI 组件以支持高级参数的配置和展示,提升用户体验
2025-06-07 16:30:39 +08:00
linshen
a2173548d7 feat(core): 重构数据管理器并添加 UI 配置导入导出功能
- 重构了 DataManager 类,增加了 UI 配置导入导出功能
- 优化了数据导入流程,能够处理部分数据导入失败的情况
- 添加了对 UI 配置数据的导入导出支持
- 重构了部分错误处理逻辑,提高了代码的健壮性
2025-05-26 22:48:01 +08:00
linshen
22638cbde0 refactor: Migrate from LangChain to native SDKs for LLM services
- Replace LangChain dependencies with native OpenAI and Google Generative AI SDKs
- Rewrite LLMService to use direct API calls for OpenAI and Gemini
- Update core package dependencies to remove LangChain-related packages
- Modify message handling and streaming logic to work with new SDK implementations
- Simplify model configuration and instance management
- Update integration and unit tests to support new SDK approach
- Remove LangChain-specific message conversion and streaming methods
2025-02-23 09:12:00 +08:00
linshen
4d88c3093d refactor: Consolidate and clean up test files across core and web packages
- Remove redundant integration and unit test files from web package
- Update import paths in remaining test files to use local source
- Remove console logs and unnecessary comments in test files
- Simplify test structure and remove duplicate test scenarios
- Add dotenv dependency to core package for environment variable support
2025-02-22 16:02:52 +08:00