bytefun-ai-mcp 1.0.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/README.md ADDED
@@ -0,0 +1,142 @@
1
+ # ByteFun AI MCP 服务
2
+
3
+ ByteFun AI MCP服务 - 打通原型设计、UI设计与设计稿转代码、跨平台原生代码开发等的服务平台。
4
+
5
+ ## 功能概述
6
+
7
+ ByteFun AI MCP服务提供四大核心功能模块,实现从设计到代码的完整工作流:
8
+
9
+ 1. **原型设计优化** - 将用户输入的需求转换为带有原型设计规范的产品原型提示词,建立产品设计基础
10
+ 2. **UI设计优化** - 将用户输入的需求转换为带有UI设计规范的静态HTML+CSS设计提示词,实现设计稿到代码的转换
11
+ 3. **代码开发优化** - 将用户输入的需求转换为带有完整开发规则的TypeScript代码开发提示词,支持跨平台原生开发
12
+ 4. **🤖 AI全自动智能分发** - 自动分析用户需求并执行相应的优化工具,一键获得所有结果
13
+
14
+ ## 安装
15
+
16
+ ### 前置要求
17
+ - Node.js 18+
18
+ - npm 或 yarn
19
+
20
+ ### 全局安装
21
+ ```bash
22
+ npm install -g bytefun-ai-mcp
23
+ ```
24
+
25
+ ### 本地安装
26
+ ```bash
27
+ npm install bytefun-ai-mcp
28
+ ```
29
+
30
+ ## 使用方法
31
+
32
+ ### ⚠️ 重要说明
33
+
34
+ **工具独立性**:ByteFun AI MCP服务提供三个完全独立的工具,每次只能调用一个工具,不会根据用户输入自动选择或组合调用。
35
+
36
+ **使用机制**:
37
+ - 🎯 **单一需求**:如果只需要UI设计,选择 `optimize_ui_design_prompt` 工具
38
+ - 🔄 **复合需求**:如果需要"原型+UI+代码",需要依次调用三个工具
39
+ - 👤 **用户选择**:由用户或MCP客户端明确指定调用哪个工具
40
+
41
+ **典型使用流程**:
42
+ 1. **完整产品开发流程**:原型设计 → UI设计 → 代码开发
43
+ 2. **UI到代码流程**:UI设计 → 代码开发
44
+ 3. **单一功能开发**:选择对应的单个工具
45
+
46
+ ### 在MCP客户端中配置
47
+
48
+ 将以下配置添加到你的MCP客户端配置文件中:
49
+
50
+ ```json
51
+ {
52
+ "mcpServers": {
53
+ "bytefun-ai-mcp": {
54
+ "command": "bytefun-ai-mcp",
55
+ "args": []
56
+ }
57
+ }
58
+ }
59
+ ```
60
+
61
+ ### 可用工具
62
+
63
+ #### 1. optimize_code_prompt
64
+ 优化代码开发提示词,支持跨平台原生开发
65
+
66
+ **参数:**
67
+ - `user_input` (string): 用户输入的开发需求描述
68
+
69
+ **示例:**
70
+ ```
71
+ 用户输入: "创建一个用户登录页面,支持手机号和邮箱登录"
72
+ 优化后: 包含完整TypeScript开发规则 + 跨平台原生开发指导 + "# 用户需求描述\n创建一个用户登录页面,支持手机号和邮箱登录"
73
+ ```
74
+
75
+ #### 2. optimize_ui_design_prompt
76
+ 优化UI设计提示词,实现设计稿到代码的转换
77
+
78
+ **参数:**
79
+ - `user_input` (string): 用户输入的UI设计需求
80
+
81
+ **示例:**
82
+ ```
83
+ 用户输入: "设计一个现代化的电商商品列表页面"
84
+ 优化后: 包含UI设计规范 + 设计稿转代码规则 + "# 用户需求描述\n设计一个现代化的电商商品列表页面"
85
+ ```
86
+
87
+ #### 3. optimize_prototype_design_prompt
88
+ 优化原型设计提示词,打通设计到开发流程
89
+
90
+ **参数:**
91
+ - `user_input` (string): 用户输入的原型设计需求
92
+
93
+ **示例:**
94
+ ```
95
+ 用户输入: "制作一个社交APP的动态发布原型"
96
+ 优化后: 包含原型设计规范 + 交互流程设计 + "# 用户需求描述\n制作一个社交APP的动态发布原型"
97
+ ```
98
+
99
+ ## 核心价值
100
+
101
+ ### 🎨 完整设计到代码链路
102
+ - **原型设计** → **UI设计** → **代码实现**
103
+ - 三个环节无缝衔接,确保产品一致性
104
+
105
+ ### 🔧 跨平台原生开发支持
106
+ - TypeScript代码规范
107
+ - 跨平台框架适配
108
+ - 原生性能优化指导
109
+
110
+ ### 🚀 AI驱动的智能优化
111
+ - 智能提示词增强
112
+ - 上下文理解优化
113
+ - 输出质量保证
114
+
115
+ ### ⚡ 高效的开发体验
116
+ - 零文件依赖架构
117
+ - 毫秒级响应速度
118
+ - 内存使用优化
119
+
120
+ ## 技术架构
121
+
122
+ - **MCP协议**: 基于Model Context Protocol标准
123
+ - **TypeScript**: 类型安全的开发体验
124
+ - **零依赖**: 硬编码模板,无外部文件依赖
125
+ - **高性能**: 启动时间<1ms,内存占用固定
126
+
127
+ ## 许可证
128
+
129
+ UNLICENSED - 此软件为ByteFun专有产品,不开源。
130
+
131
+ ## 问题反馈与技术支持
132
+
133
+ 如需技术支持、问题反馈或了解更多信息,请通过以下方式联系:
134
+
135
+ 🌐 **官方网站**: [https://www.bytefungo.com](https://www.bytefungo.com)
136
+ 📧 **技术支持**: support@bytefungo.com
137
+
138
+ 我们提供专业的技术支持服务,帮助您更好地使用ByteFun AI MCP服务。
139
+
140
+ ---
141
+
142
+ © 2024 ByteFun. All rights reserved.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/build/index.js ADDED
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env node
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
+ import { PromptOptimizer } from './prompt-optimizer.js';
6
+ const server = new Server({
7
+ name: 'bytefun-ai-prompt',
8
+ version: '1.0.0',
9
+ });
10
+ const promptOptimizer = new PromptOptimizer();
11
+ // List available tools
12
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
13
+ return {
14
+ tools: [
15
+ {
16
+ name: 'optimize_code_prompt',
17
+ description: 'Optimize prompt for TypeScript code development by adding code development rules and marking user input',
18
+ inputSchema: {
19
+ type: 'object',
20
+ properties: {
21
+ user_input: {
22
+ type: 'string',
23
+ description: 'User input prompt that needs to be optimized for code development'
24
+ }
25
+ },
26
+ required: ['user_input']
27
+ }
28
+ },
29
+ {
30
+ name: 'optimize_ui_design_prompt',
31
+ description: 'Optimize prompt for UI design by adding UI design rules and marking user input',
32
+ inputSchema: {
33
+ type: 'object',
34
+ properties: {
35
+ user_input: {
36
+ type: 'string',
37
+ description: 'User input prompt that needs to be optimized for UI design'
38
+ }
39
+ },
40
+ required: ['user_input']
41
+ }
42
+ },
43
+ {
44
+ name: 'optimize_prototype_design_prompt',
45
+ description: 'Optimize prompt for prototype design by adding prototype design rules and marking user input',
46
+ inputSchema: {
47
+ type: 'object',
48
+ properties: {
49
+ user_input: {
50
+ type: 'string',
51
+ description: 'User input prompt that needs to be optimized for prototype design'
52
+ }
53
+ },
54
+ required: ['user_input']
55
+ }
56
+ }
57
+ ]
58
+ };
59
+ });
60
+ // Handle tool calls
61
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
62
+ const { name, arguments: args } = request.params;
63
+ if (!args) {
64
+ throw new Error('Missing arguments');
65
+ }
66
+ try {
67
+ switch (name) {
68
+ case 'optimize_code_prompt':
69
+ const optimizedCodePrompt = await promptOptimizer.optimizeCodePrompt(args.user_input);
70
+ return {
71
+ content: [
72
+ {
73
+ type: 'text',
74
+ text: optimizedCodePrompt
75
+ }
76
+ ]
77
+ };
78
+ case 'optimize_ui_design_prompt':
79
+ const optimizedUIPrompt = await promptOptimizer.optimizeUIDesignPrompt(args.user_input);
80
+ return {
81
+ content: [
82
+ {
83
+ type: 'text',
84
+ text: optimizedUIPrompt
85
+ }
86
+ ]
87
+ };
88
+ case 'optimize_prototype_design_prompt':
89
+ const optimizedPrototypePrompt = await promptOptimizer.optimizePrototypeDesignPrompt(args.user_input);
90
+ return {
91
+ content: [
92
+ {
93
+ type: 'text',
94
+ text: optimizedPrototypePrompt
95
+ }
96
+ ]
97
+ };
98
+ default:
99
+ throw new Error(`Unknown tool: ${name}`);
100
+ }
101
+ }
102
+ catch (error) {
103
+ return {
104
+ content: [
105
+ {
106
+ type: 'text',
107
+ text: `Error: ${error instanceof Error ? error.message : String(error)}`
108
+ }
109
+ ],
110
+ isError: true
111
+ };
112
+ }
113
+ });
114
+ async function main() {
115
+ const transport = new StdioServerTransport();
116
+ await server.connect(transport);
117
+ console.error('ByteFun AI Prompt MCP server running on stdio');
118
+ }
119
+ main().catch(console.error);
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFFOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsV0FBVyxFQUFFLHlHQUF5RztnQkFDdEgsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLG1FQUFtRTt5QkFDakY7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN6QjthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsV0FBVyxFQUFFLGdGQUFnRjtnQkFDN0YsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFF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QG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zZXJ2ZXIvaW5kZXguanMnO1xuaW1wb3J0IHsgU3RkaW9TZXJ2ZXJUcmFuc3BvcnQgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9zdGRpby5qcyc7XG5pbXBvcnQge1xuICBDYWxsVG9vbFJlcXVlc3RTY2hlbWEsXG4gIExpc3RUb29sc1JlcXVlc3RTY2hlbWEsXG4gIFRvb2wsXG59IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvdHlwZXMuanMnO1xuaW1wb3J0IHsgUHJvbXB0T3B0aW1pemVyIH0gZnJvbSAnLi9wcm9tcHQtb3B0aW1pemVyLmpzJztcblxuY29uc3Qgc2VydmVyID0gbmV3IFNlcnZlcihcbiAge1xuICAgIG5hbWU6ICdieXRlZnVuLWFpLXByb21wdCcsXG4gICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgfVxuKTtcblxuY29uc3QgcHJvbXB0T3B0aW1pemVyID0gbmV3IFByb21wdE9wdGltaXplcigpO1xuXG4vLyBMaXN0IGF2YWlsYWJsZSB0b29sc1xuc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKExpc3RUb29sc1JlcXVlc3RTY2hlbWEsIGFzeW5jICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b29sczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVHlwZVNjcmlwdCBjb2RlIGRldmVsb3BtZW50IGJ5IGFkZGluZyBjb2RlIGRldmVsb3BtZW50IHJ1bGVzIGFuZCBtYXJraW5nIHVzZXIgaW5wdXQnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIGJ5IGFkZGluZyBVSSBkZXNpZ24gcnVsZXMgYW5kIG1hcmtpbmcgdXNlciBpbnB1dCcsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9wcm90b3R5cGVfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBwcm90b3R5cGUgZGVzaWduIGJ5IGFkZGluZyBwcm90b3R5cGUgZGVzaWduIHJ1bGVzIGFuZCBtYXJraW5nIHVzZXIgaW5wdXQnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIHByb3RvdHlwZSBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfVxuICAgIF0gYXMgVG9vbFtdXG4gIH07XG59KTtcblxuLy8gSGFuZGxlIHRvb2wgY2FsbHNcbnNlcnZlci5zZXRSZXF1ZXN0SGFuZGxlcihDYWxsVG9vbFJlcXVlc3RTY2hlbWEsIGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gIGNvbnN0IHsgbmFtZSwgYXJndW1lbnRzOiBhcmdzIH0gPSByZXF1ZXN0LnBhcmFtcztcblxuICBpZiAoIWFyZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgYXJndW1lbnRzJyk7XG4gIH1cblxuICB0cnkge1xuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSAnb3B0aW1pemVfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFVJUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9wcm90b3R5cGVfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFByb3RvdHlwZVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVByb3RvdHlwZURlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkUHJvdG90eXBlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdG9vbDogJHtuYW1lfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgIHRleHQ6IGBFcnJvcjogJHtlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcil9YFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgaXNFcnJvcjogdHJ1ZVxuICAgIH07XG4gIH1cbn0pO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgU3RkaW9TZXJ2ZXJUcmFuc3BvcnQoKTtcbiAgYXdhaXQgc2VydmVyLmNvbm5lY3QodHJhbnNwb3J0KTtcbiAgY29uc29sZS5lcnJvcignQnl0ZUZ1biBBSSBQcm9tcHQgTUNQIHNlcnZlciBydW5uaW5nIG9uIHN0ZGlvJyk7XG59XG5cbm1haW4oKS5jYXRjaChjb25zb2xlLmVycm9yKTsgIl19
@@ -0,0 +1,35 @@
1
+ /**
2
+ * ByteFun AI MCP 提示词优化器
3
+ *
4
+ * 重要说明:
5
+ * - 本类提供三个独立的优化工具,每个工具处理不同类型的需求
6
+ * - 每次只能调用一个工具方法,不会自动组合或选择
7
+ * - 如果用户需求涉及多个方面,需要分别调用多个工具
8
+ *
9
+ * 使用方式:
10
+ * 1. 原型设计需求 → 调用 optimizePrototypeDesignPrompt()
11
+ * 2. UI设计需求 → 调用 optimizeUIDesignPrompt()
12
+ * 3. 代码开发需求 → 调用 optimizeCodePrompt()
13
+ * 4. 复合需求 → 依次调用多个相关工具
14
+ */
15
+ export declare class PromptOptimizer {
16
+ private readonly codePromptTemplate;
17
+ private readonly uiDesignPromptTemplate;
18
+ private readonly prototypeDesignPromptTemplate;
19
+ /**
20
+ * 优化代码开发提示词
21
+ * 注意:此方法专门处理代码开发相关需求,不会自动处理UI设计或原型设计内容
22
+ */
23
+ optimizeCodePrompt(userInput: string): Promise<string>;
24
+ /**
25
+ * 优化UI设计提示词
26
+ * 注意:此方法专门处理UI设计相关需求,不会自动处理代码开发或原型设计内容
27
+ */
28
+ optimizeUIDesignPrompt(userInput: string): Promise<string>;
29
+ /**
30
+ * 优化原型设计提示词
31
+ * 注意:此方法专门处理原型设计相关需求,不会自动处理UI设计或代码开发内容
32
+ */
33
+ optimizePrototypeDesignPrompt(userInput: string): Promise<string>;
34
+ }
35
+ //# sourceMappingURL=prompt-optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA0FlC;IAED,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CA4BvC;IAEA,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CA+B9C;IAEA;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOhE;;;OAGG;IACG,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAMxE"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * ByteFun AI MCP 提示词优化器
3
+ *
4
+ * 重要说明:
5
+ * - 本类提供三个独立的优化工具,每个工具处理不同类型的需求
6
+ * - 每次只能调用一个工具方法,不会自动组合或选择
7
+ * - 如果用户需求涉及多个方面,需要分别调用多个工具
8
+ *
9
+ * 使用方式:
10
+ * 1. 原型设计需求 → 调用 optimizePrototypeDesignPrompt()
11
+ * 2. UI设计需求 → 调用 optimizeUIDesignPrompt()
12
+ * 3. 代码开发需求 → 调用 optimizeCodePrompt()
13
+ * 4. 复合需求 → 依次调用多个相关工具
14
+ */
15
+ export class PromptOptimizer {
16
+ codePromptTemplate = `# 你是typescript代码专家,根据'规则'、'例子'和用户输入的需求描述,完成代码开发
17
+
18
+ ## 项目框架描述
19
+ - 整个项目框架分为程序入口Application.ts、程序全局静态变量StaticData.ts、所有页面page文件夹、UI组件库uilib文件夹、后端接口AllBackEndApi.ts、唯一的能力方法AllFunction.ts。
20
+ - 这是一个新型开发框架,UI界面已经使用可视化工具生成了所有的静态的UI页面了,然后你需要使用ts代码开发业务逻辑与UI交互逻辑,因此编写ts代码只需要按照用户需求描述完成业务逻辑与UI交互的开发。
21
+
22
+ ## 规则:
23
+ 1、UI界面已经开发完毕,不需要增删改任何静态UI界面。
24
+ 2、你只需要按照用户需求描述使用ts代码完成业务逻辑与UI交互的开发
25
+ 3、请严格按照唯一的能力方法AllFunction.ts,不要新增、删除或修改任何AllFunction接口声明;也不要调用其他未在AllFunction中出现的函数或模块
26
+ 4、所有后端API调用必须使用AllBackEndApi类中定义的方法,不允许使用未在AllBackEndApi中定义的后端API。
27
+ 5、UI界面、UI默认数据、UI样式已经全部生成好的了,你不能在initView方法里面擅自添加一些view的UI样式或属性等初始化,除非用户需求描述明确指出需要更改哪些样式或属性。
28
+ 6、字符串要以单引号来写,如:'我的'。
29
+ 7、任何方法函数定义,不得使用async和Promise,所有异步操作必须使用箭头函数。
30
+ 8、所有Page的子类,都允许添加构造函数和构造函数的参数,这些参数就用来页面跳转时页面之间传递数据使用,比如:商品列表页ProjectListPage跳到商品详情页ProjectDetailPage,那么ProjectListPage应该要传给ProjectDetailPage一个参数:productID。所以,ProjectDetailPage的页面参数声明和构造函数应该是这样写:private productID: string
31
+
32
+ constructor(productID: string) {
33
+ super()
34
+ this.productID = productID
35
+ }。
36
+ 9、View相关变量必须在xxxPage类开始时声明,必须声明具体的View类型如:InputView,而不是直接声明类型为BaseView,所有View必须findViewByID初始化,如:saveButton: ButtonView = this.findViewByID('saveButton') as ButtonView。这里的findViewByID其中id参数是在该页面的html文件里面获取到的id值。
37
+ 10、响应式引用ref的使用:类型vue3的ref,可以将一个值变成响应式的,从而在该值发生变化时,自动触发相关界面的更新。
38
+ 11、computed的使用:类型vue3的computed,当你需要根据一个或多个响应式源(ref)计算出一个新的值时,就用 computed
39
+ 12、如果是多个页面共用的数据变量,可以考虑声明为全局静态变量。
40
+ 13、全局静态变量在关闭APP或者网页后会清理掉的,所以你要思考清楚哪些数据变量需要持久化储存,哪些是全局静态变量,持久化接口:saveDatabaseXxx和getDatabaseDataXxx,比如是否已经弹出过广告弹框,这个应该持久化储存。
41
+ 14、所有的网络拦截的全局统一处理需要在Application中的onGlobalNetSuccessIntercept(联网成功后,后端业务正确与错误都会回调到这里,所以在这里可统一处理业务错误码)或onGlobalNetFailIntercept(网络不通,连接失败情况会回调到这里)里面处理。
42
+ 15、页面跳转使用AllFunction.navigateTo实现,navigateTo传入Page的子类对象,如:AllFunction.navigateTo(new ProductPage(this.productID))。
43
+ 16、页面内的网络请求业务处理不得写在Application的onGlobalNetSuccessIntercept里面。
44
+ 17、字符串不得直接进行boolean运算然后赋值给boolean类型的变量,需要在字符串前面添加两个非运算:!!。比如正确的写法:const isAdd = !!this.inputView.text && isNew
45
+ 18、如用户描述没有明确说明需要toast提示,你不得擅自进行Toast。
46
+ 19、延时执行AllFunction.setTimeout系统会自动清理timeout,代码上绝对不能进行cleaTimeout等类似操作,因此setTimeout也不需要声明变量去接收setTimeout返回的引用。
47
+ 20、所有代码不得使用interface,数据实体entity,必须使用class定义,不得使用interface,使用之前需要new实例化
48
+ 21、每一个页面(如loginPage)建议在page文件夹下面创建一个页面文件夹(如login),然后页面的ts文件(如loginPage.ts)创建在页面文件夹下面,页面文件夹下还需创建一个页面数据ts文件(如loginPageData.ts),这样如loginPage负责业务逻辑和交互逻辑,如loginPageData负责数据声明定义、初始化与管理等。
49
+ 22、页面文件夹下面的页面html(如loginPageView.html),这是可视化已经生成的UI界面的节点映射,该文件只是用于你更加理解该页面的UI结构和组件命名而设立的,该文件不参与编译,仅仅是信息文档提示作用,因此不可以修改这个html文件。
50
+ 23、只给该页面使用的entity需要建立在该页面文件夹下面的entity文件夹下面。
51
+ 24、lib文件夹是所有UI组件和能力方法的定义声明,底层框架已注入实现具体逻辑,因此你不需要也不允许增删改lib文件夹里面的代码。
52
+
53
+ ## 例子:
54
+ export default class HomePage extends Page {
55
+ // 数据对象实例声明
56
+ private homePageData: HomePageData = new HomePageData()
57
+ // 视图对象实例声明
58
+ private saveButton: ButtonView = this.findViewByID('saveButton') as ButtonView
59
+ private titleTextView: TextView = this.findViewByID('titleTextView') as TextView
60
+ private saveCountTextView: TextView = this.findViewByID('saveCountTextView') as TextView
61
+ private allSaveCountTextView: TextView = this.findViewByID('allSaveCountTextView') as TextView
62
+ private saveTipsTextView: TextView = this.findViewByID('saveTipsTextView') as TextView
63
+ // ref数据对象引用声明
64
+ private saveCountRef = ref<number>(this.homePageData.saveCount)
65
+ private allSaveCountRef = ref<number>(0)
66
+ // 普通变量声明
67
+ private saveTips = ''
68
+
69
+ protected onPageCreate(): void {
70
+ super.onPageCreate()
71
+ this.initData()
72
+ this.initView()
73
+ }
74
+
75
+ private initData(): void {
76
+ this.saveTips = this.saveCountRef.value > 5 ? '保存成功' : '保存失败'
77
+ this.allSaveCountRef = computed(() => {
78
+ let otherCount = 2
79
+ otherCount += this.saveCountRef.value
80
+ if (otherCount > 5) {
81
+ return this.homePageData.saveCount + 5
82
+ } else {
83
+ return this.homePageData.saveCount + 10
84
+ }
85
+ })
86
+ }
87
+
88
+ private initView(): void {
89
+ this.saveCountTextView.text = this.saveCountRef.value + '个'
90
+ this.allSaveCountTextView.text = this.allSaveCountRef.value + '个'
91
+ this.saveButton.onClick = () => {
92
+ this.saveCountRef.value++
93
+ this.homePageData.title = 'Home Page'
94
+ this.titleTextView.text = this.homePageData.title
95
+ this.saveTipsTextView.text = this.saveTips
96
+ AllFunction.saveDatabaseNumber('saveCount', this.saveCountRef.value)
97
+ }
98
+ }
99
+
100
+ }
101
+
102
+ export default class HomePageData {
103
+ public title: string = ''
104
+ public saveCount: number = 0
105
+ public userInfo: BookInfo = new BookInfo()
106
+ }`;
107
+ uiDesignPromptTemplate = `# 你是专业的UI设计师和前端开发工程师,现在需要根据'生成规则'和'需求描述'来生成静态html代码,并按照'写入文件规则'将生成html写到html文件。
108
+
109
+ ## 生成规则
110
+ - 必须只能使用静态html+css的写法完成静态html+css网页,该网页代码无js的代码,无js业务与交互逻辑,绝对不能使用vue、React、React Native、javascript等代码实现。
111
+ - 必须要以手机屏幕分辨率:376*700。的规则来设计。
112
+ - 设计样式规范必须遵循'样式UI规范',如果用户没有指定'样式UI规范',那就必须参考市面上流行的专业的APP/网站的相关页面的布局、样式、风格设计。
113
+ - html的body节点必须写死width=376, height=700
114
+ - 每一个节点必须添加一个组件类型属性:vtype。比如文字vtype="text"、按钮vtype="button"、文字按钮vtype="textButton"、输入框vtype="input"、图标vtype="icon"、图片vtype="image"、矩形vtype="rect"、圆形vtype="circle"、线条vtype="line"、基础容器vtype="container"、卡片容器vtype="card"、grid容器vtype="grid"、单选vtype="radio"、多选vtype="checkBox"、竖向列表vtype="verticalListView"、横向列表vtype="horizontalListView"、轮播vtype="viewPager"、轮播指示器容器vtype="IndicatorContainer"、Tab选项卡容器vtype="tabContainer"、Tab选项卡菜单栏vtype="tabMenuBar"、底部TAB导航栏vtype="bottomTabNavigateBar"、对话框vtype="dialog"、Toast提示vtype="toast"、下拉菜单vtype="dropDownMenu"、侧滑面板vtype="sideSlidePanel"等以此类推。
115
+ - 除了vtype为'text'的所有节点必须添加一个英文id属性和中文名字name属性。你需要根据功能逻辑和组件类型来命名id属性和name属性,描述该元素在产品中的作用,命名使用简洁的风格。
116
+ - 每一个节点必须添加这四个新属性:x1、y1、w1、h1。x1和y1是相对于屏幕左上角的像素绝对值,w1和h1是像素绝对值。这四个属性只起到信息提示作用,不会作用于布局和显示,但信息提示非常重要,因此你必须要给出准确的x1、y1、w1、h1的像素绝对值。
117
+ - 如果是竖向列表、横向列表、轮播、tab选项卡的容器组件,里面的卡片item样式如果一样的话,只需要列出一个item的div即可,类似android的RecyclerView的卡片ViewHolder复用机制,只需要声明一个样式的卡片ViewHolder。
118
+ - 所有关于像素大小的都必须使用px,如:15px。不得使用em、百分比%等等其他的。
119
+ - html的内容除非有要求使用非中文,默认都使用中文
120
+ - 节点的css样式不得使用before、after方式,如不可以这样写:.text:before, .text:after {
121
+ position: absolute;
122
+ top: 50%;
123
+ width: 60px;
124
+ height: 1px;
125
+ background: #e5e5e5;
126
+ }
127
+ - 如果是图片image节点,必须使用img标签,绝对不能使用div标签。
128
+ - 如果是图标icon节点,绝对不能使用div标签,图标使用svg绘制。
129
+ - 如果节点是active、selected、disabled状态,需要添加属性:state="active"或state="selected"或state="disabled"
130
+ - 注意背景色和文字色冲突问题,比如浅背景色+浅色文字色会导致文字看不清,同样深色也是如此
131
+ - css的代码必须内联写出来,绝对不能使用外联,如不能使用:href="style.css"。
132
+
133
+ ## 写入文件规则
134
+ - 将生成的一个html+css代码写入工程根目录下面的.bytefun/tempUIDesign.html里面,只将html+css的代码写入文件,其他任何注释、解释、澄清、总结等文字不得写入该文件。
135
+ `;
136
+ prototypeDesignPromptTemplate = `# 你是专业的产品原型设计师和用户体验设计师,现在需要根据'生成规则'和'需求描述'来生成产品原型静态html代码,并按照'写入文件规则'将生成html写到html文件。
137
+
138
+ ## 生成规则
139
+ - 必须只能使用静态html+css的写法完成产品原型静态html+css网页,该网页代码无js的代码,无js业务与交互逻辑,绝对不能使用vue、React、React Native、javascript等代码实现。
140
+ - 必须要以手机屏幕分辨率:376*700。的规则来设计。
141
+ - 原型设计风格必须遵循'产品原型规范',如果用户没有指定'产品原型规范',那就必须参考业界流行的低保真到中保真原型设计风格,重点展示功能布局、用户流程和交互逻辑,而非视觉美感。
142
+ - html的body节点必须写死width=376, height=700
143
+ - 每一个节点必须添加一个组件类型属性:vtype。比如文字vtype="text"、按钮vtype="button"、文字按钮vtype="textButton"、输入框vtype="input"、图标vtype="icon"、图片vtype="image"、矩形vtype="rect"、圆形vtype="circle"、线条vtype="line"、基础容器vtype="container"、卡片容器vtype="card"、grid容器vtype="grid"、单选vtype="radio"、多选vtype="checkBox"、竖向列表vtype="verticalListView"、横向列表vtype="horizontalListView"、轮播vtype="viewPager"、轮播指示器容器vtype="IndicatorContainer"、Tab选项卡容器vtype="tabContainer"、Tab选项卡菜单栏vtype="tabMenuBar"、底部TAB导航栏vtype="bottomTabNavigateBar"、对话框vtype="dialog"、Toast提示vtype="toast"、下拉菜单vtype="dropDownMenu"、侧滑面板vtype="sideSlidePanel"、占位符vtype="placeholder"、注释说明vtype="annotation"等以此类推。
144
+ - 除了vtype为'text'的所有节点必须添加一个英文id属性和中文名字name属性。你需要根据功能逻辑和组件类型来命名id属性和name属性,描述该元素在产品中的作用,命名使用简洁的风格。
145
+ - 每一个节点必须添加这四个新属性:x1、y1、w1、h1。x1和y1是相对于屏幕左上角的像素绝对值,w1和h1是像素绝对值。这四个属性只起到信息提示作用,不会作用于布局和显示,但信息提示非常重要,因此你必须要给出准确的x1、y1、w1、h1的像素绝对值。
146
+ - 所有关于像素大小的都必须使用px,如:15px。不得使用em、百分比%等等其他的。
147
+ - html的内容除非有要求使用非中文,默认都使用中文
148
+ - 节点的css样式不得使用before、after方式,如不可以这样写:.text:before, .text:after {
149
+ position: absolute;
150
+ top: 50%;
151
+ width: 60px;
152
+ height: 1px;
153
+ background: #e5e5e5;
154
+ }
155
+ - 如果是图片image节点,必须使用img标签,绝对不能使用div标签。
156
+ - 如果是图标icon节点,绝对不能使用div标签,图标使用简单的几何形状或文字表示。
157
+ - 如果节点是active、selected、disabled状态,需要添加属性:state="active"或state="selected"或state="disabled"
158
+ - 原型设计应使用简洁的色彩方案,重点突出关键功能和用户路径
159
+ - css的代码必须内联写出来,绝对不能使用外联,如不能使用:href="style.css"。
160
+ - 优先展示核心功能流程,减少装饰性元素,重点关注信息架构和交互逻辑
161
+ - 使用占位符(vtype="placeholder")来表示内容区域,使用注释说明(vtype="annotation")来解释功能逻辑
162
+ - 原型设计的边框线条可以使用虚线或较粗的实线来表示不同的功能区域
163
+ - 文字内容应该具有实际意义,能够说明功能用途,而不是lorem ipsum等占位文字
164
+
165
+ ## 写入文件规则
166
+ - 将生成的一个html+css代码写入工程根目录下面的.bytefun/tempPrototypeDesign.html里面,只将html+css的代码写入文件,其他任何注释、解释、澄清、总结等文字不得写入该文件。
167
+ `;
168
+ /**
169
+ * 优化代码开发提示词
170
+ * 注意:此方法专门处理代码开发相关需求,不会自动处理UI设计或原型设计内容
171
+ */
172
+ async optimizeCodePrompt(userInput) {
173
+ return `${this.codePromptTemplate}
174
+
175
+ # 用户需求描述
176
+ ${userInput}`;
177
+ }
178
+ /**
179
+ * 优化UI设计提示词
180
+ * 注意:此方法专门处理UI设计相关需求,不会自动处理代码开发或原型设计内容
181
+ */
182
+ async optimizeUIDesignPrompt(userInput) {
183
+ return `${this.uiDesignPromptTemplate}
184
+
185
+ # 用户需求描述
186
+ ${userInput}`;
187
+ }
188
+ /**
189
+ * 优化原型设计提示词
190
+ * 注意:此方法专门处理原型设计相关需求,不会自动处理UI设计或代码开发内容
191
+ */
192
+ async optimizePrototypeDesignPrompt(userInput) {
193
+ return `${this.prototypeDesignPromptTemplate}
194
+
195
+ # 用户需求描述
196
+ ${userInput}`;
197
+ }
198
+ }
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUNULGtCQUFrQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwRnRDLENBQUM7SUFFZ0Isc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E0QjNDLENBQUM7SUFFaUIsNkJBQTZCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0ErQmxELENBQUM7SUFFQTs7O09BR0c7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsU0FBaUI7UUFDeEMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0I7OztFQUduQyxTQUFTLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsc0JBQXNCLENBQUMsU0FBaUI7UUFDNUMsT0FBTyxHQUFHLElBQUksQ0FBQyxzQkFBc0I7OztFQUd2QyxTQUFTLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsNkJBQTZCLENBQUMsU0FBaUI7UUFDbkQsT0FBTyxHQUFHLElBQUksQ0FBQyw2QkFBNkI7OztFQUc5QyxTQUFTLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnl0ZUZ1biBBSSBNQ1Ag5o+Q56S66K+N5LyY5YyW5ZmoXG4gKiBcbiAqIOmHjeimgeivtOaYju+8mlxuICogLSDmnKznsbvmj5DkvpvkuInkuKrni6znq4vnmoTkvJjljJblt6XlhbfvvIzmr4/kuKrlt6XlhbflpITnkIbkuI3lkIznsbvlnovnmoTpnIDmsYJcbiAqIC0g5q+P5qyh5Y+q6IO96LCD55So5LiA5Liq5bel5YW35pa55rOV77yM5LiN5Lya6Ieq5Yqo57uE5ZCI5oiW6YCJ5oupXG4gKiAtIOWmguaenOeUqOaIt+mcgOaxgua2ieWPiuWkmuS4quaWuemdou+8jOmcgOimgeWIhuWIq+iwg+eUqOWkmuS4quW3peWFt1xuICogXG4gKiDkvb/nlKjmlrnlvI/vvJpcbiAqIDEuIOWOn+Wei+iuvuiuoemcgOaxgiDihpIg6LCD55SoIG9wdGltaXplUHJvdG90eXBlRGVzaWduUHJvbXB0KClcbiAqIDIuIFVJ6K6+6K6h6ZyA5rGCIOKGkiDosIPnlKggb3B0aW1pemVVSURlc2lnblByb21wdCgpICBcbiAqIDMuIOS7o+eggeW8gOWPkemcgOaxgiDihpIg6LCD55SoIG9wdGltaXplQ29kZVByb21wdCgpXG4gKiA0LiDlpI3lkIjpnIDmsYIg4oaSIOS+neasoeiwg+eUqOWkmuS4quebuOWFs+W3peWFt1xuICovXG5leHBvcnQgY2xhc3MgUHJvbXB0T3B0aW1pemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK90eXBlc2NyaXB05Luj56CB5LiT5a6277yM5qC55o2uJ+inhOWImSfjgIEn5L6L5a2QJ+WSjOeUqOaIt+i+k+WFpeeahOmcgOaxguaPj+i/sO+8jOWujOaIkOS7o+eggeW8gOWPkVxuXG4jIyDpobnnm67moYbmnrbmj4/ov7Bcbi0g5pW05Liq6aG555uu5qGG5p625YiG5Li656iL5bqP5YWl5Y+jQXBwbGljYXRpb24udHPjgIHnqIvluo/lhajlsYDpnZnmgIHlj5jph49TdGF0aWNEYXRhLnRz44CB5omA5pyJ6aG16Z2icGFnZeaWh+S7tuWkueOAgVVJ57uE5Lu25bqTdWlsaWLmlofku7blpLnjgIHlkI7nq6/mjqXlj6NBbGxCYWNrRW5kQXBpLnRz44CB5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPjgIJcbi0g6L+Z5piv5LiA5Liq5paw5Z6L5byA5Y+R5qGG5p6277yMVUnnlYzpnaLlt7Lnu4/kvb/nlKjlj6/op4bljJblt6XlhbfnlJ/miJDkuobmiYDmnInnmoTpnZnmgIHnmoRVSemhtemdouS6hu+8jOeEtuWQjuS9oOmcgOimgeS9v+eUqHRz5Luj56CB5byA5Y+R5Lia5Yqh6YC76L6R5LiOVUnkuqTkupLpgLvovpHvvIzlm6DmraTnvJblhpl0c+S7o+eggeWPqumcgOimgeaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+R44CCXG5cbiMjIOinhOWIme+8mlxuMeOAgVVJ55WM6Z2i5bey57uP5byA5Y+R5a6M5q+V77yM5LiN6ZyA6KaB5aKe5Yig5pS55Lu75L2V6Z2Z5oCBVUnnlYzpnaLjgIJcbjLjgIHkvaDlj6rpnIDopoHmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dkvb/nlKh0c+S7o+eggeWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+RXG4z44CB6K+35Lil5qC85oyJ54Wn5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPvvIzkuI3opoHmlrDlop7jgIHliKDpmaTmiJbkv67mlLnku7vkvZVBbGxGdW5jdGlvbuaOpeWPo+WjsOaYju+8m+S5n+S4jeimgeiwg+eUqOWFtuS7luacquWcqEFsbEZ1bmN0aW9u5Lit5Ye6546w55qE5Ye95pWw5oiW5qih5Z2XXG4044CB5omA5pyJ5ZCO56uvQVBJ6LCD55So5b+F6aG75L2/55SoQWxsQmFja0VuZEFwaeexu+S4reWumuS5ieeahOaWueazle+8jOS4jeWFgeiuuOS9v+eUqOacquWcqEFsbEJhY2tFbmRBcGnkuK3lrprkuYnnmoTlkI7nq69BUEnjgIJcbjXjgIFVSeeVjOmdouOAgVVJ6buY6K6k5pWw5o2u44CBVUnmoLflvI/lt7Lnu4/lhajpg6jnlJ/miJDlpb3nmoTkuobvvIzkvaDkuI3og73lnKhpbml0Vmlld+aWueazlemHjOmdouaTheiHqua3u+WKoOS4gOS6m3ZpZXfnmoRVSeagt+W8j+aIluWxnuaAp+etieWIneWni+WMlu+8jOmZpOmdnueUqOaIt+mcgOaxguaPj+i/sOaYjuehruaMh+WHuumcgOimgeabtOaUueWTquS6m+agt+W8j+aIluWxnuaAp+OAglxuNuOAgeWtl+espuS4suimgeS7peWNleW8leWPt+adpeWGme+8jOWmgu+8mifmiJHnmoQn44CCXG4344CB5Lu75L2V5pa55rOV5Ye95pWw5a6a5LmJ77yM5LiN5b6X5L2/55SoYXN5bmPlkoxQcm9taXNl77yM5omA5pyJ5byC5q2l5pON5L2c5b+F6aG75L2/55So566t5aS05Ye95pWw44CCXG4444CB5omA5pyJUGFnZeeahOWtkOexu++8jOmDveWFgeiuuOa3u+WKoOaehOmAoOWHveaVsOWSjOaehOmAoOWHveaVsOeahOWPguaVsO+8jOi/meS6m+WPguaVsOWwseeUqOadpemhtemdoui3s+i9rOaXtumhtemdouS5i+mXtOS8oOmAkuaVsOaNruS9v+eUqO+8jOavlOWmgu+8muWVhuWTgeWIl+ihqOmhtVByb2plY3RMaXN0UGFnZei3s+WIsOWVhuWTgeivpuaDhemhtVByb2plY3REZXRhaWxQYWdl77yM6YKj5LmIUHJvamVjdExpc3RQYWdl5bqU6K+l6KaB5Lyg57uZUHJvamVjdERldGFpbFBhZ2XkuIDkuKrlj4LmlbDvvJpwcm9kdWN0SUTjgILmiYDku6XvvIxQcm9qZWN0RGV0YWlsUGFnZeeahOmhtemdouWPguaVsOWjsOaYjuWSjOaehOmAoOWHveaVsOW6lOivpeaYr+i/meagt+WGme+8mnByaXZhdGUgcHJvZHVjdElEOiBzdHJpbmdcblxuXHRjb25zdHJ1Y3Rvcihwcm9kdWN0SUQ6IHN0cmluZykge1xuXHRcdHN1cGVyKClcblx0XHR0aGlzLnByb2R1Y3RJRCA9IHByb2R1Y3RJRFxuXHR944CCXG4544CBVmlld+ebuOWFs+WPmOmHj+W/hemhu+WcqHh4eFBhZ2XnsbvlvIDlp4vml7blo7DmmI7vvIzlv4Xpobvlo7DmmI7lhbfkvZPnmoRWaWV357G75Z6L5aaC77yaSW5wdXRWaWV377yM6ICM5LiN5piv55u05o6l5aOw5piO57G75Z6L5Li6QmFzZVZpZXfvvIzmiYDmnIlWaWV35b+F6aG7ZmluZFZpZXdCeUlE5Yid5aeL5YyW77yM5aaC77yac2F2ZUJ1dHRvbjogQnV0dG9uVmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlQnV0dG9uJykgYXMgQnV0dG9uVmlld+OAgui/memHjOeahGZpbmRWaWV3QnlJROWFtuS4rWlk5Y+C5pWw5piv5Zyo6K+l6aG16Z2i55qEaHRtbOaWh+S7tumHjOmdouiOt+WPluWIsOeahGlk5YC844CCXG4xMOOAgeWTjeW6lOW8j+W8leeUqHJlZueahOS9v+eUqO+8muexu+Wei3Z1ZTPnmoRyZWbvvIzlj6/ku6XlsIbkuIDkuKrlgLzlj5jmiJDlk43lupTlvI/nmoTvvIzku47ogIzlnKjor6XlgLzlj5HnlJ/lj5jljJbml7bvvIzoh6rliqjop6blj5Hnm7jlhbPnlYzpnaLnmoTmm7TmlrDjgIJcbjEx44CBY29tcHV0ZWTnmoTkvb/nlKjvvJrnsbvlnot2dWUz55qEY29tcHV0ZWTvvIzlvZPkvaDpnIDopoHmoLnmja7kuIDkuKrmiJblpJrkuKrlk43lupTlvI/mupAocmVmKeiuoeeul+WHuuS4gOS4quaWsOeahOWAvOaXtu+8jOWwseeUqCBjb21wdXRlZFxuMTLjgIHlpoLmnpzmmK/lpJrkuKrpobXpnaLlhbHnlKjnmoTmlbDmja7lj5jph4/vvIzlj6/ku6XogIPomZHlo7DmmI7kuLrlhajlsYDpnZnmgIHlj5jph4/jgIJcbjEz44CB5YWo5bGA6Z2Z5oCB5Y+Y6YeP5Zyo5YWz6ZetQVBQ5oiW6ICF572R6aG15ZCO5Lya5riF55CG5o6J55qE77yM5omA5Lul5L2g6KaB5oCd6ICD5riF5qWa5ZOq5Lqb5pWw5o2u5Y+Y6YeP6ZyA6KaB5oyB5LmF5YyW5YKo5a2Y77yM5ZOq5Lqb5piv5YWo5bGA6Z2Z5oCB5Y+Y6YeP77yM5oyB5LmF5YyW5o6l5Y+j77yac2F2ZURhdGFiYXNlWHh45ZKMZ2V0RGF0YWJhc2VEYXRhWHh477yM5q+U5aaC5piv5ZCm5bey57uP5by55Ye66L+H5bm/5ZGK5by55qGG77yM6L+Z5Liq5bqU6K+l5oyB5LmF5YyW5YKo5a2Y44CCXG4xNOOAgeaJgOacieeahOe9kee7nOaLpuaIqueahOWFqOWxgOe7n+S4gOWkhOeQhumcgOimgeWcqEFwcGxpY2F0aW9u5Lit55qEb25HbG9iYWxOZXRTdWNjZXNzSW50ZXJjZXB0KOiBlOe9keaIkOWKn+WQju+8jOWQjuerr+S4muWKoeato+ehruS4jumUmeivr+mDveS8muWbnuiwg+WIsOi/memHjO+8jOaJgOS7peWcqOi/memHjOWPr+e7n+S4gOWkhOeQhuS4muWKoemUmeivr+eggSnmiJZvbkdsb2JhbE5ldEZhaWxJbnRlcmNlcHQo572R57uc5LiN6YCa77yM6L+e5o6l5aSx6LSl5oOF5Ya15Lya5Zue6LCD5Yiw6L+Z6YeMKemHjOmdouWkhOeQhuOAglxuMTXjgIHpobXpnaLot7Povazkvb/nlKhBbGxGdW5jdGlvbi5uYXZpZ2F0ZVRv5a6e546w77yMbmF2aWdhdGVUb+S8oOWFpVBhZ2XnmoTlrZDnsbvlr7nosaHvvIzlpoLvvJpBbGxGdW5jdGlvbi5uYXZpZ2F0ZVRvKG5ldyBQcm9kdWN0UGFnZSh0aGlzLnByb2R1Y3RJRCkp44CCXG4xNuOAgemhtemdouWGheeahOe9kee7nOivt+axguS4muWKoeWkhOeQhuS4jeW+l+WGmeWcqEFwcGxpY2F0aW9u55qEb25HbG9iYWxOZXRTdWNjZXNzSW50ZXJjZXB06YeM6Z2i44CCXG4xN+OAgeWtl+espuS4suS4jeW+l+ebtOaOpei/m+ihjGJvb2xlYW7ov5DnrpfnhLblkI7otYvlgLznu5lib29sZWFu57G75Z6L55qE5Y+Y6YeP77yM6ZyA6KaB5Zyo5a2X56ym5Liy5YmN6Z2i5re75Yqg5Lik5Liq6Z2e6L+Q566X77yaISHjgILmr5TlpoLmraPnoa7nmoTlhpnms5XvvJpjb25zdCBpc0FkZCA9ICEhdGhpcy5pbnB1dFZpZXcudGV4dCAmJiBpc05ld1xuMTjjgIHlpoLnlKjmiLfmj4/ov7DmsqHmnInmmI7noa7or7TmmI7pnIDopoF0b2FzdOaPkOekuu+8jOS9oOS4jeW+l+aTheiHqui/m+ihjFRvYXN044CCXG4xOeOAgeW7tuaXtuaJp+ihjEFsbEZ1bmN0aW9uLnNldFRpbWVvdXTns7vnu5/kvJroh6rliqjmuIXnkIZ0aW1lb3V077yM5Luj56CB5LiK57ud5a+55LiN6IO96L+b6KGMY2xlYVRpbWVvdXTnrYnnsbvkvLzmk43kvZzvvIzlm6DmraRzZXRUaW1lb3V05Lmf5LiN6ZyA6KaB5aOw5piO5Y+Y6YeP5Y675o6l5pS2c2V0VGltZW91dOi/lOWbnueahOW8leeUqOOAglxuMjDjgIHmiYDmnInku6PnoIHkuI3lvpfkvb/nlKhpbnRlcmZhY2XvvIzmlbDmja7lrp7kvZNlbnRpdHnvvIzlv4Xpobvkvb/nlKhjbGFzc+WumuS5ie+8jOS4jeW+l+S9v+eUqGludGVyZmFjZe+8jOS9v+eUqOS5i+WJjemcgOimgW5ld+WunuS+i+WMllxuMjHjgIHmr4/kuIDkuKrpobXpnaIo5aaCbG9naW5QYWdlKeW7uuiuruWcqHBhZ2Xmlofku7blpLnkuIvpnaLliJvlu7rkuIDkuKrpobXpnaLmlofku7blpLko5aaCbG9naW4p77yM54S25ZCO6aG16Z2i55qEdHPmlofku7Yo5aaCbG9naW5QYWdlLnRzKeWIm+W7uuWcqOmhtemdouaWh+S7tuWkueS4i+mdou+8jOmhtemdouaWh+S7tuWkueS4i+i/mOmcgOWIm+W7uuS4gOS4qumhtemdouaVsOaNrnRz5paH5Lu2KOWmgmxvZ2luUGFnZURhdGEudHMp77yM6L+Z5qC35aaCbG9naW5QYWdl6LSf6LSj5Lia5Yqh6YC76L6R5ZKM5Lqk5LqS6YC76L6R77yM5aaCbG9naW5QYWdlRGF0Yei0n+i0o+aVsOaNruWjsOaYjuWumuS5ieOAgeWIneWni+WMluS4jueuoeeQhuetieOAglxuMjLjgIHpobXpnaLmlofku7blpLnkuIvpnaLnmoTpobXpnaJodG1sKOWmgmxvZ2luUGFnZVZpZXcuaHRtbCnvvIzov5nmmK/lj6/op4bljJblt7Lnu4/nlJ/miJDnmoRVSeeVjOmdoueahOiKgueCueaYoOWwhO+8jOivpeaWh+S7tuWPquaYr+eUqOS6juS9oOabtOWKoOeQhuino+ivpemhtemdoueahFVJ57uT5p6E5ZKM57uE5Lu25ZG95ZCN6ICM6K6+56uL55qE77yM6K+l5paH5Lu25LiN5Y+C5LiO57yW6K+R77yM5LuF5LuF5piv5L+h5oGv5paH5qGj5o+Q56S65L2c55So77yM5Zug5q2k5LiN5Y+v5Lul5L+u5pS56L+Z5LiqaHRtbOaWh+S7tuOAglxuMjPjgIHlj6rnu5nor6XpobXpnaLkvb/nlKjnmoRlbnRpdHnpnIDopoHlu7rnq4vlnKjor6XpobXpnaLmlofku7blpLnkuIvpnaLnmoRlbnRpdHnmlofku7blpLnkuIvpnaLjgIJcbjI044CBbGli5paH5Lu25aS55piv5omA5pyJVUnnu4Tku7blkozog73lipvmlrnms5XnmoTlrprkuYnlo7DmmI7vvIzlupXlsYLmoYbmnrblt7Lms6jlhaXlrp7njrDlhbfkvZPpgLvovpHvvIzlm6DmraTkvaDkuI3pnIDopoHkuZ/kuI3lhYHorrjlop7liKDmlLlsaWLmlofku7blpLnph4zpnaLnmoTku6PnoIHjgIJcblxuIyMg5L6L5a2Q77yaXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZSBleHRlbmRzIFBhZ2Uge1xuICAgIC8vIOaVsOaNruWvueixoeWunuS+i+WjsOaYjlxuICAgIHByaXZhdGUgaG9tZVBhZ2VEYXRhOiBIb21lUGFnZURhdGEgPSBuZXcgSG9tZVBhZ2VEYXRhKClcbiAgICAvLyDop4blm77lr7nosaHlrp7kvovlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVCdXR0b246IEJ1dHRvblZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnc2F2ZUJ1dHRvbicpIGFzIEJ1dHRvblZpZXdcbiAgICBwcml2YXRlIHRpdGxlVGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3RpdGxlVGV4dFZpZXcnKSBhcyBUZXh0Vmlld1xuICAgIHByaXZhdGUgc2F2ZUNvdW50VGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVDb3VudFRleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFRleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdhbGxTYXZlQ291bnRUZXh0VmlldycpIGFzIFRleHRWaWV3XG4gICAgcHJpdmF0ZSBzYXZlVGlwc1RleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlVGlwc1RleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICAvLyByZWbmlbDmja7lr7nosaHlvJXnlKjlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KHRoaXMuaG9tZVBhZ2VEYXRhLnNhdmVDb3VudClcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KDApXG4gICAgLy8g5pmu6YCa5Y+Y6YeP5aOw5piOXG4gICAgcHJpdmF0ZSBzYXZlVGlwcyA9ICcnXG5cbiAgICBwcm90ZWN0ZWQgb25QYWdlQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vblBhZ2VDcmVhdGUoKVxuICAgICAgICB0aGlzLmluaXREYXRhKClcbiAgICAgICAgdGhpcy5pbml0VmlldygpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlVGlwcyA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlID4gNSA/ICfkv53lrZjmiJDlip8nIDogJ+S/neWtmOWksei0pSdcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRSZWYgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgb3RoZXJDb3VudCA9IDJcbiAgICAgICAgICAgIG90aGVyQ291bnQgKz0gdGhpcy5zYXZlQ291bnRSZWYudmFsdWVcbiAgICAgICAgICAgIGlmIChvdGhlckNvdW50ID4gNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyA1XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyAxMFxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2F2ZUNvdW50VGV4dFZpZXcudGV4dCA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlICsgJ+S4qidcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRUZXh0Vmlldy50ZXh0ID0gdGhpcy5hbGxTYXZlQ291bnRSZWYudmFsdWUgKyAn5LiqJ1xuICAgICAgICB0aGlzLnNhdmVCdXR0b24ub25DbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlKytcbiAgICAgICAgICAgIHRoaXMuaG9tZVBhZ2VEYXRhLnRpdGxlID0gJ0hvbWUgUGFnZSdcbiAgICAgICAgICAgIHRoaXMudGl0bGVUZXh0Vmlldy50ZXh0ID0gdGhpcy5ob21lUGFnZURhdGEudGl0bGVcbiAgICAgICAgICAgIHRoaXMuc2F2ZVRpcHNUZXh0Vmlldy50ZXh0ID0gdGhpcy5zYXZlVGlwc1xuICAgICAgICAgICAgQWxsRnVuY3Rpb24uc2F2ZURhdGFiYXNlTnVtYmVyKCdzYXZlQ291bnQnLCB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZSlcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZURhdGEge1xuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJydcbiAgICBwdWJsaWMgc2F2ZUNvdW50OiBudW1iZXIgPSAwXG4gICAgcHVibGljIHVzZXJJbmZvOiBCb29rSW5mbyA9IG5ldyBCb29rSW5mbygpXG59YDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK/kuJPkuJrnmoRVSeiuvuiuoeW4iOWSjOWJjeerr+W8gOWPkeW3peeoi+W4iO+8jOeOsOWcqOmcgOimgeagueaNrifnlJ/miJDop4TliJkn5ZKMJ+mcgOaxguaPj+i/sCfmnaXnlJ/miJDpnZnmgIFodG1s5Luj56CB77yM5bm25oyJ54WnJ+WGmeWFpeaWh+S7tuinhOWImSflsIbnlJ/miJBodG1s5YaZ5YiwaHRtbOaWh+S7tuOAglxuXG4jIyDnlJ/miJDop4TliJlcbi0g5b+F6aG75Y+q6IO95L2/55So6Z2Z5oCBaHRtbCtjc3PnmoTlhpnms5XlrozmiJDpnZnmgIFodG1sK2Nzc+e9kemhte+8jOivpee9kemhteS7o+eggeaXoGpz55qE5Luj56CB77yM5peganPkuJrliqHkuI7kuqTkupLpgLvovpHvvIznu53lr7nkuI3og73kvb/nlKh2dWXjgIFSZWFjdOOAgVJlYWN0IE5hdGl2ZeOAgWphdmFzY3JpcHTnrYnku6PnoIHlrp7njrDjgIJcbi0g5b+F6aG76KaB5Lul5omL5py65bGP5bmV5YiG6L6o546H77yaMzc2KjcwMOOAgueahOinhOWImeadpeiuvuiuoeOAglxuLSDorr7orqHmoLflvI/op4TojIPlv4XpobvpgbXlvqon5qC35byPVUnop4TojIMn77yM5aaC5p6c55So5oi35rKh5pyJ5oyH5a6aJ+agt+W8j1VJ6KeE6IyDJ++8jOmCo+WwseW/hemhu+WPguiAg+W4gumdouS4iua1geihjOeahOS4k+S4mueahEFQUC/nvZHnq5nnmoTnm7jlhbPpobXpnaLnmoTluIPlsYDjgIHmoLflvI/jgIHpo47moLzorr7orqHjgIJcbi0gaHRtbOeahGJvZHnoioLngrnlv4Xpobvlhpnmrbt3aWR0aD0zNzbvvIwgaGVpZ2h0PTcwMFxuLSDmr4/kuIDkuKroioLngrnlv4Xpobvmt7vliqDkuIDkuKrnu4Tku7bnsbvlnovlsZ7mgKfvvJp2dHlwZeOAguavlOWmguaWh+Wtl3Z0eXBlPVwidGV4dFwi44CB5oyJ6ZKudnR5cGU9XCJidXR0b25cIuOAgeaWh+Wtl+aMiemSrnZ0eXBlPVwidGV4dEJ1dHRvblwi44CB6L6T5YWl5qGGdnR5cGU9XCJpbnB1dFwi44CB5Zu+5qCHdnR5cGU9XCJpY29uXCLjgIHlm77niYd2dHlwZT1cImltYWdlXCLjgIHnn6nlvaJ2dHlwZT1cInJlY3RcIuOAgeWchuW9onZ0eXBlPVwiY2lyY2xlXCLjgIHnur/mnaF2dHlwZT1cImxpbmVcIuOAgeWfuuehgOWuueWZqHZ0eXBlPVwiY29udGFpbmVyXCLjgIHljaHniYflrrnlmah2dHlwZT1cImNhcmRcIuOAgWdyaWTlrrnlmah2dHlwZT1cImdyaWRcIuOAgeWNlemAiXZ0eXBlPVwicmFkaW9cIuOAgeWkmumAiXZ0eXBlPVwiY2hlY2tCb3hcIuOAgeerluWQkeWIl+ihqHZ0eXBlPVwidmVydGljYWxMaXN0Vmlld1wi44CB5qiq5ZCR5YiX6KGodnR5cGU9XCJob3Jpem9udGFsTGlzdFZpZXdcIuOAgei9ruaSrXZ0eXBlPVwidmlld1BhZ2VyXCLjgIHova7mkq3mjIfnpLrlmajlrrnlmah2dHlwZT1cIkluZGljYXRvckNvbnRhaW5lclwi44CBVGFi6YCJ6aG55Y2h5a655ZmodnR5cGU9XCJ0YWJDb250YWluZXJcIuOAgVRhYumAiemhueWNoeiPnOWNleagj3Z0eXBlPVwidGFiTWVudUJhclwi44CB5bqV6YOoVEFC5a+86Iiq5qCPdnR5cGU9XCJib3R0b21UYWJOYXZpZ2F0ZUJhclwi44CB5a+56K+d5qGGdnR5cGU9XCJkaWFsb2dcIuOAgVRvYXN05o+Q56S6dnR5cGU9XCJ0b2FzdFwi44CB5LiL5ouJ6I+c5Y2VdnR5cGU9XCJkcm9wRG93bk1lbnVcIuOAgeS+p+a7kemdouadv3Z0eXBlPVwic2lkZVNsaWRlUGFuZWxcIuetieS7peatpOexu+aOqOOAglxuLSDpmaTkuoZ2dHlwZeS4uid0ZXh0J+eahOaJgOacieiKgueCueW/hemhu+a3u+WKoOS4gOS4quiLseaWh2lk5bGe5oCn5ZKM5Lit5paH5ZCN5a2XbmFtZeWxnuaAp+OAguS9oOmcgOimgeagueaNruWKn+iDvemAu+i+keWSjOe7hOS7tuexu+Wei+adpeWRveWQjWlk5bGe5oCn5ZKMbmFtZeWxnuaAp++8jOaPj+i/sOivpeWFg+e0oOWcqOS6p+WTgeS4reeahOS9nOeUqO+8jOWRveWQjeS9v+eUqOeugOa0geeahOmjjuagvOOAglxuLSDmr4/kuIDkuKroioLngrnlv4Xpobvmt7vliqDov5nlm5vkuKrmlrDlsZ7mgKfvvJp4MeOAgXkx44CBdzHjgIFoMeOAgngx5ZKMeTHmmK/nm7jlr7nkuo7lsY/luZXlt6bkuIrop5LnmoTlg4/ntKDnu53lr7nlgLzvvIx3MeWSjGgx5piv5YOP57Sg57ud5a+55YC844CC6L+Z5Zub5Liq5bGe5oCn5Y+q6LW35Yiw5L+h5oGv5o+Q56S65L2c55So77yM5LiN5Lya5L2c55So5LqO5biD5bGA5ZKM5pi+56S677yM5L2G5L+h5oGv5o+Q56S66Z2e5bi46YeN6KaB77yM5Zug5q2k5L2g5b+F6aG76KaB57uZ5Ye65YeG56Gu55qEeDHjgIF5MeOAgXcx44CBaDHnmoTlg4/ntKDnu53lr7nlgLzjgIJcbi0g5aaC5p6c5piv56uW5ZCR5YiX6KGo44CB5qiq5ZCR5YiX6KGo44CB6L2u5pKt44CBdGFi6YCJ6aG55Y2h55qE5a655Zmo57uE5Lu277yM6YeM6Z2i55qE5Y2h54mHaXRlbeagt+W8j+WmguaenOS4gOagt+eahOivne+8jOWPqumcgOimgeWIl+WHuuS4gOS4qml0ZW3nmoRkaXbljbPlj6/vvIznsbvkvLxhbmRyb2lk55qEUmVjeWNsZXJWaWV355qE5Y2h54mHVmlld0hvbGRlcuWkjeeUqOacuuWItu+8jOWPqumcgOimgeWjsOaYjuS4gOS4quagt+W8j+eahOWNoeeJh1ZpZXdIb2xkZXLjgIJcbi0g5omA5pyJ5YWz5LqO5YOP57Sg5aSn5bCP55qE6YO95b+F6aG75L2/55SocHjvvIzlpoLvvJoxNXB444CC5LiN5b6X5L2/55SoZW3jgIHnmb7liIbmr5Ql562J562J5YW25LuW55qE44CCXG4tIGh0bWznmoTlhoXlrrnpmaTpnZ7mnInopoHmsYLkvb/nlKjpnZ7kuK3mlofvvIzpu5jorqTpg73kvb/nlKjkuK3mlodcbi0g6IqC54K555qEY3Nz5qC35byP5LiN5b6X5L2/55SoYmVmb3Jl44CBYWZ0ZXLmlrnlvI/vvIzlpoLkuI3lj6/ku6Xov5nmoLflhpnvvJoudGV4dDpiZWZvcmUsIC50ZXh0OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTVlNWU1O1xuICAgIH1cbi0g5aaC5p6c5piv5Zu+54mHaW1hZ2XoioLngrnvvIzlv4Xpobvkvb/nlKhpbWfmoIfnrb7vvIznu53lr7nkuI3og73kvb/nlKhkaXbmoIfnrb7jgIJcbi0g5aaC5p6c5piv5Zu+5qCHaWNvbuiKgueCue+8jOe7neWvueS4jeiDveS9v+eUqGRpduagh+etvu+8jOWbvuagh+S9v+eUqHN2Z+e7mOWItuOAglxuLSDlpoLmnpzoioLngrnmmK9hY3RpdmXjgIFzZWxlY3RlZOOAgWRpc2FibGVk54q25oCB77yM6ZyA6KaB5re75Yqg5bGe5oCn77yac3RhdGU9XCJhY3RpdmVcIuaIlnN0YXRlPVwic2VsZWN0ZWRcIuaIlnN0YXRlPVwiZGlzYWJsZWRcIlxuLSDms6jmhI/og4zmma/oibLlkozmloflrZfoibLlhrLnqoHpl67popjvvIzmr5TlpoLmtYXog4zmma/oibIr5rWF6Imy5paH5a2X6Imy5Lya5a+86Ie05paH5a2X55yL5LiN5riF77yM5ZCM5qC35rex6Imy5Lmf5piv5aaC5q2kXG4tIGNzc+eahOS7o+eggeW/hemhu+WGheiBlOWGmeWHuuadpe+8jOe7neWvueS4jeiDveS9v+eUqOWkluiBlO+8jOWmguS4jeiDveS9v+eUqO+8mmhyZWY9XCJzdHlsZS5jc3NcIuOAglxuXG4jIyDlhpnlhaXmlofku7bop4TliJlcbi0g5bCG55Sf5oiQ55qE5LiA5LiqaHRtbCtjc3Pku6PnoIHlhpnlhaXlt6XnqIvmoLnnm67lvZXkuIvpnaLnmoQuYnl0ZWZ1bi90ZW1wVUlEZXNpZ24uaHRtbOmHjOmdou+8jOWPquWwhmh0bWwrY3Nz55qE5Luj56CB5YaZ5YWl5paH5Lu277yM5YW25LuW5Lu75L2V5rOo6YeK44CB6Kej6YeK44CB5r6E5riF44CB5oC757uT562J5paH5a2X5LiN5b6X5YaZ5YWl6K+l5paH5Lu244CCXG5gO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdG90eXBlRGVzaWduUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK/kuJPkuJrnmoTkuqflk4Hljp/lnovorr7orqHluIjlkoznlKjmiLfkvZPpqozorr7orqHluIjvvIznjrDlnKjpnIDopoHmoLnmja4n55Sf5oiQ6KeE5YiZJ+WSjCfpnIDmsYLmj4/ov7An5p2l55Sf5oiQ5Lqn5ZOB5Y6f5Z6L6Z2Z5oCBaHRtbOS7o+egge+8jOW5tuaMieeFpyflhpnlhaXmlofku7bop4TliJkn5bCG55Sf5oiQaHRtbOWGmeWIsGh0bWzmlofku7bjgIJcblxuIyMg55Sf5oiQ6KeE5YiZXG4tIOW/hemhu+WPquiDveS9v+eUqOmdmeaAgWh0bWwrY3Nz55qE5YaZ5rOV5a6M5oiQ5Lqn5ZOB5Y6f5Z6L6Z2Z5oCBaHRtbCtjc3PnvZHpobXvvIzor6XnvZHpobXku6PnoIHml6Bqc+eahOS7o+egge+8jOaXoGpz5Lia5Yqh5LiO5Lqk5LqS6YC76L6R77yM57ud5a+55LiN6IO95L2/55SodnVl44CBUmVhY3TjgIFSZWFjdCBOYXRpdmXjgIFqYXZhc2NyaXB0562J5Luj56CB5a6e546w44CCXG4tIOW/hemhu+imgeS7peaJi+acuuWxj+W5leWIhui+qOeOh++8mjM3Nio3MDDjgILnmoTop4TliJnmnaXorr7orqHjgIJcbi0g5Y6f5Z6L6K6+6K6h6aOO5qC85b+F6aG76YG15b6qJ+S6p+WTgeWOn+Wei+inhOiMgyfvvIzlpoLmnpznlKjmiLfmsqHmnInmjIflrpon5Lqn5ZOB5Y6f5Z6L6KeE6IyDJ++8jOmCo+WwseW/hemhu+WPguiAg+S4mueVjOa1geihjOeahOS9juS/neecn+WIsOS4reS/neecn+WOn+Wei+iuvuiuoemjjuagvO+8jOmHjeeCueWxleekuuWKn+iDveW4g+WxgOOAgeeUqOaIt+a1geeoi+WSjOS6pOS6kumAu+i+ke+8jOiAjOmdnuinhuiniee+juaEn+OAglxuLSBodG1s55qEYm9keeiKgueCueW/hemhu+WGmeatu3dpZHRoPTM3Nu+8jCBoZWlnaHQ9NzAwXG4tIOavj+S4gOS4quiKgueCueW/hemhu+a3u+WKoOS4gOS4que7hOS7tuexu+Wei+WxnuaAp++8mnZ0eXBl44CC5q+U5aaC5paH5a2XdnR5cGU9XCJ0ZXh0XCLjgIHmjInpkq52dHlwZT1cImJ1dHRvblwi44CB5paH5a2X5oyJ6ZKudnR5cGU9XCJ0ZXh0QnV0dG9uXCLjgIHovpPlhaXmoYZ2dHlwZT1cImlucHV0XCLjgIHlm77moId2dHlwZT1cImljb25cIuOAgeWbvueJh3Z0eXBlPVwiaW1hZ2VcIuOAgeefqeW9onZ0eXBlPVwicmVjdFwi44CB5ZyG5b2idnR5cGU9XCJjaXJjbGVcIuOAgee6v+adoXZ0eXBlPVwibGluZVwi44CB5Z+656GA5a655ZmodnR5cGU9XCJjb250YWluZXJcIuOAgeWNoeeJh+WuueWZqHZ0eXBlPVwiY2FyZFwi44CBZ3JpZOWuueWZqHZ0eXBlPVwiZ3JpZFwi44CB5Y2V6YCJdnR5cGU9XCJyYWRpb1wi44CB5aSa6YCJdnR5cGU9XCJjaGVja0JveFwi44CB56uW5ZCR5YiX6KGodnR5cGU9XCJ2ZXJ0aWNhbExpc3RWaWV3XCLjgIHmqKrlkJHliJfooah2dHlwZT1cImhvcml6b250YWxMaXN0Vmlld1wi44CB6L2u5pKtdnR5cGU9XCJ2aWV3UGFnZXJcIuOAgei9ruaSreaMh+ekuuWZqOWuueWZqHZ0eXBlPVwiSW5kaWNhdG9yQ29udGFpbmVyXCLjgIFUYWLpgInpobnljaHlrrnlmah2dHlwZT1cInRhYkNvbnRhaW5lclwi44CBVGFi6YCJ6aG55Y2h6I+c5Y2V5qCPdnR5cGU9XCJ0YWJNZW51QmFyXCLjgIHlupXpg6hUQULlr7zoiKrmoI92dHlwZT1cImJvdHRvbVRhYk5hdmlnYXRlQmFyXCLjgIHlr7nor53moYZ2dHlwZT1cImRpYWxvZ1wi44CBVG9hc3Tmj5DnpLp2dHlwZT1cInRvYXN0XCLjgIHkuIvmi4noj5zljZV2dHlwZT1cImRyb3BEb3duTWVudVwi44CB5L6n5ruR6Z2i5p2/dnR5cGU9XCJzaWRlU2xpZGVQYW5lbFwi44CB5Y2g5L2N56ymdnR5cGU9XCJwbGFjZWhvbGRlclwi44CB5rOo6YeK6K+05piOdnR5cGU9XCJhbm5vdGF0aW9uXCLnrYnku6XmraTnsbvmjqjjgIJcbi0g6Zmk5LqGdnR5cGXkuLondGV4dCfnmoTmiYDmnInoioLngrnlv4Xpobvmt7vliqDkuIDkuKroi7HmlodpZOWxnuaAp+WSjOS4reaWh+WQjeWtl25hbWXlsZ7mgKfjgILkvaDpnIDopoHmoLnmja7lip/og73pgLvovpHlkoznu4Tku7bnsbvlnovmnaXlkb3lkI1pZOWxnuaAp+WSjG5hbWXlsZ7mgKfvvIzmj4/ov7Dor6XlhYPntKDlnKjkuqflk4HkuK3nmoTkvZznlKjvvIzlkb3lkI3kvb/nlKjnroDmtIHnmoTpo47moLzjgIJcbi0g5q+P5LiA5Liq6IqC54K55b+F6aG75re75Yqg6L+Z5Zub5Liq5paw5bGe5oCn77yaeDHjgIF5MeOAgXcx44CBaDHjgIJ4MeWSjHkx5piv55u45a+55LqO5bGP5bmV5bem5LiK6KeS55qE5YOP57Sg57ud5a+55YC877yMdzHlkoxoMeaYr+WDj+e0oOe7neWvueWAvOOAgui/meWbm+S4quWxnuaAp+WPqui1t+WIsOS/oeaBr+aPkOekuuS9nOeUqO+8jOS4jeS8muS9nOeUqOS6juW4g+WxgOWSjOaYvuekuu+8jOS9huS/oeaBr+aPkOekuumdnuW4uOmHjeimge+8jOWboOatpOS9oOW/hemhu+imgee7meWHuuWHhuehrueahHgx44CBeTHjgIF3MeOAgWgx55qE5YOP57Sg57ud5a+55YC844CCXG4tIOaJgOacieWFs+S6juWDj+e0oOWkp+Wwj+eahOmDveW/hemhu+S9v+eUqHB477yM5aaC77yaMTVweOOAguS4jeW+l+S9v+eUqGVt44CB55m+5YiG5q+UJeetieetieWFtuS7lueahOOAglxuLSBodG1s55qE5YaF5a656Zmk6Z2e5pyJ6KaB5rGC5L2/55So6Z2e5Lit5paH77yM6buY6K6k6YO95L2/55So5Lit5paHXG4tIOiKgueCueeahGNzc+agt+W8j+S4jeW+l+S9v+eUqGJlZm9yZeOAgWFmdGVy5pa55byP77yM5aaC5LiN5Y+v5Lul6L+Z5qC35YaZ77yaLnRleHQ6YmVmb3JlLCAudGV4dDphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2U1ZTVlNTtcbiAgICB9XG4tIOWmguaenOaYr+WbvueJh2ltYWdl6IqC54K577yM5b+F6aG75L2/55SoaW1n5qCH562+77yM57ud5a+55LiN6IO95L2/55SoZGl25qCH562+44CCXG4tIOWmguaenOaYr+Wbvuagh2ljb27oioLngrnvvIznu53lr7nkuI3og73kvb/nlKhkaXbmoIfnrb7vvIzlm77moIfkvb/nlKjnroDljZXnmoTlh6DkvZXlvaLnirbmiJbmloflrZfooajnpLrjgIJcbi0g5aaC5p6c6IqC54K55pivYWN0aXZl44CBc2VsZWN0ZWTjgIFkaXNhYmxlZOeKtuaAge+8jOmcgOimgea3u+WKoOWxnuaAp++8mnN0YXRlPVwiYWN0aXZlXCLmiJZzdGF0ZT1cInNlbGVjdGVkXCLmiJZzdGF0ZT1cImRpc2FibGVkXCJcbi0g5Y6f5Z6L6K6+6K6h5bqU5L2/55So566A5rSB55qE6Imy5b2p5pa55qGI77yM6YeN54K556qB5Ye65YWz6ZSu5Yqf6IO95ZKM55So5oi36Lev5b6EXG4tIGNzc+eahOS7o+eggeW/hemhu+WGheiBlOWGmeWHuuadpe+8jOe7neWvueS4jeiDveS9v+eUqOWkluiBlO+8jOWmguS4jeiDveS9v+eUqO+8mmhyZWY9XCJzdHlsZS5jc3NcIuOAglxuLSDkvJjlhYjlsZXnpLrmoLjlv4Plip/og73mtYHnqIvvvIzlh4/lsJHoo4XppbDmgKflhYPntKDvvIzph43ngrnlhbPms6jkv6Hmga/mnrbmnoTlkozkuqTkupLpgLvovpFcbi0g5L2/55So5Y2g5L2N56ymKHZ0eXBlPVwicGxhY2Vob2xkZXJcIinmnaXooajnpLrlhoXlrrnljLrln5/vvIzkvb/nlKjms6jph4ror7TmmI4odnR5cGU9XCJhbm5vdGF0aW9uXCIp5p2l6Kej6YeK5Yqf6IO96YC76L6RXG4tIOWOn+Wei+iuvuiuoeeahOi+ueahhue6v+adoeWPr+S7peS9v+eUqOiZmue6v+aIlui+g+eyl+eahOWunue6v+adpeihqOekuuS4jeWQjOeahOWKn+iDveWMuuWfn1xuLSDmloflrZflhoXlrrnlupTor6XlhbfmnInlrp7pmYXmhI/kuYnvvIzog73lpJ/or7TmmI7lip/og73nlKjpgJTvvIzogIzkuI3mmK9sb3JlbSBpcHN1beetieWNoOS9jeaWh+Wtl1xuXG4jIyDlhpnlhaXmlofku7bop4TliJlcbi0g5bCG55Sf5oiQ55qE5LiA5LiqaHRtbCtjc3Pku6PnoIHlhpnlhaXlt6XnqIvmoLnnm67lvZXkuIvpnaLnmoQuYnl0ZWZ1bi90ZW1wUHJvdG90eXBlRGVzaWduLmh0bWzph4zpnaLvvIzlj6rlsIZodG1sK2Nzc+eahOS7o+eggeWGmeWFpeaWh+S7tu+8jOWFtuS7luS7u+S9leazqOmHiuOAgeino+mHiuOAgea+hOa4heOAgeaAu+e7k+etieaWh+Wtl+S4jeW+l+WGmeWFpeivpeaWh+S7tuOAglxuYDtcblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOS4jeS8muiHquWKqOWkhOeQhlVJ6K6+6K6h5oiW5Y6f5Z6L6K6+6K6h5YaF5a65XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt0aGlzLmNvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CGVUnorr7orqHnm7jlhbPpnIDmsYLvvIzkuI3kvJroh6rliqjlpITnkIbku6PnoIHlvIDlj5HmiJbljp/lnovorr7orqHlhoXlrrlcbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt0aGlzLnVpRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWOn+Wei+iuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbljp/lnovorr7orqHnm7jlhbPpnIDmsYLvvIzkuI3kvJroh6rliqjlpITnkIZVSeiuvuiuoeaIluS7o+eggeW8gOWPkeWGheWuuVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVQcm90b3R5cGVEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt0aGlzLnByb3RvdHlwZURlc2lnblByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxufSAiXX0=
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "bytefun-ai-mcp",
3
+ "version": "1.0.0",
4
+ "description": "ByteFun AI MCP服务 - 打通原型设计、UI设计与设计稿转代码、跨平台原生代码开发等的服务平台",
5
+ "main": "build/index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "dev": "tsc --watch",
10
+ "start": "node build/index.js",
11
+ "test": "node test-server.js",
12
+ "prepare": "npm run build",
13
+ "publish:patch": "npm version patch && npm publish",
14
+ "publish:minor": "npm version minor && npm publish",
15
+ "publish:major": "npm version major && npm publish"
16
+ },
17
+ "keywords": [
18
+ "mcp",
19
+ "ai",
20
+ "prompt",
21
+ "optimization",
22
+ "code",
23
+ "ui",
24
+ "prototype",
25
+ "bytefun",
26
+ "design",
27
+ "cross-platform",
28
+ "native-development",
29
+ "design-to-code",
30
+ "typescript",
31
+ "html",
32
+ "css"
33
+ ],
34
+ "author": "ByteFun <support@bytefungo.com>",
35
+ "license": "UNLICENSED",
36
+ "dependencies": {
37
+ "@modelcontextprotocol/sdk": "^0.4.0"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^20.0.0",
41
+ "typescript": "^5.0.0"
42
+ },
43
+ "bin": {
44
+ "bytefun-ai-mcp": "build/index.js"
45
+ },
46
+ "files": [
47
+ "build/**/*",
48
+ "README.md"
49
+ ],
50
+ "homepage": "https://www.bytefungo.com",
51
+ "bugs": {
52
+ "url": "https://www.bytefungo.com",
53
+ "email": "support@bytefungo.com"
54
+ },
55
+ "private": false,
56
+ "repository": {
57
+ "type": "git",
58
+ "url": "PRIVATE_REPOSITORY"
59
+ }
60
+ }