diff --git a/app-instance/backend/beaver/interfaces/web/app.py b/app-instance/backend/beaver/interfaces/web/app.py index 3ef6f11..9b88f86 100644 --- a/app-instance/backend/beaver/interfaces/web/app.py +++ b/app-instance/backend/beaver/interfaces/web/app.py @@ -50,6 +50,7 @@ from beaver.services.user_file_resolver import ( build_file_auth_context, ) from beaver.skills.learning import SkillLearningWorker, SkillLearningWorkerConfig +from beaver.skills.learning.replay import ReplayRunner from beaver.skills.catalog.utils import parse_frontmatter from .deps import get_agent_service @@ -2080,7 +2081,8 @@ def create_app( @app.post("/api/skills/candidates/{candidate_id}/draft") async def synthesize_skill_draft(candidate_id: str, request: Request) -> dict[str, Any]: agent_service = get_agent_service(request) - loaded = agent_service.create_loop().boot() + loop = agent_service.create_loop() + loaded = loop.boot() try: candidate = loaded.skill_learning_pipeline.get_candidate(candidate_id) # type: ignore[union-attr] if candidate.draft_skill_name and candidate.draft_id: @@ -2099,6 +2101,7 @@ def create_app( draft.skill_name, draft.draft_id, provider_bundle=provider_bundle, + replay_runner=ReplayRunner(agent_loop=loop), ) except ValueError as exc: raise HTTPException(status_code=404, detail=str(exc)) from exc @@ -2107,7 +2110,8 @@ def create_app( @app.post("/api/skills/candidates/{candidate_id}/regenerate") async def regenerate_skill_draft(candidate_id: str, request: Request) -> dict[str, Any]: agent_service = get_agent_service(request) - loaded = agent_service.create_loop().boot() + loop = agent_service.create_loop() + loaded = loop.boot() provider_bundle = agent_service._make_provider_bundle_for_task(loaded, {}) # noqa: SLF001 try: draft = await loaded.skill_learning_pipeline.regenerate_draft( # type: ignore[union-attr] @@ -2120,6 +2124,7 @@ def create_app( draft.skill_name, draft.draft_id, provider_bundle=provider_bundle, + replay_runner=ReplayRunner(agent_loop=loop), ) except ValueError as exc: raise HTTPException(status_code=404, detail=str(exc)) from exc diff --git a/app-instance/frontend/app/(app)/skills/page.tsx b/app-instance/frontend/app/(app)/skills/page.tsx index 6d23e35..e46896f 100644 --- a/app-instance/frontend/app/(app)/skills/page.tsx +++ b/app-instance/frontend/app/(app)/skills/page.tsx @@ -1088,6 +1088,12 @@ function EvalReportPanel({ report }: { report?: SkillDraftEvalReport | null }) { /> +