mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
terminal tool
This commit is contained in:
parent
faecbddd9b
commit
a6ec79730c
1 changed files with 4 additions and 9 deletions
|
|
@ -4,13 +4,8 @@ Terminal Tool Module
|
||||||
|
|
||||||
This module provides a single terminal tool using Hecate's VM infrastructure.
|
This module provides a single terminal tool using Hecate's VM infrastructure.
|
||||||
It wraps Hecate's functionality to provide a simple interface for executing commands
|
It wraps Hecate's functionality to provide a simple interface for executing commands
|
||||||
on Morph VMs with automatic lifecycle management.
|
on Morph VMs with automatic lifecycle management. VMs live for 5 minutes after last use.
|
||||||
|
Timer resets with each use.
|
||||||
Key features:
|
|
||||||
- Persistent VM instance: Reused across tool calls within the configured lifetime window
|
|
||||||
- Persistent ExecutionContext: Maintains session state (including interactive/TUI sessions)
|
|
||||||
across multiple tool calls, enabling interactive mode to work correctly
|
|
||||||
- Automatic cleanup: VMs are cleaned up after inactivity
|
|
||||||
|
|
||||||
Available tool:
|
Available tool:
|
||||||
- terminal_tool: Execute commands with optional interactive session support
|
- terminal_tool: Execute commands with optional interactive session support
|
||||||
|
|
@ -148,7 +143,7 @@ def terminal_tool(
|
||||||
|
|
||||||
# Get configuration from environment
|
# Get configuration from environment
|
||||||
vm_lifetime_seconds = int(os.getenv("HECATE_VM_LIFETIME_SECONDS", "300"))
|
vm_lifetime_seconds = int(os.getenv("HECATE_VM_LIFETIME_SECONDS", "300"))
|
||||||
snapshot_id = os.getenv("HECATE_DEFAULT_SNAPSHOT_ID", "snapshot_p5294qxt")
|
snapshot_id = os.getenv("HECATE_DEFAULT_SNAPSHOT_ID", "python-2025-10-31")
|
||||||
|
|
||||||
# Check API key
|
# Check API key
|
||||||
morph_api_key = os.getenv("MORPH_API_KEY")
|
morph_api_key = os.getenv("MORPH_API_KEY")
|
||||||
|
|
@ -310,4 +305,4 @@ if __name__ == "__main__":
|
||||||
print(f" MORPH_API_KEY: {'Set' if os.getenv('MORPH_API_KEY') else 'Not set'}")
|
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" 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_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)")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue