htmlgen-mcp 0.4.1__py3-none-any.whl → 0.4.3__py3-none-any.whl

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.

@@ -154,7 +154,7 @@ async def get_progress_optimized(
154
154
  "job_id", "status", "plan_id", "progress_log",
155
155
  "started_at", "updated_at", "completed_at",
156
156
  "project_directory", "model", "upload_status",
157
- "website_url", "upload_completed_at"
157
+ "upload_url", "upload_completed_at", "uploaded_directory"
158
158
  ]
159
159
  job_snapshot = {
160
160
  k: job_info.get(k) for k in snapshot_keys
@@ -192,4 +192,4 @@ async def get_progress_optimized(
192
192
  return {
193
193
  "status": "error",
194
194
  "message": str(exc)
195
- }
195
+ }
@@ -713,6 +713,32 @@ async def _handle_auto_upload(
713
713
  if not project_dir:
714
714
  return
715
715
 
716
+ upload_target = project_dir
717
+
718
+ created_files = (job_info.get("result") or {}).get("created_files") or []
719
+ for file_path in created_files:
720
+ if not file_path:
721
+ continue
722
+ try:
723
+ candidate_path = file_path
724
+ if not os.path.isabs(candidate_path):
725
+ candidate_path = os.path.join(project_dir, candidate_path)
726
+ if not os.path.exists(candidate_path):
727
+ continue
728
+ candidate_dir = (
729
+ candidate_path if os.path.isdir(candidate_path) else os.path.dirname(candidate_path)
730
+ )
731
+ rel_path = os.path.relpath(candidate_dir, project_dir)
732
+ if rel_path == "." or rel_path.startswith(".."):
733
+ continue
734
+ top_level = rel_path.split(os.sep, 1)[0]
735
+ top_level_dir = os.path.join(project_dir, top_level)
736
+ if os.path.isdir(top_level_dir):
737
+ upload_target = top_level_dir
738
+ break
739
+ except Exception:
740
+ continue
741
+
716
742
  job_info["upload_status"] = "uploading"
717
743
  _persist_job_state(job_id)
718
744
 
@@ -721,22 +747,24 @@ async def _handle_auto_upload(
721
747
  if not callable(upload_func):
722
748
  raise RuntimeError("upload_project_to_mcp_server 缺少可调用实现")
723
749
 
724
- upload_result = await upload_func(folder_path=project_dir)
750
+ upload_result = await upload_func(folder_path=upload_target)
725
751
 
726
752
  job_info["upload_result"] = upload_result
727
753
  job_info["upload_status"] = upload_result.get("status")
728
754
 
729
755
  if upload_result.get("status") == "success":
730
- job_info["website_url"] = upload_result.get("url")
756
+ job_info["upload_url"] = upload_result.get("url")
731
757
  job_info["upload_completed_at"] = time.time()
758
+ job_info["uploaded_directory"] = upload_target
732
759
 
733
760
  if progress_log_path:
734
761
  upload_event = {
735
762
  "timestamp": time.time(),
736
763
  "type": "upload_completed",
737
764
  "status": "success",
738
- "website_url": upload_result.get("url"),
765
+ "upload_url": upload_result.get("url"),
739
766
  "message": upload_result.get("message"),
767
+ "uploaded_directory": upload_target,
740
768
  }
741
769
  try:
742
770
  with open(progress_log_path, "a", encoding="utf-8") as log_file:
@@ -1096,8 +1124,9 @@ async def get_progress(
1096
1124
  "project_directory",
1097
1125
  "model",
1098
1126
  "upload_status",
1099
- "website_url",
1127
+ "upload_url",
1100
1128
  "upload_completed_at",
1129
+ "uploaded_directory",
1101
1130
  ]
1102
1131
  job_snapshot = {
1103
1132
  k: job_info.get(k) for k in snapshot_keys if job_info.get(k) is not None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: htmlgen-mcp
3
- Version: 0.4.1
3
+ Version: 0.4.3
4
4
  Summary: AI-powered HTML website generator with auto-upload functionality via Model Context Protocol
5
5
  Author-email: HTML Generator Team <contact@htmlgen-mcp.com>
6
6
  License: MIT
@@ -97,7 +97,7 @@ print(f"状态: {progress['job']['status']}")
97
97
 
98
98
  # 如果启用了自动上传
99
99
  if progress['job'].get('upload_status') == 'success':
100
- print(f"网站地址: {progress['job']['website_url']}")
100
+ print(f"网站地址: {progress['job']['upload_url']}")
101
101
  ```
102
102
 
103
103
  ## 🛠️ MCP 工具
@@ -146,7 +146,7 @@ while True:
146
146
  if status == 'completed':
147
147
  upload_status = progress['job'].get('upload_status')
148
148
  if upload_status == 'success':
149
- print(f"🎉 网站已上线: {progress['job']['website_url']}")
149
+ print(f"🎉 网站已上线: {progress['job']['upload_url']}")
150
150
  break
151
151
  elif upload_status == 'failed':
152
152
  print("❌ 上传失败")
@@ -159,7 +159,7 @@ while True:
159
159
 
160
160
  - **构建阶段**: `running` → `completed`
161
161
  - **上传阶段**: `uploading` → `success`/`failed`
162
- - **最终结果**: `website_url` (成功时)
162
+ - **最终结果**: `upload_url` (成功时)
163
163
 
164
164
  ## 🤝 贡献
165
165
 
@@ -7,8 +7,8 @@ htmlgen_mcp/nas_storage.py,sha256=HpgROy53vrYiBiXsUJO56GCoYZdyYR15iVvOBqyp7Yc,11
7
7
  htmlgen_mcp/progress_tools.py,sha256=SOScPSr3hEv4rvGzqvwUcomEFiPhhNxJ7CbWURlFpBs,5067
8
8
  htmlgen_mcp/progress_tracker.py,sha256=2TVduWNJJH08EQ7Vf9EpiwPjtp61JX7muSCdbGHZAfM,12210
9
9
  htmlgen_mcp/prompt_enhancer.py,sha256=8UIxt45vSNarS5uqfxC5thOfnGY7luDs2YjHZRx1GAM,7976
10
- htmlgen_mcp/sse_optimizations.py,sha256=_UTpgLtxgNAiiEkO5lPihOi1-eEQk6R4ejNParufrrc,6932
11
- htmlgen_mcp/web_agent_server.py,sha256=ZlQNuuMk6WI5QFBcMR-UISOlcnBhw6oMqrseQIiRZX0,50900
10
+ htmlgen_mcp/sse_optimizations.py,sha256=b7fTZIpRIUsOgZd6iXI6reLtSqZGtzH2IUnOOCEcNI8,6954
11
+ htmlgen_mcp/web_agent_server.py,sha256=Cq6QxYVSTdngLrbJy4kO1GfuwKX5xo_J1ERuvjaqD50,52077
12
12
  htmlgen_mcp/agents/__init__.py,sha256=Xydfjzw9s9O6I5Ixx6EmsTdXu26136NDPUAqt9B1hzE,121
13
13
  htmlgen_mcp/agents/ai_content_generator.py,sha256=tWGC9cY6Wp7MB1P9J7uCv8LUdiS02rgS6vxaNHD7KQk,10311
14
14
  htmlgen_mcp/agents/quick_generator.py,sha256=2wV4PCRugV0suTedLDV91_etHy_2Fiw4J0MraT7MQjw,34201
@@ -31,8 +31,8 @@ htmlgen_mcp/agents/web_tools/simple_css.py,sha256=kj9X3sHHhj1wGwBVL20j6w2qIHXRdx
31
31
  htmlgen_mcp/agents/web_tools/simple_js.py,sha256=xMiuF-u-h_IIkUONZIa4Xf8vKB5mcXxwQf5b_BIcpoE,12174
32
32
  htmlgen_mcp/agents/web_tools/simple_templates.py,sha256=-Rs-SsWpGZT2hiwa3jZNVDHOMZOo1vV2pWbmBdR30os,6471
33
33
  htmlgen_mcp/agents/web_tools/validation.py,sha256=bNA6aWXrCSi7sPqQw5bBR3XF69gRf85D5jSMi996CtI,2069
34
- htmlgen_mcp-0.4.1.dist-info/METADATA,sha256=G6MovnmQ1Bv1I8tvD74N6007PYtSJxQmt3Nd_jibWWM,5161
35
- htmlgen_mcp-0.4.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
36
- htmlgen_mcp-0.4.1.dist-info/entry_points.txt,sha256=w7ufTQJobIxT3FYI24yKsCEwEQvBOWhNjckUd9Amu_k,66
37
- htmlgen_mcp-0.4.1.dist-info/top_level.txt,sha256=KnglzX4ekV8SQkHTsJg2_nTBXz2TxaYLdvoMMovHLNk,12
38
- htmlgen_mcp-0.4.1.dist-info/RECORD,,
34
+ htmlgen_mcp-0.4.3.dist-info/METADATA,sha256=wulYUcHcUf41PY0XkZEl0yoR65gjx6haSwdSxs45CY8,5158
35
+ htmlgen_mcp-0.4.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
36
+ htmlgen_mcp-0.4.3.dist-info/entry_points.txt,sha256=w7ufTQJobIxT3FYI24yKsCEwEQvBOWhNjckUd9Amu_k,66
37
+ htmlgen_mcp-0.4.3.dist-info/top_level.txt,sha256=KnglzX4ekV8SQkHTsJg2_nTBXz2TxaYLdvoMMovHLNk,12
38
+ htmlgen_mcp-0.4.3.dist-info/RECORD,,