修改了nanobot,往Hermes agent的风格走,进度1/3
This commit is contained in:
2
app-instance/backend/beaver/interfaces/cli/__init__.py
Normal file
2
app-instance/backend/beaver/interfaces/cli/__init__.py
Normal file
@ -0,0 +1,2 @@
|
||||
"""CLI interface."""
|
||||
|
||||
59
app-instance/backend/beaver/interfaces/cli/main.py
Normal file
59
app-instance/backend/beaver/interfaces/cli/main.py
Normal file
@ -0,0 +1,59 @@
|
||||
"""CLI entry for Beaver."""
|
||||
|
||||
try:
|
||||
import typer
|
||||
except ModuleNotFoundError: # pragma: no cover - fallback for skeleton-only environments
|
||||
class _FallbackTyper:
|
||||
def __init__(self, *_args, **_kwargs) -> None:
|
||||
pass
|
||||
|
||||
def command(self):
|
||||
def decorator(func):
|
||||
return func
|
||||
|
||||
return decorator
|
||||
|
||||
def __call__(self) -> None:
|
||||
raise RuntimeError("typer is not installed")
|
||||
|
||||
@staticmethod
|
||||
def echo(message: str) -> None:
|
||||
print(message)
|
||||
|
||||
@staticmethod
|
||||
def Option(default=None, *_args, **_kwargs):
|
||||
return default
|
||||
|
||||
typer = _FallbackTyper() # type: ignore[assignment]
|
||||
|
||||
from beaver.services.agent_service import AgentService
|
||||
|
||||
app = typer.Typer(help="Beaver backend CLI") if hasattr(typer, "Typer") else typer
|
||||
|
||||
|
||||
@app.command()
|
||||
def run(
|
||||
message: str | None = typer.Option(None, "--message", "-m", help="Run one direct Beaver request."),
|
||||
workspace: str | None = typer.Option(None, "--workspace", help="Workspace root for this run."),
|
||||
) -> None:
|
||||
"""Thin CLI wrapper around AgentService.
|
||||
|
||||
CLI 现在不再自己维护执行逻辑,只负责:
|
||||
1. 解析命令行参数
|
||||
2. 调 AgentService
|
||||
3. 打印结果
|
||||
"""
|
||||
|
||||
service = AgentService(workspace=workspace)
|
||||
if not message:
|
||||
service.create_loop()
|
||||
typer.echo("Beaver engine booted.")
|
||||
return
|
||||
|
||||
result = service.run_direct(message, source="cli")
|
||||
typer.echo(result.output_text)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""Project script entrypoint."""
|
||||
app()
|
||||
Reference in New Issue
Block a user