timeverse-hyperframes-mcp 0.1.0__tar.gz → 0.1.1__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.
Files changed (21) hide show
  1. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/PKG-INFO +1 -1
  2. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/pyproject.toml +1 -1
  3. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/cli_executor.py +21 -4
  4. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp.egg-info/PKG-INFO +1 -1
  5. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/README.md +0 -0
  6. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/setup.cfg +0 -0
  7. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/__init__.py +0 -0
  8. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/__main__.py +0 -0
  9. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/server.py +0 -0
  10. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/tools/__init__.py +0 -0
  11. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/tools/init.py +0 -0
  12. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/tools/lint.py +0 -0
  13. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/tools/media.py +0 -0
  14. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/tools/preview.py +0 -0
  15. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/tools/render.py +0 -0
  16. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp/tools/system.py +0 -0
  17. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp.egg-info/SOURCES.txt +0 -0
  18. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp.egg-info/dependency_links.txt +0 -0
  19. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp.egg-info/entry_points.txt +0 -0
  20. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp.egg-info/requires.txt +0 -0
  21. {timeverse_hyperframes_mcp-0.1.0 → timeverse_hyperframes_mcp-0.1.1}/src/timeverse_hyperframes_mcp.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: timeverse-hyperframes-mcp
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: MCP server wrapping HyperFrames CLI — turn HTML/CSS/JS into MP4 videos
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: mcp>=1.0.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "timeverse-hyperframes-mcp"
3
- version = "0.1.0"
3
+ version = "0.1.1"
4
4
  description = "MCP server wrapping HyperFrames CLI — turn HTML/CSS/JS into MP4 videos"
5
5
  requires-python = ">=3.11"
6
6
  dependencies = [
@@ -34,13 +34,28 @@ WORKSPACE_ENV_VAR = "HYPERFRAMES_WORKSPACE_DIR"
34
34
 
35
35
  # ==================== 核心方法 ====================
36
36
 
37
+ def _resolve_hyperframes_command() -> tuple[list[str], str]:
38
+ """
39
+ 解析 hyperframes 可执行路径。
40
+ 优先使用全局安装的 hyperframes,否则回退到 npx hyperframes。
41
+
42
+ Returns:
43
+ (cmd_parts, display_name)
44
+ 如 (["hyperframes"], "hyperframes") 或 (["npx", "hyperframes"], "npx hyperframes")
45
+ """
46
+ global_cmd = shutil.which("hyperframes")
47
+ if global_cmd:
48
+ return [global_cmd], "hyperframes"
49
+ return ["npx", "hyperframes"], "npx hyperframes"
50
+
51
+
37
52
  async def run_hyperframes(
38
53
  args: list[str],
39
54
  cwd: Optional[str] = None,
40
55
  timeout: int = DEFAULT_TIMEOUT,
41
56
  ) -> dict:
42
57
  """
43
- 执行 npx hyperframes <args> 命令
58
+ 执行 hyperframes <args> 命令(优先全局命令,回退 npx)
44
59
 
45
60
  Args:
46
61
  args: 子命令及参数列表,如 ["init", "my-video", "--non-interactive"]
@@ -59,8 +74,9 @@ async def run_hyperframes(
59
74
  Raises:
60
75
  TimeoutError: 命令执行超时
61
76
  """
62
- cmd = ["npx", "hyperframes", *args]
63
- cmd_str = " ".join(cmd)
77
+ base_cmd, display_name = _resolve_hyperframes_command()
78
+ cmd = [*base_cmd, *args]
79
+ cmd_str = f"{display_name} {' '.join(args)}"
64
80
 
65
81
  if cwd is None:
66
82
  cwd = os.environ.get(WORKSPACE_ENV_VAR, os.getcwd())
@@ -90,10 +106,11 @@ async def run_hyperframes(
90
106
  except asyncio.TimeoutError:
91
107
  raise TimeoutError(f"命令超时({timeout}s): {cmd_str}")
92
108
  except FileNotFoundError:
109
+ hints = "请安装 Node.js >= 22,或执行 npm install -g hyperframes 全局安装"
93
110
  return {
94
111
  "success": False,
95
112
  "stdout": "",
96
- "stderr": "未找到 npx,请确认 Node.js >= 22 已安装",
113
+ "stderr": f"未找到 hyperframes / npx 命令。{hints}",
97
114
  "exit_code": -1,
98
115
  "command": cmd_str,
99
116
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: timeverse-hyperframes-mcp
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: MCP server wrapping HyperFrames CLI — turn HTML/CSS/JS into MP4 videos
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: mcp>=1.0.0