Commit Graph

5159 Commits (bae87d122b4a14bd3ba4ecf866673b2c8c592b13)

Author SHA1 Message Date
DrSmoothl bae87d122b
feat(config): add UI metadata to ModelConfig fields
Add json_schema_extra UI metadata to all Model-related configuration classes:
- APIProvider (7 fields): name, base_url, api_key, client_type, max_retry, timeout, retry_interval
- ModelInfo (8 fields): model_identifier, name, api_provider, price_in, price_out, temperature, max_tokens, force_stream_mode, extra_params
- TaskConfig (5 fields): model_list, max_tokens, temperature, slow_threshold, selection_strategy
- ModelTaskConfig (9 fields): utils, replyer, vlm, voice, tool_use, planner, embedding, lpmm_entity_extract, lpmm_rdf_build

Pattern: Field(default=..., [ge/le constraints], json_schema_extra={x-widget, x-icon, [step]})
Widget types: input, slider, switch, select, custom (for complex types)
Constraints mapped: ge/le to minValue/maxValue in Schema output (Task 1d)

All 30 user-facing fields now have complete metadata coverage:
- x-widget: rendering hint for frontend
- x-icon: icon identifier from lucide-react
- Constraints: ge, le for numeric validation

Verification:
✓ All classes import successfully
✓ 100% metadata coverage on user-facing fields
✓ Config instance creation works
✓ Backward compatible with existing validation

Relates to: Task 12 (Wave 3) of webui-config-visualization-refactor
2026-02-17 17:25:48 +08:00
DrSmoothl b1c01d0a0c
feat: add .sisyphus/ to .gitignore 2026-02-17 17:22:35 +08:00
DrSmoothl 449e2f470c
feat(dashboard): create DynamicConfigForm component with Hook integration
- Accept schema, values, onChange, hooks props
- Check for field hooks, use if present (replace/wrapper modes)
- Fall back to DynamicField for non-hooked fields
- Support nested schema rendering with recursive calls
- Export DynamicConfigForm and DynamicField from index

Groups with Task 5. Completes Task 6 of webui-config-visualization-refactor plan.
2026-02-17 17:20:50 +08:00
DrSmoothl 4e5d091417
test(webui): add unit tests for ConfigSchemaGenerator
- Test field descriptions from field_docs
- Test json_schema_extra merging
- Test Pydantic constraints mapping
- Test nested model schema handling
- Test fields without extra metadata

All 5 tests passing. Completes Task 7 of webui-config-visualization-refactor plan.
2026-02-17 17:14:48 +08:00
DrSmoothl 2962a95341
feat(dashboard): create DynamicField renderer component
- Render fields based on x-widget or type
- Support slider, switch, textarea, select, custom widgets
- Include label, icon, description rendering
- Placeholder for unsupported types (array, object)

Completes Task 5 of webui-config-visualization-refactor plan.
2026-02-17 17:14:41 +08:00
DrSmoothl 5879164bfe
feat(config): add UI metadata to remaining ChatConfig fields (Wave 2)
- plan_reply_log_max_per_chat: input widget + file-text icon
- llm_quote: switch widget + quote icon
- enable_talk_value_rules: switch widget + settings icon
- talk_value_rules: custom widget + list icon

All ChatConfig fields now have json_schema_extra metadata for complete UI visualization support.
2026-02-17 17:09:07 +08:00
DrSmoothl 278a084c23
feat(webui): enhance ConfigSchemaGenerator with field_docs and UI metadata
- Add AttrDocBase.get_class_field_docs() classmethod for class-level field docs extraction
- Merge json_schema_extra (x-widget, x-icon, step) into schema output
- Map Pydantic constraints (ge/le) to minValue/maxValue for frontend compatibility
- Add ge=0, le=1 constraints to ChatConfig.talk_value for validation

Completes Task 1 (including subtasks 1a, 1b, 1c, 1d) of webui-config-visualization-refactor plan.
2026-02-17 17:05:25 +08:00
DrSmoothl 19c9c5a39a
feat(webui): use get_class_field_docs for schema field descriptions 2026-02-17 16:58:59 +08:00
DrSmoothl 1631774452
feat(config): add UI metadata to ChatConfig sample fields 2026-02-17 16:49:49 +08:00
DrSmoothl e530ee8fa6
feat(dashboard): create FieldHookRegistry for dynamic form hooks 2026-02-17 16:49:32 +08:00
DrSmoothl 5838dda175
feat(dashboard): add UI metadata fields to FieldSchema type 2026-02-17 16:48:58 +08:00
UnCLAS-Prommer 545e3b4982
Merge branch 'r-dev' of github.com:Mai-with-u/MaiBot into r-dev 2026-02-15 22:57:01 +08:00
UnCLAS-Prommer 75e154741d
方法名调整;确保公共属性被定义 2026-02-15 22:56:26 +08:00
DrSmoothl b6441ea17b
更新 WebUI 版本 2026-02-15 16:46:52 +08:00
DrSmoothl c834f8c59c
优化 pyproject.toml 文件,调整 setuptools 配置以正确包含和排除包 2026-02-15 16:46:11 +08:00
DrSmoothl 275608abea
test WebUI CI x5 2026-02-15 16:39:32 +08:00
DrSmoothl a832f7dabe
修复版本号格式,移除 WEBUI_VERSION 中的点分隔符 2026-02-15 16:39:17 +08:00
DrSmoothl ba10124152
test WebUI CI x4 2026-02-15 16:36:52 +08:00
DrSmoothl 3db97a687a
修复 pyproject.toml 文件的 EOF 语法,确保正确生成版本信息 2026-02-15 16:36:15 +08:00
DrSmoothl c3adc688e8
test WebUI CI x3 2026-02-15 16:33:34 +08:00
DrSmoothl 15ab1343b9
更新工作流以使用 Bun 替代 Node 进行构建 2026-02-15 16:32:20 +08:00
DrSmoothl a19b9b2c42
test WebUI CI x2 2026-02-15 16:30:56 +08:00
DrSmoothl 692b57f880
更新发布工作流以支持 dev 和 r-dev 分支,并修复版本号生成逻辑 2026-02-15 16:30:30 +08:00
DrSmoothl 63c27aaf21
test WebUI CI 2026-02-15 16:19:48 +08:00
DrSmoothl 0dccc23e76
更新 GitHub Actions 工作流,统一使用 ubuntu-24.04 作为运行环境;新增发布 WebUI 产物的工作流 2026-02-15 16:19:13 +08:00
UnCLAS-Prommer 5799ce7efe
新功能 2026-02-15 13:29:56 +08:00
UnCLAS-Prommer 6dc33e9e86
提取一些公共方法 2026-02-15 00:18:16 +08:00
UnCLAS-Prommer 6db889580d
方便消息格式检查的property 2026-02-14 23:52:58 +08:00
DrSmoothl dc36542403
添加文件监视器地基模块,重构模型请求模块使用新版本的配置热重载模块,新增watchfiles依赖 2026-02-14 21:17:24 +08:00
UnCLAS-Prommer daad0ba2f0
从maim_message的序列化和反序列化;更多消息组件 2026-02-14 16:19:56 +08:00
UnCLAS-Prommer c0c003a098
更舒适的颜色配置方案,真彩色支持 2026-02-14 16:19:04 +08:00
DrSmoothl 16b16d2ca6
重构绝大部分模块以适配新版本的数据库和数据模型,修复缺少依赖问题,更新 pyproject 2026-02-13 20:39:11 +08:00
UnCLAS-Prommer c14736ffca
更好更规范的类型注解;AGENTSMD试作 2026-02-13 16:24:03 +08:00
UnCLAS-Prommer b80b5afe2a
先推上去 2026-02-13 15:45:38 +08:00
UnCLAS-Prommer 9a3e8887af
Merge branch 'r-dev' of github.com:Mai-with-u/MaiBot into r-dev 2026-02-13 15:38:18 +08:00
UnCLAS-Prommer 26b8f56251
移除不必要属性,修改一个方法为非协程 2026-02-13 15:37:49 +08:00
DrSmoothl e6e0a57e3b
修复导入路径:将服务器模块的导入路径更改为正确的消息服务器路径 2026-02-13 15:33:55 +08:00
UnCLAS-Prommer 14f6fdb2b2
解决潜在的存储错误 2026-02-13 15:25:18 +08:00
UnCLAS-Prommer b9f3c17e14
合并到远程 2026-02-13 13:41:58 +08:00
DrSmoothl 60f76e4d4e
添加对 peewee 的旧数据库的兼容层,初步重构插件的 database API 2026-02-09 22:44:56 +08:00
SengokuCola bf46d540f1 Update .gitignore 2026-02-06 23:10:59 +08:00
SengokuCola 3a5fd9d3e3 feat:自动检测并升级旧版配置文件 2026-02-06 23:05:43 +08:00
UnCLAS-Prommer 049027a48f
maim_message强制版本要求;忽略APIServer下乱七八糟的类型注解和Patch 2026-02-05 16:53:48 +08:00
UnCLAS-Prommer 4dbe919cfe
移除.env文件 2026-02-05 16:16:44 +08:00
UnCLAS-Prommer 54e9007b8d
合并tcp_connector,移除多余的toml_utils.py 2026-02-05 15:43:37 +08:00
UnCLAS-Prommer 4edb2878a6
移除多余文件;更改命名 2026-02-05 13:23:45 +08:00
UnCLAS-Prommer e2c6716a41
重命名防止混乱 2026-02-04 22:24:25 +08:00
UnCLAS-Prommer 4ff070c08e
新表情包系统;对应的测试;TODO更新;Prompt拆分;工具拆分 2026-02-04 22:23:41 +08:00
UnCLAS-Prommer d27d73f329
移除多余文件;更好的注释 2026-02-04 15:36:17 +08:00
UnCLAS-Prommer b3697de120
小工具 2026-02-02 21:18:38 +08:00