mta-mcp 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mta-mcp",
3
- "version": "2.6.0",
3
+ "version": "2.7.0",
4
4
  "description": "MTA - 智能项目分析与编码规范管理 MCP 服务器",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,7 +24,8 @@
24
24
  "README.md"
25
25
  ],
26
26
  "scripts": {
27
- "build": "tsup",
27
+ "sync": "bash scripts/sync-resources.sh",
28
+ "build": "npm run sync && tsup",
28
29
  "watch": "tsup --watch",
29
30
  "start": "node bin/mta.js",
30
31
  "dev": "tsup --watch",
@@ -33,7 +34,7 @@
33
34
  "test": "vitest run",
34
35
  "test:watch": "vitest",
35
36
  "test:coverage": "vitest run --coverage",
36
- "prepublishOnly": "npm run build && npm test"
37
+ "prepublishOnly": "npm run sync && npm run build && npm test"
37
38
  },
38
39
  "keywords": [
39
40
  "mcp",
@@ -1,6 +1,6 @@
1
1
  # Flutter UI 开发规范 - Design Token 系统
2
2
 
3
- > my_flutter 项目专用的 UI 开发规范,基于 Design Token 和 Flex 组件系统
3
+ > 基于 Design Token 和 Flex 组件系统的 Flutter UI 开发规范
4
4
 
5
5
  ## 🎯 核心原则
6
6
 
@@ -494,5 +494,4 @@ SvgPicture.asset(
494
494
  ---
495
495
 
496
496
  **维护团队**: MTA工作室
497
- **适用项目**: my_flutter
498
497
  **最后更新**: 2026-01-01
@@ -221,7 +221,7 @@ src/views/main/模块名/
221
221
  ## 变更记录
222
222
 
223
223
  ### 2025-12-25
224
- - **临时任务**: 优化 API 封装
224
+ - **临时任务**: 优化 API 封装,结合 VitaSage 的 wrap 函数
225
225
  - **影响范围**: src/api/request.ts, src/api/modules/*
226
226
  - **状态**: ✅ 已完成
227
227
  - **备注**: 新增 wrap 函数、文件上传下载、Mock 集成
@@ -0,0 +1,144 @@
1
+ # 📦 项目模板代码库
2
+
3
+ > 预置的可复用代码模板,支持快速生成项目基础设施
4
+
5
+ ---
6
+
7
+ ## 🤖 Agent 使用指令
8
+
9
+ 当用户说出以下类似指令时,Agent 应按照本文档规范执行:
10
+
11
+ **触发指令示例**:
12
+ - "将 axios 模板应用到 ht-manage 项目"
13
+ - "把 api-layer 模板复制到 VitaSage"
14
+ - "给 xx 项目配置 API 层"
15
+ - "应用 vue/api-layer 模板"
16
+
17
+ **Agent 执行流程**:
18
+
19
+ 1. **识别模板** - 根据关键词匹配模板:
20
+ | 关键词 | 对应模板 |
21
+ |--------|----------|
22
+ | axios / api / api-layer / 请求封装 | `vue/api-layer` |
23
+ | types / 类型 | `common/types` |
24
+
25
+ 2. **确定目标路径** - 根据项目和模板类型:
26
+ | 模板 | 目标路径 |
27
+ |------|----------|
28
+ | `vue/api-layer` | `{项目}/src/api/` |
29
+ | `common/types` | `{项目}/src/types/` |
30
+
31
+ 3. **复制文件** - 将模板目录下的文件(排除 `_CONFIG.md`)复制到目标路径
32
+
33
+ 4. **提示配置** - 告知用户需要根据 `_CONFIG.md` 调整的配置项:
34
+ - UI 框架适配(showMessage)
35
+ - 后端响应格式适配
36
+ - Token 传递方式
37
+ - 环境变量配置
38
+
39
+ **执行示例**:
40
+
41
+ ```
42
+ 用户: 将 axios 模板应用到 ht-manage 项目
43
+
44
+ Agent 执行:
45
+ 1. 模板路径: /Users/pailasi/Work/copilot-prompts/templates/vue/api-layer/
46
+ 2. 目标路径: /Users/pailasi/Work/ht-manage/src/api/
47
+ 3. 复制文件:
48
+ - request.ts
49
+ - types.ts
50
+ - index.ts
51
+ - mock/index.ts
52
+ - modules/index.ts
53
+ - modules/_template.ts
54
+ 4. 提示用户按 _CONFIG.md 配置
55
+ ```
56
+
57
+ ---
58
+
59
+ ## 目录结构
60
+
61
+ ```
62
+ templates/
63
+ ├── README.md # 本文件(含 Agent 指令)
64
+ ├── vue/ # Vue 项目模板
65
+ │ ├── api-layer/ # API 层封装(axios + mock)✅
66
+ │ ├── composables/ # 通用 Composables(预留)
67
+ │ ├── components/ # 通用组件模板(预留)
68
+ │ └── stores/ # 状态管理模板(预留)
69
+ ├── flutter/ # Flutter 项目模板(预留)
70
+ │ ├── api-layer/
71
+ │ └── themes/
72
+ ├── react/ # React 项目模板(预留)
73
+ └── common/ # 跨框架通用模板
74
+ └── types/ # TypeScript 类型定义 ✅
75
+ ```
76
+
77
+ ---
78
+
79
+ ## 🎯 手动使用方式
80
+
81
+ 1. 进入对应模板目录
82
+ 2. 复制需要的文件到项目中
83
+ 3. 根据 `_CONFIG.md` 文件说明进行配置
84
+
85
+ ---
86
+
87
+ ## 📋 可用模板
88
+
89
+ ### Vue 项目
90
+
91
+ | 模板 | 关键词 | 说明 | 状态 |
92
+ |------|--------|------|------|
93
+ | `vue/api-layer` | axios, api, 请求封装 | Axios + Mock 完整封装 | ✅ 可用 |
94
+ | `vue/composables` | composable, hook | 通用 Composables | 🚧 计划中 |
95
+ | `vue/components` | component, 组件 | 基础组件模板 | 🚧 计划中 |
96
+ | `vue/stores` | pinia, store, 状态 | Pinia Store 模板 | 🚧 计划中 |
97
+
98
+ ### Flutter 项目
99
+
100
+ | 模板 | 关键词 | 说明 | 状态 |
101
+ |------|--------|------|------|
102
+ | `flutter/api-layer` | dio, api | Dio + 状态管理封装 | 🚧 计划中 |
103
+ | `flutter/themes` | theme, token | Design Token 系统 | 🚧 计划中 |
104
+
105
+ ### 通用模板
106
+
107
+ | 模板 | 关键词 | 说明 | 状态 |
108
+ |------|--------|------|------|
109
+ | `common/types` | types, 类型 | TypeScript 通用类型 | ✅ 可用 |
110
+
111
+ ---
112
+
113
+ ## 🔧 模板规范
114
+
115
+ 每个模板目录必须包含:
116
+
117
+ 1. **`_CONFIG.md`** - 配置说明文件
118
+ - 模板用途
119
+ - 依赖要求
120
+ - 配置项说明
121
+ - 适配指南
122
+
123
+ 2. **源代码文件** - 可直接复制使用的代码
124
+ - 保持通用性,不含业务逻辑
125
+ - 标注自定义点(使用 `💡` 或 `TODO` 注释)
126
+ - 支持多种配置方案
127
+
128
+ ---
129
+
130
+ ## 🚀 扩展模板
131
+
132
+ 添加新模板时:
133
+
134
+ 1. 在对应框架目录下创建模板文件夹
135
+ 2. 编写 `_CONFIG.md` 配置说明
136
+ 3. 添加代码文件,确保通用性
137
+ 4. 更新本 README 的模板列表
138
+ 5. 如有相关规范文档,在 `standards/patterns/` 中添加
139
+
140
+ ---
141
+
142
+ **维护者**: MTA工作室
143
+ **创建日期**: 2025-12-25
144
+ **版本**: v1.0
@@ -0,0 +1,12 @@
1
+ # 通用 TypeScript 类型模板
2
+
3
+ > 跨框架通用的类型定义
4
+
5
+ ## 📦 包含文件
6
+
7
+ - `api.ts` - API 响应相关类型
8
+ - `common.ts` - 通用业务类型
9
+
10
+ ## 🚀 使用方式
11
+
12
+ 复制到项目的 `src/types/` 目录
@@ -0,0 +1,39 @@
1
+ /**
2
+ * API 相关类型定义
3
+ */
4
+
5
+ /** API 响应基础结构 */
6
+ export interface ApiResponse<T = any> {
7
+ code: number
8
+ data: T
9
+ message: string
10
+ }
11
+
12
+ /** 分页参数 */
13
+ export interface PageParams {
14
+ page: number
15
+ pageSize: number
16
+ }
17
+
18
+ /** 分页数据 */
19
+ export interface PageData<T> {
20
+ list: T[]
21
+ total: number
22
+ page: number
23
+ pageSize: number
24
+ }
25
+
26
+ /** 分页响应 */
27
+ export type PageResponse<T> = ApiResponse<PageData<T>>
28
+
29
+ /** 排序参数 */
30
+ export interface SortParams {
31
+ sortField?: string
32
+ sortOrder?: 'asc' | 'desc'
33
+ }
34
+
35
+ /** 时间范围 */
36
+ export interface DateRange {
37
+ startDate?: string
38
+ endDate?: string
39
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * 通用业务类型定义
3
+ */
4
+
5
+ /** 通用 ID 类型 */
6
+ export type ID = string | number
7
+
8
+ /** 通用状态 */
9
+ export type Status = 'active' | 'inactive' | 'pending' | 'deleted'
10
+
11
+ /** 启用状态 */
12
+ export type EnableStatus = 0 | 1
13
+
14
+ /** 审核状态 */
15
+ export type AuditStatus = 'pending' | 'approved' | 'rejected'
16
+
17
+ /** 性别 */
18
+ export type Gender = 'male' | 'female' | 'unknown'
19
+
20
+ /** 键值对 */
21
+ export interface KeyValue<T = any> {
22
+ key: string
23
+ value: T
24
+ }
25
+
26
+ /** 选项项(下拉框等) */
27
+ export interface OptionItem<T = string | number> {
28
+ label: string
29
+ value: T
30
+ disabled?: boolean
31
+ children?: OptionItem<T>[]
32
+ }
33
+
34
+ /** 树形节点 */
35
+ export interface TreeNode<T = any> {
36
+ id: ID
37
+ label: string
38
+ children?: TreeNode<T>[]
39
+ data?: T
40
+ }
41
+
42
+ /** 表格列配置 */
43
+ export interface TableColumn {
44
+ prop: string
45
+ label: string
46
+ width?: number | string
47
+ minWidth?: number | string
48
+ fixed?: 'left' | 'right'
49
+ sortable?: boolean
50
+ align?: 'left' | 'center' | 'right'
51
+ }
52
+
53
+ /** 用户基础信息 */
54
+ export interface UserBase {
55
+ id: ID
56
+ username: string
57
+ nickname?: string
58
+ avatar?: string
59
+ email?: string
60
+ phone?: string
61
+ }
62
+
63
+ /** 带时间戳的基础实体 */
64
+ export interface BaseEntity {
65
+ id: ID
66
+ createdAt: string
67
+ updatedAt: string
68
+ createdBy?: ID
69
+ updatedBy?: ID
70
+ }
@@ -0,0 +1,158 @@
1
+ <!-- ⚠️ 此文件由 Copilot Prompts MCP Server 生成 -->
2
+ <!-- ℹ️ 你可以添加自定义内容,使用 CUSTOM_START/CUSTOM_END 标记保护 -->
3
+
4
+ <!-- 🎯 作用域:此配置仅适用于当前项目 -->
5
+ <!-- 项目名称: YourProject -->
6
+ <!-- 项目路径: /path/to/your/project -->
7
+
8
+ # 项目开发规范 - Copilot 指令
9
+
10
+ > 📌 **配置信息**
11
+ > - 生成时间: 2026-01-09
12
+ > - 配置方式: MCP Token 优化模式
13
+ > - Token 节省: 95%+ ✅
14
+
15
+ ---
16
+
17
+ ## ⚠️ 强制执行检查点
18
+
19
+ > **此检查点的优先级高于本文件的所有其他内容**
20
+
21
+ 在执行**任何**以下操作前,必须先完成规范加载验证:
22
+
23
+ ### 受限操作清单
24
+
25
+ - ❌ 创建任何代码文件(.vue、.ts、.tsx、.js 等)
26
+ - ❌ 修改任何代码文件
27
+ - ❌ 使用 `replace_string_in_file` 或 `multi_replace_string_in_file`
28
+ - ❌ 生成任何代码片段
29
+
30
+ ### 强制验证流程
31
+
32
+ 1. **检查项目作用域** - 确认当前操作的文件路径包含 `/YourProject/`
33
+ 2. **加载相关规范** - 根据文件类型调用对应的 MCP 工具:
34
+ - Vue 文件 → `use_preset({ preset: "vue3-form" })` 或 `get_smart_standards()`
35
+ - TypeScript 文件 → `get_compact_standards({ currentFile: "xxx.ts" })`
36
+ - 特定场景 → 选择合适的预设或工具
37
+ 3. **验证加载成功** - 确认工具返回了规范内容
38
+ 4. **声明已加载** - 在响应中明确说明:`✅ 已加载规范: [工具名称]`
39
+
40
+ ### 违规处理
41
+
42
+ - 如果未加载规范就生成代码 → **此操作无效,必须重新执行**
43
+ - 如果出现语法错误 → **深刻反思,检查是否遵循了规范**
44
+ - 如果出现低级错误 → **停止操作,重新加载规范后再继续**
45
+
46
+ ---
47
+
48
+ ## 🎯 作用域限制
49
+
50
+ **⚠️ 此配置仅在以下情况生效:**
51
+
52
+ 1. 当前编辑的文件路径包含: `/YourProject/`
53
+ 2. 或当前工作目录为: `/path/to/your/project`
54
+
55
+ **如果你在其他项目工作,请完全忽略此配置文件中的所有规范和指令。**
56
+
57
+ ---
58
+
59
+ ## ⚡ MCP 工具使用指南(Token 优化)
60
+
61
+ > **核心理念**:不在配置文件中写规范,而是指导 AI 如何按需加载规范
62
+
63
+ ### 推荐工具(按优先级)
64
+
65
+ | 优先级 | 工具 | Token 消耗 | 适用场景 |
66
+ |-------|------|-----------|---------|
67
+ | 🥇 | `use_preset` | ~500 | **最推荐**:表单、表格、API 等常见场景 |
68
+ | 🥈 | `get_smart_standards` | ~2000 | 零参数,智能推荐 |
69
+ | 🥉 | `get_compact_standards` | ~2000 | 精准控制(key-rules 模式) |
70
+ | 🚫 | `get_relevant_standards` | ~15000 | 仅在需要完整规范时使用 |
71
+
72
+ ### 快速参考
73
+
74
+ ```typescript
75
+ // 📋 创建表单组件
76
+ use_preset({ preset: "vue3-form" })
77
+
78
+ // 📊 创建数据表格
79
+ use_preset({ preset: "vue3-table" })
80
+
81
+ // 🌐 创建 API 接口
82
+ use_preset({ preset: "api-call" })
83
+
84
+ // 💾 创建 Pinia Store
85
+ use_preset({ preset: "pinia-store" })
86
+
87
+ // 🎯 零参数智能推荐
88
+ get_smart_standards()
89
+
90
+ // 🔍 按文件类型精准加载
91
+ get_compact_standards({
92
+ currentFile: "src/views/User.vue",
93
+ mode: "key-rules" // 默认,推荐
94
+ })
95
+ ```
96
+
97
+ ### 标准开发流程
98
+
99
+ 1. ✅ **强制**: 加载规范(调用 MCP 工具)
100
+ 2. 理解需求
101
+ 3. 编写代码(遵循已加载的规范)
102
+ 4. 验证规范(确保符合要求)
103
+
104
+ ---
105
+
106
+ ## 📦 项目特定配置
107
+
108
+ <!-- CUSTOM_START -->
109
+ <!-- 在这里添加你的项目特定规范,这些内容会在配置更新时被保留 -->
110
+
111
+ ### 国际化规范
112
+
113
+ - 所有文案使用 `$t('key')` 格式
114
+ - 新增文案需同时添加中英文翻译
115
+
116
+ ### API 调用规范
117
+
118
+ - 统一使用 `/src/api/` 目录管理接口
119
+ - 接口命名遵循 RESTful 风格
120
+
121
+ ### 组件开发规范
122
+
123
+ - 使用 Composition API
124
+ - 使用 `<script setup>` 语法
125
+ - 导出类型定义
126
+
127
+ <!-- CUSTOM_END -->
128
+
129
+ ---
130
+
131
+ ## 🚫 禁止事项
132
+
133
+ ### 文档创建零容忍
134
+
135
+ - ❌ **绝对禁止**:用户未明说时创建任何 .md 文档
136
+ - ❌ **禁止主动询问**:"是否需要创建文档?"
137
+ - ✅ **正确做法**:仅在用户明确要求时创建文档
138
+
139
+ ### 代码质量零容忍
140
+
141
+ **每次编辑后必检:**
142
+ - ✅ 所有开始标签都有对应的结束标签
143
+ - ✅ 缩进正确,嵌套层级清晰
144
+ - ✅ 没有孤立的标签或重复的开始标签
145
+ - ✅ Vue SFC 结构完整:`<template>` + `<script>` + `<style>`
146
+
147
+ ---
148
+
149
+ ## 📚 相关资源
150
+
151
+ - [MCP Token 优化指南](https://github.com/ForLear/copilot-prompts/blob/main/docs/guides/MCP_TOKEN_OPTIMIZATION.md)
152
+ - [预设场景列表](https://github.com/ForLear/copilot-prompts/blob/main/mcp-server/README.md#预设场景)
153
+ - [规范库结构](https://github.com/ForLear/copilot-prompts/tree/main/standards)
154
+
155
+ ---
156
+
157
+ **维护者**: MTA 工作室
158
+ **最后更新**: 2026-01-09
@@ -0,0 +1,145 @@
1
+ # Vue API Layer 模板
2
+
3
+ > Axios + Mock 完整封装,支持多种 UI 框架
4
+
5
+ ## 📋 模板信息
6
+
7
+ - **适用框架**: Vue 3 + TypeScript
8
+ - **构建工具**: Vite / Webpack
9
+ - **UI 框架**: Element Plus / Ant Design Vue / Naive UI / 其他
10
+
11
+ ## 📦 包含文件
12
+
13
+ ```
14
+ api-layer/
15
+ ├── _CONFIG.md # 本文件
16
+ ├── request.ts # Axios 核心封装
17
+ ├── mock/
18
+ │ └── index.ts # Mock 工具函数
19
+ ├── modules/
20
+ │ ├── index.ts # 模块导出
21
+ │ └── _template.ts # API 模块模板
22
+ ├── index.ts # 统一入口
23
+ └── types.ts # 类型定义
24
+ ```
25
+
26
+ ## 🔧 依赖要求
27
+
28
+ ```json
29
+ {
30
+ "dependencies": {
31
+ "axios": "^1.6.0"
32
+ }
33
+ }
34
+ ```
35
+
36
+ ## 🚀 快速开始
37
+
38
+ ### 1. 复制文件
39
+
40
+ 将本目录下所有文件(除 `_CONFIG.md`)复制到项目的 `src/api/` 目录
41
+
42
+ ### 2. 配置环境变量
43
+
44
+ ```bash
45
+ # .env.development
46
+ VITE_API_BASE_URL=/api
47
+ VITE_MOCK_ENABLED=true
48
+
49
+ # .env.production
50
+ VITE_API_BASE_URL=https://api.example.com
51
+ VITE_MOCK_ENABLED=false
52
+ ```
53
+
54
+ ### 3. 适配 UI 框架
55
+
56
+ 编辑 `request.ts`,找到 `showMessage` 对象,替换为你的 UI 框架:
57
+
58
+ ```typescript
59
+ // Element Plus
60
+ import { ElMessage } from 'element-plus'
61
+ const showMessage = {
62
+ success: (msg: string) => ElMessage.success(msg),
63
+ error: (msg: string) => ElMessage.error(msg),
64
+ warning: (msg: string) => ElMessage.warning(msg),
65
+ }
66
+
67
+ // Ant Design Vue
68
+ import { message } from 'ant-design-vue'
69
+ const showMessage = {
70
+ success: (msg: string) => message.success(msg),
71
+ error: (msg: string) => message.error(msg),
72
+ warning: (msg: string) => message.warning(msg),
73
+ }
74
+
75
+ // Naive UI
76
+ import { useMessage } from 'naive-ui'
77
+ // 需要在 setup 中使用,建议封装为工具函数
78
+ ```
79
+
80
+ ### 4. 适配后端响应格式
81
+
82
+ 编辑 `request.ts` 响应拦截器,调整业务状态码判断:
83
+
84
+ ```typescript
85
+ // 常见格式 A: { code: 0, data, message }
86
+ if (res.code === 0) return res
87
+
88
+ // 常见格式 B: { code: 200, data, msg }
89
+ if (res.code === 200) return res
90
+
91
+ // 常见格式 C: { success: true, data, message }
92
+ if (res.success === true) return res
93
+ ```
94
+
95
+ ### 5. 创建业务模块
96
+
97
+ 复制 `modules/_template.ts`,重命名为业务模块名(如 `user.ts`),修改内容。
98
+
99
+ ### 6. 导出模块
100
+
101
+ 编辑 `modules/index.ts`,添加导出:
102
+
103
+ ```typescript
104
+ export * as userApi from './user'
105
+ ```
106
+
107
+ ---
108
+
109
+ ## ⚙️ 配置项
110
+
111
+ ### Token 配置
112
+
113
+ | 配置项 | 位置 | 说明 |
114
+ |--------|------|------|
115
+ | `TOKEN_KEY` | request.ts | localStorage 存储键名 |
116
+ | `USER_KEY` | request.ts | 用户信息存储键名 |
117
+ | `NO_TOKEN_URLS` | request.ts | 无需 Token 的白名单 |
118
+ | Token 传递方式 | 请求拦截器 | `Authorization: Bearer xxx` 或 `headers.token` |
119
+
120
+ ### 响应配置
121
+
122
+ | 配置项 | 位置 | 说明 |
123
+ |--------|------|------|
124
+ | 成功状态码 | 响应拦截器 | `code === 0` 或 `code === 200` |
125
+ | 错误消息字段 | 响应拦截器 | `message` 或 `msg` |
126
+ | 登录过期处理 | 响应拦截器 | 清除 Token、跳转登录页 |
127
+
128
+ ### 类型配置
129
+
130
+ | 配置项 | 位置 | 说明 |
131
+ |--------|------|------|
132
+ | 响应结构 | types.ts | `ApiResponse<T>` |
133
+ | 分页参数 | types.ts | `PageParams` |
134
+ | 分页数据 | types.ts | `PageData<T>` |
135
+
136
+ ---
137
+
138
+ ## 📚 相关文档
139
+
140
+ - 详细规范:[vue-api-mock-layer.md](../../../standards/patterns/vue-api-mock-layer.md)
141
+
142
+ ---
143
+
144
+ **版本**: v1.0
145
+ **更新日期**: 2025-12-25
@@ -0,0 +1,58 @@
1
+ /**
2
+ * API 统一入口
3
+ *
4
+ * @example
5
+ * // 1. 导入模块使用
6
+ * import { userApi } from '@/api'
7
+ * const res = await userApi.getList(params)
8
+ *
9
+ * // 2. 使用 wrap 函数(推荐)
10
+ * import { wrap, userApi } from '@/api'
11
+ * const [res, err] = await wrap(userApi.getList(params))
12
+ * if (err) return
13
+ *
14
+ * // 3. 直接使用请求方法
15
+ * import { get, post } from '@/api'
16
+ * const res = await post('/custom/url', data)
17
+ */
18
+
19
+ // 基础请求方法
20
+ export {
21
+ get,
22
+ post,
23
+ put,
24
+ del,
25
+ wrap,
26
+ downloadFile,
27
+ uploadFile,
28
+ } from './request'
29
+
30
+ // Axios 实例
31
+ export { default as axios } from './request'
32
+
33
+ // Token 管理
34
+ export {
35
+ getToken,
36
+ setToken,
37
+ clearToken,
38
+ getUserInfo,
39
+ setUserInfo,
40
+ } from './request'
41
+
42
+ // API 模块
43
+ export * from './modules'
44
+
45
+ // Mock 配置
46
+ export { MOCK_ENABLED } from './mock'
47
+
48
+ // 类型导出
49
+ export type {
50
+ ApiResponse,
51
+ PageParams,
52
+ PageData,
53
+ PageResponse,
54
+ ID,
55
+ CommonStatus,
56
+ SortParams,
57
+ DateRangeParams,
58
+ } from './types'