htmlgen-mcp 0.3.2__tar.gz → 0.3.3__tar.gz
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.
Potentially problematic release.
This version of htmlgen-mcp might be problematic. Click here for more details.
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/PKG-INFO +1 -1
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/pyproject.toml +1 -1
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/config.py +34 -13
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/web_agent_server.py +5 -26
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp.egg-info/PKG-INFO +1 -1
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/README.md +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/setup.cfg +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/__init__.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/__init__.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/ai_content_generator.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/cluster_state.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/cluster_storage.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/quick_generator.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/smart_web_agent.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/__init__.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/bootstrap.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/browser.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/colors.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/css.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/edgeone_deploy.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/html_templates.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/html_templates_improved.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/images.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/images_fixed.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/js.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/navigation.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/project.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/simple_builder.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/simple_css.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/simple_js.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/simple_templates.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/validation.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/sse_optimizations.py +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp.egg-info/SOURCES.txt +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp.egg-info/dependency_links.txt +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp.egg-info/entry_points.txt +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp.egg-info/requires.txt +0 -0
- {htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "htmlgen-mcp"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.3"
|
|
8
8
|
description = "AI-powered HTML website generator with auto-upload functionality via Model Context Protocol"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""项目配置管理 -
|
|
1
|
+
"""项目配置管理 - 跨平台支持与集群部署优化"""
|
|
2
2
|
import os
|
|
3
3
|
import sys
|
|
4
4
|
import platform
|
|
@@ -8,7 +8,7 @@ from datetime import datetime
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ProjectConfig:
|
|
11
|
-
"""项目配置管理器 - 支持 Windows/macOS/Linux"""
|
|
11
|
+
"""项目配置管理器 - 支持 Windows/macOS/Linux/集群部署"""
|
|
12
12
|
|
|
13
13
|
@staticmethod
|
|
14
14
|
def get_system_info() -> dict:
|
|
@@ -22,17 +22,38 @@ class ProjectConfig:
|
|
|
22
22
|
|
|
23
23
|
@staticmethod
|
|
24
24
|
def get_default_output_dir() -> Path:
|
|
25
|
-
"""
|
|
25
|
+
"""获取默认的项目输出目录(跨平台 + 集群部署)
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
1. 环境变量
|
|
29
|
-
2.
|
|
30
|
-
3.
|
|
31
|
-
4.
|
|
27
|
+
优先级(集群部署优化):
|
|
28
|
+
1. 环境变量 WEB_AGENT_PROJECT_ROOT(集群共享存储,最高优先级)
|
|
29
|
+
2. 环境变量 WEB_AGENT_OUTPUT_DIR(兼容旧配置)
|
|
30
|
+
3. 系统特定的文档目录
|
|
31
|
+
4. 用户主目录下的隐藏目录
|
|
32
|
+
5. 系统临时目录
|
|
33
|
+
|
|
34
|
+
集群部署说明:
|
|
35
|
+
- 在 SSE 集群中,建议配置 WEB_AGENT_PROJECT_ROOT 为 NAS 共享路径
|
|
36
|
+
- 示例:WEB_AGENT_PROJECT_ROOT=/app/mcp-servers/mcp-servers/html_agent/projects
|
|
32
37
|
"""
|
|
33
38
|
|
|
34
|
-
#
|
|
35
|
-
|
|
39
|
+
# 1a. 检查集群共享存储环境变量(最高优先级)
|
|
40
|
+
project_root = os.environ.get('WEB_AGENT_PROJECT_ROOT')
|
|
41
|
+
if project_root:
|
|
42
|
+
output_dir = Path(project_root)
|
|
43
|
+
try:
|
|
44
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
45
|
+
# 验证目录可写
|
|
46
|
+
test_file = output_dir / '.write_test'
|
|
47
|
+
test_file.touch()
|
|
48
|
+
test_file.unlink()
|
|
49
|
+
print(f"✅ 使用集群共享存储: {output_dir}")
|
|
50
|
+
return output_dir
|
|
51
|
+
except Exception as e:
|
|
52
|
+
print(f"⚠️ 集群共享存储不可用 ({output_dir}): {e}")
|
|
53
|
+
print(f"💡 请检查 NAS 挂载状态和权限")
|
|
54
|
+
|
|
55
|
+
# 1b. 检查兼容性环境变量
|
|
56
|
+
env_dir = os.environ.get('WEB_AGENT_OUTPUT_DIR')
|
|
36
57
|
if env_dir:
|
|
37
58
|
output_dir = Path(env_dir)
|
|
38
59
|
try:
|
|
@@ -111,7 +132,7 @@ class ProjectConfig:
|
|
|
111
132
|
try:
|
|
112
133
|
temp_dir.mkdir(parents=True, exist_ok=True)
|
|
113
134
|
print(f"⚠️ 使用临时目录: {temp_dir}")
|
|
114
|
-
print(f"💡 建议设置环境变量 WEB_AGENT_OUTPUT_DIR
|
|
135
|
+
print(f"💡 建议设置环境变量 WEB_AGENT_OUTPUT_DIR 到更合适的位置")
|
|
115
136
|
return temp_dir
|
|
116
137
|
except Exception as e:
|
|
117
138
|
# 如果连临时目录都无法创建,使用当前工作目录
|
|
@@ -280,7 +301,7 @@ def get_project_directory(project_name: str = None) -> str:
|
|
|
280
301
|
project_dir = config.create_project_directory(project_name, use_timestamp=True)
|
|
281
302
|
|
|
282
303
|
print(f"📁 项目将生成在: {project_dir}")
|
|
283
|
-
print(f"💡 提示: 可通过设置环境变量 WEB_AGENT_OUTPUT_DIR
|
|
304
|
+
print(f"💡 提示: 可通过设置环境变量 WEB_AGENT_OUTPUT_DIR 来自定义输出目录")
|
|
284
305
|
|
|
285
306
|
return str(project_dir)
|
|
286
307
|
|
|
@@ -323,4 +344,4 @@ __all__ = [
|
|
|
323
344
|
'get_project_directory',
|
|
324
345
|
'list_recent_projects',
|
|
325
346
|
'clean_temp_projects'
|
|
326
|
-
]
|
|
347
|
+
]
|
|
@@ -42,34 +42,13 @@ DEFAULT_BASE_URL = os.environ.get(
|
|
|
42
42
|
|
|
43
43
|
mcp = FastMCP("smart-web-agent")
|
|
44
44
|
|
|
45
|
-
# MCP
|
|
45
|
+
# MCP 服务持久化目录:默认为 ~/.mcp/make_web,可通过环境变量覆盖
|
|
46
46
|
DEFAULT_MCP_STORAGE = Path.home() / ".mcp"
|
|
47
47
|
MCP_SERVICE_NAME = os.environ.get("MCP_SERVICE_NAME", "make_web")
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
env_dir = os.environ.get("MCP_DATA_DIR")
|
|
53
|
-
if env_dir:
|
|
54
|
-
path = Path(env_dir)
|
|
55
|
-
path.mkdir(parents=True, exist_ok=True)
|
|
56
|
-
return path
|
|
57
|
-
|
|
58
|
-
shared_dir = Path(DEFAULT_PROJECT_ROOT) / ".mcp_state"
|
|
59
|
-
try:
|
|
60
|
-
shared_dir.mkdir(parents=True, exist_ok=True)
|
|
61
|
-
return shared_dir
|
|
62
|
-
except Exception:
|
|
63
|
-
fallback = DEFAULT_MCP_STORAGE / MCP_SERVICE_NAME
|
|
64
|
-
fallback.mkdir(parents=True, exist_ok=True)
|
|
65
|
-
print(
|
|
66
|
-
f"⚠️ 无法在 {shared_dir} 创建 MCP 数据目录,改用 {fallback}",
|
|
67
|
-
file=sys.stderr,
|
|
68
|
-
)
|
|
69
|
-
return fallback
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
MCP_DATA_ROOT = _resolve_mcp_data_root()
|
|
48
|
+
MCP_DATA_ROOT = Path(
|
|
49
|
+
os.environ.get("MCP_DATA_DIR", DEFAULT_MCP_STORAGE / MCP_SERVICE_NAME)
|
|
50
|
+
)
|
|
51
|
+
MCP_DATA_ROOT.mkdir(parents=True, exist_ok=True)
|
|
73
52
|
|
|
74
53
|
# 简单的缓存:记录最近一次生成的计划,避免“create_simple_site → execute_plan”时需手动传递
|
|
75
54
|
PLAN_CACHE_DIR = MCP_DATA_ROOT / "plan_cache"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/html_templates_improved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{htmlgen_mcp-0.3.2 → htmlgen_mcp-0.3.3}/src/htmlgen_mcp/agents/web_tools/simple_templates.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|