support passing morph snapshot id

This commit is contained in:
hjc-puro 2025-08-31 18:06:58 +00:00
parent 587d1cf720
commit e7019d98bf
3 changed files with 18 additions and 7 deletions

View file

@ -78,7 +78,8 @@ def terminal_tool(
session_id: Optional[str] = None,
background: bool = False,
idle_threshold: float = 5.0,
timeout: Optional[int] = None
timeout: Optional[int] = None,
snapshot_id: str | None = None,
) -> str:
"""
Execute a command on a Morph VM with optional interactive session support.
@ -136,7 +137,7 @@ def terminal_tool(
)
# Execute with lifecycle management
result = run_tool_with_lifecycle_management(tool_call)
result = run_tool_with_lifecycle_management(tool_call, snapshot_id=snapshot_id)
# Format the result with all possible fields
# Map hecate's "stdout" to "output" for compatibility
@ -231,4 +232,4 @@ if __name__ == "__main__":
print(f" MORPH_API_KEY: {'Set' if os.getenv('MORPH_API_KEY') else 'Not set'}")
print(f" OPENAI_API_KEY: {'Set' if os.getenv('OPENAI_API_KEY') else 'Not set (optional)'}")
print(f" HECATE_VM_LIFETIME_SECONDS: {os.getenv('HECATE_VM_LIFETIME_SECONDS', '300')} (default: 300)")
print(f" HECATE_DEFAULT_SNAPSHOT_ID: {os.getenv('HECATE_DEFAULT_SNAPSHOT_ID', 'snapshot_p5294qxt')} (default: snapshot_p5294qxt)")
print(f" HECATE_DEFAULT_SNAPSHOT_ID: {os.getenv('HECATE_DEFAULT_SNAPSHOT_ID', 'snapshot_p5294qxt')} (default: snapshot_p5294qxt)")